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

ARTICLE DETAIL

資訊詳情

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

YOLOv8玉米葉病害檢測(cè)實(shí)戰(zhàn):從數(shù)據(jù)集標(biāo)注到PyQt界面部署

YOLOv8玉米葉病害檢測(cè)實(shí)戰(zhàn):從數(shù)據(jù)集標(biāo)注到PyQt界面部署 簡(jiǎn)介面向玉米葉病害智能檢測(cè)方向的開(kāi)發(fā)者與農(nóng)業(yè)人工智能學(xué)習(xí)者這份實(shí)用資源提供了YOLOv8病害檢測(cè)權(quán)重、PyQt可視化界面以及1500張玉米葉病害標(biāo)注數(shù)據(jù)集幫助解決從數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練到結(jié)果界面化展示的完整流程。數(shù)據(jù)集已預(yù)先劃分train、val、test三個(gè)子目錄并附上data.yaml配置文件標(biāo)簽采用txt格式覆蓋blight、common_rust、gray_leaf_spot、healthy四類常見(jiàn)玉米葉片狀態(tài)借助目錄中已有的py腳本與yaml配置YOLOv5、YOLOv7、YOLOv8、YOLOv9等算法可以直接開(kāi)始訓(xùn)練無(wú)需二次整理數(shù)據(jù)。壓縮包共2000個(gè)文件以1700個(gè)txt文件、171個(gè)Python腳本、56個(gè)yaml配置為主輔以jpg圖片、ui界面文件、pt權(quán)重文件及pdf說(shuō)明整體約182.28MB結(jié)構(gòu)劃分清晰便于按需查找與調(diào)用。目前已有436人瀏覽學(xué)習(xí)對(duì)于需要快速搭建玉米葉病害檢測(cè)項(xiàng)目、完成課程設(shè)計(jì)或畢業(yè)設(shè)計(jì)的讀者是一份可直接落地的配套資源。1. 玉米葉病害檢測(cè)項(xiàng)目為什么說(shuō)權(quán)重、界面、數(shù)據(jù)集三件套才是完整方案手頭拿到一個(gè)yolov8玉米葉病害檢測(cè)權(quán)重 pyqt界面 1500數(shù)據(jù)集的打包項(xiàng)目很多人第一反應(yīng)是“這不就是訓(xùn)練個(gè)模型再套個(gè)界面嗎”。實(shí)際動(dòng)過(guò)手的人都知道模型訓(xùn)練只占整個(gè)工作量的一小半真正耗時(shí)間的是把 1500 張葉片圖整理成能喂給 YOLOv8 的格式、調(diào)出能用的權(quán)重、再把推理邏輯接進(jìn) PyQt 界面里不卡死。這套方案最典型的用途是農(nóng)業(yè)院校的畢業(yè)設(shè)計(jì)、植保部門的病害識(shí)別演示系統(tǒng)、或者小規(guī)模田間采集工具的快速原型——它解決的問(wèn)題是“沒(méi)有算法團(tuán)隊(duì)也能在桌面上跑起一個(gè)病害檢測(cè)工具”。適合兩類人一類是想基于 YOLOv8 做完整落地方案、但不想從零造輪子的開(kāi)發(fā)者另一類是手里有玉米葉圖片、想把識(shí)別能力做成可視化工具的農(nóng)業(yè)信息化從業(yè)者。下面按數(shù)據(jù)、訓(xùn)練、界面、排查的順序把這套東西完整拆開(kāi)講。2. 1500 張玉米葉數(shù)據(jù)集從采集、標(biāo)注到劃分的完整鏈路2.1 病害類別怎么定先從病斑形態(tài)反推標(biāo)注方案玉米葉病害檢測(cè)的數(shù)據(jù)集類別劃分直接決定標(biāo)注工作量。常見(jiàn)的做法是分 4 類健康葉片healthy、銹病rust、灰斑病gray_leaf_spot、北方葉枯病northern_leaf_blight。銹病是葉片上散生的鐵銹色粉狀斑點(diǎn)灰斑病是長(zhǎng)條狀灰褐色病斑葉枯病是大面積枯黃壞死斑——這三類形態(tài)差異明顯YOLOv8 學(xué)起來(lái)相對(duì)容易。如果分類太細(xì)比如把不同嚴(yán)重程度也拆成單獨(dú)類1500 張圖根本不夠分標(biāo)注返工率會(huì)很高。我一般建議拿到圖先做一輪“可標(biāo)注性檢查”把所有圖批量縮略圖瀏覽一遍剔除模糊、嚴(yán)重過(guò)曝、葉片占畫面比例太小低于 10%的圖。葉片檢測(cè)和日常目標(biāo)檢測(cè)不一樣病斑是小目標(biāo)原圖分辨率如果低于 800×600縮到 YOLOv8 的 640 輸入尺寸后小病斑就只剩幾個(gè)像素后期怎么調(diào)參都救不回來(lái)。標(biāo)注方案上有個(gè)關(guān)鍵決策點(diǎn)一張葉片上有多個(gè)病斑是框整片葉子還是框單個(gè)病斑從檢測(cè)邏輯講框單個(gè)病斑更合理因?yàn)槟繕?biāo)就是“找出病害位置”。實(shí)際標(biāo)注時(shí)小病斑用矩形框病斑連成片時(shí)框它的外邊緣輪廓。建議一圖多框不要害怕標(biāo)注密度大YOLOv8 對(duì)密集小目標(biāo)的支持比舊版 YOLO 好很多。2.2 labelme 標(biāo)注到 YOLO 格式轉(zhuǎn)換腳本與四個(gè)邊界坑數(shù)據(jù)集處理是這套項(xiàng)目里第一個(gè)翻車高發(fā)區(qū)。1500 張圖用 labelme 標(biāo)注”labelme標(biāo)注用于yolov8“這一步繞不開(kāi)產(chǎn)出的是 json 文件而 YOLOv8 訓(xùn)練需要的是 txt 格式的歸一化坐標(biāo)。這個(gè)轉(zhuǎn)換沒(méi)做好“yolov8訓(xùn)練自己的數(shù)據(jù)集”這一步直接卡死。labelme 標(biāo)注完成后每張圖對(duì)應(yīng)一個(gè)同名的 json 文件。轉(zhuǎn)換腳本的核心邏輯是讀取 json 里的 shapes 數(shù)組取出每個(gè)標(biāo)注框的 xy 坐標(biāo)換算成歸一化的 cx, cy, w, h 寫入 txt。下面這個(gè)腳本是我一直在用的簡(jiǎn)化版import json import os from pathlib import Path def convert_labelme_to_yolo(json_path, img_width, img_height, class_dict, out_dir): json_path: labelme 標(biāo)注產(chǎn)出的 json 文件 img_width, img_height: 原圖尺寸必須從原圖讀取不能依賴 json 字段 class_dict: {rust: 0, gray_leaf_spot: 1, northern_leaf_blight: 2, healthy: 3} out_dir: 輸出 txt 文件的目錄 with open(json_path, r, encodingutf-8) as f: data json.load(f) txt_path Path(out_dir) / (Path(json_path).stem .txt) with open(txt_path, w, encodingutf-8) as out: for shape in data[shapes]: label shape[label] if label not in class_dict: continue # 未定義的類別直接跳過(guò) points shape[points] # [[x1, y1], [x2, y2]] x1, y1 points[0] x2, y2 points[1] # 有的標(biāo)注工具會(huì)畫出反向框統(tǒng)一取左上右下 x_left min(x1, x2) y_top min(y1, y2) x_right max(x1, x2) y_bottom max(y1, y2) # 歸一化到 0~1 x_center (x_left x_right) / 2.0 / img_width y_center (y_top y_bottom) / 2.0 / img_height width (x_right - x_left) / img_width height (y_bottom - y_top) / img_height # 過(guò)濾掉無(wú)效框?qū)捇蚋咝∮?3 像素的框丟不掉會(huì)拉低訓(xùn)練質(zhì)量 if width * img_width 3 or height * img_height 3: continue out.write(f{class_dict[label]} {x_center:.6f} {y_center:.6f} {width:.6f} {height:.6f}\n)這個(gè)腳本的邏輯核心在三點(diǎn)一是原圖尺寸一定要從圖像文件本身讀取cv2.imread或 PIL不要信任 json 里的imageWidth字段——我遇到過(guò)一次 labelme 版本差異導(dǎo)致該字段缺失二是類別索引必須和后續(xù) data.yaml 里的 names 順序嚴(yán)格一致否則訓(xùn)練時(shí)類別標(biāo)簽錯(cuò)位模型 loss 能降但預(yù)測(cè)結(jié)果全對(duì)不上三是小框過(guò)濾邏輯病斑標(biāo)注里很容易出現(xiàn)只有幾個(gè)像素的碎框留著只會(huì)讓正樣本質(zhì)量變差。轉(zhuǎn)換完要做一次反向校驗(yàn)。寫個(gè)幾行的腳本把 txt 里的坐標(biāo)畫回到原圖上用 OpenCV 的rectangle函數(shù)按歸一化坐標(biāo)反算像素坐標(biāo)隨機(jī)抽樣 20 張肉眼過(guò)一遍。這一步叫“標(biāo)注自檢”能發(fā)現(xiàn) 90% 的坐標(biāo)轉(zhuǎn)換錯(cuò)誤。常見(jiàn)的錯(cuò)誤包括 x_center 算成了 x_left、寬高寫成了 x2-x1 與 y2-y1 的原始像素值沒(méi)有歸一化等。2.3 數(shù)據(jù)集劃分與增強(qiáng)別讓驗(yàn)證集成了玄學(xué)1500 張圖在“處理數(shù)據(jù)集用于yolov8訓(xùn)練”這一步劃分比例建議按 7:2:1 拆訓(xùn)練、驗(yàn)證、測(cè)試。關(guān)鍵在于要按目錄級(jí)別的維度打亂而不是簡(jiǎn)單random.shuffle后切片。import random import shutil from pathlib import Path random.seed(42) # 固定種子保證可復(fù)現(xiàn) src_dir Path(path/to/labeled_images) train_dir Path(dataset/images/train) val_dir Path(dataset/images/val) test_dir Path(dataset/images/test) # 按文件名分組防止同名不同后綴導(dǎo)致標(biāo)注錯(cuò)位 image_files list(src_dir.glob(*.jpg)) list(src_dir.glob(*.png)) random.shuffle(image_files) total len(image_files) train_split int(total * 0.7) val_split int(total * 0.9) for i, img_path in enumerate(image_files): if i train_split: dest train_dir elif i val_split: dest val_dir else: dest test_dir # 圖片和同名 txt 標(biāo)注必須一起搬運(yùn) shutil.copy(img_path, dest / img_path.name) label_path Path(path/to/labeled_txt) / (img_path.stem .txt) if label_path.exists(): shutil.copy(label_path, Path(str(dest).replace(images, labels)) / label_path.name) print(f訓(xùn)練集 {train_split} 張驗(yàn)證集 {val_split - train_split} 張測(cè)試集 {total - val_split} 張)劃分里有三個(gè)細(xì)節(jié)直接影響訓(xùn)練效果。第一個(gè)是固定隨機(jī)種子——不固定的話每次劃分結(jié)果不同模型對(duì)比實(shí)驗(yàn)就失去了意義。第二個(gè)是復(fù)制時(shí)要同時(shí)復(fù)制圖片和同名 txt目錄結(jié)構(gòu)必須是images/train和labels/train這種平行目錄YOLOv8 會(huì)按圖片路徑自動(dòng)找同名標(biāo)簽。第三個(gè)是驗(yàn)證集和訓(xùn)練集的類別分布要保持一致比如銹病圖占比 30%驗(yàn)證集里也基本是 30%否則驗(yàn)證集 mAP 就變成了隨機(jī)波動(dòng)。增強(qiáng)方面1500 張圖直接訓(xùn)練容易過(guò)擬合。我一般用 YOLOv8 自帶的數(shù)據(jù)增強(qiáng)配置不開(kāi)額外腳本。主要調(diào)這三個(gè)參數(shù)hsv_h 0.015做顏色擾動(dòng)模擬不同光照translate 0.1做平移增強(qiáng)模擬葉片在畫面中位置變化mosaic 1.0保持打開(kāi)——Mosaic 把四張圖拼成一張訓(xùn)練對(duì)提升小病斑的檢測(cè)能力很有幫助。注意驗(yàn)證集不要做增強(qiáng)數(shù)據(jù)增強(qiáng)只作用于訓(xùn)練集。3. 訓(xùn)練玉米葉病害權(quán)重YOLOv8 配置、參數(shù)與損失曲線3.1 環(huán)境與預(yù)訓(xùn)練權(quán)重選擇CPU 也能跑但要有耐心“ubuntu20.04搭建yolov8環(huán)境cpu版本”和“yolov8預(yù)訓(xùn)練權(quán)重下載”是訓(xùn)練前繞不開(kāi)的兩個(gè)現(xiàn)實(shí)問(wèn)題。環(huán)境搭建有個(gè)血淚經(jīng)驗(yàn)優(yōu)先用pip install ultralytics而不是從源碼編譯源碼編譯在 PyTorch 版本適配上的坑太多。CPU 版本環(huán)境的核心命令是# 創(chuàng)建虛擬環(huán)境避免污染系統(tǒng) Python python3 -m venv yolov8_env source yolov8_env/bin/activate # 安裝 CPU 版 PyTorch務(wù)必加 --index-url 指定 CPU 源 pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu pip install ultralytics # 驗(yàn)證安裝 python -c from ultralytics import YOLO; print(YOLO.__name__)裝完驗(yàn)證一下import torch; print(torch.cuda.is_available())輸出 False 是正常的——CPU 版安裝成功就是這個(gè)結(jié)果。很多人看到 False 以為裝錯(cuò)了其實(shí)這是預(yù)期狀態(tài)。預(yù)訓(xùn)練權(quán)重選哪個(gè)取決于你的顯存/內(nèi)存和訓(xùn)練時(shí)長(zhǎng)預(yù)期。yolov8n.pt 是最輕量的CPU 訓(xùn)練 1500 張圖、640 分辨率、100 epochs大概需要 8 到 12 小時(shí)yolov8s.pt 精度好一些但時(shí)間翻倍yolov8m.pt 以上就不建議 CPU 跑了等一整天都未必收斂。GTX 1660 Ti 這類 6G 顯存顯卡跑 yolov8s 開(kāi) batch 16 沒(méi)有問(wèn)題這是我踩過(guò)的最低配置線。從 ultralytics 官方 release 下載預(yù)訓(xùn)練權(quán)重時(shí)注意下載對(duì)應(yīng)版本的 .pt 文件——YOLOv8 的權(quán)重文件是 PyTorch 序列化格式版本太舊或太新都可能加載失敗。還有一個(gè)關(guān)鍵選擇是從頭訓(xùn)練還是遷移學(xué)習(xí)。玉米葉病害不是 COCO 里的類別但 COCO 預(yù)訓(xùn)練權(quán)重里學(xué)到的紋理、邊緣、小目標(biāo)特征遷移過(guò)來(lái)依然有效。所以直接model YOLO(yolov8s.pt)讓 ultralytics 自動(dòng)加載預(yù)訓(xùn)練權(quán)重訓(xùn)練時(shí)會(huì)自動(dòng)適配新的類別數(shù)不要手動(dòng)改權(quán)重文件的最后一層。3.2 訓(xùn)練參數(shù)怎么設(shè)從 data.yaml 到訓(xùn)練命令“yolov8模型訓(xùn)練參數(shù)含義”對(duì)新手來(lái)說(shuō)是最容易糊涂的。先搞定 data.yaml這是數(shù)據(jù)集和訓(xùn)練的橋梁# dataset.yaml path: /path/to/dataset # 數(shù)據(jù)集根目錄建議用絕對(duì)路徑 train: images/train # 訓(xùn)練集相對(duì)路徑 val: images/val # 驗(yàn)證集相對(duì)路徑 test: images/test # 測(cè)試集相對(duì)路徑 nc: 4 # 類別數(shù) names: [rust, gray_leaf_spot, northern_leaf_blight, healthy]注意names的索引順序必須和上一章轉(zhuǎn)換腳本里的class_dict值一一對(duì)應(yīng)。我遇到過(guò)一次把 healthy 放在最前面導(dǎo)致索引錯(cuò)位訓(xùn)練完全正常但推理輸出張冠李戴檢查了很久才發(fā)現(xiàn)是這里的問(wèn)題。訓(xùn)練命令本身不長(zhǎng)但每個(gè)參數(shù)都要心里有數(shù)yolo detect train \ data/path/to/dataset.yaml \ modelyolov8s.pt \ epochs100 \ imgsz640 \ batch16 \ lr00.01 \ patience15 \ device0 # CPU 環(huán)境改成 devicecpu幾個(gè)關(guān)鍵參數(shù)的落地經(jīng)驗(yàn)epochs100對(duì) 1500 張圖來(lái)說(shuō)足夠配合patience15早停機(jī)制驗(yàn)證集指標(biāo)連續(xù) 15 輪不提升就自動(dòng)停止可以避免多余等待。imgsz640是默認(rèn)值但值得解釋——玉米葉病斑很多是幾十像素的小目標(biāo)上調(diào)到 960 理論上能提升小目標(biāo)召回率但訓(xùn)練時(shí)間和顯存占用翻倍不止1500 張圖的體量先用 640 跑通再看情況調(diào)。batch設(shè)置原則是顯存能承受的最大值CPU 環(huán)境 8 到 16 就夠。lr0是初始學(xué)習(xí)率1e-2 是 YOLOv8 的默認(rèn)值如果訓(xùn)練過(guò)程中發(fā)現(xiàn) loss 震蕩劇烈優(yōu)先降到 5e-3 而不是去調(diào)別的參數(shù)。3.3 訓(xùn)練過(guò)程看什么損失曲線和驗(yàn)證指標(biāo)的正確讀法訓(xùn)練啟動(dòng)后不要只是干等。YOLOv8 會(huì)在runs/detect/train/目錄下輸出results.csv里面記錄了每一輪的 box_loss、cls_loss、dfl_loss 以及驗(yàn)證集的 metrics。用下面這個(gè)腳本可以把損失曲線畫出來(lái)比盯著控制臺(tái)輸出直觀得多import pandas as pd import matplotlib.pyplot as plt # 訓(xùn)練完成后運(yùn)行results.csv 在 ultralytics 每次訓(xùn)練的獨(dú)立目錄下 df pd.read_csv(runs/detect/train/results.csv) plt.figure(figsize(10, 6)) plt.plot(df[epoch], df[train/box_loss], labeltrain box_loss, linewidth1) plt.plot(df[epoch], df[val/box_loss], labelval box_loss, linewidth1) plt.plot(df[epoch], df[train/cls_loss], labeltrain cls_loss, linewidth1) plt.plot(df[epoch], df[val/cls_loss], labelval cls_loss, linewidth1) plt.xlabel(epoch) plt.ylabel(loss) plt.title(YOLOv8 Corn Leaf Disease Training Loss) plt.legend() plt.grid(True) plt.savefig(loss_curve.png, dpi150)“yolov8畫損失函數(shù)曲線圖”其實(shí)就這么幾行代碼。讀曲線有兩條實(shí)戰(zhàn)經(jīng)驗(yàn)一是 train loss 和 val loss 的差距訓(xùn)練后期越拉越大說(shuō)明過(guò)擬合了此時(shí)應(yīng)該提前終止或者加大數(shù)據(jù)增強(qiáng)二是 val box_loss 在訓(xùn)練 20 輪左右開(kāi)始不再下降甚至反彈說(shuō)明模型容量接近上限繼續(xù)跑只是浪費(fèi)時(shí)間這時(shí)候去調(diào) batch、lr 的意義不大不如回頭檢查標(biāo)注質(zhì)量。訓(xùn)練結(jié)束后的驗(yàn)收指標(biāo)不要只看 mAP50。玉米葉病害檢測(cè)的驗(yàn)收重點(diǎn)要看三個(gè)指標(biāo)mAP50、mAP50-95、以及每個(gè)類別的單獨(dú) AP。健康葉片這類負(fù)樣本很容易拉高整體 mAP但銹病和灰斑病這種小目標(biāo)的 AP 才是真正決定可用性的。如果 rust 類的 AP 明顯低于其他類最常見(jiàn)的兩個(gè)原因是標(biāo)注框太小、標(biāo)注數(shù)量不均衡前者要重新標(biāo)后者要補(bǔ)圖或者做過(guò)采樣。4. 把權(quán)重接進(jìn) PyQt 界面推理邏輯與線程設(shè)計(jì)4.1 界面框架加載權(quán)重、選圖、顯示結(jié)果的最小結(jié)構(gòu)PyQt 界面的價(jià)值不在好看在于把訓(xùn)練好的權(quán)重包裝成一個(gè)“非算法人員也能操作”的工具。我見(jiàn)過(guò)很多項(xiàng)目把界面寫得很復(fù)雜各種側(cè)邊欄、歷史記錄、數(shù)據(jù)庫(kù)存儲(chǔ)實(shí)際上最核心的交互只有三個(gè)動(dòng)作加載權(quán)重、選擇圖片、顯示檢測(cè)結(jié)果。下面是最小可用骨架import sys from PyQt5.QtWidgets import (QApplication, QMainWindow, QLabel, QPushButton, QVBoxLayout, QWidget, QFileDialog) from PyQt5.QtGui import QPixmap class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle(玉米葉病害檢測(cè)) self.setMinimumSize(800, 600) # 三個(gè)核心控件按鈕 圖片顯示標(biāo)簽 結(jié)果文本標(biāo)簽 self.btn_load_model QPushButton(加載權(quán)重) self.btn_select_image QPushButton(選擇圖片) self.image_label QLabel(圖片顯示區(qū)域) self.image_label.setAlignment(__import__(Qt).QtCore.Qt.AlignCenter) self.result_label QLabel(檢測(cè)結(jié)果將在此顯示) layout QVBoxLayout() layout.addWidget(self.btn_load_model) layout.addWidget(self.btn_select_image) layout.addWidget(self.image_label) layout.addWidget(self.result_label) container QWidget() container.setLayout(layout) self.setCentralWidget(container) # 信號(hào)連接 self.btn_load_model.clicked.connect(self.load_model) self.btn_select_image.clicked.connect(self.select_image) def load_model(self): # 打開(kāi)文件對(duì)話框選擇 .pt 權(quán)重文件 path, _ QFileDialog.getOpenFileName( self, 選擇權(quán)重文件, , PyTorch Weight (*.pt)) if path: self.result_label.setText(f已加載: {path.split(/)[-1]}) def select_image(self): path, _ QFileDialog.getOpenFileName( self, 選擇圖片, , Images (*.jpg *.jpeg *.png)) if path: pixmap QPixmap(path) scaled pixmap.scaled(self.image_label.size(), __import__(Qt).QtCore.Qt.KeepAspectRatio) self.image_label.setPixmap(scaled) self.result_label.setText(f待檢測(cè): {path.split(/)[-1]}) if __name__ __main__: app QApplication(sys.argv) window MainWindow() window.show() sys.exit(app.exec_())這段代碼里要注意的是圖片縮放scaled()按 label 尺寸等比縮放否則大圖會(huì)超出界面。load_model里目前只更新了文字真正加載權(quán)重放在后面的推理初始化里不要在這里反復(fù)加載模型模型初始化耗時(shí)可能有幾秒鐘做成獨(dú)立動(dòng)作更合理。QMainWindow 繼承是 PyQt 桌面應(yīng)用的固定做法QVBoxLayout 垂直布局保證控件從上到下排列。這個(gè)骨架跑通后再往界面里加“檢測(cè)置信度閾值滑條”“結(jié)果導(dǎo)出按鈕”都只是往 layout 里追加控件的事。4.2 推理代碼從權(quán)重文件到畫框顯示的完整路徑界面選圖后要調(diào)用的核心推理函數(shù)這是整個(gè) PyQt 界面里技術(shù)含量最高的部分。不推薦在界面里直接用model.predict(sourcepath)一把梭因?yàn)?predict 方法返回的結(jié)果對(duì)象需要解析才能拿到坐標(biāo)和類別from ultralytics import YOLO import cv2 import numpy as np class DiseaseDetector: def __init__(self, weight_path): # 模型只初始化一次多個(gè)控件共用同一實(shí)例 self.model YOLO(weight_path) self.class_names [銹病, 灰斑病, 葉枯病, 健康] def detect_and_draw(self, image_path, conf_thres0.25): 返回畫好框的圖像 numpy 數(shù)組和檢測(cè)結(jié)果字符串 results self.model.predict( sourceimage_path, confconf_thres, # 置信度閾值越高越嚴(yán)格 imgsz640, # 推理尺寸訓(xùn)練時(shí)多少這里就用多少 device0, # CPU 環(huán)境改成 cpu verboseFalse # 不打印推理日志 ) # 注意results 是列表一張圖時(shí)取 [0] result results[0] img cv2.imread(image_path) # 解析檢測(cè)結(jié)果 if result.boxes is None or len(result.boxes) 0: return img, 未檢測(cè)到病害 boxes result.boxes.xyxy.cpu().numpy() # Nx4 的框坐標(biāo) classes result.boxes.cls.cpu().numpy().astype(int) # N 個(gè)類別索引 confs result.boxes.conf.cpu().numpy() # N 個(gè)置信度 det_text [] for box, cls, conf in zip(boxes, classes, confs): x1, y1, x2, y2 [int(v) for v in box] # 在原始圖上畫矩形框和標(biāo)簽 color (0, 0, 255) # BGR 格式紅色框比較醒目 cv2.rectangle(img, (x1, y1), (x2, y2), color, 2) label f{self.class_names[cls]} {conf:.2f} cv2.putText(img, label, (x1, max(0, y1-8)), cv2.FONT_HERSHEY_SIMPLEX, 0.7, color, 2) det_text.append(label) return img, ; .join(det_text)這段代碼里有三個(gè)變量名很容易寫錯(cuò)result.boxes.xyxy、result.boxes.cls、result.boxes.conf三個(gè)都帶.boxes前綴結(jié)構(gòu)是 ultralytics 封裝好的張量對(duì)象。.cpu().numpy()是因?yàn)?GPU 推理時(shí)這些張量在顯存上必須先拷回 CPU 再轉(zhuǎn) numpy否則后面cv2.rectangle會(huì)報(bào)類型錯(cuò)誤。device0在 GPU 環(huán)境是 0 號(hào)顯卡CPU 環(huán)境必須顯式寫devicecpu否則 ultralytics 會(huì)嘗試初始化 CUDA 然后報(bào)錯(cuò)。推理尺寸和訓(xùn)練尺寸必須一致。訓(xùn)練時(shí)imgsz640推理時(shí)也用 640因?yàn)槟P蛯W(xué)到的是 640 尺度下的特征表達(dá)突然改成 960 會(huì)讓檢測(cè)框位置偏移。置信度閾值conf_thres0.25是一個(gè)比較通用的起點(diǎn)實(shí)測(cè)發(fā)現(xiàn)玉米葉病斑在 0.25 下能召回大部分但誤檢也多界面里做成滑條讓用戶自己調(diào)更實(shí)用。4.3 別讓界面卡死QThread 處理推理的必要性PyQt 新手最大的翻車現(xiàn)場(chǎng)是點(diǎn)擊“選擇圖片”后如果直接在槽函數(shù)里調(diào)用detect_and_draw程序會(huì)卡住 5 到 10 秒CPU 推理更久期間窗口無(wú)法拖動(dòng)、按鈕無(wú)法點(diǎn)擊操作系統(tǒng)甚至?xí)棾觥俺绦蛭错憫?yīng)”的提示。原因很簡(jiǎn)單推理是阻塞操作把 GUI 主線程堵死了。解決辦法是開(kāi)一個(gè)工作線程用 QThread 的 run 方法執(zhí)行推理完成后發(fā)信號(hào)回主線程更新界面from PyQt5.QtCore import QThread, pyqtSignal class InferenceThread(QThread): # 信號(hào)定義在類屬性中在 run 中 emit finished_signal pyqtSignal(object, str) # 第一個(gè)是結(jié)果圖像 numpy 數(shù)組 def __init__(self, detector, image_path, conf_thres0.25): super().__init__() self.detector detector self.image_path image_path self.conf_thres conf_thres def run(self): # 這里執(zhí)行的是耗時(shí)推理不阻塞主線程 img, det_text self.detector.detect_and_draw( self.image_path, self.conf_thres) self.finished_signal.emit(img, det_text) class MainWindow(QMainWindow): # ... 之前的界面代碼省略 ... def start_detection(self): # 點(diǎn)擊檢測(cè)按鈕后調(diào)用 self.btn_select_image.setEnabled(False) # 防止重復(fù)點(diǎn)擊 self.result_label.setText(推理中...) # 啟動(dòng)線程 self.thread InferenceThread(self.detector, self.current_image_path, self.conf_thres) self.thread.finished_signal.connect(self.on_detection_finished) self.thread.finished.connect(self.thread.deleteLater) # 防止內(nèi)存泄漏 self.thread.start() def on_detection_finished(self, img, det_text): # 回到主線程安全更新界面 h, w, ch img.shape bytes_per_line ch * w from PyQt5.QtGui import QImage qimg QImage(img.data, w, h, bytes_per_line, QImage.Format_RGB888).rgbSwapped() self.image_label.setPixmap(QPixmap.fromImage(qimg)) self.result_label.setText(det_text) self.btn_select_image.setEnabled(True)QThread 的關(guān)鍵紀(jì)律所有對(duì)界面控件的操作都必須回到主線程完成工作線程只做計(jì)算。這里finished_signal.emit(img, det_text)把 numpy 數(shù)組和文字結(jié)果傳回on_detection_finished是主線程上下文中的槽函數(shù)在里面安全地更新 QLabel。deleteLater防止線程對(duì)象銷毀不徹底我踩過(guò)這個(gè)坑不加的話連續(xù)檢測(cè)幾十次后程序內(nèi)存暴漲。圖像轉(zhuǎn) QImage 時(shí)的格式轉(zhuǎn)換要特別注意OpenCV 讀出來(lái)的是 BGR 順序QImage 默認(rèn)是 RGB直接用會(huì)看到顏色整體偏藍(lán)。解決辦法是Format_RGB888配合.rgbSwapped()把 BGR 轉(zhuǎn)成 RGB 再交給 QPixmap。還有img.data必須是連續(xù)的如果 numpy 數(shù)組經(jīng)過(guò)了裁剪或其他操作導(dǎo)致內(nèi)存不連續(xù)要先np.ascontiguousarray()再做 QImage否則顯示出來(lái)是花的。5. 項(xiàng)目落地的六個(gè)高頻問(wèn)題排查從環(huán)境到推理翻車5.1 訓(xùn)練時(shí) loss 變成 NaN所有指標(biāo)瞬間歸零現(xiàn)象訓(xùn)練到第 5 到 15 輪之間控制臺(tái)輸出里 train/box_loss 突然變成nan隨后往后的所有指標(biāo)全部為nantensorboard 和 results.csv 里的曲線直接斷掉。原因最常見(jiàn)的是學(xué)習(xí)率設(shè)置過(guò)大導(dǎo)致梯度爆炸其次是輸入數(shù)據(jù)里混入了損壞的圖片文件比如標(biāo)稱 jpg 實(shí)際是 txt 改后綴、圖片文件不完整只有半個(gè)文件頭模型在反向傳播時(shí)讀到了異常梯度。還有一個(gè)隱蔽原因是 batch 太大在 CPU 或小顯存機(jī)器上觸發(fā)內(nèi)存溢出后的數(shù)值異常。解決把lr0從默認(rèn)的 0.01 降到 0.005 甚至 0.003 再試。同時(shí)跑一個(gè)腳本遍歷所有訓(xùn)練圖片用cv2.imread逐個(gè)檢查返回值是否為 None把所有讀不出來(lái)的圖挑出來(lái)刪掉或者重新導(dǎo)出。這兩個(gè)動(dòng)作做掉 80% 的 NaN 問(wèn)題。如果還在 NaN把batch減半再訓(xùn)一輪。5.2 PyQt 界面推理報(bào)錯(cuò)CUDA out of memory現(xiàn)象檢測(cè)程序在終端運(yùn)行沒(méi)問(wèn)題在 PyQt 界面里點(diǎn)幾次“檢測(cè)”后就報(bào)RuntimeError: CUDA out of memory程序沒(méi)有崩潰但檢測(cè)結(jié)果不再顯示。原因界面程序不像終端腳本那樣退出即釋放顯存。PyTorch 的 GPU 顯存分配器和圖緩存會(huì)在進(jìn)程內(nèi)持續(xù)累積每次推理生成的中間張量如果沒(méi)有被正確釋放多次檢測(cè)后顯存就被占滿了。另一個(gè)原因是推理時(shí)imgsz設(shè)得太大比如用了 1280單次推理的顯存占用直接翻倍。解決每次推理前調(diào)用torch.cuda.empty_cache()清理未使用的緩存塊然后在detect_and_draw函數(shù)結(jié)束后把result對(duì)象置空。如果還是不夠改成devicecpu推理雖然慢但穩(wěn)定。界面場(chǎng)景下檢測(cè)單張圖對(duì)速度不敏感CPU 推理反而是更省心的選擇。5.3 檢測(cè)框畫的位置和病害實(shí)際位置對(duì)不上整體偏移現(xiàn)象模型在訓(xùn)練集和驗(yàn)證集上都表現(xiàn)良好mAP50 在 0.85 以上但放到 PyQt 界面里對(duì)實(shí)拍圖檢測(cè)時(shí)畫出來(lái)的框整體偏上或偏下置信度還很高。原因訓(xùn)練時(shí)輸入圖像是原圖直接縮放到 640推理時(shí)如果用了不同的縮放方式比如先按短邊縮放再 padding或者沒(méi)有保持等比例圖像的空間對(duì)應(yīng)關(guān)系就變了。還有一個(gè)原因是訓(xùn)練和推理的imgsz不一致。YOLOv8 內(nèi)部對(duì)輸入做了 letterbox 處理如果外面再疊加一層自己的縮放就會(huì)雙重扭曲導(dǎo)致坐標(biāo)錯(cuò)位。解決推理路徑上堅(jiān)決不要自己手動(dòng)cv2.resize直接把原始圖像路徑傳給model.predict(sourceimage_path)讓 ultralytics 內(nèi)部按標(biāo)準(zhǔn) letterbox 流程處理。如果非要自己加載圖像做預(yù)處理必須用ultralytics提供的letterbox工具函數(shù)而不是 OpenCV 的 naive resize。5.4 驗(yàn)證集指標(biāo)高但換成手機(jī)拍的照片檢出率驟降現(xiàn)象訓(xùn)練時(shí) val mAP50 到了 0.92感覺(jué)模型很完美結(jié)果拿手機(jī)在田間拍了幾張一個(gè)病斑都檢不出來(lái)檢出來(lái)的也是錯(cuò)框。原因數(shù)據(jù)集“同源”問(wèn)題。1500 張圖如果全部來(lái)自同一個(gè)采集設(shè)備、同一個(gè)時(shí)間、同一個(gè)光照環(huán)境模型實(shí)際上學(xué)的是那一種光線條件下的葉片紋理而不是通用的病害特征。這是小數(shù)據(jù)集最典型的翻車屬于泛化能力不足不是模型結(jié)構(gòu)問(wèn)題。解決往數(shù)據(jù)集里混入不同背景的圖。手機(jī)拍的和專業(yè)相機(jī)拍的混在一起、晴天和陰天各拍一部分、葉片背面也拍一部分。實(shí)在加不了新數(shù)據(jù)就在訓(xùn)練時(shí)把hsv_h從 0.015 提高到 0.03hsv_s提高到 0.7用顏色擾動(dòng)硬生生逼模型學(xué)到病害本身的紋理特征而不是光照特征。5.5 界面能打開(kāi)但加載權(quán)重時(shí)報(bào)RuntimeError: Unable to load model現(xiàn)象點(diǎn)擊“加載權(quán)重”選擇.pt文件后程序直接報(bào)錯(cuò)退出報(bào)錯(cuò)信息是RuntimeError: Unable to load model加一串不可讀的 pickle 報(bào)錯(cuò)。原因版本不匹配是主因。權(quán)重文件是用 YOLOv8 某個(gè)版本訓(xùn)練的但當(dāng)前環(huán)境里裝的 ultralytics 版本太舊或太新模型結(jié)構(gòu)定義和序列化內(nèi)容對(duì)不上。另一個(gè)常見(jiàn)原因是把普通 PyTorch.pth文件當(dāng)成了.pt權(quán)重YOLOv8 加載的必須是 ultralytics 訓(xùn)練的完整 checkpoint。解決檢查環(huán)境里的 ultralytics 版本pip show ultralytics | grep Version然后確認(rèn)訓(xùn)練時(shí)的版本。盡量固定采用pip install ultralytics8.x.x的某個(gè)具體版本不要用最新版跑舊權(quán)重。如果是自己訓(xùn)練的權(quán)重上傳和下載之間別用網(wǎng)盤在線解壓功能傳輸過(guò)程很容易把文件搞損壞重新下載原文件即可。5.6 檢測(cè)結(jié)果里 rust 類全部顯示成了 healthy現(xiàn)象模型的框位置準(zhǔn)確但類別標(biāo)簽錯(cuò)亂銹病全部標(biāo)成了健康灰斑病標(biāo)成了銹病整體錯(cuò)位一個(gè)索引。原因data.yaml的names順序和訓(xùn)練時(shí)用的類別字典不一致。訓(xùn)練時(shí)class_dict是{rust: 0, gray_leaf_spot: 1}但界面推理代碼里的self.class_names按字母序排成了[gray_leaf_spot, healthy, rust]索引對(duì)不上。解決在項(xiàng)目根目錄建一個(gè)classes.json統(tǒng)一維護(hù)類別順序訓(xùn)練腳本讀它生成 data.yaml界面代碼讀它生成 class_names兩端永遠(yuǎn)使用同一份配置。不要在兩份代碼里分別硬編碼類別列表這是團(tuán)隊(duì)協(xié)作里最容易出現(xiàn)的隱蔽 bug。6. 進(jìn)階驗(yàn)證與部署從檢測(cè)框到可量化的病害報(bào)告這套方案的最后一公里是把“能檢測(cè)”變成“能交付”。我最常用的技巧是給 PyQt 界面加一個(gè)“導(dǎo)出報(bào)告”按鈕檢測(cè)完成后把每張圖片的檢測(cè)結(jié)果匯總成 CSV——包含文件名、病害類別、置信度、框坐標(biāo)、框面積占葉片面積比例。單張圖看起來(lái)只是畫了幾個(gè)框但一整個(gè)批次的檢測(cè)結(jié)果匯總后病害分布、嚴(yán)重程度、不同類別的置信度分布都變得可量化了。這個(gè)功能對(duì)農(nóng)業(yè)信息化項(xiàng)目來(lái)說(shuō)價(jià)值很大因?yàn)檗r(nóng)戶真正想要的是“這塊地病害多嚴(yán)重”而不是一張畫了紅框的圖。另一個(gè)值得做的拓展是把推理邏輯從界面里抽出來(lái)做成獨(dú)立服務(wù)用 FastAPI 封裝成一個(gè) HTTP 接口。這樣 PyQt 界面不再直接依賴本地權(quán)重文件而是通過(guò) HTTP 請(qǐng)求訪問(wèn)推理服務(wù)界面換機(jī)器部署時(shí)只需要裝 PyQt 不需要再裝 PyTorch 和 CUDA。目錄結(jié)構(gòu)做成分離之后權(quán)和界面各自可以獨(dú)立演進(jìn)。模型本身的進(jìn)一步提升方向我會(huì)優(yōu)先試這兩個(gè)一是給 rust 類專門的病斑檢測(cè)分支因?yàn)殇P病病斑密集且小標(biāo)準(zhǔn) YOLOv8 的檢測(cè)頭對(duì)小目標(biāo)不敏感可以考慮添加一個(gè)小目標(biāo)檢測(cè)層二是用測(cè)試集做置信度閾值分析畫出每個(gè)類別的 precision-recall 隨閾值變化的曲線挑出每個(gè)類別的最佳閾值——綠色健康葉片和銹病的置信度分布幾乎不重疊閾值調(diào)到 0.4 以上能顯著壓低誤檢。做這個(gè)項(xiàng)目時(shí)我踩過(guò)最深的坑是數(shù)據(jù)集的一次錯(cuò)誤轉(zhuǎn)換導(dǎo)致全部重新標(biāo)注后來(lái)養(yǎng)成了一個(gè)習(xí)慣每次新接檢測(cè)任務(wù)先花十分鐘檢查數(shù)據(jù)集的質(zhì)量和格式再花十分鐘定類別索引表之后才開(kāi)始訓(xùn)練。權(quán)重文件的命名也養(yǎng)成帶數(shù)據(jù)集版本的習(xí)慣比如corn_leaf_v3_rust_ap087.pt三個(gè)月后回來(lái)找模型時(shí)你不會(huì)記得final_final_2.pt是哪次實(shí)驗(yàn)的產(chǎn)物。希望這些細(xì)節(jié)能幫你少走幾天彎路。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲做性| 国产精品久久久777| AV色五月天| 欧美一区二区亚洲天堂| 7月婷婷综合| 午夜操逼不卡| 亚洲无码视频免费在线观看网址!| 91丝袜美腿片| 亚洲AV不卡在线观看尤物| 激情五月天社区| 日韩强奸av| 熟妇人妻丰满久久久久久久无码| 国产中文字幕在线| 91精品久久久久久久久久| 九九热在线精品视频| 日韩黄片视频试看| 免费av在线播放二区| 国产白丝网站| 丰满人妻区一区二区三| 日韩有码中文字幕女同性恋 | 99青草| 日本操逼视频不卡直接放| 男人天堂毛片| 麻豆一区二区三区在线看| 啊啊啊快操我视频| 成熟熟女国产精品一区二区| 日日摸日日碰| 99蜜桃臀亚洲成人在线观看| 嗯嗯嗯,草死我| 五月大香蕉| 亚洲黄色网址视频| 天天欧美色| 久久精品国产精品一区| 99re综合伊人| 亚洲欧美内射| 天天综合网合集91| 久神马| 久久久久久久 九九九九九九九| 亚洲欧美日韩精品久久久一区二区| 女性91网站| 亚洲高清自拍| 好爽免费视频| 色九久| 91成人18| av网站国产主播在线| 欧美激情精品| 亚洲字幕一区二区| 国产日产欧产美韩系列麻豆免费| 校园春色亚洲无码| 91色射| 九九人妻| 清纯唯美综合亚洲| 2024黄色视频| 91东京热男人的天堂| 熟女激情综合网| 国产精品久久99日日| 一级@啪啪视频| 久久一级无码精品毛片6| 欧美顶级黄色大片免费| 欧美一级A片在线看视频性色| 欧美顶级黄片AAAAA在线免费看| 户外裸露刺激视频第一区| 自慰白浆在线观看| 欧美大香蕉97| 欧美线天码中字| 精品二区三四区五电影| 熟女人妻一区二区三区| 亚洲另类欧美精品| 欧美v亚洲v日韩v最新在线二区 | 五月色网| 亚州人妻| 蜜汁欧美| 自拍偷拍 高清无码| 欧美顶级黄色大片免费| 蜜臀久久99精品久久久久久久久| 欧美在线啊啊啊| 97欧美色综合| 熟妇的味道HD中文字幕| 婷婷丁香六月| 久久精品老司| 日本三级精品| 日本欧美韩国国产在线| 天天天天干| 日韩精品9999| 日本色色色网站免费看不卡| 欧美性爱十八禁| 六六久久日韩不卡| 成人夜夜| 日本国产高清色www视频在线| www久久99| 欲射影视| WWW.操逼.COM| 日本 欧美 国产一区| 骚乳在线| 欧美黑人熟妇精品91| 3028国产精品| 大香蕉92| 亚洲操逼视频网站| 亚洲人精品久久久| 操逼视频免费日韩无码| 九九九九九九九九九五码| 综合久久六月久久婷婷| 性生活久久久久久久久久| 啊啊啊啊嗯嗯在线久久久| 伊人专区一区二区三区| 超碰亚洲欧美日韩无| 97精品视频在线| 操逼视频国产无套| 日韩pv中文| 97操碰| 狠狠中文字幕| 我中文字幕6区| 97色亚洲| 国产乱弄免费在线视频。| 97超碰精品| 99操| 精品日日人妻| 狠狠色婷婷7777久| 超碰色97| 青娱乐导航AV| 极品国产内射| 欧美色图 人妻| 国产最新小视频在线播放下载 | 77国产精品| 青娱乐999| 四虎AV影视国产精品亚洲精品| 久9精品| 久久免费中文字幕在线观看| 少妇久久久久久久久| 亚洲最大AV网| 岛国天天午夜影院传媒网| 日亚韩精品视频二区三| 日日AAvv| 国产农村妇女一区二区| 国产家庭乱伦表演| 欧美综合色图片| 色婷五月| 97色碰| 日韩激情视频| 日亚韩精品视频二区三| 欧美亚洲情色| 国产成人精品午夜福利| 91丨熟女丨丰满熟女| 蜜臀99久久精品| 偷拍 精品另类 凸凹了四区| 尤物一级在线免费观看| 狠狠入| 欧美中文字幕男人天堂久久精品| 黄色电影观看久久9| 国产91丝袜在线播放蜜月| 色婷婷五月综合激情中文字幕| 亚洲日本大香蕉1| 翘臀vidoes| 欧美精品日韩久久久九| 丝袜美腿91| 亚洲精品819| 欧美人人曰人人操人人射射 | 欧美aaaaaaa| 久久99久久99精品天美传媒棢·纸:. | 欧美性巨大╳╳╳╳╳高跟鞋| 九九九九免费视频| 91女人的网站| 欧美一区二区亚洲天堂| 中文?日韩?免费?精品| 美女裸体无遮挡永久免费观看网站| 亚洲精品一二三四区| 日本性爰一道本| 亚洲影视第一页| 日日夜夜骚| 青草青草久热| 2019精品国产无码成人| 一区二区三区一亚洲中文字幕、综合区灬| 嗯嗯啊啊亚欧精品| 极品色www影院| PMv在线观看| 加勒比性爱成人在线| 精品妇女一区二区三区| 国产三级日产三级韩国三级| 亚洲国产精品无码AV久久久| 青青草综合在线| 天美欧美国产| 高清不卡视频| 久久精品一区二区三区不卡| 97九色人妻| 欧美精品久久久久久久久88| 人人妻人射| 日韩啊V| 久操国产在线| 97国产精品久久久久| 人妻日日夜夜精品| 久久av色| 天堂精品小草| 91色黑人少妇| 怡红院怡春院| 久久久久9999妇女| 精品大久久| 欧美性天天影视| 日韩九区| 天天插天天射| 婷婷伊人网| 日韩 欧美 视频 在线 一区| 日韩人妻中文视频| 免费啪啪一级视频| 亚洲天堂人妻熟妇视频| 成人性爱高清视频免费看| 91大神精品长腿在线观看网站| 麻豆av一区二区| 亚洲骚男同com| 亚洲精品一卡二卡三卡福利视频网站| 国产精品天干天干综合网麻豆 | 超碰美国| 天天做天天爱| 国产婷婷综合在线观看| 欧美日韩性爱无码| 国产av美女被艹的乱叫| 国模不卡| 99精品久久久久久久婷婷蜜桃| 人妻日日干| 国产精品不卡一区二区三区| 裸体美女久久久| 好舒服视频| 伊人久久蜜月| 欧美三级偷拍| 国产高清亚洲日韩一区| 亚洲 小说 欧美 激情 另类| 久久五月天婷婷丁香中文字幕| av天堂天堂av日韩| 日韩,欧美,中文在线| 亚洲 欧美 手机在线观看| 国产 日韩 另类 视频一区爱| 丁香色婷婷| 99这里有精品| 丰满搜索结果 -第18页- 久久高清无码| 96精品久久久久中文字幕| 神马久久久久久久久久| 亚洲国产亚洲天堂| 热99这里有精品综合久久 | 九九成人| 色综合潮| 青青五月天| 内射夫妻三片| 国产大学生高潮在线播放| 亚洲综合五月天婷婷丁香| 伊人97色天使| 亚洲综合大片| 久艾草在线精品视频在线观看| 免费一级黄色录像影片| 国产精品老师| 97自拍一区| 九九九国产精品| 久久超碰97| 成人网站 免费观看| 中文字幕 码 自拍 视频 区| 欧美熟女妇同| 夜夜骑夜夜操| 国产超碰| 欧美亚洲美少妇一区二区| 男人天堂久久精品不卡| 亚洲乱码精品一区二区| 大香蕉丝袜一级片| 无码视频一区二区| 免费精品国偷自产在线在线| 另类小说五月天| 白 大 人妻 区 在线| 欲香欲色综合天天伊人| 91强热人妻| 亚洲熟妇丝袜在线观看| 一区二区三| 性爱乱伦网址| 秋霞鲁丝午夜无码一区二区三| 中文字幕视频在线观看| 九九亚洲视频| 人妻色情天天操| 青青草日本无码| 夜夜爽夜夜摸夜夜操免费视频| 中文字幕av亚洲精品| 乱伦熟女区| 婷婷另类小说| 日韩欧美一级特黄大片| 曰韩香蕉97| 中文字幕高清精品一区| 国产精品久久久久久夜夜夜| 丝袜 中出 制服 人妻 美腿 中文字幕| 看黄片视频免费| 欧美97在线观看| 久久免费少妇| 国产人妻精品久久久一区二区三区| 欧美黑人168页欧美黑人167| 视频国产精品未满十八禁止在线观看| 蜜臀AV成人精品蜜臀| 久久久久久久97| 一区二区三区精品视频| 大鸡巴久久| 九九综合久久| 在线播放中文字幕| 另类小色呦| 超碰免费欧美7| 看日韩操逼| 大香蕉日韩欧美| 网页导航五月天免费一二三区 | 成人美女av| 97精品97久久| 五月丁香综合啪啪| 91激情| 九九热精品免费视频| 超碰97久久| 综合网~91综合网| 一区操逼日比视频| 人妻无码一区二区三区久久99| 日韩一性一交一A片俄罗斯| 嫩草影院永久在线制服丝袜| 日本操大逼| 夜夜嗨一区二区三区三州加勒比 | 美女爽爽爽刺痛洞洞| 国人欧美精品一区二区| 亚洲欧美91| 久极品在线观看| 都市久久精品激情亚洲| 一二三四区操操Av| 大香蕉色网| 风流老熟女一区二区三区l| 国产又长又大又粗的视频| 欧美色综合影院| BBBBB97COM| 97超碰逼| 欧日韩不卡视.频| 黄色av网站在线播放| 日日日大屁股骚女人精品| 极品尤物女神在线观看| 日韩熟女操逼| 一区二区三区看视频| 中文字幕制服欧美久久一区| 精品国产www久久| 东京热毛片177b2viP| 97日视频| 久久久久久午夜男人的天堂| 国产精品亚洲无码| av网站免费看| 亚洲丨在线| 色婷婷婷五月天激情四射| 久久欧美性爱视频| 人人做,人人操,人人摸| 日本Suv精品一区二区| 欧美美女在线高潮999| 天天精品| 国产一级137片内射麻豆| 91A欧美电影网站| 91日产欧美| 久久黄黄| 九月婷婷综合| 国产伦乱91| 性饥渴少妇av无码毛片| 青草成人免费视频一COm| 一本久久精品中文字| 久久久草成人网站久久久草成人久久久草久久久 | 亚欧美综合网| 欧美综合自拍亚洲综合图| 精品.99999| 婷婷丁香五月综合| 成人免费不卡在线视频| av天堂精品久久| 婷婷涩嫩草鲁丝久久午夜精品| 亚洲怡春院| 久草草一二三四区久久| 欧美狠狠| 青青久久艹| 久久是精品| 天天天天做夜夜夜夜做| 亚州精品丝袜-不卡成人免费| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 亚洲精品久久久久久| 欧美熟女妇同| 91伊人大香蕉| 国产av热热色| 桃色人妻在线视频| 欧色性第一页| 天天热精品| 精彩久久中文| 亚洲系列欧美| 欧美图片校园春色| 欧洲久久一二线| 男人的天堂va| 国产免费一区2区3区| 久久夜夜| 黄人人操人人操| A一区片| 国产AAAAAABBBBB| 波多野结衣之双飞调教在线播放 | 亚洲1区2区三区高清中文字幕| 亚洲欧洲av影音| 国产v片在线免费观看| 一区AV| 八戒无码国产午夜福利| 国产一进一出视频网站| 亚洲av淫乱| 人妻-91porn| 97人人干| 强上我不卡卡| 伊人9| 精品日日人妻| 欧美性爱91| 人妻天天爽夜夜爽精品2| 中文字幕乱偷人妻久久艾草网| 91黑丝在线播放| 婷婷激情啪啪| 91女网站| 97资源免费视频| 亚洲性感丝袜诱惑在线观看| yazhououmeizongya| 9精品久久久久| 久热这里只有精品9| 亚洲黑人在线| 免费1级a做爰片观看| 亚洲国产一区二区入口| 丁香婷婷久久 | 亚洲一二三四区在线免费看视频| 国产精品动态一区二区三区四四| 99色热国产视频精品| 黄色av片三级三级三级免费看| 激情啪啪拍91| 日韩精彩免费| 蜜臀网址在线| 成人性爱视频在线看| 热九九精品| 精品国产一区二区久久| 色香网| 97在线免费观看视频| ji熟女.com| 99热啪啪| 无卡一区=区| 嗯嗯啊啊操我| 狠狠色综合网| 18禁久极品美女久久哦哟呀!| 精品十八在线观看| 综合久久久久久久综合网| 91超级碰碰碰| 夜夜 中文视频rt| 69一区二区三区| 国产乱人伦AVA麻豆软件.| 天天欧美欧美亚洲网| 九九九九97| 十八禁视频一区二区| 亚洲中文字幕网| av72网| 伊人国产成人av网站| 欧美日本国产日韩激情视频| 欧美性,亚州色| 久久久青青草| 中文字幕精品资源在线| 日本性一区| 午夜a成v人电影| 九九九综合精品| 久久有码视频| 欧美性爱系列| 色97欧美| 99热精品在线播放| 国产9熟妇视频网站| 女人喷水视频在线观看| 欧美在线视频播放| 又大又长又粗又爽又黄| 三上制服丝AV| 国产成人自拍视频视频| 97精品久久久久久久| 精品免费视频国产一区| 天堂蜜桃无码视频一区二区| 综合欧美亚洲| 又黄又爽在线观看视频| 亚洲国产综合视频| 亚洲欧美中日韩| 欧美色女人| 91女在线观看| 婷婷伊人五月| 欧美在线大香蕉| 免费久久一级毛片大黄| 亚洲永久AV无码精品秋霞| www.亚洲黄色| 牛牛久久国产精品视频一二三| 一起草欧美| 2019午夜福利视频| 国产精品视频白浆免费| 精品国产乱码久久久久久久久久毛片| 精品超碰国产| 综合网天天| 午夜欧美J进J出白浆流出久久久| 色哟哟综合| 欧美 日韩 婷婷 五月| xxx0国产在线播放| 91日韩网站| 欧美黄页在线| 成人麻豆av电影网站| 另类专区加勒比| 丁香五月激情综合国产| 97在线免费视频观看| 91大神电影天堂| 色五天伊人| 亚洲97网站| 日本特黄f c2| 无码丰满熟妇一区二区浪潮AV| 精品久久无码午夜福利| 日韩精品三级片长长久久| hd成人一区二区在线| 久久粉色| 91成人国产综合久久精品蜜月| 综合操逼| 日本加勒比无码专区| 欧美日韩电影一区二区| av天堂5| 97香蕉网| 丝袜天堂网| 九色97| 国产精品一区二区三区,亚洲综合| 国产夫妻性生活视频| 99青草| 亚洲操逼无码| 操b在线观看| 国产欧美日产一区二区三区 - 国产欧美日| 9久精品| 蜜乳av一区二区| 色吊丝 日日骚 清纯唯美| 日韩欧美丝袜诱惑| av天堂影视中文在字幕在线中文| 强奸乱伦大香蕉| 男人天堂欧美| 亚洲中文丝袜美腿诱惑字幕| 啊好爽快点-国产一区二区三区撒尿在线-成人AV | 超碰色图| 亚洲欧洲激情| 试看福利| 亚洲国产剧情少妇激情| www.婷婷六月天| 新婚人妻扶着粗大强行坐下| 天天做天天爱夜夜爽毛片试看| 欧美日韩人妻精品一区二区三区| 麻豆精品A片免费观看| www.婷婷| 大香蕉520| 九色在线熟女国产黑人| 欧美1区二区三区公司| 欧美亚洲激情| 亚洲天堂2020| 日韩熟女精一区二区三区不卡| 东方亚洲在线操逼天堂| 超碰人妻中文在线| 蜜臀亚洲中文| 2025亚洲男人天堂| 欧美日韩资源在线| 国产无遮挡| 美女啊啊啊啊啊啊啊| 最新日韩黄片| 国产人妻天天干精品| 视频黄色国产一级| 一级性爱啪啪视频| 人妻啪| 大香蕉免费3| a片自拍直播视频| 亚洲在线91| 欧洲精品一级二级精品综合视频综合| 超碰碰97资源站| 偷偷人人精品女女久久| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 青娱乐二区免费| 五十路熟女人妻一区二区在线观看 | 一区二区视频在看| 九九九九精品精| 久久久一区二区三区四区五区| 性欧美999| 96麻豆精品一区二区三区| 舔足天天操天天射| 精品国产Av无码久久久伦古装| 欧美在线播放| 国产成人 综合亚洲 天堂| 午夜男女爽爽爽影院视频| 欧美熟妇成人一区二区| 99国产精品视频尤物| 国产精品视频麻豆入口| av资源在线播放天堂| 六六久久日韩不卡| 亚洲码和欧洲精品激情系列| 久久久禁| 久久东京热成人| 日韩性爱长视频免费| 91精品亚洲内射孕妇| 在线观看AV片| 丁香五月综合| 久草新免费| 亚洲国产福利视频| 97日韩欧美| 黑人狂躁日本妞一区二区三区| 国产精品探花在线| 天美国产精品| 久久偷偷色综合蜜桃| 综合网亚洲在线| 日本人妻丰满熟妇久久久久久| 国产99精品一区二区三区免费| 被体育老师抱着c到高潮| 青青草视频久久| 最新精品久久蜜桃| 国产精品久久泡妞网站| 眼镜人妻101.com| 性做久久久久久免费观看软件| 亚洲性综合9| 天天色踪合| 激情小说亚洲| 日韩性爱小视频在线观看| 超碰久久性爱| #NAME?| 偷拍三区| 国产熟女少妇一区| 精品白丝一区| 免费观看性欧美一级| 狠狠色丁香| 涩涩久久精品| 亚洲av国产av综合av卡| 日韩三级一区| 伊人久大| 国模不卡| 97色色国产视频| 久久超碰网| 国产久久久久久久久一区二区| 美女大乳久久久久久久女人18| 人人妻人人爽人人精品| jizzjizz欧美| 欧美色图下一页| 91在线视频国产网站| 色爱国产| 精品少妇一区二区三区| 波多野结衣先锋影音| 久久综合精品一区二区三区| 在线不欧美| 色色婷婷丁香| 久久中文字幕人妻熟av女蜜柚| www.yeyecao| 91jk色拍| 女欧美一区二三区| 欧美亚男人的天堂| 99热| 日本人妻一区二区| 日本阿v天堂在线观看| 人人人人人人少妇| 鸥美中出| 久久久久成人蜜桃精品| 先锋女优在线观看视频| 人人操AV| 97天天| 亚洲无套久久嗯嗯| 五十路熟女人妻一区二区三区四区五| 狠狠干狠狠色| 天天综合网~91| 天天综合~91入口| 高潮精品| 亚州精品丝袜-不卡成人免费| 亚洲 暴爽 AV人人爽日日碰| ,国产乱人伦精品一区二区三区| 欧美97爱| 中文字幕乱碼在线| 国产女同视频在线播放| 操死我了嗯嗯嗯| 国产成人一级av88| 中出20p| 婷婷爱五月| 亚洲在线欧美| 天天干天天日天天射黄色片| 手机在线播放国产福利| 中文字幕精品亚洲熟女| 99这里有精品| 免费无码婬片AAAA片直播色戒| 香蕉一区二区三区在线视频| 自拍偷拍亚洲熟女妇人精品| 亚洲欧美综合网站| 先锋精品av色鲁| 精品欧美老熟女一二区| 精品999日本| www.国产高潮精品| 亚洲天堂欧美| 在线观看视频91| 91人妻Pr| 私人尤物在线精品不卡| 精品中文日韩字幕视频| 亚洲1区| 亚洲午夜未满十八勿入网站日本又色又爽又黄| 欧美老妇女内射网址| 另类一区| 探花视频免费观看国产专区| 素颜老阿姨乱情色| 久久精彩免费视频| 最新亚洲人成网站在线影院| 青青青草原| 欧美最婬乱婬爆婬性视频 | 激情露脸爱| 人妻人人做人人澡人人爽欧美一区| K8久久久久| 大香蕉天天看妹子| 日韩人妻无码专区| 可以免费看黄片的视频| 天天综合,91入口| 久久免费看高潮毛片韩国| 强奸a片网| 国产精品黑人一区二区三区| 国产又粗又大硬免费色网视频| 国产精品爽爽va在线观看98| 亚洲无码一区成人免费午夜| 亚洲精品欧洲精品| 日本99久久| 特级特黄一级毛片免费| 欧美草草高清日韩视频| 色欲人妻一区二区在线| 五月天婷婷色| 亚洲欧美在线观看2021| 日韩av性爱在线播放| 中文字幕免费在线观看| 亚洲综合99999| 天美精品av| 国产一区二区三区精品观看啪| 国产偷人伦激情在线观看| 国产丝袜一区二区三区| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 麻豆黄站| 狠综合网| 成人综合视频久久| 嗯啊不要在线观看嗯啊| 亚洲天堂 视频你懂的| 免费观看国产小粉嫩喷水精品午| 欧美色图20p| 人妻熟女一区二区三区视频| 日本性一区| 60秒免费小视频| 天天摸夜夜摸| 亚洲AV无码| 伊人综合色网| 午夜精品久久久久久久男人的天堂| 欧美一级黄色18片免费看| 95自拍视频在线观看| 91看黄片| 国产精品分类在线观看| 秋霞网无码| 亚洲伊人成综合成人网| 亚洲色图 欧美| 男人的午夜天堂| 欧美综合另类| 97爱综合| 日本孕妇一区二区视频操逼免费看| 啪啪自拍九九综合| 大香蕉淫人网| 亚欧色图在线激情| 国产日韩精品suv| 色综合V| 综合av社区| 777AV电影| AV污污污污| 影音先锋国产精品| 久久人妻视频| 香蕉99秘 精品一区丁香| 殴美综合色88| 超碰这里只有精品| 97天天插| 亚洲女人91| 国产综合色精品在线观看| 久操91视频| 日本免费一级AAA大片器| 极品尤物自安慰| 久久久九九网站| 国产熟女少妇一区| 久久久18禁| 久久久国产护士丝袜美腿一| JuliaAnnXXX888| 翔田千里A片一区二区| 中文字幕一区二区日韩网| 免费作爱一级视频| 青青草视频久久| 天天天乱色综合全| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 91少妇香蕉久久精品| 高清孕妇孕交 交孕妇| 射综合网| 日韩中文字幕人妻视频| 久久激情视频| 91九九九小逼| 色区97| 免费日韩黄片| 中文激情网| 亚洲色图加勒比| 日日AAvv| 蜜乳成人AV| 人妻av在线| 超碰97男人| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 男女啊啊啊| 香蕉热人人精品| 加勒比大香蕉视频在线| 伊人 俄罗斯 a v| 夜夜嗨一区二区三区直播内容| 精品亚洲一区在线观看| 综合色啪| 伦在线97| 国产区日韩区在线观看| 亚洲第一在线视频| 久日91在线| 嗯嗯啊啊操我| 国产AV高清AV无码| 亚洲欧美精品久| 国产内射爽爽大片| 欧美色图91p| 亚洲熟女综合一区二区| 无码高清专| 在线观看中文字幕| 九九九九九精品| 十八禁的黄污污免费网站| 色99色| 美女天天干| 免费在线看黄片av| 十八禁啪啦拍视频无遮挡| 麻豆性爱视频在线播放| 亚洲资源站| 超碰人人超在线观看| 久久99手机免费视频| 亚洲毛片基地专区| 91久久久久久久久18| 欧美在线色| 欧美人人曰人人操人人射射| 色综合91| 麻豆精品.欧美精品.日韩精品.| 近亲乱伦一区二区| 亚洲色香| 啪啪视频亚洲第一| 熟妇艹鸡八| 一区二区三区免费视频入口| 久久久草成人网站久久久草成人久久久草久久久 | 亚洲色图 欧美热图 清纯唯美 另类自拍 | 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 偷拍五区| 午夜福利在线合集| 小明看看网址| 高清无码一区二区三区| 在线观看A啊啊啊| 三级日本一区二区三区| 亚洲男人的天堂V| 又大又大又大又粗爽高潮观看| 日本色婷婷| 东京太热男人的天堂久久久| 五月婷久久| 清纯唯美第一页| www.五月天| 色五月AV| 中文字日本乱码| 人人操人人操人人人操| 91激情网| 日韩欧美俄罗斯A片| 中文字幕免费看| 亚洲欧洲网站免费观看| 亚州,欧美在线| 五月天激情网站| 天天综合亚洲综合| 日本精品国产视频| 日韩欧美成人性爱在线| 大香蕉青青9| 噜噜噜无码AV一级一级久久影院| 国产精选视频| 久久久久精| 国产丝袜欧美在线视频| 欧美91丝袜| 精品97久久综合| 国产一区二区a毛片| 97伦乱| 中文字幕五区| 天天视频网站黄| 校园春色综合香蕉| 欧美精品999| 国产毛片片精品天天看视频| 亚洲第一色页夜| 懂色AV蜜臀无码精品APP| 国产后入式在线观看| 97天天爽| 国产欧美岛国精品一区| 99re视频这里只有精品| 大香蕉伊人在线成人AV在线观看| 精品一区二区成人| 亚洲欧美伦综合| 国产乱码精品久久久久久| 探花激情视频| 国产精品不卡av免费在线观看| 日本精品性生活久久久| 99久久久久| 午夜舔阴达高潮视频免费看| 色阁阁AV综合网| 夜夜嗨一区二区| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 久久精品视频28| 日韩丝袜二区| 欧美Ⅴ性爱| 97国产中文| 久久久久久久78| 激情看片网站| 五月婷婷丁香六月丁香| 欧美综合色图网| 伊人国产视频| 欧美久久九九| 久久一区二区三区入口| 呦呦影院| 国产97色在线| 中文字幕一区二区三四五区日日骚| 男人的天堂啪啪啪啪啪蜜桃不卡| 岛国色情视频在线观看| 91啪啪| 久久精品国产97欧美精品亚洲 | 亚洲 自拍偷拍 欧美| 欧美 亚洲| 99蜜月精品久久| 日韩中文字幕av在线播放| 久久精品国产精品亚洲艾通辽熟妇| 可以在线观看的黄色网址| 欧美96精品在线| 亚洲激情欧美色图 | 亚洲天堂2020| 亚洲欧美变态| 亚欧美综合网。| 久久成年精品| 香蕉一区二区三区在线视频| 依人大香蕉| 91精品无码人妻系列| 另类小说综合网| AVE乱伦| 亚洲精品久久久久毛片A片拉屎 | 天天视频黄网站| 伊人黄色片| 亚洲影院无码在线| 欧美激情综合网| 婷婷午夜清品久久久久久久性色视频观| 99精品久久久久久| 色老牛| 91爱做| 嗯嗯啊啊视频一区二区三区| 成人色女网| 蜜臀AV一区二区三区激情综合| 色97| 又大又黄国产| 日本在线不卡123| 91色艳| 亚洲国产欧美日韩人妻日中文| 五月天伊人| 午夜人妻精品综合在线| 久久久爆乳翘臀一线天伦理视频| 国产精品青草综合久久| 人人做人人妻人人夜视频| 伊人影院中文字幕| 欧美亚洲| 日本羞羞的视频在线播放| 国产精品人妻无码久久久互動交流 | 国产精品经典一卡久久久| 超碰超碰95| 蜜桃中文字日产乱幕4区| 丝袜内射| 久久久久ab| 久久大精品乱码视频人妻熟女| 加勒比海成人视频网| 97碰碰日本乱偷人妻中文的| 亚欧成人综合影院| 成人十八禁日韩欧美一二三| 日韩天天本| 91总综合网| 亚洲情色欧美| 69人妻精品一区二区绯色| 综合性视频99| 中文字幕狠狠玩| 学生妹天天看| 人人妻人人狠人人| 舔舔啊| 超碰78| 欧美黄片欧美黄片xxx| 青青草天天亲夜夜操网| oumeisetu综合| 丝袜av一区二区三区| 欧美性五月| 白嫩少妇| 免费国产视频| 欧洲性爱无码区| 在线岛| 天堂岛av| 亚洲91大片| 久久超碰97| 欧美极品性爱天天射| 先锋精品av色鲁| 日本色色色| 超碰性爱97| 亚洲高清91| 日本不卡高清视频| 肉丝网站91| 97干在线视频| 色色色色网站| 欧美影音在线| 黄色操人| 北京专精特新企业招聘信息| 日日嗷| 国产区91柔拿会所技师| 欧色综合| 91色图| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 国产对白刺激视频| 婷婷丁香久久| 一本久久久精品| 99热只有这里有精品| 91网站18+| 无码抄逼网| 综合欧美色图| 操操啪| 成人性交免费视屏| 素人播放一区| 自拍偷拍国产欧美日韩韩| 国产精品女同| av一区二区三区四区| 动漫av中文| 播播亚洲小说亚洲| 天堂亚洲精品| 精品无码一区二区| 国产探花日韩援交| 久久综合av| 人人操人人狠狠操| 视频分类 国内精品| 69丨亚洲丨精品丨入口免费播放| 狠狠久久亚洲欧美专区| 综合久久中文字幕综合日韩精品| 国产亚洲精品美女久久久| 眼镜人妻101.com| 黑人美精品 A片| 日本视频一区二区三区| 黑人狂躁日本妞一区二区三区| 午夜福利国产欧美日韩夜夜| 99e久久国产精品| 亚洲第一狼人丝袜美女另类| 青娱乐福利99| 懂色AV网| 午夜激情床戏激情| 美女被艹尤物视频| 日韩激情电影中文字幕| 91激情国产| 热久久99999| 97天天爽| 91欧美高清| 美女操逼福利视频| 精品国产乱码久久久久久免费| 亚洲熟女乱色一区二区三区| 日韩成人小视频| WWW.加勒比人妻一区不卡.com| 色噜噜狠狠色综无码久久合欧美| 秋霞网无码| 成人青青草原伊人| 91jk色拍| 噜噜噜亚洲精品| 欧美96在线|欧| 天天香香欲综合| 亚洲国产一级精品毛一级精品看免费视频| 韩国三级色呦呦| 亚洲男人天堂手机版| 亚洲区限制级| 美女露胸露尿口| 国产精品久久久久亚洲av| 传媒免费一区二区三区| 操逼操网| 黄色AV免费| 精品人妻av区天天看片| 亚洲风情在线观看| 啊啊啊操死我| 中文字幕天堂在线| 日韩国产欧美伦理在线| 一区二区三区成人高清视频| 日韩欧美成人综合在线| 中文字幕五月婷婷免费| 美女尤物人人操| 婷婷中文网| 七久久久| 欧美97在线观看| 欧美日韩亚洲电影| 五十路三区在线| 欧美日韩大香蕉| 综合欧美日本三级| 欧美另类色图片| 超碰98综合网| 精品久| 日韩国产欧美伦理在线| 五月香婷婷| 美女91在线观看| 婷婷人妻激情| 无码高清操逼网址| 五月大香蕉| 人妻少妇久久中文| 亚洲学生妹高清av| 国产女人91精品嗷嗷嗷嗷| 久久久久精| 91老妇女| 国产精品探花在线| 中文字幕在在线观看网站| 中日韩久久久免费看| 九九热久久99精品re| 蜜桃色色网站视频三区| 操老熟女AV| 欧美一级久久久久久久大片动画 | 久久激情视频| 欧美亚洲宗合色性图| 日韩免费福利在线观看| 长长久久免费视频| 欧美日日人人天天| 综合欧美日韩在线观看| 国产乱码精品久久久久久| 秋霞一级A片黄色视频| 狼人综合婷婷激情四射| 亚洲日韩美女丝袜美腿人妻视频| 欧美在线观看综合国产| 青青三级视频| 国产1769在线| 一区二区不卡免费| 亚洲码专区| 91性网| 看看小穴| 大香蕉免费3| 人妻天天夜夜爽一区二区| 欧美少妇人妻| 日韩欧美经典在线观看| 91 亚洲情侣偷拍 久久| 欧美精品成人在线播放| 亚州色图狠狠干| 不卡av在线中文字幕| 白丝少妇一区二区| 日本精品无码三级网站| 国产精品3| 亚洲有码 视频一区| 亚洲在线网站| 色老汉玖玖爱| 精品高潮| 91少妇香蕉久久精品| 欧美久热| 被男人吃奶很爽的毛片| 狠狠爱AV| 岛国小电影| 啊视频在线| 久久欲| 欧美97在线欧| 熟女熟妇一区二区三区视频| 丁香五月激情综合| 97最新在线播放视频| 日韩电影在线观看网址| 97超碰免费生活| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 97资源视频| 色香综合| 欧美亚洲清纯| 国产熟女精品区| 97资源超碰| 大香蕉啪啪啪| 日本午夜福利影院| 亚洲色图尤物视频| 日本一级特级毛片视频| 欧美区亚洲区偷拍区| 麻豆性爱视频在线播放| 色婷婷综合久久中文字幕雪峰| 欧美高清性猛交| 六月丁操逼| 97超碰这里只有精品| 大香蕉2017| 国语对白露脸XXXXXX| 国产51色综合久久免费| 国产激情av女片自拍|