百度:YOLOX和NanoDet都沒我優(yōu)秀!輕量型實時目標檢測模型PP-PicoDet開源
導讀
百度提出新型移動端實時檢測模型PP-PicoDet。本文對anchor-free策略在輕量型檢測器中的應用進行了探索;對骨干結構進行了增強并設計了一種輕量Neck部件;同時對SimOTA策略與Loss進行了改進。通過上述改進,所提PP-PicoDet取得了超越其他實時檢測模型的性能。
論文鏈接:https://arxiv.org/abs/2111.00902
代碼鏈接:https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.3/configs/picodet
比YOLOX還要優(yōu)秀,百度提出新型移動端實時檢測模型PP-PicoDet。本文對anchor-free策略在輕量型檢測器中的應用進行了探索;對骨干結構進行了增強并設計了一種輕量Neck部件;同時對SimOTA策略與Loss進行了改進。通過上述改進,所提PP-PicoDet取得了超越其他實時檢測模型的性能。比如:PicoDet-S僅需0.99M參數(shù)即可取得30.6%mAP,比YOLOX-Nano高4.8%同時推理延遲降低55%,比NanoDet指標高7.1%,同時推理速度高達150fps(驍龍865)。
Abstract
更佳的精度-效率均衡已成為目標檢測領域極具挑戰(zhàn)性問題。本文致力于目標檢測的關鍵技術優(yōu)化與架構選擇以提升其性能與效率。
我們對anchor-free策略在輕量型目標檢測模型中的應用進行了探索;我們對骨干結構進行了增強并設計了一種輕量型Neck結構以提升模型的特征提取能力;我們對label assignment策略與損失函數(shù)進行了改進以促進更穩(wěn)定、更高效的訓練。通過上述優(yōu)化,我們構建了一類實時目標檢測器PP-PicoDet,它在移動端設備上取得了非常優(yōu)異的性能。
相比其他主流檢測模型,所提方案取得了更好的精度-效率均衡。比如
PicoDet-S僅需0.99M參數(shù)即可取得30.6%mAP,比YOLOX-Nano高4.8%同時推理延遲降低55%,比NanoDet指標高7.1%;當輸入尺寸為320時,在移動端ARM CPU上可以達到123FPS處理速度,推理框架為PaddleLite時,推理速度可達150FPS。
PicoDet-M僅需2.15M參數(shù)即可取得34.3%mAP指標;
PicoDet-L僅需3.3M參數(shù)即可取得40.9%mAP,比YOLOv5s高3.7%mAP,推理速度快44%。
如下圖所示,所提方案具有最佳的精度-效率均衡。
Contribution
本文貢獻主要包含以下幾點:
采用CSP架構構建CSP-PAN,它通過卷積對所有分支輸入通道進行統(tǒng)一,大幅提升特征提取能力,同時減少了參數(shù)量。與此同時,我們將深度卷積從擴展到提升感受野;
label assignment是目標檢測非常重要的模塊。我們在SimOTA的基礎上對某些計算細節(jié)進行了優(yōu)化,在不損失效率的同時增強了性能。具體來說,我們采用VarifocalLoss與GIoULoss的加權組合計算損失矩陣 。
ShuffleNetV2在移動端非常高效,我們對其進行了增強并提出一種新的骨干ESNet(Enhanced ShuffleNet, ESNet);
提出一種用于檢測的改進版One-Shot NAS方案以尋找最佳的架構。
Method
接下來,我們將首先呈現(xiàn)設計思路與NAS搜索方案,這有助于提升精度、降低推理延遲;然后我們再介紹關于Neck與Head模塊的增強策略;最后我們對Label Assignment以及其他提升性能的策略進行介紹。
Better Backbone
實驗發(fā)現(xiàn):相比其他模型,ShuffleNetV2在移動端具有更好的魯棒性 。為提升ShuffleNetV2的性能,我們參考PP-LCNet對其進行了增強并構建一種新的骨干ESNet。
上圖給出了ESNet中的ESBlock結構示意圖。SE是一種非常棒的提升特征表達能力的操作,故ESBlock中包含了SE模塊。SE模塊的設計參考了MobileNetV3,即兩個激活函數(shù)分別為Sigmoid、H-Sigmoid。
通道置換為ShuffleNetV2中的通道提供了信息交換,但它會導致融合特征損失。為解決該問題,當stride=2時,我們添加了depth與point卷積對不同通道信息進行融合(見上圖3-a)。
GhostNet中的Ghost模塊能夠用更少的參數(shù)生成更多特征并提升模型的學習能力。因此,當stride=1時,我們在ESBlock中引入Ghost模塊以提升其性能(見上圖3-b)。
上述部分內容是手工方式的模塊設計,文中還用到了NAS技術對ESNet進行搜索以更好的適配檢測模型。對該部分內容感興趣的同學建議查看原文,筆者對此暫時略過。
CSP-PAN and Detector Head
上圖給出了PP-PicoDet整體架構示意圖。接下來,我們重點關注CSP-PAN與Head部分。CSP結構已被廣泛應用于YOLOv4與YOLOX的Neck部分。
在原始CSP-PAN中,每個輸出特征的通道數(shù)與源自骨干的輸入通道數(shù)保持相同。大通道數(shù)的結構在移動端存在昂貴的計算消耗。我們通過 卷積將輸出特征的通道數(shù)調整到最小通道數(shù) 以解決上述問題。
Top-down與bottom-up兩路特征融合通過CSP結構執(zhí)行。此外,我們還在CSP-PAN的基礎上添加了一個特征尺度以檢測更多目標(見上圖P6分支)。與此同時,除了卷積外,其他卷積均為深度卷積。這種結構設計可以帶來可觀的性能提升,同時參數(shù)量更少。
在檢測頭部分,我們采用深度分離卷基于卷積提升感受野。深度分離卷積的數(shù)量可以設置為2、4或者更多。Neck與Head均具有四個尺度分支,我們保持兩者的通道數(shù)一致。YOLOX采用更少通道數(shù)的“解耦頭”提升性能;而PP-PicoDet的“耦合頭”具有更好的性能,且無需減少通道數(shù) 。該方案的Head與YOLOX的Head具有幾乎相同的參數(shù)量和推理速度。
Label Assignment Strategy and Loss
正負樣本的標簽分類對于目標檢測器有著非常重要的影響。RetinaNet通過IoU進行正負樣本劃分;FCOS則將中心點位于GT的anchor視作正樣本;YOLOv4與YOLOv5則選擇中心點與近鄰anchor作為正樣本;ATSS則通過統(tǒng)計信息進行正負樣本劃分;SimOTA則是一種隨訓練過程而動態(tài)變換的標簽分配策略,具有更好的性能。因此,我們選擇SimOTA作為標簽分配方案。
在SimOTA的基礎上,我們對其cost矩陣進行優(yōu)化,采用VarifocalLoss與GIoULoss的加權組合計算。定義如下:
對于分類頭,我們采用VarifocalLoss耦合分類預測與質量預測;對于回歸頭,我們采用GIoU與DistributionFocalLoss。整體損失定義如下:
Other Strategies
近年來,越來越多的激活函數(shù)取得了比ReLU更優(yōu)的性能。其中,H-Swish是一種移動端友好的算子,故我們將檢測器中的ReLU替換為H-Swish,性能大幅提升同時推理速度不變 。
相比線性學習率機制,cosine 學習率機制更為平滑且有益于訓練穩(wěn)定性。
過多的數(shù)據(jù)增強可以提升增強效應,但會影響輕量型模型的訓練難度。因此,我們僅使用RandomFlip, RandomCrop, Multi-scale Resize等數(shù)據(jù)增廣。
Experiments
上表給出了所提方案與其他輕量型檢測器的性能對比,從中可以看到:無論是精度還是速度,所提方案均大幅超越了所有YOLO模型 。性能的提升主要源于以下幾點改進:
Neck部分比其他YOLO模型更輕量,故骨干與Head可以賦予更多計算量;
VarifocalLoss的組合可以處理類別不平衡、動態(tài)學習樣本分類與FOCS的回歸方案在輕量模型中表現(xiàn)更佳;
在相同參數(shù)量下,PP-PicoDet-S超越了YOLOX-Nano與NanoDet;PP-PicoDet-L的精度與速度均超越了YOLOv5s。此外,由于更高效的卷積優(yōu)化,PaddleLite的推理速度要比NCNN更快。總而言之,PP-PicoDet在極大程度上領先其他SOTA模型。
Ablation Study
上表給出了PP-PicoDet從基線模型逐步優(yōu)化而來的性能對比?;€模型類似NanoDet,骨干為ShuffleNetV2-1x,Neck采用了無卷積PAN,損失采用了GFL,標簽分配采用ATSS,激活函數(shù)為LeakyReLU。從中可以看到:
采用本文所提CSP-PAN可以帶來3.8%mAP指標提升,而參數(shù)量提升少于50K;
相比QFL,VFL可以帶來0.1%mAP指標提升;
ATSS與SimOTA具有相同的性能,而改進版SimOTA可以將性能提升到30.0%mAP;
相比LeakyReLU,H-Swish可以帶來0.9%mAP指標提升。
上表對比了ShuffleNetV2-1.5x與ESNet-1x的性能,可以看到:ESNet具有更高的性能、更快的推理速度、更少的計算量。
上表對比了人工設計模型與NAS搜索模型的性能,可以看到:搜索到的模型的指標僅下降0.2%mAP,而推理延遲減少41.5% 。因此,我們將基線模型的骨干替換為ESNet-0.75x,參數(shù)量減少約200K,而性能僅下降0.3%mAP。
本文僅做學術分享,如有侵權,請聯(lián)系刪文。
*博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。