概述
實時目標檢測對于許多實際應用來說已經變得至關重要,而Ultralytics公司開發的YOLO(You Only Look Once,只看一次)系列一直是最先進的模型系列,在速度和準確性之間提供了穩健的平衡。注意力機制的低效阻礙了它們在像YOLO這樣的高速系統中的應用。YOLOv12旨在通過將注意力機制集成到YOLO框架中來改變這一現狀。
1.新特性
大多數目標檢測架構傳統上依賴于卷積神經網絡(CNN),因為注意力機制效率低下,面臨著二次計算復雜度和低效的內存訪問操作問題。因此,在對推理速度要求很高的YOLO框架中,基于CNN的模型通常比基于注意力的系統表現更好。
YOLOv12通過引入三個關鍵改進來克服這些限制:
區域注意力模塊(A2):
- YOLOv12引入了一個簡單而高效的區域注意力模塊(A2),該模塊將特征圖分割成多個片段,在保留大感受野的同時降低了傳統注意力機制的計算復雜度。這種簡單的修改使模型在保持較大視野的同時提高了速度和效率。
殘差高效層聚合網絡(R - ELAN):
- YOLOv12利用R - ELAN來解決注意力機制帶來的優化挑戰。R - ELAN對之前的ELAN架構進行了改進,具體如下:
- 塊級殘差連接和縮放技術,以確保訓練的穩定性。
- 重新設計的特征聚合方法,提高了性能和效率。
架構改進:
- 快速注意力(Flash Attention):快速注意力的集成解決了注意力機制的內存訪問瓶頸問題,優化了內存操作并提高了速度。
- 去除位置編碼:通過消除位置編碼,YOLOv12簡化了模型,使其更快、更簡潔,同時不犧牲性能。
- 調整多層感知機(MLP)比率:多層感知機的擴展比率從4降低到1.2,以平衡注意力網絡和前饋網絡之間的計算負載,提高效率。
- 減少塊深度:通過減少架構中堆疊塊的數量,YOLOv12簡化了優化過程并提高了推理速度。
- 卷積算子:YOLOv12廣泛使用卷積操作以利用其計算效率,進一步提高性能并降低延遲。
注:
由于兩個因素,注意力機制本質上比卷積神經網絡(CNN)慢:
- 復雜性。首先,自注意力操作的計算復雜度隨輸入序列長度 L 呈二次方增長。此外,另一個重要因素是,大多數基于注意力的視覺變壓器由于其復雜的設計(例如,Swin 變壓器中的窗口劃分/反轉
)和額外模塊的引入(例如,位置編碼),逐漸積累了速度開銷。- 計算。其次,在注意力計算過程中,與 CNN 相比,內存訪問模式效率較低,例如注意力圖和 softmax 圖。此外,與 CNN 相比,注意力中的不規則內存訪問模式會引入更多的延遲。
2.YOLOv12的架構概述
圖1:YOLOv12的主干網絡和頭部網絡架構
3.區域注意力模塊
圖2:區域注意力可視化
為了解決普通注意力機制相關的計算成本問題,YOLOv12利用了局部注意力機制,如移位窗口注意力、十字交叉注意力和軸向注意力。雖然這些方法通過將全局注意力轉換為局部注意力來降低復雜度,但由于感受野減小,它們在速度和準確性方面存在局限性。
- 提出的解決方案:YOLOv12引入了一個簡單而高效的區域注意力模塊。該模塊將分辨率為(H,W)的特征圖分割成L個大小為(H/L,W)或(H,W/L)的片段。它不是使用顯式的窗口劃分,而是應用了一個簡單的重塑操作。
- 優點:這將感受野減小到原來的四分之一,但與其他局部注意力方法相比,仍然保持了較大的感受野。通過將計算成本從傳統的(2n2hd)降低到(n2hd)/2,模型在不犧牲準確性的情況下變得更加高效。
4.殘差高效層聚合網絡(R - ELAN)
圖3:YOLOv12中使用的R - ELAN
ELAN概述:
高效層聚合網絡(ELAN) 在早期的YOLO模型中用于改進特征聚合。ELAN的工作方式如下:
- 對1×1卷積層的輸出進行分割。
- 通過多個模塊處理這些分割后的部分。
- 在應用另一個1×1卷積以對齊最終維度之前,將輸出進行拼接。
ELAN存在的問題:
- 梯度阻塞:由于從輸入到輸出缺乏殘差連接,導致訓練不穩定。
- 優化挑戰:注意力機制和架構可能會導致收斂問題,L規模和X規模的模型即使使用Adam或AdamW優化器也無法收斂或保持不穩定。
提出的解決方案——R - ELAN:
- 殘差連接:引入了從輸入到輸出的殘差捷徑,帶有一個縮放因子(默認值為0.01),以提高穩定性。
- 層縮放類比:類似于深度視覺Transformer中使用的層縮放,但避免了將層縮放應用于每個區域注意力模塊而導致的速度下降。
新的聚合方法:
- 修改后的設計:新方法不是在過渡層之后分割輸出,而是調整通道維度并創建單個特征圖。
- 瓶頸結構:在拼接之前通過后續塊處理特征圖,形成更高效的聚合方法。
5.架構改進
- 快速注意力(Flash Attention):YOLO12利用了快速注意力,它最大限度地減少了內存訪問開銷。這解決了注意力機制的主要內存瓶頸問題,縮小了與CNN的速度差距。
- MLP比率調整:前饋網絡的擴展比率從Transformer中通常的4降低到YOLOv12中的約1.2。這防止了MLP在運行時占據主導地位,從而提高了整體效率。
- 去除位置編碼:YOLOv12在其注意力層中省略了顯式的位置編碼。這使得模型“快速且簡潔”,同時在檢測性能上沒有損失。
- 減少堆疊塊:最近的YOLO主干網絡在最后一個階段堆疊了三個注意力/CNN塊;而YOLOv12在該階段只使用了一個R - ELAN塊。較少的順序塊簡化了優化過程并提高了推理速度,尤其是在更深的模型中。
- 卷積算子:該架構還使用了帶有批量歸一化的卷積,而不是帶有層歸一化的線性層,以充分利用卷積算子的效率。
6.基準測試
圖4:YOLOv12的比較
數據集:所有模型均在MS COCO 2017目標檢測基準上進行評估。
YOLOv12 - N的性能:最小的YOLOv12 - N模型實現了40.6%的更高平均精度均值(mAP),相比之下,YOLOv10 - N為38.5%,YOLOv11 - N為39.4%,同時保持了相似的推理延遲。
YOLOv12 - S與RT - DETR的比較:YOLOv12 - S模型也優于RT - DETR模型。值得注意的是,它的運行速度比RT - DETR - R18模型快約42%,同時只使用了RT - DETR - R18模型約36%的計算量和約45%的參數。
每個YOLOv12模型(從N到X)在與YOLOv8、YOLOv9、YOLOv10、YOLOv11等類似大小的模型相比時,在相當或更低的延遲下實現了更好的mAP。這種優勢從小型模型到大型模型都存在,證明了YOLOv12改進的可擴展性。
7. 最先進技術比較
例如:對于N 規模的模型,YOLOv12 - N 在平均精度均值(mAP)上分別比 YOLOv6–3.0 - N [32]、 YOLOv8-N [58]、 YOLOv10-N [53] 和 YOLOv11 [28] 高出 3.6%、3.3%、2.1% 和 1.2%,同時保持相似甚至更少的計算量和參數,并實現了1.64 毫秒/圖像的快速延遲速度。
- 對于S 規模的模型,YOLOv12 - S 具有 21.4G 浮點運算量(FLOPs)和 9.3M 參數,在 2.61 毫秒/圖像的延遲下實現了 48.0 mAP。它在平均精度均值(mAP)上分別比 YOLOv8-S [24]、YOLOv9-S [58]、YOLOv10-S [53] 和 YOLOv11 - S [28] 高出 3.0%、1.2%、1.7% 和 1.1%,同時保持相似或更少的計算量。
- 對于M 規模的模型,YOLOv12 - M 具有 67.5G 浮點運算量(FLOPs)和 20.2M 參數,實現了 52.5 mAP 的性能和 4.86 毫秒/圖像的速度。
- 對于L 規模的模型,YOLOv12 - L 甚至比 YOLOv10-L [53] 少 31.4G 浮點運算量(FLOPs)。
- 對于X 規模的模型,YOLOv12 - X 在平均精度均值(mAP)上分別比 YOLOv10-X [53] / YOLOv11 - X [28] 高出 0.8% 和 0.6%,同時具有相當的速度、浮點運算量(FLOPs)和參數。
8. 推理速度比較
YOLOv12 的推理速度比 YOLOv9 ** 顯著提高**,同時與 YOLOv10 和 YOLOv11 相當。
總結
YOLOv12目前的一個局限性是它依賴于快速注意力(FlashAttention)來實現最佳速度。快速注意力僅在相對較新的GPU架構(NVIDIA的圖靈、安培、阿達·洛芙萊斯或霍珀系列)上得到支持,例如特斯拉T4、RTX 20/30/40系列、A100、H100等。
這意味著缺乏這些架構的舊GPU無法充分受益于YOLOv12的優化注意力實現。使用不支持的硬件的用戶將不得不回退到標準注意力內核,從而失去一些速度優勢。