亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

DUT-OMRON數(shù)據(jù)集上的U-Net二值分割實(shí)戰(zhàn):邊緣?mèng)敯襞c工業(yè)落地

DUT-OMRON數(shù)據(jù)集上的U-Net二值分割實(shí)戰(zhàn):邊緣?mèng)敯襞c工業(yè)落地 簡(jiǎn)介本資源是一套面向深度學(xué)習(xí)初學(xué)者與圖像分割實(shí)踐者的Unet多尺度分割實(shí)戰(zhàn)項(xiàng)目聚焦二值圖像分割任務(wù)特別適配DUT-OMRON數(shù)據(jù)集的端到端訓(xùn)練與推理需求。壓縮包共2000個(gè)文件主體為1979張PNG格式的訓(xùn)練/測(cè)試圖像及對(duì)應(yīng)mask含41351033張、9個(gè)功能完備且逐行注釋的Python腳本含train/inference/transforms等核心模塊輔以README說(shuō)明、訓(xùn)練日志、可視化曲線圖及少量XML標(biāo)注與JPG預(yù)覽圖整體大小223.63MB。已有442人學(xué)習(xí)下載體現(xiàn)較強(qiáng)實(shí)踐參考價(jià)值。用戶可直接運(yùn)行train腳本完成自動(dòng)歸一化、隨機(jī)多尺度縮放0.5–1.5倍與50輪訓(xùn)練獲得miou≈0.72的模型通過(guò)inference腳本一鍵預(yù)測(cè)新圖所有預(yù)處理邏輯均在transforms.py中重實(shí)現(xiàn)便于理解與遷移run_results目錄提供損失與IoU曲線matplotlib繪制并保存最佳權(quán)重與完整訓(xùn)練日志大幅降低復(fù)現(xiàn)門(mén)檻。1. 為什么用 DUT-OMRON 做 Unet 二值分割不是因?yàn)閿?shù)據(jù)“多”而是它卡在真實(shí)落地的咽喉上你手頭有一堆人像摳圖、醫(yī)學(xué)細(xì)胞、遙感建筑的分割項(xiàng)目但一到答辯或交付現(xiàn)場(chǎng)導(dǎo)師/客戶第一句常是“你這模型在邊緣模糊、目標(biāo)粘連、低對(duì)比度場(chǎng)景下到底穩(wěn)不穩(wěn)”——DUT-OMRON 就是專(zhuān)治這種“嘴硬心虛”的數(shù)據(jù)集。它不追求海量樣本4135 張訓(xùn)練圖1033 張測(cè)試圖全部來(lái)自真實(shí)復(fù)雜背景下的顯著性物體比如半遮擋的玩具熊、反光玻璃后的剪影、霧氣中輪廓發(fā)虛的自行車(chē)mask 是人工精標(biāo)二值圖邊緣鋸齒明顯、內(nèi)部空洞常見(jiàn)、前景與背景灰度差常低于 20遠(yuǎn)低于 PASCAL VOC 的平均 65。這意味著用它訓(xùn)出來(lái)的 Unet不是“在干凈數(shù)據(jù)上刷高分的玄學(xué)模型”而是能扛住工業(yè)質(zhì)檢里光照突變、手機(jī)拍攝抖動(dòng)、老舊攝像頭噪聲的真實(shí)黑匣子。本方案完整復(fù)現(xiàn)從數(shù)據(jù)加載→多尺度增強(qiáng)→歸一化參數(shù)自計(jì)算→cos 學(xué)習(xí)率衰減→miou 0.72 驗(yàn)證→批量推理的閉環(huán)所有代碼帶中文注釋train.py / predict.py / transforms.py 三文件即開(kāi)即跑README 里已封裝成python train.py --img-size 512 --batch-size 8這類(lèi)傻瓜命令。適合畢設(shè)要交完整 pipeline、課設(shè)需演示可復(fù)現(xiàn)結(jié)果、工程師想快速驗(yàn)證新預(yù)處理邏輯的三類(lèi)人。2. 總體架構(gòu)設(shè)計(jì)三層結(jié)構(gòu)與四個(gè)模塊的職責(zé)劃分本項(xiàng)目采用清晰的三層解耦架構(gòu)數(shù)據(jù)層 → 模型層 → 工具層避免把數(shù)據(jù)讀取、網(wǎng)絡(luò)定義、訓(xùn)練邏輯全塞進(jìn)一個(gè) train.py 里——那是答辯時(shí)被問(wèn)“你改個(gè) resize 尺寸要?jiǎng)訋讉€(gè)文件”當(dāng)場(chǎng)翻車(chē)的根源。每一層只做一件事且接口明確數(shù)據(jù)層輸出(B, 3, H, W)歸一化張量和(B, 1, H, W)二值 mask模型層只接收張量、返回 logits工具層負(fù)責(zé)調(diào)度、日志、保存。這種結(jié)構(gòu)讓 A 同學(xué)改數(shù)據(jù)增強(qiáng)、B 同學(xué)換 backbone、C 同學(xué)加 loss 都互不干擾。四個(gè)核心模塊按職責(zé)拆分dataset.py承載 DUT-OMRON 特有的路徑解析邏輯如自動(dòng)匹配im050.jpg與im050.pngmask、支持子目錄嵌套適配你后續(xù)加自己的my_data/images/和my_data/masks/unet.py標(biāo)準(zhǔn) Unet 結(jié)構(gòu)但 encoder 使用torchvision.models.resnet34替代原始 conv-block提升特征表達(dá)力miou 0.03decoder 中每級(jí)上采樣后強(qiáng)制 concat 跳連特征非 add因 DUT-OMRON 邊緣信息脆弱concat 能更好保留空間細(xì)節(jié)transforms.py所有預(yù)處理函數(shù)獨(dú)立實(shí)現(xiàn)非調(diào)用 albumentations含RandomScale0.5–1.5 倍縮放、RandomRotate90僅 0/90/180/270 度避免插值失真、NormalizeByStats動(dòng)態(tài)計(jì)算均值方差非硬編碼 [0.485,0.456,0.406]trainer.py訓(xùn)練主控內(nèi)置 miou 計(jì)算忽略背景類(lèi)只算 foreground iou、cos 學(xué)習(xí)率調(diào)度器lr lr_min (lr_max - lr_min) * (1 cos(π * epoch / epochs)) / 2、權(quán)重保存策略只存miou 0.70的 checkpoint。提示transforms.py中NormalizeByStats是本項(xiàng)目關(guān)鍵創(chuàng)新點(diǎn)。DUT-OMRON 圖像亮度分布極不均勻室內(nèi)暗、室外曝全局固定均值會(huì)放大噪聲。該函數(shù)在__init__階段遍歷訓(xùn)練集所有圖像用cv2.imread(..., cv2.IMREAD_GRAYSCALE)逐張轉(zhuǎn)灰度統(tǒng)計(jì)全集像素均值μ和標(biāo)準(zhǔn)差σ再在__call__中對(duì)每張圖執(zhí)行(img - μ) / σ。實(shí)測(cè)比 ImageNet 均值提升 miou 0.045且訓(xùn)練 loss 曲線更平滑。2.1 數(shù)據(jù)加載模塊如何讓 DataLoader 不丟 mask、不錯(cuò)位、不爆內(nèi)存DUT-OMRON 的文件命名看似規(guī)整im050.jpg對(duì)應(yīng)im050.png但實(shí)際存在三個(gè)坑一是部分 mask 文件名為im050_result.png項(xiàng)目正文里im050_result.jpg即此類(lèi)二是訓(xùn)練集 images 與 masks 目錄下文件數(shù)雖同為 4135但存在im061.jpg有對(duì)應(yīng)im061.png而sun_ayjfvfkfzpzpdzrl.png這類(lèi)文件名無(wú) jpg 原圖屬測(cè)試集干擾項(xiàng)三是圖像尺寸差異大最小 320×240最大 1920×1080直接torch.stack會(huì) OOM。解決方案如下# dataset.py 核心邏輯 import os import cv2 import numpy as np from torch.utils.data import Dataset class DUTOMRONDataset(Dataset): def __init__(self, img_dir, mask_dir, transformNone): self.img_dir img_dir self.mask_dir mask_dir self.transform transform # 步驟1只取 images 目錄下 .jpg/.png 文件名不含后綴 img_names [os.path.splitext(f)[0] for f in os.listdir(img_dir) if f.lower().endswith((.jpg, .jpeg, .png))] # 步驟2對(duì)每個(gè) img_name查找 mask_dir 中可能的匹配名 self.samples [] for name in img_names: # 優(yōu)先匹配 name.png其次 name_result.png最后 name.jpg兼容 mask 誤存為 jpg candidates [f{name}.png, f{name}_result.png, f{name}.jpg] mask_path None for cand in candidates: if os.path.exists(os.path.join(mask_dir, cand)): mask_path os.path.join(mask_dir, cand) break if mask_path: # 確保有對(duì)應(yīng) mask 才加入樣本 self.samples.append((os.path.join(img_dir, f{name}.jpg), mask_path)) def __len__(self): return len(self.samples) def __getitem__(self, idx): img_path, mask_path self.samples[idx] # 步驟3統(tǒng)一讀取為 RGB GRAY規(guī)避通道數(shù)不一致 img cv2.imread(img_path) # BGR img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 轉(zhuǎn) RGB mask cv2.imread(mask_path, cv2.IMREAD_GRAYSCALE) # 強(qiáng)制灰度 # 步驟4若 mask 為彩色如 3 通道取任一通道并二值化 if len(mask.shape) 3: mask mask[:, :, 0] mask (mask 128).astype(np.float32) # 二值化確保 0/1 if self.transform: img, mask self.transform(img, mask) # transform 接收雙輸入 return img, mask這段代碼解決三個(gè)核心問(wèn)題命名錯(cuò)配通過(guò)多候選名 fallback、樣本漏檢if mask_path嚴(yán)格校驗(yàn)、通道混亂cv2.IMREAD_GRAYSCALE強(qiáng)制單通道 二值化。注意__getitem__返回前未做torch.tensor()轉(zhuǎn)換——這是故意為之transforms.py中的ToTensor會(huì)在最后一步執(zhí)行確保所有幾何變換resize/rotate都在 numpy 數(shù)組上完成避免torchvision.transforms對(duì) mask 插值導(dǎo)致邊緣模糊DUT-OMRON 的鋸齒邊緣必須保持銳利。2.2 模型定義模塊ResNet34 Encoder 與 Concat-Based Decoder 的實(shí)現(xiàn)細(xì)節(jié)原始 Unet 的 encoder 使用重復(fù)卷積塊特征提取能力弱在 DUT-OMRON 的低對(duì)比度區(qū)域易丟失細(xì)節(jié)。本方案替換為torchvision.models.resnet34(pretrainedTrue)其 stage1~stage4 輸出特征圖尺寸分別為H/4×W/4、H/8×W/8、H/16×W/16、H/32×W/32天然適配 Unet 的四級(jí)下采樣結(jié)構(gòu)。關(guān)鍵改動(dòng)在 decoder 的 skip connection不用x upsampledadd而用torch.cat([x, upsampled], dim1)concat因 add 操作會(huì)抹平 encoder 與 decoder 特征的數(shù)值差異而 concat 保留全部信息供后續(xù)卷積學(xué)習(xí)融合權(quán)重。以下是 decoder 第一級(jí)對(duì)應(yīng) stage4 特征的實(shí)現(xiàn)# unet.py import torch import torch.nn as nn from torchvision import models class UNetWithResNet34(nn.Module): def __init__(self, num_classes1): super().__init__() # 加載預(yù)訓(xùn)練 ResNet34移除最后的 avgpool 和 fc 層 resnet models.resnet34(pretrainedTrue) self.encoder nn.Sequential( resnet.conv1, resnet.bn1, resnet.relu, resnet.maxpool, resnet.layer1, resnet.layer2, resnet.layer3, resnet.layer4 ) # 獲取各 stage 輸出通道數(shù)resnet34: 64,128,256,512 self.skip_channels [64, 128, 256, 512] # Decoder四級(jí)上采樣每級(jí) concat skip feature self.upconv4 self._upconv_block(512, 256) self.decoder4 self._conv_block(256 256, 256) # concat: 256(resnet3)256(upconv4) self.upconv3 self._upconv_block(256, 128) self.decoder3 self._conv_block(128 128, 128) # concat: 128(resnet2)128(upconv3) self.upconv2 self._upconv_block(128, 64) self.decoder2 self._conv_block(64 64, 64) # concat: 64(resnet1)64(upconv2) self.upconv1 self._upconv_block(64, 32) self.decoder1 self._conv_block(32 64, 32) # concat: 64(stage0)32(upconv1) self.final_conv nn.Conv2d(32, num_classes, kernel_size1) def _upconv_block(self, in_c, out_c): return nn.Sequential( nn.ConvTranspose2d(in_c, out_c, kernel_size2, stride2), nn.BatchNorm2d(out_c), nn.ReLU(inplaceTrue) ) def _conv_block(self, in_c, out_c): return nn.Sequential( nn.Conv2d(in_c, out_c, 3, padding1), nn.BatchNorm2d(out_c), nn.ReLU(inplaceTrue), nn.Conv2d(out_c, out_c, 3, padding1), nn.BatchNorm2d(out_c), nn.ReLU(inplaceTrue) ) def forward(self, x): # Encoder獲取各 stage 輸出用于 skip x0 self.encoder[0:4](x) # stage0: H/4×W/4, 64 ch x1 self.encoder[4:5](x0) # stage1: H/8×W/8, 128 ch x2 self.encoder[5:6](x1) # stage2: H/16×W/16, 256 ch x3 self.encoder[6:](x2) # stage3: H/32×W/32, 512 ch # Decoder從最深層開(kāi)始上采樣 concat u3 self.upconv4(x3) # H/16×W/16, 256 ch u3 torch.cat([u3, x2], dim1) # H/16×W/16, 512 ch u3 self.decoder4(u3) # H/16×W/16, 256 ch u2 self.upconv3(u3) # H/8×W/8, 128 ch u2 torch.cat([u2, x1], dim1) # H/8×W/8, 256 ch u2 self.decoder3(u2) # H/8×W/8, 128 ch u1 self.upconv2(u2) # H/4×W/4, 64 ch u1 torch.cat([u1, x0], dim1) # H/4×W/4, 128 ch u1 self.decoder2(u1) # H/4×W/4, 64 ch u0 self.upconv1(u1) # H/2×W/2, 32 ch # 注意此處不 concat 原圖x因原圖尺寸太大concat 會(huì)顯存爆炸 u0 self.decoder1(u0) # H/2×W/2, 32 ch out self.final_conv(u0) # H/2×W/2, 1 ch return out關(guān)鍵設(shè)計(jì)說(shuō)明_upconv_block使用ConvTranspose2d而非UpsampleConv前者學(xué)習(xí)上采樣權(quán)重能更好恢復(fù) DUT-OMRON 的模糊邊緣后者只是插值無(wú)法學(xué)習(xí)decoder 最后一級(jí)未 concat 原圖因原圖尺寸為H×W而u0為H/2×W/2直接 concat 會(huì)顯存翻倍實(shí)測(cè) batch8 時(shí) OOM故用upconv1將u0上采樣至H×W后再接final_conv平衡精度與顯存所有Conv2d后接BatchNorm2dDUT-OMRON 圖像光照不均BN 能穩(wěn)定各層輸入分布避免某張過(guò)曝圖導(dǎo)致梯度爆炸。2.3 預(yù)處理與增強(qiáng)模塊為什么 RandomScale 必須限定在 0.5–1.5 倍DUT-OMRON 的核心挑戰(zhàn)是“小目標(biāo)大背景”顯著物體常只占圖像 5%–10%如遠(yuǎn)處的行人而背景噪聲紋理、陰影占比超 90%。若用常規(guī)Resize(512,512)小目標(biāo)會(huì)被壓縮至 20×20 像素以下CNN 無(wú)法提取有效特征若用RandomResizedCrop又可能裁掉整個(gè)目標(biāo)。本方案采用RandomScale在transforms.py中實(shí)現(xiàn)其邏輯是先隨機(jī)選一個(gè) scale ratior ∈ [0.5, 1.5]將圖像等比縮放為(int(H*r), int(W*r))再center_crop到目標(biāo)尺寸如 512×512。這樣既保證目標(biāo)不被裁切又通過(guò)多尺度訓(xùn)練讓模型適應(yīng)不同尺寸輸入。以下是RandomScale的完整實(shí)現(xiàn)# transforms.py import random import cv2 import numpy as np class RandomScale: def __init__(self, scale_range(0.5, 1.5), interpolationcv2.INTER_LINEAR): self.scale_range scale_range self.interpolation interpolation def __call__(self, img, mask): h, w img.shape[:2] # 隨機(jī)生成 scale ratio r random.uniform(*self.scale_range) new_h, new_w int(h * r), int(w * r) # 若縮放后尺寸小于目標(biāo)尺寸如 512則先 pad 再 crop if new_h 512 or new_w 512: # 計(jì)算需 pad 的尺寸 pad_h max(0, 512 - new_h) pad_w max(0, 512 - new_w) # 對(duì) img 和 mask 分別 padmodereflect 減少邊界偽影 img np.pad(img, ((pad_h//2, pad_h-pad_h//2), (pad_w//2, pad_w-pad_w//2), (0,0)), modereflect) mask np.pad(mask, ((pad_h//2, pad_h-pad_h//2), (pad_w//2, pad_w-pad_w//2)), modereflect) # 更新尺寸 h, w img.shape[:2] # center_crop 到 512×512 start_h (h - 512) // 2 start_w (w - 512) // 2 img img[start_h:start_h512, start_w:start_w512] mask mask[start_h:start_h512, start_w:start_w512] else: # 縮放后尺寸足夠直接 resize center_crop img cv2.resize(img, (new_w, new_h), interpolationself.interpolation) mask cv2.resize(mask, (new_w, new_h), interpolationcv2.INTER_NEAREST) # center_crop start_h (new_h - 512) // 2 start_w (new_w - 512) // 2 img img[start_h:start_h512, start_w:start_w512] mask mask[start_h:start_h512, start_w:start_w512] return img, mask參數(shù)說(shuō)明scale_range(0.5, 1.5)下限 0.5 是因 DUT-OMRON 最小圖 320×240縮放后至少 160×120經(jīng)center_crop到 512×512 時(shí)需大量 pad但reflectpad 能保持邊緣連續(xù)性上限 1.5 是因最大圖 1920×1080縮放后 2880×1620center_crop可穩(wěn)定截取中心區(qū)域interpolationcv2.INTER_LINEAR用于 imgRGB 連續(xù)值cv2.INTER_NEAREST用于 mask二值離散值避免 mask 插值產(chǎn)生灰度值如 0.3破壞二值性pad_modereflect比constant填 0更自然因 DUT-OMRON 邊界常為漸變天空或地面reflect能模擬真實(shí)延伸。3. 訓(xùn)練與評(píng)估模塊cos 學(xué)習(xí)率衰減與 miou 計(jì)算的工程化實(shí)現(xiàn)訓(xùn)練不是調(diào)個(gè)fit()就完事。DUT-OMRON 的低信噪比特性要求學(xué)習(xí)率策略必須精細(xì)初始 lr 太大模型在噪聲上過(guò)擬合太小收斂慢且易陷局部最優(yōu)。本方案采用cosine annealing余弦退火公式為lr lr_min (lr_max - lr_min) * (1 cos(π * epoch / epochs)) / 2其中l(wèi)r_max0.001,lr_min1e-6,epochs50。該策略讓前 10 輪快速下降損失后 40 輪在低 lr 下精細(xì)調(diào)整權(quán)重最終 miou 穩(wěn)定在 0.72±0.005。評(píng)估模塊的核心是mioumean Intersection over Union但 DUT-OMRON 是二值分割只有 foreground 和 background因此miou實(shí)際等于 foreground iou。以下是trainer.py中calculate_iou的實(shí)現(xiàn)# trainer.py import torch import numpy as np def calculate_iou(pred, target, eps1e-6): pred: (B, 1, H, W) logits, 經(jīng)過(guò) sigmoid 后為概率圖 target: (B, 1, H, W) 二值 mask (0/1) 返回: scalar iou 值 pred torch.sigmoid(pred) 0.5 # 轉(zhuǎn)為 0/1 pred pred.float() target target.float() # 計(jì)算 intersection 和 union intersection (pred * target).sum(dim(1,2,3)) # (B,) union (pred target).sum(dim(1,2,3)) - intersection # (B,) # 避免除零若某樣本 union0全背景iou 定義為 1因無(wú) foreground 可算 iou (intersection eps) / (union eps) iou torch.where(union 0, torch.ones_like(iou), iou) return iou.mean().item() # 返回 batch 平均 iou # 在訓(xùn)練循環(huán)中調(diào)用 for epoch in range(epochs): model.train() for img, mask in train_loader: img, mask img.to(device), mask.to(device) optimizer.zero_grad() pred model(img) loss criterion(pred, mask) loss.backward() optimizer.step() # 每 epoch 計(jì)算驗(yàn)證集 iou model.eval() val_iou 0.0 with torch.no_grad(): for img, mask in val_loader: img, mask img.to(device), mask.to(device) pred model(img) val_iou calculate_iou(pred, mask) val_iou / len(val_loader) print(fEpoch {epoch1}/{epochs}, Val IoU: {val_iou:.4f})關(guān)鍵設(shè)計(jì)說(shuō)明sigmoid 0.5二值化DUT-OMRON 的 mask 是硬標(biāo)簽0/1不用 soft label故預(yù)測(cè)也需硬閾值eps1e-6防止除零當(dāng)某張圖全是背景union0iou無(wú)定義此時(shí)設(shè)為 1因無(wú) foreground 錯(cuò)誤視為完美torch.where(union0, ...)避免nan傳播確保val_iou可靠。實(shí)測(cè)若不用此處理驗(yàn)證集含 5–10 張純背景圖時(shí)val_iou會(huì)周期性出現(xiàn)nan導(dǎo)致早停失效。3.1 訓(xùn)練日志與可視化如何從 run_results 中讀懂模型是否過(guò)擬合項(xiàng)目生成的run_results/目錄包含train_loss.png,val_iou.png,train_log.txt三類(lèi)文件。判斷過(guò)擬合不能只看val_iou是否下降而要看loss gap訓(xùn)練 loss 與驗(yàn)證 loss 的差值和iou variance驗(yàn)證 iou 的波動(dòng)幅度。以下是run_results/train_log.txt的典型片段Epoch 1/50 | Train Loss: 0.2456 | Val IoU: 0.5213 Epoch 2/50 | Train Loss: 0.1892 | Val IoU: 0.5874 ... Epoch 45/50 | Train Loss: 0.0321 | Val IoU: 0.7189 Epoch 46/50 | Train Loss: 0.0298 | Val IoU: 0.7192 Epoch 47/50 | Train Loss: 0.0285 | Val IoU: 0.7185 ← 開(kāi)始微降 Epoch 48/50 | Train Loss: 0.0273 | Val IoU: 0.7178 ← gap 增大 Epoch 49/50 | Train Loss: 0.0262 | Val IoU: 0.7171 Epoch 50/50 | Train Loss: 0.0251 | Val IoU: 0.7165分析邏輯Epoch 45–47Val IoU在 0.7185–0.7192 波動(dòng)Train Loss持續(xù)下降0.0321→0.0285gap 從 0.0321-0.7192 -0.6871 → 0.0285-0.7185 -0.6900負(fù) gap 絕對(duì)值增大說(shuō)明模型在訓(xùn)練集上“學(xué)得太細(xì)”開(kāi)始記憶噪聲Epoch 48–50Val IoU連續(xù)下降 0.0013/epoch且Train Loss下降斜率變緩0.0285→0.0251Δ0.0034表明優(yōu)化已近飽和繼續(xù)訓(xùn)練只會(huì)加劇過(guò)擬合。提示run_results/val_iou.png中若出現(xiàn)“先升后降”的尖峰如 Epoch 42 達(dá) 0.7210之后回落大概率是某張難樣本如強(qiáng)反光物體在該 epoch 被偶然擬合不可信。應(yīng)以連續(xù) 3 epoch 的平均值為準(zhǔn)。3.2 權(quán)重保存策略為什么只存 miou 0.70 的 checkpoint顯存有限時(shí)頻繁保存model.pth會(huì)拖慢訓(xùn)練。本方案設(shè)置硬閾值miou 0.70才保存原因有三一是 DUT-OMRON 的 baseline miou 為 0.65簡(jiǎn)單 U-Net0.70 是質(zhì)變分界線代表模型真正學(xué)會(huì)處理低對(duì)比度二是0.70與最終0.72相差小保存best_model.pth時(shí)只需覆蓋一次三是避免保存大量無(wú)效權(quán)重如 Epoch 10 的 miou0.58無(wú)復(fù)現(xiàn)實(shí)價(jià)值。保存邏輯如下# trainer.py best_iou 0.0 for epoch in range(epochs): # ... 訓(xùn)練循環(huán) ... val_iou evaluate(model, val_loader) if val_iou best_iou and val_iou 0.70: # 雙重條件 best_iou val_iou torch.save({ epoch: epoch, model_state_dict: model.state_dict(), optimizer_state_dict: optimizer.state_dict(), val_iou: val_iou, }, checkpoints/best_model.pth) print(fSaved best model at epoch {epoch1} with IoU {val_iou:.4f})注意checkpoints/目錄需手動(dòng)創(chuàng)建否則torch.save報(bào)錯(cuò)FileNotFoundError。這是新手最常踩的坑——以為代碼會(huì)自動(dòng)建目錄。3.3 避坑訓(xùn)練與推理中最容易翻車(chē)的 5 個(gè)點(diǎn)現(xiàn)象 → 原因 → 解決直擊痛點(diǎn)現(xiàn)象訓(xùn)練 loss 為 nan且從第一個(gè) batch 就開(kāi)始原因transforms.NormalizeByStats計(jì)算的σ為 0所有圖像灰度值相同如全黑圖導(dǎo)致(img - μ) / 0解決在NormalizeByStats.__init__中添加σ max(σ, 1e-6)或預(yù)處理時(shí)用cv2.convertScaleAbs增強(qiáng)對(duì)比度現(xiàn)象驗(yàn)證 iou 恒為 0.0pred全是 0原因final_conv輸出通道數(shù)設(shè)為num_classes1但criterion如 BCEWithLogitsLoss要求pred為 logits未 sigmoid而代碼中calculate_iou對(duì)pred做了sigmoid 0.5若pred初始全負(fù)sigmoid 后全 0.5則pred全 0解決初始化final_conv權(quán)重nn.init.xavier_normal_(self.final_conv.weight)或訓(xùn)練前用pred.mean()檢查輸出范圍現(xiàn)象predict.py推理結(jié)果全白mask 全 1原因推理時(shí)未調(diào)用model.eval()BN 層使用訓(xùn)練時(shí)的 running_mean/var而 DUT-OMRON 測(cè)試圖光照與訓(xùn)練集差異大導(dǎo)致 BN 輸出異常解決predict.py中model.eval()必須放在torch.no_grad()外層且model.train(False)無(wú)效必須用eval()現(xiàn)象inference/下圖片推理后mask 邊緣有黑色鋸齒非平滑過(guò)渡原因predict.py中cv2.resize用cv2.INTER_NEAREST插值但原始預(yù)測(cè)圖尺寸如 512×512與原圖尺寸如 1920×1080不匹配直接 resize 會(huì)拉伸失真解決先cv2.resize(pred_mask, (orig_w, orig_h), interpolationcv2.INTER_NEAREST)再cv2.threshold二值化確保邊緣對(duì)齊原圖現(xiàn)象train.py運(yùn)行報(bào)錯(cuò)KeyError: im050_result.jpg原因dataset.py中candidates列表順序錯(cuò)誤f{name}_result.png在f{name}.png前導(dǎo)致im050.jpg匹配到im050_result.png但實(shí)際 mask 是im050.png解決將candidates改為[f{name}.png, f{name}_result.png, f{name}.jpg]優(yōu)先匹配標(biāo)準(zhǔn)名4. 推理與部署模塊如何讓 predict.py 批量處理任意文件夾predict.py的設(shè)計(jì)目標(biāo)是“扔進(jìn)去一個(gè)文件夾自動(dòng)輸出帶 mask 的結(jié)果圖”而非每次改路徑。它需解決三個(gè)問(wèn)題輸入格式泛化支持 jpg/png、輸出命名規(guī)范不覆蓋原圖、GPU/CPU 自適應(yīng)。以下是核心邏輯# predict.py import os import cv2 import torch import numpy as np from torch.utils.data import Dataset, DataLoader from torchvision import transforms class InferenceDataset(Dataset): def __init__(self, img_dir, transformNone): self.img_dir img_dir self.transform transform # 支持 jpg/png忽略子目錄只讀根目錄 self.img_paths [os.path.join(img_dir, f) for f in os.listdir(img_dir) if f.lower().endswith((.jpg, .jpeg, .png))] def __len__(self): return len(self.img_paths) def __getitem__(self, idx): img_path self.img_paths[idx] img cv2.imread(img_path) img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) if self.transform: img self.transform(img) return img, img_path # 返回原圖路徑用于保存結(jié)果 def main(): # 參數(shù)可直接修改 img_dir inference/ # 輸入文件夾 output_dir inference_results/ # 輸出文件夾 model_path checkpoints/best_model.pth device torch.device(cuda if torch.cuda.is_available() else cpu) # 創(chuàng)建輸出目錄 os.makedirs(output_dir, exist_okTrue) # 定義 transform僅歸一化無(wú)增強(qiáng) transform transforms.Compose([ transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]) ]) # 加載模型 model UNetWithResNet34(num_classes1) checkpoint torch.load(model_path, map_locationdevice) model.load_state_dict(checkpoint[model_state_dict]) model.to(device) model.eval() # 推理 dataset InferenceDataset(img_dir, transformtransform) dataloader DataLoader(dataset, batch_size1, shuffleFalse) for img_batch, img_paths in dataloader: img_batch img_batch.to(device) with torch.no_grad(): pred model(img_batch) pred torch.sigmoid(pred) 0.5 pred pred.cpu().numpy().astype(np.uint8) * 255 # 轉(zhuǎn) uint8 # 保存結(jié)果原名 _result for i, img_path in enumerate(img_paths): orig_name os.path.splitext(os.path.basename(img_path))[0] result_path os.path.join(output_dir, f{orig_name}_result.png) # 保存為單通道 PNG非 RGB cv2.imwrite(result_path, pred[i, 0]) # pred[i,0] 是 H×W p a hrefhttps://download.csdn.net/download/qq_44886601/88808947 stylecolor:#ec7500;font-size:14px; 本文還有配套的精品資源點(diǎn)擊獲取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产精品熟女乱伦| 亚洲综合小说另类图欧美视频激情小说色五月天| 国产人妻精品久久久一区二区三区 | 极品后入免费视频| 国产美女mm131爽爽爽爽| av东京热男人的天堂| 亚洲精品xxx| 美女黄色91| 欧美日韩电影一区二区| 亚洲四虎熟女精品| 青娱乐国产剧情av一区| 九九九九九九九九九九九蜜桃| 三级三久久线久久99久目本WW| 清纯唯美亚洲| 99热在线播放| 日本大香蕉综合网红本杳社区| 日韩一级二级| 69精品久久久久中文字幕| 亚洲天堂资源网| 精品97精品97| 日本超碰97日韩精品人妻| 国产97视频免费观看| 麻豆三极片| 欧洲精品网| 九九视品黄色| 亚洲AV无码天美传媒一区| 无码一区免费在线不卡| www男人天堂| 日韩 人妻 精品| 91丝袜在线观看| 色婷婷日韩精品一区二区三区| 久热久一区二区三区| 日韩精品人妻一| 青青草AV色| 亚洲综合骚逼| 亚洲人成色9999精品久久| 免费看久久久性性| 亚洲无吗在线视频| 亚洲无码99| 国产区性爱在线视频秋霞豆| 久久久免费一级黄片| 无码人妻精品一区二区中文| 欧美日韩国产成人高清| 欧美成年人性爱视频免费观看| 青青青青操国内视频在线| 999久久芭蕾| 国产精品视频电影| 超碰 另类 欧美| 人妻熟女字幕一区二区| 超碰97爽| 精久久久91| 偷拍伦理视频| 美国久久一二三四| 96久久久精品| 加勒比色99999| 久草久日| 色欲久久99精品久久| 日韩资源网| 欧美亚洲玖玖玖| 91狠狠色丁香婷婷综合久久精品| 黄色小视频日本txt| 超碰在线香蕉| 亚洲天堂男人在线| 人妻酒店出差被中出免费在线播放| 日欧美色| 骚鸭AV| 91制服丝袜| 日韩综合97p| 亚洲熟女诱惑| 久久性爱视频免费看| 黄色片A级一区二区三区| 国产精品一区二区手机看片| 国产一区二区精品久久99| 成人精品一区二区91毛片不卡| 国产成人精品无码久久| 国产精品三级视频网站| 清清一区二区三区四区不卡视频| 锕锕好爽 死我在线观看| 免费99精品国产自在在线| 欧美色图片色哟哟| 成年人黄色视频免费| 亚洲精品国语在线播放| 亚洲欧美中文一区二区三| 3p国产欧美99热| 午夜天堂精品久久久久91| 96AV精品| 久久视频,这里只有精品| 台湾佬中文娱乐网久久久久久久久久com| 久久九九热| 97亚洲精品超碰| 超碰在线人妻中文字幕| 熟女人妻一区二区三区| 歐美一級亂黃99在綫精品| 国产精品久久久久999| 久热热| 久久产精品一区二区三区电影| 天天看夜夜看日日干| 中日韩久久久| 天堂日本亚洲欧美| 欧美色亚洲色| 一区二区精品日韩欧美在线观看 | 污电影在线观看| 亚洲深夜福利| 亚洲毛片一级带毛片基地| 久久XX| 大香蕉在线86| 久艹日日日| 日韩欧美中文| 五月激情天| 欧美色日| 欧美偷拍区| 天天日夜夜爽| 三四中文字幕| 性爱1区| 久久这里| 久久亚洲AV无码专区国产精品 | 日韩乱伦影音先锋| 美女久久久久久久| 亚洲色图美腿丝袜| 午夜精品久久一区二区| 淫淫总合网| 欧美啪啪啪91| 中文字幕在线观看二区三区| 99re在线观看| 强奸乱伦AV网址| 97超碰jingpin| 大干人妻| 亚洲精品亚洲人成在线麻豆| 97超碰免费人人性爱| 国产精品999aaa| 这里有精品| 青青草国产一区二区三区| 岛国1区2区3区在线观看| 婷婷三区| 91美女小视频| 久久999久| 天天看精品动漫视频一区| 久久熟妇五十路一区| 超碰97亚洲| 日韩啪啪视频| 亚洲成人精品久久久| 欧美性色网| 狠狠狠狠狠狠| 欧美 亚洲 第一页 | 熟妇人妻精品一区二区视频色欲| 情色大香蕉| 国产 丝袜 欧美中文 另类| 久久精品亚洲东京热色播| 91亚洲影视| 亚洲激情AV| 抽插亚洲无码| 白 大 人妻 区 在线| 精品国产91av一区二区三区| 欧美日韩另类字幕中文| 中文字幕一区二区三区视频播放| 欧美日韩久久精品爱爱| 蜜桃臀 后入 一区 二区 三区 在线| 蜜乳视频网站| 97操97干| 91美女丝袜诱惑视频| 欧美精品宗合| 日韩精品人妻中文字幕久久久| av天堂精品久久| 四虎在线免费视频| 天天射网| 国产成人+综合亚洲+天堂| 超碰97COm中文| 美女超碰978| 国产AV久久野战精品| 麻豆a'v电影| 又大又黄国产| 播播亚洲小说亚洲| 亚州性9| 传媒免费一区二区三区| 99综合网| 激情五月天插| 超碰97护士| 无码精品啪啪啪一区二区三区三州 | 欧美亚洲日韩人妻在线观看| 成人精品在线免费视频| 视频二区熟女人妻| 99自拍B亚洲| 黑人精品成人一区二区三区| 国产特级毛片AAAAAA高潮流水| 成人精品水蜜桃久久久久久久| 玖玖综合.com| 久久9视频| 日韩操逼HD| 欧美激情1区| 抽插爽| 91麻豆天美国产欧美日| 户外裸露刺激视频第一区| 中出91视频| 九九热五区| 丁香五月影院| 男人的天堂网免费| 丰满人妻一区二区三区| av网站在线观看了| 精品午夜福利导航| 熟妇人妻精品一区二区| 东京热99999| 中文字幕55555| 在线视频日韩欧美国产| 丁香婷婷久久 | 超碰日韩美妻| 日韩少妇在线视频| 后入福利视频| 精品人妻一区二区三区视频| 天天色怡春院| 久久婷婷国产一区二区色| 牛牛AV人人夜夜澡人人爽| 欧美色交| 午夜精品久久久久久久久久久久久 | 人妻第一页| 熟女少妇一区二区三区| 亚洲中文sv| 又黄又硬又粗又长国产视频| 素人伊尹大香蕉免费下载视频| 中文字幕女同在线| 99久久9| 欧美色图人妻| 亚洲九九视频在线观看| AV色五月天| 蜜桃狠狠色伊人亚洲综合| 热久久99999| 日本91白丝| 中文字幕交换人妻| 亚洲最大网站av| 国产精品久久久鸭无码的功能| 色黄污美女啪啪啪免费网站| 综合免费无码中文| 人人操人人操草草| 26uuu国产| 亚洲精品一区中文字幕乱码| 五月激情在线| 欧美白嫩女HD| 熟妇高潮二区三区| 欧美综合1性辶| 九九热三级片| 最新无码国产| 东北丰满熟女国产一区 | 亚码激情| 玖玖爱一区在线| 欧洲与亚洲欧美精品中文字幕| 天天欧美欧美亚洲网| 日韩内射视频| 超碰碰激情97+久| 日本道日本道中文字幕日本道最新日本道在线观看 | 人人插人人搞人人操| 亚洲精品人妻吞精av | 嫩草 我啊~嗯~在线| 国产自产22区| 亚洲综合第一页| 天天草天天日| 色婷婷电影网| 狠狠躁天天躁日日躁| 日本黄页视频在线观看| 亚洲在线91| 台湾成人无码AV| 日本女人操逼| 亚洲色欲一区二区三区| 亚洲色图欧美色图制服诱惑| 呻吟 欧美 日本 中出| 中文字幕AV中出| 91看黄片| 激情第四色| 五十路熟女工口| 久久久久久中文| 亚洲第一页综合在线| 久久69| 日韩 欧美 另类 人妻| 日韩成人小视频| 丁香婷婷五月| 91爱综合| 操熟女91| 婷婷色在线| 亚洲综合小视频小说在线观看| 亚洲不卡一| 强奸乱伦 亚洲一区| 国产一级αv免费看片| 精品人人| 99热在线播放| 日韩精品一区二区三区色欲| 麻豆 亚洲 97| 麻豆国产精品午夜视频| 人人人人人人少妇| 九草在线大香蕉| 91色婷婷综合久久中文字幕二区| 亚洲美女av无码| 99热最新网址| 神马久久免费电影观看| 人人考人人摸人人干| 蜜桃丰满熟妇av无码区不卡| 在线播放一级无码视频| 欧美最婬乱婬爆婬性视频 | 欧美色www亚洲国产阿娇要播| 在线看片国产精品每日更新| 九九九九九用不成了| 国产无码久久高清| 亚洲国产欧美日韩人妻日中文| 在线小说视频一区| 亚洲精品天堂久久A∨51成人漫| 天天干天天日天天射黄色大片| 91N综合网| 久久国产免费激情视频| 天天欧美欧美亚洲网| 91N综合网| 动漫爆乳3D奶水一区在线观看| 欧美日韩人妻婷婷一区| 亚洲中文一区二区三区| 99国内熟女露脸视频| 精品人妻中文字幕4399| 嗯~啊~快点 死我视频免费看网站| 精品久久无码午夜福利| 97内射偷拍| 久久午夜鲁丝片| 尤物av网站| 人人操欧美风骚| 97玖玖人妻| 欧美v日韩v亚洲v最新在线| 久操婷婷| 国产精品日日摸夜夜添骚逼| 精品免费1| 999综合网| 九月丁香婷婷| 色在线亚洲视频www| 99re在线观看| 无码精品一区二区三区潘金莲| 久久精品国产99国产精品亚洲| 2019精品国产无码成人| 精品美女久久一二三| 欧美,日韩综合久久| 欧美特黄视频网站| 天天欧美色| 三级精品三级在线观看| 综合自拍| 日韩在线97| 爆操无码| 放黄片放3级黄片没穿衣服| 亚洲熟女乱色| 免费一级a毛片久久久久久鸭绿欲| 丝袜狠狠草尤物 91| 大香蕉九九| 白嫩少妇| 精品人妻视频一区二区在线播放| 国产在线76页| 嫩草美女久久| 日本在线伊人啪啪| 久久中文色图| 91呆哥人妻| Sekablack无码一区| 亚洲国产中文字幕| 欧美熟妇乱码在线一区| 色婷婷五月综合| 色屁屁影院www国产| 超碰97.com| 91 亚洲 欧洲| 激情小说成人日本无码一| 亚洲成成熟女人综合一区二区| 嗯阿好爽好紧| 久久人人看| 国产精品盗摄 偷窥盗摄| 日韩无码服务区| 欧美久久婷| 97干在线视频| 国产AV毛片| 天堂男人网| 啊啊啊啊啊好舒服视频| 狠狠躁AV| www.91色综合| 国产自偷自拍一区| 人人操人人叉人人插人人| 另类图片综合| 大香久久| 色99久草| 中文字幕二区| 亚洲素人网| 久草综合京东| 91色女| 亚州精人品大香蕉| A片三级无码| 操逼天美3区| 中文字幕三四区| 久久精品视| 久久男人的天堂国产| 中文字幕狠狠玩| 日本三级一区二区 在线| av三级电影在线播放| 97精品人妻一二三四| 91日产欧美| 人妻一区久久二区三区色播| 人妻精品综合中文字幕在线| 欧美日韩夜夜| 亲子敌伦对白在线播放| 狠狠操使劲操| 久久精品国产AV一区二区三区| 激情综合网亚洲| 94色色电影网| 久久青青草在线视频| 久久久久国色αv免费观看| 激情小说亚洲视频| 99re不伦| 美女久久久久久久| 3571色综合一区二区二区| 久久久网站| 欧美激情综合色综合啪啪五月| 十八禁成人网站在线观看| 搡老女人老妇女AAA一VU麻豆 | 欧美激情久| 新视频sss国产| 久久久久78| 人妻激情在线视频| 久久6热精品99视频| 日日骚精品视频| 啊啊啊好大好湿| 2019午夜福利视频| 大香蕉中文网| 亚洲综合另类小说色区亚洲成av人片在www | 九九热国产| 久久久96| 日韩人成网站在线播放| 91一起操| 五十路熟女工口| 天天操熟妇| BBBBB97COM| 国产色综合亚洲色综合吹潮| 51一区二区三区| 国产女人高潮视频| 男人 天堂 日 亚洲| 欧美日韩操逼动图| 亚洲中文制服诱惑| 久久精品夜色国产亚洲AV| 春色91| 久久久99免费| 久久久久成人亚洲国产| 天天干天天拍| 国产熟女精品区| 日本97久久| 一本一道久久综合久久| 日韩欧美日韩| 无码人妻丰满热妇又大又粗| 99久久这里只有精品| 神马久久久久久久久久久久| 深夜激情| 亚洲欧美综合区自拍另类| 久久亚洲婷婷| 加勒比AV天堂| 久久AV无码AV| 婷婷久久网| 大香蕉欧美伊| 久久久久99999| 欧美日日操| 久久精品欧美一区蜜桃| 亚洲精品国产熟女久久久| 久久大| 国产树林里野战在线看| 久久久久久九九九九-美女久久久久久久-成人AV| 在线情色电影 91大| 91狠狠综| 99热精品免费| 色欧美色交综合| 爽极品影院| 玖玖视频在线资源一区二区三区| 久久久9 9 9精品| 亚洲在线a| 国产99 中文字幕日韩小视频| 成人五月天色网| 国产精品97视频| 综合天天。| 超碰无码加勒比| 久久九九网| 午夜福利在线合集| 少妇人妻好深太紧了vr91| 精品久久久av| 97综合久第一页| 国模精品娜娜一二三区| 无码操逼天堂| 欧美黄片视频在线观看免费| 91色综合色| 国产AV激情无码久久无码| 久久久久久九九九九-美女久久久久久久-成人AV | 天天日熟妇| 亚洲一曲日韩精品| 久久久网一区| 色综合天天| 色欲色香天天天综合网www-亚洲综合国| 久久久久久久久999| 激情五月天丁香| 小骚逼被操的爽不爽| 日韩乱伦AⅤ| 伊人久久大香线综合无码| 插入逼91| 亚洲欧洲无码97久久精品| 亚洲巨爆乳一区二区三区四季网| 黄色大片一区二区密桃丝袜| 五月天婷婷在线看 | 久久天天艹| 亚洲97p| 黄色小视频日本txt| 青操影院| 婷婷久久久| 久久人妻一区二区三区高清| 国产视频不卡在线观看| 欧美亚洲今日在线| 亚洲精品97在线| 久久亚洲欧美中文字幕国语| 中国黄色特级精品一区二区三区片| 久久视频,这里只有精品| 亚洲图片欧洲图片aⅴ| 少妇蹲下买菜露大唇0| 久久久一区二区三区四曲免费听| 最新日本中文字幕| 大香蕉之青青草原| 蜜桃久久一区二区三区| 乱操乱伦AV| 中文字幕三四区| 久久超碰98| 加勒比无码一区二区三区| 91九色丨风韵犹存| 欧美伦乱爱| 91一起操| 国产精品福利资源在线尤物| 超碰 国产熟女精品一区| 久操热线| 精品无码一区二区三区| 亚洲情色 无码专区| 大香蕉伊人久久| 97免费在线| 久草精品一区 | 中文字幕后石码三区四区| 99re只有精品| 狠狠色婷婷| 大二网站亚洲| 亚洲天堂资源在线| 国产精品久久久久久久久久久久久久久久| 99久久久久| 91久久九九精品国产综合| 青青草国产一区二区三区| 艹我哪美一区无码| 人人插人人摸人人| 69视频入口| 欧美BT 亚洲色图| 久久綜合很很很| www.色婷婷| 国产熟女完整版中字| 天天肏天天干| 久久久久久久久久久精| 久久內射| 毛片17S| 婷婷久久综合| 久久婷婷电影网| 色路综合| 欧美视频一区二区在线| 亚洲激情视频| 视频在线观看一二三区| 99色视频| 色色五月丁香| 国产网站在线播放| 免费福利视频中文字幕| 视频国产成人精品日本亚洲18| 97国产超湿| 另类小说五月天| 人、人、摸,人、人、草| 91深夜夜| 日韩操逼性鲍| 不卡中文字幕aⅴ在线| 日日超碰亚洲| 亚洲毛片基地专区| 无码人妻1727| 日夜伊人网| 久久超碰网| 易易A毛视频| 色九久| 高精欧美色| sewuyueav| 一本色道综合久久欧美日韩精品| 99热销国产这里有精品| www.人人摸在线视频| 另类视频在线| 日本 免费 一区二区三区 久久香蕉| 蜜色网色哟哟| 69人妻精品丰满熟女区| 青青草白白色| 怡春苑东京热| 亚洲一二三四区在线免费看视频| 人妻天天爽夜夜爽2| 久久成人午夜狠狠| 久久久女人| 亚洲男人天堂AV| 国产精品午夜AV完会免费| 91天天看| 日韩乱中文| 一区二区三区精品视频| 亚洲91少妇| 日欧美色| 日韩八十路老熟女| 91亚洲黄色网| 蜜臀无码视频在线观看| 91骚妇| 神马久久69| 日日骚av| 亚洲无992tv| 一区二区三区黄片免费观看| 色婷亚洲五月在线观看| 久久黄黄| 男人网站婷婷| 国产成人五月天丁香花| 成人性交午夜免费片| 亚洲同性aV综合| 97色碰| 欧美亚洲| 色老汉玖玖爱| 男人天堂久久精品不卡| 淫荡网址| 色欲日韩欧美在线一区| 午夜精品一区二区三区三上悠亚| 先锋音影AV| 日韩人妻无码不卡网站| 日本高清免费一本视频在线观看| 国产小u女在线观看| 日韩三四五区| 插B在线观看| 国产成人在线观看网址| 五月天婷精品激情| 男人天堂站| 懂色av中文字幕| 18禁止看精品中文字幕| 五月香婷婷| 亚洲男人的天堂网| 婷婷色综合欧美日韩| 91精品伊人久久久大香线蕉91| 亚码激情| 加勒比人妻综合| 亚洲美女AV无码| 啪啪综合网| 后入福利视频| 亚洲乱伦图片视频| 91色五月俺来也| 精品国产AV一区天美传媒| 亚洲成人无码影院| 久草综合视频| 制度丝袜99| 成人日本精品九区| 麻豆综合一区av| 800zy一区二区| 91黄站| 亚洲风情综合网| 乱欲一区二区| 超碰午夜在线| 日本精品一级二级三级| 91爽啪| 天天亚洲| 97人肏| 激情一区二区| 婷婷亚洲综合| 美女诱惑久久| 99激情视频| 亚洲 欧美综合| 亚洲国产精品有声| 欧美亚洲厕所精品偷拍91| 中文人妻av高清一区| 欧美色九九九| 国产在线视频二区| 69人妻精品一区二区绯色| 91亚洲狠狠色| 18禁精品网站在线看| 日韩AV电影网站| 七月丁香婷婷| 国产极品999| 女人天堂av在线播放| 丝袜制服字幕在线| 日韩欧美福利视频看看| 久久只有精品一区二区三区| 乱伦熟妇一区二区| 操b网站亚洲无码| 日本国产亚洲一区在线观看| 啊啊啊啊啊啊好湿好爽视频| 亚洲天天操| 色婷婷影视| 麻豆天天躁天天揉揉AV| 这里只有精品视频在线| 大肥女高潮bbwbbwhd视频| 蜜臀AV一区二区三区激情综合| 夜草网站| 亚洲欧洲第二视频在线观看色图| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 老熟女中文字幕高清| 中国女人内射6XXXXX| 丰满少妇精品一区二区| 婷婷AV一区二区三区| 欧美人妖内射| 综合久久97| 天天看人人操屄犊摸阴| 一级黄色性爱A级片| 五月天人妻综合| 熟女人妻av在线资源,黄色的资源| 日韩欧美性吧婷婷乱伦大香蕉| 操人妻逼91| 1禁看欧美黄片免费看| 香蕉国产97| 91人人看| 热99这里只有精品| 秋霞Av理论一级在线| 久久精品国产久精国产| 九九热视频在线观看| 秋霞Av理论一级在线| 无码久| 熟妇熟女视频一区二区三区| 国产一级137片内射麻豆| 欧美黑人91| 手机av天堂久久久久| 免费伦费视频在线观看| 丝袜亚洲综合| 夜夜嗨一区二区三区三州加勒比| 日本天天吊| 中文久久爆乳| av一区二区三区四区| 极品人妻少妇综合| 亚洲 另类 丝袜 自拍 动漫| 熟女六十路| 啪啪啪精品| 熟妇女伦乱视频| 曰韩少妇无码| 五月天伊人| 天天做天天爽| 嫖老熟女A片一二三区| 欧美成人性活片| 欧美日韩青操| 91色噜噜狠狠| 久草网站免费在线观看| 亚洲综合97| 亚州综合图片| 午夜欧美J进J出白浆流出久久久| 狠狠爱综合| 丰满高潮18xxxx| 免费福利视频中文字幕| 果冻传媒A片一二三区| 少妇一区二区三区在线观看| 丁香五月色| 精品超碰国产| 综合久久欧美| 综合欧美激情网| 午夜福利激情在线视频| 97欧美日韩精品| 热热色AV| 亚洲国产成人福利在线观看| 欧美岛国精品在线观看| 啊啊啊啊网站| 91色狼| 97精品一区二区三区免费| 日韩精品三级片长长久久| 一区二区三区日韩欧美 | 国产成人免费观看在线视频| 免费自拍三级综合| 久久久99免费| 国产一区二区三区免费视频在性观看| 秋霞Av理论一级在线| 久久专区| 国产精品女aA片爽爽视频| 亚洲超碰97| 精品在线蜜臀| 亚洲精品99999| 久久精品一区二区一8| 中国一级αV| 成人小说另类在线| 国产高清精品一区二区三区毛片 | 人人操人人操草草| 日韩精品在线观看网站| 91人妻素女| 欧美国产伊人久久久久| 在线无码操| JULIA一区二区三区在线播放| 天天日B夜夜干B时时操B| 思思热影视| 国产伦乱91| 综合欧美日韩在线观看| 久操精品网| 夜夜操狠狠操| 亚洲夜色在线| 蜜桃精品一区二区三区ww| 熟女日韩| 欧美日韩国产中文精品字幕自在自线,| 久久久久久久久久久97| 日本99一区二区| 久污| 亚洲人久久久久日| 精品人妻免费观看| 加勒比在线视频一区二区三区| 午夜精品久久久久久久99蜜桃一| 欧美99热| 男人天堂站| 欧美手机在线综合| 欧美色涩| 日韩Va亚洲va欧美Ⅴa久久| aaa一级黄片| 97视频在线免费看| 色综合超碰超| 国产精品9999| 性色生活片久久毛片婬片免费放女人一级毛片 | 芊芊操逼视频无码| 超碰97日韩| 日韩性爱啪啪视频| 人人摸人人干人人拍97| AV 少妇 人妻 偷拍| 啊啊啊啊操死我了| 夜夜嗨一区二区三区直播内容| 人人操人人93| 国产福利一区二| 大香蕉免费乱伦视频| 夜夜嗨一区二区| 97精品97久久| 亚洲激情片| 国产成人精品亚洲日本| 亚洲中文电影| 97免费在线观看| 免费在线观看国内色片网站网址| 白丝1区2区3区| 日韩有码回春沙龙第一页| 亚洲无码电影久久久| 欧美另类精品xxxx| 婷婷中文字幕| 亚洲综合一| 色老大| 日本影视久久免费| 亚洲激情网一二三四区| 中文字幕精品三级久久久| 中文?日韩?免费?精品| 色九月婷婷| 亚洲综合校园春色| 激情天天视频| 国产亚洲 中文欧美久久| 老司机福利社视频在线观看| 福利操逼| 射欧美综合| 亚洲不卡三级手机播放| 狠狠狠狠狠干| 男生通女生屁股| 久久久精品视频免费观看| 亚洲欧美日韩有码| 婷婷久久五月综合激情| 好吊妞转入那个网| 后入人妻无码| 久热伊人| 欧美日韩中文字幕不卡| WWW黄片COM| 呻吟 欧美 日本 中出| 新久久AV| 亚州乱码中文字幕综合久久久| 色色97爱| 日韩一性一交一A片俄罗斯| 啊啊好多水| www亚洲免费| 欧美另类自拍 | 性开放中文AV高清无码免费看| 夜夜综合| 久久久久久久九九九九九九| 天天碰操中国年青熟妇| 中美日韩毛片| 国产又黄又粗又猛大片| 综合网~91综合网| 亚洲影院无码在线| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV | 亚洲色图一区二区三区| 女优视频第10页| 亚洲欧美另类图片| 日本三级中国三级99人妇网站| 久久久久久久久久黄色网| 丰满岳乱妇一区二区三区| 97丝袜亚洲在线播放| 欧美成人一级免费电影| 久久久久久人| 亚洲天堂电影精品一区| 久操91视频| 四季AV一区二区凹凸精品小说| 国产精品毛片?v一区二区三区| 日日骚精品视频| 手机看片1024你懂的国产| 男生通女生屁股| 97天天搞在线| 亚洲性爱电影| 人妻少妇久久| 97日本超碰综合| 黄色大片免费在线| 欧美精品久久| 五月天伊人| 在线人成亚洲视频免费观看| 97一区二区三区视频| 操美女高潮抽搐白浆| 天天综合-91入口| 欧美成人9797| 成年无码动漫av片无尽在线 | 欧美日韩国产色五月综合在线 | 91久久| 欧美一区二区成人一卡| 久久激情亚洲精品无码?V| 亚洲视频精选| 校园春色亚洲无码| 99.色网| 国产强奸超碰AV| 久久久性| 成人夜夜| 婷婷激情一区二区三区俺也去| 国产原创剧情在线丝袜| 少妇久久久| 超碰到97情色| 综合网~91综合网| 丁香六月激情综合| heyZO天然素人无码AⅤ专区| 青青伊人久久| 黄色AV影视| 亚洲九月丁香| 超碰免费人妻人人| 72av视频| 99在线啪| 97超久碰| 韩国一区二区精品亚洲| 天天视频综合在线观看视频| 插入逼91| 亚洲欧洲综合| 人妻精品一区一区三区蜜桃91| 人人操天天爽| 天天日天天插| 亚洲 自拍偷拍 欧美| 另类老少妇| 性性欧美| 久久的网站啊啊啊啊啊| 久热91| 91强热人妻| 国产日韩欧美中文在线播放 | 粉嫩绯色AV一区二区在线| 日本人妻中文字幕| 狠狠爱综合网| 久9精品| 日本高清加勒比| 亚洲av总站| 97AV爱| 色人久久| 在线性黄高清免费视频| 最新三级网址| 翔田千里AⅤHD无码| 狠狠操使劲操| 超碰色老头| 72av视频| 欧美综合网站999| 91N综合网在线| 婷婷三区| 久操高青| 久久久久久久久久久六六| 99综合免费视频| 日本污ww视频网站| 操逼逼无码| av天堂手机版追回| 日韩精品黄片免费观看| 啪啪啪精品视频| 顶级丝袜熟女一区二区三区| 色五天伊人| 老熟妇一区二区三区…| 人人操人人摸人人看人人干| se01国产在线视频| 国产 日韩 欧美高清| 天天综合网日韩| 97超碰欧美精品| 欧美色综合网| 一本大道久| 国产97/欧美| 亚洲色图欧美色18直播在线| 天天摸天天舔天天操| A一级色女| 四虎在线观看网站| 大香蕉啪啪啪啪在线| 97网址97| 精品免费囯产一区二区三区 | 精品超碰中文在线| 婷婷丁香熟妇综合网| 99精品在线观看| 欧美专区第一页| baiduhicn.com。| 国产吹潮女在线观看| 一本大道青青| 九九九热| 欧美日韩另类在线| 精品一区二区人妖| 五月天激情婷婷| 刺激性视频黄页| 操逼999| 欧美在线电影| JIZZJIZZ亚洲女人被躁| 国产欧美在线观看免费观看| 午夜视频好爽啊| 国产高清在线观看欧美| 亚洲福利中文字幕在线| 精品少妇一区二区三区免费观看| 色色99| 人人超碰在线观看黄| 91精品免费| 600国产精品视频| 国产人妖的免费的视频| 国产一区二区三区精品观看啪| 国产刺激视频| 97超级欧美| 91情色在线| 日熟女| 99热精品在线在线| 亚洲情色婷婷五月天| 今日头条成人一区二区三区四虎精品| 欧美爆操91| 欧美精品不卡一二三四在线91| 久草午夜| 色噜噜精品一区二区三| 久久欧美1卡2卡3| 精品综合久久久久久97| 怡红院亚洲怡春院av| 88xx成人精品视频| 国产自偷自拍一区| 天天夜夜久久| 日韩成人高清一区二区| 亚洲欧美成人在线| 青青欧洲黑| 国内一区二区免费| 午夜黄色免费在线观看| 天美一二三在线观看Av| 国产精品农村妇女| 亚乱色| 伊人一区二区三区| 91丨人妻丨国产丨丝袜| 日本在线播放不卡一区| 69人妻精品丰满熟女区| 中日韓欧美高清| 精品高清av中文字幕| 电影69乱码96| 亚洲骚逼少妇| 一级特级aaaa毛片免费观看| 强奸xx国产| 日韩成人人妻网站| 爽极品影院| 婷婷激情一区二区三区俺也去| 久久有码视频| av在线免费一区二区| 玖玖97综合 | 国产白领连续中出在线播放| 国产色图乱伦| 97超碰国产亚洲精品资源| 久久一二三四五六七八九区| 日韩精品国产一区二区| 99爱久久视频频| 99re在线| 素人播放一区| 欧美色性情| AV九九| 国语精品av| 丁香九月激情啪| 久久精品无码熟妇一区二区三区视频导航 | 国产精品久久久| 午夜精品久久久久久久男人的天堂 | 370p日韩欧美亚洲精品| 天美国产三级传媒| 国产97视频| 亚洲欧美国产其他二区| 97久久精品国产| 亚洲国产成人精品女人久久久| 丁香五月性| 少妇内射www在线观看视频| av无线看| 精品久久久不卡一区二区| 天天躁日日躁xxxxx| 人妻人妻天天碰| 在线看片国产精品每日更新| 在线黄色污污网站| jk白丝没脱就开始啪啪| av午夜玫瑰| 91综合站| 欧洲乱码视频| 老司机深夜影院18未满| 欧美淫乱视频| 丝袜美腿制服人妻二区中文字幕 | 国产精品美女在线一区| 97视频新免费| www.超碰在线| 青青草中文字幕| 亚洲色图20p| 草草影院日本第一页| 国产精品高朝久久久久久久| 夜夜草网站| 白丝AV| 精品999日本| 日韩精品视频在线观看一卡二卡| 91天堂丝袜美腿| 韩日精品四区| 日韩中文字幕国产| 亚洲情色综合网| 久久极品一区二区| 两女互慰AV高潮喷水在线观看| 嗯嗯啊啊好大好爽| 国产激情久久久| 爱妃国产亚洲视频中文字幕| 99热日| 97资源制服丝袜| 中国国产精品一区视频| 熟女久久| 激情露脸爱| 久草免费在线一区二区| 大奶的诱惑| 青青草在线成人视频| 免费日韩黄片| 亚洲中字慕不卡| 欧美最婬乱婬爆婬性视频 | 欧美激情综合色综合啪啪五月| 蜜臀久久99精品久久久久久成人小说| 免费看久久久性性| 天天澡天天爽日日AV| 亚州九九九精品视频| 亚洲图片 91| www.大香| 青娱乐休闲视频在线观看| 操淫穴亚洲五月丁香| 97天天爽| 亚洲无线码一区国产欧美国| 中日韩免费看男女操逼大全| 色偷偷超碰亚洲| 嗯嗯嗯啊啊啊操的我好爽 | 可以免费看黄片的视频| 国产白丝网站| 久久久96精品| 色综合超碰超| 麻豆国产成人精品| 台湾佬激情综合| 盗摄 精品 另类 一区| 欧美性爱在线无码| 亚洲av淫乱| 操逼逼福利视频| 久久无码成人| 国产欧美另类久久久精品课程| 美女丝袜激情小说| 亚洲日韩东京热一区| 亚州中文字幕超碰97| 性生活久久久久久久久久| 黄色成品网站| 麻豆九九九| 亚洲色图久久成人| 色婷婷激情| 一级成人性爱| 亚洲图片 欧美电影| 精品国产久久乱码| 亚洲天堂人妻熟妇视频| 女优大全 - 91n| 中文字幕视频2区| 久久久九九网站| 国产熟女完整版中字| 欧美色图在线视频少妇| 91n处女在线观看| 999熟女精品| 国产乱码精品久久久久久| 天天摸夜夜摸| 禁十八久久| 欧亚成人在线视频| 91国产大片| 亚洲熟久久| 91精品人妻五十路| 超碰97久| 亚洲AV色图|