最新開源的目標(biāo)檢測(cè)算法來了!
?Datawhale開源?
說到目標(biāo)檢測(cè),那可謂當(dāng)前的自動(dòng)駕駛、新零售、智慧工業(yè)等熱門行業(yè)中的關(guān)鍵技術(shù)之一。目標(biāo)檢測(cè)不僅在行人、車輛、商品以及火災(zāi)檢測(cè)等任務(wù)中發(fā)揮著極其關(guān)鍵的價(jià)值,在目標(biāo)跟蹤、姿態(tài)識(shí)別、手勢(shì)控制、圖像搜索等復(fù)合任務(wù)中也至關(guān)重要。

注*:以上視頻引用于公開數(shù)據(jù)集[1]
而在當(dāng)前端側(cè)智能、端云協(xié)同的行業(yè)發(fā)展趨勢(shì)下,算法在移動(dòng)端的部署應(yīng)用則顯得尤其重要。相較于統(tǒng)一的中心化處理,智能終端可以更好的適應(yīng)差異化的環(huán)境,運(yùn)維成本也更低。然而開發(fā)一個(gè)高質(zhì)量的輕量目標(biāo)檢測(cè)模型卻并不那么容易,現(xiàn)實(shí)環(huán)境中往往存在諸多挑戰(zhàn):
速度要快。比如工業(yè)視覺質(zhì)量檢測(cè)、自動(dòng)駕駛等實(shí)時(shí)場(chǎng)景,延遲可以接受的范圍往往需要在毫秒級(jí)別,要求極其嚴(yán)苛。
精度要高。在自動(dòng)駕駛、火災(zāi)檢測(cè)等場(chǎng)景,一個(gè)微小的錯(cuò)誤都可能帶來嚴(yán)重的損失,對(duì)誤檢、漏檢的容忍度非常低。
體積要小。在手機(jī)端、車載、IOT等邊緣端部署,算力和內(nèi)存都有限,算法需要做到極致壓縮。
部署環(huán)境復(fù)雜多樣。硬件設(shè)備功耗、規(guī)格各色各樣。適配和部署成本簡(jiǎn)直不要太大!
而今天介紹的最新開源的輕量級(jí)目標(biāo)檢測(cè)PP-PicoDet正是為了解決以上痛難點(diǎn)問題,針對(duì)模型的速度、精度和部署友好性做出優(yōu)化,并取得了顯著的成果。
開源地址:
https://github.com/PaddlePaddle/PaddleDetection
其系列中的PP-PicoDet-S參數(shù)量?jī)H有0.99M,卻有30.6%mAP的精度,當(dāng)輸入尺寸為320時(shí),推理速度甚至可達(dá)150FPS,不僅mAP比YOLOX-Nano高4.8%,端側(cè)推理速度還提升了55%;相比NanoDet,mAP也高出了7.1%。
而PP-PicoDet-L則在僅有3.3M參數(shù)量的情況下mAP達(dá)到40.9%,比YOLOv5s高3.7%,推理速度提升44%。
PP-PicoDet技術(shù)報(bào)告地址:
https://arxiv.org/abs/2111.00902
注*:以上圖片引用于報(bào)告[2]

注*:GIF中FPS是包含前處理、預(yù)測(cè)、后處理的端到端耗時(shí),以上視頻引用于公開數(shù)據(jù)集[1]
不僅如此,在此次飛槳目標(biāo)檢測(cè)開發(fā)套件PaddleDetection?v2.3推出的多目標(biāo)實(shí)時(shí)跟蹤系統(tǒng)PP-Tracking和超輕量人體關(guān)鍵點(diǎn)模型PP-TinyPose中,PP-PicoDet也是極其關(guān)鍵的技術(shù)模塊。甚至在近日引起業(yè)界廣泛關(guān)注的通用圖像識(shí)別系統(tǒng)PP-ShiTu中,PP-PicoDet也被用作主體檢測(cè)模塊,以超輕量的體積實(shí)現(xiàn)了超越服務(wù)端大模型的效果!
PP-PicoDet Android APP下載體驗(yàn)指路:
https://paddledet.bj.bcebos.com/deploy/third_engine/PP-PicoDet.apk
(如鏈接不能正常訪問,可復(fù)制到瀏覽器進(jìn)行下載)
下面,就讓我們來一起看看具體都有哪些優(yōu)化策略,讓PP-PicoDet又小又快又準(zhǔn):
01
更高性能的骨干網(wǎng)絡(luò)
一個(gè)高性能的骨干網(wǎng)絡(luò)對(duì)目標(biāo)檢測(cè)模型的性能提升有著至關(guān)重要的作用,PP-PicoDet采用了百度自研的超輕量、高精度骨干網(wǎng)絡(luò)--ESNet(Enhanced ShuffleNet),使得整個(gè)目標(biāo)檢測(cè)模型不僅計(jì)算量更小、延遲更低、精度更高,同時(shí)還擁有更好的魯棒性,能夠更好地適配多種硬件環(huán)境。
ESNet是在ShuffleNetV2的基礎(chǔ)上引入了SE模塊和GhostNet中的Ghost模塊,并新增深度可分離卷積,對(duì)不同通道信息進(jìn)行融合來提升模型精度,同時(shí)還使用神經(jīng)網(wǎng)絡(luò)搜索(NAS)搜索更高效的模型結(jié)構(gòu),進(jìn)一步提升模型性能,最終得到了在精度、速度全方面提升的骨干網(wǎng)絡(luò)。

