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

ARTICLE DETAIL

資訊詳情

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

MobileNet-YOLO輕量化目標(biāo)檢測(cè)實(shí)戰(zhàn):結(jié)構(gòu)、訓(xùn)練與部署指南

MobileNet-YOLO輕量化目標(biāo)檢測(cè)實(shí)戰(zhàn):結(jié)構(gòu)、訓(xùn)練與部署指南 簡(jiǎn)介面向目標(biāo)檢測(cè)算法研究與輕量化部署場(chǎng)景這份PyTorch實(shí)現(xiàn)的MobileNet-YOLO檢測(cè)網(wǎng)絡(luò)資源覆蓋MobilenetV1/V2/V3與YOLOv3/YOLOv4系列模型適合需要對(duì)比主干網(wǎng)絡(luò)與檢測(cè)頭組合效果的算法工程師和研究生。損失函數(shù)與原始實(shí)現(xiàn)保持一致模型在VOC20072012上訓(xùn)練并在VOC2007上測(cè)試權(quán)重采用ImageNet預(yù)訓(xùn)練使用方式貼近原始YOLO可直接沿用其數(shù)據(jù)準(zhǔn)備、訓(xùn)練與評(píng)估流程。資源包為zip格式共29個(gè)文件大小約240KB包含16個(gè)Python腳本模型結(jié)構(gòu)、訓(xùn)練、推理、mAP評(píng)估、圖像增強(qiáng)等、5個(gè)shell腳本數(shù)據(jù)集下載、lmdb創(chuàng)建、訓(xùn)練、推理、2個(gè)YAML配置數(shù)據(jù)路徑與參數(shù)、說(shuō)明文檔與許可證以及若干示例圖片目錄劃分清楚便于按模塊復(fù)用。已有1944人學(xué)習(xí)/下載。通過(guò)該資源可完整復(fù)現(xiàn)輕量化檢測(cè)器的訓(xùn)練與推理流程掌握VOC數(shù)據(jù)集預(yù)處理和lmdb轉(zhuǎn)換的細(xì)節(jié)同時(shí)可參考eval_mAP、圖像增強(qiáng)等工具腳本快速遷移到自有目標(biāo)檢測(cè)任務(wù)中。1. 從跑不動(dòng)到流暢檢測(cè)MobileNet-YOLO-Pytorch 的價(jià)值被很多人低估了MobileNet-YOLO-Pytorch 這個(gè)項(xiàng)目名看著很長(zhǎng)但本質(zhì)很直接把 MobileNet 系列v1/v2/v3當(dāng)作骨干網(wǎng)絡(luò)后端接 YOLO 系列YOLOv3/YOLOv4的檢測(cè)頭形成一套可以在 CPU 和嵌入式設(shè)備上實(shí)際跑起來(lái)的檢測(cè)方案。很多人第一反應(yīng)是“這不就是個(gè)縫合怪嗎”但真正在邊緣設(shè)備上部署過(guò)的人會(huì)明白這一步縫合解決的是實(shí)打?qū)嵉目ú弊訂?wèn)題。我之前在某個(gè)項(xiàng)目里要在一個(gè)低功耗盒子上跑實(shí)時(shí)檢測(cè)原版 YOLOv3 的 DarkNet 骨干一幀推理要 400 多毫秒整個(gè)業(yè)務(wù)沒(méi)法落地。后來(lái)把骨干換成 MobileNet同樣的檢測(cè)頭推理時(shí)間直接降到 50 毫秒檔位精度損失遠(yuǎn)沒(méi)有想象中大。這套組合的適用人群很明確手頭有檢測(cè)需求、設(shè)備算力受限、又不想從零設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu)的人。接下來(lái)我會(huì)按“結(jié)構(gòu)原理 → 環(huán)境與訓(xùn)練 → 自定義數(shù)據(jù)適配 → 避坑 → 部署優(yōu)化”這條線展開(kāi)把我自己踩過(guò)的坑和驗(yàn)證過(guò)的參數(shù)習(xí)慣都放進(jìn)去。這篇文章適合兩類讀者第一次接觸輕量化目標(biāo)檢測(cè)的新手可以直接按步驟復(fù)現(xiàn)已經(jīng)跑過(guò) YOLO 訓(xùn)練的老手可以重點(diǎn)看第五、六章那里有最容易被忽略的細(xì)節(jié)。2. 網(wǎng)絡(luò)結(jié)構(gòu)與代碼組織為什么 MobileNet 能和 YOLO 自由組合先說(shuō)結(jié)論YOLO 的檢測(cè)頭并不綁定特定骨干它對(duì)骨干網(wǎng)絡(luò)的依賴主要體現(xiàn)為“尺度數(shù)量、下采樣倍數(shù)、輸出通道”這三件事。MobileNet 系列恰好在這三件事上滿足要求所以組合是順理成章的而不是靠硬改代碼堆出來(lái)的。2.1 MobileNet 三代的核心結(jié)構(gòu)差異深度可分離卷積、倒殘差與 NASMobileNet v1 的核心貢獻(xiàn)是深度可分離卷積。常規(guī)卷積同時(shí)做空間特征提取和通道融合計(jì)算量是k×k×C_in×C_out拆開(kāi)之后先用一個(gè)k×k的深度卷積只處理每個(gè)通道內(nèi)的空間信息再用1×1卷積做跨通道融合計(jì)算量降到k×k×C_in C_in×C_out在 3×3 卷積下大約是原來(lái)的九分之一到八分之一。這個(gè)思路后來(lái)幾乎成了所有輕量骨干的標(biāo)配。MobileNet v2 在 v1 基礎(chǔ)上加了倒殘差結(jié)構(gòu)和線性瓶頸。倒殘差的順序是先1×1擴(kuò)張通道再做深度卷積最后1×1壓縮回來(lái)通道數(shù)從窄到寬再到窄。設(shè)計(jì)動(dòng)機(jī)是 ReLU 對(duì)低維特征會(huì)產(chǎn)生信息截?cái)嗨栽谄款i層輸出處用線性激活代替 ReLU。如果骨干輸出特征圖的維度已經(jīng)很低你要注意這一點(diǎn)后續(xù)接入檢測(cè)頭時(shí)盡量不要再人為壓縮通道。MobileNet v3 引入了神經(jīng)架構(gòu)搜索不再完全靠手工設(shè)計(jì)結(jié)構(gòu)。它在 v2 的基礎(chǔ)上加了輕量級(jí)注意力模塊 SE同時(shí)把網(wǎng)絡(luò)尾部幾個(gè)冗余卷積層直接刪掉激活函數(shù)換成了 h-swish。這幾個(gè)改動(dòng)疊加起來(lái)讓 v3 在相同精度下體積比 v2 更小、延遲更低。下面這張表格可以快速對(duì)比三代的核心差異版本核心結(jié)構(gòu)主要收益明顯代價(jià)v1深度可分離卷積計(jì)算量大幅降低通道間信息融合弱精度一般v2倒殘差 線性瓶頸低維特征保留更好精度提升先擴(kuò)張后壓縮內(nèi)存訪問(wèn)略增v3NAS 搜索 SE h-swish體積更小速度更快結(jié)構(gòu)碎片化部分硬件不友好選 v1 還是 v3取決于你的底線在哪里。我的習(xí)慣是CPU 上跑選 v3-large追求極致體積選 v3-small想在老設(shè)備上穩(wěn)定兼容選 v2。2.2 YOLO 檢測(cè)頭對(duì)骨干網(wǎng)絡(luò)的三個(gè)硬性要求YOLOv3 和 YOLOv4 的檢測(cè)頭不接收單個(gè)特征圖而是接收三個(gè)不同尺度的特征圖。以 416×416 輸入為例三個(gè)特征圖尺寸分別是 13×13、26×26、52×52對(duì)應(yīng)下采樣 32 倍、16 倍、8 倍。因此骨干網(wǎng)絡(luò)必須能輸出三個(gè)尺度的特征這是第一個(gè)硬性要求。第二個(gè)要求是特征圖的通道數(shù)不能太低。YOLO 檢測(cè)頭會(huì)在每個(gè)尺度上執(zhí)行一系列卷積如果骨干輸出的通道數(shù)過(guò)少信息會(huì)過(guò)早坍縮小目標(biāo)直接檢測(cè)不到。MobileNet v2 最后幾個(gè) bottleneck 的輸出通道通常在 96、192、320 這個(gè)量級(jí)接入檢測(cè)頭時(shí)通過(guò)1×1卷積做通道對(duì)齊語(yǔ)義信息不會(huì)丟失太多。第三個(gè)要求是感受野要覆蓋到足夠大的范圍。YOLO 在 13×13 這樣低分辨率的特征圖上檢測(cè)大目標(biāo)單個(gè)點(diǎn)對(duì)應(yīng)的感受野必須接近整個(gè)輸入圖像。MobileNet 雖然全程使用小卷積核但通過(guò)多次下采樣積累了足夠的感受野這一點(diǎn)實(shí)測(cè)下來(lái)是滿足的。如果骨干替換后大目標(biāo)漏檢嚴(yán)重問(wèn)題往往出在疊加大卷積核或空洞卷積的位置沒(méi)配對(duì)。2.3 配置驅(qū)動(dòng)替換骨干三個(gè)組合的代碼路徑是怎樣的這種整合項(xiàng)目的代碼組織方式通常不是“每種組合維護(hù)一套模型文件”而是由一個(gè)模型構(gòu)建函數(shù)統(tǒng)一加載配置按 key 去實(shí)例化骨干和檢測(cè)頭。我一般會(huì)在配置里區(qū)分model.backbone和model.detector兩個(gè)字段這樣切換組合時(shí)只改配置不動(dòng)模型代碼。model: backbone: mobilenetv3-large # v1 / v2 / v3-small 均可 backbone_pretrained: weights/mbv3_large.pth detector: yolov3 # yolov3 或 yolov4 num_classes: 20 input_size: 416 anchors: - [10, 13, 16, 30, 33, 23] - [30, 61, 62, 45, 59, 119] - [116, 90, 156, 198, 373, 326]上面的 anchors 列表來(lái)自公共數(shù)據(jù)集上的默認(rèn)值換自定義數(shù)據(jù)集時(shí)必須要重算這一點(diǎn)在第四章展開(kāi)。模型構(gòu)建的核心邏輯一般長(zhǎng)這樣def build_model(cfg): backbone create_backbone( cfg[model][backbone], pretrainedcfg[model][backbone_pretrained], ) detector create_detector( cfg[model][detector], num_classescfg[model][num_classes], anchorscfg[model][anchors], ) return MobileYOLO(backbone, detector) class MobileYOLO(torch.nn.Module): def __init__(self, backbone, detector): super().__init__() self.backbone backbone self.detector detector def forward(self, x): c1, c2, c3 self.backbone(x) # stride 32 / 16 / 8 return self.detector([c1, c2, c3])邏輯說(shuō)明create_backbone返回的是三個(gè)層的輸出不是單個(gè)最終特征圖。create_detector接收一個(gè)列表然后在內(nèi)部做特征融合和預(yù)測(cè)分支計(jì)算。參數(shù)說(shuō)明里最需要注意的是 anchors 的層級(jí)順序列表第一組對(duì)應(yīng) 13×13 大尺度特征圖最后一組對(duì)應(yīng) 52×52 小尺度特征圖順序?qū)懛磿?huì)出現(xiàn)小目標(biāo)檢測(cè)不到但大目標(biāo)正常這種詭異現(xiàn)象。3. 最小可復(fù)現(xiàn)訓(xùn)練流程環(huán)境配置、參數(shù)修改與首輪訓(xùn)練很多人拿到這類項(xiàng)目先急著改網(wǎng)絡(luò)結(jié)構(gòu)結(jié)果環(huán)境都沒(méi)跑通。我建議先按默認(rèn)配置完整跑一遍訓(xùn)練再動(dòng)結(jié)構(gòu)不遲。3.1 環(huán)境版本選擇PyTorch、CUDA 與依賴的匹配關(guān)系這類輕量檢測(cè)項(xiàng)目對(duì) PyTorch 版本不算挑剔但有幾個(gè)匹配關(guān)系要留意。我實(shí)測(cè)下來(lái)PyTorch 1.8 到 2.x 都能正常跑通區(qū)別主要體現(xiàn)在兩方面老版本對(duì)新顯卡的自適應(yīng)支持差一些新版本在舊顯卡上偶爾會(huì)提示算子不可用。# 建議先裝 PyTorch 主庫(kù)再裝其余依賴 pip install torch1.10.0 torchvision0.11.0 # 其余依賴一次裝齊 pip install numpy opencv-python pyyaml tqdm邏輯說(shuō)明torchvision 只在加載 ImageNet 預(yù)訓(xùn)練骨干時(shí)用到如果你打算從零訓(xùn)練檢測(cè)頭torchvision 可以不裝少一個(gè)版本扯皮的地方。參數(shù)說(shuō)明openvc-python 負(fù)責(zé)數(shù)據(jù)增強(qiáng)里的圖像讀取和縮放pyyaml 負(fù)責(zé)解析配置文件tqdm 只影響進(jìn)度條顯示裝不裝不影響訓(xùn)練結(jié)果。有一個(gè)環(huán)境相關(guān)的提醒如果你的顯卡驅(qū)動(dòng)只支持 CUDA 10.2不要硬裝 PyTorch 2.x它默認(rèn)編譯的 CUDA 版本更高運(yùn)行時(shí)會(huì)報(bào)驅(qū)動(dòng)不兼容。遇到這種情況先nvidia-smi看驅(qū)動(dòng)版本再反推 PyTorch 版本不要倒過(guò)來(lái)。3.2 三組關(guān)鍵參數(shù)骨干系數(shù)、輸入分辨率與訓(xùn)練超參訓(xùn)練前首先要確定的是輸入分辨率。416 是這類項(xiàng)目的默認(rèn)平衡點(diǎn)608 能提升小目標(biāo) mAP但推理時(shí)間幾乎翻倍320 適合追求速度的場(chǎng)景mAP 比 416 低 2 到 5 個(gè)點(diǎn)。我的建議是訓(xùn)練用 416部署到邊緣設(shè)備時(shí)再用 320 做一次測(cè)試如果精度落在可接受范圍就用 320 推理。train: input_size: 416 # 320 / 416 / 608訓(xùn)練和驗(yàn)證保持一致 batch_size: 16 # 顯存不足時(shí)優(yōu)先降到 8而不是調(diào)低分辨率 epochs: 200 lr: 0.001 lr_scheduler: cosine warmup_epochs: 3 freeze_backbone: 20 # 前 20 個(gè) epoch 凍結(jié)骨干只訓(xùn)練檢測(cè)頭參數(shù)說(shuō)明freeze_backbone非常關(guān)鍵。MobileNet 骨干如果隨機(jī)初始化需要大量數(shù)據(jù)才能學(xué)到通用特征加載 ImageNet 預(yù)訓(xùn)練權(quán)重后前 20 個(gè) epoch 凍結(jié)骨干讓檢測(cè)頭先適應(yīng)特征分布之后再解凍聯(lián)合調(diào)優(yōu)。warmup_epochs在前 3 輪把學(xué)習(xí)率從 0 線性升到目標(biāo)值能有效避免前幾個(gè) batch 的 loss 劇烈波動(dòng)。cosine調(diào)度器配合 200 個(gè) epoch收斂曲線比 step 下降更平滑。3.3 一條命令跑通訓(xùn)練從預(yù)訓(xùn)練權(quán)重到 loss 輸出依賴裝好、配置改完訓(xùn)練命令本身很簡(jiǎn)單。關(guān)鍵在于權(quán)重文件的位置和命名很多項(xiàng)目運(yùn)行的報(bào)錯(cuò)都是因?yàn)闄?quán)重路徑配置成了相對(duì)路徑而當(dāng)前工作目錄不對(duì)。python train.py \ --cfg cfg/mobilenetv3_yolov3.yaml \ --data data/custom.data \ --weights weights/mbv3_large_imagenet.pth \ --epochs 200 \ --batch-size 16邏輯說(shuō)明--cfg指向模型結(jié)構(gòu)配置--data指向數(shù)據(jù)列表文件--weights是骨干預(yù)訓(xùn)練權(quán)重。參數(shù)說(shuō)明里的data/custom.data是一個(gè)文本文件內(nèi)容通常是classes3 traindata/train.txt valdata/val.txt namesdata/custom.names其中train.txt每行是一張訓(xùn)練圖片的絕對(duì)路徑。如果這個(gè)文件里混入了不存在的路徑訓(xùn)練時(shí)會(huì)跳過(guò)對(duì)應(yīng)圖片跑完才發(fā)現(xiàn)數(shù)據(jù)量少了一半這種錯(cuò)誤很隱蔽。首輪訓(xùn)練建議只跑 30 個(gè) epoch 做驗(yàn)證看 loss 是否在穩(wěn)步下降同時(shí)確認(rèn) loss 量級(jí)在正常范圍而不是追求一輪跑完。日志里出現(xiàn)loss: 4.2這種數(shù)值是正常的代表初始預(yù)測(cè)還不夠準(zhǔn)等檢測(cè)頭訓(xùn)練充分后會(huì)降到 1 以下。4. 自定義數(shù)據(jù)集訓(xùn)練格式轉(zhuǎn)換、anchors 重算與收斂驗(yàn)證用公共數(shù)據(jù)集訓(xùn)練只是驗(yàn)證環(huán)境真正要落地必須換成自己的數(shù)據(jù)。這一章講清楚從標(biāo)注文件到訓(xùn)練驗(yàn)證的完整鏈路。4.1 把標(biāo)注數(shù)據(jù)轉(zhuǎn)成訓(xùn)練格式最不容易丟坐標(biāo)的腳本標(biāo)注工具導(dǎo)出最多的格式是 Pascal VOC 的 XML適合做數(shù)據(jù)管理但訓(xùn)練通常要的是 YOLO 格式的 TXT。轉(zhuǎn)換腳本不復(fù)雜但有三個(gè)地方容易出錯(cuò)歸一化坐標(biāo)算錯(cuò)、小目標(biāo)坐標(biāo)被整除丟精度、類別索引和名稱對(duì)不上。import os import xml.etree.ElementTree as ET from PIL import Image def voc_to_yolo(xml_path, img_dir, out_dir, class_map): tree ET.parse(xml_path) root tree.getroot() img_name root.find(filename).text img_w, img_h Image.open(os.path.join(img_dir, img_name)).size lines [] for obj in root.iter(object): cls_name obj.find(name).text box obj.find(bndbox) x1 float(box.find(xmin).text) y1 float(box.find(ymin).text) x2 float(box.find(xmax).text) y2 float(box.find(ymax).text) cx (x1 x2) / 2 / img_w cy (y1 y2) / 2 / img_h bw (x2 - x1) / img_w bh (y2 - y1) / img_h lines.append(f{class_map[cls_name]} {cx:.6f} {cy:.6f} {bw:.6f} {bh:.6f}) out_name img_name.rsplit(., 1)[0] .txt with open(os.path.join(out_dir, out_name), w) as f: f.write(\n.join(lines))邏輯說(shuō)明核心是先把左上角和右下角坐標(biāo)轉(zhuǎn)成中心點(diǎn)加寬高再除以圖片寬高做歸一化。參數(shù)說(shuō)明里最容易踩的坑是坐標(biāo)字段在部分工具里會(huì)導(dǎo)出成整數(shù)或字符串必須顯式轉(zhuǎn)成 float否則除法的結(jié)果會(huì)變成 0小目標(biāo)直接從訓(xùn)練集里消失。4.2 用 K-means 為你的數(shù)據(jù)集重算 anchors而不是硬用默認(rèn)值YOLO 的默認(rèn) anchors 是在特定數(shù)據(jù)分布上聚類出來(lái)的直接用在自定義數(shù)據(jù)集上典型結(jié)果是訓(xùn)練正常、loss 正常但小目標(biāo) mAP 極低。原因在于預(yù)置 anchors 尺寸與真實(shí)目標(biāo)尺寸的交并比太小訓(xùn)練時(shí)無(wú)法選出正樣本。解決辦法是重新聚類。import numpy as np def iou_wh(wh, cluster): min_wh np.minimum(wh, cluster[:, None, :]) inter min_wh[..., 0] * min_wh[..., 1] union wh[..., 0] * wh[..., 1] cluster[:, None, :][..., 0] * cluster[:, None, :][..., 1] - inter return inter / np.maximum(union, 1e-6) def kmeans_anchors(wh_list, k9, iters300): wh_list np.asarray(wh_list, dtypenp.float64) clusters wh_list[np.random.choice(len(wh_list), k, replaceFalse)] for _ in range(iters): iou iou_wh(wh_list, clusters) assign np.argmax(iou, axis1) new_clusters np.zeros_like(clusters) for i in range(k): selected wh_list[assign i] if len(selected) 0: new_clusters[i] selected.mean(axis0) else: new_clusters[i] clusters[i] if np.allclose(clusters, new_clusters): break clusters new_clusters return clusters[np.argsort(clusters[:, 0] * clusters[:, 1])]邏輯說(shuō)明K-means 聚類的距離度量使用 IoU 距離即d 1 - IoU(box, centroid)這樣聚類結(jié)果與檢測(cè)框的交并比直接相關(guān)。參數(shù)說(shuō)明里k9對(duì)應(yīng) YOLOv3/v4 的九組 anchors太小會(huì)導(dǎo)致正樣本選擇不平衡太大反而在訓(xùn)練時(shí)增加回歸難度。聚類完成后把結(jié)果按面積從大到小排列前三個(gè)分給 13×13 特征圖中間三個(gè)分給 26×26最后三個(gè)分給 52×52然后寫(xiě)回配置文件。4.3 訓(xùn)練中怎么判斷真的收斂了用 mAP 而不是 loss 曲線訓(xùn)練到后期會(huì)看到 loss 還在緩慢下降但 mAP 已經(jīng)不再提升。loss 下降代表回歸損失還在優(yōu)化但如果正負(fù)樣本比例失衡loss 里的分類損失被負(fù)樣本主導(dǎo)mAP 不漲就是典型的無(wú)效訓(xùn)練。所以收斂判斷必須依賴驗(yàn)證集指標(biāo)。python val.py \ --cfg cfg/mobilenetv3_yolov3.yaml \ --data data/custom.data \ --weights weights/best.pt \ --iou-thres 0.5 \ --conf-thres 0.25邏輯說(shuō)明--iou-thres 0.5對(duì)應(yīng) mAP0.5這是檢測(cè)任務(wù)里最常用的主指標(biāo)--conf-thres 0.25是置信度閾值只在評(píng)估時(shí)影響預(yù)測(cè)輸出數(shù)量不影響 mAP 計(jì)算本身。參數(shù)說(shuō)明里還有一類指標(biāo)是 mAP0.5:0.95它把 IoU 閾值從 0.5 到 0.95 按步長(zhǎng) 0.05 取平均更嚴(yán)苛也更能反映邊框回歸精度。我建議自定義數(shù)據(jù)集上至少看 mAP0.5如果這個(gè)值上不去優(yōu)先檢查 anchors 和數(shù)據(jù)格式而不是調(diào)學(xué)習(xí)率。5. 訓(xùn)練避坑清單MobileNet-YOLO 常見(jiàn)的四個(gè)翻車現(xiàn)場(chǎng)組合型項(xiàng)目因?yàn)樯婕暗慕Y(jié)構(gòu)多出問(wèn)題時(shí)很難一眼定位。下面四條是我在這些項(xiàng)目上遇到最多、也最容易被誤判的問(wèn)題每條按現(xiàn)象、原因、解決三步展開(kāi)。5.1 損失在降mAP 卻一直接近零現(xiàn)象訓(xùn)練 50 個(gè) epoch 后 loss 已經(jīng)從 10 降到 2 左右看起來(lái)模型在收斂但驗(yàn)證集 mAP 始終是 0 或者不到 0.01。原因最常見(jiàn)的是 anchors 沒(méi)重算。自定義數(shù)據(jù)集中目標(biāo)尺寸和公共數(shù)據(jù)集相差太大默認(rèn) anchors 與真實(shí)框的平均 IoU 全部低于正樣本閾值導(dǎo)致訓(xùn)練過(guò)程中幾乎沒(méi)有正樣本參與回歸。第二個(gè)常見(jiàn)原因是輸入分辨率太低比如原圖 800×800輸入設(shè)為 320小目標(biāo)在特征圖上只占不到一個(gè)像素。解決先跑一次第四章的 K-means 聚類把結(jié)果寫(xiě)進(jìn)配置并檢查順序然后把輸入分辨率提高到 416如果顯存壓力大就保持 416 但減小 batch size。這兩步做完后如果 mAP 還在零附近去檢查數(shù)據(jù)路徑是否指向了錯(cuò)誤的 txt 文件我見(jiàn)過(guò)有人訓(xùn)練集里混入大量空標(biāo)注圖片導(dǎo)致正樣本數(shù)量被稀釋。5.2 訓(xùn)練到一半直接 CUDA out of memory現(xiàn)象訓(xùn)練前面幾個(gè) epoch 正常到某個(gè) epoch 突然報(bào)顯存不足或者 batch size 從 16 調(diào)到 32 后加載數(shù)據(jù)階段就崩。原因一個(gè)常見(jiàn)原因是訓(xùn)練策略里開(kāi)啟了多尺度訓(xùn)練輸入尺寸在 320 到 640 之間隨機(jī)切換碰到大批次加高分辨率顯存峰值翻倍。另一個(gè)原因是驗(yàn)證階段把整張圖直接送進(jìn)模型沒(méi)有做尺度限制驗(yàn)證集里出現(xiàn)超長(zhǎng)圖時(shí)顯存直接打滿。解決優(yōu)先開(kāi)梯度累積把有效 batch size 保持住顯存峰值降下來(lái)。做法是在優(yōu)化器更新前累積多個(gè) batch 的梯度accumulate 4 # 等價(jià)于 batch_size * 4 optimizer.zero_grad() loss.backward() if (step 1) % accumulate 0: optimizer.step() scheduler.step()邏輯說(shuō)明梯度累積不是把 batch 拼大而是把梯度等權(quán)疊加后再更新一次權(quán)重效果上近似大 batch 訓(xùn)練。參數(shù)說(shuō)明里accumulate一般設(shè) 2 到 8太大容易導(dǎo)致 BN 統(tǒng)計(jì)值滯后模型收斂變慢。如果顯存還是不夠再把輸入分辨率從 416 降到 384這一步對(duì)輕量骨干的 mAP 損失小于減小 batch size。另外檢查一下訓(xùn)練代碼是否開(kāi)啟了混合精度torch.cuda.amp能把顯存占用再壓下一截。5.3 換 backbone 后權(quán)重加載報(bào)錯(cuò)loss 直接變 NaN現(xiàn)象配置里把骨干從 mobilenetv2 改成 mobilenetv3加載之前保存的權(quán)重時(shí)報(bào) shape mismatch去掉預(yù)訓(xùn)練權(quán)重后從零訓(xùn)練loss 前幾步正常隨后漲到 NaN。原因不同版本的骨干結(jié)構(gòu)差異導(dǎo)致權(quán)重文件不兼容這不是 bug而是預(yù)期行為。另一個(gè)更隱蔽的原因是數(shù)據(jù)預(yù)處理的歸一化參數(shù)不一致v1/v2 統(tǒng)一用 ImageNet 的均值標(biāo)準(zhǔn)差v3 有些實(shí)現(xiàn)會(huì)按論文里的均值重新調(diào)整兩者混用會(huì)讓批量歸一化層的統(tǒng)計(jì)值瞬間混亂梯度爆炸。解決換骨干后不要嘗試加載舊骨干的權(quán)重重新準(zhǔn)備對(duì)應(yīng)版本的 ImageNet 預(yù)訓(xùn)練文件。從零訓(xùn)練時(shí)把學(xué)習(xí)率降到 0.0001同時(shí)強(qiáng)烈建議把freeze_backbone從 0 改為至少 10讓檢測(cè)頭在骨干參數(shù)不動(dòng)的情況下先穩(wěn)定下來(lái)。最后對(duì)照配置文件檢查歸一化參數(shù)transforms.Normalize( mean[0.485, 0.456, 0.406], # ImageNet 標(biāo)準(zhǔn)參數(shù) std[0.229, 0.224, 0.225] )參數(shù)說(shuō)明這三個(gè)值幾乎是所有視覺(jué)骨干通用的輸入歸一化參數(shù)如果你的配置里寫(xiě)的是[0, 0, 0]和[1, 1, 1]說(shuō)明跳過(guò)歸一化直接訓(xùn)練這種情況更容易觸發(fā) NaN尤其是在加載預(yù)訓(xùn)練骨干權(quán)重時(shí)。5.4 訓(xùn)練驗(yàn)證正常單獨(dú)推理時(shí)檢測(cè)結(jié)果亂飄現(xiàn)象訓(xùn)練集 mAP 和驗(yàn)證集 mAP 都正常但把模型放到視頻里做單幀推理時(shí)檢測(cè)框位置抖動(dòng)明顯偶爾整幀漏檢CPU 上尤其嚴(yán)重。原因推理代碼沒(méi)有調(diào)用model.eval()。這個(gè)問(wèn)題的本質(zhì)是批量歸一化層還在按訓(xùn)練模式工作單張圖片推理時(shí) BN 用當(dāng)前 batch 的統(tǒng)計(jì)值而不是全局統(tǒng)計(jì)值而 batch1 的統(tǒng)計(jì)方差極大特征分布被嚴(yán)重扭曲。輕量骨干對(duì) BN 擾動(dòng)更敏感因?yàn)樗闹虚g特征通道數(shù)更少。解決推理前強(qiáng)制切換模型狀態(tài)并關(guān)閉梯度計(jì)算model.eval() # 關(guān)閉 BN 的 batch 統(tǒng)計(jì)更新 with torch.no_grad(): preds model(img)邏輯說(shuō)明model.eval()讓所有 BatchNorm 層改用訓(xùn)練時(shí)保存的全局均值和方差這是一行代碼遺漏掉就是玄學(xué)。參數(shù)說(shuō)明里還有一個(gè)細(xì)節(jié)如果推理服務(wù)是多線程的每個(gè)線程都必須拿到自己的模型副本不要多個(gè)線程共享同一個(gè) model 實(shí)例否則 eval 狀態(tài)的切換會(huì)相互干擾出現(xiàn)偶發(fā)亂飄。6. 推理優(yōu)化與部署技巧ONNX 導(dǎo)出、int8 量化與一個(gè)基準(zhǔn)測(cè)試習(xí)慣模型訓(xùn)練好后如果你只在 PyTorch 環(huán)境里驗(yàn)證那還沒(méi)有真正落地。這一章是部署前最值得花時(shí)間的部分。6.1 用 ONNX 做跨設(shè)備推理輕量模型也要跑通用格式PyTorch 模型直接部署會(huì)遇到版本綁定問(wèn)題換臺(tái)機(jī)器就可能因?yàn)榄h(huán)境版本不一致而無(wú)法加載。先導(dǎo)出 ONNX后面無(wú)論是轉(zhuǎn)其他推理框架還是做混合精度優(yōu)化都會(huì)方便很多。導(dǎo)出代如下import torch model build_model(cfg) model.load_state_dict(torch.load(weights/best.pt, map_locationcpu)) model.eval() dummy torch.randn(1, 3, 416, 416) torch.onnx.export( model, dummy, mobilenet_yolo.onnx, input_names[input], output_names[boxes, scores], dynamic_axes{input: {0: batch}, boxes: {0: batch}, scores: {0: batch}}, opset_version12, )邏輯說(shuō)明導(dǎo)出前必須model.eval()否則 BN 層會(huì)被當(dāng)作訓(xùn)練模式導(dǎo)出推理結(jié)果和你驗(yàn)證時(shí)不一致。參數(shù)說(shuō)明里dynamic_axes只把 batch 維度設(shè)成動(dòng)態(tài)保持寬高為固定 416這樣在部分專用推理引擎上能得到更好的算子優(yōu)化。導(dǎo)出后用 ONNX Runtime 做一次推理和 PyTorch 的預(yù)測(cè)結(jié)果對(duì)比如果兩類結(jié)果的 box 坐標(biāo)差異超過(guò) 1%大概率是導(dǎo)出時(shí)把后處理邏輯重復(fù)計(jì)算了或者是 eval 狀態(tài)沒(méi)設(shè)置正確。6.2 int8 量化把模型體積和速度再壓一檔MobileNet 骨干在 CPU 上的全精度推理已經(jīng)不錯(cuò)了但真正上邊緣設(shè)備int8 量化帶來(lái)的收益仍然明顯。速度提升通常在 1.5 到 3 倍之間模型體積直接縮小到四分之一。用 PyTorch 自帶的動(dòng)態(tài)量化可以快速驗(yàn)證一下可行性import torch model_quantized torch.quantization.quantize_dynamic( model, {torch.nn.Linear, torch.nn.Conv2d}, dtypetorch.qint8, )邏輯說(shuō)明動(dòng)態(tài)量化只把權(quán)重轉(zhuǎn)成 int8激活值仍然按 float 計(jì)算實(shí)現(xiàn)成本最低。參數(shù)說(shuō)明里有個(gè)關(guān)鍵點(diǎn)量化后必須重新跑一遍完整驗(yàn)證集不能只看幾條樣本。輕量骨干的精度余量本來(lái)就小量化掉 1 到 3 個(gè) mAP 點(diǎn)是平均水平如果你的任務(wù)本身對(duì)精確框位要求高建議改用量化感知訓(xùn)練在訓(xùn)練階段就模擬量化誤差最后的精度損失會(huì)明顯小很多。6.3 一個(gè)基準(zhǔn)測(cè)試習(xí)慣固定視頻段測(cè) 200 幀平均時(shí)間很多人在 GPU 上測(cè)完幀率就覺(jué)得完成了但 MobileNet-YOLO 的價(jià)值恰恰體現(xiàn)在目標(biāo)設(shè)備上兩者幀率差距可能有十倍。我的習(xí)慣是準(zhǔn)備一段固定 10 秒左右的視頻包含不同目標(biāo)尺度和光照變化每次優(yōu)化后都跑同一段視頻統(tǒng)計(jì) 200 幀的平均耗時(shí)。import time import cv2 import torch cap cv2.VideoCapture(benchmark.mp4) times [] model.eval() with torch.no_grad(): for i in range(200): ret, frame cap.read() if not ret: break img preprocess(frame).unsqueeze(0) t0 time.time() preds model(img) times.append(time.time() - t0) avg_ms sum(times) / len(times) * 1000 print(favg latency: {avg_ms:.1f} ms, fps: {1000 / avg_ms:.1f})邏輯說(shuō)明統(tǒng)計(jì)的是端到端推理耗時(shí)不包括視頻解碼和預(yù)處理因?yàn)檫@兩部分受硬件影響太大分開(kāi)測(cè)才能定位瓶頸。參數(shù)說(shuō)明里preprocess必須和訓(xùn)練時(shí)的預(yù)處理完全一致包括 resize 方式、歸一化參數(shù)、通道順序否則測(cè)出來(lái)的幀率沒(méi)有參考價(jià)值。我每次做完一個(gè)部署方案都會(huì)把這份基準(zhǔn)結(jié)果和當(dāng)時(shí)的模型配置、量化配置一起存檔。下次換方案時(shí)直接對(duì)比記錄而不是靠記憶。希望這個(gè)習(xí)慣能幫到你也歡迎你在自己的項(xiàng)目里試試這套組合輕量骨干加 YOLO 檢測(cè)頭真正跑起來(lái)之后你會(huì)對(duì)它有個(gè)全新的認(rèn)識(shí)。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产免费一区在线观看| 97免费在线视频| av网站国产主播在线| 欧美综色欧| 国产精品熟女丝袜一区二区| 四虎AV在线播放| 久久综合婷婷| 九九热三级片| 95精品在线| 亚洲97| AV天黑人| 亚洲高清内射| 在线观看免费视频国产| 亚洲清纯综合| 婷婷激情一区二区三区俺也去| 岛国爱情动作片在国产AV无码专区亚洲AV漫画 | 日韩福利电影网| 欧美最婬乱婬爆婬性视频 | 在线视频免费播放一区| 96国产精品| 1769一区| 国产精品免费久久久久久久久久| 青青草日本中文字幕| 亚洲欧美在线观看2021| 肥佬影院91| 国产日韩精品一区二区三区| 国产亚洲一黄| 欧美大香蕉专区网| a片在线播放| 中出20p| 欧美日韩理论一区| 婷婷成人五月天| 日韩av电影成人在线| 碰人碰碰人人开房人肉| 黄总AV色图| 久久欧美按摩999| 婷婷伊人网| 在线有码中文字幕| 婷婷超| 欧美 亚洲 在线| 床戏久久久av一区二区麻豆| 欧美综合自拍亚洲综合图| juliaann丝袜大战黑鬼| 色999五月色| 亚洲精品尤物yw在线影院| 欧美淫乱视频| 国产外初女出血视频| 激情黄色五月天| 亚洲情色1区| 91美女视屏| 桃花色涩综合影院| 熟女丰满人妻一区| 亚洲丨在线| 亚洲欧美经典一区二区| 99在线观看| 手机在线播放国产福利| av毛片aaaaa免费看| 国产精品视频91久久| 好属操| 欧美日韩精品久久久久东北老熟妇| 91欧美丝袜| 欧美日韩国产男人| 亚洲精品人伦一区二区| 一级性爱视频免费观看 | 久久久9999| 久久久一区二区三区麻豆| 97资源亚洲| 亚洲色欧| 亚洲影院无码在线| 亚洲偷拍自拍在线视频| 欧美后入视频| 夜夜 中文视频rt| 亚洲人精品久久久| 激情婷婷综合久久| 色噜噜人妻丝袜a∨先锋影 | 超碰中文字幕人妻草一区| 色97综合中文字幕| 天美麻豆一区二区三区| 欧美国产欧美在线观看| 亚洲精品无码久久AV| 欧美精品23| 五十路熟女在线不卡观看一区二区| 疯操AV| 13小男生GAY自慰脱裤子| 免费的黄片wwwwww| 美女大乳久久久久久久女人18| 久久欧美1卡2卡3| 天天夜夜久久| 26UUU欧美日本| 91成人精品在线播放| 九九在线精品| 96AV久久久| 日韩 成人 有码| 欧美色欧美| 91精品无码人妻系列| 蜜桃久久久久久久| 夜色91| 岛国A V在线免费看| 久久久久成人亚洲国产| 91高跟美女在线播放| 91网站18禁| 久久精品国产亚洲妲己影视| 大香樵伊人网| 欧美激情区| 国内三级自拍小视频在线观看| 天天干天天日天天射黄色大片| 欧美色91| 99爱视频| 亚州男人天堂| 亚州伊人色综台| 黄呦呦在线| 亚洲欧美另类小说| 韩国三级三级BD在线| 97视频在线看| 92一区二区| 色综合色欲色综合色综合色综合| 欧美爱国产综合、| 蜜乳性色无码专日粉嫩骚逼AV| 内射黑人| 国产高清26uuu| 日韩 成人 有码| 人妻偷拍一区二区三区| 国产精品久久久久久久久久久久久久久久久久| 一区二区三区免费视频入口| 欧美熟妇视频| 老熟乱一区二区三区四区| 日韩中文字幕在线视频观看| 91少妇通奸网站| 秋霞久久亚洲精品成人| 97国产伦理| 亚洲天天操| 亚洲天堂,男人| 欧美亚洲首页| 久久免费老司机精品| 99re在线| 美女淫穴| 爱av免费| 九一国产精品| 99色热| 加勒比综合| 欧美久久久15P| 宅男影院久久久,99| 天天综合网~91入口| 中出欧美| 亚州,欧美在线| 美日韩成人| 人人妻人人爱人人玩| 怡红院怡春院| 五月天婷精品激情| 亚洲国产美女久久久久| 久久精品夜色国产亚洲AV| 欧美中文字幕精品人妻| 啊啊啊啊啊啊啊在线| 日本123区操B视频| 亚洲色欧| 男人的天堂色偷偷青青草视频婷婷网| 日韩Va亚洲va欧美Ⅴa久久| 伊人9| 国产成人亚洲精品自产在线| 91人精品妻入口| 97亚洲色图| 色欲人妻一区二区在线| 91粉嫩萝控精品福利网站_精品影音先锋国| 草久在线| 午夜无码熟妇丰满人妻| 久久少妇| 色姑娘综合网| 操逼日韩无码| 日韩成年人性爱视频| 91美腿丝袜在线观看| 欧美一区二区福利在线| 欧美在线|亚洲| 97久久精品亚洲| 免费精品人妻一区二区三| 欧美热图99| 日本道日本道中文字幕日本道最新日本道在线观看| 欧美日韩999| 国产精品原创巨作?v网站| 国产精品夜夜夜| 亚洲精品一二三四区| 牛黄色久午久| 强奸乱伦大香蕉| 青青草中文字幕| 国产自产22区| 亚洲综合贴图91| 久久久com| 亚洲精品视频在线播放| 日韩在线一区高清在线| 九九无码| 欧美综合亚洲综合| 久久99国产精品| 亚春色色| 97玖玖人妻| 人妻另类 专区 欧美 制服| 色香综合天天影视综合 | 精品999999| 粉嫩久久久极品| 欲射影视| 欧美暴力猛交| 四虎免费视频| 啊啊啊啊好大好硬啊啊啊啊啊| 亚洲 欧美都市激情| 中文字幕国产在线天堂| 久久久青青草| 老熟女网站| 性一级黄色录像片网站导航| 91天天综合日韩欧美| 老熟妇一区二区三区| 久久久一区二区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 久久久久亚洲一区女同性恋中文字幕| 大香蕉综合久久| 神马午夜久久久| 性老妇一区二区三区| 久久久久一本一区二区青青蜜月| 久操操| 91偷拍欧美亚洲| 嗯阿好爽好紧| 亚洲激情色片| 久久久久婷婷精品av电影| 91色s| 超碰色大香蕉| 国产成人拍国产亚洲精品| 天天影视网色欲色香| 国产精品视频在线播放 | 天天日美女的B| 中精品一区二区三区| 综合97久久| 97综合久第一页| 91n处女在线观看| 天堂性色| 欧美激情内射| 最新日本中文字幕| 6080YYY午夜理论片在线观看| 欧美精品日韩久久久九| 免费看久久久性性| 嗯嗯嗯,草死我| 日韩欧美资源| 欧美 色 亚洲| 最新日日夜夜天天干干| wwwcaobibi| 99只有精品| 玖玖爱视频网站| 骚熟女AV网| 精品视频在线观看| 温婉少妇玩3p| 日韩精品三区四区| 花花AV导航| 美日韩男女操屄视频| 操逼操网| 60秒免费小视频| 久艹伊人精品综合在线| 九九九不卡| 亚洲乱码精品一区二区| 国产激情在线观看| 日日骚 av| 992大香蕉| 强奸乱伦亚洲第一页| 激情第四色| 天天日天天舔东京热| 最新制服中文第一页| ,成人免费啪啪视频| 九月丁香婷婷| 加勒比久久av| 秋霞成人一级在线观看| 超碰激情808| 欧美伊人电影| 欧美日韩国产高清在线一二三区| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 97综合久久| 一区二区三区四区免费视频| 神马久久网| 日本不卡二区| 99热精品在线| 欧美色乱| 日韩啪啪啪啪啪| 久久久性少妇| 人人摸人人摸人人干| 啊啊啊啊啊在线观看网址 | 熟女字幕| 日本免费一区二区不卡 | 鸥美插入视频| 成人自拍三级在线观看| 五月婷婷hd| 啊啊啊爽爽| 色欧美天天| 日韩传媒在线| 99久久无码| 91大神电影天堂| 综合夜夜| 久久女人视频| 18禁看网站一区| 麻豆60秒| 亚洲国产成人精品久久久国产成人一区二区 | 一本一道vs波多野结衣| 精品中文日韩字幕视频| 99久久婷婷丁香| 日韩午夜国产| 免费作爱一级视频| 天天性射网| 日本免费亚洲欧美| av网站免费看| 欧美激情欧美精品| 免费在线黄片视频| 97高清啪啪| 国产精品精品系列在线观看| 久久25| 国产精品免费1区2区视频| 天天综合网久久ww| 亚洲日韩国产欧美综合v| 久久久久久中文| 日本在线播放不卡一区| 日本一线产区和二线产区伦理片| 激情综合色| 亚洲国产美女久久久久| 久久久久久中文| 五月天社区| 免费a v| 91草草草| www.91久久| 亚洲熟妇一,二,三期| 操B久久| 18禁的网站在线| 人妻激情视频| 中文字幕丝袜人妻| 激情色色| 人人人人插| 97这里有精品| 国产熟女二区| www.久久| 欧美成熟性爱精品| 东京热,男人的天堂| 内射日韩大臀美女| 亚洲一区二区三区欧美日韩| 97欧美视频| 中文字幕综合人妻| 日韩人妻精品久久久久| 中文字幕精品日韩中文字幕| 欧美性性性| 亚洲少妇在线影音| 97视频在线免费看| 久久久精品成人国产| 日本一道在线播放高清| 欧美激情 一区| 99999精品成人| 狠狠色综合网| 超碰成人公开| 在线视频 亚洲精品| 大但人体久久久久| 亚州综合图片| 无码人妻丰满熟妇奶水区毛片| 欧美日韩香蕉| 亚洲小电影免费涩涩成人在线高清| 亚洲欧洲综合| 国产九九九九九九| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 亚洲性天堂| 男人的天堂无码| 国产久久日韩网站导航| 亚洲有码 欧美精品| 国产无码一二三区| 中文字幕五月婷婷免费| 亚洲 无码 偷拍| 97神马久久| 精品人妻视频一区二区在线播放 | 国产精品久久久久久亚洲色欲| 久久一二三四五六七八九区| 成人熟女区| 国产不卡片| 韩日精品四区| 快点操死我| 国模限制级电影| 成人短视频在线观看| 免费观看的黄色的网站| 欧美综合娱乐久久| WWW啪啪的com| 久久男人精品| 一区在线观看中文字幕| 欧美黄片视频在线观看免费| 91在线精品| 亚洲国产成人精品无码专区| 一级特级aaaa毛片免费观看 | 中文字幕诱惑制服人妻丝袜美丝袜美| 久久精品一区| 丰满精品人妻少妇久久字幕| 操逼精品视频| 欧美性生活内射| 好吊色一区| 99操| 九九九久| 97超碰欧美精品| 亚洲黄色| 欧美日韩大香蕉| 久草精品国产99| 亚欧毛片基地国产毛片基地| 7777奇米影视久久| 中国国产精品一区视频| 熟女人妇一区二区三区| 国产日韩欧美三级片| 久综合网| 一牛影视久久久一区二区三区| 青青草九九九九九| 欧美最大综合网| 日韩无码服务区| 人妻天堂网| 久久只有精品| 亚洲欧美一区二区三区一猛片| 欧美特大黄一级片片免费| 国产67194| 欧美精品另类人妖xxxx| 99久在线精品99re8a| 久久精品91| 夜夜欢天天干| 波多野结衣一级视频| 综合欧美日韩在线观看| 欧美有码激情视频一区二区三区| 欧美白嫩女HD| 噜噜噜噜天天狠狠| 大香蕉免费3| 精品一二三区久久AAA片| 久久久无码国精品无码三区三区| 妇人噜噜| 国产97在线 | 亚洲| 九九热久久99精品re| 日本综合久久| 久久日本熟女精品一区| 男人天堂资源| 欧美一级黄片免费播放| 91黑丝美女| 91天堂| 牛牛aV| 男人的天堂激情| 亚州国产成人精品女人久久| 日本操逼aaaaa| 秋霞一级视频在线观看免费| av操操不卡| 日日爽熟女| 欧美黄色片在线播放| 婷婷午夜| 黄久久| 在线岛| 99久久无色码| 变态综合色| 少妇高潮对白在线观看| 久久av网| 蜜臀无码视频在线观看| 日日夜夜干| 亚洲熟女少妇免费视频| 国产精品久久99日日| 日韩国产品视频中文字| 中文字幕第2页| 精品国产久热在线观看| 久久国产精品熟女人妻| 国产无码精品久久久久久| 九九色热| 久久成人东京热人妻| 亚洲欧美日韩免费电影| 97超碰无码网| 国产又色又粗又黄又爽| 97人肏| 女性91网站| 色色色色综合网| 粉嫩久久久极品| 色天使亚洲综合在线观看| av操操不卡| 97无码视频在线播放| 六六久久日韩不卡| 国产熟女无套内射| 最新欧洲欧美日本激情网站| 日本媚薬中文字幕在线| 欧美拳交在线播放| 白丝av| 亭亭丁香激情| 日韩免费福利在线观看| 丝袜综合| 国产精品久久99日日| 97在线青| 亚洲精品aa久久伊人| 欧美日韩97在线| 色情综合| 国产精品久久久| 超碰97色色| 天天干天天燥| 天天草AV| 五月婷婷综合网| 日日超碰亚洲| 97色欧州| 日本精品高清一二区一本到| 中国91AV| 欧美精品第四五页中文字幕在线观看| 国产强奸乱伦xd| 欧美中字不卡| 欧美精品成人亚洲| 国产美女裸体秘 永久无遮挡| 日韩人妻无码精品系列| 淫乱图区| 亚欧高清在线| 92久久| 99 国产丝袜在线| 国产 v乱码一区二| 日韩在线国产字幕| 午夜综合在线| 午夜人妻精品综合在线| 性饥渴少妇av无码毛片| 色噜噜狠狠色综无码久久| 开心婷婷五月| 亚瑟国产精品久久无码| 神马麻豆福利院| 亚州综合电影| 亚洲激情av| 欧美18 在线观看| 久久网亚洲| 色av中文字| 亚洲人妻中文高清| 97香蕉网| 四虎884| 第45页一区二区| 一起草精品人妻| 中日韩免费看男女操逼大全| 欧美,亚洲,日韩,v,天堂,手机在线观看| 丁香六月综合激情| 91高清无码下载| 午夜精品久久久| 国产乱不卡| 欧美熟女妇同| 无码欧美有限公司| 伊人99热| 少妇滛荡视频| 伊人久久综合精品欧美| 五月天我淫我色av| 97国产精品视频| 涩亚洲欧洲| 久久亚洲熟妇在线视频| 国产精品久久9| 91丨九色丨大屁股| 天天日B夜夜干B时时操B| 国产成人 综合亚洲 天堂| 欧美激情精品| 国产久久天堂资源| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 伊人网青青| 97综合网| 日本色色色| 亚洲成人日韩小说| 26uuu性物| 内射夫妻三片| 搡老熟女免费视频| 欧美亚洲中文| 欧美天天| TS人妖另类精品视频系列| 91欧| 极品肉射| 性天堂| 色悠久| 97国产超碰| 狠狠爱大香蕉| 屁股久久久久久久| 最近2018中文字幕在线高清第一页| 俞拍久久国应视频| 综合色一区三区二区| 日韩91网站| 一区二区高清视频| 中文字幕丰满人妻日本| 翔田千里A片一区二区| 欧美色偷偷| WWW.操逼.COM| 国产精品永久免费10000| 狠狠久久手机视频精品| A片A5445444| 影视综合无码少妇| 黑丝自慰喷水网站| 色区久久| 欧美精品另类人妖xxxx| 丝袜综合| 亚洲欧美视| 欧美色综合网| 搡老熟女免费视频| 日韩乱伦影音先锋| 99久久99九九99九九九| 色av中文字| 99re只有精品| 青青草国产一区二区三区| 久久成人东京热人妻| 亚洲精品99999| 欧美色www亚洲国产阿娇要播| 成人五月天色网| 亚洲一区二区在线观看91| 亚洲黑丝在线| 青青草吊丝| 亚洲日韩少妇一道本视频| 97天天插| 综合夜夜| 69综合网| 欧美亚州色的图| 久久久偷拍| 老司机深夜18禁污污网站| 丰满高潮18xxxx| 99热97| 少妇第一页| 欧美日韩97| 精品偷拍13p欧美dodk视频| 色色五月天婷婷| 99热aaa| 青青草原伊人网| 蜜乳视频网站| 香蕉在线一区二区三区| 国产精品天干天干综合网麻豆| 97精品人妻一二三四| 午夜性生活av免费在线看| 69精品久久久久中文字幕| 久热色情精品| 舔人妻中文免费视频| 国产中文字幕在线点播| 噜噜噜狠狠色综合| 大香蕉色欲AV| 精品美女久久久久| 五月丁香婷婷综合| 91美女视频电影| 国产91av在线播放| 日韩天美| 色九九久九九| 亚洲国产一级精品毛一级精品看免费视频| 欧美精品另类人妖xxxx| 人人操人人操人妻人| 国产成人无码啪| 亚洲熟妇丝袜在线观看| 精品国产AV一区天美传媒| 成人免费福利在线观看| 日本欧美色| 成人午夜高潮av猛片| 992这里有精品| 青青草大香蕉视频| 中文字幕av乱伦| 东北操逼| 国产白嫩漂亮KTV在线| 超碰在线人妻不卡| 在线亚洲 欧美 日本专区| 色精品极品| 97综合在线| 亚洲 日韩 欧美 国产综合体| 天天影视综合色| 爱媛媛久久国产福利| 97超碰人操| 日韩欧美中文日韩欧美色| 久草在| www.91逼逼.com| 色眯眯av| 婷婷中文网| 99久在线精品99re8| 欧美自拍偷拍免费观看| 婷婷久久久精品| 亚洲操逼网| 四虎影视欧美| 91黑丝少妇| 秋霞操逼片| 亚av顶级裸体一区二区三区四区五区| 精品欧美А∨无码黑人大荫蒂| 精品视频一区二区| 熟妇一区二区三区| 中文字幕一区二区免费在线| 欧美色自拍| 自拍大香蕉乱插| 97操碰| 亚洲精品久| www熟女乱伦com| 日影院久久婷婷夜夜网| 日本日皮视频逼| 天天干18禁| 高清不卡国产| 精品亚洲黄色片 国产精品导航一区二区 | 中美日韩毛片| 一本一道波多野毛片中文在线| 嫩草黄页| 屌逼麻豆| 精品无码久久久久久国产浪潮| 美日韩一二三区| www超碰| 国产精品一区二区手机看片| 99re在线视频国产| 六月婷婷综合| 成人性爱AV在线免费观看| 操老熟女AV| 亚洲熟妇极品| 国产成人午夜视频网址| 九九九久久久W精品| 久久亚洲天天做| 这里都是精品在线观看| 乱伦日本中文自拍| 久久久九九| 亭亭丁香激情| 操婷婷逼| 免费的黄片有限公司| 久久久久久久久久久精| 欧美有码亚洲中文字幕一区二区三区四区| 手机在线中文字幕国产| juliaann欧美丝袜办公室| 性爱欧美五月| 黑操B| 人人操人人操草草| 国产午夜精品理论片a大结局| 97视频在线视频| 啊啊啊com| 91精品久久综合熟女| 26uuu国产亚洲综合| 亚洲图片小说欧洲| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊| 丁香五月激情网| 日韩成人精品视频自拍| 囯产精品久久久久久久久久梁医生 | 中文字幕女同在线| 蜜臀精品1区2区| AV综合中文字幕干| 综合在线导航一区| 日产欧美电影一区二区三区| 久久黄人人爽视频| 欧美小说区视频区| 蜜桃狠狠色伊人亚洲综合| 亚州综合电影| 啊啊啊啊啊操我视频| 1024香蕉视频| 国产一级片| 免费毛片在线播放| 午夜寂寞欧美| 久久九九视频九九视频| 亚洲欧美精品国产一区二区| 裸体美女免费看网站青草| 亚洲最大成人a毛毛片| 一区二区三区免费视频入口| 青草成人免费视频一COm| 久久黄黄黄| 中文字幕一二三av| 欧美色爱综合| 欧美最婬乱婬爆婬牲视频| 加勒比伊人综合| 国产成人主播| 欧美后入视频| 黑人精品久久97| 福利在线视频一区二区| 欧美青青视频| 青青三级视频| 懂色av中文字幕一区二区三区天美| 99国产精品久久久在线播放| 久久久久久久久久久久黄色| 歐美性天天| 亚洲精品一区二区免费在线观看| 国产中文福利| 日韩欧美资源| 好一吊区二区| 天天狂操夜夜狂日| 超碰在线一区二区| 午夜啪| 国内精品a| 约操熟妇| 婷婷久久五月| 久久久久久中文字幕中文字幕最新| 欧美大码在线视频| 75大香蕉| 久9爱经典视频| 国内一级精品| 9久在线视频只有精品| 国产亚洲性生活视频播放| 一类无码操逼视频| 美女自卫慰黄网站免费| 日日狠狠久久偷偷色综合免费| 久久久影院| 欧美伦乱爱| 97资源站国产精品| 国产捆绑一区| 天天搞在线综合网| 亚洲超碰在线| 欧美老妇综合网| 日韩精品一区,二区 九九...老司机| 天天在线91| 国产综合久久久麻桃个| 激情 欧美 亚洲 小说| 蜜乳性色无码专日粉嫩骚逼AV| 五月丁香激情综合| 天天天乱色综合全| 91精品国产91久久久久久久久久久久| 国产福利合集| 影音先锋乱| 中文字幕在线观看第二页| 欧亚揄拍偷拍精品视频 | 中文激情网| 97国伦国色| 狠狠97| 亚洲一区中文精品| 色色色色电影网| 四季AV综合网址| 黄页网站成人免费| 日韩三A大片在线观看 | 超碰吊日色| 天色综合网| 99国产精品自在自在| 午夜性生活av免费在线看| 亚洲 欧美 手机在线观看| 国内精品不卡无毒99999| 国产AV天美传媒一区二区三区| 放黄片放3级黄片没穿衣服| 亚洲最大的综合性av| 欧美精品在线观看| 国语精品对白| 亚洲最大AV网| juliaann丝袜大战黑鬼| 久久久无码视频| 国产吞精a级片激情电影| 91天堂视频| 九九九九热| 日韩国产中文字幕| 大香蕉之青青草原| 日本性爱视频一级| 欧美图片偷拍| 春色91| 国产精品熟女乱伦| 嗯嗯啊啊的视频| 91影库| 超碰在线人妻不卡| 国产自制av蜜乳| 欧美午夜精品久久久久久3D| 91天天综合在线观看| 欧美另类精品xxxx| 91夜夜蜜桃臀1区2区3区| 亚洲欧美综合| 日韩三级久久久| 伊人91| 亚洲黑丝在线| 免费视频一二三区| 日韩熟妇二区| 91精品老女人| 丰满翘臀美女影院视频| 亚欧成人一级片在线播放| 九九热在线精品视频| 国产嫩草精品A88AV| 日本午夜久久电影| 四虎av在线| 熟女精品一区二区三区| 亚洲男人在线观看天堂| 91大学精品激情戏| 97极品无码| 五月天黄色av| 日韩性爱小视频| 97色色色综合网站| 亚洲国产91精品一区二区久久| 久久超碰、| 特级特黄一级毛片免费| 色老牛| 欧美一区二区三区日韩| 97超碰精品图片| 人妻天天夜夜爽一区二区| 亚洲综合影院| 青青草日本中文字幕| 一类无码操逼视频| 青青草国产一区二区三区| 极品极品色影院| 综合网 欧美| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 亚洲国产无码精品首页久久久| 色噜噜人妻av中文字幕| 伊人色综合网| 国产二区三区免费视频| 天天综合网AV91| 九九无码视频| 97香蕉网| 欧美大战久久久伊人| 中国探花熟女| 欧美大片91| 欧美aⅴ99久久黑人专区| 国产粉嫩出水在线播放| 91亚洲欧洲| 福利天堂| 色色色综合| 岛国片在线视频网站| 啊啊啊啊啊啊啊在线| 九月丁香婷婷| 影视综合无码少妇| 国产白丝网站| 91撸色网 玖玖网 欧美| 91 亚洲 欧美 日韩 国产 综合| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 色激情五月天| 欧美日韩另类在线播放| 91痴汉| 国产黄色动态精品| 亚洲国产成人高清在线| 视频国产成人精品日本亚洲18| 蜜臀一二三| 97干日韩| 国产原创剧情在线丝袜| 久久草草亚洲蜜桃臀| 亚洲素人综合| 国产午夜福利视频在线| 婷婷五月天成人网| www.91理论| 免费精品无码一级毛片牛牛影视 | 97资源亚洲| 国产精品一区二区后入| 熟女啪啪视频| 熟女视频久久| 国产精品干干干| 麻豆久久精品亚洲精品88| 97爱碰| 久久嫩草国产成人一区| 六月丁香五月婷婷| 一区二区影院| 精品久久无码午夜福利| 久久超碰com| 激情婷婷丁香网| 清清草影| 久久仑合| 日韩中文字幕熟妇人妻 | 亚洲久久久久| 97久久超碰国产精品| 制服中出中文人人精品| 春色校园综合网| 91狠| 丁香五月激情网| 99re国产中文字幕| 麻豆一区二区三区精品| 嗯阿好爽好紧| 富二代亚洲精品99 | 26UUU欧美日本| 国产精品片| 极品肉射| 日本色日夜干| 亚洲一区二区AV| 超碰碰97资源站| 国产91丝袜 在线播放| 97在线日韩中文字幕| 欧洲精品一二三在线| 操亚州| 精品性爱久久视频| 91成人社区| 国产第二页| 天天舔天天日天天射| 大香蕉欧美国产日韩高潮| 好吊色一区| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV | laoshunv91| 精品999日本| 婷婷美人网| 国产精彩女在线观看视频| 亚洲色丰满少妇高潮| 中文字幕AV片| 男人天堂免费| 欧美少妇高潮视频| 天美麻豆一区二区三区| 人人妻人人澡人人爽久久av| 人妻一区二区三区熟女| 亚州综合网| 20cm女自慰在线日韩欧美| 91在线精品一区二区三区| 成人av福利在线观看| 国产精品久久久久无码A√| 亚洲国产一区二区入口| 亚洲无码久久久久久久| 大香蕉黄色一区| 九九九九久久久| 香一区二区三区| 欧美精品久久96人妻无码| 午夜福利区| 加勒比久久av| 人妻精品一区二区| 在线αⅴ| 黄色av片三级三级三级免费看| 人人操人人狠狠操| 黄页18禁| 在线亚洲丝袜视频网站| 日韩青久久| 97亚洲精品| 2019天天干天天操| 97人人草| 操学生天天| 九九九国产精品| 热99这里有精品综合久久 | Av手机版天堂网| 国产在线视视频有精品| 色综合美国| 国产精品久久久九九九| 91精品导航| 亚洲欧洲日韩天堂av| 91丨九色丨43老版熟女| 日韩一区二区熟女| 91麻豆天美国产欧美高潮| 操国产逼| 亚洲五月婷婷| 欧美日韩婷婷中文| 综合亚洲欧美| 亚洲字幕一区二区| 亚洲午夜免费狠狠干| 新视频sss国产| 97天天日| 99久久精品国产高潮| 99啪| 国产日本顶级一区二区三区| 亚洲欧美精品国产一区二区| 操碰97| 亚洲国产青青| 免费岛国一级片| 欧美精品日韩一区二区| 伊人一区二区三区| 天天日夜干| 国产吞精a级片激情电影| 亚洲综合有玛| 亚洲自拍97| 天天干夜夜操网| 久久一二三四不卡 | 99综合免费视频| 狠狠躁天天躁日日躁97| 日本中文熟女视频| 丁香色色网| 丝袜狂射91| 国产精品盗摄 偷窥盗摄| 99精品在线| www.人人摸在线视频| 神马久久久久久伦理片| 蜜桃久久久久久久| 激情小说亚洲色图| 激情五月激情综合网| 久久天堂网| 人妻 丝袜美腿 中文字幕| 殴美日韩m| 无码不卡亚洲成?人片| 五月天综合网| 2017,超碰| 久操热线| 欧美性Fer办公室秘书| 性影在线视频| 综合欧美日韩在线| 99久久久无码精品国产人| 久久熟妇五十路一区| 亚洲无线观看久久| 青青草原狼av| 尤物视频视频官网| 高凊专区人人操| 丰满熟女一区二区三区在线播放| 久久女人一区二区三区| JuliaAnnXXX888| 99色综合| 天天拍夜夜| 东京太热久久久| 麻豆三极片| 欧美性,亚州色| 国产丝袜美女在线一区| 91国产大片| 亚洲av综合色区图片亚洲| 青女在线| 国产精品久久99日日| 九九九热精品| 日韩女模中文造逼| 久久婷婷一区| 五月天婷婷欧美三区| 五月天亚洲色图| 九九九久千久久激情蜜桃在线看 | 人人操人人操草草| 激情婷婷丁香网| 人人操AV| 丰满人妻被猛烈进入中| 久久精品国产99国产精品亚洲| 91精品女厕偷拍视频| 大香蕉色欲AV| 丁香五月婷婷啪啪| 久久大黄片| 亚州日韩97| 婷婷丁香五月激情啪啪| 9久久久久| 日韩三级在线观看mp4| 日韩欧美一级特黄大片| 国产suv一区二区三区6| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 亚州成人a∨| 免费观看国产不卡av| 亚洲色棕合| 啊啊啊啊啊啊啊国| 无码操逼网| 91精品人妻一区二区三区蜜臀| 有码人妻系列| 在线强奷到舒服的无码视频| 欧洲综合色| 超碰人妻中文在线| 91在线无码精品秘 软件| 亚洲乱妇p22| 日韩精品怡红院| 99精品无码| 国产毛片久久久久久久| 男人天堂毛片| 少妇一区二区三区在线观看| 岛园激情| 亚洲精品自拍| 色与欲影视天天看综合网| 国产av青草| 亚洲激情av| 国产精品一区av在线| 大香蕉日韩| 精品成人女人久久| 小草精彩毛片| 国产麻豆一级精品视频| 国产区日韩区在线观看| 超碰97综合网| 国产美女激情| 久久久久久久极品香蕉视频| 亚洲人妻中文高清| 91精品无码久久久久久久| 国产精品对白自产拍| 99精品网站| 欧美极品女人的天堂| 成人免费福利网站国产| 综合亚洲欧美精品日韩?v| 亚洲国产97在线精品一区| 嗯嗯啊好大| 日本三级人妻a人妻一在线| 久久曰曰| 在线精品福利免费播放| 精品视频在线观看精品| 综合熟妇一区二区三区| 国产精品高潮久久AV| 精品91摸| 屌逼麻豆| 亚洲成人网站在线观看| 啪一啪免费视频| 人人摸.人人色| 国产强奸乱伦无码视频| juliaann欧美丝袜办公室| 久久女女| 超碰日韩美妻| 天堂资源站| 日韩在线97| 少妇500双飞99| 宅男91视频在线播放| 亚洲欧洲偷拍一区| 五月丁香狠狠爱| 国产综合操逼高清| 日本视频在线观看污污污| 久久东京伊人一本到鬼色| 久久精品人人做人人看| 国语对白露脸XXXXXX| 高清国产精品福利网站| 97精品视频| 蜜臀在线视频| 青娱乐休闲视频在线观看| 亚洲激情视频| 国产熟妇 码视频户外直播| 欧成人精品一区二区三区| 男人天堂毛片| 欧美96在线|欧| 99999re| 在线免费观看高清无码视频| 九九九精品| 婷婷av在线中文字幕| 婷婷干黄色| 中文字幕一区二区日韩网| 天天插夜夜操| 国产精品呦一区二区三区| 无码操逼网| 久久这里只精品99re66图| 国产成人网址| AV天堂丝袜| 大香蕉伊在线久草麻豆天堂故事| 久久99手机免费视频| 超碰地址97| 校园春色美腿丝袜 |