PaddleDetection v2.6發(fā)布:目標(biāo)???數(shù)據(jù)缺?標(biāo)注累?泛化差?PP新員逐一應(yīng)對!
從2022年10月份開始,大家已經(jīng)陸續(xù)在PaddleDetection倉庫的develop分支下嘗鮮體驗了一些預(yù)發(fā)布的新算法。如今經(jīng)過4個月的打磨升級,PaddleDetection v2.6正式發(fā)布,最新版本有哪些更新以及性能提升呢?快來打開這份更新解讀吧!
更新重點
PP-YOLOE家族再添新員,半監(jiān)督、少樣本、蒸餾學(xué)習(xí)加持,旋轉(zhuǎn)框、小目標(biāo)、密集全場景檢測覆蓋;
PP-Human、PP-Vehicle:功能新增、推理提速、多路視頻流支持;
半監(jiān)督檢測、少樣本學(xué)習(xí)、模型蒸餾算法全面開源,助力解決少樣本、泛化性、標(biāo)注量、冷啟動問題。
點擊鏈接快速體驗https://github.com/PaddlePaddle/PaddleDetection
關(guān)于PaddleDetection的技術(shù)問題以及文末彩蛋歡迎大家入群討論,也歡迎大家在GitHub點star支持我們的工作!


01 PP-YOLOE家族再添新員
在了解PP-YOLOE家族v2.6升級內(nèi)容前,讓我們先回顧一下PP-YOLOE+模型的特點。
PP-YOLOE+是基于飛槳云邊一體高精度模型PP-YOLOE迭代優(yōu)化升級的版本,具備以下特點:
訓(xùn)練收斂加速:使用Objects365預(yù)訓(xùn)練模型,減少訓(xùn)練輪數(shù),訓(xùn)練收斂速度提升3.75倍。
下游任務(wù)泛化性顯著提升:在農(nóng)業(yè)、夜間安防、工業(yè)等不同場景數(shù)據(jù)集上驗證,精度最高提升8.1%。
高性能部署能力:本次升級PP-YOLOE+支持多種部署方式,包括Python/C++、Serving、ONNX Runtime、ONNX-TRT、INT8量化等部署能力。
超強性能與超高泛化性使得PP-YOLOE+助力開發(fā)者在最短時間、最少量數(shù)據(jù)上能得到最優(yōu)效果。如下圖是PP-YOLOE+各個版本模型的性能情況

下圖是PP-YOLOE+與其他YOLO主流模型的benchmark情況。在速度和精度上面,PP-YOLOE+均有優(yōu)勢。

了解更多https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/ppyoloe
在v2.6更新內(nèi)容中,基于PP-YOLOE+的基礎(chǔ):
我們補充了旋轉(zhuǎn)框檢測、小目標(biāo)檢測、密集檢測場景專用模型
同時針對端側(cè)GPU場景的超高推理速度要求,進(jìn)一步補充了超輕量通用目標(biāo)檢測模型PP-YOLOE+_t版本
同時我們提供了這些通用模型和專用模型(旋轉(zhuǎn)框檢測、小目標(biāo)檢測、密集檢測)的半監(jiān)督學(xué)習(xí)、少樣本學(xué)習(xí)、模型蒸餾技術(shù)方案,助力解決業(yè)務(wù)場景中少樣本、泛化性、標(biāo)注量、冷啟動等難題。
接下來就具體看一下吧。
PART1 PP-YOLOE+旋轉(zhuǎn)框、小目標(biāo)、密集全場景檢測覆蓋
PP-YOLOE-R:旋轉(zhuǎn)框檢測模型

PP-YOLOE-R(Rotate)是一個高效的單階段Anchor-free旋轉(zhuǎn)框檢測模型,基于PP-YOLOE+引入了一系列改進(jìn)策略來提升檢測精度。
根據(jù)不同的硬件對精度和速度的要求,PP-YOLOE-R包含s/m/l/x四個尺寸的模型。在DOTA 1.0數(shù)據(jù)集上,PP-YOLOE-R-l和PP-YOLOE-R-x在單尺度訓(xùn)練和測試的情況下分別達(dá)到了78.14mAP和78.28 mAP,這在單尺度評估下超越了幾乎所有的旋轉(zhuǎn)框檢測模型。通過多尺度訓(xùn)練和測試,PP-YOLOE-R-l和PP-YOLOE-R-x的檢測精度進(jìn)一步提升至80.02mAP和80.73 mAP,超越了所有的Anchor-free方法并且和最先進(jìn)的Anchor-based的兩階段模型精度幾乎相當(dāng)。
在保持高精度的同時,PP-YOLOE-R避免使用特殊的算子,例如Deformable Convolution或Rotated RoI Align,使其能輕松地部署在多種多樣的硬件上。
了解更多https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/rotate/ppyoloe_r
PP-YOLOE-SOD:小目標(biāo)檢測模型

PP-YOLOE-SOD(Small Object Detection)針對小目標(biāo)檢測提出了兩種檢測方案,分別是基于切圖拼圖流程優(yōu)化的小目標(biāo)檢測方案以及基于原圖模型算法優(yōu)化的小目標(biāo)檢測方案。
同時提供了數(shù)據(jù)集自動分析腳本,只需輸入數(shù)據(jù)集標(biāo)注文件,便可得到數(shù)據(jù)集統(tǒng)計結(jié)果,輔助判斷數(shù)據(jù)集是否是小目標(biāo)數(shù)據(jù)集以及是否需要采用切圖策略,同時給出網(wǎng)絡(luò)超參數(shù)參考值。在VisDrone-DET數(shù)據(jù)集上,單模型精度達(dá)到38.5mAP。
了解更多https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/smalldet
PP-YOLOE-DOD:密集檢測模型

PP-YOLOE-DOD(Dense Object Detection)是基于PP-YOLOE+的密集目標(biāo)檢測算法,針對密集檢測任務(wù),我們做了如下優(yōu)化:
數(shù)據(jù)預(yù)處理:為了適應(yīng)商超數(shù)據(jù)的高分辨率,我們增大了模型訓(xùn)練和推理的輸入尺寸;
標(biāo)簽匹配策略:為了適應(yīng)密集場景,我們?nèi)コ遂o態(tài)匹配策略,在全部的訓(xùn)練周期中都使用動態(tài)匹配策略。在SKU數(shù)據(jù)集檢測精度mAP 60.3,達(dá)到了開源最優(yōu)。
了解更多https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/ppyoloe/application
PP-YOLOE+_t:超輕量通用目標(biāo)檢測模型
PP-YOLOE+_t是對PP-YOLOE+ x、l、m、s版本通用檢測模型的進(jìn)一步豐富,主要針Jetson等端側(cè)GPU硬件對檢測的幀率與速度均有極高要求的情況下提出的超輕量模型,通過優(yōu)化匹配策略、增加輔助頭、更小的輸入尺寸等方式優(yōu)化性能與速度,實現(xiàn)“速度起飛”!
比較了解PaddleDetection的開發(fā)者可能知道,我們其實還有另一個速度起飛的模型大殺器PP-PicoDet,二者的主要區(qū)別是PP-PicoDet主要是針對Arm等端側(cè)CPU場景打造的,而PP-YOLOE+主要針對GPU場景打造。PP-YOLOE+_t聚焦于Jetson等邊緣端場景使用,大家在選型時可以做參考。
如下圖是PP-YOLOE+_t版本的性能表現(xiàn):

了解更多https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/ppyoloe
PART2 PP-YOLOE+半監(jiān)督、少樣本和蒸餾學(xué)習(xí)方案,助力解決少樣本、泛化性、標(biāo)注量、冷啟動問題
PP-YOLOE+少樣本學(xué)習(xí)方案
PaddleDetection團隊針對PP-YOLOE+提供了少樣本學(xué)習(xí)的方案,引入了Compare-Contrast算法。
在預(yù)訓(xùn)練模型的基礎(chǔ)上,僅通過極少的標(biāo)注數(shù)據(jù)即可訓(xùn)練得到較好的模型效果。下表是PP-YOLOE+_s版本模型在工業(yè)數(shù)據(jù)集PKU-Market-PCB上,通過引入少樣本學(xué)習(xí)方案,Box AP得到了2.4的提升。

