文章作者:Tyan
博客:noahsnail.com ?|? CSDN ?|? 簡書
聲明:作者翻譯論文僅為學(xué)習(xí),如有侵權(quán)請聯(lián)系作者刪除博文,謝謝!
翻譯論文匯總:https://github.com/SnailTyan/deep-learning-papers-translation
YOLO9000: Better, Faster, Stronger
摘要
我們引入了一個先進(jìn)的實時目標(biāo)檢測系統(tǒng)YOLO9000,可以檢測超過9000個目標(biāo)類別。首先,我們提出了對YOLO檢測方法的各種改進(jìn),既有新穎性,也有前期的工作。改進(jìn)后的模型YOLOv2在PASCAL VOC和COCO等標(biāo)準(zhǔn)檢測任務(wù)上是最先進(jìn)的。使用一種新穎的,多尺度訓(xùn)練方法,同樣的YOLOv2模型可以以不同的尺寸運(yùn)行,從而在速度和準(zhǔn)確性之間提供了一個簡單的折衷。在67FPS時,YOLOv2在VOC 2007上獲得了76.8 mAP。在40FPS時,YOLOv2獲得了78.6 mAP,比使用ResNet的Faster R-CNN和SSD等先進(jìn)方法表現(xiàn)更出色,同時仍然運(yùn)行速度顯著更快。最后我們提出了一種聯(lián)合訓(xùn)練目標(biāo)檢測與分類的方法。使用這種方法,我們在COCO檢測數(shù)據(jù)集和ImageNet分類數(shù)據(jù)集上同時訓(xùn)練YOLO9000。我們的聯(lián)合訓(xùn)練允許YOLO9000預(yù)測未標(biāo)注的檢測數(shù)據(jù)目標(biāo)類別的檢測結(jié)果。我們在ImageNet檢測任務(wù)上驗證了我們的方法。YOLO9000在ImageNet檢測驗證集上獲得19.7 mAP,盡管200個類別中只有44個具有檢測數(shù)據(jù)。在沒有COCO的156個類別上,YOLO9000獲得16.0 mAP。但YOLO可以檢測到200多個類別;它預(yù)測超過9000個不同目標(biāo)類別的檢測結(jié)果。并且它仍然能實時運(yùn)行。
1. 引言
通用目的的目標(biāo)檢測應(yīng)該快速,準(zhǔn)確,并且能夠識別各種各樣的目標(biāo)。自從引入神經(jīng)網(wǎng)絡(luò)以來,檢測框架變得越來越快速和準(zhǔn)確。但是,大多數(shù)檢測方法仍然受限于一小部分目標(biāo)。
與分類和標(biāo)記等其他任務(wù)的數(shù)據(jù)集相比,目前目標(biāo)檢測數(shù)據(jù)集是有限的。最常見的檢測數(shù)據(jù)集包含成千上萬到數(shù)十萬張具有成百上千個標(biāo)簽的圖像[3][10][2]。分類數(shù)據(jù)集有數(shù)以百萬計的圖像,數(shù)十或數(shù)十萬個類別[20][2]。
我們希望檢測能夠擴(kuò)展到目標(biāo)分類的級別。但是,標(biāo)注檢測圖像要比標(biāo)注分類或貼標(biāo)簽要昂貴得多(標(biāo)簽通常是用戶免費提供的)。因此,我們不太可能在近期內(nèi)看到與分類數(shù)據(jù)集相同規(guī)模的檢測數(shù)據(jù)集。
我們提出了一種新的方法來利用我們已經(jīng)擁有的大量分類數(shù)據(jù),并用它來擴(kuò)大當(dāng)前檢測系統(tǒng)的范圍。我們的方法使用目標(biāo)分類的分層視圖,允許我們將不同的數(shù)據(jù)集組合在一起。
我們還提出了一種聯(lián)合訓(xùn)練算法,使我們能夠在檢測和分類數(shù)據(jù)上訓(xùn)練目標(biāo)檢測器。我們的方法利用標(biāo)記的檢測圖像來學(xué)習(xí)精確定位物體,同時使用分類圖像來增加詞表和魯棒性。
使用這種方法我們訓(xùn)練YOLO9000,一個實時的目標(biāo)檢測器,可以檢測超過9000種不同的目標(biāo)類別。首先,我們改進(jìn)YOLO基礎(chǔ)檢測系統(tǒng),產(chǎn)生最先進(jìn)的實時檢測器YOLOv2。然后利用我們的數(shù)據(jù)集組合方法和聯(lián)合訓(xùn)練算法對來自ImageNet的9000多個類別以及COCO的檢測數(shù)據(jù)訓(xùn)練了一個模型。

