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