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

ARTICLE DETAIL

資訊詳情

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

從零手寫YOLO檢測頭:網(wǎng)格預(yù)測、標(biāo)簽分配與損失收斂實戰(zhàn)

從零手寫YOLO檢測頭:網(wǎng)格預(yù)測、標(biāo)簽分配與損失收斂實戰(zhàn) 1. 為什么我選擇從零手寫一遍YOLO檢測頭先說結(jié)論如果你已經(jīng)能熟練調(diào)用現(xiàn)成的檢測框架跑通推理卻說不清一張 640×640 的圖進(jìn)去之后為什么輸出是 8400 個候選框、為什么正樣本只有寥寥幾個、為什么 loss 里有一項幾乎不下降——那這篇內(nèi)容就是寫給你的。我打算把一次完整的實驗過程攤開講用 PyTorch 把一個 YOLO 風(fēng)格的單階段目標(biāo)檢測模型從數(shù)據(jù)管道、骨干網(wǎng)絡(luò)、檢測頭、標(biāo)簽分配、損失函數(shù)一路搭到訓(xùn)練收斂和推理可視化。這里說的“YOLO”不是指某個具體版本的官方實現(xiàn)而是指單階段、Anchor-based、輸出為網(wǎng)格化預(yù)測張量這一整類檢測范式的核心骨架。選它做實驗的理由很實在相比兩階段方法它沒有區(qū)域建議網(wǎng)絡(luò)那一層整條鏈路是端到端可微的任何一個環(huán)節(jié)寫錯都會立刻體現(xiàn)在 loss 曲線上調(diào)試反饋非常直接相比純分類任務(wù)它又多出了坐標(biāo)回歸、正負(fù)樣本分配、NMS 后處理這幾塊真正的“工程難點(diǎn)”正好是檢驗自己是否真的理解檢測模型的分水嶺。適合誰看有 PyTorch 基礎(chǔ)、寫過 Dataset 和訓(xùn)練循環(huán)、能看懂卷積和矩陣運(yùn)算但對“檢測模型到底怎么訓(xùn)起來”還停留在調(diào)包階段的同學(xué)。全文的代碼都是可運(yùn)行的片段級實現(xiàn)我刻意避開了過度封裝參數(shù)含義全部寫進(jìn)注釋你可以直接抄進(jìn)自己的實驗倉庫。至于我為什么堅持手寫而不是直接改開源倉庫——因為改別人的代碼時你永遠(yuǎn)在猜作者為什么這么寫自己寫一遍錯一次就永遠(yuǎn)記住了。2. 先想清楚輸入輸出約定再動手寫第一行代碼動手搭網(wǎng)絡(luò)之前我強(qiáng)制自己先在紙上寫清楚三件事輸入張量的形狀、輸出張量的形狀、以及兩者之間的語義映射。這一步偷懶后面 80% 的 bug 都源于此。很多人一上來就抄 backbone結(jié)果訓(xùn)了兩天發(fā)現(xiàn) loss 不降回頭一查是 anchor 順序和輸出通道的排布對不上。這種錯誤不會報異常只會安靜地浪費(fèi)你的時間。2.1 網(wǎng)格化預(yù)測張量的形狀為什么是 S×S×(B×(5C))先定義清楚符號。把輸入圖像統(tǒng)一縮放到 640×640網(wǎng)絡(luò)以 32 倍下采樣輸出特征圖于是得到 20×20 的網(wǎng)格。每個網(wǎng)格單元負(fù)責(zé)預(yù)測 B 個邊界框每個框帶 5 個量中心點(diǎn)相對網(wǎng)格的偏移 x、y寬高 w、h以及一個 objectness 置信度。再加 C 個類別的條件概率通道數(shù)就是 B×(5C)。以單尺度、B3、C80 的配置為例輸出張量形狀是 1×20×20×3×85。但我更推薦把三個尺度拼起來看stride 8 得到 80×80stride 16 得到 40×40stride 32 得到 20×20把它們?nèi)空蛊讲淳W(wǎng)格順序拼接總數(shù)是 80×80×3 40×40×3 20×20×3 19200 4800 1200 25200 個預(yù)測。這個數(shù)字很重要它就是你后面標(biāo)簽分配時要處理的候選總量也是你評估顯存占用的依據(jù)。補(bǔ)充說明一個容易混淆的點(diǎn)不同實現(xiàn)里“(5C)”和“(C5)”的排布順序不一樣有的是[x, y, w, h, obj, cls...]有的是[obj, cls..., x, y, w, h]。這純粹是工程約定但一旦定了就必須全鏈路統(tǒng)一從標(biāo)簽編碼、損失計算到解碼推理任何一處反了都會導(dǎo)致模型學(xué)到一個完全錯位的映射。我的習(xí)慣是把它寫成常量并只在一處引用# 每個 anchor 的預(yù)測向量長度4 個坐標(biāo) 1 個 objectness C 個類別 NUM_CLASSES 80 NOOBJ 4 1 NUM_CLASSES # 85 # 通道索引約定全局唯一定義禁止在別處硬編碼數(shù)字 IDX_XYWH slice(0, 4) IDX_OBJ 4 IDX_CLS slice(5, 5 NUM_CLASSES)這套 slice 常量看起來啰嗦但我在排查一次“類別分?jǐn)?shù)全部趨同”的問題時就是靠全局替換 slice 才確認(rèn)不是索引錯位導(dǎo)致的省了至少半天。2.2 坐標(biāo)為什么要預(yù)測偏移量而不是絕對值這是我在第一次實驗里踩得最深的坑。如果直接讓網(wǎng)絡(luò)回歸框中心的絕對像素坐標(biāo)訓(xùn)到中期 loss 會卡在一個較高的平臺反復(fù)震蕩。原因是絕對坐標(biāo)的取值范圍是 0~640而卷積輸出的數(shù)值分布天然集中在較小的區(qū)間網(wǎng)絡(luò)為了輸出大數(shù)值必須把權(quán)重推到很大的量級梯度尺度失衡。正解是讓網(wǎng)絡(luò)只預(yù)測相對網(wǎng)格左上角的偏移量并用 sigmoid 壓到 0~1解碼時再加回網(wǎng)格坐標(biāo)寬高則預(yù)測相對于 anchor 尺度的對數(shù)縮放比。這樣每個輸出單元的回歸目標(biāo)都落在 0~1 或接近 0 的小范圍內(nèi)數(shù)值穩(wěn)定得多。解碼公式我固定成下面這樣寫在decode函數(shù)里訓(xùn)練和推理共用同一份def decode(pred, anchors, stride, grid_size): # pred: [B, A, H, W, 5C]A 為該尺度 anchor 數(shù) device pred.device gy, gx torch.meshgrid( torch.arange(grid_size, devicedevice), torch.arange(grid_size, devicedevice), indexingij) grid torch.stack((gx, gy), dim-1).float() # [H, W, 2] xy (torch.sigmoid(pred[..., 0:2]) grid) * stride # 解碼到輸入尺度 wh torch.exp(pred[..., 2:4]) * anchors.view(1, -1, 1, 1, 2) obj torch.sigmoid(pred[..., 4:5]) cls torch.sigmoid(pred[..., 5:]) return torch.cat([xy, wh, obj, cls], dim-1)注意meshgrid的indexing參數(shù)必須顯式寫成ij否則在較新版本的 PyTorch 里會產(chǎn)生警告而且在寬高不相等的特征圖上會靜默給出轉(zhuǎn)置后的網(wǎng)格坐標(biāo)全錯卻不會報錯。我因為這個排查過一整晚。寬高用exp而不是 sigmoid是因為尺度縮放比理論上無上界用指數(shù)映射可以覆蓋任意大小目標(biāo)同時讓梯度形式保持簡潔。3. 數(shù)據(jù)管道比模型更容易出錯的地方我現(xiàn)在的經(jīng)驗是檢測任務(wù)的調(diào)試時間大概七成花在數(shù)據(jù)和標(biāo)簽上。模型結(jié)構(gòu)寫錯了頂多 shape 報錯數(shù)據(jù)寫錯了是“能跑、loss 也降、但 mAP 上不去”最難定位。所以這一節(jié)我把數(shù)據(jù)管道拆得細(xì)一些。3.1 圖像與框的同步增強(qiáng)最容易寫錯的是翻轉(zhuǎn)后的 x 坐標(biāo)檢測的增強(qiáng)和分類最大的區(qū)別所有幾何變換必須同時作用于圖像和標(biāo)注框而且框的表示形式在變換前后要來回轉(zhuǎn)換。我采用內(nèi)部統(tǒng)一的中間格式(cx, cy, w, h)歸一化到 0~1因為縮放、翻轉(zhuǎn)在這個格式下計算最簡潔只在最終編碼時才轉(zhuǎn)成像素單位。水平翻轉(zhuǎn)的坑在于框中心 x 變換后應(yīng)該是1 - cx但寬不變。而如果你順手把 x1、x2 也做了1 - x再重排結(jié)果雖然等價代碼里卻很容易忘記重排導(dǎo)致 x1 x2。我的做法是統(tǒng)一走中心點(diǎn)格式翻轉(zhuǎn)只改一個數(shù)def hflip(img, boxes): img img[:, ::-1, :].copy() boxes boxes.copy() boxes[:, 0] 1.0 - boxes[:, 0] # 只改中心 x寬高不變 return img, boxes另外隨機(jī)縮放和隨機(jī)裁剪之后那些面積被裁掉大半的框必須過濾。我用的閾值是保留可見面積占原面積 30% 以上、且裁剪后寬高都不小于 4 像素的框。閾值不是玄學(xué)是基于實測低于這個比例的目標(biāo)在特征圖上已經(jīng)不足一個感受野的中心區(qū)域強(qiáng)行保留只會給回歸分支注入噪聲標(biāo)簽。3.2 一個 batch 內(nèi)如何組織多尺度標(biāo)簽多尺度輸出意味著標(biāo)簽也要按尺度分別準(zhǔn)備。我的Dataset.__getitem__返回的是原始圖像張量和未編碼的歸一化框 類別編碼放到collate_fn里批量做理由是編碼過程依賴 anchor 配置而這些配置是全局的放在 batch 級別做可以順便完成 padding 對齊。collate 階段的處理順序我固定為取 batch 內(nèi)最大寬高做 letterbox 填充保持長寬比灰色 114 填充記錄每張圖的縮放比和填充偏移然后按三個尺度分別計算每個 GT 落在哪個網(wǎng)格、與哪幾個 anchor 的 IoU 超過閾值。這里的 DOIIoU 閾值我設(shè)成 0.5 起步但對小目標(biāo)尺度放寬到 0.4因為小目標(biāo)匹配到的 anchor 天然 IoU 偏低卡太死會導(dǎo)致正樣本極度稀疏。下面這個表格是我實測的 anchor 配置針對自建數(shù)據(jù)集以行人和車輛為主調(diào)過兩輪供參考輸出尺度stride特征圖anchor 尺寸像素適用目標(biāo)小880×80(12,16), (19,24), (28,36)小于 32px 的目標(biāo)中1640×40(38,52), (56,76), (82,110)32~96px 的目標(biāo)大3220×20(116,150), (160,210), (240,320)大于 96px 的目標(biāo)anchor 不是隨便給的我的做法是先對自己的訓(xùn)練集跑一遍 K-means距離用 1-IoU把聚類中心按面積排序后三等分再微調(diào)讓相鄰尺度的比例接近 2 倍。直接用公開數(shù)據(jù)集的默認(rèn) anchor 到自己數(shù)據(jù)上召回率通常會掉幾個點(diǎn)。4. 骨干網(wǎng)絡(luò)與頸部結(jié)構(gòu)的選擇邏輯結(jié)構(gòu)選型這件事我的判斷標(biāo)準(zhǔn)只有一個在目標(biāo)硬件的推理預(yù)算內(nèi)保證足夠的下采樣倍數(shù)和足夠的跨尺度融合能力。檢測需要大感受野來定位大目標(biāo)也需要高分辨率特征圖來定位小目標(biāo)這兩者靠單一尺度無法同時滿足所以多尺度輸出是必需項不是可選優(yōu)化。4.1 從 Darknet 風(fēng)格殘差塊講起的最小可用骨干我不建議一開始就上很復(fù)雜的結(jié)構(gòu)。實驗初期我的骨干只用了“卷積 殘差塊堆疊”的最小組合每個 stage 由一個 stride2 的下采樣卷積開頭后接 N 個殘差單元通道數(shù)按 32→64→128→256→512 遞增。這套結(jié)構(gòu)的好處是每一層的形狀都能手算出來出問題一眼能定位。殘差塊內(nèi)部我用 1×1 降維 3×3 提特征的瓶頸結(jié)構(gòu)并在 3×3 卷積后接 BatchNorm 和 LeakyReLU負(fù)斜率 0.1。選 LeakyReLU 而不是 ReLU 的原因很實際檢測任務(wù)里大量回歸目標(biāo)的梯度在負(fù)半軸也有貢獻(xiàn)ReLU 在負(fù)區(qū)直接截斷會讓回歸收斂變慢。這個差異我在對比實驗中觀察到過換成 ReLU 后坐標(biāo) loss 的下降速度明顯滯后。class Bottleneck(nn.Module): def __init__(self, cin, cout): super().__init__() cmid cout // 2 self.conv1 nn.Conv2d(cin, cmid, 1, biasFalse) self.bn1 nn.BatchNorm2d(cmid) self.conv2 nn.Conv2d(cmid, cout, 3, padding1, biasFalse) self.bn2 nn.BatchNorm2d(cout) self.act nn.LeakyReLU(0.1, inplaceTrue) self.short (nn.Identity() if cin cout else nn.Conv2d(cin, cout, 1, biasFalse)) def forward(self, x): y self.act(self.bn1(self.conv1(x))) y self.bn2(self.conv2(y)) return self.act(y self.short(x))顯存方面提醒一句訓(xùn)練時把torch.backends.cudnn.benchmark打開輸入尺寸固定的話能白撿一成左右的速度但如果你的 dataloader 會輸出不同尺寸的圖比如沒做統(tǒng)一 letterbox這個開關(guān)反而會導(dǎo)致反復(fù)重選算法速度更慢。4.2 頸部融合上采樣加拼接而不是直接相加三個尺度的特征要互相“看見”彼此的信息否則小尺度分支缺語義、大尺度分支缺細(xì)節(jié)。我采用的路徑是自頂向下從 stride 32 的特征圖開始1×1 卷積把通道壓到統(tǒng)一值我設(shè) 256然后雙線性上采樣 2 倍與 stride 16 的同通道特征沿通道維拼接再過一組 3×3 卷積融合重復(fù)一次到 stride 8。用拼接而不是相加是因為拼接保留了不同來源特征的獨(dú)立性讓后續(xù) 1×1 卷積自己去學(xué)如何加權(quán)相加則強(qiáng)制假設(shè)兩路特征語義對齊這個假設(shè)在淺層往往不成立。代價是通道數(shù)翻倍帶來的顯存開銷所以我在拼接后緊跟一個 1×1 卷積把通道壓回去實測能省下約 15% 的顯存而不掉精度。提示上采樣我用F.interpolate(..., modenearest)而不是轉(zhuǎn)置卷積。轉(zhuǎn)置卷積容易在特征圖上產(chǎn)生棋盤格偽影對小目標(biāo)的定位有肉眼可見的負(fù)面影響而且參數(shù)更多。最近鄰插值雖然“粗糙”但在檢測任務(wù)里配合后續(xù) 3×3 卷積完全夠用。5. 檢測頭、標(biāo)簽分配與損失函數(shù)整個實驗的核心我把這一節(jié)放在最中間因為這里是 YOLO 類模型真正區(qū)別于普通回歸網(wǎng)絡(luò)的地方。頭部結(jié)構(gòu)本身很簡單幾個卷積難的是如何決定哪個預(yù)測該對哪個 GT 負(fù)責(zé)以及如何為不同質(zhì)量的預(yù)測賦不同權(quán)重。5.1 檢測頭的三種輸出分支與解耦設(shè)計每個尺度上我接一個檢測頭結(jié)構(gòu)是先 3×3 卷積把頸部輸出壓到中間通道我取 256然后分出三個并行的 1×1 卷積分支分別輸出坐標(biāo)4 通道、objectness1 通道、類別C 通道。這就是所謂的解耦頭。為什么要解耦因為分類需要的是語義不變性同一個物體平移、縮放后類別不變回歸需要的是位置敏感性。讓同一組卷積核同時服務(wù)這兩個目標(biāo)存在內(nèi)在沖突。我在實驗中做過對照耦合頭訓(xùn)到第 30 輪時類別 loss 和坐標(biāo) loss 會互相拉扯表現(xiàn)為其中一個下降另一個就抬頭換成解耦頭后兩條曲線都能單調(diào)下降。代價是參數(shù)量增加不多完全值得。單尺度檢測頭的實現(xiàn)如下注意輸出通道順序要和前面定義的常量嚴(yán)格一致class DetectHead(nn.Module): def __init__(self, cin, num_anchors, num_classes): super().__init__() self.stem nn.Sequential( nn.Conv2d(cin, 256, 3, padding1, biasFalse), nn.BatchNorm2d(256), nn.LeakyReLU(0.1, inplaceTrue)) self.reg nn.Conv2d(256, num_anchors * 4, 1) self.obj nn.Conv2d(256, num_anchors * 1, 1) self.cls nn.Conv2d(256, num_anchors * num_classes, 1) def forward(self, x): x self.stem(x) # 輸出統(tǒng)一調(diào)整為 [B, A, H, W, C] 便于后續(xù)按 anchor 維處理 b, _, h, w x.shape reg self.reg(x).view(b, -1, 4, h, w).permute(0, 1, 3, 4, 2) obj self.obj(x).view(b, -1, 1, h, w).permute(0, 1, 3, 4, 2) cls self.cls(x).view(b, -1, self.num_classes, h, w).permute(0, 1, 3, 4, 2) return reg, obj, cls坐標(biāo)分支我不加任何激活原始輸出直接交給 loss配合前面說的 sigmoid/exp 在解碼時處理objectness 和類別分支同理sigmoid 在 loss 內(nèi)部配合 BCEWithLogits 使用避免數(shù)值不穩(wěn)定。這是一個非常容易出錯的細(xì)節(jié)如果在頭部就套了 sigmoid再用 BCEWithLogits 就相當(dāng)于做了兩次變換loss 會一直偏高且梯度異常。5.2 正負(fù)樣本分配我用的簡化版動態(tài)分配策略早期的 YOLO 只按“GT 中心落在哪個網(wǎng)格”來分配正樣本一個 GT 一個正樣本監(jiān)督信號太稀疏。我現(xiàn)在的做法是對每個 GT找出中心點(diǎn)落在其內(nèi)部或附近的網(wǎng)格計算這些網(wǎng)格上所有 anchor 與該 GT 的 IoU凡是 IoU 超過正閾值的都作為正樣本IoU 低于負(fù)閾值的作為負(fù)樣本中間的忽略不計入 loss。關(guān)鍵在于引入中心先驗一個網(wǎng)格即使 IoU 夠高如果它的中心離 GT 中心太遠(yuǎn)也不應(yīng)該算正樣本否則會讓模型學(xué)到“從遠(yuǎn)處預(yù)測物體”的壞習(xí)慣。我的過濾條件是中心距離落在 GT 寬高的一半范圍內(nèi)。這個約束加上之后訓(xùn)練初期 loss 的抖動明顯減小。分配過程我用一個 mask 張量實現(xiàn)形狀與輸出對齊1 表示正樣本、0 表示負(fù)樣本、-1 表示忽略def assign_targets(gt_boxes, anchors, strides, grid_sizes, pos_thr0.5, neg_thr0.4): # 返回每個尺度上的 mask 與回歸目標(biāo)此處展示單尺度核心邏輯 masks, targets {}, {} for s, (anc, st, gs) in enumerate(zip(anchors, strides, grid_sizes)): # 展開該尺度所有預(yù)測框中心為網(wǎng)格中心尺寸為 anchor cx (torch.arange(gs).float() 0.5) * st cy (torch.arange(gs).float() 0.5) * st # ... 構(gòu)造 [gs*gs*A, 4] 的候選框與每個 GT 算 IoU iou pairwise_iou(candidates, gt_boxes) # [N_cand, N_gt] best_iou, best_gt iou.max(dim1) mask torch.full_like(best_iou, -1.0) # 默認(rèn)忽略 mask[best_iou neg_thr] 0.0 # 負(fù)樣本 mask[best_iou pos_thr] 1.0 # 正樣本候選 # 中心先驗過濾網(wǎng)格中心必須落在 GT 內(nèi)部 mask[~inside_center(candidates, gt_boxes[best_gt])] -1.0 masks[s], targets[s] mask, build_reg_target(candidates, gt_boxes[best_gt]) return masks, targets代碼里pairwise_iou和build_reg_target是輔助函數(shù)分別算兩兩 IoU 和把 GT 編碼成相對偏移量。我在實現(xiàn)pairwise_iou時犯過一個經(jīng)典錯誤直接用x1 cx - w/2這種形式計算但沒有對坐標(biāo)做 clamp導(dǎo)致超出圖像邊界的框算出負(fù)寬度IoU 出現(xiàn)負(fù)值進(jìn)而讓一批本該是負(fù)樣本的候選被誤判為忽略。修復(fù)方法是在算面積前統(tǒng)一clamp(min0)。5.3 三項損失的權(quán)重配比與不收斂的排查經(jīng)驗損失由三部分組成坐標(biāo)回歸 loss、objectness 的二元交叉熵、類別的二元交叉熵。坐標(biāo)我用 CIoU 形式因為它同時考慮重疊面積、中心距離和長寬比收斂更快后兩項用帶 logits 的 BCE。權(quán)重配比是這套實驗里我最不愿意給“標(biāo)準(zhǔn)答案”的部分因為強(qiáng)依賴數(shù)據(jù)分布。我踩坑后穩(wěn)定下來的一組起點(diǎn)是坐標(biāo) 7.5、objectness 1.0、類別 0.5。給坐標(biāo)更高的權(quán)重是因為定位精度直接決定 mAP 的上限objectness 保持 1.0 是因為正負(fù)樣本極度不均衡如果權(quán)重給太高負(fù)樣本的 loss 會淹沒正樣本類別權(quán)重壓到 0.5 是因為在正樣本已經(jīng)很少的情況下類別分支的梯度容易過大。另外必須處理正負(fù)樣本比例。實測下一個 batch 里正樣本可能只有幾十個而負(fù)樣本上萬。我用的策略是只對負(fù)樣本中 objectness 預(yù)測值最高的前 K 個計算 lossK 取正樣本數(shù)的 3 倍其余負(fù)樣本直接忽略。這一步聽起來粗暴但它比直接給負(fù)樣本乘個小權(quán)重更有效因為它聚焦在“模型最困惑的負(fù)樣本”上。判斷訓(xùn)練是否正常我只看三個信號一是坐標(biāo) loss 應(yīng)該在 10 輪內(nèi)降到初始值的三成以下二是 objectness loss 的下降曲線要平滑如果出現(xiàn)周期性尖峰多半是某個 batch 的標(biāo)簽編碼有問題三是正樣本數(shù)量均值應(yīng)該穩(wěn)定在一個區(qū)間內(nèi)如果隨 epoch 劇烈波動說明標(biāo)簽分配的中心先驗在邊界目標(biāo)上失效了。我曾遇到 objectness loss 每 5 個 epoch 準(zhǔn)時跳一次的問題最后定位到是 dataloader 的 shuffle 與采樣器組合導(dǎo)致某個類別的樣本被集中投放改回標(biāo)準(zhǔn)隨機(jī)采樣就平了。6. 訓(xùn)練循環(huán)、顯存控制與推理后處理網(wǎng)絡(luò)和數(shù)據(jù)都跑通之后剩下的工作是從“能訓(xùn)”到“訓(xùn)得動、訓(xùn)得好”。這一節(jié)的每一條都是我在有限顯存條件下被逼出來的直接照做能省很多試錯時間。6.1 學(xué)習(xí)率調(diào)度、混合精度與梯度累積的組合我用 AdamW 起步初始學(xué)習(xí)率 1e-3 配 weight decay 5e-4前 3 個 epoch 做線性 warmup之后余弦退火到 1e-5。warmup 不是可有可無的檢測頭是隨機(jī)初始化的前幾百步梯度尺度很大直接上高學(xué)習(xí)率會把坐標(biāo)分支推到一個 bad local minimum表現(xiàn)為坐標(biāo) loss 長期卡在高位不下來?;旌暇任矣胻orch.cuda.amp但loss 計算部分強(qiáng)制在 float32 下進(jìn)行。原因是 objectness 的 BCE 在 fp16 下容易溢出尤其是當(dāng)某個 batch 里出現(xiàn)極端難負(fù)樣本時。寫法上我用 autocast 包裹前向loss 前用float()轉(zhuǎn)換scaler torch.cuda.amp.GradScaler() for imgs, gts in loader: imgs imgs.cuda(non_blockingTrue) with torch.cuda.amp.autocast(dtypetorch.float16): reg, obj, cls model(imgs) # 關(guān)鍵損失計算退回到 fp32保證數(shù)值穩(wěn)定 loss compute_loss(reg.float(), obj.float(), cls.float(), gts) scaler.scale(loss).backward() scaler.unscale_(optimizer) torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm10.0) scaler.step(optimizer) scaler.update() optimizer.zero_grad(set_to_noneTrue)梯度裁剪的閾值我設(shè) 10.0實測下來只有當(dāng)標(biāo)簽編碼出現(xiàn)異常時才會觸發(fā)所以它其實充當(dāng)了一個免費(fèi)的異常探針如果你發(fā)現(xiàn)裁剪頻繁觸發(fā)別急著調(diào)大閾值先去查標(biāo)簽。顯存不夠時用梯度累積每 4 個 micro-batch 做一次step等效 batch 翻 4 倍。這里有一個細(xì)節(jié)必須配對處理——BN 的統(tǒng)計量在小 batch 下會失真我改用SyncBatchNorm或者在凍結(jié) BN 統(tǒng)計量的前提下累積否則等效 batch 放大了但 BN 看到的仍是小 batch精度對不上。6.2 NMS 的實現(xiàn)細(xì)節(jié)與置信度閾值的標(biāo)定方法推理階段把三個尺度的解碼結(jié)果拼成一個[N, 5C]的大張量先按 objectness 過濾閾值 0.05 起步寧低勿高因為后續(xù) NMS 還會再篩再依次做按類別的 NMS。我的 NMS 實現(xiàn)里最容易寫錯的邊界是IoU 計算要用到裁剪后的坐標(biāo)且不同類別的框不互相抑制。def nms(boxes, scores, iou_thr0.45): # boxes: [N, 4] 格式為 xywh坐標(biāo)已還原到原圖尺度 x1, y1 boxes[:, 0] - boxes[:, 2] / 2, boxes[:, 1] - boxes[:, 3] / 2 x2, y2 boxes[:, 0] boxes[:, 2] / 2, boxes[:, 1] boxes[:, 3] / 2 areas (x2 - x1).clamp(min0) * (y2 - y1).clamp(min0) order scores.argsort(descendingTrue) keep [] while order.numel() 0: i order[0].item() keep.append(i) xx1 torch.clamp(x1[order[1:]], minx1[i]) yy1 torch.clamp(y1[order[1:]], miny1[i]) xx2 torch.clamp(x2[order[1:]], maxx2[i]) yy2 torch.clamp(y2[order[1:]], maxy2[i]) inter (xx2 - xx1).clamp(min0) * (yy2 - yy1).clamp(min0) iou inter / (areas[i] areas[order[1:]] - inter 1e-7) order order[1:][iou iou_thr] return keepIoU 閾值我最后定在 0.45。這個值不是拍腦袋密集場景比如人群設(shè) 0.5 以上會殘留大量重復(fù)框而設(shè) 0.3 又會把相鄰的兩個真實目標(biāo)合并掉。我的標(biāo)定方法是拿驗證集畫一張“置信度閾值-召回率”曲線找召回率曲線開始陡降前的拐點(diǎn)通常落在 0.25~0.35 之間而 NMS 的 IoU 閾值則固定 0.45兩者不要混在一起調(diào)否則你無法判斷性能變化歸因于哪一個。6.3 調(diào)試檢測模型時我常用的三個可視化手段第一是把標(biāo)簽畫回原圖。訓(xùn)練前必須做這一步我見過太多因為歸一化坐標(biāo)和像素坐標(biāo)混用導(dǎo)致框全部擠在左上角的案例而 loss 依然在降因為模型確實在學(xué)習(xí)這個錯誤分布。第二是把預(yù)測框在訓(xùn)練中期畫出來哪怕框很亂只要它開始聚集在目標(biāo)附近就說明坐標(biāo)分支方向?qū)α?。第三是按尺度分別統(tǒng)計正樣本數(shù)如果某個尺度長期是 0說明 anchor 尺寸和你的數(shù)據(jù)分布完全錯配那個尺度的檢測頭永遠(yuǎn)學(xué)不會。有一次我把這三個手段串起來排查了一個典型問題mAP 卡在 0.2 上不去可視化發(fā)現(xiàn)所有預(yù)測框都比真實框小一圈。原因是我在編碼時用了log(w_gt / w_anchor)解碼時卻用了exp(pred) * anchor的寬高順序搞反了把 w 對到了 h 的 anchor 上。這類錯誤不可能從 loss 數(shù)值看出來只能靠可視化。7. 幾個必須提前知道的邊界與經(jīng)驗最后分享幾條我認(rèn)為比代碼本身更值錢的經(jīng)驗。第一不要在小數(shù)據(jù)集上追求多尺度。我最初在只有 1200 張圖的數(shù)據(jù)集上直接開三個尺度訓(xùn)練結(jié)果最小尺度分支一直是零正樣本白白多算了 40% 的前向開銷。數(shù)據(jù)量小的時候先用單尺度stride 16把整條鏈路驗證通再逐步加尺度效率高得多。第二objectness 的分支比類別分支更容易出問題優(yōu)先調(diào)它。很多“mAP 上不去”的表象根因是 objectness 的校準(zhǔn)不好——模型給了目標(biāo)很高的類別分?jǐn)?shù)但 objectness 很低NMS 前就被閾值濾掉了。檢查方法是單獨(dú)統(tǒng)計正樣本上的 objectness 均值正常情況下它應(yīng)該隨訓(xùn)練穩(wěn)步上升到 0.8 以上。第三關(guān)于驗證集的選擇我堅持按場景而非隨機(jī)劃分。隨機(jī)劃分會讓同一段連續(xù)視頻或被同一組采集條件下的圖片同時出現(xiàn)在訓(xùn)練集和驗證集里驗證 mAP 虛高 5~10 個點(diǎn)是常有的事。按場景、按采集批次、甚至按時間劃分得到的數(shù)字才代表真實泛化能力。常見癥狀大概率根因快速驗證方式loss 完全不降標(biāo)簽編碼與輸出通道順序不一致單 batch 過擬合測試看能否記住 4 張圖坐標(biāo) loss 平臺震蕩直接回歸絕對坐標(biāo)未用相對偏移檢查解碼公式的縮放項某尺度無正樣本anchor 尺寸與數(shù)據(jù)分布錯配統(tǒng)計各尺度的正樣本數(shù)框普遍偏小或偏移anchor 寬高順序與編碼時不一致可視化預(yù)測框與 GT 疊加訓(xùn)練后期 mAP 回落學(xué)習(xí)率未退火或正樣本過擬合打印每輪正樣本數(shù)與 lr我還想強(qiáng)調(diào)一個調(diào)試習(xí)慣用 4 張圖做單 batch 過擬合測試。把這個小實驗跑通loss 降到接近 0預(yù)測框和 GT 幾乎重合就等于證明了數(shù)據(jù)管道、編碼、損失、解碼這整條鏈路自洽。凡是鏈路級別的 bug都會讓這個測試失敗而鏈路一旦自洽剩下的問題都只是超參和容量問題排查范圍小得多。這個習(xí)慣幫我省掉的調(diào)試時間比我讀過的所有文檔加起來都多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99欧美| 激情丁香五月| 婷婷精品久久av影视| 婷婷五月天丁香| 国产一区在线看| 麻豆精品天美| 亚洲AV无码成人精品久久| 一级AAA片一区二区三区| 日韩人妻资源在线看| 国产精品高潮久久久无码| 亚洲码和欧洲精品激情系列| 日韩精品一区二区三区色欲| 日韩激情小说一区二区| 狠狠爱综合网| 一区二区三区一亚洲中文字幕、综合区灬 | 熟女自慰久久久| 国语国产操逼伊人AV网| 青青草好吊色| 欧美国产操逼| 伊人久久大香线综合无码| 日韩av一级黄片| 欧美成人免费在线观看| 麻豆精品一区二区三区四区免费观看| 丝袜美腿丝袜| 九9热伊人| 99精品在线观看| 亚洲激情在线观看一区| 99国产精品视频尤物| 国产一二三福利视频网| 欧美激色| 欧美狠狠操| 美日韩成人| 日本欧美韩国国产在线| 男同专区一区二区三区在线| 嗯嗯嗯啊啊啊干死我吧| 夜夜综合| 好湿好紧好爽 视频| 欧美网站免费| 91在线综合网| 色婷五月| 偷看洗澡一二三区美女| 国产视频不卡在线观看| 色视频蜜乳| 亚洲成a人v欧美综合天堂下载| 欧美天堂亚洲电影院一区在线播放| 人妻啊啊人妻啊| 中国乱伦一区二区| 牛牛aV| 精品毛片av一区二区| 中文字幕精品码亚洲| 亚洲欧洲综合成人av一区| 亚洲综合113页| 口爆综合网| 欧洲熟妇xxXx欧美老妇裸体| 色777999综合| 国产精品扒开腿做爽爽爽视频| 色99久草| 综合网亚洲在线| 97精品视频在线播放| 97精品久久久久中文字幕| 欧美黑人性猛交91| 女人妻一区| 97天天爽| 白丝少妇一区二区| 国产精品交换一区二区| 欧插网站| 欧美黄色图片| 久久久免费懂色| 看看日B真人视频| 男人把坤坤插入女人的下体| 青青操在线亚洲视频观看欧美在线| 久久久一级| 五月婷婷性爱| 人人爽夜夜操| 啊啊啊好大好湿| 亚州操操穴网| 国产精品天干天干综合网麻豆| 国产精品电影推荐| 国产在线综合福利网站| 欧美综合娱乐久久| 大奶啊啊好爽 | 2020天天色综合| 九九精品网| 9999久久久| 国产家庭乱伦性爱视频| 小视频国产| 香蕉热人人精品| 欧美性爱伊人| 高清不卡国产| 久久9久久| 妇女性内射冈站HDWWWCOM| 国产麻豆福利av在线播放| 91人妻爽爽人人做人人澡| 色哟哟-国产专区| 日本中文字幕熟妇| 韩美日操逼| 一区二区娱乐网站| 欧美日韩天堂| 午夜亚洲WWW湿好大| 日韩操逼HD| 婷婷综合在线| 蜜桃臀一区二区三区久久| 日本精品一区二区三| 午夜无码熟妇丰满人妻| 嫩草 我啊~嗯~在线| 亚洲色香| 蜜臀99久久精品久久久久| 亚洲欧美人妻| 日本三级一区二区 在线| 国产99 中文字幕日韩小视频| 天美AV片| 亚洲国产成人7777| 熟妇人妻精品一区二区视频色欲| 亚州综合图片| 狠狠色伊人亚洲综合网站色| 久久97| 日本精品性生活久久久| 日日超碰亚洲| 成人开心网在线视频| 99e久久国产精品| 久操婷婷| 久热精品色情| 秋霞 色色| 亚卅熟女乱色| 欧美在线|亚洲| 人妻性爱一区二区| 亚洲欧美另类少妇精品| 无码人妻精品酒店| 99久久婷婷国产综合| 少妇色综合| 免费a v| 综合激情五月丁香| 亚洲天堂精品日韩电影| 亚洲少妇喷视频看| 狠狠入| 囯产乱伦一区二区三女 | 欧美狠狠弄| 9精品久久久久| 翔田千里爆乳巨臀无码| 屌妞视频久久久久久久久久久久| 久久精品 六十路 熟女 欧美| 操逼网站视频漫画国产| 青青草原成人| 亚洲综合色男人网| 美日韩男女操屄视频| 久久久工口| 97中文天堂| 久久久久921| 天堂av最新电影网| 色婷婷综合网站| 人妻熟妇一区二区三区| 久热婷婷| 精品久久久av无码免费| 91殴美大片| 国产精品麻豆视频网站| 国产夫妻性生活视频| 色婷婷小说| 免费成人自拍视频在线| 夜草欧美| 亚洲经典啪啪| 久热影视| 欧美日韩妖精91com| 120分钟婬片免费看| 国产女大学生AV| 国产视频小说| 五月大香蕉| 亚洲精品久久久久毛片A片拉屎| 中文字幕视频2区| 国产精品极品美女视频| 亚洲乱码精品一区二区| 亚洲干B| 天堂九九九九九九九九九| 精品丝袜无码一区二区三APP| 色综合1991| 爽爽淫人网| 精品国产91内射久久| 一区二区无码视频| 9 9无尺码天堂网| 日本精品人妻少妇一区二区| 熟女突然公开看18禁影片| 欧美日韩中文字幕人妻| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 欧洲人妻视频| 欧美一区二区三区黄色影视| 亚码激情| 九九色影院| 国产精品久久久久无码Av网曝门| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 国产精品久久久久999| 色性综合| 久久久成人国产精品无码| 亚洲熟妇一,二,三期| 加勒比久久av| 精品国产乱码久久久久久久久久毛片 | 久久鲁夜| 夜夜嗨视频| 国产人妻精品一区二区三区秋霞 | 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 精品91日日夜夜超清资源| 国产精品天干天干综合网麻豆| 啊啊啊啊嗯嗯嗯用力好爽| 伊人黄色视频免费观看| 亚洲黄色网址视频| 中文字幕一区二区日韩网| 97亚洲精品| 极品人妻少妇综合| 九热超碰| 97视频在线视频| 国产美女精品| 久艹视频在线| 亚洲色婷婷综合久久久久中文| 999熟女精品| 欧美熟女丝袜| 青青草玖玖爱| 亚洲色图自拍| 国产精品96| 中文视频在线观看| 久久日韩精品一区二区| 女人 A一级| 无码人妻精品一区二区中文| 中文字幕精品一区二区精| 国产熟女完整版中字 | 超碰久在线天天做| 久久久91福利姬| 久久精品女同亚洲女同13| 亚洲欧洲激情| 成人性交免费视频| 操逼操逼操| 老熟女乱伦片| 韩日性爱av| 在线人人人人人人精品超| 日欧亚洲二三区大片不卡| 亚洲一区二区三区中文字幕| 人人射人人操人人摸| 午夜福利免费福利视频| 日韩乱伦视频| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 欧美日韩国产电影| 青娱乐手机日韩在线视频| 在线色资源| 天天狂操夜夜狂日| 亚洲精品一区二区精华| 最近2019中文字幕国语免费版| 91 亚洲 欧美 日韩 国产 综合| 1禁看欧美黄片免费看| 日韩啪啪视频| 男人的天堂在线2| 天天摸夜夜操视频| 国产品精品自在在线午夜免费| 亚洲电影中字一区二区| 国产福利在线视频网站| 日本免费一区二| 亚州久久9| 久操电影网| 日本欧美中文字幕| 综合自拍| 日韩国产十八禁| 久久综合久色欧美综合狠狠| 国产综合久久久麻桃个| 亚洲导航深夜福利| 久久久噜噜噜久久久| 九九九九九精品十六| 91蜜臀人妻中文字幕在线| 91激情| 18禁超污无遮挡无码免费网| 91扒丝袜综合在线| 超碰精品97| 18禁无码永久免费无限制| 依人大香蕉| 伊人久久大香线综合无码| 少好三P| 强奸乱伦 亚洲一区| 久久人人爽人人爽人人片Ⅴ| 天堂国产AV| 啊啊啊久久| 超碰成人最新最好看| 日韩99999色| 欧美情色亚洲| 性爱乱伦一区| 好舒服视频| 国产偷人伦激情在线观看| 日本性爱少妇| 97网址97| 看一级特黄a大一片| 欧美少妇第一页| 综合色一区三区二区| 操逼视频免费日韩无码| 传媒免费一区二区三区| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 日本免费中文字幕在线| 精品免费1| 超碰九九| 无遮挡猛进视频免费无限观看| 伊人玖玖网| 亚洲一区在线观看欧洲 | 9久9久| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 国产粉嫩蜜臀av一区二区三区| www.色婷婷| 中出20p| 国产AV激情无码久久无码 | 熟女人妻精品一区二区视频| 九九热在线精品视频| 亚洲综合色在线| AAAAAAAAA黄片| 啊啊啊啊在线观看网址| 日日噜噜夜夜狠狠视频无| 99热精品青草在线| 九月丁香婷婷色| 久久少妇人妻| 91久热| 手机在线大香蕉| av天堂影视中文在字幕在线中文| 九九九九九精品视频| 成人精品在线观看| 可免费观看的av毛片中日美韩| 涩五月婷婷| 国产v亚洲v日韩v欧美v片另类| 中文字幕二区日韩天堂| 欧美日韩大香蕉| 另类av天堂| 欧美黄片免费在线观看视频| 久久禁| 亚洲激情综合| 精品久久无码午夜福利 | 极品尤物女神在线观看| 男女香蕉一区二区| 夜夜中出国产| 久久久久亚洲AV无码专区少妇| 中文幕97| 99日韩| 男人的天堂网页| 青青草在线视频欧美| 视频黄色国产一级| 青青青青青手机视频| 动漫片子网站3黄| 亚洲成人免费中文字幕| 91中出视频| www.四虎在线| 韩国一级婬片A片AAAAA| 婷婷色综合欧美日韩| 免费网站观看www在线观| 秋霞影音一区二区三区 | 97九色人妻| 国产精品久久久久无码A√| 一二三区视频在线观看| 亚洲人在线| 在线观看中文av字幕| 久久系列| 超碰欧美在线欧美| 97色插| 欧美亚洲日本视频久久久| 欧美性夜| 国产麻豆一区二三区| 一本道综合色图| 黄色激情电影在线观看| 91美女视频在线观看| 日本天堂在线播放| 中国小夫妻勾搭露脸淫荡对白| 99精品在线观看| 无码区蜜乳| 啪啪啪综合| 高清肉丝中文无码| 亚洲精品1区| www.狠狠干.coom | 怡红院成人视频| 绑缚麻绳人妻寝取完整版| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 国产91亚洲精品一区二区三区| 国产又大又粗又长视频| 热久日综合| 超碰97爽| 中文字幕 码 自拍 视频 区| 天堂中文资源在线bt| 翔田千里爆乳巨臀无码| 一区二区高清视频| 欧美天天| 伊人网免费视频| 九久久九九久视频| 91中文字幕在线观看| 97精品97久久| 91国产美女丝袜足交精品视频 | 玖玖久久久| 亚洲九九视频| 久久粉色| 九九九九九九视频免费| 五十路熟女人妻一区二区三区四区五| 国产人妻精品一区二区三区秋霞| 无码人妻精品一区二区三区九九| 91+欧美| 91模特在线观看| 超碰综合色| 欲色影视综合吧| 999久久久九| 2011国产精品| 操我啊啊啊啊啊| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 色性荡荡荡荡视频| 天天弄欧美| 啊啊啊啊啊操我视频| 久久久草成人网站久久久草成人久久久草久久久 | 中文字幕熟女人妻丝袜丝| 吊色| 国产又粗又长视频| 免费试看60秒| 国产高清视频无码在线| 99老司机精品视频在线观看| 美女91在线| 熟女人妻一区二区三区免费看| 超碰97日韩| 亚洲日韩精品一区二区| 欧美在线啊啊| 中国少妇XXXX做受| 色爱三区| 亚洲aw毛茸茸在线| 老司机午夜福利视频一区二区| www. 男人天堂成人在线| 日本97久久| 欧美同性恋 的搜索结果 - 91n| 老熟女天天操| 国产精品视频内谢女人| 黄色电影观看久久9| 青青草天天亲夜夜操网| 四虎精品一区二区| 亚洲乱色熟女一区| 日本操嫩b网| 99视频只有精品| 97av在线视频| 91天堂视频| 亚洲AV资源| 久久久久久久六六 | 无码99| 亚洲综合在线视频| 中文乱码99| 九热超碰| 国产剧情在线| 日韩中文字墓| 久久久久成人亚洲国产| 91 手机在线播放 绯色| 久久久久婷婷精品av电影| 欧美自拍网| 370p日韩欧美亚洲精品| 一本道综合色图| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 色av中文字| 91九色丰满高潮| 超碰色综合| 久久一级无码精品毛片6| 精品久久一区二区三区四区五区| 任你干在线视频| 欧美成人A√在线一区二区| 午夜精品久久久久久久99蜜桃一| 蜜桃久久久久久久| 神马久久免费电影观看| 久久精品国产亚洲AV无码做| 少妇人妻无码| 一起草在线视频| 国产小视频91| 蜜臀av网址| 欧美精品69性爱| 99久久久久| m欧洲一级午老| 少妇熟女1区2区3区| 夜色五月天| 久艹99| 99精品欧美一区二区三区桃色| 久久国产精品91| 欧美综合网站999| 午夜影美女日鸡鸡天天视频国产| 2019AV天堂| 操国产逼| 啊好爽快点-国产一区二区三区撒尿在线-成人AV | 亚洲欧美97√| 国语对白在线播放视频| 九九人妻| 大香蕉五月天婷婷| 亚洲欧美91√| 天天色综合天天操| 东京热99999| 亚洲欧综合另类无码一区| 亚州高清色综合| 日韩精品在线视频在线观看| 一区二区三区四区久久视1| 天天色图| 久日91在线| 欧美亚洲尤物久久| 九九热精彩视频| 乱伦Av网| 91天美免费| 五月婷婷爱六月丁香色| 91观看 国产白丝| 玖玖在线视频| 永久免费观看的毛片的网站| 国产农村妇女精品1区二区| 天天看天天日天天操| 狼人综合婷婷激情四射 | 亚洲宅男天堂| 亚洲一级黄色毛片| 色五月第四色| 黄色视频特级毛片| 天天综合欧美| 动漫片子网站3黄| 欧美日韩色综合网| 蜜臀av中文字幕| 操逼日韩无码 | 青草地一本线一区二区三区| 成年女人一区| 亚欧性爱无码| 久久久一区二区三区麻豆| 首页亚洲国产高跟丝袜诱惑视频| 免费av在线播放二区| 丁香婷婷激情五月天无毒不卡 | 久久久涩| 伊人国产视频| 亚洲欧美日韩精品久| 一区二区视频在看| 自慰白浆在线观看| 五月婷亚洲精品天堂| 久久最新视频免费观看| 国模吧 一区二区三区| 久久91| 五十路人妻在线| 午夜大香蕉| 天天草夜夜草高潮片| 一本色道久久综合亚洲二区三区| 欧亚乱色熟一区二区三四区| 丰满人妻一区二区三区大胸懂色| 国产又黄又爽| 大鸡巴久久| 久9久9精品| 人妻夜夜爽天天爽麻豆三区网站| 欧美特大黄一级片片免费| 91麻豆天美传媒在线| 国产免费一区| 精品96久久| 超碰国产在线| 午夜影美女日鸡鸡天天视频国产| 日韩三级av片| 国产九九九九九九| 美女主播色欲91抠b在线播放| 欧美性爱系列| 久久国内| 国产精品自拍xxxx| 天天视频黄| 久久青青草在线视频| 国产麻豆一区二三区| 伊人97色天使| 97精品国产97久久久久久| 日韩一级特黄av毛片| 人人性爱视频免费| 欧美色图亚洲激情| 天天天操天天天爱| 91欧美性| 国产日韩欧美| 超碰人妻中文在线| 用力操死我| 日韩无码专区| 婷婷色播婷婷| 五月婷婷丁香| 一块操欧美性爱| 美国一区二区免费视频| 综合免费无码中文| 操操逼操操逼操操逼逼| 国产亚洲中文不卡二区| 思思热er精品视频| 免费的很黄很污的全部视频| 中文字幕一区二区日韩网| 亚洲精品自拍| 久久精品欧美一区二区三区不卡| 影音先锋新男人| 欧州一区二区三区四区| 欧美极品美女aaaaaa级黄片| 亚洲国产91精品一区二区久久| 大香蕉78| 国产一区二区在线播放量| 亚洲久久久久| 永久免费av无码网站国产app | 97二区四区| 色狠狠综合噜一二三区| 另类亚洲图色| 精品久久久不卡一区二区| 亚洲综合校园春色| 久久婷婷一区| 欧美少妇色图| 老外又粗又长一晚做五次| 国产在线观看91精品一区| 亚洲国产精品无码AV久久久| 色伊人91| 欧美国产日韩清纯唯美| 97蜜桃综合| 亚洲精品国产精品乱码不卡| 伊人久久亚洲色欲综合网站| 欧美后入式| 成人久久久| WWW4虎| 超碰碰激情97+久| 国产乱不卡| 78精品| 成人26uuu| 中文字幕狠狠玩| 五月婷婷六月色| 成人网欧美风情| 蜜桃臀一区二区三区久久| 日日干日日摸| 国产精品成人久久一区二区三区| 333kkkk·亚洲com久久| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 日韩无码黄色片| 婷婷香蕉欧美在线一区二区三区| 九九九久久久久| 国产人妻久久精品一区二区三区| 日本成人免费一区二区三区| 郑州宾馆老熟女露脸啪啪| 丝袜夫妻自拍| 一区二区无码视频| 精品国产三级av韩国在线| 精品国产肉丝袜在线拍国语 | 亚洲av噜噜噜噜噜噜| 中国国产精品一区视频| 一品道视频一区二区三区| 中文在线久久字幕| 中文字幕激情小说| 国产av又色又爽又黄| 私色综合网| 东京成人一区| 9Ⅰ超碰| 韩国一级婬片A片无码天美| 人人操AV| 91无码人妻| 九九九国产| 亚洲国产麻豆一区二区三区| 色综合中文字幕不卡| 欧美图片校园春色| 国产强奸乱伦xd| 内射白嫩美女| 91精品综合久久久久久五月丁香| 伊人991| 日韩欧美午夜一区二区| 亚洲精品99| 国产欧洲精品亚洲午夜拍精品| 国产精品久久久久久高清无码免费看 | 色哟哟 日韩精品| 色五月婷婷麻豆在| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲视频二区| 淫荡网址| 欧亚洲精品有视频| 中文字幕在线免费观看 | 一本色道人妻久久| 亚欧性爱在线无码| 91亚洲丝袜| 91三级理论片播放器| 吉川爱美98堂在线| 亚洲无码国产精品久久| 国产精品小视频一区二区三区| 日日躁天天躁狠狠躁| 涩涩涩综合| 色诱中文字幕| 成人免费性爱视视| 亚洲。日韩。欧美| 搡老熟女免费视频| 性欧美天天| 男人女人18禁片免费看网站| www.99热在线只有精品| 玖玖爱在线视频免费观看| 九九久久久久久爱| 日欧操屄| 欧美亚洲第一页| 丝袜av一区二区三区| 2018天天干在线视频| 大屁股国产在线视频| 北约熟女超碰| 91黄射| 99精品在线| JuliaAnn丝袜熟女系列| 男人的天堂啪啪啪啪啪蜜桃不卡| 亚洲欧美综合| 97 超碰 人人做 人人爱| 91精品91久久久中77777| 久久久久9久久久久| 青娱乐国产剧情av一区| 狠狠色一区二区中文字幕| 日va操| 久久粉色| 偷拍 精品 另类 四区| 天天射天天| 亚洲色棕合| 丁香五月天激情综合| 12一15性XXXX粉嫩国产| 夜精品久无码| 精品久久一区二区三区四区五区| 91狠狠综合网| 亚州成人A√| 国产精品香蕉热久久新品| 日韩精品 欧美激情| 97se综合网| 日本一区二区成人在线| 97操| 人人摸人人舔一区二区| www.久久99| 国产女人和拘做爰视频| 久热精品在线| 大香网伊人久久综合网eew| 在线观看日韩av不卡| 91欧洲国产成人久久精品网站| 99在线观看无大码| 日韩一级片| 天堂俺去俺来也www久久婷婷| 羞答答AV中文字| 欧美高清性猛交| 五月综合婷婷久久网站| 欧美日韩国产一区二区小黄片大全| 人妻丝袜肏逼| 日本中文字幕在线电影| 国产AV色黄看到爽| 欧美日韩97| 久久超碰天天| 久久久亚洲Av| 婷婷丁香激情| 啊啊啊啊,啊啊好多水| 麻豆性爱视频在线播放| 激情五月天网站| 午夜AV人气不卡| 国产精品久久久久久久无码AV| 蜜桃臀一区二区aV| 极品粉嫩少妇视频| 亚洲天堂人妻一区二区| 婷婷九月色| 蜜桃视频成a人v在线| AA级电影三区| 亲子敌伦对白在线播放| 欧美在线亚洲| 51一区二区三区| 婷婷九月国产| 东京成人一区| 91碰碰碰| 99这里有精品| 精品超碰国产| 一区在线国产播放| 熟女色综合久久| 国产精品一区二区校花| 夜夜操一区二区| 青青草啪啪网| 久久久亚洲精品电影免费看| 亞洲久久直播| 国产精品69人妻无码久久久| 国产精品直播在线观看直播| aaa亚无码专区| 97操| 麻豆国产视频精品观看| 欧美高清18A片| 欧美爆乳精品一区二区| 91在线免费精品视频| 乱伦熟妇一区二区| 在线日韩日本亚洲国产| 国产精品成久久久久午夜午夜| 国产精品久久久久久久久久久久久久| 91性感网站| 天天天天天天天天综合| 国内黄色精品| 日韩精品熟妇| 日韩中文9| 精品视频久久区| 久久久久久久久女黄| 人妻精品一区一区三区蜜桃91| 亚洲91大片| 蜜臀久久99精品久久久久免费观| 禁止观看美女黄| AV一二区| 麻豆精品三区视频| 五十路熟女,国产欧美精品区一区二区三区| 99热这里只有精品8| 99.色网| 97免费免费视频网| 大香蕉琪琪日本女优不卡| 99蜜桃臀久久久欧美精品网站| 欧美久久毛片基地| 狠色婷婷久久一区二区三区_| 中文字幕人乱码中文字的预防方法 | 久久久久久久97| 久操黄色视频| 欧美美女啪啪视频| 亚洲第一二区另类图| 亚州色阁| 玖玖久久久| 韩国免费播放一级毛片| 在线观看无码三级少妇| 男男H黄动漫啪啪无遮挡网站| 日本黄 R色 成 人网站| 天天干美少妇一区| 国内操逼视频二区| 神马午夜久久久| 超碰97在线色男人??| 久久91| 天天艹天天日| 天天看综合网| 99re在线精品78| V A在线| 十八禁的黄污污免费网站| 福利操逼| 国产亚洲在线| 5252色欧美在线| 麻豆一区二区AV天美| 激情小说在线视频| 国产区性爱在线视频秋霞豆| 亚洲少妇色| 素人无码中文字幕| 亚州综合色| 青青久久手机线视频| 嗯啊不要啊在线 | 日韩有码回春沙龙第一页| 风韵犹存大大大大香蕉 | 精品乱码在线观看| 欧美Ⅴ性爱| 亚洲不卡三级手机播放| 性做久久久久久久| 啪啪视频mP4| 91久热| 翔田千里无码中出中文字幕| 亚洲国产欧美日韩人妻日中文| 人妻内射一区二区在线视频| 极品销魂美女一区二区| 99熟女| 日夜尻逼网| 国产福利视频精品视频| 这里只有精品视频| 色九九综合AV| 国产三级在线现体验区| 日韩啪啪啪啪啪| 黄久久| 免费精品人妻一区二区三| www.超碰在线| 亚洲青青草| 乱伦图av| 神马久久69| 亚洲天堂AV在线播放| 明星性猛交ⅹxxx乱大交| 伊人成人中文字幕久久网| 欧美激情精品久久久| 美女写真| 亚洲AV不卡在线观看尤物| 国产家庭乱伦表演| 中文字幕在线观看第二页| 91白嫩| 自慰白浆在线观看| 蜜桃午夜视频一区二区 | 国产剧情AV不卡在线观看| 成人精品一区二区三区| 熟妇xxxxx性春色| 最新精品久久蜜桃 | 国产日韩人人| 在线有码中文字幕| 青青草久久一区网| 乱伦一二三区| 校园春色欧美色图| 日本熟女不卡视频| 亚洲五区熟女| 九九九网站| 日韩另类色图| 日本操逼aaaaa| 嗯……啊…嗯嗯…啊…好舒服| 国产丝袜欧美在线视频| 色婷婷综合久久久久中文一区二区| 无码高清少妇久久| 精品十三区| 亚洲成人福利电影免费 | 九九综合久久中文字幕| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 混色激情av| 日本精品一级二级三级| 国产精品 午夜福利| 中文字幕AV乱伦| 加勒比久久av| 青娱乐国产精品| 夜夜免费视频| 超碰狠狠操| 1000部熟女视频在线观看| 亚州宗合另类| 这里只有精品视频在线观看麻豆 | 黄色AAAAA欧美| 人妻少妇久久中文| 噜噜噜狠狠色综合| 亚洲在线欧美| daxiangjiao你懂的| 欧美在线播放aaaa| 亚洲黄片免费在线播放| 大香焦A片| 美国日韩黄片| 成人免费不卡在线视频| 日韩无码第3页| 中文字幕日韩国产传媒欧美精品| 人人操 欧美| 久久久久久久久国产| 五月丁香婷婷色| 免费观看国产不卡av| 噜噜噜噜天天狠狠| 骚逼一区二区| 国产18精品亚洲精品| 国内精品嫩模A∨私拍小视频| 精品乱子一区二区三区99| 国产精品久久久久无码AV会牛| 国产深夜福利| 久久久久婷婷精品av电影| av在线浏览| 中文字幕久热视频在线| 亚洲欧美综合| 亚州欧美综合| 欧美三级一级| 性爱av在线免费观看| 欧美人与动性人交a| 九九九九九九免费视频| 另类亚洲图色| 国产精品免费视频不卡| 911av网站免费观看| 久草这里只有精品 | 精品人妻一区二区蜜桃视频| 欧洲精品在线播放| 网页导航五月天免费一二三区| 国产农村妇女精品| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 亚洲啪啪视频一区二区| 99无码狠狠久久| 欧美姓爱综合网| 在线情色电影 91大| 欧美熟妇乱码在线一区| 国产无马av| 最好看的中文字幕在线2018| 91熟女丨老女人| 嫩草黄页| 欧美青青草视频| 乱码熟妇人妻久久久| 禁片 高清 在线观看视频网站| 亚洲无码久久久久久久| 亚洲精品白浆高清久久久久久| 天堂性色| 快灬快灬 一下爽蜜桃在线观看| 人妻无码视频一区二区三区久久| 欧亚久久偷拍视频| 日韩成人色图| 精品无码一区二区| 九九久久九九久久| 色婷婷影院| 欧美日韩人妻精品一区二区三区| 青青草乱入乱欲视频在线观看| 欧美日韩少妇色情| 婷婷色香| 日欧美色| 好吊色一区| 丁香五月婷婷基地| 精品国产精品一区二区| 加勒比大香蕉视频在线| 青草av在线| 蜜臀少妇一区二区| www99热| 亚洲精品色| 超碰79人人乐| 暖暖精品二区三区观看| 东京成人一区| 91欧美美女日韩国产婷婷| 快点操死我| 91在线限制级| 国产a级精品| 久久久久久久久久久97| 欧美少妇内射| 精品一区二区三区四区外站| 天天摸天天舔天天操| 天堂亚洲精品久久老牛| 在线小说视频一区| 99热在线只有精品| 亚州性色| 欧美日韩大黄片| 8050无码八戒| 狠狠综合| 色欲人妻一区二区在线| 情色五月天网| 蜜桃臀一区二区三区久久| 人妻少妇精品无码专区二区密桃 | 久久久久国产精品喷潮免费观看臀 | 欧美制服另类丝袜| 欧美aⅴ99久久黑人专区| 天美传媒在线一区| 国产精品农村妇女| 四虎影视欧美| 人人干人人操人人爱| 天天操夜夜嗨| 婷婷爱五月| 欧美日韩亚洲高清不卡一区二区三区| 日韩中文字幕av在线播放| 国产精品久久久久久久久久久久久久久 | 蜜桃色院一区久久| 超碰导航97| 久久一二三四| 国产精品无码久久久久2028| 婷婷五月丁香五月| 第四色色综合91| 9I1性色影院| www.yeyecao| 无套内射性感少妇视频| 双插在线| 香蕉av一区二区三区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | av线电影| 亚洲天堂一区| 日韩人妻免费精品| 3571色综合一区二区二区| 九九热九九热| 九九人妻| 久久久久国产| 日日AAvv| 插穴性爱视频在线观看| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 亚洲欧美清纯| 天天色悠悠激情| 2024黄色视频| 欧美A片中文字幕| 立川理惠加勒比无码| 久久久久久久久九九久孕交| 日本道日本道中文字幕日本道最新日本道在线观看| 欧美午夜熟妇黑人精品91| 无码外流操逼视频| 久久色一区| 久久超碰免费的| 国产成人亚洲精品无| 久久婷五月天| 蜜桃视频一区二区三区 | 欧美999| 丁香五月天堂| 色网综合网| 超碰国产精品久| 日本一区二区电影网站| 性欧美| 亚洲中文字母在线播放| 男生女生啊啊啊啊| 天天92av| 国产精品成人无码av| 成 人 影视 一区 二区 三区 四区| 欧美在线|亚洲| 青娱乐欧美激情一区二区| 不卡九肏| 亚洲性网| 婷婷综合在线观看| 蜜乳中文字幕a在线| 99色色网| 资源新线在线天堂| 天天干夜夜一操| 啊啊啊好疼| 青青操轻轻| 欧美91在线+|+欧美| 国产精品一区二区久久精品| 欧美激情总合网| 天堂性色| 久久精精区一区二区一蜜桃一区二区| 91在线国产后入风骚翘臀美女素人| 亚洲欧洲综合成人av一区| 欧美激情视频一区二区三区不卡| 美女天天干| 高清不卡国产| 小说区 图片区色 综合区| 高树玛利亚无码流出| 日本成人在线不卡一区二区三区| 神马福利久草| 2018天天日天天日| 亚洲精品欧美专业| 大黄片做爱的大的| 久久国色天香香蕉| 国产精品视屏| 亚洲熟妇无码一区二区三区| 狠狠爱夜夜| 欧美精品成人亚洲| 久久欧洲| 欧美,日韩综合久久| 欧美中字不卡| 婷婷五月天伊人| 日本在线观看网址| 一区二区 电影 亚洲| 国产午夜激片Av毛片不卡| 久久熟女久| 在线视频日韩欧美国产| 天美传媒AV在线播放| 久久极品伊人| 精品人妻一区二区三区四区石在线| 久久久久久大| 新婚人妻扶着粗大强行坐下| 欧美人妻熟女在线| 色五月婷婷在线| 成人AV超碰免费在线| 中文字幕一区二区三区人妻少妇在线| 亚洲一区中文精品| 人乳av| 一个人免费HD91视频| 亚洲Av诱惑| 久久亚洲熟妇在线视频| 久久av一级av少妇av高潮| 狠狠干2020| 激情专区综合| 欧美日韩中文视频播放| 东京热一区二区三区四区五区六区| 成人无码在线视频网站| 青青操日韩| 禁止观看美女黄| 天天操天天干一区二区| 国产视频第二页| 天天看特黄的免费网站| 欧日a| 欧美日韩另类在线| 日本黄色天堂| 少妇与黑人高潮在线| 亚洲国产成人高清在线| 国产主播福利| 人妻天天爽夜夜爽2| 欧美亚综合色图| 亚洲欧美日韩精品久久久一区二区| 精品无吗m| 丝袜美腿91| 久久人人爽爽爽人久久久| 黄色av片三级三级三级免费看| 一本色道久久综合狠狠操| 日韩精品第3页| 1769精品一区二区三区| 国产乱伦视频污| 久久久91| 暴力av在线| 亚洲自拍欧美国产首页网曝| 殴美,日韩国产伦精品| 伊人久久婷婷| 一级毛片久久久久久久女人18| 中文字幕三四区| 男人的天堂va在线| 天天干天天日天天射黄色大片| 日韩啪啪网| 抽插无码高清一区| 一类无码操逼视频| 啊啊啊在线观看| 日1区2区3区2020| 97超碰总站| 亚洲一区二区麻豆影院| 亚洲精品视频在线播放| 精品中文字幕第一页| 国产兽交视频在线播放| 日韩97在线| 肉丝中文无码高清| 天天爱综合网| 欧美97日韩精品| 亚洲黄日韩无码专区| 一区麻豆 高清中文字幕| 东京太热久久久| 日本高清久久| 国产亚洲色婷婷久久99精品91| 高清在线偷拍自拍视频| 国产乱伦搜索结果91P| 久久久久久性爱免费视频| 强乱老妇中文字幕| 天天舔天天日天天射| 大香蕉在线视频重口味毛片在线| 日日日啊啊啊| 精品视频123区小说区| 夜夜操91744565| 人人澡人人爽人人精品| 猛交交| 亚洲综合影视|