圖1:YOLO9000。YOLO9000可以實時檢測許多目標(biāo)類別。
我們的所有代碼和預(yù)訓(xùn)練模型都可在線獲得:http://pjreddie.com/yolo9000/。
2. 更好
與最先進(jìn)的檢測系統(tǒng)相比,YOLO有許多缺點。YOLO與Fast R-CNN相比的誤差分析表明,YOLO造成了大量的定位誤差。此外,與基于區(qū)域提出的方法相比,YOLO召回率相對較低。因此,我們主要側(cè)重于提高召回率和改進(jìn)定位,同時保持分類準(zhǔn)確性。
計算機(jī)視覺一般趨向于更大,更深的網(wǎng)絡(luò)[6][18][17]。更好的性能通常取決于訓(xùn)練更大的網(wǎng)絡(luò)或?qū)⒍鄠€模型組合在一起。但是,在YOLOv2中,我們需要一個更精確的檢測器,它仍然很快。我們不是擴(kuò)大我們的網(wǎng)絡(luò),而是簡化網(wǎng)絡(luò),然后讓表示更容易學(xué)習(xí)。我們將過去的工作與我們自己的新概念匯集起來,以提高YOLO的性能。表2列出了結(jié)果總結(jié)。

表2:從YOLO到Y(jié)OLOv2的路徑。列出的大部分設(shè)計決定都會導(dǎo)致mAP的顯著增加。有兩個例外是切換到具有錨盒的一個全卷積網(wǎng)絡(luò)和使用新網(wǎng)絡(luò)。切換到錨盒風(fēng)格的方法增加了召回,而不改變mAP,而使用新網(wǎng)絡(luò)會削減$33%$的計算量。
批標(biāo)準(zhǔn)化。批標(biāo)準(zhǔn)化導(dǎo)致收斂性的顯著改善,同時消除了對其他形式正則化的需求[7]。通過在YOLO的所有卷積層上添加批標(biāo)準(zhǔn)化,我們在mAP中獲得了超過$2%$的改進(jìn)。批標(biāo)準(zhǔn)化也有助于模型正則化。通過批標(biāo)準(zhǔn)化,我們可以從模型中刪除丟棄而不會過擬合。
高分辨率分類器。所有最先進(jìn)的檢測方法都使用在ImageNet[16]上預(yù)訓(xùn)練的分類器。從AlexNet開始,大多數(shù)分類器對小于256×256[8]的輸入圖像進(jìn)行操作。原來的YOLO以224×224的分辨率訓(xùn)練分類器網(wǎng)絡(luò),并將分辨率提高到448進(jìn)行檢測。這意味著網(wǎng)絡(luò)必須同時切換到學(xué)習(xí)目標(biāo)檢測和調(diào)整到新的輸入分辨率。
對于YOLOv2,我們首先ImageNet上以448×448的分辨率對分類網(wǎng)絡(luò)進(jìn)行10個迭代周期的微調(diào)。這給了網(wǎng)絡(luò)時間來調(diào)整其濾波器以便更好地處理更高分辨率的輸入。然后,我們在檢測上微調(diào)得到的網(wǎng)絡(luò)。這個高分辨率分類網(wǎng)絡(luò)使我們增加了近$4%$的mAP。
具有錨盒的卷積。YOLO直接使用卷積特征提取器頂部的全連接層來預(yù)測邊界框的坐標(biāo)。Faster R-CNN使用手動選擇的先驗來預(yù)測邊界框而不是直接預(yù)測坐標(biāo)[15]。Faster R-CNN中的區(qū)域提出網(wǎng)絡(luò)(RPN)僅使用卷積層來預(yù)測錨盒的偏移和置信度。由于預(yù)測層是卷積的,所以RPN在特征映射的每個位置上預(yù)測這些偏移。預(yù)測偏移而不是坐標(biāo)簡化了問題,并且使網(wǎng)絡(luò)更容易學(xué)習(xí)。
我們從YOLO中移除全連接層,并使用錨盒來預(yù)測邊界框。首先,我們消除了一個池化層,使網(wǎng)絡(luò)卷積層輸出具有更高的分辨率。我們還縮小了網(wǎng)絡(luò),操作416×416的輸入圖像而不是448×448。我們這樣做是因為我們要在我們的特征映射中有奇數(shù)個位置,所以只有一個中心單元。目標(biāo),特別是大目標(biāo),往往占據(jù)圖像的中心,所以在中心有一個單獨的位置來預(yù)測這些目標(biāo),而不是四個都在附近的位置是很好的。YOLO的卷積層將圖像下采樣32倍,所以通過使用416的輸入圖像,我們得到了13×13的輸出特征映射。
當(dāng)我們移動到錨盒時,我們也將類預(yù)測機(jī)制與空間位置分離,預(yù)測每個錨盒的類別和目標(biāo)。在YOLO之后,目標(biāo)預(yù)測仍然預(yù)測了實際值和提出的邊界框的IOU,并且類別預(yù)測預(yù)測了當(dāng)存在目標(biāo)時該類別的條件概率。
使用錨盒,我們在精度上得到了一個小下降。YOLO每張圖像只預(yù)測98個邊界框,但是使用錨盒我們的模型預(yù)測超過一千。如果沒有錨盒,我們的中間模型將獲得69.5的mAP,召回率為$81%$。具有錨盒我們的模型得到了69.2 mAP,召回率為$88%$。盡管mAP下降,但召回率的上升意味著我們的模型有更大的提升空間。
維度聚類。當(dāng)錨盒與YOLO一起使用時,我們遇到了兩個問題。首先是邊界框尺寸是手工挑選的。網(wǎng)絡(luò)可以學(xué)習(xí)適當(dāng)調(diào)整邊界框,但如果我們?yōu)榫W(wǎng)絡(luò)選擇更好的先驗,我們可以使網(wǎng)絡(luò)更容易學(xué)習(xí)它以便預(yù)測好的檢測。
我們不用手工選擇先驗,而是在訓(xùn)練集邊界框上運(yùn)行k-means聚類,自動找到好的先驗。如果我們使用具有歐幾里得距離的標(biāo)準(zhǔn)k-means,那么較大的邊界框比較小的邊界框產(chǎn)生更多的誤差。然而,我們真正想要的是導(dǎo)致好的IOU分?jǐn)?shù)的先驗,這是獨立于邊界框大小的。因此,對于我們的距離度量,我們使用:$$d(\text{box}, \text{centroid}) = 1 - \text{IOU}(\text{box}, \text{centroid})$$我們運(yùn)行各種$k$值的k-means,并畫出平均IOU與最接近的幾何中心,見圖2。我們選擇$k=5$作為模型復(fù)雜性和高召回率之間的良好折衷。聚類中心與手工挑選的錨盒明顯不同。有更短更寬的邊界框和更高更細(xì)的邊界框。

