當前位置: 妍妍網 > 碼農

YOLOv9來了:即時目標檢測新SOTA,完勝各種輕量或大型模型!出自v7作者

2024-02-26碼農

點選上方↑↑↑OpenCV學堂」關註我

來源:公眾號 量子位授權

距離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