<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 除了Yolo的其他選擇,輕量級檢測網(wǎng)絡(luò )層出不窮(框架解析及部署實(shí)踐)

除了Yolo的其他選擇,輕量級檢測網(wǎng)絡(luò )層出不窮(框架解析及部署實(shí)踐)

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

開(kāi)源代碼:https://github.com/RangiLyu/nanodet

前言&背景


圖片

圖像選自于《https://www.cnblogs.com/azureology/p/14103685.html》

目標檢測是現在最熱門(mén)的研究課題,也一直是工業(yè)界重點(diǎn)研究的對象,最近幾年內,也出現了各種各樣的檢測框架,所屬于YOLO系列是最經(jīng)典也是目前被大家認可使用的檢測框架。

圖片

然而,隨著(zhù)工業(yè)的應用發(fā)展,要求也越來(lái)越嚴格,正常的檢測框架已經(jīng)無(wú)法滿(mǎn)足現在的檢測需求,所有現在的輕量級是備受大家的關(guān)注。深度學(xué)習目標檢測方法還可劃分為Anchor-base和Anchor-free兩大類(lèi),今年又出現了將Transformer用于目標檢測的嘗試。

  • CVPR21目標檢測新框架:不再是YOLO,而是只需要一層特征(干貨滿(mǎn)滿(mǎn),建議收藏)

  • 目標檢測 | Anchor free的目標檢測進(jìn)階版本

  • ICCV2021:阿里達摩院將Transformer應用于目標重識別,效果顯著(zhù)(附源代碼)

但是,在移動(dòng)端目標檢測算法上,Yolo系列Anchor-base的模型一直占據主導地位。但是今天“計算機視覺(jué)研究院”介紹的是Anchor-free的NANODet框架以及部署應用。

圖片


2

框架介紹


圖片

Super fast and lightweight anchor-free object detection model. Real-time on mobile devices.

圖片

真實(shí)使用NANODet框架,確實(shí)比YOLO-Fastest系列好用很多,比YOLOF都好用一些,下一期,我們“計算進(jìn)視覺(jué)研究院”計劃給大家一起來(lái)詳細說(shuō)說(shuō)YOLO-Fastest系列。

圖片

現在Github提供的整體,都已在安卓運行,華為P30上用NCNN移植跑benchmark,每幀僅需10.23毫秒,比yolov4-tiny快3倍,參數量小6倍,COCO mAP(0.5:0.95)能夠達到20.6 。而且模型權重文件只有1.8mb。

圖片


圖片

我們現在先說(shuō)下NANODet的具體創(chuàng )新。首先是檢測頭,需要對移動(dòng)端進(jìn)行優(yōu)化的就是檢測頭:FCOS系列使用了共享權重的檢測頭,即對FPN出來(lái)的多尺度Feature Map使用同一組卷積預測檢測框,然后每一層使用一個(gè)可學(xué)習的Scale值作為系數,對預測出來(lái)的框進(jìn)行縮放。圖片

圖片來(lái)自于:

https://openaccess.thecvf.com/content_ICCV_2019/papers/Tian_FCOS_Fully_Convolutional_One-Stage_Object_Detection_ICCV_2019_paper.pdf

這么做的好處是能夠將檢測頭的參數量降低為不共享權重狀態(tài)下的 1/5。這對于光是檢測頭就擁有數百通道卷積的大模型來(lái)說(shuō)非常有用,但是對于輕量化模型來(lái)說(shuō),共享權重檢測頭并沒(méi)有很大的意義。由于移動(dòng)端模型推理由 CPU 執行計算,共享權重并不會(huì )帶來(lái)推理過(guò)程的加速,而且在檢測頭非常輕量的情況下,共享權重使其檢測能力進(jìn)一步下降,因此項目作者認為選擇對每一層特征使用一組卷積比較合適。


,時(shí)長(cháng)00:53


其次,是對損失函數做了一些改變。將FCOS輕量化處理時(shí),由于FCOS的centerness分支在輕量級的模型上很難收斂,模型效果不如預期。最終,NanoDet使用了李翔等人提出的Generalized Focal Loss損失函數。該函數能夠去掉FCOS的Centerness分支,省去這一分支上的大量卷積,從而減少檢測頭的計算開(kāi)銷(xiāo),非常適合移動(dòng)端的輕量化部署。

圖片

圖片

改論文地址:https://arxiv.org/pdf/2006.04388.pdf最后,項目作者借鑒了Yolo系列的做法,將邊框回歸和分類(lèi)使用同一組卷積進(jìn)行計算,然后 split 成兩份。最終得到的輕量化檢測頭如下圖所示:圖片

FPN 層改進(jìn)

摘自于《機器之心》

目前針對 FPN 的改進(jìn)有許多,如EfficientDet使用了BiFPN,YOLO v4和v5使用了PAN,除此之外還有BalancedFPN等等。BiFPN雖然性能強大,但是堆疊的特征融合操作會(huì )導致運行速度降低,而PAN只有自上而下和自下而上兩條通路,非常簡(jiǎn)潔,是輕量級模型特征融合的好選擇。

圖片

原版的PAN和YOLO系列中的PAN都使用了stride=2的卷積進(jìn)行大尺度Feature Map到小尺度的縮放。而該項目出于輕量化的考慮,選擇完全去掉 PAN 中的所有卷積,只保留從骨干網(wǎng)絡(luò )特征提取后的1x1卷積來(lái)進(jìn)行特征通道維度的對齊,上采樣和下采樣均使用插值來(lái)完成。與YOLO使用的concatenate操作不同,項目作者選擇將多尺度的Feature Map直接相加,使整個(gè)特征融合模塊的計算量變得非常小最終得到的極小版 PAN結構非常簡(jiǎn)單:

圖片
圖片源自于《https://zhuanlan.zhihu.com/p/306530300

主干網(wǎng)絡(luò )

項目作者選擇使用ShuffleNetV2 1.0x作為主干網(wǎng)絡(luò ),他去掉了該網(wǎng)絡(luò )的最后一層卷積,并且抽取8、16、32倍下采樣的特征輸入到PAN中做多尺度的特征融合。整個(gè)主干模型使用了Torchvision提供的代碼,能夠直接加載Torchvision上提供的imagenet預訓練權重,對加快模型收斂起到很大幫助。

圖片

3

部署

生成部署文件

  • pth 轉化為ONNX


python tools/export.py --cfg_path /config/EfficientNet-Lite/nanodet-EfficientNet-Lite1_416.yml --model_path  /model_best/model_best.pth --out_path model_test.onnx --input_shape 416,416

  • ONNX轉化NCNN

1)編譯ncnn

參考   https://blog.csdn.net/weixin_40970506/article/details/105148061

2)安裝onnx==1.8.1

3)cd onnx-simplifier-master


python -m onnxsim  /nanodet/nanodet-main/tools/model_test.onnx nanodet_sim.onnx

4)轉換成bin

cd  /ncnn-master/build/tools/onnx


./onnx2ncnn /onnx-simplifier-master/nanodet_sim.onnx nanodet_m.param nanodet_m.bin



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

伺服電機相關(guān)文章:伺服電機工作原理




關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>