圖2:VOC和COCO的聚類邊界框尺寸。我們對邊界框的維度進(jìn)行k-means聚類,以獲得我們模型的良好先驗。左圖顯示了我們通過對$k$的各種選擇得到的平均IOU。我們發(fā)現(xiàn)$k = 5$給出了一個很好的召回率與模型復(fù)雜度的權(quán)衡。右圖顯示了VOC和COCO的相對中心。這兩種先驗都贊成更薄更高的邊界框,而COCO比VOC在尺寸上有更大的變化。
在表1中我們將平均IOU與我們聚類策略中最接近的先驗以及手工選取的錨盒進(jìn)行了比較。僅有5個先驗中心的平均IOU為61.0,其性能類似于9個錨盒的60.9。如果我們使用9個中心,我們會看到更高的平均IOU。這表明使用k-means來生成我們的邊界框會以更好的表示開始訓(xùn)練模型,并使得任務(wù)更容易學(xué)習(xí)。

表1:VOC 2007上最接近先驗的邊界框平均IOU。VOC 2007上目標(biāo)的平均IOU與其最接近的,使用不同生成方法之前未經(jīng)修改的平均值。聚類結(jié)果比使用手工選擇的先驗結(jié)果要更好。
直接位置預(yù)測。當(dāng)YOLO使用錨盒時,我們會遇到第二個問題:模型不穩(wěn)定,特別是在早期的迭代過程中。大部分的不穩(wěn)定來自預(yù)測邊界框的$(x,y)$位置。在區(qū)域提出網(wǎng)絡(luò)中,網(wǎng)絡(luò)預(yù)測值$t_x$和$t_y$,$(x,y)$中心坐標(biāo)計算如下:
$$
x = (t_x * w_a) - x_a\\
y = (t_y * h_a) - y_a
$$
這個公式是不受限制的,所以任何錨盒都可以在圖像任一點結(jié)束,而不管在哪個位置預(yù)測該邊界框。隨機(jī)初始化模型需要很長時間才能穩(wěn)定以預(yù)測合理的偏移量。
我們沒有預(yù)測偏移量,而是按照YOLO的方法預(yù)測相對于網(wǎng)格單元位置的位置坐標(biāo)。這限制了落到$0$和$1$之間的真實值。我們使用邏輯激活來限制網(wǎng)絡(luò)的預(yù)測落在這個范圍內(nèi)。
網(wǎng)絡(luò)預(yù)測輸出特征映射中每個單元的5個邊界框。網(wǎng)絡(luò)預(yù)測每個邊界框的5個坐標(biāo),$t_x$,$t_y$,$t_w$,$t_h$和$t_o$。如果單元從圖像的左上角偏移了$(c_x, c_y)$,并且邊界框先驗的寬度和高度為$p_w$,$p_h$,那么預(yù)測對應(yīng):
$$
b_x = \sigma(t_x) + c_x \\
b_y = \sigma(t_y) + c_y\\
b_w = p_w e^{t_w}\\
b_h = p_h e^{t_h}\\
Pr(\text{object}) * IOU(b, \text{object}) = \sigma(t_o)
$$

