【YOLOv2全文翻譯】YOLO9000: Better, Faster, Stronger

目錄

Abstract

1. Introduction

2. Better

3. Faster

4. Stronger

5. Conclusion


Abstract

       我們將介紹一個先進的,實時目標檢測的網絡YOLO9000,它可以檢測超過9000個類別的物體。首先,我們針對YOLO檢測網絡提出了許多從以前的工作中得出的,新穎的改進。改進後的網絡稱爲YOLOv2,在標準的檢測任務中,比如PASCAL VOC和COCO,它也是一個先進的目標檢測網絡。使用新穎的多尺度訓練方法,相同的YOLOv2模型可以在不同的圖像大小下運行,並在速度和準確度之間提供簡單的權衡。

       在VOC 2007數據集上,YOLOv2實現了67 FPS和76.8 mAP。在40 FPS時,YOLOv2獲得78.6 mAP,優於最先進的方法,如使用ResNet和SSD的Faster R-CNN,同時運行速度明顯更快。

       最後,我們提出了一個聯合訓練目標檢測和分類任務的方法。使用這個方法,我們在COCO檢測數據集和ImageNet分類數據集上同時訓練YOLO9000網絡。我們的聯合訓練使得YOLO9000可以預測沒有標籤的檢測數據的對象類別。我們在ImageNet的檢測任務中驗證了網絡的有效性。YOLO9000在ImageNet檢測驗證集上獲得了19.7 mAP,儘管在200個類中只有44個類具有檢測數據。在COCO不包含的156個類別中,YOLO9000獲得了16.0 mAP。 但YOLO可以檢測到超過200個類別; 它預測了超過9000種不同對象類別的檢測。並且它仍然可以實時運行。


1. Introduction

       通用目標檢測應該是快速的,準確的並且能夠識別各種各樣的物體。由於神經網絡的發展,檢測網絡已經變得越來越快速和準確。然而,大多數檢測網絡仍然受限於很少的物體範圍內。

      與用於分類和標記等其他任務的數據集相比,當前目標檢測數據集是有限的。最常見的檢測數據集包含數千到數十萬個具有數十到數百個標籤的圖像。而分類數據集具有數百萬個具有數十或數十萬個類別的圖像。

       我們希望檢測能擴展到物體分類的級別。然而,用於檢測的標籤圖像比用於分類或標記的標籤要昂貴得多(標記通常是用戶免費提供的)。因此,我們不太可能在不久的將來看到與分類數據集相同規模的檢測數據集。

       我們提出了一種新方法來利用我們已有的大量的分類數據,並用它來擴展當前檢測系統的範圍。我們的方法使用物體分類的分層視圖,允許我們將不同的數據集組合在一起。

       我們還提出了一種聯合訓練算法,該算法允許我們在檢測和分類數據上訓練目標檢測網絡。我們的方法利用標記的檢測圖像來學習精確定位物體,同時使用分類圖像來增加其詞彙量和魯棒性。

       使用這種方法,我們訓練YOLO9000,一個可以檢測超過9000種不同物體類別的實時目標檢測網絡。首先,我們改進了基礎YOLO檢測網絡,以得到YOLOv2,這是一種先進的實時檢測網絡。然後我們使用數據集組合方法聯合訓練算法來訓練來自ImageNet以及COCO檢測數據的超過9000個類的模型。

       All of our code and pre-trained models are available online at:http://pjreddie.com/yolo9000/


