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

注*:以上視頻引用于公開數(shù)據(jù)集[1]
圖1?PaddleDetection產(chǎn)業(yè)應(yīng)用效果示例
而在當(dāng)前端側(cè)智能、端云協(xié)同的行業(yè)發(fā)展趨勢下,算法在移動(dòng)端的部署應(yīng)用則顯得尤其重要。相較于統(tǒng)一的中心化處理,智能終端可以更好的適應(yīng)差異化的環(huán)境,運(yùn)維成本也更低。然而開發(fā)一個(gè)高質(zhì)量的輕量目標(biāo)檢測模型卻并不那么容易,現(xiàn)實(shí)環(huán)境中往往存在諸多挑戰(zhàn):
速度要快。比如工業(yè)視覺質(zhì)量檢測、自動(dòng)駕駛等實(shí)時(shí)場景,延遲可以接受的范圍往往需要在毫秒級別,要求極其嚴(yán)苛。
精度要高。在自動(dòng)駕駛、火災(zāi)檢測等場景,一個(gè)微小的錯(cuò)誤都可能帶來嚴(yán)重的損失,對誤檢、漏檢的容忍度非常低。
體積要小。在手機(jī)端、車載、IOT等邊緣端部署,算力和內(nèi)存都有限,算法需要做到極致壓縮。
部署環(huán)境復(fù)雜多樣。硬件設(shè)備功耗、規(guī)格各色各樣。適配和部署成本簡直不要太大!
而今天介紹的最新開源的輕量級目標(biāo)檢測PP-PicoDet正是為了解決以上痛難點(diǎn)問題,針對模型的速度、精度和部署友好性做出優(yōu)化,并取得了顯著的成果。
話不多說,直接奉上開源代碼實(shí)現(xiàn):
https://github.com/PaddlePaddle/PaddleDetection
強(qiáng)烈建議各位Star收藏,深入研究使用。
其系列中的PP-PicoDet-S參數(shù)量僅有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]
圖2 PP-PicoDet性能對比圖

注*:GIF中FPS是包含前處理、預(yù)測、后處理的端到端耗時(shí),以上視頻引用于公開數(shù)據(jù)集[1]
圖3 PP-PicoDet移動(dòng)端和不同模型效果對比
不僅如此,在此次飛槳目標(biāo)檢測開發(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)注的通用圖像識別系統(tǒng)PP-ShiTu中,PP-PicoDet也被用作主體檢測模塊,以超輕量的體積實(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):
更高性能的骨干網(wǎng)絡(luò)
一個(gè)高性能的骨干網(wǎng)絡(luò)對目標(biāo)檢測模型的性能提升有著至關(guān)重要的作用,PP-PicoDet采用了百度自研的超輕量、高精度骨干網(wǎng)絡(luò)--ESNet(Enhanced ShuffleNet),使得整個(gè)目標(biāo)檢測模型不僅計(jì)算量更小、延遲更低、精度更高,同時(shí)還擁有更好的魯棒性,能夠更好地適配多種硬件環(huán)境。
ESNet是在ShuffleNetV2的基礎(chǔ)上引入了SE模塊和GhostNet中的Ghost模塊,并新增深度可分離卷積,對不同通道信息進(jìn)行融合來提升模型精度,同時(shí)還使用神經(jīng)網(wǎng)絡(luò)搜索(NAS)搜索更高效的模型結(jié)構(gòu),進(jìn)一步提升模型性能,最終得到了在精度、速度全方面提升的骨干網(wǎng)絡(luò)。

注*:以上圖片和數(shù)據(jù)引用于報(bào)告[2]
圖4 ESNet?& ShuffleNetV2性能對比
更輕量的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è)更小的特征尺度來提升大物體的檢測效果(見下圖P6分支)。
與此同時(shí),PP-PicoDet在Neck和Head部分均采用深度可分離卷積,將3?x?3卷積核增大至5×5,來增大感受野,還保持了速度不變。并且PP-PicoDet采用了通道數(shù)和Neck一致的“耦合頭”,相比于小通道數(shù)的“解耦頭”有更快的預(yù)測速度。
注*:以上圖片和數(shù)據(jù)引用于報(bào)告[2]
圖5 PP-PicoDet整體架構(gòu)示意圖
更精準(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ǔ)上對其中的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)卓越!

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

課程預(yù)告
百度飛槳為了幫助大家能快速、深入、全面地了解目標(biāo)檢測技術(shù),將于11月23-26日19:00-20:00特地開設(shè)“目標(biāo)檢測4日直播課”。由資深研發(fā)工程師傾囊相授多年“煉丹”經(jīng)驗(yàn),配套真實(shí)工業(yè)落地場景案例,最先進(jìn)的調(diào)優(yōu)方式、訓(xùn)練技巧、優(yōu)化技巧和工業(yè)部署方案,帶您一網(wǎng)打盡,千萬不要錯(cuò)過!
微信掃碼報(bào)名課程,即可加入官方技術(shù)交流群,在這里您可以獲得更高效的問題答疑,與各行各業(yè)開發(fā)者充分交流,期待您的加入!更多飛槳的相關(guān)內(nèi)容,請參閱以下內(nèi)容。
掃碼報(bào)名直播課,加入技術(shù)交流群
精彩內(nèi)容搶先看
官網(wǎng)地址:
https://www.paddlepaddle.org.cn
飛槳PaddleDetection項(xiàng)目地址:
GitHub: https://github.com/PaddlePaddle/PaddleDetection
Gitee: https://gitee.com/paddlepaddle/PaddleDetection
(如果您覺得PP-PicoDet對您帶來了一些啟發(fā)或者的確實(shí)用的話,也歡迎您可以給PaddleDetection項(xiàng)目點(diǎn)亮Star。)
飛槳開源框架項(xiàng)目地址:
GitHub: https://github.com/PaddlePaddle/Paddle
Gitee: https://gitee.com/paddlepaddle/Paddle
圖片數(shù)據(jù)引用說明:
[1] 所用到的所有數(shù)據(jù)分別來源于以下數(shù)據(jù)集:
《表計(jì)讀數(shù)》數(shù)據(jù)來源于:中興克拉數(shù)據(jù)集
《安全帽檢測》數(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.
《人員摔倒檢測》數(shù)據(jù)來源于:泰思通數(shù)據(jù)集
《火災(zāi)/煙霧檢測》數(shù)據(jù)來源于:https://github.com/gengyanlei/fire-smoke-detect-yolov4
《PCB瑕疵檢測》數(shù)據(jù)來源于:北京大學(xué)印刷電路板(PCB)瑕疵數(shù)據(jù)集
《多人舞蹈關(guān)鍵點(diǎn)檢測》數(shù)據(jù)集來源于YouTube. (2016, August 10). 100 People of Dance [Video file]. Retrieved from https://www.youtube.com/watch?v=qrTi2aLx8dw ?
《行人檢測與跟蹤》數(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
