博客專欄

EEPW首頁(yè) > 博客 > 較YOLOv7精度提升1.9%,54.7mAP的PP-YOLOE+強(qiáng)勢(shì)登場(chǎng)!

較YOLOv7精度提升1.9%,54.7mAP的PP-YOLOE+強(qiáng)勢(shì)登場(chǎng)!

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

精度54.7mAP,相較YOLOv7提升1.9%

L版本端到端推理速度42.2FPS

訓(xùn)練速度提升3.75倍

COCO數(shù)據(jù)集僅需20epoch即可達(dá)到50.0mAP

下游任務(wù)泛化性最高提升8%

10+即開(kāi)即用多端部署Demo

這究竟是什么模型,竟可達(dá)到以上效果?答案是:PP-YOLOE+PP-YOLOE+是基于飛槳云邊一體高精度模型PP-YOLOE迭代優(yōu)化升級(jí)的版本,具備以下特點(diǎn):

  • 超強(qiáng)性能

圖片表格1PP-YOLOE+與PP-YOLOE性能對(duì)比*備注:以上速度為端到端推理速度,包含數(shù)據(jù)解碼+數(shù)據(jù)預(yù)處理+模型預(yù)測(cè)+后處理計(jì)算;均在v100上測(cè)試所得,V100 + CUDA11.2 + cudnn8.2.0 + TRT8.0.1.6

  • 訓(xùn)練收斂加速:使用Objects365預(yù)訓(xùn)練模型,減少訓(xùn)練輪數(shù),訓(xùn)練收斂速度提升3.75倍。
  • 下游任務(wù)泛化性顯著提升:在農(nóng)業(yè)、夜間安防、工業(yè)等不同場(chǎng)景數(shù)據(jù)集上驗(yàn)證,精度最高提升8.1%。
  • 高性能部署能力:本次升級(jí)PP-YOLOE+支持多種部署方式,包括Python/C++、Serving、ONNX Runtime、ONNX-TRT、INT8量化等部署能力。

超強(qiáng)性能與超高泛化性使得PP-YOLOE+助力開(kāi)發(fā)者在最短時(shí)間、最少量數(shù)據(jù)上能得到最優(yōu)效果。模型下載與完整教程請(qǐng)見(jiàn)PP-YOLOE+:https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.5/configs/ppyoloe 圖片

回顧:PP-YOLOE經(jīng)典網(wǎng)絡(luò)結(jié)構(gòu)剖析


圖片

圖1:PP-YOLOE網(wǎng)絡(luò)結(jié)構(gòu)PP-YOLOE是一款高精度推理速度快的檢測(cè)模型,包含骨干網(wǎng)絡(luò)CSPRepResNet、特征融合CSPPAN、輕量級(jí)ET-Head和改進(jìn)的動(dòng)態(tài)匹配算法TAL(Task Alignment Learning)等模塊, 并且根據(jù)不同的應(yīng)用場(chǎng)景設(shè)計(jì)了一系列模型,即s/m/l/x。PP-YOLOE的全系列模型從精度速度性價(jià)比來(lái)看達(dá)到工業(yè)界最優(yōu)。具體來(lái)說(shuō),PP-YOLOE-l在COCO test-dev上AP可達(dá)51.4,在V100上速度可達(dá)78.1 FPS,使用TensorRT FP16進(jìn)行推理,在V100上速度可達(dá)149FPS。PP-YOLOE-l相較于PP-YOLOv2精度提升1.9AP、速度提升13.35%,相對(duì)于YOLOX-l精度提升1.3AP、速度提升24.96%此外,PP-YOLOE還避免使用諸如可變形卷積或者M(jìn)atrix NMS之類的特殊算子,使PP-YOLOE全系列模型能輕松地部署在NVIDIA V100和T4這樣的云端GPU架構(gòu)、Jetson系列的移動(dòng)端GPU和高性能的FPGA開(kāi)發(fā)板。具體的結(jié)構(gòu)包括以下三大部分:


可擴(kuò)展的backbone和neck