注*:以上圖片和數(shù)據(jù)引用于報(bào)告[2]
02
更輕量的Neck和Head
在Neck部分,PP-PicoDet提出了CSP-PAN結(jié)構(gòu),使用1*1的卷積將特征的通道數(shù)與BackBone輸出的最小通道數(shù)進(jìn)行統(tǒng)一,從而減少計(jì)算量,并保證特征融合性能不受影響。此外,PP-PicoDet還在CSP-PAN的基礎(chǔ)上再下采樣一次,添加一個(gè)更小的特征尺度來提升大物體的檢測(cè)效果(見下圖P6分支)。
與此同時(shí),PP-PicoDet在Neck和Head部分均采用深度可分離卷積,將3?x?3卷積核增大至5×5,來增大感受野,還保持了速度不變。并且PP-PicoDet采用了通道數(shù)和Neck一致的“耦合頭”,相比于小通道數(shù)的“解耦頭”有更快的預(yù)測(cè)速度。
注*:以上圖片和數(shù)據(jù)引用于報(bào)告[2]
03
更精準(zhǔn)的采樣策略
PP-PicoDet受到Y(jié)OLOX等優(yōu)秀算法的啟發(fā),使用了更精準(zhǔn)的SimOTA采樣策略,隨訓(xùn)練過程動(dòng)態(tài)變換標(biāo)簽分配方式,通過在目標(biāo)區(qū)域采集高質(zhì)量的樣本來有效加速模型收斂。在此基礎(chǔ)上對(duì)其中的cost矩陣計(jì)算進(jìn)行改造,使用VFL+GIoU替代原本的CELoss+IoU,在速度無損的情況下還能有效提升1%的精度。
除此之外,PP-PicoDet還使用了H-Swish激活函數(shù)替代Relu;使用Cosine學(xué)習(xí)率衰減策略;使用Cycle-EMA;加入少量的如Crop、Flip、Multi-Scale等數(shù)據(jù)增強(qiáng)策略進(jìn)行更穩(wěn)定的訓(xùn)練,使得模型精度再次提升3%。
下面就讓我們一起看看以上這一系列優(yōu)化策略的最終效果,從中可以看到:無論是精度還是速度,PP-PicoDet都表現(xiàn)卓越!

注*:測(cè)試設(shè)備為驍龍865,Threads=4,F(xiàn)P16,NCNN(Paddle Lite測(cè)試結(jié)果為*),以上圖片和數(shù)據(jù)引用于報(bào)告[2]
04
更完備的部署支持
作為真正的產(chǎn)業(yè)級(jí)開發(fā)利器,PaddleDetection通過完備支持飛槳原生推理庫Paddle Inference、飛槳輕量化推理引擎Paddle Lite,使開發(fā)者可以快速在主流服務(wù)器、端側(cè)芯片上實(shí)現(xiàn)高性能部署。
并且支持快速導(dǎo)出為ONNX格式,使開發(fā)者可以通過ONNX生態(tài)能力進(jìn)行更廣泛的算法部署應(yīng)用,可以通過自己熟悉的移動(dòng)端引擎進(jìn)行PP-PicoDet的部署和推理。
除此以外,還提供OpenVINO加速部署方案、Android Demo,并且所有流程代碼均已開源,全方位滿足各類硬件環(huán)境部署需求,讓深度學(xué)習(xí)落地的最后一公里再無障礙!

