PP-YOLO超越YOLOv4-目標檢測的進步


作者|Jacob Solawetz
編譯|Flin
來源|towardsdatascience

PP-YOLO評估指標比現有最先進的對象檢測模型YOLOv4表現出更好的性能。然而,百度的作者寫道:

本文不打算介紹一種新型的目標檢測器。它更像是一個食譜,告訴你如何逐步建立一個更好的探測器。

讓我們一起看看。

YOLO發展史

YOLO最初是由Joseph Redmon編寫的,用於檢測目標。目標檢測是一種計算機視覺技術,它通過在目標周圍畫一個邊界框來定位和標記對象,並確定一個給定的框所屬的類標簽。和大型NLP transformers不同,YOLO設計得很小,可為設備上的部署提供實時推理速度。

YOLO-9000是Joseph Redmon出版的第二個“YOLOv2”目標探測器,它改進了探測器,並強調了該檢測器能夠推廣到世界上任何物體的能力。

YOLOv3對檢測網絡做了進一步的改進,並開始將目標檢測過程納入主流。我們開始發布關於如何在PyTorch中訓練YOLOv3、如何在Keras中訓練YOLOv3的教程,並將YOLOv3的性能與EfficientDet(另一種最先進的檢測器)進行比較。

然后約瑟夫·雷德曼出於倫理考慮退出了目標探測游戲。

當然,開源社區接過了指揮棒,繼續推動YOLO技術的發展。

YOLOv4最近由Alexey AB在他的YOLO Darknet存儲庫中發表。YOLOv4主要是其他已知的計算機視覺技術的集合,通過研究過程進行了組合和驗證。請看這里深入了解YOLOv4。

YOLOv4論文的讀數與PP-YOLO論文相似,如下所示。我們提供了一些關於如何在Darknet中訓練YOLOv4的很好的訓練教程。

然后,就在幾個月前,YOLOv5被發布了。YOLOv5采用了Darknet(基於C)的訓練環境,並將網絡轉換為Pytorch。改進的訓練技術進一步提高了模型的性能,並創建了一個非常好用的開箱即用的對象檢測模型。從那以后,我們一直鼓勵使用Roboflow的開發人員通過這個YOLOv5訓練教程將他們的注意力轉向YOLOv5,以形成他們的自定義對象檢測器。

輸入PP-YOLO。

PP代表什么?

PP是百度編寫的深度學習框架PaddlePaddle的縮寫。

如果你不熟悉Paddle,那我們就在同一條船上了。paddle最初是用Python編寫的,它看起來類似於PyTorch和TensorFlow。深入研究paddle框架很有趣,但超出了本文的范圍。

PP-YOLO貢獻

PP-YOLO的論文讀起來很像YOLOv4論文,因為它是計算機視覺中已知的技術的匯總。新穎的貢獻是證明這些技術的集成可提高性能,並提供消融研究,以研究每一步對模型的幫助程度。

在我們深入研究PP-YOLO的貢獻之前,先回顧一下YOLO檢測器的體系結構。

解剖YOLO檢測器

YOLO檢測器分為三個主要部分。

YOLO Backbone:YOLO Backbone(骨干)是一個卷積神經網絡,它將圖像像素合並在一起以形成不同粒度的特征。骨干通常在分類數據集(通常為ImageNet)上進行預訓練。

YOLO Neck:YOLO Neck(上面選擇了FPN)在傳遞到預測頭之前對ConvNet圖層表示進行組合和混合。

YOLO Head:這是網絡中進行邊界框和類預測的部分。它由關於類,框和對象的三個YOLO損失函數指導。

現在,讓我們深入了解PP YOLO做出的貢獻。

更換骨干網

第一種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 Aware

PP-YOLO網絡添加了一個預測分支,以預測給定對象的模型估計的IOU。在決定是否預測對象時包含此IoU Aware可提高性能。

電網靈敏度

舊的YOLO模型不能很好地在錨框區域的邊界附近進行預測。為了避免這個問題,可以稍微不同地定義框坐標。YOLOv4中也有這種技術。

矩陣非最大抑制

非最大抑制是一種刪除候選對象的提議以進行分類的技術。矩陣非最大抑制是一種並行排序這些候選預測的技術,它加快了計算速度。

CoordConv

CoordConv受ConvNets一個問題的激勵,即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上的討論。

值得注意的是,在YOLOv4中使用的許多技術(如架構搜索和數據擴充)並沒有在ppyolo中使用。這意味着,隨着更多這些技術的結合和集成,目標檢測的最新技術仍有發展的空間。

毋庸置疑,這是實施計算機視覺技術的激動人心的時刻。

我應該從YOLOv4或YOLOv5切換到PP-YOLO嗎?

PP-YOLO模型顯示了最先進的目標檢測的前景,但與其他對象檢測器相比,改進是漸進的,它是在一個新的框架中編寫的。在這個階段,最好的做法是通過在自己的數據集上訓練PP-YOLO來發展自己的經驗結果。

同時,我建議你查看以下YOLO教程,讓你的對象探測器成為現實:

原文鏈接:https://towardsdatascience.com/pp-yolo-surpasses-yolov4-object-detection-advances-1efc2692aa62

歡迎關注磐創AI博客站:
http://panchuang.net/

sklearn機器學習中文官方文檔:
http://sklearn123.com/

歡迎關注磐創博客資源匯總站:
http://docs.panchuang.net/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM