免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

醫(yī)學(xué)圖像分類(lèi)實(shí)戰(zhàn):腎臟數(shù)據(jù)集組織、yolov5訓(xùn)練與混淆矩陣評(píng)估

醫(yī)學(xué)圖像分類(lèi)實(shí)戰(zhàn):腎臟數(shù)據(jù)集組織、yolov5訓(xùn)練與混淆矩陣評(píng)估 簡(jiǎn)介一套針對(duì)腎臟結(jié)節(jié)與腫瘤識(shí)別的醫(yī)學(xué)圖像分類(lèi)數(shù)據(jù)集包含正常、結(jié)節(jié)、腫瘤三種標(biāo)簽專(zhuān)為基于深度學(xué)習(xí)的影像分類(lèi)場(chǎng)景設(shè)計(jì)適用于醫(yī)學(xué)影像入門(mén)實(shí)驗(yàn)、算法驗(yàn)證及競(jìng)賽練習(xí)。數(shù)據(jù)已按照訓(xùn)練集、驗(yàn)證集、測(cè)試集劃分并保存在data目錄下的獨(dú)立文件夾中三類(lèi)圖像數(shù)量分別為訓(xùn)練集2800張、驗(yàn)證集800張、測(cè)試集400張可直接用作卷積神經(jīng)網(wǎng)絡(luò)分類(lèi)或YOLOv5分類(lèi)數(shù)據(jù)集的輸入。資源包共2000個(gè)文件主要由1998張JPG樣本圖組成另含1個(gè)記錄類(lèi)別名稱與索引對(duì)應(yīng)關(guān)系的JSON字典文件以及1個(gè)用于數(shù)據(jù)集可視化的Python腳本整體壓縮包約151.5MB結(jié)構(gòu)簡(jiǎn)潔、便于快速檢查數(shù)據(jù)質(zhì)量。目前已有299人學(xué)習(xí)下載類(lèi)別字典清晰標(biāo)注類(lèi)別與索引的對(duì)應(yīng)關(guān)系可視化腳本便于快速檢查樣本減少數(shù)據(jù)整理與預(yù)處理的繁瑣步驟。對(duì)于希望快速獲得劃分完善、格式規(guī)整醫(yī)學(xué)圖像數(shù)據(jù)的研究者這套資源能顯著縮短實(shí)驗(yàn)前期準(zhǔn)備時(shí)間。1. 醫(yī)學(xué)圖像分類(lèi)的第一步這份腎臟數(shù)據(jù)集的目錄里藏著什么做醫(yī)學(xué)圖像分類(lèi)的人最怕的不是模型選型而是數(shù)據(jù)本身沒(méi)收拾利索。標(biāo)簽對(duì)不上、圖片混在一起、訓(xùn)練驗(yàn)證切分不干凈這些問(wèn)題往往在項(xiàng)目過(guò)半時(shí)才暴露一返工就是幾天。這次拆的資源是一份已經(jīng)劃分好的腎臟結(jié)節(jié)、腫瘤圖像識(shí)別數(shù)據(jù)集3 分類(lèi)正常、結(jié)節(jié)、腫瘤訓(xùn)練集 2800 張、驗(yàn)證集 800 張、測(cè)試集 400 張按文件夾組織好還帶類(lèi)別字典 json 和一個(gè)可視化腳本可以直接喂給 yolov5 分類(lèi)模式或任意分類(lèi)網(wǎng)絡(luò)。拿到手之后我的第一感覺(jué)是這省掉的不是下載時(shí)間是整理數(shù)據(jù)的時(shí)間。很多開(kāi)源數(shù)據(jù)集只給一堆散圖和一個(gè)標(biāo)注文件你得自己寫(xiě)腳本按標(biāo)簽歸文件夾、按比例切分稍不注意就漏圖或者路徑寫(xiě)錯(cuò)。這份資源把 train、valid、test 三套目錄都鋪好了圖片按類(lèi)別歸類(lèi)路徑即標(biāo)簽。對(duì)剛上手醫(yī)學(xué)圖像分類(lèi)的開(kāi)發(fā)者來(lái)說(shuō)可以直接跳過(guò)數(shù)據(jù)預(yù)處理這個(gè)最容易翻車(chē)的環(huán)節(jié)直接進(jìn)入訓(xùn)練和調(diào)參對(duì)熟手來(lái)說(shuō)省掉的是重復(fù)造輪子的時(shí)間把精力放在類(lèi)別邊界和模型評(píng)估上。2. 拆開(kāi)數(shù)據(jù)集看門(mén)道目錄、類(lèi)別字典與 4000 張圖的分布邏輯2.1 train / valid / test 三份目錄yolov5 分類(lèi)模式默認(rèn)的數(shù)據(jù)組織方式我第一次拿這份資源時(shí)先做的不是訓(xùn)練而是把目錄結(jié)構(gòu)和文件數(shù)量完整數(shù)了一遍。分類(lèi)任務(wù)和檢測(cè)任務(wù)不一樣檢測(cè)要讀 xml 或 txt 標(biāo)注分類(lèi)任務(wù)最簡(jiǎn)單可靠的組織方式就是「一個(gè)文件夾一個(gè)類(lèi)別」文件夾名就是標(biāo)簽。yolov5 的 classify/train.py 正是按這個(gè)約定讀數(shù)據(jù)的它內(nèi)部用 torchvision 的 ImageFolder 機(jī)制指定根目錄后會(huì)自動(dòng)掃描子目錄把每個(gè)子目錄名當(dāng)作一個(gè)類(lèi)別。# 在項(xiàng)目根目錄執(zhí)行查看數(shù)據(jù)集目錄樹(shù) tree -L 3 datadata/ ├── train/ │ ├── normal/ # 正常腎臟影像 │ ├── stone/ # 腎結(jié)石 / 結(jié)節(jié) │ └── tumor/ # 腫瘤 ├── valid/ # 有些版本寫(xiě)作 valyolov5 兩個(gè)寫(xiě)法都認(rèn) │ ├── normal/ │ ├── stone/ │ └── tumor/ └── test/ ├── normal/ ├── stone/ └── tumor/數(shù)完目錄我心里的預(yù)期是 train 2800、valid 800、test 400實(shí)測(cè)后跟摘要對(duì)得上。這里的邏輯說(shuō)明很簡(jiǎn)單yolov5 對(duì)訓(xùn)練集和驗(yàn)證集目錄名有約定train 和 valid或 val是它掃描的固定關(guān)鍵詞test 目錄在訓(xùn)練階段不會(huì)被動(dòng)用只在推理或最終評(píng)估時(shí)使用。參數(shù)說(shuō)明一下如果目錄名寫(xiě)的是 validation 而不是 valid 或 val那個(gè)文件夾會(huì)被忽略模型把驗(yàn)證集當(dāng)成了不存在這個(gè)問(wèn)題我見(jiàn)過(guò)不止一次。2.2 類(lèi)別字典 json從文件夾名到訓(xùn)練標(biāo)簽的映射關(guān)系數(shù)據(jù)文件夾本身已經(jīng)把標(biāo)簽寫(xiě)在路徑里了那 json 文件還有什么用它解決的是「數(shù)字標(biāo)簽」和「語(yǔ)義標(biāo)簽」的對(duì)應(yīng)關(guān)系。模型輸出的 argmax 結(jié)果是個(gè)整數(shù)比如 0、1、2你總得知道 1 到底代表結(jié)節(jié)還是腫瘤這就是類(lèi)別字典存在的意義。import json with open(data/classes.json, r, encodingutf-8) as f: class_dict json.load(f) print(class_dict) # {0: normal, 1: stone, 2: tumor} # 具體鍵值順序以你下載到的 json 為準(zhǔn)這里只是示例 # 反向映射訓(xùn)練時(shí)模型輸出 0/1/2通過(guò)它轉(zhuǎn)成可讀類(lèi)別 idx_to_name {int(k): v for k, v in class_dict.items()} name_to_idx {v: k for k, v in idx_to_name.items()}邏輯說(shuō)明這段代碼把 json 讀進(jìn)來(lái)后同時(shí)生成了兩個(gè)方向的映射。訓(xùn)練階段用 name_to_idx 把文件夾名轉(zhuǎn)成目標(biāo)張量驗(yàn)證和推理階段用 idx_to_name 把模型輸出轉(zhuǎn)成可讀的類(lèi)別文字。參數(shù)說(shuō)明json 里的鍵不一定是字符串形式的數(shù)字有的資源直接寫(xiě)的 {normal: 0}如果你拿到的是這種結(jié)構(gòu)把 int(k) 那行去掉就行讀取前先 print 一下原文件是標(biāo)準(zhǔn)動(dòng)作。有一個(gè)容易忽略的點(diǎn)torchvision 的 ImageFolder 在掃描子目錄時(shí)是按字典序生成 class_to_idx 的和 json 里定義的順序不一定一致。如果你的類(lèi)別名是 normal、stone、tumor按字母序恰好是 normal0、stone1、tumor2和 json 一致算運(yùn)氣好如果類(lèi)別名是中文或者首字母大小寫(xiě)混亂就要以 ImageFolder.class_to_idx 的實(shí)際結(jié)果為準(zhǔn)拿 json 來(lái)校驗(yàn)而不是拿來(lái)直接替換。2.3 show 腳本先可視化再訓(xùn)練省掉一半冤枉路資源里附帶了一個(gè) show 腳本我的習(xí)慣是在任何訓(xùn)練開(kāi)始前先跑它。醫(yī)學(xué)圖像分類(lèi)的視覺(jué)檢查和自然圖像不一樣很多圖片在普通人眼里長(zhǎng)得幾乎一樣但模型要學(xué)習(xí)的紋理特征就藏在這些細(xì)微差異里。腳本的作用是把每個(gè)類(lèi)別隨機(jī)抽幾張圖拼成網(wǎng)格展示出來(lái)確認(rèn)圖片能正常讀取、沒(méi)有黑圖或損壞文件順便對(duì)類(lèi)別特征有個(gè)直觀印象。import matplotlib.pyplot as plt import os import random from PIL import Image data_root data/train classes [d for d in os.listdir(data_root) if os.path.isdir(os.path.join(data_root, d))] fig, axes plt.subplots(len(classes), 4, figsize(12, len(classes) * 3)) for row, cls in enumerate(classes): cls_dir os.path.join(data_root, cls) imgs os.listdir(cls_dir) sample random.sample(imgs, min(4, len(imgs))) for col, img_name in enumerate(sample): img Image.open(os.path.join(cls_dir, img_name)) axes[row, col].imshow(img) axes[row, col].set_title(f{cls}) axes[row, col].axis(off) plt.tight_layout() plt.show()邏輯說(shuō)明這段腳本遍歷訓(xùn)練集下每一個(gè)類(lèi)別文件夾每個(gè)類(lèi)別隨機(jī)抽 4 張圖拼成一行網(wǎng)格。random.sample 做的是無(wú)放回抽樣避免同一張圖重復(fù)出現(xiàn)。參數(shù)說(shuō)明figsize 的第二項(xiàng)用 len(classes) * 3 動(dòng)態(tài)計(jì)算高度類(lèi)別越多圖越高min(4, len(imgs)) 是為了防止某個(gè)類(lèi)別的圖片數(shù)量不足 4 張時(shí)報(bào)錯(cuò)這屬于防御性寫(xiě)法資源里每類(lèi)都遠(yuǎn)超 4 張但寫(xiě)腳本時(shí)保留這個(gè)保護(hù)沒(méi)壞處。跑完 show 腳本我還習(xí)慣順手統(tǒng)計(jì)一下每個(gè)子目錄的具體數(shù)量這一步在分類(lèi)任務(wù)里的重要性超出很多人想象具體原因下一章展開(kāi)講。如果 show 腳本跑出來(lái)個(gè)別圖片是純黑或者明顯是損壞文件趁早剔除而不是等訓(xùn)練到一半 loss 異常再去排查。3. 把圖片喂進(jìn)模型yolov5 分類(lèi)模式與通用 CNN 兩條訓(xùn)練路線3.1 yolov5 分類(lèi)模式命令行訓(xùn)練與關(guān)鍵參數(shù)說(shuō)明這份數(shù)據(jù)集直接兼容 yolov5 的分類(lèi)模式這是最快跑通 baseline 的路線。yolov5 倉(cāng)庫(kù)里 classify 目錄下提供了獨(dú)立的訓(xùn)練入口不需要額外寫(xiě)數(shù)據(jù)加載器目錄結(jié)構(gòu)滿足約定后一行命令就能開(kāi)訓(xùn)。git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt # 使用官方分類(lèi)模型做預(yù)訓(xùn)練權(quán)重在腎臟數(shù)據(jù)集上微調(diào) python classify/train.py \ --model yolov5s-cls.pt \ --data ../kidney_dataset/data \ --epochs 50 \ --img 224 \ --batch 64 \ --name kidney_cls_run1這段命令的邏輯說(shuō)明--data 指向數(shù)據(jù)集根目錄yolov5 會(huì)自動(dòng)尋找該目錄下的 train 和 valid或 val子目錄--model 指定模型結(jié)構(gòu)同時(shí)加載官方在 ImageNet 上預(yù)訓(xùn)練好的權(quán)重遷移學(xué)習(xí)可以顯著加速收斂--img 224 是把輸入圖縮放到 224×224這是分類(lèi)模型在 ImageNet 上的標(biāo)準(zhǔn)輸入尺寸改成 320 或 640 可以提升小目標(biāo)細(xì)節(jié)的辨識(shí)度但顯存占用和訓(xùn)練時(shí)間會(huì)同步上漲。參數(shù)說(shuō)明里有兩個(gè)值得單獨(dú)拎出來(lái)--batch 64 依賴 GPU 顯存在 8GB 顯存以下的卡上建議降到 32 或 16否則會(huì)出現(xiàn) CUDA out of memory--name 是實(shí)驗(yàn)標(biāo)簽yolov5 會(huì)把權(quán)重和日志存到 runs/train-cls/name 目錄下?lián)Q一組超參就換一個(gè) name這是最簡(jiǎn)單的實(shí)驗(yàn)管理方式。訓(xùn)練完成后結(jié)果目錄里會(huì)自動(dòng)生成 confusion matrix 和 results.png那個(gè)混淆矩陣圖就是后文要重點(diǎn)看的東西之一。我一般會(huì)先跑 50 個(gè) epoch 看 loss 曲線是否正常下降再?zèng)Q定要不要加時(shí)間。醫(yī)學(xué)圖像數(shù)據(jù)集通常比自然圖像更「難學(xué)」因?yàn)轭?lèi)間差異小50 個(gè) epoch 往往還不夠收斂如果還有時(shí)間預(yù)算加到 100 epoch 效果會(huì)更好。yolov5 分類(lèi)模式默認(rèn)會(huì)做早停patience 默認(rèn) 100所以不用太擔(dān)心過(guò)擬合跑太久。3.2 通用 CNN用 torchvision 的 ImageFolder 手寫(xiě)一個(gè)數(shù)據(jù)加載器如果不想綁定 yolov5想自己控制模型結(jié)構(gòu)或做更精細(xì)的數(shù)據(jù)增強(qiáng)torchvision 的 ImageFolder 是最順手的加載方案。它做的事情正是章節(jié) 2.2 里說(shuō)的掃描根目錄下的子文件夾把文件夾名映射成整數(shù)標(biāo)簽返回 (圖像張量, 標(biāo)簽) 配對(duì)的數(shù)據(jù)集。這與本數(shù)據(jù)集的「文件夾保存」方式是完全對(duì)應(yīng)的不需要額外寫(xiě)標(biāo)簽解析邏輯。import torch import torch.nn as nn from torchvision import datasets, transforms, models # 訓(xùn)練集增強(qiáng)隨機(jī)水平翻轉(zhuǎn) 顏色擾動(dòng)抑制醫(yī)學(xué)圖像過(guò)擬合 transform_train transforms.Compose([ transforms.Resize((224, 224)), transforms.RandomHorizontalFlip(p0.5), transforms.ColorJitter(brightness0.2, contrast0.2), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]), ]) # 驗(yàn)證集只做縮放和歸一化不做隨機(jī)增強(qiáng) transform_val transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]), ]) train_ds datasets.ImageFolder(data/train, transformtransform_train) val_ds datasets.ImageFolder(data/valid, transformtransform_val) test_ds datasets.ImageFolder(data/test, transformtransform_val) train_loader torch.utils.data.DataLoader( train_ds, batch_size32, shuffleTrue, num_workers4, pin_memoryTrue) val_loader torch.utils.data.DataLoader( val_ds, batch_size32, shuffleFalse, num_workers4, pin_memoryTrue) # 用 ResNet18 做遷移學(xué)習(xí)把最后一層全連接換成 3 分類(lèi) model models.resnet18(weightsmodels.ResNet18_Weights.IMAGENET1K_V1) model.fc nn.Linear(model.fc.in_features, 3) criterion nn.CrossEntropyLoss() optimizer torch.optim.Adam(model.fc.parameters(), lr1e-3)邏輯說(shuō)明ImageFolder 返回的數(shù)據(jù)集對(duì)象自帶 classes 和 class_to_idx 兩個(gè)屬性classes 是文件夾名列表class_to_idx 是名字到數(shù)字的映射建議打印出來(lái)和類(lèi)別字典 json 對(duì)一遍防止字母序?qū)е碌臉?biāo)簽錯(cuò)位。驗(yàn)證集的 transform 不能帶隨機(jī)增強(qiáng)否則每次評(píng)估結(jié)果都有波動(dòng)無(wú)法橫向比較。參數(shù)說(shuō)明num_workers 在 Windows 上如果報(bào)多線程錯(cuò)誤就改成 0pin_memory 只在 GPU 訓(xùn)練時(shí)有意義CPU 訓(xùn)練可以刪掉。這里的優(yōu)化器只傳了 model.fc.parameters()意思是凍結(jié)主干網(wǎng)絡(luò)只訓(xùn)練新加的分類(lèi)頭先用這個(gè)配置跑通流程確認(rèn) loss 能降下來(lái)再解凍全部層做精調(diào)可以省一次從頭冷啟動(dòng)的時(shí)間。對(duì)比 yolov5 路線和通用 CNN 路線前者勝在開(kāi)箱即用日志、可視化、早停都內(nèi)置了后者勝在可控性強(qiáng)想換 loss、改 backbone、加自定義增強(qiáng)都方便。兩份數(shù)據(jù)是同一套切換路線的成本只在于重寫(xiě)數(shù)據(jù)加載器而這一節(jié)代碼可以直接復(fù)用到后續(xù)所有分類(lèi)實(shí)驗(yàn)里。3.3 loss 曲線的正常形態(tài)與異常形態(tài)跑通之后看什么不管用哪條路線訓(xùn)練起來(lái)之后第一件事是盯 loss 曲線。一個(gè)正常的訓(xùn)練過(guò)程train loss 在前 10 個(gè) epoch 應(yīng)該有明顯的下降趨勢(shì)val loss 緊隨其后下降但始終比 train loss 高一些。如果 val loss 先降后升而 train loss 還在降那就是過(guò)擬合信號(hào)需要增強(qiáng)正則化或提前停止。數(shù)據(jù)顯示這張表的對(duì)比場(chǎng)景我在 yolov5 的訓(xùn)練日志里整理過(guò)幾類(lèi)常見(jiàn)形態(tài)寫(xiě)在這里可以當(dāng)一份速查表用loss 曲線形態(tài)可能原因處理方式train/val loss 都不降學(xué)習(xí)率過(guò)大或過(guò)小、數(shù)據(jù)沒(méi)對(duì)齊先調(diào)到 1e-4 試跑 10 epoch確認(rèn)數(shù)據(jù)路徑正確train loss 降、val loss 升過(guò)擬合加數(shù)據(jù)增強(qiáng)、增大 weight_decay、提前停止兩個(gè) loss 都震蕩劇烈batch 太小或?qū)W習(xí)率偏大增大 batch 或降低學(xué)習(xí)率loss 為 NaN學(xué)習(xí)率過(guò)大、輸入含 NaN 像素用小學(xué)習(xí)率重啟檢查圖片是否損壞這里有個(gè)血淚經(jīng)驗(yàn)如果 train loss 在第一個(gè) epoch 就降到接近 0但不是收斂而是「假擬合」多半是標(biāo)簽和數(shù)據(jù)對(duì)不上——比如所有圖片被當(dāng)成同一類(lèi)。遇到這種詭異情況第一時(shí)間打印一個(gè) batch 的 data 和 label 出來(lái)人工核對(duì)不要急著調(diào)參這是深度學(xué)習(xí)圖像識(shí)別項(xiàng)目里最常見(jiàn)的「黑匣子」陷阱。4. 三類(lèi)標(biāo)簽的四個(gè)暗坑正常、結(jié)節(jié)、腫瘤容易翻車(chē)的地方4.1 類(lèi)別不平衡先數(shù)數(shù)再訓(xùn)練別等 loss 異常才回頭分類(lèi)任務(wù)里第一個(gè)暗坑就是類(lèi)別不平衡。摘要說(shuō)訓(xùn)練集總量 2800 張但沒(méi)保證三個(gè)類(lèi)別各 933 張現(xiàn)實(shí)是醫(yī)學(xué)圖像數(shù)據(jù)集里正常樣本往往比腫瘤樣本多得多。如果某個(gè)類(lèi)別只有 500 張而另一個(gè)有 1300 張模型會(huì)傾向于把模糊樣本預(yù)測(cè)為多數(shù)類(lèi)整體準(zhǔn)確率可能不低但少數(shù)類(lèi)的召回率會(huì)很難看。import os from collections import Counter def count_images(root): counter Counter() for cls in os.listdir(root): cls_path os.path.join(root, cls) if os.path.isdir(cls_path): counter[cls] len(os.listdir(cls_path)) return counter for split in [train, valid, test]: print(split, dict(count_images(fdata/{split})))邏輯說(shuō)明這段代碼統(tǒng)計(jì)每個(gè)集合下每個(gè)類(lèi)別的圖片數(shù)量輸出形如 {normal: 1200, stone: 800, tumor: 800} 的字典。拿到數(shù)量后做兩件事一是確認(rèn)每個(gè)類(lèi)別數(shù)量都在可訓(xùn)練范圍內(nèi)二是算一下最少數(shù)量的類(lèi)別能不能支撐訓(xùn)練。參數(shù)說(shuō)明如果發(fā)現(xiàn)某個(gè)類(lèi)別只有一兩百?gòu)堄袃煞N處理路徑一是對(duì)少數(shù)類(lèi)做過(guò)采樣在 DataLoader 里設(shè) sampler 按類(lèi)別權(quán)重抽樣二是用類(lèi)別權(quán)重加權(quán)損失函數(shù)把 torch.nn.CrossEntropyLoss 的 weight 參數(shù)設(shè)為 [1.0, 1.2, 1.5] 這類(lèi)與樣本量成反比的值。這是一個(gè)容易被忽略的地方驗(yàn)證集和測(cè)試集的比例分布也必須看一眼。很多項(xiàng)目訓(xùn)練集是平衡的但驗(yàn)證集因?yàn)殡S機(jī)劃分湊巧不平衡導(dǎo)致評(píng)估結(jié)果虛高或虛低。這份資源已經(jīng)劃分好了我們省了切分的力氣但「數(shù)數(shù)」這一步不能省。4.2 數(shù)據(jù)泄漏同一來(lái)源的圖片被拆進(jìn) train 和 valid醫(yī)學(xué)圖像和自然圖像有一個(gè)本質(zhì)區(qū)別同一病人的多次掃描切片之間高度相似。如果劃分?jǐn)?shù)據(jù)時(shí)只按文件名隨機(jī)打亂同一個(gè)案例的相鄰切片很可能同時(shí)出現(xiàn)在訓(xùn)練集和驗(yàn)證集里模型等于提前看過(guò)答案驗(yàn)證集指標(biāo)會(huì)虛高上真實(shí)場(chǎng)景就露餡。這張表的坑怎么識(shí)別看文件名。這份資源的文件名自帶.rf.加一串哈希的后綴如果多張圖片的哈希前綴相同大概率來(lái)自同一次標(biāo)注批次或同一個(gè)病例。檢查方法很簡(jiǎn)單對(duì)所有文件名提取哈希段統(tǒng)計(jì)同一個(gè)哈希前綴下的圖片是否被分到了不同集合。import os, re from collections import defaultdict def check_leakage(data_root): seen defaultdict(set) for split in [train, valid, test]: split_dir os.path.join(data_root, split) for cls in os.listdir(split_dir): cls_dir os.path.join(split_dir, cls) if not os.path.isdir(cls_dir): continue for fname in os.listdir(cls_dir): m re.search(r\.rf\.([a-f0-9]), fname) if m: seen[m.group(1)].add(split) leak {k: v for k, v in seen.items() if len(v) 1} return leak leak check_leakage(data) if leak: print(f發(fā)現(xiàn) {len(leak)} 組同源圖片被分到多個(gè)集合需重新劃分) else: print(未發(fā)現(xiàn)跨集合同源圖片)遇到數(shù)據(jù)泄漏時(shí)不要慌如果只是個(gè)別圖片串集直接刪掉測(cè)試集里那些同源圖片就行。如果比例很高要考慮重新劃分?jǐn)?shù)據(jù)劃分依據(jù)是哈希前綴而不是單張圖片文件名。這就是這份資源「按文件夾劃分好」背后的另一層價(jià)值劃分邏輯是可見(jiàn)的排查起來(lái)有跡可循。4.3 類(lèi)別字典與 ImageFolder 的索引順序不一致這個(gè)坑非常隱蔽我翻車(chē)過(guò)一次。ImageFolder 在構(gòu)建 class_to_idx 時(shí)按文件夾名的字典序排序如果類(lèi)別文件夾是 normal、stone、tumor索引恰好是 0、1、2但如果有人把文件夾命名成 normal、tumor、stone比如按創(chuàng)建時(shí)間排的那索引順序就變成 normal0、tumor1、stone2而類(lèi)別字典 json 里可能是 stone1、tumor2兩者對(duì)不上模型訓(xùn)練時(shí)的監(jiān)督信號(hào)就全亂了。# 打印 ImageFolder 實(shí)際生成的標(biāo)簽映射和類(lèi)別字典 json 對(duì)比 print(train_ds.class_to_idx) # 例如 {normal: 0, stone: 1, tumor: 2} # 讀取 json 里的映射 with open(data/classes.json, r, encodingutf-8) as f: json_map json.load(f) print(json_map) # 如果兩者不一致以 ImageFolder 為準(zhǔn)因?yàn)橛?xùn)練時(shí)用的就是它排查方法很簡(jiǎn)單把兩行打印結(jié)果并排對(duì)照。理論上這份資源在打包時(shí)已經(jīng)做過(guò)一致性校驗(yàn)但下載文件的版本可能不同json 也可能被編輯過(guò)跑這一步只需要一分鐘值得做。如果發(fā)現(xiàn)不一致解決方式是修改 json 字典的鍵順序而不是去改文件夾名因?yàn)槲募A名改起來(lái)牽連太多。4.4 隨機(jī)劃分的「看似隨機(jī)實(shí)則不隨機(jī)」最后一類(lèi)坑出在復(fù)現(xiàn)上。有人訓(xùn)練同一個(gè)模型兩次結(jié)果差異很大于是開(kāi)始懷疑模型問(wèn)題或者環(huán)境問(wèn)題但其實(shí)問(wèn)題出在數(shù)據(jù)加載順序。PyTorch 的 DataLoader 在 shuffleTrue 時(shí)用全局隨機(jī)數(shù)生成器洗牌如果不固定種子每次跑數(shù)據(jù)順序都不同結(jié)果自然不同。這在調(diào)參階段是災(zāi)難你不知道指標(biāo)變好是參數(shù)生效了還是隨機(jī)性帶來(lái)的。def seed_everything(seed42): import random import numpy as np random.seed(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed_all(seed) seed_everything(42)這段代碼要在訓(xùn)練腳本的最頂部執(zhí)行并且在 DataLoader 創(chuàng)建之前。參數(shù)說(shuō)明PyTorch 的 DataLoader 還可以單獨(dú)傳入 generator torch.Generator().manual_seed(42) 來(lái)控制洗牌隨機(jī)性這樣即便全局種子被其他庫(kù)污染數(shù)據(jù)順序依然可控。固定種子的價(jià)值在于讓每一次實(shí)驗(yàn)可復(fù)現(xiàn)這是深度學(xué)習(xí)項(xiàng)目從「玄學(xué)」走向「工程」的分水嶺。5. 圖像識(shí)別算法繞不開(kāi)的三件收尾驗(yàn)證分類(lèi)報(bào)告、混淆矩陣與誤判圖5.1 分類(lèi)報(bào)告別盯著準(zhǔn)確率看每類(lèi)的 precision / recall / f1訓(xùn)練結(jié)束后第一步跑測(cè)試集評(píng)估。很多人只看整體準(zhǔn)確率這對(duì)三分類(lèi)任務(wù)來(lái)說(shuō)遠(yuǎn)遠(yuǎn)不夠尤其在三個(gè)類(lèi)別數(shù)量不完全均衡時(shí)準(zhǔn)確率會(huì)被多數(shù)類(lèi)主導(dǎo)。sklearn 的 classification_report 一行代碼輸出每個(gè)類(lèi)別的精確率、召回率和 F1這三列合起來(lái)才能反映模型對(duì)每個(gè)類(lèi)的真實(shí)辨識(shí)能力。import torch from sklearn.metrics import classification_report, confusion_matrix device torch.device(cuda if torch.cuda.is_available() else cpu) model.to(device) model.eval() y_true, y_pred [], [] with torch.no_grad(): for images, labels in test_loader: images images.to(device) outputs model(images) _, predicted torch.max(outputs, 1) y_true.extend(labels.cpu().numpy()) y_pred.extend(predicted.cpu().numpy()) target_names list(train_ds.classes) print(classification_report(y_true, y_pred, target_namestarget_names))邏輯說(shuō)明model.eval() 是關(guān)鍵它關(guān)閉 dropout 和 batch norm 的訓(xùn)練行為否則同一張圖多次推理結(jié)果不同。torch.max(outputs, 1) 取的是每個(gè)樣本在 3 個(gè)類(lèi)別上的最大得分索引也就是模型的預(yù)測(cè)類(lèi)別。參數(shù)說(shuō)明target_names 直接取 ImageFolder 的 classes 屬性保證報(bào)告里的行順序和訓(xùn)練時(shí)一致不要手寫(xiě)類(lèi)名列表省得順序?qū)戝e(cuò)。這個(gè)報(bào)告還會(huì)輸出 macro avg 和 weighted avg前者是每個(gè)類(lèi)指標(biāo)的算術(shù)平均后者按樣本數(shù)加權(quán)兩者差距大說(shuō)明模型在少數(shù)類(lèi)上表現(xiàn)偏弱。5.2 混淆矩陣看模型把哪兩類(lèi)搞混了分類(lèi)報(bào)告給的是數(shù)值匯總混淆矩陣給的是錯(cuò)誤分布的具體位置。一個(gè) 3×3 的矩陣第 i 行第 j 列表示「真實(shí)類(lèi)別 i 被預(yù)測(cè)成 j」的樣本數(shù)對(duì)角線是預(yù)測(cè)正確的數(shù)量。看混淆矩陣我一般先找非對(duì)角線的最大值那個(gè)位置就是模型最容易混淆的類(lèi)別對(duì)。cm confusion_matrix(y_true, y_pred) print(混淆矩陣行真實(shí)列預(yù)測(cè)) print(cm) # 找出錯(cuò)誤最集中的位置 import numpy as np np.fill_diagonal(cm, 0) # 把對(duì)角線置零后剩下的最大值就是最嚴(yán)重的混淆 worst np.unravel_index(np.argmax(cm), cm.shape) print(f最嚴(yán)重混淆: 真實(shí){target_names[worst[0]]} - 預(yù)測(cè){target_names[worst[1]]}, 數(shù)量 {cm[worst]})對(duì)腎臟三分類(lèi)數(shù)據(jù)來(lái)說(shuō)最常見(jiàn)的混淆發(fā)生在結(jié)節(jié)和腫瘤之間因?yàn)閮烧咴谟跋裆系奶卣鬟吔绱_實(shí)模糊。如果混淆矩陣顯示 normal 和 stone 之間錯(cuò)誤很多那可能是標(biāo)注本身有問(wèn)題或者圖片采集條件不一致這時(shí)候去調(diào)模型是徒勞的要回頭查數(shù)據(jù)質(zhì)量。這一節(jié)里做的所有評(píng)估動(dòng)作本質(zhì)是回答一個(gè)問(wèn)題模型學(xué)到了什么又在什么地方學(xué)錯(cuò)了。5.3 誤判圖可視化把錯(cuò)誤樣本打出來(lái)看別再黑匣子調(diào)參混淆矩陣告訴你「哪里錯(cuò)了」誤判圖告訴你「錯(cuò)的是什么樣」。把預(yù)測(cè)錯(cuò)誤的樣本整理成網(wǎng)格畫(huà)出來(lái)標(biāo)題同時(shí)標(biāo)注真實(shí)類(lèi)別和預(yù)測(cè)類(lèi)別以及置信度分?jǐn)?shù)這一步對(duì)醫(yī)學(xué)圖像分類(lèi)尤其有價(jià)值。import matplotlib.pyplot as plt misclassified [] model.eval() with torch.no_grad(): for images, labels in test_loader: images, labels images.to(device), labels.to(device) outputs model(images) prob, pred torch.max(torch.softmax(outputs, dim1), 1) for i in range(len(labels)): if pred[i] ! labels[i]: misclassified.append((images[i].cpu(), labels[i].item(), pred[i].item(), prob[i].item())) if len(misclassified) 12: break if len(misclassified) 12: break fig, axes plt.subplots(3, 4, figsize(12, 9)) for idx, (img, true_label, pred_label, conf) in enumerate(misclassified): ax axes[idx // 4][idx % 4] img img.permute(1, 2, 0).numpy() img img * [0.229, 0.224, 0.225] [0.485, 0.456, 0.406] # 反歸一化 img img.clip(0, 1) ax.imshow(img) ax.set_title(f真:{target_names[true_label]}\n預(yù)測(cè):{target_names[pred_label]} ({conf:.2f})) ax.axis(off) plt.tight_layout() plt.show()這段代碼里的反歸一化是常見(jiàn)的坑模型訓(xùn)練時(shí)做了 Normalize 操作顯示圖片前必須用相同的 mean 和 std 還原否則看到的是一張偏色的圖無(wú)法判斷問(wèn)題出在哪。參數(shù)說(shuō)明clip(0, 1) 是為了防止數(shù)值越界導(dǎo)致圖像出現(xiàn)不自然的色塊。每次只取 12 個(gè)誤判樣本人眼能在一張圖內(nèi)快速瀏覽多了反而不容易看出規(guī)律。對(duì)誤判圖的觀察要落到具體模式上比如「所有被誤判成 tumor 的 stone 圖片都有明顯的強(qiáng)回聲區(qū)域」或者「正常樣本里有鈣化點(diǎn)所以被判成結(jié)節(jié)」。當(dāng)誤判呈現(xiàn)出明顯的視覺(jué)規(guī)律時(shí)說(shuō)明數(shù)據(jù)里有干擾特征下一步不是調(diào)模型結(jié)構(gòu)而是考慮加預(yù)處理步驟屏蔽干擾或者人工清理這些邊緣樣本。5.4 softmax 置信度的二次排查低置信度樣本單獨(dú)拎出來(lái)最后一層 softmax 輸出的置信度分布也值得看。醫(yī)學(xué)圖像分類(lèi)的實(shí)用場(chǎng)景里我們往往需要模型在拿不準(zhǔn)的時(shí)候「說(shuō)出來(lái)」而不是硬猜一個(gè)結(jié)果。統(tǒng)計(jì)一下測(cè)試集里置信度低于 0.6 的樣本數(shù)量如果占比很高說(shuō)明模型對(duì)大量樣本都缺乏把握部署時(shí)要考慮設(shè)置置信度閾值低于閾值的樣本轉(zhuǎn)人工審核。這個(gè)動(dòng)作的成本很低但對(duì)落地價(jià)值很大。yolov5 分類(lèi)模式在推理時(shí)會(huì)輸出每個(gè)類(lèi)別的置信度直接加判斷條件即可自己寫(xiě)的模型就是上面代碼里那個(gè) prob 變量。二分類(lèi)里有個(gè)概念叫閾值調(diào)整三分類(lèi)同樣適用只是要對(duì)每個(gè)類(lèi)分別設(shè)定。6. 三分類(lèi)項(xiàng)目收尾技巧把訓(xùn)練配置固化成一張復(fù)現(xiàn)清單訓(xùn)練完成、評(píng)估做完項(xiàng)目還沒(méi)結(jié)束。醫(yī)學(xué)圖像分類(lèi)模型如果要寫(xiě)進(jìn)報(bào)告或者準(zhǔn)備上線最忌諱的是「重啟之后不知道這次實(shí)驗(yàn)用了什么參數(shù)」。我的收尾習(xí)慣是把整次實(shí)驗(yàn)的可復(fù)現(xiàn)信息收斂成一個(gè)訓(xùn)練腳本或配置文件下次任何人跑一遍都能得到同一結(jié)果。# 訓(xùn)練復(fù)現(xiàn)腳本示例每次實(shí)驗(yàn)執(zhí)行前先讀取并記錄環(huán)境狀態(tài) export PYTHONHASHSEED0 python classify/train.py \ --model yolov5s-cls.pt \ --data data \ --epochs 100 \ --img 224 \ --batch 64 \ --seed 42 \ --name kidney_final參數(shù)說(shuō)明里有個(gè)容易被忽略的PYTHONHASHSEED 控制 Python 字符串哈希的隨機(jī)種子不固定它即使在代碼里調(diào)了 random.seed 和 torch.manual_seed某些依賴哈希次序的邏輯比如集合遍歷順序仍可能導(dǎo)致結(jié)果不一致。這個(gè)環(huán)境變量要放在訓(xùn)練命令的同一行 export而不是在 Python 代碼里設(shè)置因?yàn)樗诮忉屍鲉?dòng)前就必須生效。我還會(huì)在訓(xùn)練腳本同目錄下留一個(gè) data_report.txt把每次實(shí)驗(yàn)的數(shù)據(jù)集分布、類(lèi)別字典內(nèi)容、訓(xùn)練和驗(yàn)證的準(zhǔn)確率記錄在同一份文件里。這樣一個(gè)月后回來(lái)看不用重新打開(kāi)任何一個(gè)權(quán)重文件就能快速回憶起當(dāng)時(shí)的數(shù)據(jù)條件和模型表現(xiàn)那份文檔比模型權(quán)重本身更能說(shuō)明問(wèn)題。分享一個(gè)從不例外的習(xí)慣不管項(xiàng)目多急最后一輪實(shí)驗(yàn)完成后我強(qiáng)制自己用 10 分鐘把「數(shù)據(jù)集版本 劃分文件 訓(xùn)練命令 最終指標(biāo)」四件事寫(xiě)進(jìn)倉(cāng)庫(kù) README 里。做過(guò)的醫(yī)學(xué)圖像分類(lèi)項(xiàng)目里被返工最多的從來(lái)不是模型性能不夠而是后來(lái)者不知道當(dāng)時(shí)的實(shí)驗(yàn)是怎么配出來(lái)的。這類(lèi)資源真正的價(jià)值是幫你把數(shù)據(jù)從「看懂」推進(jìn)到「跑通」——如果這篇拆解幫你少走了彎路希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲久久婷婷| 99色色| 亚洲精品一二三| 天天操综合网站| 五月色丁香| 欧美搡BBBBB摔BBBBB| 丁香色五月天| 99热这里只有精品1998| site:xmssd.com| 97偷拍对白视频| 色五月激情五月天| 丁香五月区| 亚洲成人电影aaaa| 久久九九视频网站| 日本精品在线噜噜噜| 九月婷婷在线视频| 免费看欧美成人A片无码| 99国产精品久久久久久久久久久| 久久婷婷综合五月天| 婷婷五月深情丁香深爱日韩| 任你日视频| 九九亚洲天堂| 青青草婷婷五月天| 国产AV影片| 玖玖爱资源站| 亚洲人成网站999久久久综合| 欧美色性色好| 综合在线色婷婷| 亚州激情网站无码| 婷婷丁香五月视频| 天干天天干天天天天天| 色色综合日韩| 日韩av干| 婷婷六月插屄激情| 甈你aaaaa| 五月天激情综合网站| jiuse91在线| 免费看欧美成人A片无码| 久久九九国产精品怡红院| 开心五月丁香综合久久| 天天综合亚洲综合| 丁香五月天网友自拍啪啪啪视频| 无月播播激情在线观看视频| 婷婷伊人五月天| 欧美性猛交99久久久久99按摩| 五月天激情综合网| 婷综合| 五月色天情| 丁香六月激情综合网| 人妻人人操| 亚洲乱码w在线观看| 日本玖玖在线| 性生活视频98791| 国产操肏网站| 99色综合| 天天干-天天日| 婷婷深爱色五月| 色狠狠999综合网| 婷婷丁香六月| 五月丁香婷婷五月色| 国产1区2区3区在线观| 8区视频在线| 五月婷婷深深爱| 高清国产AV| 丁香九月综合在线| 伊人干综合| 婷婷久久精品| 色狠狠综合| 99热这| 亭亭玉月丁香| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 婷婷开心综合人妻小说网址| 99热中文字幕久久| 中文无码婷婷| 91精品激情9| 久久婷婷丁香花综合网| 婷婷五月色影视先锋| 久热超碰91| 亚洲人妻av| 性色播| 五月天婷五月天综合网在线观| 婷婷五月天激情偷拍| 日本五月婷婷久久久六月丁香| 丁香八月综合激情| 夜夜大香蕉婷婷丁香| 99精品久久| 五月丁香婷婷综合网| 天天干天天干天天| 久久久久网站| 丁香五月第四色88| 日本久久99| 六月色婷婷| 亚洲激情六月| WWW.桔色成人.COM入口| 最新久久网址| 天天久久九九| 狠狠操.com| 西瓜美女a片| 五月丁香六月婷婷激情网| 久婷婷| 欧洲MV日韩MV国产| 99re热精品在线视频| 婷婷五月天亚洲天堂| 婷婷五月激情在线视频| 色五月婷婷色五月| 1999天天操夜夜操| 激情五月综合| 999热这里只有精品| 亚洲碰碰碰| 思思re99视频在线观看| 99ri国产精品| 日日射天天射| 天天日日夜夜| 91久久1118| 久热这里只有精品视频6| 色婷婷AV在线| 夜夜AVV| www.91色| 超碰99在线| 综合久色五月| 九九热区一区二区三区| 午夜婷婷| 色99热| 99热骚货| 婷婷色情 | 97碰碰视频在线观看免费| 五月丁香婷婷五月色| 丁香六月狠狠干| 大香伊人久色| 丁香五月六月欧美| 青青草大香| 天天色天天搡| 人妻内射视频| 婷婷导航| 99这里只有| www亚洲无码| 五月天开心婷婷久久| AV在线大香蕉| 亚洲激情AV| 婷婷色五月在线视频| 国产古装妇女野外A片| 97干欧美| 六月激情婷婷| 天天草狠狠擦| 久久精品五月天| 色婷婷婷婷| 操熟女成人网| av一区免费看| 狠狠爱五月婷婷| 在线看AV| 开心五月深爱五月| 2020日日干| 五月婷亚洲精品| 3p九色在线| 色婷婷丁香五月在线| 久久香蕉影院| 久久五月网| 五月天偷拍| 五月丁香久人妻中文| 婷婷丁香97| 综合久久高清| 国产精品人成A片一区二区| av在线观看免费| 精品久久99码| 五月天开心婷婷久久 | 五月丁香综合色婷婷| 五月丁香六月婷婷综合免| 亚洲免费看片| 色五月丁香五月婷婷五月成人网 | 啪啪啪五月天| 国产色视频网站2| 久色资源网| 91干在线视频| 97久久超碰| 久久九九爽| 99久久极情精品一区| 2015好吊操| 疯狂做受XXXX高潮A片| 激情婷婷五六月天| 亚洲四色五月| 夜夜爽天天爽| 五月激情婷婷在线| 97人人干| 操逼电影免费看| 丁香五月六月综合激情| 五月花婷婷| 99啪| 九九这里精品| 婷婷丁香五月天影院 | 夜夜操夜夜姧| 六月婷婷七月丁香| 五月丁香| 色婷婷888| 丁香综合婷婷开心激情网| 人人操91| 丁香六月狠狠干| 日本三级中文字幕| 色婷婷XXXXX| 激情婷婷丁香| 女人被男人吃奶到高潮| 五月丁香婷婷在线综合蜜桃| 婷婷五月天丁香成人社区| 日本久久人| 九九家庭影院| 亚州操操| 综合久久激情久久| 九九热视频在线观看| 欧美综合五月丁香六月婷| 久re热视频| 亚洲综合五月天| 婷婷五月综合激情免费视频| 丁香五月综合激情久久潮喷| 欧美久久网| 国产在线aaa片一区二区99| 五月天婷婷无码视频| 色综合色色色色色| 99久久婷婷国产综合精品草原| 日本不卡一区二区三区| 538在线精品| 丁香五月综合网亚洲综合欧美狠狠| 久久伦乱| 色综合香蕉| 成人国产欧美大片一区| 久久免费精彩视频| 97人妻碰碰中文无码久热丝袜| 婷婷丁香激情五月天色色| 欧美色图天堂网色| 九色PORNY在线精品酒店| 拍真实国产伦偷精品| 亚洲欧美婷婷五月色综合| 天天艹夜夜爽| 人妻性爱| 色五月丁香总合网| 播五月婷婷开心| 4399高清无码视频| 婷婷伊人75| 色五月情| 都市激情亚洲| av在线观看网址| www.婷婷六月天| 丁香九月综合| 色五月婷婷综合在线| 丁香五月亚洲无码| 少妇口诉沐足视频播放器网址| 九九av| 色婷婷最新域名| YW无码| 日韩成人中文| 婷婷久草| 91在线就要啪| 五月丁小婷婷激情四射| 九色综合网| 色五月婷婷中文字幕| 超碰在线视屏| 中文字幕成人| 五月婷婷天| 五月天精品视频| 婷婷性爱五月天| a久久| 精品人妻伦一二三区久久| 第四色在线观看| 婷婷五月天小说| 亚洲激情婷婷| 久久久精品人妻| 色伊人婷婷| 曰曰久久| www.丁香五月| 国内9l视频自拍老熟女九色| 精品九九网| 亚洲成人中文字幕| 婷婷天堂综合| 无码少妇高潮喷水A片免费| 婷婷综合一二三| 婷婷丁香六月天激情四射网| www,色综合| 丁香五月最新网址| 在线另类| 五月天自拍视频| 国产淫熟妇| 婷婷色情小说| 国产精品国产| 大香蕉人妻| 免费看欧美成人A片无码| 婷婷五月欧美综合| 91疯狂操操操操| 91精品国产99久久久久久天美| 五月天开心色情网| 天天插轮理| 色色丁香色五月| 99精品亚洲| 99碰碰| 最新高清无码专区| 色五月大香蕉婷婷| 天天综合久久| 久久精彩视频18| 综合久久五月| 亚洲区,视频区,视频区免费| 色 五月婷婷基地| 日韩九九| 国产精品99久久久久久久女警| 91九色超碰| 欧美成人日韩| 婷婷美女精品视频| 播播网色播播| 五月天婷婷成人网| 久久宗合影| www.激情五月天。com| 五月色情婷婷开心五月色情| 黄色一级影片| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 五月深爱激情网| 影音先锋色婷婷| 26uuu精品一区二区| 超碰色综合| 久久在线视频只有这里有精品| 婷婷五月激情欧美大胆视频| 五月天婷婷基地| 情婷婷五月天| 激情六月下句是什么| 激情网开心网| 亚洲色热| 国产激情av| 五月天激情网址| 丁香五月天亚洲综合| 亚洲成人中心| 九九久久9 9在线观看| 超碰在线中文字幕| 婷婷色成人| 99久热这里只有精品| 97luluse| 婷婷五月天伦理| 青青草轻轻操| 色色色婷婷| www天天干| 91丨九色丨熟女|老版| 四川女人毛多水多A片| 婷婷狠狠18禁久久| 色五月婷婷亚洲最大| 欧美内射AAAAAAXXXXX| 91色九| 亚洲丁香网| 狠狠穞A片一區二區三區| 91热网址| 9九色首页| 中文字幕欧美精品久久| 五月激情网站| 日本玖玖在线| 五月丁香综合在线| 五月亭久久无码视频| 激情www| 丁香五月婷婷啪啪| 91一起艹| 婷婷色中文字幕| 丁香婷婷超碰 | 婷婷五月亚洲激情| 五月婷婷色| 99操视频| 日良久久| 99网址在线看| 六月丁香中文字幕| 99在线精品视频| 色五月激情| 91久久网站| 婷婷五月天日逼| 中文av网| 五月丁香综合久久| 色婷青青| 99热精品在线播放| 玖玖精品婷婷| 99碰碰| 另类专区在线| 五月婷婷久久综合| 激情久久五月网| 婷婷五月天天| 开心五月深爱五月| 婷婷综合网站| 少妇人妻丰满做爰XXX| 婷婷五月天天| 五月天丁香啪啪啪啪| 蜜臀av 粉嫩av 懂色av| 99综合| 婷婷人人操| 亚洲五月婷| 91狠狠色丁香婷婷综合久久精品| 亚洲综合激情五月久久| 五月天婷婷婷| 婷婷五月天成人网| XX色综合| 大香线蕉伊人| 婷婷丁香97| 色五月婷婷激情综合网| 五月天丁香婷婷视频网址 | 99久久网站| 亚洲人成网亚洲欧洲无码久久| 婷婷欧美| 五月婷婷啪啪啪啪| 九九综合九九| 国产毛片精品一区二区色欲黄A片| 色小说五月婷婷| 亚洲AV电影av| 五月天播播| 亚洲av综合网| 激情五月黄色| 色色五月天丁香| 五月天天天操天天爽夜夜操| 精品九九久久| 丁香五月天堂| 婷婷色综合av| 五月天婷婷色小说| 欧美精品999| 69精品人人人人人人人人人| 五月丁香六月| 五月婷婷色情| 激情婷婷| www一起操| 欧美性做爰大片免费看办公室| 伊人五月成人| 久热这里这里有精品| 曰本aaaaaa丈片| 99久久性爱| 五月天激情啪啪| 五月丁香综合啪啪| 婷婷七月丁香色色| 男人大jjc女人免费视频| 激情综合网址| 婷婷深爱五月天| 久热这里只有精品在线观看| 欧美日本国产欧美日本韩国99| 黑人糟蹋人妻HD中文字幕| 五月天激情视频| 五月综合亚洲| 激情婷婷综合| 久久久WWW| 五月婷婷激情啪啪| 久久婷婷五月天激情新地址| 大香蕉av在线| 亚洲综合成人网| 五月综合色| 婷婷激情欧美| 婷婷五月天伊人网在线观看视频| site:hcxsz888.com| 91日综合欧美| 色都都狠狠色都都色综合色| 日本久久激情| 日韩AV在线影片| 99爱视频在线| 极品人妻VideOssS人妻| 五月丁香婷婷综合网| 亚洲99热| 五月天婷婷综合免费| 婷婷五月丁香五月基地| 婷婷五月四狠狠| 日韩肏屄网| av五月天婷婷丁香| 97久久精品视频| 国产精产国品一二三在观看| 婷婷久久五月天| 亚洲超碰在线| 超碰免费在线| 五月综合视频| 97人人射| 久久久久久久11111111111| 欧美在线干| 五月天婷婷激情| 激情五月综合| 日韩黄色影院| 日韩成人影片网站| 色婷婷激情Av久久久| 狠狠色婷婷777| 丁香五月Av| 日本五月婷| 婷婷五月丁香综合| AV性爱网| 欧美日本韩国亚洲| 婷婷五月精品| 亚洲色图在线视频| 91人人超碰在线| 婷婷射图五月天| 久久五月天色婷婷| 五月天狠狠网站| 丁香婷婷人妻| 亚洲性爱日韩无码| 久久婷婷五月| 激情綜合W W W,激情五月天| 婷婷成人五月天| 噼里啪啦完整版中文在线观看| 久久在线视频免费观看| 天堂久久久久天堂网| 九久久婷婷| 婷婷五月综合免费在线| 亚洲综合在线播放| 99热这是里只有精品| 五月婷在线色视频| 丁香五月天狠狠| 色婷婷六月天| 亚洲精品V天堂中文字幕| 以及AA大片看看| 伊人综合婷婷| 九九热这里有精品视频| 深爱1激情网| 日本婷婷五月天| 亚洲中文字幕AV| 色欲久久综合| 婷婷五月综合中文字幕| www.色婷婷.com| \\五月天婷婷激情| 亚洲色图日韩网址| 久er免费视频| 97丁香五月| 99在线资源| 六月丁香网| 96丁香婷婷九月蜜桃综合久久| 国产精品成人网站| 69堂午夜视频最新地址| 激情综合网五月激情| 狠狠干综合网| 六月天六月婷| 天天综合插插| 中文字幕,综合,91| 亚洲色综合| 激情碰碰碰| 色噜噜狠狠色综合AV兰草影视| 伊人狠狠干| 97视频久久| 五月激情丁香啪啪| 激情五月综合| 五月天激情视频| 天天干天天拍| 九九热av| 天天爽天天爽| 婷婷综合久久综合| 亚洲欧洲自拍图片专区五月天| 久草热在线视频| 精品国产乱码久久久久夜深人妻 | 国产精品成av人在线视午夜片| 在线网黄| 五月丁香激情综合久久| αv中文字幕在线观| 超碰操网| 激情图片久久| 久久久久视剧HD| 日日操夜夜操狠狠操| 色5月丁香婷婷| 国产做爰视频免费播放| 久久99热这里只有| Av大香蕉| 久久婷婷久久| 国产成人AV在线播放| A片天天| 九九综合视频在线观看| www,久久久| 成人丁香五月婷| 九九精品少妇| 色五月开心久久网| 思思热国产| 亚洲无AV在线中文字幕| 99rewww| 欧美一级色| 久婷久婷| 超碰com| 99碰| 五月天丁香综合| 玖色色综合| www.av骚货| 人人色人人弄人人操| 五月丁香久久网| 天天干夜晚夜操| 婷婷五月色情天| 六月婷婷色综合| 丁香婷婷黄网站| 久久婷婷网站| 五月停亭六月,六月停亭的英语 | 五月天色社区| 婷婷六月丁香在线| 天天综合精品| 色婷婷丁香五月天激情综合网| 国精产品一区一区三区免费视频 | 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 91丨九色丨熟女|老版| 五月婷婷啪啪| 亚洲婷婷91丁香| 99精品久久久久久久婷婷| 五月丁香六月婷婷啪啪| 日狠狠| 婷婷伊在线| 免费无码毛片一区二区A片| 久久五月丁香六月婷| 中文字幕无码人妻少妇免费视频 | 丁香九月婷| 亚洲成人在线播放| 激情网站综合五月天| 久久9热好| www五月天激情com| 久七香蕉| 激情六月婷婷| 五月停停丁香| 久大香蕉| 欧美大片免费播放器| 99亚洲大片精品永久在线观看| 99re欧美精品| www.色婷婷.com| 色很很96| 久久久潮喷-久久久九九-成人AV| 五月天激情四射网站| 五月丁香六月婷| 欧美成人猛片AAAAAAA| 无码色色| 色性综合| 拍色综合| 综合网激情| 国产一二三四五六七八视频| 久天综合| 亚洲日韩操B| 色色色热热热| 久久婷婷六月综合资源| WWW·色色色·COM| 欧美S码亚洲码精品M码| 丁香五月开心亚洲| 我爱va亚洲va52| 色9月| 婷婷五月天小说| 亚洲成人五月| 爱草视频在线| 91精品久久久久久久| 久久人妻熟女一区二区| 91九色国产在线| 69午夜成人影片| 激情综合网五月| 97干干干丁香| 五月丁香黄色视频| 爽天天天天天天天| 色视五月天婷婷| 婷婷的99视频网站| 91刘玥视频在线观看| 欧美色五月| 五月天婷婷成人网| 丁香五月天五码婷婷| 色欲丁香| 狠狠色噜噜狠狠| 亚洲午夜国产成人电影VA国产欧…| 久热伊人| 超碰在线9| 久99热| 精品一区二区三区四区五区六区介绍| 91久久综合亚洲噜噜成人在线| WWW嗯嗯啊啊啊啊| 久久这里有精品| 五月婷婷AV| 丁香五月天天高清在线| 精品福利911| 久99久精品| 激情五月综合| 99精品爱| 亚洲永远av在线播放| 丁香六月婷| 九九99精品视频| 天天干天天色综合| www.ppypp| 五婷婷六月合| 丁香色六月婷婷| 色五月琪琪| 激情亚洲婷婷| 久久婷婷五月综合激情国产| 成人短视频免费观看| 日韩日比视频在线| 久久九九思思| 中文字幕丰满乱孑伦无码专区 | 婷婷婷婷婷婷婷五月丁香| 99激情视频| 五月叮香啪| 激情五月开心五月丁香五月| 综合伊人狠狠| 丁香六月伊人| 亚洲视频色婷婷| 五月丁香在线观看| 婷婷五月婷婷| 婷婷少妇激情| 婷婷色五月天在线观看| 91碰碰碰| 99色在线| 国产婷婷婷| 婷婷丁香18| 99热有精品在线观看| 1024AV视频| 超级碰碰碰久久网站| 丁香五月综合激情久久潮喷| 五月丁了香蕉综合| 97碰| 思思热在线视频精品| 五月综合激情久久| 色综合色欲综合天天免费| 侠女刀之记忆电影在线看免费| 色狠狠999综合网| 精品无码色欲AV| 思思re视频在线| 色吧五月婷婷| 婷婷一本和五月丁香| 中文字幕av网站| 超碰在线超碰| 天天爽爽日日做做| 狠狠色狠狠鲁| www.色五月.com| 九九大香蕉黄色影院| 九九黄色网| 国产精品久久久久久妇女6080| 日韩欧美成人一区二区三区| 五月丿香啪啪| WWW.天天日| 全国最新疫情| 五月天激情国产综合婷婷婷| 久99热| 91打屁股免费看| 五月丁香中文婷婷中文| 无码色色色色色| 深爱五月亚洲| 五月婷婷狠狠干| 风流少妇A片一区二区蜜桃| 五月婷婷丁香综合,亚洲天堂| 亚洲成人高清在线| 五月婷婷 六月丁香| 五月天婷婷在线观看| 六月色色| 午夜激情久久| 丁香六月天婷婷在线| 亚洲色无码| 久久久五月天| 热久久婷婷| 秋霞黄色一级久久| 夜夜躁爽日日| 欧美性生交XXXXX无码小说| 五月婷婷丁香啪啪| 久99久热只有精品国产99| 日本一级特黄大片AAAAA级| 亚洲视频在线观看| 九九色综合网| 99精吕视频在线观看了| 激情丁香婷婷| 1024婷婷综合久久五月天| 五月丁香在线国产| 日本高清久久| 欧美激情久| 五月天成人手机在线视频| www.五月婷婷久久.com| 强奸幻女毛片| 九九这里精品| 六月婷婷综合| 性色婷婷| 九九这里有精品| 乱精品一区字幕二区| 99啪啪视频| 婷婷丁香十月| 久久5 9视频免费观看| 99噜噜噜在线播放| 国产 亚洲 在线| 百度4399有码精品V在线观看| 五月婷婷中文网| 久久久久9| 久久久999精品| 激情五月天偷拍综合网| 久久综合图片| 欧美va亚洲va在线播放| WWW.桔色成人.COM| 亚洲成人色五月天| 99色在线视频| 99精品久久| 97干欧美| 日本久久性| 国产午夜精品一区二区| 亚洲第一第二网站| 啪啪视频99| 五月天久久婷| 伊人综合网站| 欧洲精品欧洲情| 日日噜噜夜夜狠狠久久丁香五月| 五月婷啪| 久久综合干| 中文精品在| 色噜噜97视频在线观看| 97热久久| 色婷婷A| 色五月五月婷婷| 国产色网站| 婷婷六月天天| 99热偷拍| 婷婷丁香五月天婷婷| 日本99久久| 大香蕉AV在线| 婷婷狠狠操| 99热 免费| 熟妇人妻中文字幕无码老熟妇| 国产夫妻操逼内射视频| 亚洲精品国产熟女久久久| 日日天天操| 5月丁香美女影院| 五月婷婷综合在线观看| 五月天大香蕉AV| 婷婷五月色色| 色婷婷99| 亚洲乱码日产精品BD| 操一操| 91热手机在线| 丁香激情久久| 亚洲激情网站无码| 久9综合| 免费亚洲婷婷五月| 在线中文字幕视频| 欧美交换配乱吟粗大25P| 婷婷狠狠五月综合| 久婷自拍视频| 五月天色社区| 日日干干天天干| 伊人激情网| 操碰99| 色综合天天网| 久久久久久18| 欧美黄色AA片哗啦啦啦| www婷婷色情网| 色很久综合| 色色色欧美| 人妻肉射免费观看| 4438成人电影| 丁香婷婷大香蕉| 婷婷五月丁香综合人妻| 97影院一级片| 亚洲亚洲人成综合网络| 天天色天天日| 五月激情丁香久久综合网| 五月丁香六月激情| 超碰超碰在线| www,婷婷五月天,com| 99久久玖玖| 亚洲妇女熟BBW| 五月丁香婷婷综合| 五月婷婷伦理| 色色色色色五月| 99综合网| 99re6久热只有精品6在线直播| 色热久资源| www.色情五月天.com| 婷婷五月天社区| 婷婷va| 热热久久精品视频| 五月天另类图片区99| 香蕉AV777XXX色综合一区| 丁香五月成人网| 伍月激情天| 久久99久久99精品免观看粉| 国模九区| 五月婷婷五月天| 伊人网碰碰| 色丁香五月婷婷在线| 大香蕉综合网| 婷婷五月天激情免费在线观看| 综合激情婷婷| 色色色色色网| 九九爱看亚洲| 丁香五月亚洲激情婷婷射| 五月婷av| 男同91| 久久性爱视频网站| 日本天堂免费99| 丁香五月天BBw| 婷婷亚洲五| 在线网黄| 综合激情在线观看| 99re资源在线视频导航| 丁香五月激情综合| 色综合色色| 五月丁香六月| 无人精品在线视频| 久久婷婷五月天亚洲欧美| 亚洲 精品 综合 精品| AV在线观看网站| 久99精品视频| www.99操| chaopeng在线人人| 影音先锋91网站在线观看| 婷婷在线播放| 天天婷婷综合亚洲亚洲| 大香蕉啪啪| 99热精品在线| 99热亚洲| 亚洲综合五月天| 五月丁香六月婷婷久久| 99青青草| 天天操天天爱天天玩| 日韩一区二区三区无码| 欧美大奶熟女噜噜噜噜| 天天爽夜夜爽夜夜爽精品| 热久久91| 久久9精品| 婷婷色网站| 国产99久9在线| 草草色情综合网| 丁香五月婷婷高清| 九九丁香社区欧美激情| 色婷婷基地 | 日本人妻伦在线中文字幕| www.激情| 精品色色| 99久久99综合| 日本波多野结衣视频| 亚洲成人在线在线| 丁香五月婷婷社区| 婷婷色狠狠| 婷婷综合视频| 噜噜噜噜婷婷五月天| 色婷| 五月五婷婷网| VA国产在线综合网站| 婷婷丁香五月精品| 色狠狠综合| 99综合色| 色吧婷婷| 精品人妻一区| 最新高清无码专区| 伊人九热| 久久免费丁香| 99热九九这里只有精品| 色五月久久成人婷婷| 亚洲综合婷婷五月| 婷婷五月天色播| 日本三级日本三级99| 丁香五月影院| 天天肏在线视频| 九九视屏| 久久视频66| 黄页大全十八禁| 激情五月婷婷五月| 五月丁香啪啪啪| 香蕉97碰碰碰欧美| 五月丁香五月丁香五月丁香五月丁香91| 日韩精品一区二区亚洲AV观看| 91人人操人人| 六月丁香婷婷开心综合基地| 开心网五月色婷婷| 思思热视频在线观看| 丰满少妇乱A片无码| 91趴趴| 久久久com| 99热99这里有免费的精品| 亚洲激情综合| 性做久久久久久久免费看| 丁香六月综合| 在线播放成人网站| 色婷婷丁香中文在线播放| 99热这里只有精品8| jiZZdr| 国产精品24r| 亚洲欧美成人在线| 综合色综合| 久热综合| 婷婷六月偷拍| 18av天堂| 婷婷五月天AV| 久热在线中文字幕色999舞 | 九月婷婷久久| 五月天六月婷婷电影| www.色99| 亚洲成人综合网在线免费观看| 香蕉久久国产AV一区二区| 天天日天天干天天插天天射| 久久女婷| 五月婷婷色白丝| 久久6这里只有精品| 天天天干夜夜夜操| 99精品国产在热久久| 玖玖爱综合网| 五月丁香激情婷婷| 日本久久99| 熟女网站久久| 天天爽天天日天天舔| 五月天久久久| 99久久精品色老| 亚洲精品激情| 丁香五月五月婷婷欧美大香蕉| 九色PORNY自拍成人精彩视频| av性爱在线| 亚洲综合激情五月久久| 综合色五月| 色综合天天综合成人网| 影音先锋高清无码资源网| 色色99| 婷婷在线播放| 99啪视频在线观看| 久久五月婷婷开心网| 狠狠色噜噜狠狠狠狠综合| www91在线| 五月婷婷激情视频| 免费黄网不卡AV| www.精品99| 久久六月综合| 九九九九综合| 狠狠狠狠狠狠色| 久久婷婷激情久久| 天天天天色天天天天天干| 成熟妇人A片免费看网站| 久久五月天激情美女| 中文字幕不卡+婷婷五月| 国产一区18| 深爱五月激情五月| 亚洲综合碰| 丁香五月婷婷色播艳门照| 91色呦哟| 九九热这里只有精品一| 国产精品久久欧美久久一区| 欧美五月丁香在线| 五月丁香婷婷基地| 久久er视频6| 开心激情网在线| 超碰在线人妻| 色色色综合网| 色色综合成人网| 丁香激情五月天| 五月丁香六月婷婷啪啪综合| 热久久99热欧美国产亚洲| 色婷婷在线播放| 婷婷精品在线| 久久人人看| 丁香五月天色婷婷| ay2区| 日本狠狠干| 色婷婷六月综合| 狠狠婷婷色| 五月天激情视频网站| 激情综合色五月丁香| 激情五婷网| 99精品综合在线| av色色国产| 五月婷婷综合社区| 亚洲乱码在线观看| 久久性爱视频| 超碰免费在线| 午夜电影网VA内射| 久久婷婷色综合老司机| 97碰碰视频| 伊人久久婷婷| 禁欲电影完整版在线播放| 五六月丁香激情视频| 5Www色5夜| 欧美乱码国产一级A片| 色婷婷六月天| 亚洲久热| 人人视频色| 无码yw| 五月天色区| 色色色色色色色色色999| 丁香五月天社区婷婷| 色色色婷| bbwcuckold精品熟妇| 婷婷伊人五月天| 新激情五月天天在线网| 色情综合网| 久久99最新地址| 六九色综合婷婷五月天| 久久这里只有精品久久| 99ri久久| 亚洲av网站| 色五月综合激情| 色狠狠婷婷| 婷婷婷婷婷婷婷五月丁香| 欧美黄色一级| 看全色黄大色大片| 亚洲人人操| 人妻22p| Se.婷婷五月天| 五月丁香本色在线观看| 婷婷亚洲欧美丁香五月| 国产成人综合在线| 国产无遮挡又黄又爽免费网站| 99爱在线视频观看| 色综合九九| 久久婷婷丁香花综合网| 精品在线网站| 婷婷丁香成人网址| 久综合九| 草草夜夜操| 人人爱摸视频| 伍月激情天| 4399在线观看免费毛片| 婷婷97狠狠成人网站| www五月| 色婷婷五月基地在线| 五月丁香人妻| 无码AV免费精品一区二区三区 | 97超碰在线免费观看| 国产又黄又爽又色的免费| 综合在线色婷婷| 欧美激情五月天在线观看| 国产性爱一级| 色九四色| 五月丁香影院| 99精品无码| 国产精品蜜臀99| 婷婷五月天在线看| 色月丁| 久久综合久色欧美综合狠狠| 五月丁香久久网| 99热这里只有免费精品| 婷婷九月激情| 人人澡玖玖一| 性爱五月婷| 精品欧美一区二区三区久久久| 五月丁香激情综合| 五月天综合在线观看| 亚洲欧洲自拍图片专区五月天| 噜噜噜狠狠色综| 丁香婷婷综合色五月激情国产基地| 国产69久久久欧美黑人A片| w婷婷五月婷婷w| 99热综合网| 亚洲第一色区| 欧爱综合视频| 婷婷AV丁香| 婷婷五月丁香综合亚洲 | 激情5月天天天| WwW天天干| www.激情五月天.com| 欧美性爱五月天| 超碰二区| 黑人无码一区| 人人操 色| 亚洲国产网站| 91啦丨九色丨刺激中文| 婷婷五月天桃花网| BBWCUCKOLD精品熟妇| 色色五月丁香| 丁香五月婷婷在线| 久久激情五月婷婷| 九月丁香| 久久婷婷成人综合色怡春院| 超碰操网| 亚洲综合99| 久久婷婷精品| 97人人草| 天天天天天日| 开心激情婷婷| 免费黄色视频网址| 99热超碰在线| 极品少妇XXXX精品少妇偷拍| 国产毛片精品一区二区色欲黄A片| 日本欧美成人片AAAA| 色色色综合| 国产精品涩涩涩视频网站| 亚洲精品字幕在线观看| 拍真实国产伦偷精品| 久久电影4399| 激情网五月天| 激情五月婷婷| 99热在线观看| 美女久久天堂| 亚洲人成网站999久久久综合| 91日婷婷在线| 久久婷婷激情四射五月天| 激情综合色婷婷啪啪六月天| 五月丁香色婷婷久久| 91狠狠色| 99er免费在线观看| 操丝袜视频影院导航| 色情五月停停丁香| 99热久| 色婷婷五月色| 99色视频| 综合 激情 婷婷| 美女91一起草| 亚洲第一黄网| 久久er+| 色五月丁香五月婷婷五月成人网| 99热激情| 色五月激情| 久九男女天堂| 任你干嘛免费视频播放| 伊人激情啪啪| 婷婷黄色五月天在线视频| 操逼棍操逼| 色五月大| 婷婷五月天av| 亚洲无码性爱| 996热re视频精品视频| 立川无码av| 丁香涩涩爱| 五月天婷婷av| 极品人妻VIDEOSSS人妻| 婷婷免费视频| 久久大香蕉| 亚洲激情综合五月婷婷啪啪| 9九色首页| 噼里啪啦在线观看免费完整版视频| 婷婷9月天| 人人操插| 色情五月天婷婷| 欧美 日韩 成人在线| 免费视频WWW在线观看网站| 超91在线视频| 色五月无码| 五月天婷婷成人| 亚洲色久| 婷婷五月网图片区| 五月丁香拍拍激情综合| 婷婷五月激情六月| 五月丁香亭亭| 丁香五月开心亚洲| 久久九九99字幕| 色五月色图| 狠狠干.com| 欧美色婷婷| 色婷婷婷婷五月天| 五月丁香久久| 久久丝袜婷婷| 婷婷亚洲在线| 第四色五月天| 九九av在线| 丁香五月激情澎湃一区| 97人人干人人操| Www.se.久久| 婷五月天在线草| 久久精品4| 91jiuseshunv| 久久99热 这里有精品| 99久久婷婷| 日韩无码人妻一区二区| 色青青视频| 夜夜爽天天干| 秋霞日本免费毛片A片| 色情五月天A片| 五月婷婷大香蕉| 丁香婷婷五月综合色情| 99色网站| 色色五月天 亚洲| 一区二区中文字幕| 超碰人人操人人干| 国精产品一区二区三区| 色99综合视频| 国产又粗又大又爽又黄| 五月丁香六月婷综合成人综合 | 久热无码| 久久五月丁香| 久久大香蕉同僚| 久激情| 成人五月天视频播放| 欧美性生交A片免费看| 欧洲永久精品| 草草视频91| 成人国产综合| 五月丁香六月婷婷久久肏| AV中文字幕夜夜操b天天摸bb| 欧美噜一噜| 99国产精品久久久久久久久久久| 色色色色综合网| www.五月婷婷.com| 五月丁香婷婷成人版| 99视频这里有精品| 日韩啪图| 久久婷婷五月免费视频| 五月丁香婷久久| 婷婷丁香色五月久久88| 99九九这里有免费视频| sewuyue第四色| 中字幕视频在线永久在线观看免费| 久久欧洲久久| 久久香蕉影院| 色综合xx| 狠狠干.com| 常久最新免费的色吊丝| 亚洲视频码|