博客專欄

EEPW首頁(yè) > 博客 > FastestDet:比yolov5更快!更強(qiáng)!全新設(shè)計(jì)的超實(shí)時(shí)Anchor-free目標(biāo)檢測(cè)算法(附源代碼下載)

FastestDet:比yolov5更快!更強(qiáng)!全新設(shè)計(jì)的超實(shí)時(shí)Anchor-free目標(biāo)檢測(cè)算法(附源代碼下載)

發(fā)布人:CV研究院 時(shí)間:2022-10-19 來(lái)源:工程師 發(fā)布文章

本篇文章轉(zhuǎn)自于知乎——qiuqiuqiu,主要設(shè)計(jì)了一個(gè)新穎的輕量級(jí)網(wǎng)絡(luò)!

代碼地址:https://github.com/dog-qiuqiu/FastestDet


01

概述


FastestDet是設(shè)計(jì)用來(lái)接替yolo-fastest系列算法,相比于業(yè)界已有的輕量級(jí)目標(biāo)檢測(cè)算法如yolov5n, yolox-nano, nanoDet, pp-yolo-tiny, FastestDet和這些算法壓根兒不是一個(gè)量級(jí),F(xiàn)astestDet無(wú)論在速度還是參數(shù)量上,都是要小好幾個(gè)數(shù)量級(jí)的(不要在拿int8的模型和我fp32的模型比體積了,不公平),但是精度自然而然也比不過(guò)。FastestDet是針對(duì)計(jì)算資源緊缺的ARM平臺(tái)設(shè)計(jì)的,突出單核效能,因?yàn)樵趯?shí)際業(yè)務(wù)場(chǎng)景中,不會(huì)把所有CPU資源都給推理框架做模型推理的,假如說(shuō)你想在例如樹莓派, RK3399, RK3568去跑實(shí)時(shí)目標(biāo)檢測(cè),那么FastestDet是比較好的選擇,或者移動(dòng)端上不想占用太多cpu資源,也可以去用單核并設(shè)置cpu sleep去推理FastestDet,在低功耗的條件下運(yùn)行算法。

圖片


02

新框架算法


先說(shuō)下FastestDet的幾個(gè)重要特性: 

  • 單輕量化檢測(cè)頭

  • anchor-free

  • 跨網(wǎng)格多候選目標(biāo)

  • 動(dòng)態(tài)正負(fù)樣本分配

  • 簡(jiǎn)單的數(shù)據(jù)增強(qiáng)

下面我就一個(gè)個(gè)去詳細(xì)講下吧:

單輕量化檢測(cè)頭

這個(gè)是對(duì)網(wǎng)絡(luò)結(jié)構(gòu)上對(duì)算法模型進(jìn)行優(yōu)化,主要是提升算法運(yùn)行速度,簡(jiǎn)化后處理步驟,大家可以先看下這塊的網(wǎng)絡(luò)結(jié)構(gòu):

圖片

其實(shí)多檢測(cè)頭設(shè)計(jì)的是為了適應(yīng)檢測(cè)不同尺度物體目標(biāo),高分辨率的檢測(cè)頭負(fù)責(zé)檢測(cè)小物體,低分辨的檢測(cè)頭負(fù)責(zé)檢測(cè)大物體,一種分而治之的思想。

我個(gè)人覺(jué)得根因在于感知野,不同尺度的物體所需要的感知野是不同的,而模型每層的感知野都是不一樣的,包括FPN也是對(duì)不同感知野特征的匯總?cè)诤稀_@塊單檢測(cè)頭我也是參考的YOLOF的思想,在網(wǎng)絡(luò)結(jié)構(gòu)中,采用類似inception的5x5分組卷積并行網(wǎng)絡(luò)結(jié)構(gòu),期待能融合不同感知野的特征,讓單個(gè)檢測(cè)頭也能適應(yīng)檢測(cè)不同尺度的物體。

Anchor-Free

原先的anchor-base算法在訓(xùn)練模型都需要對(duì)數(shù)據(jù)集進(jìn)行anchor-bias的運(yùn)算,anchor-bias可以理解為對(duì)數(shù)據(jù)集中標(biāo)注物體的寬高進(jìn)行聚類,得到一組先驗(yàn)寬高,網(wǎng)絡(luò)在這組先驗(yàn)寬高的基礎(chǔ)上去優(yōu)化預(yù)測(cè)框的寬高。FastestDet采用的是anchor-free算法,模型是直接回歸gt于特征圖寬高的scale值的,是沒(méi)有先驗(yàn)寬高。這種方法可以簡(jiǎn)化模型后處理。而且對(duì)于anchor-base算法每個(gè)特征圖的特征點(diǎn)是對(duì)應(yīng)N個(gè)anchor候選框的,而這種anchor-free每個(gè)特征圖的特征點(diǎn)只對(duì)應(yīng)一個(gè)候選框,所以在推理速度上也是有優(yōu)勢(shì)的。

跨網(wǎng)格多候選目標(biāo)

這塊還是借鑒了yolov5,不單單只把gt中心點(diǎn)所在的網(wǎng)格當(dāng)成候選目標(biāo),還把附近的三個(gè)也算進(jìn)行去,增加正樣本候選框的數(shù)量,如下圖所示:

圖片


動(dòng)態(tài)正負(fù)樣本分配

所謂的動(dòng)態(tài)正負(fù)樣本分配其實(shí)就是在模型訓(xùn)練過(guò)程去動(dòng)態(tài)分配正負(fù)樣本,這是有別于以前yolo-fastest的,原先yolo-fastest的anchor-bias設(shè)置好以后, 通過(guò)計(jì)算anchor-bias與gt寬高的scale,對(duì)scale卡固定閾值分配正負(fù)樣本(參考yolov5的做法),而anchor-bias和gt在訓(xùn)練過(guò)程中都是不變的,所以正負(fù)樣本分配在訓(xùn)練過(guò)程中也是不變的。

而在FastestDet的正負(fù)樣本分配參考的ATSS,通過(guò)設(shè)置預(yù)測(cè)框與GT計(jì)算的SIOU的均值作為分配正負(fù)樣本的閾值,假如當(dāng)前預(yù)測(cè)框與GT的SIOU閾值大于均值,那么為正樣本,反之異然。(為什么沒(méi)有參考simota?那是因?yàn)樵跇?gòu)建cost矩陣時(shí),不同loss的權(quán)重還得調(diào)超參,懶的調(diào)了)

簡(jiǎn)單的數(shù)據(jù)增強(qiáng)

對(duì)于輕量級(jí)的模型數(shù)據(jù)增強(qiáng)要慎重,本來(lái)學(xué)習(xí)能力差,腦子不怎么好使,上來(lái)給難題做可不拉跨,所以采用簡(jiǎn)單的數(shù)據(jù)增強(qiáng)如隨機(jī)平移和隨機(jī)縮放,并沒(méi)有采用moscia和Mixup。


03

實(shí)驗(yàn)結(jié)果


圖片


圖片

圖片


圖片


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