YOLOv3是到目前爲止,速度和精度最均衡的目標檢測網絡。經過多種先進方法的融合,將YOLO系列的短板(速度很快,不擅長檢測小物體等)所有補齊。達到了使人驚豔的效果和拔羣的速度。網絡
在YOLO9000[14]以後,咱們的系統使用維度聚類(dimension clusters )做爲anchor boxes來預測邊界框,網絡爲每一個邊界框預測4個座標。性能
在YOLOv3[15]中使用邏輯迴歸預測每一個邊界框(bounding box)的對象分數。 若是先前的邊界框比以前的任何其餘邊界框重疊ground truth對象,則該值應該爲1。若是之前的邊界框不是最好的,可是確實將ground truth對象重疊了必定的閾值以上,咱們會忽略這個預測,按照進行。咱們使用閾值0.5。與YOLOv2不一樣,咱們的系統只爲每一個ground truth對象分配一個邊界框。若是先前的邊界框未分配給grounding box對象,則不會對座標或類別預測形成損失。code
在YOLOv3中,每一個框使用多標籤分類來預測邊界框可能包含的類。該算法不使用softmax,由於它對於高性能沒有必要,所以YOLOv3使用獨立的邏輯分類器。在訓練過程當中,咱們使用二元交叉熵損失來進行類別預測。對於重疊的標籤,多標籤方法能夠更好地模擬數據。對象
YOLOv3採用多個尺度融合的方式作預測。原來的YOLO v2有一個層叫:passthrough layer,假設最後提取的feature map的size是13*13,那麼這個層的做用就是將前面一層的26*26的feature map和本層的13*13的feature map進行鏈接,有點像ResNet。這樣的操做也是爲了增強YOLO算法對小目標檢測的精確度。這個思想在YOLO v3中獲得了進一步增強,在YOLO v3中採用相似FPN的上採樣(upsample)和融合作法(最後融合了3個scale,其餘兩個scale的大小分別是26*26和52*52),在多個scale的feature map上作檢測,對於小目標的檢測效果提高仍是比較明顯的。雖然在YOLO v3中每一個網格預測3個邊界框,看起來比YOLO v2中每一個grid cell預測5個邊界框要少,但由於YOLO v3採用了多個尺度的特徵融合,因此邊界框的數量要比以前多不少。blog
YOLO v3使用新的網絡來實現特徵提取。在Darknet-19中添加殘差網絡的混合方式,使用連續的3×3和1×1卷積層,但如今也有一些shortcut鏈接,YOLO v3將其擴充爲53層並稱之爲Darknet-53。