圖3:具有維度先驗和位置預(yù)測的邊界框。我們預(yù)測邊界框的寬度和高度作為聚類中心的偏移量。我們使用sigmoid函數(shù)預(yù)測邊界框相對于濾波器應(yīng)用位置的中心坐標(biāo)。
由于我們限制位置預(yù)測參數(shù)化更容易學(xué)習(xí),使網(wǎng)絡(luò)更穩(wěn)定。使用維度聚類以及直接預(yù)測邊界框中心位置的方式比使用錨盒的版本將YOLO提高了近$5%$。
細(xì)粒度功能。這個修改后的YOLO在13×13特征映射上預(yù)測檢測結(jié)果。雖然這對于大型目標(biāo)來說已經(jīng)足夠了,但它可以從用于定位較小目標(biāo)的更細(xì)粒度的特征中受益。Faster R-CNN和SSD都在網(wǎng)絡(luò)的各種特征映射上運(yùn)行他們提出的網(wǎng)絡(luò),以獲得一系列的分辨率。我們采用不同的方法,僅僅添加一個通道層,從26x26分辨率的更早層中提取特征。
多尺度訓(xùn)練。原來的YOLO使用448×448的輸入分辨率。通過添加錨盒,我們將分辨率更改為416×416。但是,由于我們的模型只使用卷積層和池化層,因此它可以實時調(diào)整大小。我們希望YOLOv2能夠魯棒的運(yùn)行在不同大小的圖像上,因此我們可以將其訓(xùn)練到模型中。
我們沒有固定的輸入圖像大小,每隔幾次迭代就改變網(wǎng)絡(luò)。每隔10個批次我們的網(wǎng)絡(luò)會隨機(jī)選擇一個新的圖像尺寸大小。由于我們的模型縮減了32倍,我們從下面的32的倍數(shù)中選擇:{320,352,...,608}。因此最小的選項是320×320,最大的是608×608。我們調(diào)整網(wǎng)絡(luò)的尺寸并繼續(xù)訓(xùn)練。
這個制度迫使網(wǎng)絡(luò)學(xué)習(xí)如何在各種輸入維度上做好預(yù)測。這意味著相同的網(wǎng)絡(luò)可以預(yù)測不同分辨率下的檢測結(jié)果。在更小尺寸上網(wǎng)絡(luò)運(yùn)行速度更快,因此YOLOv2在速度和準(zhǔn)確性之間提供了一個簡單的折衷。
在低分辨率YOLOv2作為一個便宜,相當(dāng)準(zhǔn)確的檢測器。在288×288時,其運(yùn)行速度超過90FPS,mAP與Fast R-CNN差不多。這使其成為小型GPU,高幀率視頻或多視頻流的理想選擇。
在高分辨率下,YOLOv2是VOC 2007上最先進(jìn)的檢測器,達(dá)到了78.6 mAP,同時仍保持運(yùn)行在實時速度之上。請參閱表3,了解YOLOv2與VOC 2007其他框架的比較。圖4

表3:PASCAL VOC 2007的檢測框架。YOLOv2比先前的檢測方法更快,更準(zhǔn)確。它也可以以不同的分辨率運(yùn)行,以便在速度和準(zhǔn)確性之間進(jìn)行簡單折衷。每個YOLOv2條目實際上是具有相同權(quán)重的相同訓(xùn)練模型,只是以不同的大小進(jìn)行評估。所有的時間信息都是在Geforce GTX Titan X(原始的,而不是Pascal模型)上測得的。

圖4:VOC 2007上的準(zhǔn)確性與速度。
進(jìn)一步實驗。我們在VOC 2012上訓(xùn)練YOLOv2進(jìn)行檢測。表4顯示了YOLOv2與其他最先進(jìn)的檢測系統(tǒng)的比較性能。YOLOv2取得了73.4 mAP同時運(yùn)行速度比競爭方法快的多。我們在COCO上進(jìn)行了訓(xùn)練,并在表5中與其他方法進(jìn)行比較。在VOC度量(IOU = 0.5)上,YOLOv2得到44.0 mAP,與SSD和Faster R-CNN相當(dāng)。