我們?cè)O(shè)計(jì)了CSPRepResNet作為backbone, neck部分也采用了新設(shè)計(jì)的CSPPAN結(jié)構(gòu),backbone和neck均以我們提出的CSPRepResStage為基礎(chǔ)模塊。新的backbone和neck在增強(qiáng)模型表征能力的同時(shí)提升了模型的推理速度,并且可以通過(guò)width multiplier和depth multiplier靈活地配置模型的大小。


TAL(Task Alignment Learning)

為了進(jìn)一步提升模型的精度,我們選用了TOOD [1]中的動(dòng)態(tài)匹配算法策略TAL。TAL同時(shí)考慮分類和回歸,使得匹配結(jié)果同時(shí)獲得了最優(yōu)的分類和定位精度。


Efficient Task-aligned head

檢測(cè)head方面,我們?cè)赥OOD的T-head基礎(chǔ)上進(jìn)行改進(jìn)。首先,使用ESE block替換掉了原文中比較耗時(shí)的layer attention,使得模型在保證精度不變的同時(shí)提升了速度。其次,由于T-head使用了可變形卷積算子,對(duì)硬件部署不友好,我們?cè)诜诸惙种褂胹hortcut替換cls-align模塊,回歸分支使用積分層替換掉含有可變形卷積的reg-align模塊,以上兩個(gè)改進(jìn)使得head變得更為高效、簡(jiǎn)潔且易部署。最終,我們進(jìn)一步使用VFL(VariFocal Loss)替換BCE作為分類分支Loss,達(dá)到了速度精度雙高的目的。
PP-YOLOE+算法升級(jí)深度解讀

本次PP-YOLOE+升級(jí)主要內(nèi)容:

  • 升級(jí)一:強(qiáng)大的Objects365預(yù)訓(xùn)練模型、升級(jí)版backbone等改動(dòng)大幅提升PP-YOLOE系列模型的精度;

  • 升級(jí)二:優(yōu)化預(yù)處理,提升模型端到端推理速度,更貼近用戶使用的真實(shí)場(chǎng)景;

  • 升級(jí)三:完善多種環(huán)境下的推理部署能力。


精度

首先,我們使用Objects365大規(guī)模數(shù)據(jù)集對(duì)模型進(jìn)行了預(yù)訓(xùn)練。Objects365數(shù)據(jù)集含有的數(shù)據(jù)量可達(dá)百萬(wàn)級(jí),在大數(shù)據(jù)量下的訓(xùn)練可以使模型獲得更強(qiáng)大的特征提取能力、更好的泛化能力,在下游任務(wù)上的訓(xùn)練可以達(dá)到更好的效果。

其次,我們?cè)赗epResBlock中的1x1卷積上增加了一個(gè)可學(xué)習(xí)的權(quán)重alpha,進(jìn)一步提升了backbone的表征能力,獲得了不錯(cuò)的效果提升。最后,我們調(diào)整了NMS的參數(shù),在COCO上可以獲得更好的評(píng)估精度。


訓(xùn)練速度

基于Objects365的預(yù)訓(xùn)練模型,將學(xué)習(xí)率調(diào)整為原始學(xué)習(xí)率的十分之一,訓(xùn)練的epoch從300降到了80,在大大縮短了訓(xùn)練時(shí)間的同時(shí),獲得了精度上的提升。


端到端推理速度

我們精簡(jiǎn)了預(yù)處理的計(jì)算方式,由于減均值除方差的方式在CPU上極其耗時(shí),所以我們?cè)趦?yōu)化時(shí)直接去除掉了這部分的預(yù)處理操作,使得PP-YOLOE+系列模型在端到端的速度上能獲得40%以上的加速提升。

圖片

圖2:PP-YOLOE+模型效果


下游泛化性增強(qiáng)

