今天小編分享的科學經驗:YOLOv9來了:實時目标檢測新SOTA,完勝各種輕量或大型模型!出自v7作者,歡迎閲讀。
距離 YOLOv8 發布僅 1 年的時間,v9 誕生了!
這個新版本主打用 "可編程梯度信息來學習你想學的任何内容 "。
無論是輕量級還是大型模型,它都完勝,一舉成為目标檢測領網域新 SOTA:
網友的心情 be like:
鑑于源碼已經發布,有人已率先實測了一把效果:
對比 v8 當時的表現,可以説是進步很大:
來吧,速度論文。
可編程梯度信息 + 輕量級 GELAN 架構
一般來説,為了使模型預測結果最接近真實情況,目前的深度學習方法比較側重于如何設計出一個最合适的目标函數。
同時,還要設計一種适當的架構,用于獲取足夠的信息,方便後續預測。
在此,作者認為:
現有的方法忽略了一個問題,即當輸入數據經過逐層特征提取和空間變換時,會丢失大量信息。
因此,YOLOv9 主要破解的就是數據通過深度網絡傳輸時丢失的問題,具體來説就是 " 信息瓶頸和可逆函數 "。
具體貢獻上,一是提出可編程梯度信息(PGI)的概念,來應對深度網絡檢測多個目标所需的各種變化。
PGI 可以為目标任務提供完整的輸入信息來計算目标函數,從而獲得可靠的梯度信息來更新網絡權重。
下圖為 PGI 及相關網絡架構和方法示意圖。
其中 ( a ) 為路徑聚合網絡, ( b ) 為可逆列, ( c ) 傳統深度監督, ( d ) 為作者提出的可編程梯度信息(即 PGI)。
它主要由三部分組成:
主分支:用于推理的架構;
輔助可逆分支:生成可靠的梯度,為主分支提供反向傳輸;
多級輔助信息:用來控制主分支學習可規劃的多級語義信息。
作者解釋:
由于可逆架構在淺層網絡上的性能比在一般網絡上差,因為復雜的任務需要在更深的網絡中進行轉換。
因此該設計的特點之一是不強迫主分支保留完整的原始信息,而是通過輔助監督機制生成有用的梯度來進行更新。>
這樣的優點是,方法也可以應用于較淺的網絡。
YOLOv9 的第二個貢獻是設計了一種新的基于梯度路徑規劃的輕量級網絡架構 GELAN,用于證明 PGI 的有效性。
它通過模仿 CSPNet 架構 + 擴展 ELAN 網絡而得出,可以支持任何計算塊(CSPNet 和 ELAN 都是采用梯度路徑規劃設計的神經網絡)。
大小同類模型都完勝
效果驗證在 MS COCO 數據集上進行。
所有模型都使用從頭開始訓練策略進行訓練,總訓練次數為 500 個 epoch。
基于 YOLOv7 和 Dynamic YOLOv7 構建了 YOLOv9 的通用版和擴展版。
下表為 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 在各個方面都有了顯著的改進,PGI 的設計使其可以用于從輕量到大型的各種模型。
除此之外,測試還将 ImageNet 預訓練模型包括進來,結果如下:
在這之中,就參數數量而言,性能最好的大型模型是 RTDETR。
從上圖中我們可以看到,在參數利用方面,使用傳統卷積的 YOLOv9 甚至比使用深度卷積的 YOLO MS 更好。
在大模型的參數利用方面,它也大大超過了使用 ImageNet 預訓練模型的 RT-DETR。
更厲害的是,在深度模型中,YOLOv9 顯示了使用 PGI 的巨大優勢。
通過準确地保留和提取将數據映射到目标所需的信息,YOLOv9 只需要 64% 的參數,就能同時保持和 RT DETR-X 一樣的準确性。
來自 v7 作者
眾所周知,YOLO 系列的作者幾乎每次都不是同一個,且有的是個人有的是公司。
比如 v4 是 Alexey Bochkovskiy 和 Chien-Yao Wang 等人,v5 是 Ultralytics 公司,v6 是美團公司,v7 又變成 v4 的個人作者。
這次,v9 又是由誰開發呢?
答案是 Chien-Yao Wang 等人。
這位一作的名字不算陌生,v7、v4 都有他。
他于 2017 年獲得台灣省 National Central University 計算機科學與信息工程博士學位,現在就職于該省 Academia Sinica 的信息科學研究所。
One More Thing
知乎上幾個月前就有這麼一個問題:
想用 yolov8 做畢業設計,如果開題之後,yolov9 出來了怎麼辦呢?
現在看來,這位網友的擔心可是成真了(狗頭)
不過實際不用慌,如大夥所説:
最新檢測器的泛化性不一定比以前的檢測器要好。你所選擇的只是一個基準算法,最重要的還是有自己的創新~
傳送門:
https://arxiv.org/abs/2402.13616
https://github.com/WongKinYiu/yolov9
參考鏈接:
https://twitter.com/skalskip92/status/1760717291593834648
https://www.zhihu.com/question/618277378