表4:PASCAL VOC2012 test上的檢測結(jié)果。YOLOv2與最先進(jìn)的檢測器如具有ResNet的Faster R-CNN、SSD512在標(biāo)準(zhǔn)數(shù)據(jù)集上運(yùn)行,YOLOv2比它們快2-10倍。

表5:在COCO test-dev2015上的結(jié)果。表參考[11]
3. 更快
我們希望檢測是準(zhǔn)確的,但我們也希望它快速。大多數(shù)檢測應(yīng)用(如機(jī)器人或自動駕駛機(jī)車)依賴于低延遲預(yù)測。為了最大限度提高性能,我們從頭開始設(shè)計YOLOv2。
大多數(shù)檢測框架依賴于VGG-16作為的基本特征提取器[17]。VGG-16是一個強(qiáng)大的,準(zhǔn)確的分類網(wǎng)絡(luò),但它是不必要的復(fù)雜。在單張圖像224×224分辨率的情況下VGG-16的卷積層運(yùn)行一次傳遞需要306.90億次浮點運(yùn)算。
YOLO框架使用基于Googlenet架構(gòu)[19]的自定義網(wǎng)絡(luò)。這個網(wǎng)絡(luò)比VGG-16更快,一次前饋傳播只有85.2億次的操作。然而,它的準(zhǔn)確性比VGG-16略差。在ImageNet上,對于單張裁剪圖像,224×224分辨率下的top-5準(zhǔn)確率,YOLO的自定義模型獲得了$88.0%$,而VGG-16則為$90.0%$。
Darknet-19。我們提出了一個新的分類模型作為YOLOv2的基礎(chǔ)。我們的模型建立在網(wǎng)絡(luò)設(shè)計先前工作以及該領(lǐng)域常識的基礎(chǔ)上。與VGG模型類似,我們大多使用3×3濾波器,并在每個池化步驟之后使通道數(shù)量加倍[17]。按照Network in Network(NIN)的工作,我們使用全局平均池化做預(yù)測以及1×1濾波器來壓縮3×3卷積之間的特征表示[9]。我們使用批標(biāo)準(zhǔn)化來穩(wěn)定訓(xùn)練,加速收斂,并正則化模型[7]。
我們的最終模型叫做Darknet-19,它有19個卷積層和5個最大池化層。完整描述請看表6。Darknet-19只需要55.8億次運(yùn)算來處理圖像,但在ImageNet上卻達(dá)到了$72.9%$的top-1準(zhǔn)確率和$91.2%$的top-5準(zhǔn)確率。

