點擊上方「小白學視覺」,選擇加"星標"或「置頂」git
重磅乾貨,第一時間送達github
PP-YOLO評估顯示出更快的推斷(x軸)和更好的準確性(y軸)微信
PP-YOLO評估指標顯示出比現有的最新對象檢測模型YOLOv4更高的性能。可是,提出者百度卻謙虛的聲明:網絡
無心介紹一種新穎的物體檢測器。它更像一個配方,它告訴咱們如何逐步構建更好的檢測器。
接下來讓咱們來介紹一下PP-YOLO架構
YOLO發展歷程app
YOLO最初是由約瑟夫·雷德蒙(Joseph Redmon)創做的,用於檢測物體。物體檢測是一種計算機視覺技術,它經過在對象周圍繪製邊框並標識給定框也屬於的類標籤來對對象進行定位和標記。與大型NLP不一樣,YOLO設計得很小,能夠爲設備上的部署提供實時推理速度。框架
YOLO-9000是約瑟夫·雷德蒙發佈的第二個「 YOLOv2」物體檢測器,它改進了檢測器並強調了該檢測器可以推廣到世界上任何物體的能力。以後,YOLOv3進一步完善了檢測網絡,並開始將物體檢測過程歸入主流。可是,出於某些緣由,約瑟夫·雷德蒙退出了物體檢測的遊戲。不過,技術的進步不會由於一我的的退出而中止,開源社區接過接力棒,並繼續推進YOLO技術向前發展。YOLOv4於今年春天由Alexey AB在YOLO Darknet存儲庫中發佈。YOLOv4主要是其餘已知計算機視覺技術的集合,並經過研究過程進行了組合和驗證。而後,就在幾個月前,發佈了YOLOv5。YOLOv5採用了Darknet(基於C)的培訓環境,並將網絡轉換爲PyTorch。改進的訓練技術進一步提升了模型的性能,並建立了一個出色的,易於使用的開箱即用的對象檢測模型。函數
正在對PP-YOLO進行識別不一樣果蠅的訓練
性能
PP表明什麼?
PP是PaddlePaddle(由百度編寫的深度學習框架)的縮寫。百度提供了他的下載和安裝方式,具體地址爲:https://www.paddlepaddle.org.cn/,下圖是官網的安裝界面。學習
若是PaddlePaddle對您來講是新手,那麼咱們在同一條船上。PaddlePaddle主要是用Python編寫的,看起來相似於PyTorch和TensorFlow。對PaddlePaddle框架的深刻研究頗有趣,但超出了本文的範圍。
PP-YOLO貢獻
PP-YOLO的讀取方式與YOLOv4很是類似,由於它是計算機視覺中已知的技術的彙總。新穎的貢獻是證實這些技術的集成能夠提升性能,並提供消融研究,以瞭解每一個步驟對模型的幫助程度。
在咱們深刻探討PP-YOLO的貢獻以前,有必要回顧一下YOLO檢測器的架構。
YOLO檢測器的解剖
YOLO檢測器分爲三個主要部分。
YOLO骨架 — YOLO骨架是一個卷積神經網絡,它將圖像像素合併以造成不一樣粒度的特徵。主幹一般在分類數據集(一般爲ImageNet)上進行預訓練。
YOLO脖子— YOLO脖子(上面選擇了FPN)在傳遞到預測頭以前對ConvNet圖層表示進行組合和混合。
YOLO頭部 —這是網絡中進行邊界框和類預測的部分。它由關於類,框和對象的三個YOLO損失函數指導。
如今讓咱們深刻了解PP YOLO貢獻
PP-YOLO中的每種技術都會提升邊際mAP準確度性能
更換骨架
第一種PP YOLO技術是用Resnet50-vd-dcn ConvNet主幹替換YOLOv3 Darknet53主幹。Resnet是一個更流行的主幹,它的執行優化了更多的框架,而且其參數少於Darknet53。交換此主幹能夠看到mAP的改進,這對PP YOLO來講是一個巨大的勝利。
模型參數的EMA
PP YOLO跟蹤網絡參數的指數移動平均值,以維持預測時間的模型權重的陰影。已經證實這能夠提升推理精度。
批量更大
PP-YOLO的批量大小從64增長到192。固然,若是您有GPU內存限制,這很難實現。
DropBlock正則化
PP YOLO在FPN脖子上實現DropBlock正則化(過去,這一般發生在主幹中)。DropBlock在網絡中的給定步驟中隨機刪除了一部分訓練功能,以指示模型不依賴於關鍵特徵進行檢測。
IoU損失
YOLO損失函數不能很好地轉換爲mAP度量,該度量在計算中大量使用了Union上的Intersection。所以,考慮到此結束預測來編輯訓練損失函數頗有用。此編輯也出如今YOLOv4中。
IoU意識
PP-YOLO網絡添加了一個預測分支,以預測給定對象的模型估計的IOU。在作出是否預測對象的決策時包括IoU意識會提升性能。
網絡敏度
舊的YOLO模型不能很好地在錨框區域的邊界附近進行預測。定義盒子座標稍有不一樣是頗有用的,以免此問題。YOLOv4中也存在此技術。
矩陣NMS
非最大抑制是一種刪除候選對象的提議以進行分類的技術。矩陣NMS是一項技術,能夠對這些候選預測進行並行排序,從而加快了計算速度。
協調轉換
CoordConv受ConvNets僅將(x,y)座標映射到一個熱像素空間所遇到的問題的激勵。CoordConv解決方案使卷積網絡能夠訪問其本身的輸入座標。CoordConv干預措施上方標有黃色菱形。有關更多詳細信息,請參見CordConv文件。
SPP
空間金字塔池化是主幹層以後的一個額外塊,用於混合和合並空間特徵。也已在YOLOv4和YOLOv5中實現。
更好的預訓練骨架
PP YOLO的做者提煉出更大的ResNet模型做爲骨幹。更好的預訓練模型顯示也能夠改善下游轉移學習。
PP-YOLO是最早進的嗎?
PP-YOLO賽過2020年4月23日發佈的YOLOv4結果。
做者的意圖彷佛不僅是「引入一種新穎的新型檢測器」,而是展現了仔細調整對象檢測器以最大化性能的過程。在此引用做者原文的介紹:
本文的重點是如何堆疊一些幾乎不會影響效率的有效技巧以得到更好的性能……本文無心介紹一種新穎的目標檢測器。它更像一個食譜,它告訴您如何逐步構建更好的檢測器。咱們發現了一些對YOLOv3檢測器有效的技巧,能夠節省開發人員的反覆試驗時間。最終的PP-YOLO模型以比YOLOv4更快的速度將COCO的mAP從43.5%提升到45.2%
上面的PP-YOLO貢獻參考將YOLOv3模型在COCO對象檢測任務上從38.9 mAP提高到44.6 mAP,並將推理FPS從58增長到73。論文中顯示了這些指標,賽過了YOLOv4和EfficientDet的當前發佈結果。
在以YOLOv5爲基準對PP-YOLO進行基準測試時,彷佛YOLOv5在V100上仍具備最快的推理準確度(AP與FPS)折衷。可是,YOLOv5論文仍然有待發布。此外,已經代表,在YOLOv5 Ultralytics存儲庫上訓練YOLOv4體系結構的性能要優於YOLOv5,而且,以過渡方式,使用YOLOv5貢獻進行訓練的YOLOv4的性能將賽過此處發佈的PP-YOLO結果。這些結果仍有待正式發佈,但能夠追溯到GitHub(https://github.com/ultralytics/yolov5/issues/6)上的討論。
在V100 GPU上對COCO數據集的PP-YOLO評估(請注意AP_50列)
在V100 GPU上對COCO數據集的YOLOv5評估(請注意AP_50列)
值得注意的是,在YOLOv4中使用的許多技術(例如體系結構搜索和數據加強)在PP YOLO中並未使用。這意味着隨着更多的這些技術被組合和集成在一塊兒,在物體檢測領域中仍存在發展的空間。
毋庸置疑,這是實施計算機視覺技術的激動人心的時刻。
我應該從YOLOv4或YOLOv5切換到PP-YOLO嗎?
PP-YOLO模型顯示了最早進的對象檢測技術的前景,可是與其餘對象檢測器相比,這些改進是漸進的,而且是在一個新的框架中編寫的。在此階段,最好的辦法是經過在本身的數據集上訓練PP-YOLO來開發本身的經驗結果。
本文分享自微信公衆號 - 小白學視覺(NoobCV)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。