YOLO不死!YOLOv9出爐:性能速度SOTA~
本文經自動駕駛之心公眾號授權轉載,轉載請聯系出處。
如今的深度學習方法專注于設計最適合的目標函數,以使模型的預測結果與實際情況最接近。同時,必須設計一個合適的架構,以便為預測獲取足夠的信息。現有方法忽略了一個事實,即當輸入數據經過逐層特征提取和空間變換時,大量信息將會丟失。本文將深入探討數據通過深度網絡傳輸時的重要問題,即信息瓶頸和可逆函數。基于此提出了可編程梯度信息(PGI)的概念,以應對深度網絡實現多目標所需的各種變化。PGI可以為目標任務提供完整的輸入信息,以計算目標函數,從而獲得可靠的梯度信息以更新網絡權重。此外設計了一種新的輕量級網絡架構——基于梯度路徑規劃的廣義高效層聚合網絡(GELAN)。
GELAN的架構證實了在輕量級模型上使用PGI取得了優越的結果。在MS COCO數據集上對所提出的GELAN和PGI進行了驗證,結果顯示GELAN僅使用傳統卷積算子就能實現比基于深度卷積的最先進方法更好的參數利用率。PGI可以用于各種模型,從輕量級到大型模型都可以。它可以用于獲取完整的信息,使得從頭開始訓練的模型可以比使用大型數據集預訓練的最先進模型取得更好的結果。
文章地址:https://arxiv.org/pdf/2402.13616
代碼鏈接:https://github.com/WongKinYiu/yolov9
優秀的性能
如下圖所示,在MS COCO數據集上實時目標檢測器的比較中,基于GELAN和PGI的目標檢測方法在目標檢測性能方面超越了所有先前的從頭開始訓練的方法。在準確性方面,新方法優于使用大型數據集預訓練的RT DETR,同時也優于基于深度卷積設計的YOLO MS在參數利用方面的表現。
本文貢獻
- 從可逆函數的角度理論分析了現有的深度神經網絡架構,通過這一過程,成功解釋了過去難以解釋的許多現象。還基于這一分析設計了PGI和輔助可逆分支,并取得了優秀的結果。
- 設計的PGI解決了深度監督只能用于極深的神經網絡架構的問題,從而使得新的輕量級架構真正能夠應用于日常工作。
- 設計的GELAN僅使用傳統卷積就能實現比基于最先進技術的深度卷積設計更高的參數使用率,同時表現出輕巧、快速和準確的巨大優勢。
- 將所提出的PGI和GELAN結合起來,YOLOv9在MS COCO數據集上的目標檢測性能在各個方面都大大超過了現有的實時目標檢測器。
方法
PGI及相關的網絡架構和方法
如下圖所示,(a) 路徑聚合網絡(PAN),(b) 可逆列(RevCol),(c) 傳統的深度監督,以及 (d) YOLOv9提出的可編程梯度信息(PGI)。
PGI主要由三個組成部分組成:
- 主分支:用于推理的架構;
- 輔助可逆分支:生成可靠的梯度以供主分支向后傳輸;
- 多級輔助信息:控制主分支學習可規劃的多級語義信息。
GELAN的架構
如下圖所示,(a) CSPNet ,(b) ELAN,以及 (c) YOLOv9提出的GELAN。模仿了CSPNet,并將ELAN擴展為GELAN,可以支持任何計算塊。
結果對比
與現有技術的比較
下表列出了YOLOv9與其他從頭開始訓練的實時目標檢測器的比較。總體而言,在現有方法中表現最佳的方法是輕量級模型的YOLO MS-S,中等模型的YOLO MS ,通用模型的YOLOv7 AF,以及大型模型的YOLOv8-X。與輕量級和中等模型的YOLO MS相比,YOLOv9的參數減少約10%,計算減少5~15%,但在AP方面仍有0.4~0.6%的改善。與YOLOv7 AF相比,YOLOv9-C的參數減少了42%,計算減少了21%,但達到了相同的AP(53%)。與YOLOv8-X相比,YOLOv9-X的參數減少了15%,計算減少了25%,并且AP有顯著提高,提高了1.7%。上述比較結果表明,YOLOv9在各個方面都比現有方法有了顯著改進。
與最先進的實時目標檢測器進行比較
參與比較的方法都使用ImageNet作為預訓練權重,包括RT DETR 、RTMDet 和PP-YOLOE等。使用從頭開始訓練方法的YOLOv9顯然超過了其他方法的性能。
可視化結果
特征圖(可視化結果): 由PlainNet、ResNet、CSPNet和GELAN在不同深度上的隨機初始權重輸出。在100層后,ResNet開始產生足夠混淆目標信息的前饋輸出。這里提出的GELAN在第150層仍然可以保留相當完整的信息,并且在第200層仍然具有足夠的區分能力。
GELAN和YOLOv9(GELAN + PGI)的PAN特征圖(可視化結果):在進行一輪偏置預熱后。GELAN最初存在一些分歧,但在添加了PGI的可逆分支后,它更能夠集中注意力于目標對象。
不同網絡架構的隨機初始權重輸出特征圖的可視化結果: (a)輸入圖像,(b)PlainNet,(c)ResNet,(d)CSPNet 和(e)提出的 GELAN。從圖中可以看出,在不同的架構中,提供給目標函數計算損失的信息程度不同,而我們的架構可以保留最完整的信息,并為計算目標函數提供最可靠的梯度信息。
結論
本文提出使用PGI來解決信息瓶頸問題以及深度監督機制不適用于輕量級神經網絡的問題。設計了GELAN,這是一個高效且輕量級的神經網絡。在目標檢測方面,GELAN在不同的計算模塊和深度設置下表現出強大而穩定的性能。它確實可以廣泛擴展為適用于各種推斷設備的模型。針對上述兩個問題,引入PGI使得輕量級模型和深度模型都能在準確性方面取得顯著改善。通過結合PGI和GELAN設計的YOLOv9表現出了強大的競爭力。其優秀的設計使得深度模型在與YOLOv8相比,參數數量減少了49%,計算量減少了43%,但在MS COCO數據集上仍然實現了0.6%的AP改善。
原文鏈接:https://mp.weixin.qq.com/s/nP4JzVwn1S-MeKAzbf97uw