目標檢測新SOTA:YOLOv9問世,新架構讓傳統卷積重煥生機
繼 2023 年 1 月 YOLOv8 正式發布一年多以后,YOLOv9 終于來了!
我們知道,YOLO 是一種基于圖像全局信息進行預測的目標檢測系統。自 2015 年 Joseph Redmon、Ali Farhadi 等人提出初代模型以來,領域內的研究者們已經對 YOLO 進行了多次更新迭代,模型性能越來越強大。
此次,YOLOv9 由中國臺灣 Academia Sinica、臺北科技大學等機構聯合開發,相關的論文《Learning What You Want to Learn Using Programmable Gradient Information 》已經放出。
論文地址:https://arxiv.org/pdf/2402.13616.pdf
GitHub 地址:https://github.com/WongKinYiu/yolov9
如今的深度學習方法重點關注如何設計最合適的目標函數,從而使得模型的預測結果能夠最接近真實情況。同時,必須設計一個適當的架構,可以幫助獲取足夠的信息進行預測。然而,現有方法忽略了一個事實,即當輸入數據經過逐層特征提取和空間變換時,大量信息將會丟失。
因此,YOLOv9 深入研究了數據通過深度網絡傳輸時數據丟失的重要問題,即信息瓶頸和可逆函數。
研究者提出了可編程梯度信息(programmable gradient information,PGI)的概念,來應對深度網絡實現多個目標所需要的各種變化。PGI 可以為目標任務計算目標函數提供完整的輸入信息,從而獲得可靠的梯度信息來更新網絡權值。
此外,研究者基于梯度路徑規劃設計了一種新的輕量級網絡架構,即通用高效層聚合網絡(Generalized Efficient Layer Aggregation Network,GELAN)。該架構證實了 PGI 可以在輕量級模型上取得優異的結果。
研究者在基于 MS COCO 數據集的目標檢測任務上驗證所提出的 GELAN 和 PGI。結果表明,與基于深度卷積開發的 SOTA 方法相比,GELAN 僅使用傳統卷積算子即可實現更好的參數利用率。
對于 PGI 而言,它的適用性很強,可用于從輕型到大型的各種模型。我們可以用它來獲取完整的信息,從而使從頭開始訓練的模型能夠比使用大型數據集預訓練的 SOTA 模型獲得更好的結果。下圖 1 展示了一些比較結果。
對于新發布的 YOLOv9,曾參與開發了 YOLOv7、YOLOv4、Scaled-YOLOv4 和 DPT 的 Alexey Bochkovskiy 給予了高度評價,表示 YOLOv9 優于任何基于卷積或 transformer 的目標檢測器。
圖
來源:https://twitter.com/alexeyab84/status/1760685626247250342
還有網友表示,YOLOv9 看起來就是新的 SOTA 實時目標檢測器,他自己的自定義訓練教程也在路上了。
來源:https://twitter.com/skalskip92/status/1760717291593834648
更有「勤勞」的網友已經為 YOLOv9 模型添加了 pip 支持。
來源:https://twitter.com/kadirnar_ai/status/1760716187896283635
接下來看 YOLOv9 的詳細信息。
問題陳述
通常,人們將深度神經網絡收斂困難問題歸因于梯度消失或梯度飽和等因素,這些現象確實存在于傳統的深度神經網絡中。然而,現代深度神經網絡通過設計各種歸一化和激活函數,已經從根本上解決了上述問題。不過即便如此,深度神經網絡中仍然存在著收斂速度慢或收斂效果差的問題。那么這個問題的本質到底是什么?
研究者通過對信息瓶頸的深入分析,推斷出了該問題的根本原因:梯度最初從非常深層的網絡傳遞出來后不久,就丟失了許多達成目標所需的信息。為了驗證這一推斷,研究者們對具有初始權重的不同架構的深度網絡進行前饋處理。圖 2 對此進行了可視化說明。顯然,PlainNet 在深層丟失了很多進行對象檢測所需的重要信息。至于 ResNet、CSPNet 和 GELAN 能夠保留的重要信息比例,確實與訓練后能夠獲得的準確性正相關。研究者進一步設計了基于可逆網絡的方法來解決上述問題的原因。
方法介紹
可編程梯度信息(PGI)
該研究提出了一種新的輔助監督框架:可編程梯度信息(Programmable Gradient Information,PGI),如圖 3(d)所示。
PGI 主要包括三個部分,即(1)主分支,(2)輔助可逆分支,(3)多級輔助信息。
- PGI 的推理過程僅使用了主分支,因此不需要額外的推理成本;
- 輔助可逆分支是為了處理神經網絡加深帶來的問題, 網絡加深會造成信息瓶頸,導致損失函數無法生成可靠的梯度;
- 多級輔助信息旨在處理深度監督帶來的誤差累積問題,特別是多個預測分支的架構和輕量級模型。
GELAN 網絡
此外,該研究還提出了一個新的網絡架構 GELAN(如下圖所示),具體而言,研究者把 CSPNet、 ELAN 這兩種神經網絡架構結合起來,從而設計出兼顧輕量級、推理速度和準確性的通用高效層聚合網絡(generalized efficient layer aggregation network ,GELAN)。研究者將最初僅使用卷積層堆疊的 ELAN 的功能泛化到可以使用任何計算塊的新架構。
實驗結果
為了評估 YOLOv9 的性能,該研究首先將 YOLOv9 與其他從頭開始訓練的實時目標檢測器進行了全面的比較,結果如下表 1 所示。
該研究還將 ImageNet 預訓練模型納入比較中,結果如下圖 5 所示。值得注意的是,使用傳統卷積的 YOLOv9 在參數利用率上甚至比使用深度卷積的 YOLO MS 還要好。
消融實驗
為了探究 YOLOv9 中各個組件的作用,該研究進行了一系列消融實驗。
該研究首先對 GELAN 的計算塊進行消融實驗。如下表 2 所示,該研究發現用不同的計算塊替換 ELAN 中的卷積層后,系統可以保持良好的性能。
然后該研究又在不同尺寸的 GELAN 上針對 ELAN 塊深度和 CSP 塊深度進行了消融實驗,結果如下表 3 所示。
在 PGI 方面,研究者分別在主干網絡和 neck 上對輔助可逆分支和多級輔助信息進行了消融研究。表 4 列出了所有實驗的結果。從表 4 中可以看出,PFH 只對深度模型有效,而本文提出的 PGI 在不同組合下都能提高精度。
研究者進一步在不同大小的模型上實現了 PGI 和深度監控,并對結果進行了比較,結果如表 5 所示。
圖 6 顯示了從基準 YOLOv7 到 YOLOv9- E 逐步增加組件的結果。
可視化
研究者探討了信息瓶頸問題,并將其進行了可視化處理,圖 6 顯示了在不同架構下使用隨機初始權重作為前饋獲得的特征圖的可視化結果。
圖 7 說明了 PGI 能否在訓練過程中提供更可靠的梯度,從而使用于更新的參數能夠有效捕捉輸入數據與目標之間的關系。
更多技術細節,請閱讀原文。