優化點
損失計算
- YOLOv1 中,只有預測值與 Ground-true 之間 IoU 最大的 Anchor 算是樣本
- 這樣的問題是,若兩個 anchor 剛好都良好預測了同個物件的位置,但因為 IoU 最大只會有一個,導致兩個 anchor 在計算損失時 ground-true 完全不同
- YOLOv3 中,新增了一類不計算損失的 anchor,所以共有三類 anchor :
- Positive: 與物件 IoU 最大的 anchor
- 不計算損失 : 不是 positive,但與物件 IoU > 0.5 的 anchor
- Negative: 與物件 IoU < 0.5 的 anchor
多分類改成多標籤
- 使用多個二元分類器,進行多標籤預測
- 改成多標籤後,就能使用包含非互斥關係標籤的數據集來訓練 (E.g. Open image dataset)
利用了多尺度特徵圖
- 模型骨幹採用類似 FPN 設計,利用了三個不同尺度的特徵圖來進行預測
- 每個尺度的輸出為 N x N x [3 x (4 + 1 + 80)] 維度的張量
- 同樣使用了 K-means 挑選出 9 個 bounding box priors,並按照尺寸均分在 3 個尺度的輸出中
參考
- Redmon, J. , and A. Farhadi . "YOLOv3: An Incremental Improvement." arXiv e-prints (2018).