Abstract
- YOLO9000: a state-of-the-art, real-time 的目標檢測系統,可以檢測超過9000種的物體分類。
- 本論文提出兩個模型,YOLOv2和YOLO9000。
- YOLOv2:
- 是對YOLO改進後的提升模型。
- 利用新穎的,多尺度訓練的方法,YOLOv2模型可以在多種尺度上運行,在速度與準確性上更容易去trade off。
- YOLO9000:
- 是提出的一種聯合在檢測和分類數據集上訓練的模型,這種聯合訓練的方法使得YOLO9000能夠爲沒有標籤的檢測數據目標類預測。
- 可以檢測超過9000個類。
Introduction
- 目前,許多檢測方法依舊約束在很小的物體集上。
- 目前,目標檢測數據集相比於用於分類和標註的數據集來說,是有限制的。
- 最常見的檢測數據集包含數十到數十萬的圖像,具有幾十到幾百個標籤,比如Pascal、CoCo、ImageNet。
- 分類數據集具有數以百萬計的圖像,具有數萬或數十萬種類別,如ImageNet。
- 目標檢測數據集永遠不會達到和分類數據集一樣的等級。
- 本論文提出一種方法,利用分類數據集來作爲檢測數據集,將兩種截然不同的數據集結合。
- 本論文提出一個在目標檢測和分類數據集上聯合訓練的方法。此方法利用標記的檢測圖像學習精確定位對象,而它使用分類圖像增加其詞彙和魯棒性。
Better
YOLO產生很多的定位錯誤。而且YOLO相比於region proposal-based方法有着相對較低的recall(查全率)。所以主要任務是在保持分類準確率的前提下,提高recall和減少定位錯誤。
我們從過去的工作中融合了我們自己的各種新想法,以提高YOLO的性能。 結果的摘要可以在表中找到:
Batch Normalization
- 得到2%的mAP的提升,使用Batch Normalization,我們可以從模型中刪除dropout,而不會出現過度缺陷。
High Resolution Classifier
- 對於YOLOv2,我們首先在ImageNet對全部448×448分辨率圖像上進行10epochs的微調來調整分類網絡。 然後我們在檢測時調整resulting network。 這種高分辨率分類網絡使我們增加了近4%的mAP。
Convolutional With Anchor Boxes
- YOLO利用卷積特徵提取器最頂端的全連接層來直接預測BB的座標。而Faster R-CNN是利用首選的priors來預測BB。
- 預測BB的偏移而不是座標可以簡化問題,並使網絡更容易學習。本論文從YOLO中移去了全連接層,並且利用anchor box來預測BB。
- 我們移去了pooling層,使得網絡的卷積層的輸出有更高的像素。
- 同時將網絡縮減到在416*416像素的圖片上操作。 我們這樣做是因爲我們想要特徵圖中具有奇數個位置,因此存在單箇中心單元。
- 當我們移動到anchor boxes時,我們也將class prediction機制與空間位置解耦,而是爲每個anchor box預測的類和對象。 同YOLO一樣,objectness prediction仍然預測ground truth和所提出的框的IOU,並且class predictions預測該類的條件概率,假定存在對象。(沒太懂)
Dimension Clusters
將YOLO與anchor boxes結合有兩個問題,第一個是anchor box的長寬是認爲選定的。
我們不是手動選擇先驗(priors),而是在訓練集邊界框上運行k-means聚類,以自動找到好的先驗。
我們真正想要的是導致良好的IOU分數的priors,這是獨立於盒子的大小。 因此,對於我們的distance metric,我們使用:
d(box,centroid)=1−IOU(box,centroid) 我們選擇k = 5作爲模型複雜性和高召回率之間的良好權衡。這樣非常不同於相比於人工選擇的boxes。更多的又高又瘦的boxes。
Direct location prediction
將YOLO與anchor boxes結合有兩個問題,第二個模型不穩定,特別是在早期迭代中。
並非預測偏移,我們遵循YOLO的方法並預測相對於網格單元的位置的位置座標。 這將ground truth限制在0和1之間。我們使用邏輯激活來約束網絡的預測落在該範圍內。
網絡爲每一個BB預測5個座標:
tx,ty,tw,th,to .![](https://ww2.sinaimg.cn/large/006tKfTcjw1fcjb6g0tdpj309203r0st.jpg) ![](https://ww1.sinaimg.cn/large/006tKfTcjw1fcjbl2jwc6j30bj09k3z4.jpg)
結合Dimension Clusters和Direct location prediction,YOLO提升5%的mAP。
Fine-Grained Features
- 修改後的YOLO在13*13的feature map上進行檢測。 雖然這對於大對象是足夠的,但是它可以從用於定位較小對象的細粒度特徵中受益。
- 添加一個傳遞層,將分辨率從前面的層變爲從26 x 26分辨率。
Multi-Scale Training
- 我們希望YOLOv2可以足夠魯邦在不同尺寸的images上進行訓練。
- 並非使用固定的輸入圖像尺寸,我們在每幾次迭代後改變網絡。每10batches,我們的網絡隨機選擇一個新的圖像尺寸。
Faster
- 大多數檢測框架依賴VGG-16作爲基本特徵提取器。VGG-16是一個強大、準確的分類網絡,但是也很複雜。
- YOLO框架使用的基於Googlenet架構的修改後的網絡。比VGG-16快速,但是準確性比VGG-16稍差。
Darknet-19
供YOLOv2使用的新的分類模型。
最終模型叫做darknet-19,有着19個卷積層和5個maxpooling層。
Darknet-19處理每張圖片只需要5.58 billion的操作。
Training for classification
- 在標準的ImageNet 1000類的數據集上利用隨機梯度下降訓練160 epochs。開始學習率爲0.1,polynomial rate decay 是4,weight decay是0.0005,動量是0.9。
- 在訓練期間,我們使用標準的數據增加技巧,包括隨機裁剪,旋轉,以及色調,飽和度和曝光偏移。
- 在224x224分辨率的圖像上進行預訓練,然後在448x448分辨率的圖像上進行微調。
Training for detection
- 我們通過去除最後的卷積層來修改這個網絡,並且替代地增加具有1024個濾波器的三個3×3卷積層,每個跟隨着具有我們需要檢測所需的輸出數量的最後的1×1卷積層。
- passthrough層的添加:使網絡能夠使用fine grain feature。
Stronger
- 本論文提出一種機制,用來將分類和檢測數據結合起來再一起訓練。
- 在訓練過程中,當看到用於檢測的被標註的圖片,我們會使用基於YOLOv2的代價函數進行反向傳播。
- 在訓練過程中,當看到分類圖片,我們只從框架中用來分類部分來傳遞損失。
- 這種方法的challenge:
- 檢測數據集中的標籤是大分類,而分類數據集的標籤是小分類,所以我們需要找一個方法來融合這些標籤。
- 用來分類的許多方法都是使用softmax層來計算最後的概率分佈,使用softmax層會假設類之間是互斥的,但是如何用本方法融合數據集,類之間本身不是互斥的。
- 我們所以使用multi-label模型來結合數據集,不假設類之間互斥。這種方法忽略了我們已知的數據的結構。
Hierarchical classification
- ImageNet標籤是從WordNet中得來,一種結構化概念和標籤之間如何聯繫的語言數據庫。
- WordNet是連接圖結構,而非樹。我們相反並不實用整個圖結構,我們將問題簡化成從ImageNet的概念中構建有結構的樹。
- WordTree
Dataset combination with WordTree
我們可以使用WordTree來介個數據集。
將數據集中分類映射成樹中的下義詞。
舉例:將ImageNet和COCO數據集結合:
WordNet十分多樣化,所以我們可以利用這種技術到大多數數據集。
Joint classification and detection
- 將COCO數據集和ImageNet數據集結合,訓練處一個特別大規模的檢測器。
- 對應的WordTree有9418個類。
- ImageNet是一個更大的數據集,因此我們通過對COCO進行過採樣來平衡數據集,使ImageNet只以4:1的倍數來增大。
- 當我們的網絡看見一張用來檢測的圖片,我們正常反向傳播loss。對於分類loss,我們只在該label對應層次之上反向傳播loss。比如:如果標籤是“dog”,我們會在樹中的“German Shepherd”和“Golden Retriever”中進一步預測錯誤,因爲我們沒有這些信息。
- 當我們的網絡看見一張用來分來的照片,我們只反向傳遞分類loss。
- 使用這種聯合訓練,YOLO 9000使用COCO中的檢測數據學習找到圖像中的對象,並使用ImageNet中的數據學習分類各種各樣的對象。
- 在ImageNet上利用YOLO9000來做detection,從而進行評估。ImageNet和COCO只有44個相同的類分類,意味着YOLO9000在利用部分監督來進行檢測。
Conclusion
- 本論文提出兩個模型,YOLOv2和YOLO9000。
- YOLOv2:是對YOLO改進後的提升模型。更快更先進。此外,它可以以各種圖像大小運行,以提供速度和精度之間的權衡。
- YOLO9000:是提出的一種聯合在檢測和分類數據集上訓練的模型,可以爲沒有任何標註檢測標籤的數據進行檢測。可以檢測超過9000個類。使用WordTree技術來組合不同來源的數據。
- 我們創造出許多目標檢測之外的技術:
- WordTree representation.
- Dataset combination.
- Multi-scale training.
- 下一步工作:我們希望利用相似的技術來進行weakly supervised image segmentation.