引言
在YOLO v1取得巨大成功之后,Joseph Redmon等人在2016年提出了YOLO v2(也稱為YOLO9000),這是一個在準確率和速度上都取得顯著提升的版本。YOLO v2不僅保持了v1的高速特性,還通過一系列創新技術大幅提高了檢測精度,使其能夠處理更復雜的檢測任務。本文將深入解析YOLO v2的核心改進和技術細節。
YOLO v2的主要改進
YOLO v2相對于v1進行了多方面的優化,主要包括:
1. 高分辨率分類器(High Resolution Classifier)
YOLO v1在224×224分辨率下預訓練分類器,然后切換到448×448進行檢測訓練。而v2直接在448×448分辨率下進行10個epoch的分類器微調,使網絡適應更高分辨率的輸入。
2. 批量歸一化(Batch Normalization)
v2在所有卷積層后添加了批量歸一化層,這一改進:
- 提高了模型收斂速度
- 減少了過擬合
- 可以移除dropout而不會導致過擬合
- 帶來了超過2%的mAP提升
3. 錨框機制(Anchor Boxes)
YOLO v2摒棄了v1中完全依賴網格預測邊界框的方式,轉而采用Faster R-CNN風格的錨框(anchor boxes):
- 使用k-means聚類在訓練集邊界框上自動學習先驗框尺寸
- 最終選擇了5個最具代表性的先驗框尺寸(相比Faster R-CNN的9個更高效)
- 每個網格單元預測5個邊界框(v1只有2個)
4. 維度聚類(Dimension Clusters)
YOLO v2創新性地使用k-means聚類來確定最佳的先驗框尺寸:
# 使用IOU作為距離度量進行k-means聚類
d(box, centroid) = 1 - IOU(box, centroid)
這種基于IOU的聚類方法比傳統的歐氏距離更適合目標檢測任務,最終在COCO數據集上選擇了5個聚類中心作為先驗框尺寸。
5. 直接位置預測(Direct Location Prediction)
YOLO v2改進了邊界框中心坐標的預測方式:
- 預測相對于網格單元左上角的偏移量(tx, ty)
- 使用sigmoid函數將偏移量限制在0-1范圍內
- 預測公式為:
其中(cx,cy)是網格單元左上角坐標,(pw,ph)是先驗框的寬高。bx = σ(tx) + cx by = σ(ty) + cy bw = pw * e^(tw) bh = ph * e^(th)
6. 細粒度特征(Fine-Grained Features)
YOLO v2添加了一個直通層(passthrough layer),將前面26×26×512的特征圖與13×13×1024的特征圖連接起來:
- 將高分辨率特征圖(26×26)重組為低分辨率(13×13×4)
- 與原始低分辨率特征圖連接(13×13×(1024+512*4)=13×13×3072)
- 這種特征融合方式有助于檢測小物體
7. 多尺度訓練(Multi-Scale Training)
YOLO v2移除了全連接層,使網絡可以接受任意尺寸的輸入:
- 每10個batch就隨機選擇一個新的輸入尺寸
- 從{320, 352, …, 608}(32的倍數)中隨機選擇
- 使模型能夠適應不同分辨率的檢測任務
- 較小的尺寸(如288×288)可實現高達90FPS的速度
- 較大的尺寸(如544×544)可獲得更高的mAP
YOLO v2網絡架構
YOLO v2采用了名為Darknet-19的主干網絡:
- 19個卷積層
- 5個最大池化層
- 借鑒了VGG16的思想,但計算量更少
- 使用全局平均池化代替全連接層進行分類
- 在檢測任務中移除了最后的卷積層和全局平均池化,添加了三個3×3卷積層和一個1×1卷積層
YOLO v2性能提升
通過這些改進,YOLO v2在多個方面超越了v1:
- 準確率:在PASCAL VOC 2007上,mAP從63.4%提升到78.6%
- 速度:保持實時性(40-90FPS,取決于輸入尺寸)
- 靈活性:可以處理不同分辨率的輸入
- 類別數:YOLO9000版本可以檢測超過9000個物體類別
YOLO v2的局限性
盡管YOLO v2取得了顯著進步,但仍存在一些不足:
- 對小物體的檢測精度仍有提升空間
- 密集物體檢測時容易出現漏檢
- 邊界框定位精度不如兩階段方法
應用實踐
在實際使用YOLO v2時,有幾個關鍵點需要注意:
- 錨框尺寸選擇:應根據自己的數據集重新運行k-means聚類
- 輸入尺寸選擇:需要在速度和精度之間權衡
- 數據增強:適當的數據增強可以顯著提升模型性能
結語
YOLO v2通過一系列精心設計的改進,在保持YOLO系列高速特性的同時,顯著提升了檢測精度。其引入的錨框機制、維度聚類、多尺度訓練等技術對后續的目標檢測算法發展產生了深遠影響。雖然現在已經有了更新的YOLO版本,但YOLO v2中的許多創新思想仍然值得學習和借鑒。