99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

基于OpenCV和深度學(xué)習(xí)的蘋(píng)果葉病害識(shí)別方法:圖像分類與模型部署指南

基于OpenCV和深度學(xué)習(xí)的蘋(píng)果葉病害識(shí)別方法:圖像分類與模型部署指南 簡(jiǎn)介面向智慧農(nóng)業(yè)與計(jì)算機(jī)視覺(jué)畢設(shè)場(chǎng)景這套基于PythonOpenCV的蘋(píng)果葉病害識(shí)別檢測(cè)系統(tǒng)源碼包可精準(zhǔn)識(shí)別赤霉病、枯葉病、鐵銹病等常見(jiàn)葉片病變適合高校學(xué)生、科研人員及農(nóng)業(yè)智能開(kāi)發(fā)者使用既可直接運(yùn)行也能修改代碼訓(xùn)練其他植物病害。壓縮包共382個(gè)文件約54.26MB主要包含162張標(biāo)注病害圖像、161個(gè)標(biāo)簽txt文件、16個(gè)Python源碼、3個(gè)訓(xùn)練好的pt模型以及20個(gè)YAML配置文件并附帶清晰的操作說(shuō)明與評(píng)估指標(biāo)曲線大幅降低復(fù)現(xiàn)門(mén)檻。目前已有508人學(xué)習(xí)下載實(shí)操價(jià)值獲得認(rèn)可。整體設(shè)計(jì)兼顧教學(xué)與落地從環(huán)境配置、推理檢測(cè)到自定義訓(xùn)練均有完整指引幫助快速跑通檢測(cè)流程尤其適合畢業(yè)設(shè)計(jì)、課程項(xiàng)目或農(nóng)業(yè)病害識(shí)別應(yīng)用的原型驗(yàn)證是一份高性價(jià)比的完整參考資料。1. 這個(gè)畢設(shè)題目的本質(zhì)不是檢測(cè)是圖像分類打開(kāi)壓縮包之前先明確一件事標(biāo)題寫(xiě)的是“蘋(píng)果葉病害識(shí)別檢測(cè)”但按數(shù)據(jù)集的組織方式——按病害類別分文件夾、每張圖對(duì)應(yīng)一個(gè)標(biāo)簽——這實(shí)際上是一個(gè)圖像分類任務(wù)或者說(shuō)“判別式識(shí)別”任務(wù)。它不是YOLO那種畫(huà)檢測(cè)框的定位任務(wù)。這個(gè)區(qū)分很重要因?yàn)樗苯記Q定了你要不要再接一個(gè)檢測(cè)頭的訓(xùn)練流程還是老老實(shí)實(shí)把分類準(zhǔn)確率做上去再疊加一個(gè)滑動(dòng)窗口來(lái)做“檢測(cè)”的觀感。對(duì)這種畢設(shè)項(xiàng)目來(lái)說(shuō)最穩(wěn)的落地路徑是用OpenCV做圖像預(yù)處理和傳統(tǒng)特征提取再用OpenCV的DNN模塊加載訓(xùn)練好的深度模型做推理。你不需要從頭搭建一套深度學(xué)習(xí)訓(xùn)練管線也不需要用OpenCV去硬寫(xiě)一個(gè)CNN訓(xùn)練器而是把兩者結(jié)合起來(lái)用Python生態(tài)訓(xùn)練用OpenCV做工程化部署。這個(gè)方案適合誰(shuí)適合那些需要短時(shí)間跑通、能演示、能答辯、能寫(xiě)系統(tǒng)架構(gòu)圖的本科畢設(shè)。它不追求刷榜級(jí)別的準(zhǔn)確率但要求你清楚每一行代碼在干什么模型失效的時(shí)候你能給出合理解釋。蘋(píng)果葉病害本身有清晰的表觀特征——病斑顏色、紋理、分布區(qū)域——這讓傳統(tǒng)特征方法也能拿到不錯(cuò)的下限。2. 環(huán)境和數(shù)據(jù)集把“帶標(biāo)注的文件夾”變成可訓(xùn)練的數(shù)據(jù)管線2.1 Python和OpenCV環(huán)境搭建三個(gè)坑一次講清打開(kāi)壓縮包第一步不是看模型文件是先把環(huán)境跑通。項(xiàng)目基于Python那就從python官網(wǎng)下載對(duì)應(yīng)版本。注意畢設(shè)項(xiàng)目普遍對(duì)版本敏感建議用Python 3.8到3.10之間的版本太新的版本有時(shí)候會(huì)遇到某些依賴庫(kù)沒(méi)有預(yù)編譯wheel的問(wèn)題。安裝時(shí)勾選“Add Python to PATH”這一步漏掉的后果是你打開(kāi)命令行敲python提示不是內(nèi)部或外部命令這不是Python沒(méi)裝好是環(huán)境變量沒(méi)配。裝好Python后用pip安裝依賴python -m pip install --upgrade pip python -m pip install opencv-python4.8.0.76 python -m pip install numpy matplotlib scikit-learnopencv-python的版本我建議固定到4.8.x原因是這個(gè)版本線對(duì)ONNX模型的DNN推理支持已經(jīng)非常成熟同時(shí)不會(huì)像4.10那樣在某些老筆記本上出現(xiàn)奇怪的解碼器兼容問(wèn)題。安裝完成后驗(yàn)證一下python -c import cv2; print(cv2.__version__)這一步能過(guò)說(shuō)明OpenCV主庫(kù)沒(méi)問(wèn)。如果你遇到ModuleNotFoundError: No module named opencv那大概率是裝成了opencv-contrib-python但沒(méi)有正確import記住import名永遠(yuǎn)是cv2不是opencv。還有一個(gè)高頻報(bào)錯(cuò)是cv2.error: OpenCV(4.4.0)這通常指你用了太老的預(yù)編譯包同時(shí)你的Python版本是3.11以上兩個(gè)版本之間ABI不兼容。解決方式是升級(jí)OpenCV版本到4.8以上而不是去網(wǎng)上找老版本的whl文件硬裝。這個(gè)報(bào)錯(cuò)我當(dāng)年也卡過(guò)結(jié)果發(fā)現(xiàn)是pip給了一個(gè)緩存里的老版本加--no-cache-dir重新裝就干凈了。2.2 數(shù)據(jù)集結(jié)構(gòu)檢查先統(tǒng)計(jì)再訓(xùn)練解壓數(shù)據(jù)集之后第一步是寫(xiě)一個(gè)統(tǒng)計(jì)腳本看看每個(gè)類別的圖片數(shù)量、尺寸分布、格式是否統(tǒng)一。很多標(biāo)好名的數(shù)據(jù)集并不規(guī)范——有的葉子是整片葉有的是打了孔的局部葉有的圖片帶水印或者EXIF旋轉(zhuǎn)信息。下面這段代碼我每次拿到新數(shù)據(jù)集都會(huì)先跑一遍import os import cv2 from collections import Counter dataset_root ./dataset # 假設(shè)目錄下按類別分子文件夾 exts (.jpg, .jpeg, .png, .bmp) category_stats {} size_stats [] for cls_name in os.listdir(dataset_root): cls_path os.path.join(dataset_root, cls_name) if not os.path.isdir(cls_path): continue imgs [f for f in os.listdir(cls_path) if f.lower().endswith(exts)] category_stats[cls_name] len(imgs) for im in imgs[:50]: # 抽樣看尺寸分布 img cv2.imread(os.path.join(cls_path, im)) if img is not None: h, w img.shape[:2] size_stats.append((w, h)) print(category_stats) print(Counter(size_stats).most_common(10))這段代碼的意圖很直白統(tǒng)計(jì)每類圖片數(shù)量抽樣看尺寸。邏輯上用os.listdir遍歷類目用cv2.imread讀圖取寬高全部存進(jìn)列表后用Counter看尺寸分布。如果你看到某個(gè)類的數(shù)量明顯偏少比如只有別類的三分之一那么訓(xùn)練時(shí)就必須做類別加權(quán)或者少采樣策略。如果你看到尺寸極端分散比如有1920x1080的也有256x256的預(yù)處理階段就要統(tǒng)一縮放不要指望模型自己對(duì)尺度不變性有多好的魯棒性。還有一個(gè)容易被忽略的點(diǎn)有些數(shù)據(jù)集里混有灰度圖單通道讀入后shape是(h,w)不是(h,w,3)后續(xù)特征提取或者CNN輸入會(huì)直接報(bào)維度錯(cuò)誤。這個(gè)時(shí)候在讀取時(shí)統(tǒng)一轉(zhuǎn)成三通道用cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)做轉(zhuǎn)換即可。2.3 劃分訓(xùn)練集和驗(yàn)證集不洗牌等于白練畢設(shè)數(shù)據(jù)集規(guī)模一般在小幾千張這個(gè)規(guī)模下直接用train_test_split做個(gè)按類別分層的劃分就好。注意要用stratify參數(shù)保證每個(gè)類在訓(xùn)練集和驗(yàn)證集中的比例一致否則一個(gè)類如果全跑到驗(yàn)證集訓(xùn)練的時(shí)候模型沒(méi)見(jiàn)過(guò)這個(gè)類分?jǐn)?shù)直接崩掉。我一般會(huì)把全部數(shù)據(jù)按7:2:1拆成訓(xùn)練集、驗(yàn)證集、測(cè)試集測(cè)試集從頭到尾不參與訓(xùn)練只用來(lái)做最終評(píng)估。import os import shutil import random from sklearn.model_selection import train_test_split random.seed(42) dataset_root ./dataset train_dir, val_dir, test_dir ./train, ./val, ./test classes [d for d in os.listdir(dataset_root) if os.path.isdir(os.path.join(dataset_root, d))] for cls in classes: imgs os.listdir(os.path.join(dataset_root, cls)) # 保證路徑完整 full_paths [os.path.join(dataset_root, cls, i) for i in imgs] tr, tmp train_test_split(full_paths, test_size0.3, random_state42, stratifyNone if len(imgs) 2 else [1]*len(full_paths)) va, te train_test_split(tmp, test_size0.33, random_state42) for split, dir_name in [(tr, train_dir), (va, val_dir), (te, test_dir)]: out_dir os.path.join(dir_name, cls) os.makedirs(out_dir, exist_okTrue) for src in split: shutil.copy(src, os.path.join(out_dir, os.path.basename(src)))這段代碼先按7:3拆出訓(xùn)練集和臨時(shí)集再?gòu)呐R時(shí)集按2:3拆出驗(yàn)證集和測(cè)試集合成下來(lái)就是7:2:1。random_state42固定后每次跑出來(lái)劃分一致論文里寫(xiě)“隨機(jī)劃分固定種子”這句就是你代碼的注腳。注意我這里的stratify參數(shù)寫(xiě)得很潦草因?yàn)槊總€(gè)類的圖片數(shù)量不多強(qiáng)行分層可能報(bào)錯(cuò)所以直接給了一個(gè)全1的假標(biāo)簽讓它不報(bào)錯(cuò)。如果你每個(gè)類都有幾十張以上可以把第二個(gè)參數(shù)改成類別標(biāo)簽數(shù)組做真正的分層抽樣。2.4 數(shù)據(jù)增強(qiáng)用OpenCV做平移、旋轉(zhuǎn)、縮放訓(xùn)練過(guò)程如果直接拿原圖喂進(jìn)去模型會(huì)過(guò)擬合到背景和葉子的擺放位置。畢設(shè)數(shù)據(jù)集通常不夠大增強(qiáng)是必須的步驟。這里不引入imgaug這種大庫(kù)就用OpenCV自帶的方法好處是能在答辯的時(shí)候直接說(shuō)“全部基于OpenCV實(shí)現(xiàn)”。簡(jiǎn)單的增強(qiáng)組合是隨機(jī)水平翻轉(zhuǎn)、小角度旋轉(zhuǎn)、亮度擾動(dòng)。import cv2 import numpy as np def augment_image(img, angle_range15, brightness_range30): h, w img.shape[:2] # 隨機(jī)旋轉(zhuǎn) angle np.random.uniform(-angle_range, angle_range) M cv2.getRotationMatrix2D((w/2, h/2), angle, 1.0) rotated cv2.warpAffine(img, M, (w, h), flagscv2.INTER_LINEAR, borderModecv2.BORDER_REFLECT_101) # 隨機(jī)亮度擾動(dòng) brightness np.random.randint(-brightness_range, brightness_range) hsv cv2.cvtColor(rotated, cv2.COLOR_BGR2HSV).astype(np.float32) hsv[:, :, 2] np.clip(hsv[:, :, 2] brightness, 0, 255) aug cv2.cvtColor(hsv.astype(np.uint8), cv2.COLOR_HSV2BGR) return aug這里旋轉(zhuǎn)用的getRotationMatrix2D生成旋轉(zhuǎn)矩陣warpAffine做仿射變換borderModeBORDER_REFLECT_101是為了讓邊緣在旋轉(zhuǎn)時(shí)不是補(bǔ)黑邊而是反射葉片本身的像素補(bǔ)黑邊會(huì)讓模型學(xué)到“邊框等于背景”這種假特征。亮度擾動(dòng)放在HSV空間是對(duì)明度通道直接加減轉(zhuǎn)換回BGR后色彩基本不受影響。注意這里有個(gè)隱藏細(xì)節(jié)先旋轉(zhuǎn)再調(diào)亮度旋轉(zhuǎn)會(huì)產(chǎn)生插值噪聲調(diào)亮暗不會(huì)引入新的空間結(jié)構(gòu)所以順序不要反。如果你還想做縮放裁剪可以在這個(gè)函數(shù)里再加一步cv2.resize到(224,224)然后在推理的時(shí)候也用相同尺寸保證訓(xùn)練和部署的input size一致。輸出尺寸不一致是畢設(shè)里最常見(jiàn)的翻車點(diǎn)后面推理章節(jié)里還會(huì)遇到。3. 模型選型和訓(xùn)練從傳統(tǒng)特征到深度學(xué)習(xí)推理3.1 兩條路線怎么選SVM上線快CNN上限高拿到標(biāo)好的數(shù)據(jù)集之后你面臨一個(gè)選擇用傳統(tǒng)特征工程加SVM還是上CNN。這個(gè)選擇不是看心情而是看你數(shù)據(jù)集規(guī)模和部署形態(tài)。如果數(shù)據(jù)量在每類兩三百?gòu)堃詢?nèi)傳統(tǒng)特征加SVM的訓(xùn)練速度是秒級(jí)而且可解釋性強(qiáng)論文里可以畫(huà)特征可視化圖。如果數(shù)據(jù)量在每類五百?gòu)堃陨匣蛘弑尘皬?fù)雜葉片姿態(tài)多變CNN遷移學(xué)習(xí)的準(zhǔn)確率優(yōu)勢(shì)會(huì)非常明顯。這個(gè)項(xiàng)目標(biāo)題里帶了“模型”這個(gè)詞通常默認(rèn)給的預(yù)訓(xùn)練權(quán)重是按CNN路線訓(xùn)練的那么你在系統(tǒng)里就要用OpenCV的DNN模塊去加載推理而不是重新訓(xùn)練一個(gè)SVM去替代它。但我建議你把兩條路線都跑一遍基線SVM結(jié)果作為baseline寫(xiě)進(jìn)論文對(duì)比表最終部署用CNN。這樣既能體現(xiàn)工作量又能在答辯被問(wèn)“為什么不用傳統(tǒng)方法”的時(shí)候給出一個(gè)量化對(duì)比答案。3.2 用OpenCV提取HOG特征訓(xùn)練SVM把原理寫(xiě)進(jìn)代碼HOG特征的核心思想是統(tǒng)計(jì)圖像局部區(qū)域的梯度方向分布。葉片病斑的邊緣和健康區(qū)域在梯度方向上會(huì)有明顯差異所以HOG對(duì)這類紋理型病害是比較經(jīng)典的表征方式。用OpenCV提取HOG特征加SVM訓(xùn)練下面這個(gè)流程是完整的import cv2 import numpy as np from sklearn.svm import SVC from sklearn.preprocessing import StandardScaler import os def extract_hog(img, cell_size(8, 8), block_size(2, 2), nbins9): img_resized cv2.resize(img, (128, 128)) img_gray cv2.cvtColor(img_resized, cv2.COLOR_BGR2GRAY) if img_resized.ndim 3 else img_resized hog cv2.HOGDescriptor((128, 128), (16, 16), (8, 8), cell_size, nbins) return hog.compute(img_gray).flatten() X, y [], [] for cls_idx, cls_name in enumerate(os.listdir(train_dir)): cls_path os.path.join(train_dir, cls_name) for fname in os.listdir(cls_path): img cv2.imread(os.path.join(cls_path, fname)) if img is None: continue X.append(extract_hog(img)) y.append(cls_idx) X np.array(X) scaler StandardScaler() X_scaled scaler.fit_transform(X) svm SVC(kernelrbf, C10, gammascale, probabilityTrue) svm.fit(X_scaled, y)HOGDescriptor的四個(gè)參數(shù)依次是winSize、blockSize、blockStride、cellSize。winSize設(shè)為128x128意味著整圖作為一個(gè)檢測(cè)窗口cellSize 8x8和nbins 9是經(jīng)典配置。每個(gè)block歸一化后能把光照變化的影響壓下去這對(duì)戶外拍蘋(píng)果葉的場(chǎng)景很重要因?yàn)樽匀还庀峦黄~子的亮度差異很大。SVM用RBF核C10意思是誤分類懲罰適中g(shù)ammascale讓模型自己根據(jù)特征標(biāo)準(zhǔn)差決定核寬這是我們平時(shí)調(diào)參時(shí)最穩(wěn)的起點(diǎn)。如果你發(fā)現(xiàn)準(zhǔn)確率卡在80%上下優(yōu)先調(diào)整的是cell_size從8改到16特征是少了但泛化往往更好然后再懷疑SVM參數(shù)。3.3 CNN遷移學(xué)習(xí)用torch訓(xùn)練再導(dǎo)出ONNX部署端用OpenCV讀模型訓(xùn)練端卻不必局限于OpenCV。常見(jiàn)做法是用PyTorch寫(xiě)一個(gè)遷移學(xué)習(xí)腳本用ImageNet預(yù)訓(xùn)練的ResNet18做骨干網(wǎng)絡(luò)把最后一層全連接替換成病害類別數(shù)。之所以選ResNet18而不是更深的ResNet50是因?yàn)樘O(píng)果葉病害數(shù)據(jù)量不足以支撐深網(wǎng)絡(luò)的微調(diào)而且推理速度在CPU上更快演示的時(shí)候不會(huì)卡頓。下面這段是核心訓(xùn)練腳本的骨架import torch import torch.nn as nn import torchvision.models as models import torchvision.transforms as transforms from torch.utils.data import DataLoader, Dataset from PIL import Image import os class LeafDataset(Dataset): def __init__(self, root): self.classes sorted(os.listdir(root)) self.samples [] for cls_idx, cls_name in enumerate(self.classes): cls_path os.path.join(root, cls_name) for f in os.listdir(cls_path): self.samples.append((os.path.join(cls_path, f), cls_idx)) self.transform transforms.Compose([ transforms.Resize((224, 224)), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]) ]) def __len__(self): return len(self.samples) def __getitem__(self, idx): path, label self.samples[idx] img Image.open(path).convert(RGB) return self.transform(img), label model models.resnet18(weightsmodels.ResNet18_Weights.IMAGENET1K_V1) num_ftrs model.fc.in_features model.fc nn.Linear(num_ftrs, 5) # 假設(shè)5類病害 device torch.device(cuda if torch.cuda.is_available() else cpu) model model.to(device) criterion nn.CrossEntropyLoss() optimizer torch.optim.SGD(model.parameters(), lr0.001, momentum0.9) for epoch in range(10): model.train() for imgs, labels in DataLoader(LeafDataset(train_dir), batch_size32, shuffleTrue): imgs, labels imgs.to(device), labels.to(device) optimizer.zero_grad() outputs model(imgs) loss criterion(outputs, labels) loss.backward() optimizer.step() print(fepoch {epoch1}, loss {loss.item():.4f})這里weightsIMAGENET1K_V1表示加載預(yù)訓(xùn)練權(quán)重fc層從默認(rèn)的1000類輸出改成自己的類別數(shù)這部分權(quán)重隨機(jī)初始化backbone保持預(yù)訓(xùn)練。學(xué)習(xí)率設(shè)置0.001對(duì)于微調(diào)來(lái)說(shuō)不算激進(jìn)SGD加momentum適合小數(shù)據(jù)集。10個(gè)epoch足夠看到收斂趨勢(shì)如果loss還沒(méi)降下去問(wèn)題大概率在數(shù)據(jù)讀取或者歸一化參數(shù)上而不是網(wǎng)絡(luò)結(jié)構(gòu)。訓(xùn)練完的模型要導(dǎo)出成ONNXOpenCV的DNN模塊不支持直接讀.pt文件dummy_input torch.randn(1, 3, 224, 224).to(device) torch.onnx.export( model, dummy_input, apple_leaf.onnx, input_names[input], output_names[output], dynamic_axesNone, opset_version11 )導(dǎo)出時(shí)opset_version11是一個(gè)平衡點(diǎn)太低有些算子不支持太高OpenCV的ONNX解析器可能遇到不認(rèn)識(shí)的算子。固定輸入尺寸224x224的好處是導(dǎo)出時(shí)不用動(dòng)態(tài)軸推理時(shí)也不用做尺寸適配省掉一整套坐標(biāo)映射邏輯。3.4 評(píng)估指標(biāo)別只報(bào)準(zhǔn)確率要報(bào)混淆矩陣做評(píng)估的時(shí)候單看準(zhǔn)確率在病害識(shí)別項(xiàng)目里是自欺欺人。因?yàn)樘O(píng)果葉病害有些類之間差異很小比如炭疽葉枯病和褐斑病人眼都要仔細(xì)分辨模型如果誤判一兩張會(huì)把準(zhǔn)確率拖下去兩個(gè)點(diǎn)。正確的評(píng)估是驗(yàn)證集上的混淆矩陣加每類precision、recall、F1。代碼實(shí)現(xiàn)可以直接用scikit-learnfrom sklearn.metrics import confusion_matrix, classification_report y_true, y_pred [], [] model.eval() with torch.no_grad(): for imgs, labels in DataLoader(LeafDataset(val_dir), batch_size32, shuffleFalse): outputs model(imgs.to(device)) _, preds torch.max(outputs, 1) y_true.extend(labels.numpy()) y_pred.extend(preds.cpu().numpy()) print(classification_report(y_true, y_pred, target_namesdataset.classes)) print(confusion_matrix(y_true, y_pred))torch.no_grad()這里很關(guān)鍵它告訴PyTorch不需要為推理過(guò)程構(gòu)建計(jì)算圖內(nèi)存占用降到原來(lái)的十分之一。推理時(shí)如果你的模型在CPU上跑一個(gè)batch 32張224x224的圖耗時(shí)大約一兩秒足夠支撐實(shí)時(shí)演示。如果某個(gè)類的recall明顯低于其他類那就是數(shù)據(jù)不足或者特征重疊太大回到第2章去查這個(gè)類的影像數(shù)量大概率是樣本太少。畢設(shè)論文里這個(gè)評(píng)估結(jié)果是你所有結(jié)論的支撐不要在這塊偷懶。4. 部署與展示讓OpenCV DNN把模型跑起來(lái)4.1 加載ONNX模型并推理OpenCV做識(shí)別的核心代碼訓(xùn)練和推理分離是這個(gè)項(xiàng)目的常態(tài)訓(xùn)練在PyTorch里完成部署在OpenCV DNN模塊里完成。OpenCV的cv2.dnn.readNetFromONNX可以直接加載導(dǎo)出的模型然后通過(guò)blobFromImage把圖像轉(zhuǎn)成模型需要的輸入格式前向推理得到輸出向量。整個(gè)過(guò)程不依賴PyTorch也就是說(shuō)部署機(jī)上只需要openv-python。import cv2 import numpy as np net cv2.dnn.readNetFromONNX(apple_leaf.onnx) class_names [healthy, alternaria, rust, scab, frogeye] def predict(img): img_resized cv2.resize(img, (224, 224)) blob cv2.dnn.blobFromImage(img_resized, scalefactor1.0/255.0, size(224, 224), mean(0.485*255, 0.456*255, 0.406*255), swapRBTrue) net.setInput(blob) outputs net.forward() # 輸出形狀 (1, num_classes)softmax后取最大索引 scores outputs[0] scores np.exp(scores - np.max(scores)) scores / np.sum(scores) pred_idx int(np.argmax(scores)) conf scores[pred_idx] return class_names[pred_idx], confblobFromImage的參數(shù)團(tuán)是這里最容易出問(wèn)題的地方。scalefactor1/255是把像素從0-255縮放到0-1mean必須和訓(xùn)練時(shí)用的Normalize參數(shù)嚴(yán)格對(duì)應(yīng)。PyTorch里Normalize(mean[0.485,0.456,0.406], std[0.229,0.224,0.225])是ImageNet的統(tǒng)計(jì)均值這些數(shù)值在訓(xùn)練時(shí)會(huì)把每個(gè)通道減均值再除標(biāo)準(zhǔn)差。但OpenCV的blobFromImage只支持減均值不支持除標(biāo)準(zhǔn)差所以這里要把std乘進(jìn)mean里再減。你把(0.485*255, 0.456*255, 0.406*255)算出來(lái)大約是(123.675, 116.28, 103.53)這幾個(gè)數(shù)在論文的實(shí)驗(yàn)設(shè)置部分必須交代。注意swapRBTrue是因?yàn)镺penCV讀圖是BGR順序而PyTorch訓(xùn)練時(shí)用的是RGB順序不交換的話模型的輸入通道語(yǔ)義就反了效果會(huì)斷崖式下跌準(zhǔn)確率甚至不如隨機(jī)猜。推理輸出的分?jǐn)?shù)向量直接做softmax歸一化。雖然ONNX里沒(méi)有帶softmax層導(dǎo)出時(shí)候沒(méi)加手動(dòng)實(shí)現(xiàn)只用了np.exp加歸一化數(shù)值穩(wěn)定性上用np.max先平移一下防止exp溢出后全是NaN。如果你要的是更快的前100類預(yù)測(cè)或者閾值過(guò)濾在這段邏輯上加一個(gè)conf 0.6什么也不返回的兜底邏輯就行。4.2 批量預(yù)測(cè)和輸出可視化畫(huà)出病斑圈畢設(shè)系統(tǒng)要演示除了終端打印類別名之外最好能把識(shí)別結(jié)果畫(huà)在圖上。OpenCV在這塊的優(yōu)勢(shì)就體現(xiàn)出來(lái)了不需要額外工具庫(kù)直接畫(huà)框和文字。雖然分類模型本身沒(méi)有邊界框輸出但可以結(jié)合一個(gè)滑窗策略把圖劃分成多個(gè)區(qū)域分別預(yù)測(cè)預(yù)測(cè)置信度高的區(qū)域就畫(huà)個(gè)紅框這樣在視覺(jué)上就有了“檢測(cè)”的效果。def draw_prediction(img, pred_label, conf, top_k3): out img.copy() label_text f{pred_label} ({conf:.2f}) cv2.rectangle(out, (0, 0), (out.shape[1], 40), (0, 0, 255), -1) cv2.putText(out, label_text, (5, 28), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (255, 255, 255), 2) return out def multi_crop_predict(img, net, class_names, crop_size224): h, w img.shape[:2] results [] for y in range(0, max(h - crop_size, 1), crop_size // 2): for x in range(0, max(w - crop_size, 1), crop_size // 2): crop img[y:ycrop_size, x:xcrop_size] if crop.shape[0] crop_size or crop.shape[1] crop_size: crop cv2.resize(crop, (crop_size, crop_size)) cls, conf predict(crop) results.append((x, y, cls, conf)) return [r for r in results if r[3] 0.7]這段邏輯用一個(gè)步長(zhǎng)為crop_size//2的滑窗每隔半個(gè)窗口取一次裁片每張裁片獨(dú)立做一次推理然后按置信度過(guò)濾高于0.7的視為病害區(qū)域?;安介L(zhǎng)設(shè)置為一半窗口大小是為了相鄰裁片有50%重疊重疊區(qū)域即使只在一張裁片里被判定為病害也不容易漏掉。這個(gè)策略的代價(jià)是計(jì)算量翻倍但對(duì)單張圖片的演示場(chǎng)景完全可以接受。如果你在batch預(yù)測(cè)時(shí)發(fā)現(xiàn)效果不如單張檢查一下是不是crop內(nèi)部又做了一次resize有些裁片本身就是224x224再resize一次不會(huì)變但如果是小目標(biāo)病害裁片尺寸小于224這時(shí)直接resize會(huì)讓病斑變形。正確的做法是原尺寸小于224的裁片直接pad到224而不是縮放保留病斑相對(duì)大小。4.3 做一個(gè)能答辯的界面OpenCV窗口直連攝像頭如果答辯現(xiàn)場(chǎng)能演示實(shí)時(shí)識(shí)別效果遠(yuǎn)好于只放PPT截圖。用OpenCV的VideoCapture打開(kāi)電腦攝像頭循環(huán)讀取每一幀用上面的predict函數(shù)識(shí)別后疊加顯示識(shí)別結(jié)果。下面是最簡(jiǎn)界面邏輯cap cv2.VideoCapture(0) if not cap.isOpened(): print(camera not found) exit() while True: ret, frame cap.read() if not ret: break # 實(shí)時(shí)推理時(shí)不要做滑窗直接整幅圖預(yù)測(cè) label, conf predict(frame) display frame.copy() cv2.putText(display, f{label} {conf:.2f}, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (0, 0, 255), 2) cv2.imshow(Apple Leaf Disease Recognition, display) key cv2.waitKey(1) 0xFF if key ord(q): break cap.release() cv2.destroyAllWindows()實(shí)時(shí)識(shí)別場(chǎng)景下要犧牲掉滑窗策略因?yàn)槊繋评硪淮我呀?jīng)耗時(shí)約100到200毫秒CPU再疊加滑窗會(huì)掉幀到?jīng)]法看。一個(gè)折中做法是每推理5幀做一次完整滑窗中間4幀沿用最近一次結(jié)果這樣滾動(dòng)的感覺(jué)還在計(jì)算壓力卻小得多。waitKey(1)的1毫秒延遲是讓OpenCV窗口能正常處理鍵盤(pán)事件和重繪設(shè)成0會(huì)發(fā)生什么問(wèn)題呢窗口界面會(huì)卡到想砸電腦因?yàn)槭录h(huán)被徹底堵住了。答辯現(xiàn)場(chǎng)要提前試一下攝像頭編號(hào)VideoCapture(0)是筆記本內(nèi)置攝像頭外接USB攝像頭可能是1或者2這個(gè)編號(hào)在設(shè)備管理器里能看到但OpenCV只按順序探測(cè)不要以為下標(biāo)從0開(kāi)始就一定能打開(kāi)。4.4 模型性能基準(zhǔn)跑分之前先給CPU降頻演示之前要在你的電腦上先做個(gè)基準(zhǔn)測(cè)試記錄單幀推理耗時(shí)和FPS這個(gè)數(shù)據(jù)答辯時(shí)可以直接展示證明你的系統(tǒng)滿足實(shí)時(shí)性。測(cè)速代碼很簡(jiǎn)單循環(huán)推理100次統(tǒng)計(jì)平均耗時(shí)import time start time.time() for _ in range(100): fake_input np.zeros((224, 224, 3), dtypenp.uint8) predict(fake_input) avg_ms (time.time() - start) * 10 print(favg inference time: {avg_ms:.1f} ms)這里用全零圖測(cè)得的耗時(shí)和真實(shí)圖片相差不大因?yàn)橛?jì)算量主要在網(wǎng)絡(luò)前向推理不在圖像解碼。測(cè)出來(lái)的數(shù)字如果在200毫秒左右說(shuō)明CPU是普通筆記本級(jí)別演示時(shí)把輸入分辨率從224降到160會(huì)提速到100毫秒以下但精度損失可以接受。如果數(shù)字超過(guò)500毫秒不要先懷疑OpenCV先看模型導(dǎo)出時(shí)是否意外加上了softmax或者多余的算子用onnx.checker做一次模型檢查排掉多余計(jì)算節(jié)點(diǎn)再測(cè)。很多人在測(cè)速時(shí)開(kāi)著后臺(tái)瀏覽器、IDE跑出來(lái)的數(shù)字波動(dòng)大得離譜解決辦法是關(guān)掉所有其他應(yīng)用這個(gè)測(cè)出來(lái)的數(shù)據(jù)才有說(shuō)服力。5. 避坑記錄復(fù)原數(shù)據(jù)集和模型過(guò)程中最常見(jiàn)的五個(gè)問(wèn)題5.1 opencv-python版本沖突導(dǎo)致DNN報(bào)錯(cuò)現(xiàn)象是跑模型推理時(shí)報(bào)cv2.error: OpenCV(4.4.0) ...找不到readNetFromONNX。原因是你pip默認(rèn)解析出來(lái)的opencv-python版本還是舊版或者本機(jī)同時(shí)存在過(guò)conda的opencv和pip的opencv兩個(gè)版本混在一起。解決方式是徹底卸載后重裝pip uninstall opencv-python opencv-contrib-python再pip install --no-cache-dir opencv-python4.8.0.76。另外確認(rèn)cv2.__version__是你期望的版本不要只看import不報(bào)錯(cuò)就認(rèn)為環(huán)境沒(méi)問(wèn)題。5.2 訓(xùn)練時(shí)圖讀成None半路崩掉現(xiàn)象是訓(xùn)練到一半報(bào)AttributeError: NoneType object has no attribute shape或者圖集統(tǒng)計(jì)出來(lái)的尺寸分布里混了一堆(0,0)。原因通常是數(shù)據(jù)集里有損壞的圖片文件或者圖片路徑里有中文字符OpenCV的imread在win平臺(tái)下解析含中文路徑的文件會(huì)失敗。解決方式是在數(shù)據(jù)加載時(shí)加一層防御邏輯img cv2.imdecode(np.fromfile(full_path, dtypenp.uint8), cv2.IMREAD_COLOR)np.fromfile讀出來(lái)的字節(jié)流不經(jīng)過(guò)文件路徑的編碼解析imdecode直接解碼繞開(kāi)中文路徑問(wèn)題。加載數(shù)據(jù)時(shí)凡遇到None就打印路徑并跳過(guò)不要直接中斷訓(xùn)練循環(huán)。5.3 模型在驗(yàn)證集上準(zhǔn)確率很高測(cè)試集上崩現(xiàn)象是驗(yàn)證集準(zhǔn)確率0.95測(cè)試集直接掉到0.6。原因是驗(yàn)證集劃分時(shí)不小心把同一株蘋(píng)果樹(shù)不同角度的照片拆到了兩邊數(shù)據(jù)泄漏了。解決方式是重新劃分按“圖片所在子目錄”作為分組依據(jù)確保同一來(lái)源的圖片不會(huì)同時(shí)出現(xiàn)在訓(xùn)練和測(cè)試?yán)铩:芏鄻?biāo)好病害的數(shù)據(jù)集文件名本身就是拍攝時(shí)間加序號(hào)同一批次拍攝的圖片特征高度相似這種泄漏在畢設(shè)中防不勝防但答辯老師一問(wèn)就能戳穿你。5.4 導(dǎo)出ONNX后推理結(jié)果和PyTorch完全不一致現(xiàn)象是在PyTorch里預(yù)測(cè)某個(gè)類是銹病信心0.9用OpenCV讀ONNX后同一個(gè)圖預(yù)測(cè)成健康信心0.98。原因是blobFromImage的均值處理不對(duì)或者swapRB順序錯(cuò)位。解決方式是做一張固定測(cè)試圖在PyTorch推理時(shí)打印預(yù)處理后的像素第一個(gè)值再在OpenCV里打印blob的第一個(gè)值兩者對(duì)比就能定位是哪個(gè)步驟出問(wèn)題。這種問(wèn)題查起來(lái)不要靠猜打印數(shù)值來(lái)對(duì)比最靠譜。5.5 攝像頭打不開(kāi)但報(bào)錯(cuò)信息不明顯現(xiàn)象是cap.isOpened()返回False但沒(méi)有具體錯(cuò)誤。原因一般是攝像頭被占用比如你打開(kāi)過(guò)微信、釘釘?shù)臄z像頭預(yù)覽或者上次程序沒(méi)有cap.release()資源沒(méi)有被釋放。解決方式是關(guān)掉所有占用攝像頭的程序重啟IDE的進(jìn)程在命令行里單獨(dú)跑一下打開(kāi)攝像頭的測(cè)試腳本。如果還能打開(kāi)那就是進(jìn)程級(jí)資源占用如果打不開(kāi)檢查設(shè)備是不是被Windows的隱私設(shè)置禁用了。6. 進(jìn)階技巧類別增量學(xué)習(xí)和置信度閾值自適應(yīng)的一個(gè)習(xí)慣如果你想把項(xiàng)目做到答辯中段亮點(diǎn)我建議你加一個(gè)類別增量學(xué)習(xí)的演示模塊。具體做法是把模型輸出的softmax分布保存下來(lái)每當(dāng)識(shí)別結(jié)果的置信度低于某個(gè)閾值時(shí)自動(dòng)彈出窗口讓用戶確認(rèn)這張圖屬于哪個(gè)類確認(rèn)后把新樣本追加到數(shù)據(jù)集并做一次簡(jiǎn)易的增量微調(diào)。對(duì)于數(shù)據(jù)集是標(biāo)注好的畢設(shè)項(xiàng)目來(lái)說(shuō)這個(gè)增量模塊本質(zhì)上是把訓(xùn)練流程封裝成可交互界面但它在答辯時(shí)的展示效果比一個(gè)靜態(tài)模型強(qiáng)很多。核心代碼只要在原來(lái)的預(yù)測(cè)函數(shù)基礎(chǔ)上加一個(gè)回傳def interactive_feedback(img, pred_label, conf, threshold0.6): label, conf predict(img) if conf threshold: # 彈窗讓用戶二選一接受機(jī)器預(yù)測(cè) or 人工指定 # 簡(jiǎn)單做法收集到 wrong_samples/ 目錄 cv2.imwrite(./feedback/unknown_{}.jpg.format(time.strftime(%Y%m%d_%H%M%S)), img) return label, conf, needs_label return label, conf, ok閾值0.6是一個(gè)經(jīng)驗(yàn)值。蘋(píng)果葉病害類間相似度高0.6的閾值能在保持召回的同時(shí)把不確定樣本攔下來(lái)。如果你發(fā)現(xiàn)攔下來(lái)的樣本中有一半人眼也分不清那說(shuō)明數(shù)據(jù)集標(biāo)注質(zhì)量本身有問(wèn)題而不是模型問(wèn)題這時(shí)不要硬調(diào)模型回看數(shù)據(jù)統(tǒng)計(jì)。這個(gè)小模塊寫(xiě)到論文里就是“人機(jī)協(xié)同標(biāo)注流程”聽(tīng)起來(lái)比單純“訓(xùn)練了五個(gè)類”有層次得多。我自己做這類畢設(shè)項(xiàng)目的習(xí)慣是模型權(quán)重文件放一個(gè)目錄訓(xùn)練日志放一個(gè)目錄誤判樣本收集目錄單獨(dú)建目錄結(jié)構(gòu)從一開(kāi)始就固定好后面寫(xiě)論文的時(shí)候回找任何實(shí)驗(yàn)結(jié)果都能3分鐘內(nèi)翻到。很多同學(xué)跑完代碼模型文件丟了數(shù)據(jù)增強(qiáng)代碼改了十版分不清最終版是哪個(gè)然后論文里的實(shí)驗(yàn)圖和代碼對(duì)不上這才是最受罪的。這個(gè)方向如果你做得順可以繼續(xù)往多病害共存的判別上延伸——同一片葉子同時(shí)得兩種病分類模型只能輸出一個(gè)類但滑窗可以把不同窗口判成不同類別這已經(jīng)是細(xì)粒度識(shí)別的雛形。對(duì)于畢設(shè)把現(xiàn)有流程跑穩(wěn)、把坑填平、把評(píng)估做扎實(shí)就已經(jīng)是拿得出手的水平了。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久婷婷丁香| 天插天啪天啪天啪| 狠狠五月婷婷| 狠狠激情五月天| 色玖玖玖| 91久女| 人人摸人人| 亚洲av网站| 被男人添B超爽视频| 婷婷色情五月| xx综合网| 五月婷婷丁香啪啪| 久艹大香蕉| 丁香五月婷久久| 南京搡BBBB搡BBBB| 香蕉综合网| 激情五月婷婷老师| 九九色综合| 五月丁香淫淫婷婷婷| 中文字幕成人日韩| 亚洲xx在线| 色婷婷狠狠18禁| 久久欧洲综合网| 玖玖国产视频一区| 九色91国产| 九九视频热| 婷婷伊人綜合中文| 人人肏逼视频在线一区二区| 久99999热视频在线观看免费| 丁香六月婷婷久久综合| 激情五婷网| 色婷婷色五月另类综合| 婷婷丁香五另类网站| 91精品刘玥| 99精彩视频| 国产性爱亚洲是图| 五月婷婷六月丁| 99久久97| 曰韩五月丁香色婷婷无码| 久久综合影院| 丁香五月婷婷在线| 丁香六月欧美| 99色网站| 99热这里只有精品9| 九九精品在线视频观看| 久久er视频6| 99re免费视频| 成人免费在线电影| 超碰在线免费| 欧在线一区| 九九热视频在线观看| 精品人妻一区| 91日视频| 色五月婷婷亚洲| 99热这里只有精品55| 亚洲色色色色| 情涩婷婷五月天| 热久久思思热思思| 婷婷成人综合五月| 五月婷婷福利| 久久久久丁香婷婷五月天| 婷婷六月天精品| 丁香五月影视| 久久99综合| 91九色精品| 人人操大| 丁香五月伊人| 超碰97免费在线| 青青999| 人人操人人妻| 五月丁香在线观看99| www.婷婷五月天,com| 婷婷婷狠狠| 八戒青柠影视剧在线观看| 免费黄色片子| 黄色av网站在线免费播放| 色五月激情五月| 亚洲成av人影院| 五月天婷婷综合| 夜夜爱网站| 99热在线只有精品| 婷婷丁香激情五月天色色色| 伊人婷婷色| 人人爽欧美婷婷久久久五月丁香| 色欲天天综合| 6080av| 久色网五月| 五月婷婷九| 色综合综合色| 婷婷综合久久| 丁香色婷婷色手机免费在线| 夜色综合网| 色婷婷免费观看| 亚洲激情淫网| 五月婷婷六月天| 婷婷激情人妻| 亚洲V国产V欧美V久久久久久| 日韩在线看AV| 狠狠色婷婷7777久| 五月激情六月宗合| 激情网五月天| 九月丁香八月婷婷久久综合久97| 国产日产成人亚洲欧美国产VA| 9.1综合网| 人妻videos人妻高清| 久久er免费视频| 俺五月| jiZZdr| 狠狠干综合网| ztEJj| 九九亚洲无码| 米奇影视资源婷婷狠狠色激情欧美五月丁香 | 色天堂在线| 五月丁香啪啪网| 国产噜一噜天天噜| 六月丁香色色| 色色色丁香| 日韩综合天堂| 亚洲精品大片| 激情小说色五月| 婷婷丁香五月激情密臀av| 亚洲AV网站| 日本精品。999| 可以看的AV| 久久久网站| 婷婷丁香五月基地| www.婷婷,com| 丁香五月影院| 五月天狠狠网站| 蜜乳中文字| 狠狠色综合网站久久久久| 色色色com| 激情伊人| 五月婷婷深深爱| 天天做天天爱天天高潮| 国产色网站| 色播五月丁香婷婷| 五月丁香六月色| 激情五月婷婷她| 夜夜爽天天| 色五月婷婷在线| 成人午夜视频精品一区| 狠狠大香婷婷爱| 五月婷亚洲精品| 六月婷婷综合| 五月天日日操夜夜操 | 性生活视频98791| 亚洲综合色网| 超碰国产在线| 国产性爱亚洲是图| 丁香午月AV中文字幕| 亚洲精品国产精品乱码视99| 婷婷黄色网| 再綫Av免费視品| 涩涩五月天| 丁香五月亚洲综合丝袜| 五月天婷婷色小说| 欧美人与性动交CCOO| 4399在线日本A片| 久热最新视频| 五月丁香婷婷五月色| 日韩性视频| 色婷婷亚洲五月天| 丁香久月| 免费在线观看欧美激情xx小视频| 婷婷五月天丁香久久| 夜夜夜叫天天天做| 182.t午在线观看| 色婷婷香蕉| 五月天婷婷乱论小说| 欧美一级色| 99久久精| 狠狠色色| 天天射综合网天天插| 色色热| 久久久久亚洲AV无码网影音先锋| 美欧日韩国产成人在战| 五月婷婷激情综合| 亚洲经典三级| 丁香五月婷婷欧美成人色图| 激情啪啪五月天| 婷婷色狠狠| 五月婷婷亚洲天堂97色婷婷| 玖玖热视频| 99热久久日本| 婷婷五月综合在线| av在线超清中文| 人人摸人人| 天天 青草 制服丝袜 在线| 开心五月天激情网| 五月天激情中文字幕| 99热在线观看免费精品| 婷婷五月婷婷五月天| av国产精品| 天天狠狠插| 中文毛片无遮挡高潮免费| 天天色综合色| 大香伊人婷婷| 五月天啪啪啪| 久色五月| 日韩狠狠色| 婷婷亚洲色| 国产韩日亚洲美州欧亚综合在线| 91男女视频在线观看| 婷婷激情5月| 婷婷丁香五月天大香蕉| 欧美日韩aaa| 婷婷五月蜜桃成人桃色丁香| av在线不卡播放| 九月激情综合| 亚洲激情综合色站| 色婷婷色| 性做久久久久久久免费看| 好好日激情五月天| 在线99精品| 日本久久99| 九九热这里只有精品7| 精品久热| 五月丁香六月婷婷无码| 五月丁香啪啪| 一区中文字幕电影| 亚洲熟妇AV乱码在线观看| 狠狠狠狠操| 殴美日韩成人| 亚洲三级无码| 97色婷婷| 五月丁香婷婷深深爱| 99欧美| 亚洲AV影片在线观看| 丁香午夜天| av在线观看网站| 激情丁香婷婷| 天天操天天操天天操天天操天天操| 变态另类9| 操人妻AV| 色9999日韩国产| 中文字幕色色色| 97碰久久| 午夜免费高清AV片| 婷色影院| 亚洲精品又粗又大又爽A片| 丁香五月六月综合欧美| 就去涩涩丁香五月天| 欧美色色色色色色色色色色| 在线看AV| 夜夜嗨一区二区三区直播内容 | 五月婷婷激情性爱| 人妻内射视频| 啪到高潮激情丁香五月| 色五月天天| 97香蕉久久超级碰碰高清版 | 91久久电影| 丁香五月天日韩无码| 成人欧美日韩| 五夜丁香| 五月婷婷丁香六月| 久久96热| 五月停亭六月,六月停亭的英语 | 久99热| 亚洲性爱区无码区| 激情五月第四色| 9久久精品视频| 三男玩一女三A片| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 爱操人妻| 天天日,天天插| 午夜婷婷丁香| aaa9区免费在线观看| 99热精品在线| 亚洲AV网站在线观看| www.狠狠干com| 思思99热这里只有精品| 久婷| 91丨九色丨高潮丰满日本| 日碰日| 亚洲综合另类| 91久久久久久| 国产在线中文字幕| 亚洲操人| 99色色| 免费观看欧美成人AA片爱我多深| 深爱激情久久| 99精品爱| 国产精品久久久久久五月天加勒比| 天天爱天天做天天日| 久热婷婷在线视频| 亚洲AV无码一区二| 欧美操我| 吊色AV男人的天堂| 久久9热| 五月天婷婷丁香人人操91| 成人αV视频免费观看| 天天综合网在线| 久久婷.com| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 久久hd| 久久九九囯产| 激情AV中文| 国产干逼片| 99精品视频在线观看| 婷婷丁香久久| 婷婷亚洲综合| 99热| 人人操9| 热日韩欧美| 琪琪布丁香社区激情五月天| 97luluse| 丁香五月婷婷影院| 国产精品国产| 91avse| 婷婷久久久久| 男人天堂伊人五月丁香| 开心五月婷婷六月丁香| 丁香五月综合在线视频| 99精品免费视频| 日日日日日| 无码区婷婷五月花开| 欧美影院婷婷| 四川BBB搡BBB搡多人乱亂| 国产人妻777人伦精品HD| 91男同视频| 九月丁香八月婷婷加勒比| 亚洲激情四谢| 欧美日韩国产一区二区| 超碰成人电影| 日本五月丁香| 婷婷五月六| 婷婷五月花| 色五月综合| 五月综合久久| 一本九九色| 久99在线视频| 中文av网站| 色色亚洲| 偷拍九九五月丁香婷婷| 99热99成人| 五月天堂婷婷| 丁香六月婷| 久99久热| 日韩一本操| 色婷婷激情视频| 久久人人九| 99热最新精品| 婷婷狠狠干| 丁香五月综合婷婷| 欧美69久成人做爰视频| aaa9区免费在线观看| 欧美熟女99| 五月天第四色开心色播| 五月激情六月综合| 国产亚洲在线观看| 欧美成人日韩| 狠狠干在线视频| 五月天婷婷7米| 天天干天天干天天干天天干天天干| 青草视频在线播放| 国产免费AV网站| 婷婷五月AA五月在线| 99热免费在线| 欧美叉叉叉BBB网站| 国产精品成人网站| 日日爽日日操| 色婷久久| 九色地址91视频| av 一区三区四区| 色五月婷婷色五月婷婷色五月婷婷| 91偷拍视频| 婷婷五月,综合伊人| 欧美99热| 九九无毛| 五月永久激情| 一级性爱视频| 超碰在线观看成人视| 丁香五月激情欧欧美| 大香蕉久久婷婷| 五月婷婷丁香日韩在线| 婷婷色五月激情| 色色色热| 久久免费干| 97丁香花五月天激情小说| 成年人丁香五月| 日本欧美成人片AAAA| 九九综合网色全集 | 欧美久热| 亚洲另类电影| 天天操加勒比| 婷婷综合在线播放| 五月天亚洲综合网| 九九精品re免费视频| 婷婷 激情 五月| 99热都是精品| 久久久五月婷婷| 久久这里只| 极品人妻VIDEOSSS人妻| 精品乱码视频| 国产操碰| 色综合中文| 激情综合五月婷婷六月丁香| www.91热久久| 欧美Va在线| 大香蕉伊人久久| 97干在线| 99在线精品视频在线观看| 激情综合色婷婷啪啪六月天| 色综合另类| 丁香五月六月婷婷怡红院| 五月丁香婷婷色| 超碰人人艹| 丁香五月先锋| 色婷婷88| 丁香五月性| 午夜激情婷婷| 五月婷婷之综合激情| 色五月婷婷在线| 综合激情视频| 99re热在线视频观看| 99色色色色| 九九色插| 婷婷五月色天| www99久久| YJLZZJLZZ亚洲乱熟无码| 视频一二区| 狠狠爱五月婷婷| 丁香六月婷婷久久高清| 成人看片网站| 亚洲日本激情| 国产做爰视频免费播放| 小视频一区 | 五月婷婷深深爱| 久久免费操| 另类 在线| 狠狠色丁香久久| 9l视频自拍九色9l视频在线观看| 九九九九国产| 五月婷婷激情| 99综合激情久久精品久久| 丁香五月婷婷国产av| 婷婷激情丁香六月| 婷婷五月天AV在| 婷婷五月综合色拍| 噜综合| 免费视频WWW在线观看网站| 婷婷五月丁香色情| 国产在线视频1234| 色吧五月| 婷婷五月天激情网| 婷婷五月天男人影院色色网| 亚洲精品中文字幕成人片| 国产亚洲精品久久一区二区三区| 91狠狠综合久久| 大香蕉婷婷| 26UUU精品一区二区c〇m| 激情超碰网| 五月婷婷丁香大陆免费| 六月伊人婷婷| 玖玖婷婷色| 狠狠色婷婷7777久| 玖久精品视频9| 五月丁香婷婷99| 久激情网| 天天成人综合视频| 五月天堂婷婷| 九九九激情网| 丁香五月综合| 激情九九这里只有精品| 激情六月婷婷| 国内一级片| 亚洲婷婷免费| 777久久综合视频| 1级欧美日韩| 色综合久久天天综合网| 精品人妻久久久久久久| 五月激情综合网| 亚洲国产精品二二三三区| 丁香五月天啪啪a日本| 欧美99热| 九九99九九精品视频| 狠狠色婷婷777| 26uuu欧美亚洲日韩| 欧美激情中文字幕| WWW色五月| 大香蕉九操| 伊人婷婷五月| 91碰碰| 五月丁香日逼| 国产婷婷色五月| 亚洲啪啪自拍| 中文幕无线码中文字蜜桃| 九九这里有精品| 色婷婷婷婷成人网| 色综合丁香| 久久99网| 麻豆AV一区二区三区| 98色花堂98t.R| 五月综合亚洲| 婷婷五月天av网| 国产一区18| 五月丁香花成人社区| 精品人人操| 中文字幕乱轮| 亚洲激情色色| 激情婷婷五六月天| 丁香五月激情六月欧亚激情综合导航 | 97色婷婷成人综合在线观看| 伊人大蕉香| 99精品偷自拍| 色99视频| 热久久99热欧美国产亚洲| 色中色综合| 色五月色综合| 日日操夜夜爽天天天| 久久女人天堂| 日韩精品成人在线| 激情丁香五月AV| 国产av第一专区| 国产精品国产成人国产三级| 天天插天天爽| 五月天色丁香| 香蕉综合网| 丁香婷婷激情五月天无毒不卡蜜桃| 丁香网五月网| 丁香五月婷婷亚洲另类| 五月色欧洲| 天天色天天爽| 激情涩涩网| 五月天婷婷色在线视频免费观看| 99九九精品| 五月天久久综合婷婷| 99思思热只有在这里看| 五月综合激情视频| 亚洲九九99精品视频在线播放| 五月婷色| 五月丁香综合激情在线观看| 欧美va亚洲va| 婷婷爱综合| 色噜噜伊人| 色欲Av五月天| 婷婷五月天,影院| 99成人网站| 99久久综合| 五月天伊人| 五月丁香在线| 五月婷婷黄色网址| 色色色丁香| AV六月丁香| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 亚洲免费99| 成人综合视频在线| 91久久1118| 99热最新| 777.色色| 99国产性感视频| 五月天六月婷| 婷婷情色五月天| 久久精品4| 五月香婷婷| 精品一区二区三区免费毛片爱| 五月天丁香| 久久综合九色综合97婷婷| 操大屄五月天视频| 毛片九九九九九九| 91玖玖| 丁香五月婷婷久久久| 婷婷激情鹿城五月天| 久久人人人人妻| 婷婷丁香五月亚洲| 在线中文字幕av| 俺去也五月| 性av| 久久99久久久| 久热无码| 亚洲精品色色色| 激情五月婷婷视频一区二区三区| 婷婷丁香五月麻豆| 六月激情婷婷综合| 亚洲天堂aaa| 超碰人人操| 99这里只有精品视频| 五月色情| 91在线视频综合| 亚洲综合激情五月久久| 久久AV电影| 久久婷婷五月综合啪| 欧美丁香婷婷五月| 亚洲正能量欧美| 9热精品| av婷婷丁香 六月| 亚洲经典小视频| 九九热10| 伊人久久丁香狠狠婷婷综合香蕉 | 91九色精品| 99热精品10| 色五月综合在线| 天天噜噜| 九九九九中文字幕| 久久杏爱视频| 婷婷综合亚洲| 玖玖九九超碰| 另类天堂| 欧美激情综合五月色丁香| 婷婷色综合| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 成人在线视频网| 婷婷丁香五月亚洲综合网在线视频观看| 丁香五月综合激情啪啪| WwW色婷婷| 久久精品婷婷| 99热免费在线| 无码成人AAAAA毛片AI换脸| 夜夜爱影院| www.五月天婷婷姐姐| 精品久久久999| 综合网精品99| 美妞av| 久99久在线观看| a级毛片一区二区免费视频| 99自拍视频在线| 五月丁香性| 婷婷五月丁香婷婷| 色婷网| 久久码久久无清| 色五月丁香激情| www.国产色| 91互操| 五月婷婷之美女图片| 五月丁香啪| 91在线日| 丁香五月婷婷综合精品素人| 久久婷婷五月综合网| 亚洲精99| 天天干天天拍| 婷婷五月色| 色在线99| 丁香五月婷婷亚洲另类| 天天爽天天做| 老师高潮流白浆喷水的A片| 美女丁香五月天| 少妇高潮一区二区三区99欧美| 91日综合欧美| 常久最新免费的色吊丝| 日韩色色色色| 综合色天天| 九九综合久久| 凹凸7777操操操| 天天日,天天插| 99热碰碰热| 综合激情五月婷婷| 99资源在线视频| 人人爱摸视频| 婷婷六月色情| 99精品久久久久| 激情五月综合第一页| 26UUU欧美| 亚洲视频码| 六月婷婷久久大全| 中文字幕av网站| 五月六月婷婷| 94干大香蕉| 怡红院视频| 丁香五月 无码| 色婷婷AV久久久久久久| 91久久国产综合久久| 婷婷日日夜夜| 色色色色色五月| 十一月婷婷激情四射| 91人碰| 亚洲六月色婷婷| 婷婷五月天激情小说| 婷婷激情综合| 激情五月伊人婷婷| 国产真实乱对白精彩| 激情亚洲色图片丁香综合| 成人在线观看精品| 婷婷五月丁香网| 国产激情婷婷| 色欲天天综合| 久久99精品视频| 日本ww亚洲| 视频一区二区在线| 天天肏高清在线| 日夜操B| 狠狠狠狠狠狠| 69色色视频| 日韩大片艹艹| 操人91| 天天免费成年人视频| 韩日另类| 久久人人妻| 五月丁香婷婷中文| 极品人妻VIDEOSSS人妻| 婷婷五月情天| 伊人久久大香网| 欧美性爱五月天| 女力报到正好爱上你| 天堂综合久| 色噜噜狠狠色综无码久久合欧美| 99热这里只有精品33| 99视频极品在线香蕉| 亚洲AV人人操| 色五月五月丁香| 99久久视频| 五月天大香蕉| 思思re99视频在线观看| 91热爆在线| www免费在线视频| 天天日 天天草| 一起草无码视频| 丁香五月激情啪啪综合| 丁香六月久久| 五月婷婷丁香色吧网| 色天堂在线| 99久久人妻精品无码二区| www天天色天天射| 婷婷丁香色五月亚洲| 三日本无码| 爱射综合| 亚洲欧美另类在线23p| 久久丁香五月婷婷| 成人va在线| 五月丁香久久| 久久色亭亭五月天| 激情五月丁香在线观看直播| 站长推荐无码播放| 大香蕉在线99热| 国产成人网址| 色小说五月天| 九九丁香社区欧美激情| aa久久| 99r这里| 99在线观看视频免费| www.婷婷五月天,com| 成人av免费观看| 狠狠干狠狠干| 天天xxxxxx天天日| 噜一噜免费视频| 天堂色色色| 婷婷丁香色五月天| 色色五月婷| 精品成人在线观看| 五月丁香人妻| www.com操| 丁香婷婷激情综合五月激情| 综合激情肏逼网| 久久久精品婷婷五月天| 色墦五月丁香| 91狠狠综合久久| 五月婷婷丁香五月天| 天天干天天干天天干天天干天天干天天干天天| 在线另类视频| 欧美激情久| 99热综合在线观看| 青草青草视频2免费观看| 亚洲另类在线观看| 大香蕉久久久| 婷婷五月天视频免费在线观看| 婷婷五月天第四色| 婷婷久久国产视频| 99re99热| www.99热| www久| 99啪99| 激情五月婷婷她| 久久44| 日韩色色色色| 性做爰A片免费视频A片直播| 婷婷综合激情| 啊v视频在线观看| 丁香五月电影| 九色视频91| 在线成人网址| 丁香五月另类色婷婷麻豆| 欧洲色| 久久精品人妻| 五月婷婷婷丁香播| 天天日天天色| 丁香五月偷拍| 成人色图情色成人网 www.5b5b5bcom 五月天| 天天舔天天摸天天透| 欧美日韩婷婷五月天| 久久五月丁香六月婷| 日韩五月婷婷久久| 97超级碰人人| 狠狠色综合无线观看| 91丨九色丨首页| www.ywav| 久久婷婷桃花五月天| 日韩成人电泉AV| 97日日碰碰| 99热超| 丁香婷婷色情| 91热久久| 婷婷五月丁香五月丁香| 情婷婷五月天在线| 思思99re这里只有| 天天五月情| 夜夜操,天天撸| 六月婷婷中文字幕| 久久总和99| 五月婷婷天| 国产毛片精品一区二区色欲黄A片| 欧美精品999| 91精品电影18T| www.操逼comm| 色五婷婷| 五月天婷综合| 99热在这里只有精品| 丁香久久| 大香蕉婷婷婷| 天天操天天曰天天射| 色五月色五天色情网| 婷婷六月丁香在线| 大香蕉院线| 五月丁香成人视频| 午夜天堂啪啪| 中文毛片无遮挡高潮免费| 丁香六月成人| 婷婷成人AV| 这里只有精品亚洲| 人妻在线中文字幕久久| 一起草性爱不卡视频| 激情av在线| 色五月五月婷婷| 色色色激情网| 日本久久精品18| 无码一区二区三区四区五区| 夜夜操天天爽| 99男人的天堂| 国产AV一区二区三区日韩| 亚洲黄网在线| 五月色网| 亚洲中文乱字字幕线在永久| 丁香五月婷婷基地| 亚洲操人| 色站9/| 俺来也综合网精品一区| 日日夜夜综合| 久久久99久久| 久久婷婷九月国产精品| 九热久| 婷婷丁香五另类网站| 激情综合网五月天| 免费黄色视频网址| 激情五月天婷婷色色色色色色色色色色色 | 五月色情婷婷| 无码 色| 精品人妻一区二区三区四区不卡在| 日韩AV在线影片| 超碰97干| 五月天激情综合10p| 爆乳熟妇一区二区三区爆乳| 99国产在线精品视频| 超级黄色片| 99爱最新免费视频在线观看| www.99热视频| www.韩日视频| 99精品这里只有免费视频| 色屌丝中文字幕| 在线观看免费视频| 黄色激情久久| 欧美婷婷色五月| 激情99| 国产99久9在线| 五月丁香六月婷婷亚洲激情综合| 九九这里是免费的视频5| 色婷婷在线电影| 婷婷月五天在线在线看| 六月婷婷中文字幕| 久久久久亚洲AV综合| 色综合色综合网| 色婷婷五月天偷拍| 丁香五月大香蕉在线99| 久久视网36| 这里有精品| 中文AⅤ大全| 婷婷亚洲五月丁香综合在线| 97久久超碰| 男人天堂AV在线一区二区| 婷婷丁香五月天色区| 91精品丝袜久久久久久| 五月婷婷亚洲色图| 亚洲综合狠狠艹| 五月丁香色综合| 综合色99| 六月丁香激情| 99热亚洲精品| 婷婷中文字幕欧美| 狠狠色丁香99| 午夜天堂啪啪| 婷婷丁香六月| 97操碰视频| 色色日本欧美| 丁香六月五月天| 日本婷婷激情四射中文字幕在线观看| WWW色五月天| 婷婷丁香色五月| 色色色区| 久99久热| 97色色综合| 久久美女五月天| 亚洲99一级无嗎特制在线| 99九九视屏| 亚洲最大成人综合网720P| Av狠狠色丁香婷| 亚洲九九视频| 婷婷五月大| 婷婷五月天伊人网| 97自拍视频在线| 99久久婷婷国产综合精品草原| 99久re热| 久久激情五月天| 九九99精品视频| 国产免费一区二区三区三州老师F1F1.CC| 激情五月天色色色| 玖玖精品视频| 成人VAV视频在线观看| 婷婷五月综合视频免费播放| 久久38视频| 五月婷婷综合在线视频小说| 婷综合六月| 成人va在线播放| 亚洲黄3级片网站欧美| 五月欧美丁香在线观看| 欧美乱码国产一级A片| 超碰国产AV| 激情综合网五月丁香| 99精品久久久久久久婷婷| 欧美日朝成人| 91超级碰| 99精品视频在线| 99热最新国内| 色噜噜狠狠一区二区三区| 成人免费高清在线播放| 亚洲旡码| 色,激情五月天| 丁香激情网| 天天射天天射一道本日本社区 | 丁香五月婷婷乱| 六月丁香AV| 超碰国产AV| 亚洲激情在线| 免费观看欧美成人AA片爱我多深| 人妻操操色| 综合精品99| 在线成人网址| 色婷婷狠狠干| 狠狠爱成人综合网| 色噜噜五月天| 日本人妻A片成人免费看片| 丁香五月电影| 国产一二三四五六七八视频| 精品九九网| 91热久久| 婷婷久久免费看| 亚洲色频| 五月丁香啪啪啪综合网| 九九综合视频在线观看| 激情操逼婷婷| 99性爱| 色狠狠激情五月| 亚洲色99综合天堂| 任你操精品免费| 再綫Av免费視品| 日本性视频| 五月丁香 啪啪| 伊人成人宗合网| 黄色91在线观看| 婷婷五月天激情网| 五月综合色播播丁香婷婷| 久久9精品视频| 香蕉久久国产AV一区二区| 色色色图| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 激情综合五| 第2色五月婷| 激情五月天色色色| 99这里只有精品| 丁香成人视频| 国在线激情网| 丁香五月天亚洲综合| 99热在线只有精品| 女人天堂 AV| 色欲人妻综合aaaaaaaa网| 麻豆忘忧草午夜| 99热免| 日日夜夜天天综合| 综合综合色色| 国产精品人妻在线网址| 在线观看免费视频| 色五月天丁香婷婷| 五月四色色| 久久久www| 久久丁香婷婷色情综合| 日日干夜夜干| 中文久久婷婷| 日日懆天天懆| 丁香五月激情啪啪| 国产精品岛国片在线观看免费| 激情综合五月婷婷| 色欲午夜无码久久久久久张津瑜| 四虎婷婷五月天| 先锋五月婷婷丁香草草| 国产综合A片| 99性爱视频| 久婷| 天天天干夜夜夜操| 人人综合五月人人婷婷| 美日韩成人| 日韩综合久| 九九伦子片| 伊人激情AV一区二区三区| 五月丁香91| 欧美黄色AA片哗啦啦啦| 久久奄也去色色网站| 婷婷亚洲影院| av无码电影| 九97免费视频| 97精品人人A片免费看| 九月婷婷| www.婷婷,com| 婷婷开心五月| 综合图区激情| 天天做天天干天天综合网| 97精品综合久久| 色爽九九| Caop在线| 六月婷在线| av操B网站| 激情文学综合婷婷五月天丁香花| 亚洲色网址| 大香蕉伊人久久| 婷婷五月大香蕉| 99爱视频在线观看| 免费五月婷婷网| 99热这里只有精品2024| 天天干天天日天天插| 成人天天爽| 五月丁香六月激情综合网| 国产成人综合在线| 五月天伊人综合| 午夜婷婷久久| 超碰99热在线观看| 五月丁香花激情啪啪网| 久久九九99视频| 五月婷婷电影院| 又大又粗九一在线| 热热色色五月天婷婷| 91人久| 高清资源站日A美A欧亚…| 欧美大片免费播放器| 天天爽天天操| 少妇做爰免费视看片| 色色色综合| 四川BBB搡BBB搡多人乱亂| 中文字幕日产A片在线看| 欧美激情综合色综合啪啪五月| 大香蕉综合| 丁香六月婷婷综合| 女人高潮内射99精品| 国产精产国品一二三在观看| 国自产拍偷拍精品啪啪一区二区| 九九热视频在线观看| 中文字幕网伦射乱中文| 欧美色综合天天久久综合精品| 国产精自产拍久久久久久蜜| www.五月天| av大片在线| OYIWbGcPu8H| 婷婷五月丁香激情图片| 日韩色色一区| 51XX午夜影福利| 婷婷五月天最新综合你懂的| 亚洲五月天第一综合干| 五月的丁香六月的婷婷| 影音先锋人妻出差| 五月丁花六月丁香综合| 五月开心网| 99色综合网| www超碰| 天天日天天肏天天奸| 丁香花综合永久入口| 九九中文字幕九| 色综合丁香婷婷| 99视频色在线观看| 丁香婷婷六月天| 一级操逼内射在线视频| 97色色视频| 夜夜操天天干| 午夜成人片400| 超碰A V在线| 丁香六月激情四射| 五月天伊人av| 激情综合色婷婷啪啪六月天| 99无码精品| 亚洲久久激情| 丁香六月天婷婷色| www91在线| 五月天婷婷六月激情网| 日撸夜撸日操| 无码区婷婷五月花开| 天天天天干| 色欲色香综合网站| 久热伊人| 这里只有精品9| 欧美97色| 密着浓厚中出乚交尾GvG935| 五月婷婷综合影院| 亚洲va日| 欧美成人色婷婷| 99热这里只有精品首页| 91操黄| 丁香花五月天激情| 26UUU精品一区二区c〇m| 久久久久激情网| 亚洲妇女熟BBW| 婷婷久久精品| 少妇久久诱惑视频| 丁香五月婷婷基地| 激情五月天综合网| 婷婷综合偷拍| 国产精品色色666| 五月天成人在线视频网站| 久久精品99| 激情丁香五月AV| tingting五月天亚洲| 五月婷婷五月色| 久久99国产综合精品免费| 婷婷综合在线播放| 五月天四色房丁香| 色婷婷婷婷| 五月丁香六月停停停| 色噜噜狠狠色综| 婷婷五月天开心网| av在线资源| 玖玖婷婷精品| 久久机热这里只有 | 中文字幕成人| 丁香六月五月天| 99网| 91精品婷婷国产综合久久| 激情六月婷| 狼人久草| 久久总和99| 丁香五月开心五月激情| 色一情一乱一乱一区91Av| 久久婷婷五月天激情| 久久深爱激情网| 五月丁香综合| 精品99视频| 婷婷五月六月激情| 影音先锋女人AA鲁色资源 | 婷婷五月丁香色综合| 欧州婷婷五月天综合| 丁香综合婷婷开心激情网| 婷婷五月婷婷| 九九婷婷热| 九月婷婷综合八月丁香在线观看 | 强伦轩人妻一区二区电影| 五月丁香狠狠| 亚洲乱码日产精品BD| 五月色婷| 九九热在线视频| 五月丁香A片| 深爱丁香激情| 99爱精品| 丁香五月天啪啪| 狠狠色五月| 99欧美三级视频| WWW.99热| www,黄色在线,con| 激情五月色综合| 91啪级电影| 79精品视频在线观看,| enecarbon-materials.com污K127封锁请涟系@wip1688 | www.婷婷六月天| 久久久8| 五月天成人在线视频网站| Caoub青青超碰 | 女婷久久| 99精品国产在热久久婷婷| 狠狠色综合网站久久久久| 九日日夜夜69| 开心五月色婷| 野战J办公桌椅H| 天天色综合色| 丁香五月天激情综合| 做爱夜夜干天天操| 婷婷五月天开心网| 日本色色色| av中文在线| 色~性~乱~伦~噜| 99日本黄站| 亚洲av成人在线| www.99久| 亚洲中文字幕av| 97干在线| 六月丁香婷| 99精彩视频| 狠狠色丁香综合| 亚洲操操操| 五月天另类综合网| 欧美成人精品三区综合A片 | 激情综合久久| 99 色色吧| 成人无码髙潮喷水A片| 久久五月婷综合网| 丁香五月五月婷婷欧美大香蕉| 深爱激情九九五月天| 亚洲性爱AV在线| 狠狠干思思热| 六月丁香开心婷婷欧美| 99热这里只有精品86| 99re青青草| 综合色影| 91超级碰碰| 婷婷五月天丁香| 欧美性色五月天| 色综合女人99| 色色亚洲视频| 99精品久久久| 色五月天在线观看| 99热 免费| 超喷97免费在线视频| 欧美激情综合色综合色| 五月丁香中文婷婷中文| 婷婷五月综合社区| 热中文字幕| 精品无码久久久久久久久| 天堂草在线观| 丁香久久久| 婷婷久久综合| www.五月天性.com| 变天就操逼婷婷五月| 综合激情在线| 另类色网| 99视频综合| 99色 | 99久热| 六月天六月婷| 99久久精彩视频| 五月婷婷之综合激情| 6080av| 99内射视频| 亚洲男女激情| 天天爽综合| 超碰99资源站| www99热| 天天草比天天爽| 色婷婷亚洲婷婷| 日本啪啪视频HD| 天天综合网站| 开心婷婷五| 色欲色香,www,com| 香蕉久久国产AV一区二区| 九色视频这里只有精品| 97超级碰碰碰| 五月香婷婷| 久草五月天| 《诡秘之主》在线观看| 91色综合网站在线| 色情五月丁香| 色五月婷婷婷婷| 婷婷五月大香蕉| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 99久re热视频精品98| 日日激情网| 91超级碰|