了解更多:https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/few-shot
PP-YOLOE+半監(jiān)督學(xué)習(xí)方案
PaddleDetection團隊結(jié)合Dense Teacher前沿算法,針對PP-YOLOE+提供了半監(jiān)督學(xué)習(xí)方案。
半監(jiān)督學(xué)習(xí)結(jié)合有標(biāo)簽數(shù)據(jù)和無標(biāo)簽數(shù)據(jù),在大幅節(jié)省數(shù)據(jù)標(biāo)注的情況下,依然達(dá)到較高的模型精度。在實際產(chǎn)業(yè)應(yīng)用過程中,半監(jiān)督學(xué)習(xí)是項目冷啟動時常見的策略之一。下表是,在僅采用5%、10%有標(biāo)簽數(shù)據(jù)進(jìn)行監(jiān)督學(xué)習(xí),95%、90%無標(biāo)簽數(shù)據(jù)進(jìn)行半監(jiān)督學(xué)習(xí)的情況下,精度得到了1.2~2.5的提升。

了解更多https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/semi_det/baseline
PP-YOLOE+模型蒸餾方案
PaddleDetection團隊針對PP-YOLOE+?提供了模型蒸餾方案,結(jié)合了logits蒸餾和feature蒸餾。
在模型參數(shù)量、推理速度不變的情況下,可以遷移高精度大模型的學(xué)習(xí)能力,從而達(dá)到更高的精度。
如下表,通過大模型的蒸餾,小模型均有了1個點的精度提升。

了解更多https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/ppyoloe/distill
02 PP-Human、PP-Vehicle功能新增、推理提速
PART1 PP-Human:行人分析工具箱,推理提速、多路視頻流支持

PP-Human經(jīng)由真實業(yè)務(wù)場景數(shù)據(jù)深度打磨優(yōu)化,擁有適應(yīng)不同光線、復(fù)雜背景下的人體屬性特征分析、異常行為識別、出入口人流計數(shù)與軌跡繪制、跨鏡跟蹤四大核心功能。不僅如此,PP-Human還兼容單張圖片、單路或多路視頻等多種數(shù)據(jù)輸入類型,更符合產(chǎn)業(yè)復(fù)雜的環(huán)境應(yīng)用需求,同時考慮到產(chǎn)業(yè)自定義開發(fā)的需求,PP-Human還提供了模型訓(xùn)練與功能新增全流程教程。
在本次PaddleDetection v2.6更新中:
在PP-YOLOE+_t模型的加持下,PP-Human行人分析工具箱開源邊緣端實時檢測模型,精度mAP 45.7,Jetson AGX Xavier端到端(包含前后處理)推理速度達(dá)到80FPS。
同時,支持多路視頻流部署能力,實現(xiàn)Jetson AGX Xavier 4路視頻流端到端20FPS實時部署。
了解更多:https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/deploy/pipeline
PART2 PP-Vehicle:車輛分析工具箱,新增逆行、壓線分析、推理提速、多路視頻流支持