2. Better

       與先進的檢測系統相比,YOLO存在各種缺點。與Fast R-CNN相比,YOLO的錯誤分析表明YOLO產生了大量的定位誤差。 此外,與基於region proposal的方法相比,YOLO具有相對較低的召回率。 因此,我們主要關注改善召回率和定位,同時保持分類準確性。

       計算機視覺通常趨向於更大,更深的網絡。更好的性能通常取決於訓練更大的網絡或集合多個模型。但是,對於YOLOv2,我們需要更準確的檢測,但速度仍然很快。我們沒有擴展網絡,而是簡化網絡,然後使特徵表示更容易學習。我們將過去工作中的各種想法與我們自己的新思想結合起來,以提高YOLO的性能。A summary of results can be found in Table 2.

       Batch Normalization. 批量歸一化導致收斂的顯着改善,同時消除了對其他形式的正則化的需要。通過在YOLO中的所有卷積層上添加批量標準化,我們可以使mAP提高2%以上。批量標準化也有助於模型正則化。通過批量標準化,我們可以從模型中刪除dropout而不會過度擬合。

       High Resolution Classifier. 所有最先進的檢測方法都使用在ImageNet上預先訓練的分類器。從AlexNet開始,大多數分類器在小於256 * 256的輸入圖像上運行。原始的YOLO訓練分類器網絡爲224 * 224並增加分辨率爲448 * 448進行檢測。這意味着網絡必須同時切換到學習目標檢測並調整到新的輸入分辨率。

       對於YOLOv2,我們首先在ImageNet上以完整的448 * 448分辨率微調分類網絡10個epoch。這使網絡有時間調整其卷積核,以便在更高分辨率的輸入上更好地工作。然後我們在檢測時對生成的網絡進行微調。高分辨率分類網絡使我們的mAP增加了近4%。

       Convolutional With Anchor Boxes. YOLO直接使用卷積特徵提取器頂部的全連接層預測邊界框的座標。而不是直接預測座標的Faster R-CNN使用手工挑選的先驗預測邊界框僅使用卷積層,Faster R-CNN中的區域提議網絡(RPN)預測anchor boxes的偏移和置信度。由於預測層是卷積的,因此RPN在特徵圖中的每個位置預測這些偏移。預測偏移而不是座標簡化了問題,使網絡更容易學習。

       我們移除了YOLO網絡中的全連接層並使用anchor boxes來預測邊界框。首先,我們移除一個pooling層,使網絡卷積層的輸出分辨率更高。我們還縮小網絡以在416 * 416輸入圖像而不是448 * 448上操作。我們這樣做是因爲我們想要在我們的特徵圖中有奇數個位置,所以只有一箇中心單元格。物體,特別是大物體,往往佔據圖像的中心,因此最好在中心有一個位置來預測這些物體而不是附近的四個位置。YOLO的卷積層將圖像縮小了32倍,因此通過使用416 * 416的輸入圖像,我們得到13 * 13的輸出特徵圖。

       當我們使用anchor boxes時,我們還將類預測機制與空間位置預測分離,而是預測每個anchor box的類和objectness(指anchor boxes中是否有物體)。同YOLO網絡一樣,objectness預測仍然預測真實框與預測框之間的IOU(Pr(Object) * IOU,並且類別預測在給定存在對象的情況下預測該類的條件概率(Pr(Class[i] | Object))。(計算過程如下圖所示)

       使用anchor boxes我們的準確性會略有下降。 YOLO僅預測每張圖片98個boxes,但是使用anchor boxes我們的模型預測超過1000個boxes。沒有anchor boxes,我們的中間模型獲得69.5 mAP,召回率爲81%。使用anchor boxes,我們的模型獲得69.2 mAP,召回率爲88%。雖然mAP減少,召回的增加也意味着我們的模型有更大的改進空間。

       Dimension Clusters. 在YOLO網絡中使用anchor boxes時,我們遇到了兩個問題。首先是box維度是手工挑選的。網絡可以學會適當地調整框,如果我們從網絡中選擇更好的先驗,我們可以讓網絡更容易學習預測好的檢測。

       我們不是手動選擇先驗,而是在訓練集邊界框上運行k-means聚類,以自動找到好的先驗。 如果我們使用具有歐幾里德距離的標準k-means,那麼較大的框會產生比較小的框更多的誤差。然而,我們真正想要的是能夠獲得良好IOU分數的先驗,這與盒子boxes的大小無關。 因此,對於我們的距離度量,我們使用:

       我們爲各種k值運行k-means並繪製具有最接近聚類中心的平均IOU,參見Figure 2。我們選擇k = 5作爲模型複雜度和高召回率之間的良好權衡。聚類中心與與手工挑選的anchor boxes明顯不同寬,短的boxes更少,相反高,瘦的boxes更多。

       我們比較聚類策略和手工挑選anchor boxes的平均IOU,如Table 1所示。只有5個聚類中心時的性能與9個anchor boxes性能類似,即平均IOU爲61.0 VS. 60.9。如果我們使用9個聚類中心,我們會看到更高的平均IOU (67.2)。這表明使用k-means生成我們的邊界框會以更好的表示方式啓動模型,使任務更容易學習。

       Direct Location Prediction. 在YOLO網絡中使用anchor boxes時,我們遇到了第二個問題:模型不穩定,特別是在早期迭代期間。大多數不穩定性來自於預測box的(x, y)位置。在區域提議網絡RPN中,網絡預測值 tx ty,並且(x, y)中心座標計算爲:

       例如,tx = 1的預測會將框box向右移動anchor box的寬度,tx = -1的預測會將其向左移動相同的量。(上邊公式沒搞懂啊!!!)

       這個公式是不受約束的,因此任何anchor box都可以在圖像中的任何位置結束,無論預測box的位置如何。隨機初始化,模型需要很長時間才能穩定以預測合理的偏移。

       我們不是預測偏移offset,而是遵循YOLO的方法,預測相對於網格單元的位置座標。 這將真實框限制在0和1之間。我們使用邏輯激活logistics activation來約束網絡預測落在此範圍內。

       網絡在輸出的feature map中預測每個單元格的5個邊界框。網絡預測每個邊界框的 5 個座標,tx,ty,tw,th和to。如果單元格從圖像的左上角偏移(cx, cy)並且前面的邊界框具有寬度和高度pw,ph,則預測對應於:

       由於我們約束位置進行預測,因此參數化更容易學習,使網絡更穩定。使用維度聚類以及直接預測邊界框中心位置可使YOLO比使用anchor boxes的版本提高近5%。

        Fine-Grained Features. 改進後的YOLO在13 * 13特徵圖上預測檢測。雖然這對於大型物體來說已足夠,但它可能會受益於用於定位較小對象的更細粒度的特徵。Faster R-CNN和SSD都在網絡中的各種特徵圖上運行其提議網絡RPN,以獲得一系列分辨率。我們採用不同的方法,只需添加一個直通層passthrough layer,以26 * 26的分辨率從較早的層中獲取特徵。

      直通層通過將相鄰特徵堆疊到不同的通道而不是空間位置將較高分辨率的特徵與低分辨率特徵連接起來,類似於ResNet中的identity mappings。這將 26 * 26 * 512 特徵圖轉換爲 13 * 13 * 2048 特徵圖,可以與原始特徵連接。我們的檢測器運行在這個擴展的特徵圖之上,因此它可以訪問細粒度的特徵。這使得性能提高1%。

       Multi-Scale Training. 最初的YOLO使用輸入分辨率爲448 * 448。通過添加錨定框,我們將分辨率更改爲416 * 416。但是,由於我們的模型僅使用卷積和池化層,因此可以動態調整大小。我們希望YOLOv2能夠在不同尺寸的圖像上運行,因此我們將其訓練到模型中。

       這種方式迫使網絡學習如何在各種輸入維度上做好預測。這意味着同一網絡可以預測不同分辨率的檢測。網絡在較小的圖像尺寸運行得更快,因此YOLOv2可在速度和精度之間輕鬆權衡。

       在低分辨率下,YOLOv2作爲相當精確的檢測器運行。在288 * 288分辨率時,它的運行速度超過90 FPS,mAP幾乎與Fast R-CNN一樣好。這使其成爲較小GPU,高幀率視頻或多視頻流的理想選擇。

       在高分辨率下,YOLOv2是最先進的檢測器,在VOC 2007上具有78.6 mAP,同時仍然高於實時速度。有關YOLOv2與VOC 2007其他框架的比較,請參閱Table 3,Figure 4.

       Further Experiment. 我們訓練YOLOv2用於檢測VOC 2012數據集Table 4 展示了YOLOv2與其他最先進的檢測系統的性能比較。YOLOv2達到73.4 mAP,同時檢測速度比其它方法快得多。我們還在COCO數據集上進行訓練並在Table 5 中的其他方法進行比較。在VOC指標(IOU = 0.5)上,YOLOv2達到44.0 mAP,與SSD和更快的R-CNN相當。
 


3. Faster

       我們希望檢測準確,但我們也希望檢測速度快。大多數檢測應用程序(如機器人或自動駕駛汽車)都依賴於低延遲預測。爲了最大限度地提高性能,我們將YOLOv2設計爲從頭開始加速。

       大多數檢測框架依賴於VGG-16作爲基本特徵提取器。VGG-16是一個功能強大,準確的分類網絡,但它非常複雜。VGG-16的卷積層需要306.9億浮點運算,在224 * 224分辨率的單個圖像上進行單次檢測。

       YOLO框架使用基於Googlenet 架構的自定義網絡。該網絡比VGG-16更快,在前向計算時僅使用85.2億次浮點運算。 然而,它的準確性略差於VGG-16 對於224 * 224 single-crop的top-5 accuracy,YOLO定製型在ImageNet上爲88.0%,而VGG-16爲90.0%。

       Darknet-19. 我們提出了一種新的分類模型作爲YOLOv2的基礎。我們的模型建立在網絡設計的先前工作以及該領域的常識之上。與VGG型號類似,我們大多使用 3 * 3 卷積核,並且在進行池化步驟後將通道數量增加一倍。效仿Network in Network (NIN),我們使用全局平均池化來進行預測以及1*1卷積核來壓縮3 * 3卷積之間的特徵表示。我們使用批量歸一化 (BN) 來穩定訓練,加速收斂,並使模型正則化。

       我們的最終模型名爲Darknet-19,有19個卷積層5個最大池化層。有關完整說明,請參閱Table 6。Darknet-19僅需要55.8億次浮點運算來處理圖像,但在ImageNet上實現了 72.9% 的top-1精度和 91.2% top-5精度。


4. Stronger

 

       Hierarchical Clsssification. 

 

 

       Dataset Combination with WordTree.

 

 

       Joint Classification and detection.

 

 


5. Conclusion

       我們介紹實時檢測系統YOLOv2和YOLO9000。YOLOv2是先進的檢測網絡,在各種檢測數據集中比其他檢測系統更快。此外,它可以在各種圖像尺寸下運行,以在速度和精度之間提供平滑的折衷。

       YOLO9000是一個實時框架,通過聯合優化檢測和分類來檢測9000多個物體類別。我們使用WordTree組合來自各種來源的數據,以及我們的聯合優化技術以同時在ImageNet和COCO上進行訓練。YOLO9000是縮小檢測和分類之間數據集大小差距的重要一步。

       我們的許多技術都在目標檢測之外進行推廣。 ImageNet的WordTree表示爲圖像分類提供了更豐富,更詳細的輸出空間。使用分層分類的數據集組合在分類和分割中將是有用的。多尺度訓練等訓練技術可以爲各種視覺任務帶來好處。

       對於未來的工作,我們希望使用類似的技術進行弱監督圖像分割。我們還計劃使用更強大的匹配策略來改進我們的檢測結果,以便在訓練期間爲分類數據分配弱標籤。計算機視覺受到大量標記數據帶來的好處。我們將繼續尋找將不同來源和結構數據結合在一起的方法,以製作更強大的視覺世界模型。


 

Reference paper:YOLO9000: Better, Faster, Stronger

 

 

 

 

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