這樣的一個(gè)目標(biāo)檢測(cè)開發(fā)神器已經(jīng)被多家像國(guó)家電網(wǎng)、武漢鐵路局、寧德時(shí)代這樣的行業(yè)巨頭公司所應(yīng)用,真正實(shí)現(xiàn)了助力開發(fā)者,賦能產(chǎn)業(yè)智能化!
開源代碼實(shí)現(xiàn),趕緊Star收藏吧!
https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.3/configs/picodet
05
后續(xù)工作
PP-PicoDet的誕生源于開源,也是回饋開源。考慮到工業(yè)、互聯(lián)網(wǎng)、自動(dòng)駕駛等各行各業(yè)對(duì)移動(dòng)端、邊緣端部署輕量化目標(biāo)檢測(cè)模型的需求越來越強(qiáng)烈,PP-PicoDet致力于提供一種真正面向產(chǎn)業(yè)實(shí)踐的,更高性能、輕量化、更易落地的目標(biāo)檢測(cè)方案,而非單純追求模型指標(biāo)。
與此同時(shí),希望PP-PicoDet的算法本身以及優(yōu)化思路,可以在給業(yè)界開發(fā)者帶來更好算法的同時(shí),也帶來更多的算法優(yōu)化啟發(fā),能夠在此基礎(chǔ)上繼續(xù)提升產(chǎn)出更多優(yōu)秀成果,也歡迎大家通過用戶群、Issue等方式和我們探討交流。在此希望和業(yè)界開發(fā)者攜手為中國(guó)的開源技術(shù)而努力!
以上所有代碼實(shí)現(xiàn),均在PaddleDetection飛槳目標(biāo)檢測(cè)開發(fā)套件中開源提供:
https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.3
歡迎感興趣的小伙伴一起體驗(yàn)、反饋建議并參與共建!你的Star是對(duì)我們工作的最大鼓勵(lì)~

06
相關(guān)學(xué)習(xí)
為了幫助大家能快速、深入、全面地了解目標(biāo)檢測(cè)技術(shù),百度技術(shù)團(tuán)隊(duì)將于11月23-26日19:00-20:00開設(shè)“目標(biāo)檢測(cè)4日直播課”。由資深研發(fā)工程師傾囊相授多年“煉丹”經(jīng)驗(yàn),配套真實(shí)工業(yè)落地場(chǎng)景案例,最先進(jìn)的調(diào)優(yōu)方式、訓(xùn)練技巧、優(yōu)化技巧和工業(yè)部署方案,想?yún)⑴c學(xué)習(xí)的不要錯(cuò)過!
掃描二維碼,加入交流群
[1] 所用到的所有數(shù)據(jù)分別來源于以下數(shù)據(jù)集:
《表計(jì)讀數(shù)》數(shù)據(jù)來源于:中興克拉數(shù)據(jù)集
《安全帽檢測(cè)》數(shù)據(jù)來源于:https://github.com/njvisionpower/Safety-Helmet-Wearing-Dataset ?
《自動(dòng)駕駛》數(shù)據(jù)集來源于:Yu F, Chen H, Wang X, et al. Bdd100k: A diverse driving dataset for heterogeneous multitask learning[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2020: 2636-2645.
《人員摔倒檢測(cè)》數(shù)據(jù)來源于:泰思通數(shù)據(jù)集
《火災(zāi)/煙霧檢測(cè)》數(shù)據(jù)來源于:https://github.com/gengyanlei/fire-smoke-detect-yolov4
《PCB瑕疵檢測(cè)》數(shù)據(jù)來源于:北京大學(xué)印刷電路板(PCB)瑕疵數(shù)據(jù)集
《多人舞蹈關(guān)鍵點(diǎn)檢測(cè)》數(shù)據(jù)集來源于YouTube. (2016, August 10). 100 People of Dance [Video file]. Retrieved from https://www.youtube.com/watch?v=qrTi2aLx8dw ?
《行人檢測(cè)與跟蹤》數(shù)據(jù)來源于公開數(shù)據(jù)集:Milan A, Leal-Taixé L, Reid I, et al. MOT16: A benchmark for multi-object tracking[J]. arXiv preprint arXiv:1603.00831, 2016.
《飛行器跟蹤》、《戰(zhàn)斗機(jī)跟蹤》數(shù)據(jù)集來源于:Bai H, Cheng W, Chu P, et al. GMOT-40: A Benchmark for Generic Multiple Object Tracking[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 6719-6728.
《車輛跟蹤》數(shù)據(jù)集來源于Zhu P, Wen L, Du D, et al. Vision meets drones: Past, present and future[J]. arXiv preprint arXiv:2001.06303, 2020.
《人頭跟蹤》數(shù)據(jù)來源于:Sundararaman R, De Almeida Braga C, Marchand E, et al. Tracking Pedestrian Heads in Dense Crowd[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 3865-3875.
[2] 圖片及數(shù)據(jù)來自PP-PicoDet技術(shù)報(bào)告:https://arxiv.org/abs/2111.00902