PP-Vehicle是一款針對車輛分析相關(guān)場景的開源工具,產(chǎn)品主要圍繞以下幾個方面進(jìn)行設(shè)計開發(fā):
實用性:針對車輛分析場景共性的底層模型進(jìn)行優(yōu)選迭代。針對幾個高頻場景車牌識別、車流統(tǒng)計、違章分析、屬性分析等進(jìn)行了詳細(xì)的后處理策略設(shè)計,可以滿足業(yè)務(wù)的快速上線需求。同時提供豐富的二次開發(fā)教程,方便用戶根據(jù)自己的業(yè)務(wù)場景進(jìn)行私有化開發(fā)。
泛化性:在公開數(shù)據(jù)集以及自采數(shù)據(jù)集上進(jìn)行充分訓(xùn)練,并且提供預(yù)訓(xùn)練模型,覆蓋車輛分析中監(jiān)控視角、駕駛員視角、俯拍視角等常見相機視角。
低代碼:實現(xiàn)1行代碼快速部署,支持圖片、視頻、單路/多路rtsp視頻流輸入,修改配置文件即可快速實現(xiàn)策略修改以及pipeline的組合。
在本次PaddleDetection?v2.6版本更新中:
PP-Vehicle車輛分析工具箱新增車輛逆行分析、壓線分析功能
在PP-YOLOE+_t模型的加持下,開源邊緣端實時檢測模型,精度mAP 53.5,Jetson AGX Xavier上端到端(包含前后處理)推理速度達(dá)速度80FPS
同時,支持多路視頻流部署能力,實現(xiàn)Jetson AGX Xavier 4路視頻流端到端20FPS實時部署
了解更多:https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/deploy/pipeline
03 PP-Human、PP-Vehicle功能新增、推理提速
除了上面的PP-YOLOE+針對半監(jiān)督、少樣本學(xué)習(xí)、模型蒸餾方案外,我們還開源了更多的相關(guān)模型,大家可以基于不同的模型進(jìn)行相關(guān)方案測試。
PART1 半監(jiān)督檢測
半監(jiān)督目標(biāo)檢測是同時使用有標(biāo)注數(shù)據(jù)和無標(biāo)注數(shù)據(jù)進(jìn)行訓(xùn)練的目標(biāo)檢測,既可以極大地節(jié)省標(biāo)注成本,也可以充分利用無標(biāo)注數(shù)據(jù)進(jìn)一步提高檢測精度。PaddleDetection團隊復(fù)現(xiàn)了DenseTeacher半監(jiān)督檢測算法,用戶可以下載使用。
了解更多https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/semi_det
PART2 少樣本學(xué)習(xí)
PaddleDetection團隊聯(lián)合百度研究院大數(shù)據(jù)實驗室,在本次版本更新中開源兩種少樣本(Few-Shot)遷移學(xué)習(xí)的新算法Label Co-tuning和Contrastive Tuning,從不同角度應(yīng)對標(biāo)注不足的挑戰(zhàn),提升模型學(xué)習(xí)效果。
跨領(lǐng)域Label Co-tuning算法
該方法的主要思路是充分利用預(yù)訓(xùn)練模型的語義空間,挖掘其與下游任務(wù)的關(guān)聯(lián),計算出類別之間的關(guān)系作為下游任務(wù)的輔助語義標(biāo)簽,作為原始o(jì)ne-hot類別標(biāo)簽的補充。
領(lǐng)域內(nèi)Contrastive Tuning算法
對比學(xué)習(xí)是一種通用的表征學(xué)習(xí)思路,可以學(xué)習(xí)樣例級的判別特征,也可視為一種有效的數(shù)據(jù)增強策略。該算法針對目標(biāo)檢測的任務(wù)特性,實現(xiàn)patch級別的對比學(xué)習(xí),以強化目標(biāo)領(lǐng)域的表征學(xué)習(xí)效果。
了解更多:https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.6/configs/few-shot
PART3 模型蒸餾
本次版本更新中,我們開源了FGD蒸餾算法、LD蒸餾算法和CWD蒸餾算法。
FGD蒸餾算法
FGD全稱為Focal and Global Knowledge Distillation for Detectors,是目標(biāo)檢測任務(wù)的一種蒸餾方法。FGD蒸餾分為兩個部分Focal和Global。Focal蒸餾分離圖像的前景和背景,讓學(xué)生模型分別關(guān)注教師模型的前景和背景部分特征的關(guān)鍵像素。Global蒸餾部分重建不同像素之間的關(guān)系并將其從教師轉(zhuǎn)移到學(xué)生,以補償Focal蒸餾中丟失的全局信息。實驗結(jié)果表明,F(xiàn)GD蒸餾算法在基于anchor和anchor free的方法上能有效提升模型精度。在PaddleDetection中,我們實現(xiàn)了FGD算法,并基于RetinaNet算法進(jìn)行了驗證。
CWD蒸餾算法
CWD全稱為Channel-wise Knowledge Distillation for Dense Prediction*,通過最小化教師網(wǎng)絡(luò)與學(xué)生網(wǎng)絡(luò)的通道概率圖之間的 Kullback-Leibler (KL) 散度,使得在蒸餾過程更加關(guān)注每個通道的最顯著的區(qū)域,進(jìn)而提升文本檢測與圖像分割任務(wù)的精度。在PaddleDetection中,我們實現(xiàn)了CWD算法,并基于GFL(Generalized Focal Loss)和RetinaNet模型進(jìn)行了驗證。
LD蒸餾算法
LD全稱為Localization Distillation for Dense Object Detection,將回歸框表示為概率分布,把分類任務(wù)的KD用在定位任務(wù)上,并且使用因地制宜、分而治之的策略,在不同的區(qū)域分別學(xué)習(xí)分類知識與定位知識。在PaddleDetection中,我們實現(xiàn)了LD算法,并基于GFL模型進(jìn)行了驗證。
了解更多https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.6/configs/slim/distill
04 PP-Human、PP-Vehicle功能新增、推理提速
PaddleDetection持續(xù)跟蹤深度學(xué)習(xí)視覺前沿算法,并評估挑選價值比較高的算法進(jìn)行優(yōu)化開源。在本次版本發(fā)新中新增如下方向算法:
YOLO家族新增YOLOv8、YOLOv6-3.0
目標(biāo)檢測算法新增DINO, YOLOF
新增ViTDet系列檢測模型,PP-YOLOE+ViT_base、Mask RCNN + ViT_base、Mask RCNN + ViT_large
新增多目標(biāo)跟蹤算法CenterTrack
新增旋轉(zhuǎn)框檢測算法FCOSR;
新增實例分割算法QueryInst;
新增3D關(guān)鍵點檢測算法Metro3d。
了解更多https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.6/configs/slim/distill
05 基礎(chǔ)能力提升
在本次更新中,PaddleDetection支持Python3.10版本、EMA支持過濾不更新參數(shù)、AdamW適配飛槳框架2.4.1版本。
新增檢測熱力圖可視化能力,適配FasterRCNN/MaskRCNN系列、PP-YOLOE系列、BlazeFace、SSD、 RetinaNet。

06 Roadmap of PaddleDetection
我們已經(jīng)在PaddleDetection Issue區(qū)開辟了Roadmap專區(qū),歡迎您在此留下寶貴的建議、新特性需求或者任何想對PaddleDetection團隊說的話,我們會積極融入到后續(xù)的版本更新中,同時也歡迎大家參與到PaddleDetection的開源建設(shè)中。
Roadmap專區(qū):https://github.com/PaddlePaddle/PaddleDetection/issues/7892
One More Thing
2023飛槳黑客馬拉松PaddlePaddle Hackathon第四期現(xiàn)已正式啟動,本次活動由深度學(xué)習(xí)技術(shù)及應(yīng)用國家工程研究中心主辦,飛槳承辦,英特爾作為頂級贊助方,OpenVINO、Arm、Hugging Face、Jina、TVM、瑞芯微、算能、地平線等共同出品,旨在鼓勵開發(fā)者了解與參與深度學(xué)習(xí)開源項目的共建。

本次活動上線200+個開發(fā)任務(wù),從框架開發(fā)、模型套件開發(fā)、模型復(fù)現(xiàn)、硬件項目開發(fā)到產(chǎn)業(yè)落地方案應(yīng)有盡有,根據(jù)開發(fā)難度分為基礎(chǔ)任務(wù)和進(jìn)階任務(wù)。同時提供高達(dá)100w的現(xiàn)金獎池以及飛槳黑客松證書,歡迎大家來PaddleDetection專區(qū)領(lǐng)取任務(wù):https://github.com/PaddlePaddle/Paddle/issues/51281#detection