我們驗(yàn)證了PP-YOLOE+模型強(qiáng)大的泛化能力,在農(nóng)業(yè)、低光、工業(yè)等不同場(chǎng)景下游任務(wù)檢測(cè)效果穩(wěn)定提升。農(nóng)業(yè)數(shù)據(jù)集采用Embrapa WGISD,該數(shù)據(jù)集用于葡萄栽培中基于圖像的監(jiān)測(cè)和現(xiàn)場(chǎng)機(jī)器人技術(shù),提供了來(lái)自5種不同葡萄品種的實(shí)地實(shí)例。

  • 鏈接

https://github.com/thsant/wgisd低光數(shù)據(jù)集使用ExDark,該數(shù)據(jù)集是一個(gè)專門(mén)在低光照環(huán)境下拍攝出針對(duì)低光目標(biāo)檢測(cè)的數(shù)據(jù)集,包括從極低光環(huán)境到暮光環(huán)境等10種不同光照條件下的圖片。

  • 鏈接

https://github.com/cs-chan/Exclusively-Dark-Image-Dataset工業(yè)數(shù)據(jù)集使用PKU-Market-PCB,該數(shù)據(jù)集用于印刷電路板(PCB)的瑕疵檢測(cè),提供了6種常見(jiàn)的PCB缺陷。

  • 鏈接

https://robotics.pkusz.edu.cn/resources/dataset/

精度

圖片

表格2:PP-YOLOE+在不同場(chǎng)景數(shù)據(jù)集的效果

可視化效果

圖片圖3:視化效果


全面升級(jí)的部署支持

在推理部署方面,本次升級(jí)給大家?guī)?lái)了較為完備的部署能力,包括Python、C++、Serving、ONNX Runtime、ONNX-TRT、INT8量化等部署能力。具體的使用文檔可以到PaddleDetection的GitHub上獲取。

  • 文檔鏈接

https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.5/deploy總的來(lái)說(shuō),PP-YOLOE+希望真正的站在用戶的角度去解決訓(xùn)練慢、泛化性差、部署難的問(wèn)題。通過(guò)使用大規(guī)模數(shù)據(jù)集Objects365對(duì)模型進(jìn)行預(yù)訓(xùn)練,使得模型在下游任務(wù)上表現(xiàn)更魯棒、泛化能力更強(qiáng)。通過(guò)優(yōu)化推理過(guò)程,完善推理鏈條,使得PP-YOLOE+不但在端到端預(yù)測(cè)速度上得到極大的提升,還拓展了Python、C++、Serving、ONNX Runtime以及TensorRT等多種推理環(huán)境下的部署能力,提升模型可擴(kuò)展性,從而提升用戶的使用體驗(yàn)。

飛槳端到端開(kāi)發(fā)套件PaddleDetection


PaddleDetection為基于飛槳的端到端目標(biāo)檢測(cè)套件,內(nèi)置30+模型算法300+預(yù)訓(xùn)練模型,覆蓋目標(biāo)檢測(cè)實(shí)例分割、跟蹤、關(guān)鍵點(diǎn)檢測(cè)等方向,其中包括服務(wù)器端和移動(dòng)端高精度輕量化產(chǎn)業(yè)級(jí)SOTA模型、冠軍方案和學(xué)術(shù)前沿算法,并提供即插即用的垂類場(chǎng)景預(yù)訓(xùn)練模型,覆蓋人、車等20+場(chǎng)景,提供配置化的網(wǎng)絡(luò)模塊組件、十余種數(shù)據(jù)增強(qiáng)策略和損失函數(shù)等高階優(yōu)化支持和多種部署方案,在打通數(shù)據(jù)處理、模型開(kāi)發(fā)、訓(xùn)練、壓縮、部署全流程的基礎(chǔ)上,提供豐富的案例及教程,加速算法產(chǎn)業(yè)落地應(yīng)用。圖片圖4:PaddleDetection全景圖

  • 項(xiàng)目鏈接

https://github.com/PaddlePaddle/PaddleDetection

  • 參考文獻(xiàn)

[1] Feng C , Zhong Y , Gao Y , et al. TOOD: Task-aligned One-stage Object Detection[C]// 2021


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



關(guān)鍵詞: AI

相關(guān)推薦

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

關(guān)閉