在目标检测领域,YOLOv9 在实现过程中不断进步,通过采用新架构和方法,有效提高了传统卷积的参数利用率,这使得其性能远超前代产品。
继 2023 年 1 月 YOLOv8 正式发布一年多以后,YOLOv9 终于来了!
自2015年Joseph Redmon和Ali Farhadi等人提出了第一代YOLO模型以来,目标检测领域的研究者们对其进行了多次更新和迭代。YOLO是一种基于图像全局信息的预测系统,其模型性能不断得到增强。通过不断改进算法和技术,研究人员取得了显著的成果,使得YOLO在目标检测任务中表现出越来越强大的能力。这些不断的改进和优化为目标检测技术的发展带来了新的机遇和挑战,同时也推动了该领域的进步和创新。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 能否在訓練過程中提供更可靠的梯度,從而使用於更新的參數能夠有效捕捉輸入資料與目標之間的關係。
更多技術細節,請閱讀原文。
以上是目標偵測新SOTA:YOLOv9問世,新架構讓傳統卷積重煥生機的詳細內容。更多資訊請關注PHP中文網其他相關文章!