作者|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,
- https://blog.roboflow.ai/a-thorough-breakdown-of-yolov4/
YOLOv4論文的讀數與PP-YOLO論文相似,如下所示,我們提供了一些關于如何在Darknet中訓練YOLOv4的很好的訓練教程,
- https://blog.roboflow.ai/training-yolov4-on-a-custom-dataset/
然后,就在幾個月前,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檔案,
- https://arxiv.org/pdf/1807.03247.pdf
SPP
空間金字塔池化是骨干層之后的一個額外塊,用于混合和合并空間特征,還在YOLOv4和YOLOv5中實作,
更好的預訓練骨干
PP YOLO的作者提煉出更大的ResNet模型作為骨干,更好的預訓練模型顯示也可以改善下游轉移學習,
PP-YOLO是最先進的嗎?
PP-YOLO勝過2020年4月23日發布的YOLOv4結果,
- YOLOv4:https://arxiv.org/pdf/2004.10934.pdf
公平地說,作者指出這可能是一個錯誤的問題,作者的意圖似乎不只是“引入一種新穎的新型檢測器”,而是表明仔細調整物件檢測器以最大化性能的程序,在此處參考本文的介紹:
本文的重點是如何堆疊一些幾乎不影響效率的有效技巧以獲得更好的性能……本文無意介紹一種新穎的目標檢測器,它更像一個食譜,它告訴你如何逐步構建更好的檢測器,我們發現了一些對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


值得注意的是,在YOLOv4中使用的許多技術(如架構搜索和資料擴充)并沒有在ppyolo中使用,這意味著,隨著更多這些技術的結合和集成,目標檢測的最新技術仍有發展的空間,
毋庸置疑,這是實施計算機視覺技術的激動人心的時刻,
我應該從YOLOv4或YOLOv5切換到PP-YOLO嗎?
PP-YOLO模型顯示了最先進的目標檢測的前景,但與其他物件檢測器相比,改進是漸進的,它是在一個新的框架中撰寫的,在這個階段,最好的做法是通過在自己的資料集上訓練PP-YOLO來發展自己的經驗結果,
同時,我建議你查看以下YOLO教程,讓你的物件探測器成為現實:
-
如何在Darknet中訓練YOLOv4
- https://blog.roboflow.ai/training-yolov4-on-a-custom-dataset/
-
如何在PyTorch中訓練YOLOv5
- https://blog.roboflow.ai/how-to-train-yolov5-on-a-custom-dataset/
原文鏈接:https://towardsdatascience.com/pp-yolo-surpasses-yolov4-object-detection-advances-1efc2692aa62
歡迎關注磐創AI博客站:
http://panchuang.net/
sklearn機器學習中文官方檔案:
http://sklearn123.com/
歡迎關注磐創博客資源匯總站:
http://docs.panchuang.net/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/175056.html
標籤:其他
