深度學習論文筆記:YOLO9000

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)=1IOU(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. 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章