DL、ML筆記(18):YOLO v3

YOLOv3: An Incremental Improvement

JianJie
Oct 14, 2021

YOLOv3是根據YOLOv2再次改進,其參考其他Paper改動了多個部分,優化自身模型,其效果相當顯著,提升檢測效果的同時依然保留較高的檢測速度。

以下根據Paper安排,依序介紹YOLOv3改進之處:

Bounding Box Prediction

Bounding Box定義與YOLOv2相同,使用MSE loss

  • 正樣本: 與Ground Truth重疊最大的框 (Max IOU)
  • 負樣本: 與Ground Truth IOU < 0.5
  • 忽略樣本: IOU > 0.5但非Max IOU

忽略的樣本則是避免兩個BBox在IOU皆很大的情況下(0.9, 0.8),相對較小的BBox轉為負樣本則會太過強硬,造成正負樣本的Loss互相影響,無法有較好效果。而以上情況可以使用NMS(Non-Maximum Suppression)解決

YOLOv3使用Logistic Regression(Sigmoid)來回歸Box Confidence,並將Ground Truth改為0 or 1。

YOLOv2 Box Confidence定義為Predict與Ground Truth之IOU,此定義會造成部分Predict與Ground Truth匹配的IOU較低的Anchor乘上Class Probability後,整體機率下降,經過Threshold則會被刪除,在小物體上此現象會更明顯,Pixel對IOU影響很大,更難檢測出結果

Class Prediction

Class Probability取消使用Softmax,改用二分法,使用BCE(Binary Cross Entropy)

Softmax只能預測單一類別,而許多物品擁有多類別標籤,如男人與人類的類別,或是物品重疊的情況,在更複雜的領域中(如open image dataset、WordNet),效果會更好

YOLOv3網路架構

YOLOv3網路架構圖

Predictions Across Scales

YOLOv3在網路架構中加入Feature Pyramid Network (FPN)結構,融合多尺度特徵,並輸出多尺度結果,FPN 原始paper中使用Sum融合特徵,YOLOv3使用Concatenate

高解析度檢測小物體,低解析度檢測大物體,每個尺度檢測3種anchor。

COCO Dataset 9 個Anchor size為: (10×13), (16×30), (33×23), (30×61), (62×45), (59× 119), (116 × 90), (156 × 198), (373 × 326)

FPN結構

Feature Extractor

YOLOv3加入Residual Block及Bottleneck layers ,取消使用Pooling,採用Conv(stride=2),使用average pooling或max pooling皆會損失資料,而使用Conv(3x3, Stride=2)可以完全保留原始資料。

Backbone中有53個Convolution,因此將名稱改為Darknet-53,可與ResNet-101同等效果但速度更快

Training

YOLOv3訓練使用與YOLOv2雷同的策略,如multi-scale training、data augmentation、batch normalization等方法

YOLOv3實驗無效方法

Anchor box x, y offset predictions

用線性方式預測BBox的長寬(p•t),會使模型較不穩定且效果較差

Linear x, y predictions instead of logistic

用Linear Regression預測Box Confidence,效果較Logistic Regression差

Focal loss

使用Focal loss,效果未提升,原因未知

Dual IOU thresholds and truth assignment

Faster R-CNN使用兩個Threshold來判斷正負樣本,IOU>0.7為正樣本,IOU<0.3為負樣本,但並不能得到更好的效果

YOLOv3 Performance

YOLOv3優缺點

優點:

  • 加深網路,增加準確率
  • 多層預測大小物體,提升小物體準確率
  • 取消Softmax使用Sigmoid,可使物體擁有多重標籤
  • 正負樣本定義改變為以框整體(IoU)為基礎判斷正負樣本,而不是框的中心位置

缺點:

  • 單一物體擁有多重標籤(多重輸出結果)

--

--

JianJie
JianJie

Written by JianJie

Image Processing / Computer Vision / Deep Learning

No responses yet