表6:Darknet-19。
如上所述,在我們對224×224的圖像進(jìn)行初始訓(xùn)練之后,我們對網(wǎng)絡(luò)在更大的尺寸448上進(jìn)行了微調(diào)。對于這種微調(diào),我們使用上述參數(shù)進(jìn)行訓(xùn)練,但是只有10個迭代周期,并且以$10^{?3}$的學(xué)習(xí)率開始。在這種更高的分辨率下,我們的網(wǎng)絡(luò)達(dá)到了$76.5%$的top-1準(zhǔn)確率和$93.3%$的top-5準(zhǔn)確率。
檢測訓(xùn)練。我們修改這個網(wǎng)絡(luò)進(jìn)行檢測,刪除了最后一個卷積層,加上了三個具有1024個濾波器的3×3卷積層,其后是最后的1×1卷積層與我們檢測需要的輸出數(shù)量。對于VOC,我們預(yù)測5個邊界框,每個邊界框有5個坐標(biāo)和20個類別,所以有125個濾波器。我們還添加了從最后的3×3×512層到倒數(shù)第二層卷積層的直通層,以便我們的模型可以使用細(xì)粒度特征。
我們訓(xùn)練網(wǎng)絡(luò)160個迭代周期,初始學(xué)習(xí)率為$10^{?3}$,在60個和90個迭代周期時將學(xué)習(xí)率除以10。我們使用0.0005的權(quán)重衰減和0.9的動量。我們對YOLO和SSD進(jìn)行類似的數(shù)據(jù)增強(qiáng),隨機(jī)裁剪,色彩偏移等。我們對COCO和VOC使用相同的訓(xùn)練策略。
4. 更強(qiáng)
我們提出了一個聯(lián)合訓(xùn)練分類和檢測數(shù)據(jù)的機(jī)制。我們的方法使用標(biāo)記為檢測的圖像來學(xué)習(xí)邊界框坐標(biāo)預(yù)測和目標(biāo)之類的特定檢測信息以及如何對常見目標(biāo)進(jìn)行分類。它使用僅具有類別標(biāo)簽的圖像來擴(kuò)展可檢測類別的數(shù)量。
在訓(xùn)練期間,我們混合來自檢測和分類數(shù)據(jù)集的圖像。當(dāng)我們的網(wǎng)絡(luò)看到標(biāo)記為檢測的圖像時,我們可以基于完整的YOLOv2損失函數(shù)進(jìn)行反向傳播。當(dāng)它看到一個分類圖像時,我們只能從該架構(gòu)的分類特定部分反向傳播損失。
這種方法提出了一些挑戰(zhàn)。檢測數(shù)據(jù)集只有通用目標(biāo)和通用標(biāo)簽,如“狗”或“船”。分類數(shù)據(jù)集具有更廣更深的標(biāo)簽范圍。ImageNet有超過一百種品種的狗,包括Norfolk terrier,Yorkshire terrier和Bedlington terrier。如果我們想在兩個數(shù)據(jù)集上訓(xùn)練,我們需要一個連貫的方式來合并這些標(biāo)簽。
大多數(shù)分類方法使用跨所有可能類別的softmax層來計算最終的概率分布。使用softmax假定這些類是相互排斥的。這給數(shù)據(jù)集的組合帶來了問題,例如你不想用這個模型來組合ImageNet和COCO,因為類Norfolk terrier和dog不是相互排斥的。
我們可以改為使用多標(biāo)簽?zāi)P蛠斫M合不假定互斥的數(shù)據(jù)集。這種方法忽略了我們已知的關(guān)于數(shù)據(jù)的所有結(jié)構(gòu),例如,所有的COCO類是互斥的。
分層分類。ImageNet標(biāo)簽是從WordNet中提取的,這是一個構(gòu)建概念及其相互關(guān)系的語言數(shù)據(jù)庫[12]。在WordNet中,Norfolk terrier和Yorkshire terrier都是terrier的下義詞,terrier是一種hunting dog,hunting dog是dog,dog是canine等。分類的大多數(shù)方法為標(biāo)簽假設(shè)一個扁平結(jié)構(gòu),但是對于組合數(shù)據(jù)集,結(jié)構(gòu)正是我們所需要的。
WordNet的結(jié)構(gòu)是有向圖,而不是樹,因為語言是復(fù)雜的。例如,dog既是一種canine,也是一種domestic animal,它們都是WordNet中的同義詞。我們不是使用完整的圖結(jié)構(gòu),而是通過從ImageNet的概念中構(gòu)建分層樹來簡化問題。
為了構(gòu)建這棵樹,我們檢查了ImageNet中的視覺名詞,并查看它們通過WordNet圖到根節(jié)點的路徑,在這種情況下是“物理對象”。許多同義詞通過圖只有一條路徑,所以首先我們將所有這些路徑添加到我們的樹中。然后我們反復(fù)檢查我們留下的概念,并盡可能少地添加生長樹的路徑。所以如果一個概念有兩條路徑到一個根,一條路徑會給我們的樹增加三條邊,另一條只增加一條邊,我們選擇更短的路徑。
最終的結(jié)果是WordTree,一個視覺概念的分層模型。為了使用WordTree進(jìn)行分類,我們預(yù)測每個節(jié)點的條件概率,以得到同義詞集合中每個同義詞下義詞的概率。例如,在terrier節(jié)點我們預(yù)測:
$$
Pr(\text{Norfolk terrier} | \text{terrier}) \\
Pr(\text{Yorkshire terrier} | \text{terrier}) \\
Pr(\text{Bedlington terrier} | \text{terrier})\\
...\\
$$
如果我們想要計算一個特定節(jié)點的絕對概率,我們只需沿著通過樹到達(dá)根節(jié)點的路徑,再乘以條件概率。所以如果我們想知道一張圖片是否是Norfolk terrier,我們計算:
$$
Pr(\text{Norfolk terrier}) = Pr(\text{Norfolk terrier} | \text{terrier})\\
* Pr(\text{terrier} | \text{hunting dog}) \\
* \ldots * \\
*Pr(\text{mammal} | Pr(\text{animal})\\
* Pr(\text{animal} | \text{physical object})
$$
為了分類目的,我們假定圖像包含一個目標(biāo):$Pr(\text{physical object}) = 1$。
為了驗證這種方法,我們在使用1000類ImageNet構(gòu)建的WordTree上訓(xùn)練Darknet-19模型。為了構(gòu)建WordTree1k,我們添加了所有將標(biāo)簽空間從1000擴(kuò)展到1369的中間節(jié)點。在訓(xùn)練過程中,我們將真實標(biāo)簽向樹上面?zhèn)鞑?,以便如果圖像被標(biāo)記為Norfolk terrier,則它也被標(biāo)記為dog和mammal等。為了計算條件概率,我們的模型預(yù)測了具有1369個值的向量,并且我們計算了相同概念的下義詞在所有同義詞集上的softmax,見圖5。

