深度學習_目標檢測_YOLO9000模型詳解

YOLO9000詳細介紹

YOLO9000是在YOLOv2的基礎上提出的一種聯合訓練方法,可以檢測超過9000個類別的模型。YOLOv2混合目標檢測數據集和分類數據集,用目標檢測數據集及其類別標記信息和位置標註信息訓練模型學習預測目標定位和分類,用分類數據集及其類別標記信息進一步擴充模型所能識別的物體類別同時能增強模型魯棒性。

YOLO9000如何組織數據

YOLO9000根據各個類別之間的從屬關係建立一種樹結WordTree,將COCO數據集和ImageNet數據集組織起來。

WordTree的生成方式如下:

1.首先遍歷ImageNet中的類別名詞。
2. 對每個名詞,在WordNet(一種結構化概念及概念之間關係的語言數據庫)上找到從它所在位置到根結點(設根結點爲實體對象physical object)的最短路徑,由於在WordNet中大多數同義詞只有一個路徑,所以先把該路徑的詞全都加到樹中。
3. 迭代地檢查剩下的名詞,取它到根節點的最短路徑,將該最短路徑上的還沒出現在層次樹中的詞加入到樹中。混合後的數據集形成一個有9418類的WordTree。生成的WordTree模型如下圖所示。另外考慮到COCO數據集相對於ImageNet數據集數據量太少了,爲了平衡兩個數據集,作者進一步對COCO數據集過採樣,使COCO數據集與ImageNet數據集的數據量比例接近1:4。

在這裏插入圖片描述

對於物體的標籤,採用one-hot編碼的形式,數據集中的每個物體的類別標籤被組成1個長度爲9418的向量,向量中除在WordTree中從該物體對應的名詞到根結點的路徑上出現的詞對應的類別標號處爲1,其餘位置爲0。

YOLO9000聯合訓練的過程

YOLO9000採用YOLOv2的結構,anchor box由原來的5調整到3,對每個anchor box預測其對應的邊界框的位置信息x,y,w,h和置信度以及所包含的物體分別屬於9418類的概率,所以每個anchor box需要預測4+1+9418=94234 + 1 + 9418 = 9423個值。每個網格需要預測3×9423=282693\times 9423 = 28269個值。在訓練過程中,當網絡遇到來自檢測數據集的圖片時,用完整的YOLOv2loss進行反向傳播計算,當網絡遇到來自分類數據集的圖片時,只用分類部分的loss進行反向傳播。

YOLO9000的預測過程

WordTree中每個節點的子節點都屬於同一個子類,分層次的對每個子類的節點進行一次softmax處理,以得到同義詞集合中的每個詞的下義詞的概率。當需要預測屬於某個類別的概率時,需要預測該類別節點的條件概率。即在WordTree上找到該類別名詞的根結點的路徑,計算路徑上每個節點的概率之積。預測時,YOLOv2得到置信度,同時會給出邊界框位置以及一個樹狀概率圖,沿着根結點向下,沿着置信度最高的分枝向下,直到達到某個閾值,最後到達的節點類別即爲預測物體的類別。

YOLO9000使用WordTree混合目標檢測數據集和分類數據集,並在其上進行聯合訓練,使之能實時檢測出超過9000個類別的物體,其強大令人讚歎不已。YOLO9000尤其對動物的識別效果很好,但是對衣服或者設備等類別的識別效果不是很好,可能的原因是與目標檢測數據集中的數據偏向有關。

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