YOLOv3: An Incremental Improvement
- 1 Abstract
- 2 Introduction
- 3 The Deal
-
- 3.1 Bounding Box Prediction
- 3.2 Class Prediction
- 3.3 Predictions Across Scales
- 3.4 Feature Extractor
- 3.5 Training
- 4 How We Do
- 5 Things We Tried That Didn’t Work
- 總結
這篇文章讀下來,作者似乎有一點點疲倦了,從他的預期中似乎有一點點英雄垂暮之感。可能是我誤會了吧,讓我們一起來看看。
1 Abstract
模型更大了,效果也好,但還是很快的。
2 Introduction
- 感歎自己沒怎麼做研究,這次再YOLO做了一點改進,同時也幫了别人一點忙
- 似乎是因為他要引用YOLO的一些更新,沒有文章來源,是以寫了這篇技術報告
- 會講YOLOv3做了啥,怎麼做,沒有改進的一些嘗試,以及思考這一切意味着什麼。
3 The Deal
大多是受到别人好點子的啟發。訓練了一個更好的分類網絡,從頭介紹整個系統友善了解。
3.1 Bounding Box Prediction
- 輸出方式與YOLOv2一樣
- 在訓練時是使用sum of squared error loss
- 使用邏輯回歸預測每個目标的分數【這個不是很清楚,重疊程度最大的未1?覆寫未超過門檻值的,體跳過,而不是每一個groundtruth都預測一個,這樣的話就不會産生類别誤差】
3.2 Class Prediction
- 不需要softmax
- 直接使用獨立的邏輯分類器
- 訓練時對類别的預測使用binary cross-entropy loss
好處是:在出現重疊标簽時,上述方法更好,因為softmax會預設一個框隻有一個類
3.3 Predictions Across Scales
- 在三個不同的尺度預測
- 利用類似于特征金字塔網絡的概念
- N ×N ×[3∗(4 + 1 + 80)] for the 4 bounding box offsets,1 objectness prediction, and 80 class predictions.
- 從前兩層提取特征圖,上采樣變成兩倍,之後與更早的特征圖在一起處理,然後在這個特征圖做相似的預測
- 再用該方法預測了一次
重點注意:
We still use k-means clustering to determine our bound-ing box priors. We just sort of chose 9 clusters and 3 scales arbitrarily and then divide up the clusters evenly across scales.
我們仍然使用k-均值聚類來确定我們的包圍盒先驗。我們隻是随意選擇了9個叢集和3個尺度,然後在尺度上均勻地劃分這些叢集。在求解anchorbox時應該考慮尺度!!!
3.4 Feature Extractor
- darknet53
- 更大了,連續使用3 * 3,1 * 1和一些short cut
3.5 Training
- 多尺度訓練
- 資料增強(旋轉之類的)
- 批正則化
4 How We Do
- 效果很好,與SSD相當,但是更快
- 小尺度表現好,但中尺度和大尺度效果差了點
5 Things We Tried That Didn’t Work
說不好,但是有沒有深入分析
-
Anchor box x, y offset predictions.
使用線性激活将x,y偏移量預測為框寬或框高的倍數【不是很懂】,不穩定,效果不佳
- Linear x, y predictions instead of logistic,map表現不好
- Focal loss
- Dual IOU thresholds and truth assignment:fastrcnn用的,在這裡效果不好
總結
這篇更多是作為一篇技術報告,感覺主要的創新是在于:模型更深,多尺度訓練,以及像一些類别預測方式的更改,總體來說沒有2的創新大,主要是一些小改進吧。
在後面,作者是對技術發展進行了相應的思考:技術不斷突破的同時,也應該思考如何讓技術向善發展