圖5:在ImageNet與WordTree上的預(yù)測。大多數(shù)ImageNet模型使用一個較大的softmax來預(yù)測概率分布。使用WordTree,我們可以在共同的下義詞上執(zhí)行多次softmax操作。
使用與以前相同的訓(xùn)練參數(shù),我們的分級Darknet-19達(dá)到$71.9%$的top-1準(zhǔn)確率和$90.4%$的top-5準(zhǔn)確率。盡管增加了369個額外的概念,而且我們的網(wǎng)絡(luò)預(yù)測了一個樹狀結(jié)構(gòu),但我們的準(zhǔn)確率僅下降了一點點。以這種方式進(jìn)行分類也有一些好處。在新的或未知的目標(biāo)類別上性能會優(yōu)雅地降低。例如,如果網(wǎng)絡(luò)看到一只狗的照片,但不確定它是什么類型的狗,它仍然會高度自信地預(yù)測“狗”,但是在下義位擴(kuò)展之間有更低的置信度。
這個構(gòu)想也適用于檢測。現(xiàn)在,我們不是假定每張圖像都有一個目標(biāo),而是使用YOLOv2的目標(biāo)預(yù)測器給我們$Pr(\text{physical object})$的值。檢測器預(yù)測邊界框和概率樹。我們遍歷樹,在每個分割中采用最高的置信度路徑,直到達(dá)到某個閾值,然后我們預(yù)測目標(biāo)類。
聯(lián)合分類和檢測。現(xiàn)在我們可以使用WordTree組合數(shù)據(jù)集,我們可以在分類和檢測上訓(xùn)練聯(lián)合模型。我們想要訓(xùn)練一個非常大規(guī)模的檢測器,所以我們使用COCO檢測數(shù)據(jù)集和完整的ImageNet版本中的前9000個類來創(chuàng)建我們的組合數(shù)據(jù)集。我們還需要評估我們的方法,以便從ImageNet檢測挑戰(zhàn)中添加任何尚未包含的類。該數(shù)據(jù)集的相應(yīng)WordTree有9418個類別。ImageNet是一個更大的數(shù)據(jù)集,所以我們通過對COCO進(jìn)行過采樣來平衡數(shù)據(jù)集,使得ImageNet僅僅大于4:1的比例。
使用這種聯(lián)合訓(xùn)練,YOLO9000學(xué)習(xí)使用COCO中的檢測數(shù)據(jù)來查找圖像中的目標(biāo),并學(xué)習(xí)使用來自ImageNet的數(shù)據(jù)對各種目標(biāo)進(jìn)行分類。
我們在ImageNet檢測任務(wù)上評估YOLO9000。ImageNet的檢測任務(wù)與COCO共享44個目標(biāo)類別,這意味著YOLO9000只能看到大多數(shù)測試圖像的分類數(shù)據(jù),而不是檢測數(shù)據(jù)。YOLO9000在從未見過任何標(biāo)記的檢測數(shù)據(jù)的情況下,整體上獲得了19.7 mAP,在不相交的156個目標(biāo)類別中獲得了16.0 mAP。這個mAP高于DPM的結(jié)果,但是YOLO9000在不同的數(shù)據(jù)集上訓(xùn)練,只有部分監(jiān)督[4]。它也同時檢測9000個其他目標(biāo)類別,所有的都是實時的。
當(dāng)我們分析YOLO9000在ImageNet上的表現(xiàn)時,我們發(fā)現(xiàn)它很好地學(xué)習(xí)了新的動物種類,但是卻在像服裝和設(shè)備這樣的學(xué)習(xí)類別中掙扎。新動物更容易學(xué)習(xí),因為目標(biāo)預(yù)測可以從COCO中的動物泛化的很好。相反,COCO沒有任何類型的衣服的邊界框標(biāo)簽,只針對人,因此YOLO9000正在努力建模“墨鏡”或“泳褲”等類別。
5. 結(jié)論
我們介紹了YOLOv2和YOLO9000,兩個實時檢測系統(tǒng)。YOLOv2在各種檢測數(shù)據(jù)集上都是最先進(jìn)的,也比其他檢測系統(tǒng)更快。此外,它可以運(yùn)行在各種圖像大小,以提供速度和準(zhǔn)確性之間的平滑折衷。
YOLO9000是一個通過聯(lián)合優(yōu)化檢測和分類來檢測9000多個目標(biāo)類別的實時框架。我們使用WordTree將各種來源的數(shù)據(jù)和我們的聯(lián)合優(yōu)化技術(shù)相結(jié)合,在ImageNet和COCO上同時進(jìn)行訓(xùn)練。YOLO9000是在檢測和分類之間縮小數(shù)據(jù)集大小差距的重要一步。
我們的許多技術(shù)都可以泛化到目標(biāo)檢測之外。我們對ImageNet的WordTree表示為圖像分類提供了更豐富,更詳細(xì)的輸出空間。使用分層分類的數(shù)據(jù)集組合在分類和分割領(lǐng)域?qū)⑹怯杏玫?。像多尺度?xùn)練這樣的訓(xùn)練技術(shù)可以為各種視覺任務(wù)提供益處。
對于未來的工作,我們希望使用類似的技術(shù)來進(jìn)行弱監(jiān)督的圖像分割。我們還計劃使用更強(qiáng)大的匹配策略來改善我們的檢測結(jié)果,以在訓(xùn)練期間將弱標(biāo)簽分配給分類數(shù)據(jù)。計算機(jī)視覺受到大量標(biāo)記數(shù)據(jù)的祝福。我們將繼續(xù)尋找方法,將不同來源和數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)整合起來,形成更強(qiáng)大的視覺世界模型。
References
[1] S. Bell, C. L. Zitnick, K. Bala, and R. Girshick. Inside-outside net: Detecting objects in context with skip pooling and recurrent neural networks. arXiv preprint arXiv:1512.04143, 2015. 6
[2] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. Fei- Fei. Imagenet: A large-scale hierarchical image database. In Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on, pages 248–255. IEEE, 2009. 1
[3] M. Everingham, L. Van Gool, C. K. Williams, J. Winn, and A. Zisserman. The pascal visual object classes (voc) challenge. International journal of computer vision, 88(2):303– 338, 2010. 1
[4] P. F. Felzenszwalb, R. B. Girshick, and D. McAllester. Discriminatively trained deformable part models, release 4. http://people.cs.uchicago.edu/pff/latent-release4/. 8
[5] R. B. Girshick. Fast R-CNN. CoRR, abs/1504.08083, 2015. 4, 5, 6
[6] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. arXiv preprint arXiv:1512.03385, 2015. 2, 4, 5
[7] S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. arXiv preprint arXiv:1502.03167, 2015. 2, 5
[8] A. Krizhevsky, I. Sutskever, and G. E. Hinton. Imagenet classification with deep convolutional neural networks. In Advances in neural information processing systems, pages 1097–1105, 2012. 2
[9] M. Lin, Q. Chen, and S. Yan. Network in network. arXiv preprint arXiv:1312.4400, 2013. 5
[10] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollar, and C. L. Zitnick. Microsoft coco: Common objects in context. In European Conference on Computer Vision, pages 740–755. Springer, 2014. 1, 6
[11] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, and S. E. Reed. SSD: single shot multibox detector. CoRR, abs/1512.02325, 2015. 4, 5, 6
[12] G. A. Miller, R. Beckwith, C. Fellbaum, D. Gross, and K. J. Miller. Introduction to wordnet: An on-line lexical database. International journal of lexicography, 3(4):235–244, 1990. 6
[13] J. Redmon. Darknet: Open source neural networks in c. http://pjreddie.com/darknet/, 2013–2016. 5
[14] J. Redmon, S. Divvala, R. Girshick, and A. Farhadi. You only look once: Unified, real-time object detection. arXiv preprint arXiv:1506.02640, 2015. 4, 5
[15] S. Ren, K. He, R. Girshick, and J. Sun. Faster r-cnn: Towards real-time object detection with region proposal net- works. arXiv preprint arXiv:1506.01497, 2015. 2, 3, 4, 5, 6
[16] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, A. C. Berg, and L. Fei-Fei. ImageNet Large Scale Visual Recognition Challenge. International Journal of Computer Vision (IJCV), 2015. 2
[17] K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556, 2014. 2, 5
[18] C. Szegedy, S. Ioffe, and V. Vanhoucke. Inception-v4, inception-resnet and the impact of residual connections on learning. CoRR, abs/1602.07261, 2016. 2
[19] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich. Going deeper with convolutions. CoRR, abs/1409.4842, 2014. 5
[20] B. Thomee, D. A. Shamma, G. Friedland, B. Elizalde, K. Ni, D. Poland, D. Borth, and L.-J. Li. Yfcc100m: The new data in multimedia research. Communications of the ACM, 59(2):64–73, 2016. 1