久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

基于YOLOv5 4.0的垃圾分揀目標(biāo)檢測(cè)實(shí)戰(zhàn):從環(huán)境配置到部署

基于YOLOv5 4.0的垃圾分揀目標(biāo)檢測(cè)實(shí)戰(zhàn):從環(huán)境配置到部署 垃圾分揀項(xiàng)目找上門(mén)的時(shí)候我心里其實(shí)是有點(diǎn)打鼓的——場(chǎng)景看著簡(jiǎn)單不就是幾個(gè)垃圾桶里的瓶瓶罐罐嘛真做起來(lái)才知道要在傳送帶上一秒抓一個(gè)目標(biāo)還要兼顧準(zhǔn)確率和部署成本光靠通用檢測(cè)模型是行不通的。當(dāng)時(shí)團(tuán)隊(duì)里有同事提了一嘴用YOLOv5 4.0版本來(lái)做目標(biāo)檢測(cè)我抱著試一試的心態(tài)跑通了全套流程從環(huán)境配置到數(shù)據(jù)集制作再到模型訓(xùn)練最后落地成一條可用的分揀業(yè)務(wù)流。這篇博客就把這整條鏈路攤開(kāi)講環(huán)境怎么配、數(shù)據(jù)怎么標(biāo)、模型怎么調(diào)、坑在哪里全部按實(shí)操順序來(lái)適合剛接手檢測(cè)項(xiàng)目、尤其是想在工業(yè)場(chǎng)景里做視覺(jué)分揀的同學(xué)參考。我用的硬件是普通工作站加一塊中端顯卡沒(méi)有上集群也沒(méi)有買(mǎi)高配服務(wù)器YOLOv5 4.0這套東西對(duì)硬件的要求其實(shí)比想象中低但環(huán)境搭不對(duì)照樣跑不起來(lái)。先別急著下載代碼下面從環(huán)境配置開(kāi)始把每一步拆清楚。1. 環(huán)境配置裸機(jī)到能跑通的完整清單以及為什么4.0版本這么選1.1 Python環(huán)境與系統(tǒng)版本選擇YOLOv5 4.0版本發(fā)布于2021年中段它的依賴(lài)鎖得不算死但也不是隨便拿個(gè)Python版本就能跑。我實(shí)測(cè)比較穩(wěn)的組合是Python 3.8.10或3.9.7這兩個(gè)版本在Windows和Linux下都能正常編譯torch擴(kuò)展。Python版本別選太高3.10及以上在部分機(jī)器上裝torch1.9會(huì)碰到二進(jìn)制兼容問(wèn)題得不償失。Windows下我建議用Anaconda創(chuàng)建獨(dú)立虛擬環(huán)境Linux下用conda或venv都行。我的習(xí)慣是創(chuàng)建虛擬環(huán)境conda create -n yolov5 python3.8激活環(huán)境conda activate yolov5確認(rèn)pip版本pip install --upgrade pip這里有個(gè)很多人會(huì)忽略的細(xì)節(jié)YOLOv5 4.0的requirements.txt里torch和torchvision的版本是帶“”的比如torch1.7.0。如果直接無(wú)腦安裝最新版torch碰上CUDA版本不匹配的概率很高。我當(dāng)時(shí)踩過(guò)一個(gè)坑——裝完最新torch后模型訓(xùn)練時(shí)loss直接nan查了半天是顯卡驅(qū)動(dòng)和CUDA庫(kù)不匹配。后來(lái)老老實(shí)實(shí)按官網(wǎng)推薦的匹配表來(lái)一次性跑通。1.2 CUDA、cudnn與torch版本匹配這一步是環(huán)境配置里最核心、也最容易炸的一環(huán)。YOLOv5 4.0本身不做CUDA強(qiáng)綁定但GPU訓(xùn)練必須用正確的驅(qū)動(dòng)。我的經(jīng)驗(yàn)是顯卡驅(qū)動(dòng)版本決定你能支持到哪一版CUDA Toolkit命令nvidia-smi看右上角的CUDA Version這個(gè)數(shù)字是驅(qū)動(dòng)支持的最高版本不代表你的環(huán)境已經(jīng)裝了對(duì)應(yīng)CUDA。實(shí)際訓(xùn)練時(shí)用的CUDA是torch自帶的不需要單獨(dú)安裝完整的CUDA Toolkit但你需要確保驅(qū)動(dòng)夠新。cudnn也建議裝一下雖然torch可以自動(dòng)加載部分算子但我遇到過(guò)推理速度忽高忽低的情況后來(lái)發(fā)現(xiàn)是cudnn未配置導(dǎo)致卷積算法未被優(yōu)化。我這邊的穩(wěn)定組合是驅(qū)動(dòng)470.xx CUDA 11.1 cudnn 8.0.5 torch 1.9.0 torchvision 0.10.0。裝torch用官方匹配索引pip install torch1.9.0cu111 torchvision0.10.0cu111 -f https://download.pytorch.org/whl/torch_stable.html裝完后驗(yàn)證一下python -c import torch; print(torch.cuda.is_available())顯示True就說(shuō)明GPU路線通了。這一步值得多花半小時(shí)確認(rèn)因?yàn)楹竺嫠杏?xùn)練時(shí)間都依賴(lài)這個(gè)基礎(chǔ)。1.3 下載YOLOv5 4.0源碼與環(huán)境依賴(lài)YOLOv5 4.0的代碼結(jié)構(gòu)相比后來(lái)的5.0、6.0版本要簡(jiǎn)潔不少特別適合學(xué)習(xí)或者二次改造。官方倉(cāng)庫(kù)的tag切換成v4.0也可以直接下載zip包解壓。解壓后目錄里最顯眼的就是train.py、detect.py、models、data、utils這些模塊。接下來(lái)安裝依賴(lài)pip install -r requirements.txtrequirements里包含numpy、opencv-python、matplotlib、pyyaml、tqdm這些常用庫(kù)還有pycocotools用于COCO指標(biāo)計(jì)算。如果是在Windows上pycocotools安裝失敗的概率比較大官方推薦裝pycocotools-windows。我試過(guò)兩次裝Windows版可以避免編譯報(bào)錯(cuò)安裝命令是pip install pycocotools-windows依賴(lài)裝完后可以立刻用預(yù)訓(xùn)練權(quán)重跑一次demo驗(yàn)證全鏈路是否通。做法是下載yolov5s.pt放進(jìn)weights目錄然后執(zhí)行python detect.py --source data/images/bus.jpg --weights weights/yolov5s.pt如果能看到圖像窗口彈出并繪制出檢測(cè)框就說(shuō)明環(huán)境徹底通了。這一步我建議別跳過(guò)因?yàn)楹芏鄦?wèn)題會(huì)在第一次推理時(shí)就暴露。1.4 垃圾分揀場(chǎng)景為什么選用4.0版本這個(gè)選擇值得多說(shuō)一句。4.0版本的網(wǎng)絡(luò)結(jié)構(gòu)以CSPDarknet53為主配合PANet特征融合層它的anchor設(shè)置和損失函數(shù)已經(jīng)相當(dāng)成熟訓(xùn)練小目標(biāo)比如礦泉水瓶的瓶蓋效果也能接受。相對(duì)于更新的6.0版本4.0的代碼結(jié)構(gòu)更直白修改anchor或自定義dataloader的難度更低對(duì)于垃圾分揀這種類(lèi)別不算多、背景相對(duì)固定的場(chǎng)景完全夠用。垃圾分揀業(yè)務(wù)的特殊性在于一是類(lèi)別少但形態(tài)差異大比如塑料瓶和紙箱的寬高比就完全不同二是場(chǎng)景里會(huì)出現(xiàn)密集堆疊的情況目標(biāo)之間互相遮擋對(duì)NMS閾值和anchor尺寸特別敏感。4.0版本的自適應(yīng)anchor計(jì)算功能和多尺度訓(xùn)練恰好能處理這部分問(wèn)題。而且4.0版本推理權(quán)重文件更小后續(xù)導(dǎo)出ONNX或TensorRT的兼容性也更好。2. 數(shù)據(jù)集制作垃圾圖片的采集、標(biāo)注與劃分2.1 采集什么樣的圖片才有用訓(xùn)練垃圾分揀模型最忌諱的是圖片太“干凈”。很多團(tuán)隊(duì)圖省事從網(wǎng)上下載了一堆商品圖背景是純白或純灰結(jié)果模型在實(shí)驗(yàn)室里AP高到0.99一到傳送帶上就拉胯。為什么會(huì)這樣因?yàn)槟P偷姆夯芰?lái)自背景多樣性、光照差異、角度變化和信息噪音。我自己整理數(shù)據(jù)時(shí)定了三條硬標(biāo)準(zhǔn)背景必須多樣化覆蓋傳送帶、垃圾桶、地板、戶(hù)外、不同光照條件。目標(biāo)必須有多角度每個(gè)類(lèi)別至少要拍到360度不同姿態(tài)同時(shí)包含俯視、側(cè)視、傾斜視角。必須有遮擋和堆疊樣本分揀業(yè)務(wù)里瓶子會(huì)疊在一起紙箱會(huì)半開(kāi)口如果訓(xùn)練集里全是單目標(biāo)完美擺放模型永遠(yuǎn)學(xué)不會(huì)處理實(shí)際工況。采集方法上我推薦用視頻抽幀而不是連拍照片。拿手機(jī)或工業(yè)相機(jī)對(duì)著垃圾堆橫向掃一遍錄10分鐘視頻然后每隔3到5幀抽一張這樣能極大豐富目標(biāo)姿態(tài)。抽幀腳本用OpenCV寫(xiě)就行幾十行代碼搞定。2.2 標(biāo)注工具與標(biāo)注規(guī)范YOLOv5 4.0的標(biāo)注格式是每個(gè)圖片對(duì)應(yīng)一個(gè)txt文件每行是class_id x_center y_center width height坐標(biāo)值都需要?dú)w一化到0到1之間。很多同學(xué)第一次做標(biāo)注會(huì)用labelimg生成VOC格式的XML然后再轉(zhuǎn)YOLO格式其實(shí)labelimg本身就直接支持YOLO格式輸出不用多這一步轉(zhuǎn)換。我用的工具是labelimg操作要點(diǎn)如下打開(kāi)labelimg點(diǎn)擊“PascalVOC”切換成“YOLO”模式。用Open Dir打開(kāi)圖片目錄Change Save Dir指定標(biāo)簽保存目錄??旖萱IW新建框D下一張A上一張CtrlS保存。標(biāo)注規(guī)范這塊垃圾分揀很容易犯“框得太大”的毛病——把瓶子周?chē)谋尘耙舶M(jìn)去了。正確的做法是框要緊貼目標(biāo)可見(jiàn)部分的外輪廓如果目標(biāo)被部分遮擋就標(biāo)可見(jiàn)部分不要臆想完整的形狀。置信度閾值在訓(xùn)練時(shí)會(huì)因?yàn)榭虿粶?zhǔn)確而出現(xiàn)嚴(yán)重波動(dòng)寧可框小一點(diǎn)也不要框大。類(lèi)別定義我建議用英文做標(biāo)簽名比如plastic_bottle、cardboard_box、aluminum_can、other_waste后面在yaml文件里再映射中文顯示名。這個(gè)習(xí)慣可以避免很多編碼問(wèn)題。2.3 數(shù)據(jù)集劃分與目錄結(jié)構(gòu)YOLOv5 4.0期待的目錄結(jié)構(gòu)有兩種一種是官方COCO式的images和labels兩個(gè)大目錄然后在yaml里指定train和val路徑另一種是每個(gè)數(shù)據(jù)集子集單獨(dú)建目錄比如dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/兩種都行我推薦第二種因?yàn)楹罄m(xù)擴(kuò)展test集更清晰。劃分比例我按8:1:1也就是80%訓(xùn)練、10%驗(yàn)證、10%測(cè)試。注意劃分的時(shí)候要保證同一個(gè)物體的不同圖片不要被割裂得太嚴(yán)重但也不要刻意把同一視頻幀的數(shù)據(jù)全放一組否則驗(yàn)證集會(huì)虛高。一個(gè)細(xì)節(jié)垃圾分揀數(shù)據(jù)集的類(lèi)別數(shù)量不建議超過(guò)10類(lèi)除非你確實(shí)需要區(qū)分很多細(xì)分材質(zhì)。類(lèi)別越多每個(gè)類(lèi)的訓(xùn)練樣本數(shù)就會(huì)攤薄模型在傳送帶高速場(chǎng)景下的誤檢率會(huì)明顯上升。我們項(xiàng)目初期定了12類(lèi)訓(xùn)練后mAP只有0.78后來(lái)合并成8類(lèi)mAP直接漲到0.92所以寧可在類(lèi)別定義上做文章也別硬扛分類(lèi)細(xì)度。2.4 數(shù)據(jù)增強(qiáng)策略與臟數(shù)據(jù)清洗YOLOv5 4.0的train.py里自帶數(shù)據(jù)增強(qiáng)包括mosaic、mixup、隨機(jī)透視、HSV擾動(dòng)、隨機(jī)翻轉(zhuǎn)這些。對(duì)于垃圾分揀場(chǎng)景最有用的是mosaic和HSV擾動(dòng)。因?yàn)槔馁|(zhì)的顏色受光照影響特別大塑料瓶在不同燈光下反光效果完全不同HSV擾動(dòng)會(huì)讓模型忽略顏色絕對(duì)數(shù)值、更多學(xué)習(xí)形狀和紋理特征。但增強(qiáng)也不是越狠越好。我在訓(xùn)練過(guò)程中發(fā)現(xiàn)mixup開(kāi)啟過(guò)強(qiáng)會(huì)導(dǎo)致模型對(duì)小目標(biāo)的定位框偏移尤其是瓶蓋這種小物件。4.0版本里通過(guò)超參數(shù)hsv_h、hsv_s、hsv_v可以調(diào)節(jié)增強(qiáng)幅度我習(xí)慣把hsv_s和hsv_v調(diào)低到0.4左右保留一點(diǎn)顏色信息又不至于讓材質(zhì)失真。臟數(shù)據(jù)清洗是很多人忽略的一步。標(biāo)注完以后我建議跑一次分析腳本查看每類(lèi)目標(biāo)的數(shù)量、目標(biāo)面積分布、圖片像素寬度比。如果發(fā)現(xiàn)某張圖片的標(biāo)簽特別多比如20多個(gè)框或者框面積小于圖片面積的0.1%這種樣本在訓(xùn)練時(shí)往往會(huì)算進(jìn)太多背景負(fù)樣本必要時(shí)可以直接刪除。另外如果兩張圖片內(nèi)容幾乎一樣也會(huì)導(dǎo)致過(guò)擬合需要做去重。3. 模型訓(xùn)練參數(shù)調(diào)整、訓(xùn)練過(guò)程監(jiān)控與過(guò)擬合排查3.1 從預(yù)訓(xùn)練權(quán)重開(kāi)始訓(xùn)練的底層邏輯垃圾分揀數(shù)據(jù)集規(guī)模通常只有幾千張從頭訓(xùn)練一個(gè)檢測(cè)模型非常虧。YOLOv5 4.0提供了一組在COCO上預(yù)訓(xùn)練好的權(quán)重這些權(quán)重已經(jīng)學(xué)會(huì)了“什么是物體邊緣”“什么是紋理”“什么是遮擋”這些通用特征。我們只需要在它的基礎(chǔ)上微調(diào)最后幾層讓它更懂“瓶子”“紙箱”“易拉罐”這幾個(gè)具體類(lèi)別的模樣。我在項(xiàng)目里使用yolov5s.pt作為初始權(quán)重考慮到部署設(shè)備是嵌入式級(jí)別的板卡沒(méi)有直接上yolov5l或者yolov5x。有個(gè)常見(jiàn)誤區(qū)是模型越大效果越好但垃圾分揀的實(shí)時(shí)性要求很高yolov5s在1080Ti上推理能達(dá)到6到8毫秒一幀完全夠用yolov5l雖然mAP高一點(diǎn)但推理時(shí)間翻倍工業(yè)現(xiàn)場(chǎng)根本用不了。訓(xùn)練命令python train.py --data garbage.yaml --cfg models/yolov5s.yaml --weights weights/yolov5s.pt --batch-size 16 --epochs 200 --img 640--img 640的含義是訓(xùn)練輸入尺寸640x640垃圾分揀目標(biāo)一般中等偏小這個(gè)尺寸比較平衡。如果追求更快的訓(xùn)練能把尺寸降到416但小目標(biāo)的召回率會(huì)下降不太推薦。3.2 數(shù)據(jù)配置yaml文件寫(xiě)法與anchor調(diào)整在寫(xiě)yaml文件前我建議先按官方數(shù)據(jù)集格式組織目錄。garbage.yaml的寫(xiě)法如下train: dataset/images/train val: dataset/images/val test: dataset/images/test nc: 8 names: [plastic_bottle, cardboard_box, aluminum_can, glass_bottle, plastic_bag, wood_block, metal_parts, other_waste]這里面最容易出問(wèn)題的是路徑寫(xiě)法。YOLOv5 4.0中路徑可以寫(xiě)相對(duì)路徑也可以寫(xiě)絕對(duì)路徑我在Windows上碰到過(guò)一次路徑分隔符反斜杠導(dǎo)致的讀取失敗改成正斜杠就正常了。Anchor是YOLOv5一個(gè)比較特別的設(shè)計(jì)。4.0版本在訓(xùn)練時(shí)會(huì)自動(dòng)根據(jù)標(biāo)注數(shù)據(jù)重新計(jì)算anchor尺寸所以如果數(shù)據(jù)集里目標(biāo)比COCO普遍小很多anchor會(huì)自動(dòng)變小不需要手工調(diào)整。但自動(dòng)anchor計(jì)算也有個(gè)前提——目標(biāo)標(biāo)注必須足夠準(zhǔn)確。如果標(biāo)注框普遍松弛計(jì)算出的anchor也會(huì)偏大。訓(xùn)練日志里會(huì)有這樣一句Autoanchor: 4.6 anchors, 8.2, 9.1, etc, Better than old anchors看到這句話就說(shuō)明anchor已經(jīng)重算過(guò)了。如果顯示Unchanged anchors說(shuō)明預(yù)設(shè)anchor已經(jīng)夠用不用擔(dān)心。3.3 訓(xùn)練過(guò)程中的指標(biāo)監(jiān)控與loss曲線判斷訓(xùn)練時(shí)我最關(guān)心的不是總loss而是box_loss、obj_loss和cls_loss這三個(gè)分量的變化。YOLOv5 4.0訓(xùn)練會(huì)實(shí)時(shí)打印類(lèi)似這樣的內(nèi)容Epoch 0: box_loss0.068, obj_loss0.035, cls_loss0.021, precision0.52, recall0.65, mAP0.50.48如果box_loss一直下降說(shuō)明定位框?qū)W習(xí)正常如果obj_loss降不下去說(shuō)明目標(biāo)和背景的區(qū)分度不夠這時(shí)候需要考慮增加難負(fù)樣本比如空垃圾袋、紙屑這類(lèi)容易被當(dāng)成目標(biāo)的“疑似物”cls_loss抖動(dòng)劇烈往往和某個(gè)類(lèi)別的樣本過(guò)少有關(guān)。我更習(xí)慣用tensorboard實(shí)時(shí)監(jiān)控曲線YOLOv5 4.0自帶了tensorboard --logdir runs的啟動(dòng)命令。訓(xùn)練了大概50輪后能明顯看到曲線斜率變緩這是正常現(xiàn)象。到150輪左右mAP基本穩(wěn)定再往后訓(xùn)練收益很低反而有過(guò)擬合風(fēng)險(xiǎn)。3.4 過(guò)擬合問(wèn)題排查一個(gè)典型的分揀業(yè)務(wù)案例我們項(xiàng)目第一次訓(xùn)練時(shí)驗(yàn)證集mAP達(dá)到了0.94很漂亮但現(xiàn)場(chǎng)實(shí)測(cè)識(shí)別率只有0.6。這種現(xiàn)象幾乎可以斷定是過(guò)擬合。怎么排查先看訓(xùn)練集和驗(yàn)證集的loss曲線。如果訓(xùn)練集loss持續(xù)下降而驗(yàn)證集loss在第120輪后開(kāi)始反彈說(shuō)明模型開(kāi)始死記硬背訓(xùn)練集特征了。我做了三件事關(guān)掉部分?jǐn)?shù)據(jù)增強(qiáng)將--cache的緩存大圖勾選去掉同時(shí)調(diào)低mosaic概率。增加驗(yàn)證集數(shù)量原驗(yàn)證集只占總數(shù)據(jù)5%后來(lái)重新劃分成15%。在模型最后一層加dropoutYOLOv5沒(méi)有簡(jiǎn)單的dropout開(kāi)關(guān)但可以通過(guò)降低模型深度系數(shù)、增加正則化來(lái)緩解。我把yolov5s.yaml的depth_multiple從0.33降到0.3相當(dāng)于讓模型變窄一點(diǎn)強(qiáng)制它學(xué)更抽象的特征。這三步做完現(xiàn)場(chǎng)識(shí)別率恢復(fù)到0.88。經(jīng)驗(yàn)就是垃圾分揀場(chǎng)景的數(shù)據(jù)集規(guī)模不會(huì)太大與其追高訓(xùn)練集指標(biāo)不如把驗(yàn)證集指標(biāo)壓穩(wěn)。3.5 訓(xùn)練完成后的指標(biāo)評(píng)估與選擇best.pt還是last.pt訓(xùn)練結(jié)束會(huì)在runs/train/exp下生成兩個(gè)權(quán)重文件best.pt和last.pt。名字已經(jīng)說(shuō)明了一切——best.pt是訓(xùn)練過(guò)程中驗(yàn)證集mAP最高的權(quán)重last.pt是最后一輪的權(quán)重。工業(yè)落地上我強(qiáng)烈建議用best.pt但要注意best.pt的“best”是基于驗(yàn)證集算出來(lái)的驗(yàn)證集和實(shí)際分揀場(chǎng)景可能還有分布差異。穩(wěn)妥的做法是挑三到四個(gè)不同訓(xùn)練階段的best.pt用現(xiàn)場(chǎng)錄像截圖做成一個(gè)獨(dú)立測(cè)試集跑val.py對(duì)比出真正的“最優(yōu)”。這個(gè)額外驗(yàn)證步驟能過(guò)濾掉很多“紙面mAP大師”。另外驗(yàn)證集mAP0.5和mAP0.5:0.95的區(qū)別也要關(guān)注。垃圾分揀業(yè)務(wù)一般只看mAP0.5因?yàn)榉謷C(jī)械臂抓取時(shí)并不嚴(yán)格要求框和真實(shí)目標(biāo)的高度貼合IOU閾值0.5已經(jīng)足夠。如果mAP0.5:0.95很低但mAP0.5很高說(shuō)明定位精度一般但對(duì)業(yè)務(wù)夠用。4. 部署到分揀業(yè)務(wù)流模型導(dǎo)出、推理加速與現(xiàn)場(chǎng)調(diào)優(yōu)4.1 從PyTorch到ONNX再到TensorRT的導(dǎo)出路徑訓(xùn)練完后的PyTorch權(quán)重沒(méi)法直接在生產(chǎn)環(huán)境里跑需要一個(gè)導(dǎo)出過(guò)程。YOLOv5 4.0自帶了export.py能導(dǎo)出ONNX、TorchScript、CoreML等格式。我這邊最終部署用的是TensorRT因?yàn)榉謷の坏乃懔ǚ浅E翪PU推理而TensorRT能最大程度利用GPU的并行能力。導(dǎo)出ONNX的命令python export.py --weights runs/train/exp/best.pt --include onnx --opset 11導(dǎo)出時(shí)會(huì)有一個(gè)注意點(diǎn)YOLOv5 4.0的檢測(cè)頭里有部分動(dòng)態(tài)shape操作直接用onnxruntime跑會(huì)報(bào)錯(cuò)需要在export時(shí)加--dynamic參數(shù)。但我更推薦的是一步到位導(dǎo)出TensorRT enginepython export.py --weights best.pt --include engine --device 0TensorRT引擎是序列化過(guò)的優(yōu)化計(jì)算圖推理速度比ONNX還快。前提是TensorRT版本和你用的CUDA版本兼容我這邊用了TensorRT 8.0配合CUDA 11.1非常順。4.2 推理端代碼改造與輸入預(yù)處理YOLOv5 4.0官方detect.py是面向演示的直接放到生產(chǎn)環(huán)境會(huì)有問(wèn)題一是每幀都打印日志和畫(huà)框影響吞吐二是一次只能處理單張圖無(wú)法應(yīng)對(duì)連續(xù)幀流水。我改造推理端時(shí)做了三件事移除可視化部分只返回檢測(cè)框數(shù)組。使用torch.cuda.synchronize()控制幀率。把輸入圖像resize為640x640時(shí)使用letterbox方式保留長(zhǎng)寬比而不是強(qiáng)制拉伸。這個(gè)細(xì)節(jié)極其重要——垃圾瓶子細(xì)長(zhǎng)如果拉伸變形寬高比信息丟失檢測(cè)框會(huì)嚴(yán)重偏移。letterbox的算法本身很簡(jiǎn)單計(jì)算縮放比例補(bǔ)邊為114像素的灰色。YOLOv5 4.0的utils里已經(jīng)有l(wèi)etterbox函數(shù)直接復(fù)用即可。如果你自己寫(xiě)一定要記得在推理前對(duì)圖像執(zhí)行同樣的預(yù)處理、推理后對(duì)坐標(biāo)做反向映射。4.3 NMS閾值和置信度閾值的現(xiàn)場(chǎng)調(diào)優(yōu)模型訓(xùn)練時(shí)的閾值和部署時(shí)的閾值是兩回事。訓(xùn)練階段的conf_thres和iou_thres影響的是mAP計(jì)算方式部署階段的這兩個(gè)參數(shù)直接決定現(xiàn)場(chǎng)檢測(cè)行為。我剛開(kāi)始部署時(shí)用的默認(rèn)閾值conf_thres0.25, iou_thres0.45結(jié)果是傳送帶上偶爾漏撿。后來(lái)把conf_thres降到0.15把iou_thres調(diào)到0.5漏檢率好了不少但誤檢略有增加。于是我在中間加了一個(gè)按類(lèi)別設(shè)定閾值的邏輯對(duì)“塑料瓶”這種形態(tài)穩(wěn)定的類(lèi)別用0.3對(duì)“其他垃圾”這種外形不規(guī)則的類(lèi)別用0.15。這樣整體識(shí)別效果更符合分揀業(yè)務(wù)的需求。還有一個(gè)坑當(dāng)目標(biāo)密集堆疊時(shí)NMS的max_det參數(shù)默認(rèn)是300如果一幀圖像里檢測(cè)超過(guò)300個(gè)框后面的目標(biāo)會(huì)被丟棄導(dǎo)致漏檢。垃圾分揀場(chǎng)景單幀一般不超過(guò)50個(gè)目標(biāo)所以我把max_det設(shè)為100減少內(nèi)存壓力。4.4 現(xiàn)場(chǎng)現(xiàn)場(chǎng)光照變化與魯棒性驗(yàn)證分揀傳送帶的現(xiàn)場(chǎng)環(huán)境遠(yuǎn)不是實(shí)驗(yàn)室那種穩(wěn)定光源。我在部署時(shí)發(fā)現(xiàn)上午9點(diǎn)陽(yáng)光照進(jìn)廠房時(shí)模型對(duì)“鋁罐”的識(shí)別率跌了20%。原因是鋁罐高光反射蛋白白色區(qū)域在圖片里和透明塑料袋特別像。解決方案不是重新采集大量視頻數(shù)據(jù)而是先用opencv對(duì)接入攝像頭的曝光參數(shù)做了硬約束把曝光時(shí)間固定、自動(dòng)白平衡關(guān)閉。另外在內(nèi)網(wǎng)里部署了夜間紅外補(bǔ)光燈進(jìn)一步杜絕環(huán)境光波動(dòng)。這種工程手段比加數(shù)據(jù)更直接。但注意如果換了攝像頭型號(hào)曝光參數(shù)需要重新標(biāo)定不能直接套用。4.5 與PLC和機(jī)械臂的聯(lián)動(dòng)邏輯分揀業(yè)務(wù)的最終目標(biāo)是把檢測(cè)結(jié)果轉(zhuǎn)成機(jī)械臂抓取指令。這里有個(gè)檢測(cè)速度之外的瓶頸YOLOv5推理返回的是圖像坐標(biāo)系里的框坐標(biāo)而機(jī)械臂需要的是相機(jī)坐標(biāo)系或世界坐標(biāo)系下的抓取點(diǎn)。我的做法是先用張正友標(biāo)定法對(duì)相機(jī)做內(nèi)參標(biāo)定再通過(guò)手眼標(biāo)定建立相機(jī)到機(jī)械臂底座的變換矩陣。之后推理出的目標(biāo)中心點(diǎn)坐標(biāo)通過(guò)矩陣變換映射到機(jī)械臂空間。由于傳送帶一直在動(dòng)我還加了一個(gè)簡(jiǎn)單的速度補(bǔ)償根據(jù)傳送帶線速度和檢測(cè)到目標(biāo)到機(jī)械臂末端的運(yùn)動(dòng)時(shí)間差預(yù)測(cè)目標(biāo)到達(dá)抓取點(diǎn)時(shí)的新位置。這部分一開(kāi)始用固定速度仿真效果還行但實(shí)際傳輸帶速度波動(dòng)時(shí)會(huì)抓偏后來(lái)在編碼器上加了一個(gè)滑動(dòng)平均濾波誤差控制在0.5厘米以?xún)?nèi)。這一整套邏輯下來(lái)從圖像采集到最后機(jī)械臂抓取端到端延遲大概在120毫秒左右滿(mǎn)足低中速傳送帶0.3米/秒以下的分揀需求。5. 訓(xùn)練之外必須知道的事數(shù)據(jù)迭代閉環(huán)和成本控制5.1 建立“臟樣本回流”機(jī)制模型上線后絕對(duì)不是一勞永逸。分揀現(xiàn)場(chǎng)每周都會(huì)出現(xiàn)新的“意外垃圾”比如濕紙巾、果皮、捆扎帶這些在訓(xùn)練集里根本沒(méi)有對(duì)應(yīng)類(lèi)別模型會(huì)強(qiáng)行把它們預(yù)測(cè)成最相近的類(lèi)別結(jié)果機(jī)械臂抓了不該抓的東西。解決方法是建立回流機(jī)制現(xiàn)場(chǎng)IPC把置信度低于0.3的檢測(cè)框和對(duì)應(yīng)截圖自動(dòng)保存到一個(gè)“待標(biāo)注”目錄。每隔兩周標(biāo)注人員只處理這些新增難例補(bǔ)充到訓(xùn)練集重新訓(xùn)練一輪。這個(gè)機(jī)制第一周就幫我們發(fā)現(xiàn)了70多個(gè)誤檢案例第二周模型識(shí)別率又漲了4個(gè)百分點(diǎn)。對(duì)于垃圾分揀這種長(zhǎng)尾分布極其明顯的場(chǎng)景這個(gè)閉環(huán)比一開(kāi)始堆數(shù)據(jù)集更經(jīng)濟(jì)、更有效。5.2 硬件選型與訓(xùn)練時(shí)間成本估算在訓(xùn)練成本上YOLOv5s用單張1080Ti訓(xùn)練200輪、每輪約1000張圖大概需要2.5到3小時(shí)。如果是用CPU訓(xùn)練同樣的工作量可能要40個(gè)小時(shí)以上。所以哪怕只是短期項(xiàng)目我也建議租一塊云GPU來(lái)跑訓(xùn)練而不是用本機(jī)CPU硬抗。訓(xùn)練完成后把best.pt拉回本地部署即可。數(shù)據(jù)集標(biāo)注成本也要算清楚每張圖如果有2到3個(gè)目標(biāo)熟練標(biāo)注員每小時(shí)能標(biāo)注80到120張圖。一個(gè)3000張圖的垃圾數(shù)據(jù)集純標(biāo)注工作在25小時(shí)左右??雌饋?lái)不多但加上質(zhì)量檢查和返工實(shí)際大概需要2人日。所以標(biāo)注前定嚴(yán)格規(guī)范非常有必要否則返工成本會(huì)翻倍。5.3 類(lèi)別不均衡和背景負(fù)樣本的取舍垃圾分揀數(shù)據(jù)集里塑料瓶往往占60%以上而金屬零件可能只有5%。直接按原始分布訓(xùn)練模型會(huì)對(duì)金屬零件類(lèi)別的召回率特別低。我的做法是對(duì)樣本量少的類(lèi)別做離線復(fù)制增強(qiáng)不是簡(jiǎn)單的復(fù)制粘貼而是對(duì)該類(lèi)圖片做小幅旋轉(zhuǎn)、平移、縮放后重新保存為新的樣本。同時(shí)在下采樣階段限制每張圖每類(lèi)的實(shí)例數(shù)不超過(guò)30防止一個(gè)場(chǎng)景里的同類(lèi)別目標(biāo)刷屏導(dǎo)致訓(xùn)練失衡。背景負(fù)樣本是另一個(gè)容易被忽略的坑。分揀場(chǎng)景里空無(wú)一物的傳送帶圖片在訓(xùn)練集里一張都不能少。這些負(fù)樣本能讓模型的obj_loss快速收斂減少誤報(bào)。我每批次會(huì)混入5%到10%的空背景圖效果很明顯。5.4 模型更新時(shí)的權(quán)重管理每個(gè)版本迭代出的best.pt我都會(huì)在權(quán)重文件名里加上日期和數(shù)據(jù)量后綴比如best_20240601_3200img.pt。這樣在比對(duì)現(xiàn)場(chǎng)效果時(shí)能快速定位到底是哪套數(shù)據(jù)訓(xùn)出來(lái)的模型。有一次現(xiàn)場(chǎng)反饋?zhàn)R別率下降排查了半天發(fā)現(xiàn)是某個(gè)同事用了舊版模型文件沒(méi)有同步更新。權(quán)重管理聽(tīng)著啰嗦但在工業(yè)項(xiàng)目里非常重要。另外最好保留訓(xùn)練當(dāng)時(shí)的opt.yaml文件YOLOv5 4.0每次訓(xùn)練都會(huì)自動(dòng)保存。這個(gè)文件記錄了所有超參數(shù)想要復(fù)現(xiàn)結(jié)果或排查差異時(shí)直接載入即可不用猜。6. 一段供直接參考的完整訓(xùn)練流程腳本這里把我自己在項(xiàng)目里常用的訓(xùn)練流程串起來(lái)給你一份可以照抄的清單不包含花哨操作只保留穩(wěn)定跑通的部分。# 1. 激活環(huán)境 conda activate yolov5 # 2. 數(shù)據(jù)目錄準(zhǔn)備好后先驗(yàn)證標(biāo)注格式 python -c import os img_dir dataset/images/train label_dir dataset/labels/train count 0 for img in os.listdir(img_dir): label os.path.join(label_dir, img.replace(.jpg, .txt)) if not os.path.exists(label): print(缺少label:, img) count 1 print(缺失標(biāo)簽數(shù)量:, count) 運(yùn)行這個(gè)驗(yàn)證腳本能第一時(shí)間發(fā)現(xiàn)漏標(biāo)問(wèn)題比直接開(kāi)訓(xùn)練再報(bào)錯(cuò)要高效得多。我曾經(jīng)靠這個(gè)腳本一次性找出37張漏標(biāo)圖片。# 2. 修改garbage.yaml路徑確認(rèn)nc和names正確 # 3. 開(kāi)始訓(xùn)練 python train.py --data garbage.yaml --cfg models/yolov5s.yaml --weights weights/yolov5s.pt --batch-size 16 --epochs 200 --img 640 --project garbage_project --name v1 # 4. 訓(xùn)練完后在runs/train/garbage_project/v1/weights下找到best.pt # 5. 用val.py評(píng)估測(cè)試集 python val.py --data garbage.yaml --weights runs/train/garbage_project/v1/weights/best.pt --img 640 # 6. 導(dǎo)出TensorRT engine python export.py --weights runs/train/garbage_project/v1/weights/best.pt --include engine --device 0我訓(xùn)練時(shí)加過(guò)很多額外參數(shù)比如--cos-lr、--label-smoothing但實(shí)測(cè)下來(lái)對(duì)垃圾分揀數(shù)據(jù)集提升不大反而增加了訓(xùn)練時(shí)間。如果你是第一次跑建議先不加這些花哨參數(shù)跑通整條鏈路再說(shuō)。關(guān)于批次大小如果顯存只有8G--batch-size 16跑640分辨率可能會(huì)OOM可以把batch降到8或者把--img降到544。不要為了湊batch瘋狂調(diào)低分辨率垃圾分揀的小目標(biāo)會(huì)因此丟失得不償失。7. 最后再分享一些實(shí)際部署中的小心得這個(gè)項(xiàng)目前后折騰了將近兩個(gè)月最深的體會(huì)是YOLOv5 4.0本身只是一個(gè)工具真正的難點(diǎn)全都在工具之外。環(huán)境配置看起來(lái)繁瑣但按部就班來(lái)半天時(shí)間絕對(duì)能搞定數(shù)據(jù)集制作才是整個(gè)項(xiàng)目里最花時(shí)間的部分占掉了我六成精力而模型訓(xùn)練反而最簡(jiǎn)單因?yàn)楣俜酱a已經(jīng)足夠成熟剩下的事情就是盯曲線、調(diào)閾值。再提一個(gè)很多人沒(méi)注意到的細(xì)節(jié)4.0版本的--cache參數(shù)官方默認(rèn)表示緩存圖片到內(nèi)存如果內(nèi)存不足會(huì)有警告。但很多教程會(huì)把--cache當(dāng)成默認(rèn)照抄下來(lái)我建議顯存緊張時(shí)不要開(kāi)緩存否則訓(xùn)練過(guò)程中可能因?yàn)閮?nèi)存交換導(dǎo)致整機(jī)卡死。我踩過(guò)的另一個(gè)坑是Windows平臺(tái)上PyTorch的DataLoader多線程問(wèn)題。如果num_workers設(shè)得過(guò)高在Windows下會(huì)出現(xiàn)DataLoader worker超時(shí)導(dǎo)致訓(xùn)練中斷。建議Windows用戶(hù)把--workers設(shè)為0或2Linux下可以設(shè)到8。分揀業(yè)務(wù)流真正落地時(shí)視覺(jué)檢測(cè)只是其中一環(huán)機(jī)械臂的軌跡規(guī)劃、傳送帶的啟停邏輯、PLC信號(hào)的時(shí)序配合每一個(gè)環(huán)節(jié)都需要跨團(tuán)隊(duì)溝通。作為算法工程師別只顧著調(diào)模型多去現(xiàn)場(chǎng)看看機(jī)械臂抓空或者抓漏的瞬間很多模型上的問(wèn)題在現(xiàn)場(chǎng)看一次就明白了。代碼和數(shù)據(jù)可以隨時(shí)更新但現(xiàn)場(chǎng)的經(jīng)驗(yàn)不會(huì)自動(dòng)積累。希望這篇內(nèi)容能讓你少踩一些我踩過(guò)的坑也歡迎交流你們?cè)诶謷蛘哳?lèi)似檢測(cè)場(chǎng)景里遇到的具體問(wèn)題。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
野狼激情网| 天天影视色香色欲| 超碰97国产欧美| 国精品一区二区三| 国产CHASE男男GAYGA 毛多色婷婷| 日韩一级二级三级在线不卡观看完整| 亚洲人91| 图色综合网| 亚洲精品精品一区二区| 家庭乱伦国产| 乱操乱伦AV| 人人妻天天做天天爽| 国产原创精品| 9999久久久久| 曰韩成人免费视频| 91高清无码下载| 无码国产精品96久久久久孕妇| 精品欧美日韩在线观看| 亚洲色图第一页| 今日头条成人一区二区三区四虎精品| 日韩精品一二三四| 人人人人人人少妇| 99视频内射三四| 国产女人成人精品视频| 色情乱伦AV| 色网在线视频观看免费| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 国产精品999zyz| 1769国内精品视频| 一级乱伦网站| 一二三区操逼国产91| 久久久精品网站| 亚洲欧美伦综合| 三四中文字幕| 无码人妻一区二区三区色欲aⅴ| 中文字幕福利视频一区二区三区在线观看| 精彩久久中文| 欧美日韩制服| 97超碰超碰| 九九九九精品| 婷婷色色五月天福利| 草草草视频在线免费看| 日韩福利综合一区| 强奸乱伦Av网| 久久久爆乳翘臀一线天伦理视频| www.四虎在线| 中文字幕久久精视频久久大全| 中日无幕一二三四区| 亚洲欧洲视频小说在线观看| 色狠狠综合噜一二三区| 艳尻美人妻| 骚逼自拍99| 九九九九九九精品| 日本爽爽爽爽爽爽免费视频| 男人天堂资源| 色九九九九久| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 天天干天天日天天射黄色片| henhen91| 九九精品美女高溯喷水| 白丝被操91| 欧美日韩亚洲五月天婷婷| 伊人久久综合影院| 中文字幕一区二区三区四五区| 大香蕉九九| 久草加勒比一区在线| 97高清啪啪| 日本视频在线观看污污污| 亚洲91射| 黄色电影在线播放综合网站| 97超碰总站| 日韩一级久久毛片| 国产精品嫩草久久久久| 中国少妇XXXX做受| 欧美特大黄一级片片免费| 成人无码在线超碰网| 久久九操在线观看| 激情接吻视频久久久久久| 免费观看欧美日韩操逼视频| 97精品在线| 久久97资源 网| 亚洲91极品| 啪啪综合网| 久久久免费高清中文视频| 在线岛| 欧州91高潮| 青青草在线视频美女| 国产天美欧美| 国产黄色影片在线观看| 超碰爽人妻熟女Av| 激情九月婷婷| 毛片电影一区二区三区| 亚洲日韩美国人妻| 亚洲一级特黄大片在线播放91| 97超碰站| 伊人五月天婷婷| 日韩色香| 人妻二区| 波多野结衣被操50分钟免费视频| www熟女乱伦com| 日本成熟少妇A∨网站| 第45页一区二区| 精品一久久久| 青青草国产亚洲精品久久 | 91精品久久综合熟女| 在线可观看的黄色网址| 日韩不卡av一二三| 日韩亚洲美女一区久久| 97资源超碰| 欧美亚州综合图片| 人人操人人精品影片| 97中文字幕一区| 老熟女综合| 国产福利精品98视频| 人人干人人操人人爱| 尤物黄色在线观看网站| 爽 好舒服 无码刺激久久| 久久久中文| 大屁股人妻女教师撅着屁股| 久草精品视频| 色欲色香天天天综合网www-亚洲综合国| 97香焦色区| 黑人干亚洲| 亚洲乱码精品一区二区| 综合色图亚洲欧美| 成人性爱免费播放| 色九月综合| 久久精品高清无码一区| 91熟女视频网| 亚洲和欧美裸体美女双飞视频| 亚洲 自拍偷拍 欧美| 亚洲免费97免费| 国产日韩无码一区二区三区久久区| 一级岛国大片| 国产小炒后入式| 美女性91| 91在线秘 男同| 久久婷婷五月综合| 天欧美在线| 国产精品久久久无码aV去| 亚洲欧洲综合视频在线| 性爱AV天堂| 51久久夜色精品国产麻豆| 日韩乱码Av| 日韩91网站| 国产热RE99久久6国产精品首| 天天碰操中国年青熟妇| 影音先锋每日最新资源在线观看| 色噜噜综合网| 亚洲成人在线乱码色午夜| 亚洲中文一区二区三区| 91少妇香蕉久久精品| 可以在线观看的黄色网址| 秋霞男人网| 亚洲成aⅴ人片不卡无码| 欧洲乱码一区二区| 成人性爱AV在线免费观看| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 久久久久久亚洲中文| 色天堂综合| 久久一区二区高清免费| 搞中出视频在线观看| 欧美强奸乱能| 久久久78| av午夜玫瑰| 中文字幕狠狠玩| 最新制服中文第一页| 天天做日日爱夜夜爽| 中文无码一二三区| 亚洲无992tv| 久久极品一区二区| 欧美色日| 区一二区日韩亚洲乱码av电影| 国产aⅴ无码片毛片一级网站| 欧美熟妇精品黑人巨大91| 中文字幕一区二区三区蜜臀| 美女操逼A A| 激情四射婷婷四五月天| 色黄污美女啪啪啪免费网站| 国产真实野战在线视频| 四虎午夜影院| 欧美天堂日韩三级国产传媒| 欧美性生活内射| 99精品在线播放| 国产精品露脸在线观看| 91亚洲影视| 97视频新免费| 午夜男人天堂| 久久HD| a天堂视频| 日本韩国国产精品一区| 亚欧成人一级片在线播放| 天天操天天日天天干| 91最新综合| julia在线观看久久| 亚洲无码99| 中文字幕在线观看二区三区| 亚洲国产成人福利在线观看| 亚洲国产丝袜熟女av | 婷婷六月色| 色婷婷五月综合激情中文字幕| 欧美一级久久久久久久大片动画| 欧美性爱精品七区| 婷婷久月| 欧美色综合| 97超碰人人模人人拍人人| 91精片| 国产精品爆乳懂色蜜乳| 秋霞午夜成人福利片片| 四虎国产精品永久在线囯在线 | 亚洲色诱惑| 5278欧美一区二区三区| www色色com| 亚洲色图激情小说| 国产精品97超碰| 久久性爱视频99| 好一吊区二区| 国产后入内射| 久久欧洲| 舔足天天操天天射| 人妻日日干| 97 亚洲 日韩 欧美 在线| 亚洲宗合网| 亚洲一区二区av| 91超碰丝袜制服| 易易A毛视频| 亚洲色人妻综合| 丝袜美腿制服人妻二区中文字幕 | 亚洲欧美91√| 亚洲色棕合| 亚洲毛片基地专区| 日韩性爱人人爱人人操| 久草大| 久久亚洲人妻| 亚洲av资源| 乱伦av麻豆| 99999精品视频| 大香蕉懂9| 全免费a敌肛交毛片免费| 91亚州日韩高清| 67914在线兔费成人视频| 久久狠狠色噜噜狠狠狠狠97| 熟女人妻一区二区三区| 午夜精品久久久久| 久久国产成人精品国产成人亚洲| 尤物一级在线免费观看| 精品无码人妻一区二区免费蜜桃| 黑人娇小av在线播放| 日韩成人综合网| 极品色电影院| 亚洲成人无码影院| 日韩中文9| 亚洲日韩人妻中文字幕一区| 国产麻豆91欧美一区二区久久婷婷国产精品| 亚洲欧美人妻| 久久久久久欧美精品se一二三四| 啊啊啊啊好疼视频| 另类图片欧美激情综合| 中文字幕超碰CAO| 亚洲AV麻豆Aⅴ无码电影一| 综合色图,成人综合网| 人人搡人人肉久久精品| 这里只有精品97| A级片日韩欧美国产欧美视频精选观看| 国产真乱mangent| 午夜男女爽爽爽影院视频| 国产精品午夜精品| 伊人午夜福利视频| 欧美天堂第二区| 69精品在线| www网站黄| 中文字幕一区二区三区视频播放| 欧美激情亚洲情色| 综合久欧洲| 裸体美女免费看网站青草| 99rre在线精品99re8| 色九九九九久| 国产精品第一区第一页| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 女生看匆91网站| 五月天综合| 2018天天日天天日| 玖玖大干人妻| 日本一区二区三区欧美日韩中文字幕| 日B操| 98超碰欧美| 99天天超碰| 色播五月丁香| 懂色AV蜜臀无码精品APP| 久久久久久久9| AV色图| 色盈盈影院| 亚洲欧美一区二区三区在钱蜜桃 | 亚洲AV免费在线观看| 色嗨嗨在线| 日韩免费在线观看不卡| 亚洲精品人体| 加勒比综合88| 人妻激情视频| 激情内射| 啊啊啊啊在线播放| 天天日美女的B| 92一区二区| 中日高清无码操逼视频| 熟妇女伦乱视频视频| 亚洲日韩成人性爱视频| 亚洲国产综合视频| 玖玖综合.com| 一道本东京热加勒比一区二区三区| 四虎永久在线精品免费网址| 九99久久| 精品午夜福利| 精品久久久久久中文字幕视频免费| 日韩性爱一级片| 尤物网站91| 九一综合精品视品av| 呦呦一区| 2017超碰| 超碰免费在线| 精品欧美老熟女一二区| 日日夜夜噜| 女人喷水视频在线观看| 东北女人性交| caopeng97人妻| 377p欧洲日本亚洲大胆| 91 综合网| 超碰国产情侣自拍网| 少妇一区二区三区高速| 精品999一区二区| 色九月综合| 婷婷激情五月天小说网| 偷拍偷窥与盗摄视频专区| 天天天乱色综合全| 麻豆视频test| 国产精品视频白浆免费| 色婷婷一区二区三区久久| 另类av综合久久| 国产精品午夜高潮呻吟久久av| 美女啊啊啊啊啊啊| 超碰在线第一页| 96AV精品| 秋霞欧美性爰视频| 国产成人无码a| 久久黄人人爽视频| 99re这里只有| 97久操| 日本孕妇孕交| 五月天社区| 乱伦色图网址是多少| 9久9久| 三级网站超变态精品| 动漫爆乳3D奶水一区在线观看| 超碰91在线| 一二三卡欧美日韩人妻免费精品| 美女淫穴| 91人人爽人人爽| 岛园激情| 午夜男人av| 日本操逼视频在线| 亚洲美女精品九九视频| 日本性一区| 国产精品午夜成人福利| 天天操女人| 四虎AV在线观看| 国产成人自拍视频在线| 福利在线黄片| 伊人黄色视频免费观看| 91久久精品中文字幕| 高清有码一区二区| 精品午夜福利导航| 亚洲综合第一页| 少妇激情一区二区三区视频| 热热色国产一二区AV| 欧美精品欧美精品系列| 另类老少妇| 欧美青青草视频| 中国小夫妻勾搭露脸淫荡对白 | 久久9精品视频| 六月婷婷激情| 久久婷婷五月天| 国模精品一区二区三区苹果色戒 | 久草色在线观看| 操91| 亚洲男人天堂2| 97久久国产精品| 茄子社区国产精品| 蜜桃天美传媒AV一区二区三区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 四虎免费在线观看| 淫荡网址| 亚洲一区二区三区春色| 97精品一区二区视频| 偷拍 欧美 日韩| 91搞逼视频| 亚洲激情在线观看一区| 国产亚洲日韩在线三区黑人| 天天爱天天韩国日本牛牛牛牛| 国产亚洲美日韩Aⅴ中文字幕无码成人| 亚洲日韩在线a不卡99精品| 亚洲av成人精品一区| 人人么人人操| 久久久久久久亚洲Av无码| 日韩人妻 中文字幕| 亚洲国产高清福利视频| 五月激情综合网| 超碰日本97美女人妻人人玩人人爱| 欧美亚洲综合色| 无码一区二区三区四区五区六区七区八区九区十区视频 | 精品久久久无码| 综合日本女人伊人| 撸撸成人在线视频| 青青草华人在线欧美在线| 深喉吞精| 欧美成熟性爱精品| 91动漫操逼视频| 天天拍天天操| 亚洲老司机123专区| 亚洲加勒比色图| 亚洲综合影院| 操我无码| 熟女中出视频| 97超碰磁| 欧美日韩黄片精品在线| 久9热| 九X超碰| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 啊啊啊不要好疼视频| 久插不卡| juliaann欧美丝袜办公室| 国产农村妇女毛片精品久久| 亚洲国产日韩欧美熟妇在线| 日本天天人人狠狠在线日美女| 超碰98综合网| 啊啊啊免费视频| 2019久久久久久久久福利| 91啪啪视频| 久久久久久久久久久999| 久久久无码精品人妻二区| 久草尤物| julia高潮后不停追击中出| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 国产成人五月天丁香花| 国产精品久久久久亚洲av| 97人妻色| www.91视频网| 国产日本久久免费精品| 少妇三P| 丝袜亚洲综合| 伊人色综合网| 国产精品一二三| 先锋激情∨在线视频播放| 亚洲有薄码区日本系列中文字幕| 久久精品操| 中国女人内射6XXXXX| 精品十三区| 张柏芝国产一区在线观看| 婷婷色在线| 人人操人人精品影片| 性在久久久久久| m欧洲一级午老| 精品三级在线专区| 啊a一区在线| 在线观看视频91| 99色视频| 一本色道久久综合精品婷婷| 午夜久久无码1000合集| 日韩特一级久久| 亚洲暴力强奸AV| 国产日韩欧美| 亚洲最新中文字幕免费| 99碰碰| 久久久久久久国产a∨| 人妻精品一区二区全免费| 91这里只有精品| 超碰 97国产熟女| 97国产超碰| 国产一区二区三区中文字幕| 少妇色| 国产原创精品| 免费黄色片。| 精品国产乱码久久久久久久久久毛片| 日本黄 R色 成 人网站| 人妻精品一区二区在线| 偷拍新久久| 99自拍视频| 先锋女优在线观看视频| 中文字幕日产av人| 日韩精品黄片免费观看| 噜噜瑟| 天天干天天干天天干| 99re在线| 色欲人妻一区二区在线| 国产中文字幕曰本毛片| 久9无限国产| AND人妻系列| 一级毛片久久久久久久女人18| 久草精品一区| 这里有精品| 中文字幕第9页萱萱影音先锋| 婷婷五月天无码 | 91人人臊| 国产一国产一级毛片古装| 欧美性爱一区| 婬女免费一二三区A片| 久热最新在线杭州| 久久久久78| 操一区| 国产无码三级视频在线观看| 亚洲熟女少妇免费视频| 91 丝袜在线| 一起草精品人妻| 超碰欧美| 美女爽到高潮91| 一区麻豆 高清中文字幕| 欧美激情中文字幕另类小说| 精品免费一区| 天天影视网色欲色香| 国产剧情一区在线观看| 热99这里只有精品| 日韩偷拍一区二区三区| 亚洲 欧美综合| 亚洲91综合| 日本天堂网| 五月天婷婷色色| 天天躁日日躁xxxxx| 蜜臀99久久精品久久久懂爱| 91精品国| 内射黑丝袜| 欧美成人精品一区二区三区| 婷色五月天| 竹菊影视国产一区二区| 午夜a成v人电影| 久久这里只有精品9| 国产和美国毛片| 亚州色图狠狠干| 中文字幕78| 开心五月婷婷激情| 日韩性爱高清免费视频| 久久91视频| 欧美性生活男人的天堂| 91色拍| 风韵犹存大大大大香蕉 | 免费看黄视频亚洲网站| 成人av性爱电影在线观看| 蜜桃久久一区二区| 欧美九九九九九| 97国产精选| 97情超碰色| 夜夜操中文字幕| 久久久不卡区一区二区三区久久久| 殴美,日韩国产伦精品| 99re视频在线观看这里只有精品| 人人扣人人操| 996热| 丁香五月自拍| 丁香五月天啪啪| 婷婷月色| 人妻天天操天天爽视频免费| 台欧久久精品视频| 精品一区96| 九月AV| 欧美日韩国产电影| 亚洲男人的天堂网| 2020中文字幕在线| 少妇激情一区二区三区视频| 日日干夜夜欢| 亚洲超碰综合网| 97网址97| 啊啊啊男女| 久久久精选| 亚洲欧美洲综合| 亚洲国产熟妇综合色专区| 好属操| 国产精品白领在线观看| 国产美女销魂在线观看不卡| 性色生活片久久毛片婬片免费放女人一级毛片 | 青草精品视频日本久久久久网站在线| 亚洲色狠| 日韩性爱毛片操骚逼| 粉嫩av在线一区二区| 九九色影院| 内射白嫩美女| 人妻黑丝袜电影| 性感美女91影视| 少妇久久久久久| 成人性爱AV在线免费观看| 91在线视频观看国产| 97干在线视频| 日本A级视频| 蜜汁欧美| 一区二区三区在线美女| 精品少妇一区二区三区在线视频| 欧美制服网站美腿丝袜| 亚洲青色欧美| 射综合网| 日本人人操人人操| 青青草吊丝| 国产熟女高潮一区二区三区| 欧美激情综合网| 日韩亚洲中文字幕在线| 日韩美一区| 伊人96在线| 亚洲国产综合视频| 亚洲超碰AV| 欧美日本久久精品一区| 四虎精品亚洲| 尤物网址| 好淫网一二三视区| 福利天天都操| 天天谢天天干| 中文字幕av色| 中韩中文字幕在线观看| 亚洲欧美在线观看免费| 图色综合网| 欧美日韩中文字幕不卡| 成人 日本A片无码8888| 久久9久9久99久9久9| 精品国产乱码久久久影院| 99这里只有精品国产| 男人天堂2019亚洲| 久久婷婷苹果| 狠狠中文字幕| 国产亚洲日本| 最新av中文字幕高清| 亚洲一区二区麻豆影院| 青青草AV色| 亚洲黄色网址视频| 97在线观看免费视频l| 久久人妻| oumeisetu综合| 精品夜夜澡人妻无码AV| 深田咏美亚洲精品福利社| 亚洲诱惑| 日韩黄片视频试看| 成人色女网| 69视频入口| 久草综合京东| 中文字幕三四区| 天天爱天天韩国日本牛牛牛牛 | 国产高清在线观看欧美| 亚洲男人的天堂在线看| 九九精品99| 国产成人主播| 再深点灬舒服灬太大了添视频| 久久久av爱| 国内毛片热久久思思热| 肉丝网站91| 啊啊啊好湿久久| 欧美日韩国产中文精品字幕自在自线, | 久久鲁夜| 澳门黄片一香蕉视频| 91在线|亚| 精品综合久久久久久五月天| 欧美AB在线观看| 欧美日韩大香蕉| 久久水蜜臀亚洲AV无码精品| 日熟女| 欧美在线视频播放| 天天色播亚洲综合网站| 欧洲色综合| 亚洲综合五月天| 性一级黄色录像片网站导航| 婷婷色一区| 日韩av性爱在线播放| 麻豆伊人网| 欧美网站免费| 大香蕉中文201| 国产精品情侣啪啪| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 久久香蕉综合一本到3atv| 欧美天堂亚洲电影院一区在线播放| 国产51色综合久久免费| 国产精品一区二区麻豆| 亚洲综合97中文网| 精品久久久久久中文字幕三区| 中文字幕文字幕无码一区二区三区电影99 | 美女黄页| 亚欧视频在线| 97久久国产精品女不卡| 求求你操操我| 女人高潮抽搐喷水视频网站| 亚洲日韩国产精品| 天天日天天屌天天操| 色99视频| 中字幕人妻一区二区三区| 国产自产22区| 丰满少妇一区二区三区四区观看| 金莲网址| 免费成人自拍视频在线| 91精品免费| 内射日韩大臀美女| 日本欧美亚洲高清在线看| 欧美综合亚洲综合| 欧美极品少妇| 四虎AV无码| 性做久久久久久免费观看软件| 免费AV中文网在线观看| 91美女视频电影| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 无码聚合| 亚洲国产成人7777| 欧美欧美少妇| 黄久在线| 91麻豆天美国产| 人人爱操| 九九综合久久| 370p日韩欧美亚洲精品| 亚洲图片第一页| 伊人久大| 欧美最大综合网| 久偷拍| 亚洲天堂东京热| 99色色网| 欧美强奸一区二区诱惑| 国产精品日韩在线一区| 懂色aV一区二区天美传媒| 久热精品在线| 人人九九精| 日本新免费二区三区| 亚洲综合在线高清| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 亚洲AV成人无码一二三久久| juliaann欧美丝袜办公室| 韩国嫰模上门援交视频| 青青草白白色| 超碰人妻久久人妻中文97| 超碰三级秋霞| 一区二区 韩日AV| 国产原创剧情在线丝袜 | 蜜臀99久久精品久久久久久| 91无码人妻| 久久精品中文| 超碰97在线色男人??| 97AV在线免费观看| 亚洲在高跟鞋自慰久久在色线| julia在线观看久久| 亚洲有薄码区日本系列中文字幕| 色综合久| 久久人妻视频网| 青青草操逼逼视频| 精品久久久久,69国产成人精| 日本在线一二| 欧美精品另类人妖xxxx| 青青草原狼av| 天美一二三在线观看Av| 丰满搜索结果 -第18页- 久久高清无码 | 九九九九九九九九九九九九九九九女| 久久久久ab| 91国精产品| 国产熟码AV| 啊啊啊啊免费视频| 亚洲日韩天堂| 一级黄色性爱裸体视频| A片A5445444| 免费人成在线观看网站品爱网| 国产精品成人久久一区二区三区| 日韩精品碰碰| 国产成人精品亚洲日本| 99∨VTV| 亚洲 中文 女同| 熟妇高潮一区二| 蜜臀一二三区| 国产精品视屏| 欧美日韩黄片精品在线| 欧美一区二区观看在线| 99久久久久| 人妻在线中出视频| av东京热男人的天堂| 97国产中文| 天天干人人看综合| 日韩国产成人自拍视频| 婷婷综合激情| 校园春色亚洲欧洲| 天天操熟妇| 精品一级毛片在线观看| 99热99在线播放激情| 99激情视频| 青青草白白色| 蜜臀久久久99久久久久 | 日日骚精品视频| 亚洲性高潮| 18禁在线视频| 久久久久9| 男人干美女| 黑人精品欧美一区二区蜜桃| 在线视频亚洲无码| av天堂5| 亚洲色图 欧美热图 清纯唯美 另类自拍| 欧美夜色| 97色碰| 婷婷AV一区二区三区| 成人女人国产| 美女9118禁| 少妇高潮对白在线观看| 殴美牲| 激情情色五月天| 国产精品亚洲色婷婷久久久| 偷窥自拍亚洲天堂网爆| 亚洲少妇色图自慰直播| 99在线精品视频| 日韩黄色一区二区三区| 亚洲人妻熟妇三十三区| 久9精品| 国产精品久久久久无码AV会牛| 欧美成人亚洲精品| 妇女一区二区三区| 自拍大香蕉乱插| 色色综合97| 乱性AV| 欧州色图区| 91操熟女视频 | 久9久9精品| 日韩成人无码| 亚洲性综合9| 97在线视频免费看| 天天干人妇| 色哟哟av网址| 操逼逼中文字幕| 日韩精品人妻中文字幕久久久| 久久男人天堂| 久超碰在| 99999精品| 香蕉在线一区二区三区| 日韩欧美中文字幕搭讪巨乳美人妻视频| 国产人妖的免费的视频| 韩国三级三级BD在线| 亚洲男人天堂网| 综合色图,成人综合网| 久久久精精精| 亚洲国产第一页综合视频| 久久风骚城市人| 插欧洲美女欧美精品| 超碰视97中文| 四虎884a| 超碰97伊人| 妇女性内射冈站HDWWWCOM| 中文字幕在线播放2中文字幕在线观看2| 人人九九精| 免费看一级a性色生活片久久无| 日产成人久久| 国产乱伦性爱AV| 99在线观看视频在线高清| 亚洲偷拍自拍在线视频| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 好爽视频在线观看视频| 五月天色图影视| 精品视频在线观看| yirendaxiangjiashipin| 精品人妻视频入口| 麻豆一区二区三区精品| 日韩无码黄色片| 中文字幕精品亚洲熟女| 日本午夜久久电影| 天天日天天看| 欧美熟妇精品黑人巨大一二三区| 国产精品久久久久无码Av网曝门 | 欧美探花网| 欧美性天天影院| 久久久夜夜嗨免费视频| 欧美激情区| 97久久精品亚洲中六字幕| 人人潮人人摸| 亚州,欧美在线| 人妻激情另类| 精品九九国产无码| 深夜激情| 韩国轻伦国内自拍一区| 乳欲人妻办公室奶水| 中出20p| 99国内精品| 国产性久久久| 青青五月天| 91电影色诱| 久操精品网| 成人毛片免费| 欧美在线|亚洲| 99国产精品人妻人伦| 午夜激情成人在线观看| 18精品一二区| 亚洲综合影片| 成人精品在线观看| 91在线秘 男同| 欧亚 另类 久| 欧美美女在线高潮999| www网站黄| 超碰97人人cao| 亚洲有薄码区久久在线一区| 清清一区二区三区四区不卡视频| 免费人成在线观看网站品爱网| 97在线/亚洲| 亚洲第91页 | 91精品人妻| h色99999| 密臀在线免费观看| 五月丁香综合激情| 国产精品视频自拍在线| 校园春色亚洲色图| 一二三四视频在线社区中文字幕| 欧美性爱97超碰| 五月丁香社区婷婷日韩欧美精品影院 | 精品人妻一区二区免费蜜桃视频| 天操老女人| 亚洲欧美一区二区三区在钱蜜桃| 一,爱啪啪,在线免费视频| 另类图片欧美激情综合| 中文有码9| 99爱爱| 久久大线蕉一区| 天天操女人| 亚洲综合在线视频| 色青青久久影视| 国产女人和拘做爰视频| 探花视频免费观看国产专区| 97在线视频免费看| 中文字幕欧洲有码| 伦理日韩国产久久| 91欧美另类| 欧美白嫩女HD| 啊好爽受不了无码| 9/A片 | 久热99999| 亚洲性少妇| 中文字幕天天操| 精品v1区| 天天日日本| 男人下部插入女人下部| 综合网,亚洲,欧美| 日本一区三级韩国| 亚洲男人天堂Av| 激情99| 久久久一区二区三区四曲免费听 | 麻豆熟妇乱妇熟色A片在线看| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 特级大荫道BBwBBwBBW| 熟女丰满人妻一区| 97久久久久久久精| 国产自产91区13区| 超碰在线974| 97爱爱影院| 国产熟女二区| 少妇人妻激情四射| 亚洲亚洲亚洲天堂天堂| 亚洲中文字幕久久无码精品| 我爱操| 99re黄 | 亚洲国产剧情少妇激情| 精彩国产视频播放1区2区| 欧美中文字幕一区 | 亚洲中文字幕精品一区| 久久av无码| 国产精品麻豆视频网站| 久久久精品视频免费观看| 亚洲欧洲网站免费观看| 9色在线| 91色碰| 天美精品一区二区三区四区在线观看| 农村妇女精品一区二区| 久久成人午夜狠狠| 东京热,男人的天堂| 999精品久久久久久久| 精品国产一区探花在线观看| 日本性爱欧美性爱| 操逼逼无码| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 97干在线看| 日韩午夜国产| 国产精品禁久久久精品| 91综合色| 久久人人爽爽人人爽人人片αV| 小情侣高清国产在线视频| 天天插天天插| 欧美国产一区二区三区麻豆传媒| 人妻无码一区二区三区久久99| 天天爱天天操| 日韩操逼HD| 色999亚洲人成色| 在线97在线| 欧美瑟综合| 国产精品一区二区手机看片| 狠狠色噜噜狠狠狠狠狠色综合久久| 亚洲av无码成人精品国产| 北京专精特新企业招聘信息| 中文幕97| 九热中文字幕| 婷婷午夜成人色中色| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 国产av强奸美女| 开心五月深爱五月| 天堂涩涩| 亚洲阿v天堂在线| 爽 好舒服 无码刺激久久| 少妇诱惑视频| 一二三区精品视频| 在线国产福利网址导航| 亚码激情| 亚州,欧美在线| 最新av网站在线观看| 天天色粽合合合合合合合| 熟女高潮合集-永久久久-成人AV| 久夜视频| 日韩中文字幕视频在线观看| 欧美性暴力猛交XXXX| 老司机午夜精品视频| 天天插夜夜操| 大香蕉AV丝袜| 99rre在线精品99re8| 不卡一区二区日本视频| 亚洲国产综合久久久性感熟妇| 欧美日韩国产精品久久色婷婷| 国产野战露脸在线播放| 欧美中文字幕男人天堂久久精品| 福利五区| 久久成人国产| 成人综合视频久久| 国产极品馒头逼| 99九九精品| 亚洲在线A| 国产日韩欧美亚洲精品95| 九热大香蕉| 国内毛片欧美香蕉精品| 99成人| 九九热精品视频六| 中文字幕精品区先锋资源| AV中文字幕剧情1区2区3| 欧美18 在线观看| 中文字幕丝袜人妻| 国产在线播放成人免费| 色色色综合| 91欧美色| 五月激情综合网| 久久香蕉国产线看观看亚洲女人 | ..日韩av毛片精品久久久| 超碰在线人妻不卡| 无码人妻精品一区二区三区99不卡| 97天天爽| 亚洲av性爱电影| 青青草吊丝| 国模私拍一区二区三区神乳| 国产夜夜艹| 在线人成亚洲视频免费观看| 麻豆AV一区二区| 98人妻精品一区二区色欲| 久久9亚洲| 久久成人国产精品| 五十路二区在线| 日韩人妻播放| 蜜臀一二三区| 亚洲成人综合在线| 丰满人妻一区二区三区免费| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 超碰 国产熟女精品一区| 人看人人摸人人操| 99re这里只有精品2| 人妻AV 中文字幕的| 91精片| 97视频在线观看高清资源| 黄页大片在线观看| 五月婷色| 欧美精品三级黄片| 美女在线H91| 小日子操bb在线看| 青青草一区二区三区四| 国产精品老师| 欧美色偷偷| 国产最火爆久久国产网站网站| 欧美日韩色综合网| 精品二999| 欧美性爱精品一区二区| 极品色综合| 狠狠躁天天躁日日躁97| 天天天天天干夜夜夜夜夜操| 天天综合-91入口| 精品人妻一区二区乱码一区二区| 久久亚洲AV无码专区国产精品| 欧美午夜熟妇黑人精品91| 久jiu久神马影院| 国产AV毛片| 大香蕉淫人| 男人久久精品| 色情综合网| 9丨亚洲一区二区在线| 热热色国产一二区AV| 天天看少妇| 黄色视频特级毛片| 一区二区乱码福利| 久久原创中文| 国产欧美日韩女同性恋ww喷水精品| 日韩偷拍一区二区三区| 日韩综合色网| 青青草视频久久久久| 在线性黄高清免费视频| 亚洲一区二区三区在线激情| 日韩精品影视| 校园春色欧美色图| 大香蕉五月天| 操逼片国产| 天天综合网网欲色| 人人妻人人色一区二区三区| 亚洲欧美爆| 婷婷五月在线视频| 99在线无码精品秘 入口黑人| 日夜伊人网| 久久久久久无码人妻中文字幕| 欧美亚洲国产自久久| 午夜一区| 欧美日韩操逼动图| 麻豆国产97在线| 揉揉日日日日| 美女上床网站| 97操在线| 国产九九九九九九九九| 色97| 欧美强奸乱能| 黄片免费视频2019| 日夜伊人网| 内射白嫩美女| 免费亚洲黄色视频在线观看| 天天综合网网欲色| 久久爱97| 另类图片五月天| 久久久免费懂色| 午夜啊啊啊| 99re9这里只有精品| 熟女丰满人妻一区| 久久婷婷五月天| av一区二区三区 中文| 97人人操人人摸人人爱| 人人贴人人摸| 久久性爱视频99| 神马九九| 九九九久久久| 国产性爱强奸乱伦大全| 欧美少妇人妻| 欧美日韩精品久久久久久久久东北老熟妇| 啊啊啊轻点在线观看| 色偷偷超碰亚洲| 久久宗合亚洲| 内射中国少妇高清视频免费视频| 中国小夫妻勾搭露脸淫荡对白| 国产精品亚洲四五区在线观看| 久久9精品视频| 日本一区二区电影网站| 日本淫色网| 91新在线欧美| 97久久精品国产| 9久精品视频在线观看| 欲射影视| 91国精产品| 欧美精品不卡一二三四在线91| 青青青草原| 欧美情色亚洲| 久久久日本电影| 亚洲欧美小说| 操逼视频国产无套| 被男人添B超爽视频| www.av在线视频| 一级久久久久久久久久久| 性做久久久久久免费观看软件| 99啪啪视频| 久久日韩毛|