目標檢測 | YOLOv3開啓的迴歸網絡下的多尺度策略

1.簡介

通過文章目標檢測 | 讓YOLOv1算法告訴你迴歸網絡的能力目標檢測 | 讓YOLOv2告訴你Trick的力量講述了YOLO算法的原理和部分改進策略。YOLO系列算法在剛被提出時其目的在於提升檢測網絡的速度,因此其算法的召回率和檢測率相對於Faster RCNN系列算法會要低一些。作者爲了提升YOLO算法的實用性,提出了YOLOv2,在不損失速度的情況下提升了網絡精度。但從下圖的左圖中我們可以發現,在輸入同等級分辨率圖片的情況下,YOLOv2的精度是沒有SSD系列算法好的。而YOLOv3的提出,徹底穩固了YOLO系列算法的地位,因爲如下圖右圖所示YOLOv3使得YOLO系列算法的性能超越了SSD系列。因此本文就從原理上來簡單闡述下YOLOv3算法的主要改進點,後續會針對YOLOv3算法解析darknet框架下的訓練源碼。

2.改進點

1.box是否含有物體改進
利用logistic迴歸計算每個bounding box是否含有物體(二分類:有或者沒有)。在該過程中,之前的YOLOv2算法是看ground truth的位置中心座標在哪,來判定當前bounding box是否含有物體。而在YOLOv3中將與ground truth的IOU最大的那個bounding box認爲是包含該物體,因此YOLOv3的特點是每個ground truth都僅僅分配一個bounding box。對於那些沒有被分配的bounding box,網絡計算損失時,僅僅計算是否包含物體損失,不計算座標和類概率損失。

2.類概率預測改進
對於類概率預測,在YOLOv2中是直接利用softmax進行類概率預測。而在YOLOv3中對於每一個類,使用獨立的logistic分類器,使用交叉熵損失計算類概率損失。用這種策略的原因是,考慮到在利用softmax分類時,需要把所有的類別獨立開來(one hot編碼的特點),但是一旦遇到如(女人 ,人)這種包含類別時,用softmax就不是那麼合適了。因此才引入logistic分類器結合多標籤,來處理此類問題。

3.多尺度檢測策略改進
YOLOv3的多尺度策略在三個不同的尺度作detection。
v2只有一個detection,v3一下變成了3個,在3個不同尺度的feature map上進行detection。在輸入爲416的情況下這三個特徵圖的尺度爲13*13,26*26,52*52,這應該是對小目標影響最大的地方。
如下圖所示,在輸入爲640*352的情況下,三個不同尺度的detection位置和特徵圖大小(分辨率搞成寬高不一樣,感覺更直觀一點)。

70  conv        27    1*1/1  20*11*256 ->  20*11*27 
71  detection
72  route       29
73  conv        256   3*3/2  80*44*128 ->  40*22*256
74  route      73 48  
75  conv        256   1*1/1  40*22*512 ->  40*22*256
76  conv        256   3*3/1  40*22*512 ->  40*22*256
77  conv        256   1*1/1  40*22*512 ->  40*22*256
78  conv        27    1*1/1  40*22*512 ->  40*22*27
79  detection
80  route       10
81  conv        128   3*3/2  160*88*64 ->  80*44*128
82  route      81 29  
83  conv        256   1*1/1  80*44*256 ->  80*44*256
84  conv        256   3*3/1  80*44*256 ->  80*44*256
85  conv        256   1*1/1  80*44*256 ->  80*44*256
86  conv        27    1*1/1  80*44*256 ->  80*44*27
87  detection

3.YOLOv3的網絡框架圖

如下圖所示,左邊虛線框就是YOLOv3網絡的特徵提取模塊的示意圖,以416分辨率的圖像作爲輸入,根據網絡的深入,會產生3中不同尺度的特徵圖(52,26,13),YOLOv3在這三個尺度上進行不同尺度的目標檢測。

如上圖的框架所示,我們發現整個網絡中用到了上採樣操作,這其實是一種相對比較耗時,而且性價比不高的手段,因此在我用YOLOv3網絡時做了一點小改動,在不損失網絡精度和網絡思想的前提下去掉網絡的上採樣過程。思路就如下圖所示,通過stride爲2的卷積實現下采樣,最終也能實現三個尺度的detection,而且可以不用到上採樣操作。

本文簡單介紹了一下YOLOv3的策略,後續會更新一些YOLOv3的源碼解讀,歡迎持續關注~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章