国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

這篇具有很好參考價值的文章主要介紹了【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

前言

時隔一年,YOLOv2隆重登場,新的YOLO版本論文叫《YOLO9000: Better, Faster, Stronger》,作者 Joseph Redmon 和 Ali Farhadi 在 YOLOv1 的基礎(chǔ)上,進行了大量改進,提出了 YOLOv2 和 YOLO9000,重點解決YOLOv1召回率和定位精度方面的不足。


論文原文:[1612.08242] YOLO9000: Better, Faster, Stronger (arxiv.org)

項目主頁:YOLO: Real-Time Object Detection (pjreddie.com)?


前情回顧:【YOLO系列】YOLOv1論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)


目錄

前言?

Abstract—摘要?

一、 Introduction—引言

二、 Better—更好??

2.1 Batch Normalization—批量歸一化

2.2 High Resolution Classifier—高分辨率分類器

2.3 Convolutional With Anchor Boxes—帶有Anchor Boxes的卷積

2.4 Dimension Clusters—維度聚類(K-means聚類確定Anchor初始值)

2.5 Direct location prediction—直接的位置預(yù)測

2.6 Fine-Grained Features—細粒度的特征

2.7 Multi-Scale Training—多尺度的訓(xùn)練

2.8 Further Experiments—進一步的實驗

?三、Faster—更快

3.1 Darknet-19

3.2 Training for classification—分類的訓(xùn)練

3.3 Training for detection—檢測的訓(xùn)練

四、Stronger—更強(YOLO9000部分)?

4.1 Hierarchical classification—分層分類

4.2 Dataset combination with WordTree—用WordTree組合數(shù)據(jù)集

4.3 Joint classification and detection—聯(lián)合分類和檢測

五、Conclusion—結(jié)論


Abstract—摘要

翻譯

我們介紹了YOLO9000,一個最先進的實時目標(biāo)檢測系統(tǒng),可以檢測超過9000個目標(biāo)類別。首先,我們提出了對YOLO檢測方法的各種改進,這些改進既是新的,也是來自先前的工作。改進后的模型YOLOv2在標(biāo)準(zhǔn)檢測任務(wù)上是最先進的,如PASCAL VOC和COCO。使用一種新的、多尺度的訓(xùn)練方法,同一個YOLOv2模型可以在不同的規(guī)模下運行,在速度和準(zhǔn)確性之間提供了一個簡單的權(quán)衡。在67FPS時,YOLOv2在VOC 2007上得到76.8mAP。在40 FPS時,YOLOv2得到78.6 mAP,超過了最先進的方法,如帶有ResNet和SSD的Faster R-CNN,同時運行速度仍然很高。最后,我們提出了一種聯(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)類別的檢測情況。我們在ImageNet檢測任務(wù)上驗證了我們的方法。盡管只有200個類中的44個有檢測數(shù)據(jù),YOLO9000在ImageNet檢測驗證集上得到了19.7的mAP。在COCO上沒有的的156個類中,YOLO9000得到了16.0 mAP。但YOLO能檢測的不僅僅是200個類;它能預(yù)測9000多個不同目標(biāo)類別的檢測。而且它仍然是實時運行的。


精讀?

YOLOv1的不足

(1)定位不準(zhǔn)確

(2)和基于region proposal的方法相比召回率較低。

本文的改進

  • YOLO9000:?先進,實時的目標(biāo)檢測方法,可檢測9000多類物體
  • 多尺度訓(xùn)練方法( multi-scale training):?相同的YOLOv2模型可以在不同的大小下運行,在速度和精度之間提供了一個簡單的折中
  • mAP表現(xiàn)更好:?67FPS,在VOC 2007上76.8 mAP,在40 FPS,78.6mAP;而且速度更快。
  • 提出了一種聯(lián)合訓(xùn)練目標(biāo)檢測和分類的方法:?使用該方法在COCO目標(biāo)檢測數(shù)據(jù)集和Imagenet圖像分類數(shù)據(jù)集上,訓(xùn)練出了YOLO9000
  • 可以檢測出更多的類別:?即使這些類別沒有在目標(biāo)檢測的數(shù)據(jù)集中出現(xiàn)

?一、 Introduction—引言

翻譯

通用的目標(biāo)檢測應(yīng)該是快速、準(zhǔn)確的,并且能夠識別各種各樣的目標(biāo)。自從引入神經(jīng)網(wǎng)絡(luò)以來,檢測框架已經(jīng)變得越來越快和準(zhǔn)確。然而,大多數(shù)檢測方法仍然被限制在一小部分目標(biāo)上。

與分類和標(biāo)記等其他任務(wù)的數(shù)據(jù)集相比,當(dāng)前的目標(biāo)檢測數(shù)據(jù)集是有限的。最常見的檢測數(shù)據(jù)集包含幾千到幾十萬張圖像,有幾十到幾百個標(biāo)簽[3] [10] [2]。分類數(shù)據(jù)集有數(shù)以百萬計的圖像,有數(shù)萬或數(shù)十萬個類別[20] [2]。

我們希望檢測能夠達到目標(biāo)分類的水平。然而,為檢測而給圖像貼標(biāo)簽比為分類或標(biāo)記貼標(biāo)簽要昂貴得多(標(biāo)簽通常是給用戶免費提供的)。因此,我們不太可能在不久的將來看到與分類數(shù)據(jù)集相同規(guī)模的檢測數(shù)據(jù)集。

我們提出了一種新的方法來利用我們已經(jīng)擁有的大量分類數(shù)據(jù),并利用它來擴大當(dāng)前檢測系統(tǒng)的范圍。我們的方法使用目標(biāo)分類的分層觀點,使我們能夠?qū)⒉煌臄?shù)據(jù)集結(jié)合在一起。

我們還提出了一種聯(lián)合訓(xùn)練算法,使我們能夠在檢測和分類數(shù)據(jù)上訓(xùn)練目標(biāo)檢測器。我們的方法利用標(biāo)記的檢測圖像來學(xué)習(xí)精確定位目標(biāo),同時使用分類圖像來增加其詞匯量和魯棒性。

使用這種方法,我們訓(xùn)練了YOLO9000,一個實時的目標(biāo)檢測器,可以檢測超過9000個不同的物體類別。首先,我們在基礎(chǔ)YOLO檢測系統(tǒng)的基礎(chǔ)上進行改進,以產(chǎn)生YOLOv2,一個最先進的實時檢測器。然后,我們使用我們的數(shù)據(jù)集組合方法和聯(lián)合訓(xùn)練算法,在ImageNet的9000多個類別以及COCO的檢測數(shù)據(jù)上訓(xùn)練一個模型。

我們所有的代碼和預(yù)訓(xùn)練的模型都可以在線獲得:http://pjreddie.com/yolo9000/。


精讀?

目標(biāo)檢測現(xiàn)狀的不足

  • 當(dāng)前的目標(biāo)檢測數(shù)據(jù)集是有限的
  • 目標(biāo)檢測能檢測的對象種類非常有限,可檢測的物體少

本文工作

(1)使用聯(lián)合數(shù)據(jù)集:?利用已有的分類數(shù)據(jù)集,來拓展目標(biāo)檢測的范圍。利用對象分類的分層視圖,使得可以將不同數(shù)據(jù)集組合到一起

(2)提出聯(lián)合訓(xùn)練算法:?可以在檢測數(shù)據(jù)集和分類數(shù)據(jù)集上訓(xùn)練目標(biāo)分類器,用標(biāo)記的目標(biāo)檢測數(shù)據(jù)集優(yōu)化定位精度,利用分類圖像來增加其詞匯量魯棒性

(3)改進YOLOv1提出YOLOv2:?一種最先進的實時檢測器

(4)提出YOLO9000:?先將YOLO優(yōu)化成YOLOv2,再用聯(lián)合方法訓(xùn)練出YOLO9000


二、 Better—更好?

2.1 Batch Normalization—批量歸一化

翻譯

相比于最先進的檢測系統(tǒng),YOLO存在著各種缺陷。與Faster R-CNN相比,對YOLO的錯誤分析表明,YOLO出現(xiàn)了大量的定位錯誤。此外,與基于區(qū)域建議的方法相比,YOLO的召回率相對較低。因此,我們主要關(guān)注的是在保持分類精度的同時,提高召回率和定位準(zhǔn)確度。

計算機視覺通常趨向于更大、更深的網(wǎng)絡(luò)[6] [18] [17]。更好的性能往往取決于訓(xùn)練更大的網(wǎng)絡(luò)或?qū)⒍鄠€模型集合在一起。然而,在YOLOv2中,我們希望有一個更準(zhǔn)確的檢測器,但仍然是快速的。我們沒有擴大我們的網(wǎng)絡(luò),而是簡化了網(wǎng)絡(luò),然后讓表征更容易學(xué)習(xí)。我們將過去工作中的各種想法與我們自己的新概念結(jié)合起來,以提高YOLO的性能。在表2中可以看到結(jié)果的總結(jié)。

批量歸一化?批量歸一化導(dǎo)致收斂性的顯著改善,同時消除了對其他形式的規(guī)范化的需求[7]。通過在YOLO的所有卷積層上添加批量歸一化,我們在mAP上得到了超過2%的改善。批量規(guī)范化也有助于規(guī)范化模型。有了批歸一化,我們可以在不過擬合的情況下去除模型中的dropout。


精讀

目的

CNN在訓(xùn)練過程中網(wǎng)絡(luò)每層輸入的分布一直在改變, 會使訓(xùn)練過程難度加大,對網(wǎng)絡(luò)的每一層的輸入(每個卷積層后)都做了歸一化,這樣網(wǎng)絡(luò)就不需要每層都去學(xué)數(shù)據(jù)的分布,收斂會更快

方法

在YOLO模型的所有卷積層上添加Batch Normalization。

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

?(圖片來源:同濟子豪兄)

效果

mAP獲得了2%的提升。Batch Normalization 也有助于規(guī)范化模型,可以在舍棄dropout優(yōu)化后依然不會過擬合。


2.2 High Resolution Classifier—高分辨率分類器

翻譯

高分辨率分類器?所有最先進的檢測方法都使用在ImageNet上預(yù)訓(xùn)練的分類器[16]。從AlexNet開始,大多數(shù)分類器在小于256×256的輸入圖像上運行[8]。最初的YOLO在224×224的情況下訓(xùn)練分類器網(wǎng)絡(luò),并將分辨率提高到448以進行檢測訓(xùn)練。這意味著網(wǎng)絡(luò)在切換到檢測學(xué)習(xí)時還必須調(diào)整到新的輸入分辨率。

對于YOLOv2,我們首先在ImageNet上以448×448的完整分辨率對分類網(wǎng)絡(luò)進行微調(diào),并進行10個epoch。這讓網(wǎng)絡(luò)有時間調(diào)整其濾波器,以便在更高的分辨率輸入下更好地工作。然后,我們再對檢測網(wǎng)絡(luò)的結(jié)果微調(diào)。這個高分辨率的分類網(wǎng)絡(luò)使我們的mAP增加了近4%。


精讀

分類器介紹

檢測方法都使用在ImageNet上預(yù)先訓(xùn)練的分類器作為預(yù)訓(xùn)練模型。從AlexNet開始,大多數(shù)分類器的輸入都小于256×256。

v1中的使用

v1中預(yù)訓(xùn)練使用的是分類數(shù)據(jù)集,大小是224×224 ,然后遷移學(xué)習(xí),微調(diào)時使用YOLO模型做目標(biāo)檢測的時候才將輸入變成448 × 448。這樣改變尺寸,網(wǎng)絡(luò)就要多重新學(xué)習(xí)一部分,會帶來性能損失。

v2中的改進

v2直接在預(yù)訓(xùn)練中輸入的就是448×448的尺寸,微調(diào)的時候也是448 × 448。

效果

使mAP增加了近4%


?2.3 Convolutional With Anchor Boxes—帶有Anchor Boxes的卷積

翻譯

帶有錨框的卷積?YOLO直接使用卷積特征提取器頂部的全連接層來預(yù)測邊界框的坐標(biāo)。Faster R-CNN不直接預(yù)測坐標(biāo),而是使用手工挑選的先驗因素來預(yù)測邊界框[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的輸出特征圖。

引入錨框后,我們將類別預(yù)測機制與空間位置分開處理,單獨預(yù)測每個錨框的類和目標(biāo)。和原來的YOLO一樣,目標(biāo)預(yù)測仍然預(yù)測先驗框和真實框的IOU,而類別預(yù)測則預(yù)測在有目標(biāo)存在下,該類別的條件概率。

使用錨框,我們得到的準(zhǔn)確率會有小幅下降。YOLO每張圖片只預(yù)測了98個框,但使用錨框后,我們的模型預(yù)測了超過一千個框。在沒有錨框的情況下,我們的中間模型mAP為69.5,召回率為81%。有了錨框,我們的模型mAP為69.2,召回率為88%。即使mAP下降了,平均召回率的增加意味著我們的模型有更大的改進空間。


精讀

什么是Anchor?

定義:?Anchor(先驗框) 就是一組預(yù)設(shè)的邊框,在訓(xùn)練時,以真實的邊框位置相對于預(yù)設(shè)邊框的偏移來構(gòu)建訓(xùn)練樣本。 這就相當(dāng)于,預(yù)設(shè)邊框先大致在可能的位置“框”出來目標(biāo),然后再在這些預(yù)設(shè)邊框的基礎(chǔ)上進行調(diào)整。簡言之就是在圖像上預(yù)設(shè)好的不同大小,不同長寬比的參照框。

Anchor Box:?一個Anchor Box可以由邊框的縱橫比和邊框的面積(尺度)來定義,相當(dāng)于一系列預(yù)設(shè)邊框的生成規(guī)則,根據(jù)Anchor Box,可以在圖像的任意位置,生成一系列的邊框。由于Anchor Box 通常是以CNN提取到的Feature Map 的點為中心位置,生成邊框,所以一個Anchor Box不需要指定中心位置。

Anchor Box的構(gòu)成

  • 使用CNN提取的Feature Map的點,來定位目標(biāo)的位置。
  • 使用Anchor Box的Scale來表示目標(biāo)的大小。
  • 使用Anchor Box的Aspect Ratio來表示目標(biāo)的形狀。

之前研究

YOLOv1:?使用全連接層來直接預(yù)測邊界框(x,y,w,h,c)其中邊界框的坐標(biāo)是相對于cell的,寬與高是相對于整張圖片。由于各個圖片中存在不同尺度和長寬比的物體,YOLOv1在訓(xùn)練過程中學(xué)習(xí)適應(yīng)不同物體的形狀是比較困難的,這也導(dǎo)致YOLOv1在精確定位方面表現(xiàn)較差。

Faster R-CNN:?不是直接預(yù)測目標(biāo)邊界框,而是使用手工挑選的先驗Anchor Boxes。利用RPN預(yù)測的邊界框是相對于Anchor Boxes的坐標(biāo)和高寬的偏移offset。RPN在特征圖的每個位置預(yù)測Anchor Box偏移量而不是坐標(biāo),簡化了問題,使網(wǎng)絡(luò)更容易學(xué)習(xí)。

YOLOv2的改進

(1)刪掉全連接層和最后一個pooling層,使得最后的卷積層可以有更高分辨率的特征

(2)縮小網(wǎng)絡(luò)操作的輸入圖像為416×416

Q:為什么是416×416,而不是448×448?

YOLOv2模型下采樣的總步長為32,對于416×416大小的圖片,最終得到的特征圖大小為13×13(416/32=13),特征圖中有奇數(shù)個位置,所以只有一個中心單元格。物體往往占據(jù)圖像的中心,所以最好在中心有一個單獨的位置來預(yù)測這些物體,而不是在附近的四個位置。

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

(3)使用Anchor Boxes

效果

使用Anchor,模型的mAP值從69.5降到了69.2,下降了一丟丟,而召回率卻從81%提高到了88%。

Q:精度(precision)和召回率(recall):

precision:?預(yù)測框中包含目標(biāo)的比例。

recall:?真正目標(biāo)被檢測出來的比例。

簡言之,recall表示得找全,precision表示得找準(zhǔn)。

v2和v1對比

YOLOv1 YOLOv2
初始設(shè)置 初始生成兩個boxes,加大了學(xué)習(xí)復(fù)雜度。 Anchor初始是固定的,但在訓(xùn)練過程中會進行微調(diào)。使用Anchor boxes之后,每個位置的各個Anchor box都單獨預(yù)測一組分類概率值。
輸出公式 (框數(shù) * 信息數(shù))+分類數(shù) 框數(shù) *(信息數(shù)+分類數(shù))
公式含義 在YOLOv1中,類別概率是由grid cell來預(yù)測的,每個cell都預(yù)測2個boxes,每個boxes包含5個值,每個grid cell 攜帶的是30個信息。但是每個cell只預(yù)測一組分類概率值,供2個boxes共享。 在YOLOv2中,類別概率是屬于box的,每個box對應(yīng)一個類別概率,而不是由cell決定,因此這邊每個box對應(yīng)25個預(yù)測值。每個grid cell攜帶的是 25 × 5 =125個信息,25是 xywh+置信度+分類數(shù),5就是5個Anchor。
輸出框 7 × 7 × 2 = 98個框 13 × 13 × 5 = 845個框
輸出值 7 ×7 × 30 13 × 13 × 5 × 25

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)


2.4 Dimension Clusters—維度聚類(K-means聚類確定Anchor初始值)

翻譯

維度集群?在與YOLO一起使用錨框時,我們遇到了兩個問題。第一個問題是,框的尺寸是手工挑選的。網(wǎng)絡(luò)可以學(xué)習(xí)適當(dāng)?shù)卣{(diào)整框,但是如果我們?yōu)榫W(wǎng)絡(luò)挑選更好的先驗錨框來開始,我們可以使網(wǎng)絡(luò)更容易學(xué)習(xí)預(yù)測好的檢測結(jié)果。

我們在訓(xùn)練集的邊界框上運行k-means聚類,以自動找到好的先驗參數(shù),而不是手工選擇先驗參數(shù)。如果我們使用標(biāo)準(zhǔn)的k-means和歐氏距離,大的框比小的框產(chǎn)生更多的誤差。然而,我們真正想要的是能獲得好的IOU分數(shù)的先驗錨框,這與框的大小無關(guān)。因此,對于距離度量,我們使用:d(?box?,?centroid?)=1?IOU(?box?,?centroid?)?。

我們對不同的k值運行k-means,并繪制出最接近中心點的平均IOU,見圖2。我們選擇k = 5作為模型復(fù)雜性和高召回率之間的良好權(quán)衡。聚類中心點與手工挑選的錨框有明顯不同。短而寬的框較少,高而薄的框較多。

我們在表1中比較了我們的聚類策略和手工挑選的錨框的平均IOU與最接近的先驗。在只有5個先驗的情況下,中心點的表現(xiàn)與9個錨框相似,平均IOU分別為61.0,60.9。如果我們使用9個中心點,我們會看到一個高得多的平均IOU。這表明,使用k-means來生成我們的邊界框,使模型開始有一個更好的表示,并使任務(wù)更容易學(xué)習(xí)。


精讀

使用Anchor的問題一

Anchor Boxes的尺寸是手工指定了長寬比和尺寸,相當(dāng)于一個超參數(shù),這違背了YOLO對于目標(biāo)檢測模型的初衷,因為如果指定了Anchor的大小就沒辦法適應(yīng)各種各樣的物體了。

解決方法

在訓(xùn)練集的邊界框上運行K-means聚類訓(xùn)練bounding boxes,可以自動找到更好的boxes寬高維度。由上面分析已知,設(shè)置先驗Anchor Boxes的主要目的是為了使得預(yù)測框與真值的IOU更好,所以聚類分析時選用box與聚類中心box之間的IOU值作為距離指標(biāo)

K-means算法步驟:

1.選擇初始化的K個樣本作為初始聚類中心

2.針對數(shù)據(jù)集中每個樣本,計算它到K個聚類中心的距離,并將其分到距離最小的聚類中心所對應(yīng)的類中

3.針對每個類別,重新計算它的聚類中心

4.重復(fù)上面的步驟2、3,直到達到某個終止條件(迭代次數(shù)、最小誤差變化)

(具體可參見機器學(xué)習(xí)算法----聚類 (K-Means、LVQ、GMM、DBSCAN、AGNES) (學(xué)習(xí)筆記)

公式:?d(box, centroid) = 1 ? IOU(box, centroid) (box:其他框, centroid:聚類中心框)

如下圖,選取不同的k值(聚類的個數(shù))運行K-means算法,并畫出平均IOU和K值的曲線圖。當(dāng)k = 5時,可以很好的權(quán)衡模型復(fù)雜性和高召回率。與手工挑選的相比,K-means算法挑選的檢測框形狀多為瘦高型。

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

Q:為什么不盡量選擇大的k值?

因為K越大就生成越多的Anchor,越多的框自然準(zhǔn)確率就能上去了,但同時也成倍的增加了模型的復(fù)雜度。R-CNN就是因為提取2K個候選框拉跨的。


2.5 Direct location prediction—直接的位置預(yù)測

翻譯

直接的位置預(yù)測。?當(dāng)YOLO使用錨框時,我們遇到了第二個問題:模型的不穩(wěn)定性,特別是在早期迭代中。大部分的不穩(wěn)定性來自于對框的(x,y)位置的預(yù)測。在區(qū)域生成網(wǎng)絡(luò)中,網(wǎng)絡(luò)預(yù)測值tx和ty,(x,y)中心坐標(biāo)的計算方法是:,

例如,tx=1的預(yù)測會將框向右移動,移動的寬度為錨框的寬度,tx=-1的預(yù)測會將框向左移動相同的長度。

這個公式是不受限制的,所以任何錨框都可以在圖像中的任何一點結(jié)束,而不管這個框是在哪個位置預(yù)測的。在隨機初始化的情況下,模型需要很長時間才能穩(wěn)定地預(yù)測出合理的偏移量。

我們不預(yù)測偏移量,而是遵循YOLO的方法,預(yù)測相對于網(wǎng)格單元位置的坐標(biāo)。這使得真實值的界限在0到1之間。我們使用邏輯激活來約束網(wǎng)絡(luò)的預(yù)測,使其落在0~1這個范圍內(nèi)。

網(wǎng)絡(luò)在輸出特征圖中的每個單元預(yù)測了5個邊界框。該網(wǎng)絡(luò)為每個邊界框預(yù)測了5個坐標(biāo),即tx、ty、tw、th和to。如果單元格與圖像左上角的偏移量為(cx,cy),且先驗框的寬度和高度為pw,ph,則預(yù)測值對應(yīng)于:

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

由于我們限制了位置預(yù)測,參數(shù)化更容易學(xué)習(xí),使網(wǎng)絡(luò)更穩(wěn)定。使用維度聚類以及直接預(yù)測邊界框中心位置,比起使用錨框的版本,YOLO提高了近5%。?


精讀

使用Anchor的問題二

模型不穩(wěn)定,特別是在早期迭代期間。大多數(shù)不穩(wěn)定性來自于對邊框(x, y)位置的預(yù)測。

RPN網(wǎng)絡(luò)的位置預(yù)測

方法:?預(yù)測相對于Anchor Box的坐標(biāo)的偏移,和相對于Anchor Box高寬的偏移。

計算公式:?預(yù)測框中心坐標(biāo)= 輸出的偏移量×Anchor寬高+Anchor中心坐標(biāo)

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

不足:?這個公式是不受約束的,因此任何錨框可以出現(xiàn)在圖像中的任何位置。在隨機初始化的情況下,模型需要很長時間才能穩(wěn)定到預(yù)測合理的偏移量。

YOLOv2的改進

方法:?預(yù)測邊界框中心點相對于對應(yīng)cell左上角位置的相對偏移值。將網(wǎng)格歸一化為1×1,坐標(biāo)控制在每個網(wǎng)格內(nèi),同時配合sigmod函數(shù)將預(yù)測值轉(zhuǎn)換到0~1之間的辦法,做到每一個Anchor只負責(zé)檢測周圍正負一個單位以內(nèi)的目標(biāo)box。

計算公式:?一個網(wǎng)格相對于圖片左上角的偏移量是cx,cy。先驗框的寬度和高度分別是pw和ph,則預(yù)測的邊界框相對于特征圖的中心坐標(biāo)(bx,by)和寬高bw、bh

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

效果

使模型更容易穩(wěn)定訓(xùn)練,mAP值提升了約5%。


2.6 Fine-Grained Features—細粒度的特征

翻譯

細粒度的特征這個修改后的YOLO在13×13的特征圖上預(yù)測探測結(jié)果。雖然這對大型物體來說是足夠的,但它可能會受益于更細粒度的特征來定位較小的物體。Faster R-CNN和SSD都在網(wǎng)絡(luò)中的各種特征圖上運行他們的網(wǎng)絡(luò),以獲得多個分辨率。我們采取了一種不同的方法,只需要增加一個直通層,從早期的層中提取26×26分辨率的特征。

直通層通過將相鄰的特征堆疊到不同的通道而不是空間位置上,將高分辨率的特征與低分辨率的特征串聯(lián)起來,類似于ResNet中的恒等映射。這種細粒度的特征。這就把26×26×512的特征圖變成了13×13×2048的特征圖,它可以與原始特征連接起來。我們的檢測器在這個擴展的特征圖之上運行,這樣它就可以訪問細粒度的特征。這使性能有了1%的適度提高。

精讀

為什么使用細粒特征?

這個修改后的YOLO在13 × 13特征圖上進行檢測。雖然這對于大型對象來說已經(jīng)足夠了,但是對于較小的對象來說,更細粒度的特性可能會使得檢測效果更好。

使用細粒度特征

Faster R-CNN和SSD:?使用了多尺度的特征圖來分別檢測不同大小的物體,前面更精細的特征圖可以用來預(yù)測小物體。

YOLOv2:?不同的方法,為網(wǎng)絡(luò)簡單地添加一個直通層( passthrough layer),獲取前層26×26分辨率特征。

直通層( passthrough layer)

  • 將相鄰的特征疊加到不同的通道來,將高分辨率的特征與低分辨率的特征連接起來
  • 將前層26×26×512的特征圖轉(zhuǎn)換為13×13×2048的特征圖,并與原最后層特征圖進行拼接。

具體計算過程:?YOLO v2提取Darknet-19最后一個maxpooling層的輸入,得到26×26×512的特征圖。經(jīng)過1×1×64的卷積以降低特征圖的維度,得到26×26×64的特征圖,然后經(jīng)過pass through層的處理變成13x13x256的特征圖(抽取原特征圖每個2x2的局部區(qū)域組成新的channel,即原特征圖大小降低4倍,channel增加4倍),再與13×13×1024大小的特征圖連接,變成13×13×1280的特征圖,最后在這些特征圖上做預(yù)測。

具體操作:

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

一個feature map,也就是在最后的池化之前,分成兩路:一路是做拆分,分成四塊,四塊拼成一個長條,另一個是做正常的池化卷積操作,最后兩個長條疊加輸出。

Q:如何拆分成四塊的?

并不是簡單的“兩刀切4塊”,而是在每個2×2的小區(qū)域上都選擇左上角塊,具體看下圖。

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

注意:?這里的疊加不是ResNet里的add,而是拼接,是DenseNet里的concat。

效果

提升了1%的mAP


2.7 Multi-Scale Training—多尺度的訓(xùn)練

翻譯

多尺度的訓(xùn)練原始的YOLO使用448×448的輸入分辨率。通過添加錨框,我們將分辨率改為416×416。然而,由于我們的模型只使用卷積層和池化層,因此可以實時調(diào)整大小。我們希望YOLOv2能夠魯棒地運行在不同尺寸的圖像上,所以我們將多尺度訓(xùn)練應(yīng)用到模型中。

我們不需要修改輸入圖像的大小,而是每隔幾個迭代就改變網(wǎng)絡(luò)。每10個批次,我們的網(wǎng)絡(luò)就會隨機選擇一個新的圖像尺寸。由于我們的模型縮減了32倍,我們從以下32的倍數(shù)中抽?。簕320, 352, …, 608}。因此,最小的選項是320 × 320,最大的是608 × 608。我們將調(diào)整網(wǎng)絡(luò)的尺寸,然后繼續(xù)訓(xùn)練。

這種制度迫使網(wǎng)絡(luò)學(xué)會在各種輸入維度上進行良好的預(yù)測。這意味著同一個網(wǎng)絡(luò)可以預(yù)測不同分辨率下的檢測結(jié)果。網(wǎng)絡(luò)在較小的尺寸下運行得更快,因此YOLOv2在速度和準(zhǔn)確性之間提供了一個簡單的權(quán)衡。

在低分辨率下,YOLOv2作為一個廉價、相當(dāng)準(zhǔn)確的檢測器運行。在288×288時,它以超過90 FPS的速度運行,其mAP幾乎與Faster R-CNN一樣好。這使它成為較小的GPU、高幀率視頻或多個視頻流的理想選擇。

在高分辨率下,YOLOv2是一個最先進的檢測器,在VOC 2007上的mAP為78.6,而運行速度仍高于實時速度。

精讀

YOLOv1

方法:?使用448×448的固定分辨率輸入。

YOLOv2的改進

原理:?YOLOv2模型只使用了卷積和池化層,所以可以動態(tài)調(diào)整輸入大小。每隔幾次迭代就改變網(wǎng)絡(luò),而不是固定輸入圖像的大小。

做法:?網(wǎng)絡(luò)每10批訓(xùn)練后隨機選擇一個新的圖像尺寸大小。由于模型下采樣了32倍,從以下32的倍數(shù){320,352,…,608}作為圖像維度的選擇。將網(wǎng)絡(luò)輸入調(diào)整到那個維度,并繼續(xù)訓(xùn)練。

作用:?這種機制使得網(wǎng)絡(luò)可以更好地預(yù)測不同尺寸的圖片,意味著同一個網(wǎng)絡(luò)可以進行不同分辨率的檢測任務(wù),在輸入size較大時,訓(xùn)練速度較慢,在輸入size較小時,訓(xùn)練速度較快,而multi-scale training又可以提高準(zhǔn)確率,因此算是準(zhǔn)確率和速度都取得一個不錯的平衡。

YOLOv2和其他網(wǎng)絡(luò)成績對比:

在小尺寸圖片檢測中,YOLOv2成績很好,輸入為228 × 228的時候,幀率達到90FPS,mAP幾乎和Faster R-CNN的水準(zhǔn)相同。使得其在低性能GPU、高幀率視頻、多路視頻場景中更加適用。在大尺寸圖片檢測中,YOLOv2達到了先進水平,VOC2007 上mAP為78.6%,仍然高于平均水準(zhǔn)。

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)


?2.8 Further Experiments—進一步的實驗

翻譯

進一步的實驗我們訓(xùn)練YOLOv2對VOC 2012進行檢測。表4顯示了YOLOv2與其他最先進的檢測系統(tǒng)的性能比較。YOLOv2實現(xiàn)了73.4 mAP,同時運行速度遠遠超過比較的方法。我們還對COCO進行了訓(xùn)練,并在表5中與其他方法進行了比較。在VOC指標(biāo)(IOU = 0.5)上,YOLOv2得到44.0 mAP,與SSD和Faster R-CNN相當(dāng)。

精讀

作者在VOC2012上對YOLOv2進行訓(xùn)練,下圖是和其他方法的對比。YOLOv2精度達到了73.4%,并且速度更快。

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

同時YOLOV2也在COCO上做了測試(IOU=0.5),也和Faster R-CNN、SSD作了成績對比??偟膩碚f,比上不足,比下有余。

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)


三、Faster—更快

翻譯

我們希望檢測是準(zhǔn)確的,但我們也希望它是快速的。大多數(shù)檢測的應(yīng)用,如機器人或自動駕駛汽車,都依賴于低延遲的預(yù)測。為了最大限度地提高性能,我們在設(shè)計YOLOv2時從頭到尾都是快速的。

大多數(shù)檢測框架依靠VGG-16作為基礎(chǔ)特征提取器[17]。VGG-16是一個強大的、準(zhǔn)確的分類網(wǎng)絡(luò),但它是不必要的復(fù)雜。VGG-16的卷積層需要306.9億次浮點運算來處理一張224×224分辨率的圖像。

YOLO框架使用一個基于Googlenet架構(gòu)的定制網(wǎng)絡(luò)[19]。這個網(wǎng)絡(luò)比VGG-16更快,一個前向通道只用了85.2億次運算。然而,它的準(zhǔn)確性比VGG16略差。對于224×224的單張圖像,前5名的準(zhǔn)確率,YOLO在ImageNet上的自定義模型精度為88.0%,而VGG-16為90.0%。

精讀

這一段開頭先批評一波VGG(經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細解讀(二)——VGGNet學(xué)習(xí)筆記(翻譯+精讀)),說VGG慢的不行,所以YOLOv1用的GoogLeNet,也就是Inceptionv1(經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細解讀(三)——GoogLeNet InceptionV1學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))。速度很快,但是對比VGG精度稍微有所下降

通常目標(biāo)檢測框架:?大多數(shù)檢測框架依賴于VGG-16作為基本的特征提取器。VGG-16是一個強大、精確的分類網(wǎng)絡(luò),但是它計算復(fù)雜。

YOLO框架:?使用基于GoogLeNet架構(gòu)的自定義網(wǎng)絡(luò)。雖說整體mAP 表現(xiàn)較VGG-16 差一些,但是卻換來更快速、更少的預(yù)測運算。

YOLOv2 框架:?使用的是一個全新的架構(gòu): Darknet-19


3.1 Darknet-19

翻譯

Darknet-19我們提出一個新的分類模型,作為YOLOv2的基礎(chǔ)。我們的模型建立在先前的網(wǎng)絡(luò)設(shè)計工作以及該領(lǐng)域的常識之上。與VGG模型類似,我們主要使用3×3的過濾器,并在每個池化步驟后將通道的數(shù)量增加一倍[17]。按照網(wǎng)絡(luò)中的網(wǎng)絡(luò)(NIN)的工作,我們使用全局平均池來進行預(yù)測,以及使用1×1濾波器來壓縮3×3卷積之間的特征表示[9]。我們使用批量歸一化來穩(wěn)定訓(xùn)練,加速收斂,并使模型正規(guī)化[7]。

我們的最終模型,稱為Darknet-19,有19個卷積層和5個maxpooling層。完整的描述見表6。Darknet-19只需要55.8億次操作來處理一幅圖像,卻在ImageNet上達到了72.9%的最高準(zhǔn)確率和91.2%的top-5準(zhǔn)確率。

精讀

Darknet-19介紹

?一個新的分類模型作為YOLOv2的基礎(chǔ)框架。與VGG模型類似,主要使用3×3的卷積,并在每個池化步驟后加倍通道數(shù)。使用全局平均池進行預(yù)測,并使用1×1卷積壓縮特征圖通道數(shù)以降低模型計算量和參數(shù),每個卷積層后使用BN層以加快模型收斂同時防止過擬合。最后用average pooling層代替全連接層進行預(yù)測。

Darknet-19細節(jié):?有19個卷積層和5個maxpooling層。(v1的GooLeNet是4個卷積層和2個全連接層)

結(jié)構(gòu)如下:(這是分類的模型,不是目標(biāo)檢測的模型)

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

采用 YOLOv2,模型的mAP值沒有顯著提升,但計算量減少了。

Q:為什么去掉全連接層了呢?

因為全連接層容易過擬合,訓(xùn)練慢。(參數(shù)太多)如下圖,YOLOv1中通過全連接層將7×7×1024的特征圖變換為7×7×30的特征圖。但是這種變換完全可以通過一個3×3的卷積核做到,從而節(jié)省參數(shù)。

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)


3.2 Training for classification—分類的訓(xùn)練

翻譯

分類的訓(xùn)練?我們使用隨機梯度下降法在標(biāo)準(zhǔn)的ImageNet 1000類分類數(shù)據(jù)集上訓(xùn)練網(wǎng)絡(luò)160次,使用Darknet神經(jīng)網(wǎng)絡(luò)框架[13],起始學(xué)習(xí)率為0.1,多項式速率衰減為4次方,權(quán)重衰減為0.0005,動量為0.9。在訓(xùn)練過程中,我們使用標(biāo)準(zhǔn)的數(shù)據(jù)增強技巧,包括隨機作物、旋轉(zhuǎn)、色調(diào)、飽和度和曝光度的轉(zhuǎn)變。

如上所述,在對224×224的圖像進行初始訓(xùn)練后,我們在更大的尺寸(448)上對我們的網(wǎng)絡(luò)進行微調(diào)。在這種微調(diào)中,我們用上述參數(shù)進行訓(xùn)練,但只用了10個epoch,并以10-3的學(xué)習(xí)率開始。在這個更高的分辨率下,我們的網(wǎng)絡(luò)達到了76.5%的最高準(zhǔn)確率和93.3%的Top-5準(zhǔn)確率。

精讀

參數(shù)設(shè)置

(1)訓(xùn)練數(shù)據(jù)集:?標(biāo)準(zhǔn)ImageNet 1000類分類數(shù)據(jù)集

(2)訓(xùn)練參數(shù):?對網(wǎng)絡(luò)進行160個epochs的訓(xùn)練,使用初始學(xué)習(xí)率為0.1隨機梯度下降法、4的多項式率衰減法、0.0005的權(quán)值衰減法和0.9的動量衰減法

(3)模型:?使用的是Darknet神經(jīng)網(wǎng)絡(luò)框架。

(4)數(shù)據(jù)增強:?在訓(xùn)練中使用標(biāo)準(zhǔn)的數(shù)據(jù)增強技巧,包括隨機的裁剪、旋轉(zhuǎn)、色相、飽和度和曝光變化。

如上所述,在最初的224×224圖像訓(xùn)練之后,然后放到448 × 448上微調(diào),但只訓(xùn)練約10個周期。在這個高分辨率下,網(wǎng)絡(luò)達到很高精度。微調(diào)時,10epoch,初始lr0.001。

結(jié)果:?高分辨率下訓(xùn)練的分類網(wǎng)絡(luò)在top-1準(zhǔn)確率76.5%,top-5準(zhǔn)確率93.3%。


3.3 Training for detection—檢測的訓(xùn)練

翻譯

檢測的訓(xùn)練?我們對這個網(wǎng)絡(luò)進行了修改,去掉了最后一個卷積層,而是增加了三個3×3的卷積層,每個卷積層有1024個過濾器,然后是最后一個1×1的卷積層,輸出的數(shù)量是我們檢測所需的。對于VOC,我們預(yù)測5個框的5個坐標(biāo),每個框有20個類別,所以有125個過濾器。我們還從最后的3×3×512層向第二個卷積層添加了一個直通層,以便我們的模型可以使用細粒度的特征。

我們用10-3的起始學(xué)習(xí)率訓(xùn)練網(wǎng)絡(luò)160個epoch,在60和90個epoch時除以10。我們使用0.0005的權(quán)重衰減和0.9的動量。我們使用與YOLO和SSD類似的數(shù)據(jù)增強,包括隨機裁剪、顏色轉(zhuǎn)換等。我們在COCO和VOC上使用同樣的訓(xùn)練策略。

精讀

網(wǎng)絡(luò)微調(diào)

  • 移除最后一個卷積層、global avgpooling層和softmax
  • 增加3個3x3x1024的卷積層
  • 增加passthrough層
  • 增加一個1×1個卷積層作為網(wǎng)絡(luò)輸出層。輸出的channel數(shù)為num_ anchors×(5+num_ calsses)(num_anchors在文中為5,num _classes=20是類別個數(shù),5是坐標(biāo)值和置信度)

細節(jié)

(1)網(wǎng)絡(luò)最后一層即1X1卷積層卷積核個數(shù)同網(wǎng)絡(luò)輸出維度相同:?對于VOC,預(yù)測5個邊界框,每個邊界框有5個坐標(biāo),每個邊界框有20個類,所以最后一個1×1卷積層有125個卷積核。

(2)passthrough層:?倒數(shù)第二個3X3卷積到最后一個3X3卷積層增加passthrough層。模型可以使用細粒度的特征。

(3)訓(xùn)練參數(shù):?10?3的起始學(xué)習(xí)率對網(wǎng)絡(luò)進行160個周期的訓(xùn)練,并在60和90個周期時將其除以10。使用重量衰減為0.0005,動量為0.9。

YOLOv2的訓(xùn)練

(1)在ImageNet訓(xùn)練Draknet-19,模型輸入為224×224,共160個epochs

(2)將網(wǎng)絡(luò)的輸入調(diào)整為448×448,繼續(xù)在ImageNet數(shù)據(jù)集上finetune分類模型,訓(xùn)練10 個epochs。參數(shù)除了epoch和learning rate改變外,其他都沒變,這里learning rate改為0.001。

(3)修改Darknet-16分類模型為檢測模型(看上面的網(wǎng)絡(luò)微調(diào)部分),并在監(jiān)測數(shù)據(jù)集上繼續(xù)finetune模型

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)


四、Stronger—更強(YOLO9000部分)

翻譯

我們提出了一種對分類和檢測數(shù)據(jù)進行聯(lián)合訓(xùn)練的機制。我們的方法使用標(biāo)記為檢測的圖像來學(xué)習(xí)特定的檢測信息,如邊界框坐標(biāo)預(yù)測和目標(biāo)類,以及如何對普通目標(biāo)進行分類。它使用只有類別標(biāo)簽的圖像來擴大它可以檢測的類別的數(shù)量。

在訓(xùn)練過程中,我們混合了來自檢測和分類數(shù)據(jù)集的圖像。當(dāng)我們的網(wǎng)絡(luò)看到被標(biāo)記為檢測的圖像時,我們可以根據(jù)完整的YOLOv2損失函數(shù)進行反向傳播。當(dāng)它看到一個分類圖像時,我們只從架構(gòu)的分類特定部分反向傳播損失。

這種方法帶來了一些挑戰(zhàn)。檢測數(shù)據(jù)集只有常見的物體和一般的標(biāo)簽,如 "狗 "或 “船”。分類數(shù)據(jù)集有更廣泛和更深入的標(biāo)簽范圍。ImageNet有一百多個狗的品種,包括 “諾福克?!薄?約克夏梗 "和 “貝靈頓?!?。如果我們想在這兩個數(shù)據(jù)集上進行訓(xùn)練,我們需要一個連貫的方法來合并這些標(biāo)簽。

大多數(shù)分類方法在所有可能的類別中使用softmax層來計算最終的概率分布。使用softmax時,假定這些類別是相互排斥的。這給合并數(shù)據(jù)集帶來了問題,例如,你不會想用這個模型來合并ImageNet和COCO,因為 "諾福克梗 "和 "狗 "這兩個類別并不相互排斥。

我們可以使用一個多標(biāo)簽?zāi)P蛠斫Y(jié)合數(shù)據(jù)集,而這個模型并不假定相互排斥。這種方法忽略了我們所知道的關(guān)于數(shù)據(jù)的所有結(jié)構(gòu),例如,所有的COCO類都是互斥的。

精讀

YOLOv2和YOLO9000的關(guān)系

YOLOv2和YOLO9000算法在2017年CVPR上被提出,重點解決YOLOv1召回率和定位精度方面的誤差。

YOLOv2:?是在YOLOv1的基礎(chǔ)上改進得到,改進之處主要有:Batch Normalization (批量歸一化)、High Resolution Classfier(高分辨率的分類器)、Convolutional With Anchor Boxes (帶錨框的卷積)、Dimension Clusters (維度聚類)、Direct location prediction (直接位置預(yù)測)、Fine-Grained Feature (細粒度特性)、Multi-Scale Training (多尺度訓(xùn)練),它的特點是“更好,更快,更強”。

YOLO9000:?的主要檢測網(wǎng)絡(luò)也是YOLO v2,同時使用WordTree來混合來自不同的資源的訓(xùn)練數(shù)據(jù),并使用聯(lián)合優(yōu)化技術(shù)同時在ImageNet和COCO數(shù)據(jù)集上進行訓(xùn)練,目的是利用數(shù)量較大的分類數(shù)據(jù)集來幫助訓(xùn)練檢測模型,因此,YOLO9000的網(wǎng)絡(luò)結(jié)構(gòu)允許實時地檢測超過9000種物體分類,進一步縮小了檢測數(shù)據(jù)集與分類數(shù)據(jù)集之間的大小代溝。

方法

聯(lián)合coco目標(biāo)檢測數(shù)據(jù)集和imagenet分類數(shù)據(jù)集。

  • 輸入的若為目標(biāo)檢測標(biāo)簽的,則在模型中反向傳播目標(biāo)檢測的損失函數(shù)。
  • 輸入的若為分類標(biāo)簽的,則反向傳播分類的損失函數(shù)

問題

  • coco的數(shù)據(jù)集標(biāo)簽分類的比較粗,比如狗,貓,而imagenet分類則比較細化,比如二哈狗,金毛狗。
  • 這時候如果用softmax進行最后的分類,則會產(chǎn)生問題,因為softmax輸出最大概率的那個分類,各種分類之間彼此互斥,若狗,二哈狗,金毛狗在一起的話就會出問題。
  • 所以要聯(lián)合訓(xùn)練,必須讓標(biāo)簽有一定程度上的一致性。

4.1 Hierarchical classification—分層分類

翻譯

分層分類?ImageNet的標(biāo)簽是從WordNet中提取的,WordNet是一個語言數(shù)據(jù)庫,用于構(gòu)造概念和它們之間的關(guān)系[12]。在WordNet中,"Norfolk terrier "和 "Yorkshire terrier "都是 "terrier "的外來語,而 "terrier "是 "獵狗 "的一種,是 "狗 "的一種,是 "犬類 "的一種等等。大多數(shù)分類方法都假定標(biāo)簽有一個平面結(jié)構(gòu),然而對于結(jié)合數(shù)據(jù)集來說,結(jié)構(gòu)正是我們所需要的。

WordNet的結(jié)構(gòu)是一個有向圖,而不是一棵樹,因為語言是復(fù)雜的。例如,"狗 "既是 "犬類 "的一種類型,也是 "家畜 "的一種類型,它們都是WordNet中的主題詞。我們沒有使用完整的圖結(jié)構(gòu),而是通過從ImageNet中的概念建立一棵分層的樹來簡化這個問題。

為了建立這棵樹,我們檢查了ImageNet中的視覺名詞,并查看了它們通過WordNet圖到根節(jié)點的路徑,在這個例子中是 “物理對象”。許多同義詞在圖中只有一條路徑,因此我們首先將所有這些路徑添加到我們的樹上。然后,我們反復(fù)檢查我們剩下的概念,并添加路徑,使樹的增長盡可能少。因此,如果一個概念有兩條通往根的路徑,其中一條路徑會給我們的樹增加三條邊,而另一條只增加一條邊,我們就選擇較短的路徑。

最后的結(jié)果是WordTree,一個視覺概念的分層模型。為了用WordTree進行分類,我們在每個節(jié)點上預(yù)測條件概率,即在給定的同義詞中,每個同義詞的概率。如果我們想計算一個特定節(jié)點的絕對概率,我們只需沿著樹的路徑到根節(jié)點,然后乘以條件概率。

為了分類的目的,我們假設(shè)該圖像包含一個物體。Pr(物理對象) = 1。

為了驗證這種方法,我們在使用1000類ImageNet建立的WordTree上訓(xùn)練Darknet-19模型。為了建立WordTree1k,我們加入了所有的中間節(jié)點,將標(biāo)簽空間從1000擴大到1369。在訓(xùn)練過程中,我們在樹上傳播基礎(chǔ)事實標(biāo)簽,這樣,如果一張圖片被標(biāo)記為 “諾福克?!?,它也會被標(biāo)記為 "狗 "和 “哺乳動物”,等等。為了計算條件概率,我們的模型預(yù)測了一個由1369個值組成的向量,我們計算了所有作為同一概念的假名的系統(tǒng)集的softmax,見圖5。

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

使用與之前相同的訓(xùn)練參數(shù),我們的分層式Darknet-19達到了71.9%的top-1準(zhǔn)確率和90.4%的top-5準(zhǔn)確率。盡管增加了369個額外的概念,并讓我們的網(wǎng)絡(luò)預(yù)測樹狀結(jié)構(gòu),但我們的準(zhǔn)確率只下降了一點。以這種方式進行分類也有一些好處。在新的或未知的對象類別上,性能會優(yōu)雅地下降。例如,如果網(wǎng)絡(luò)看到一張狗的照片,但不確定它是什么類型的狗,它仍然會以高置信度預(yù)測 “狗”,但在假名中分布的置信度會降低。

這種表述也適用于檢測?,F(xiàn)在,我們不是假設(shè)每張圖片都有一個物體,而是使用YOLOv2的物體性預(yù)測器來給我們提供Pr(物理物體)的值。檢測器會預(yù)測出一個邊界框和概率樹。我們向下遍歷這棵樹,在每一個分叉處采取最高的置信度路徑,直到我們達到某個閾值,我們就可以預(yù)測那個物體類別。


精讀

  • ImageNet的標(biāo)簽是從WordNet中提取的,WordNet是一個語言數(shù)據(jù)庫,用于構(gòu)造概念和它們之間的關(guān)系。
  • WordNet的結(jié)構(gòu)是一個有向圖,而不是一棵樹,因為語言是復(fù)雜的。
  • 作者們并不采用整個WordNet 的圖結(jié)構(gòu),而是從中抽取其視覺名詞重新制作一個樹狀結(jié)構(gòu)。
  • 在WordTree結(jié)構(gòu)上進行操作,需要預(yù)測的是每一個節(jié)點相對于父節(jié)點的條件概率,要計算某個幾點的絕對概率 或者說聯(lián)合概率,就直接從他乘到根節(jié)點。

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)


4.2 Dataset combination with WordTree—用WordTree組合數(shù)據(jù)集

翻譯

用WordTree組合數(shù)據(jù)集。我們可以使用WordTree以合理的方式將多個數(shù)據(jù)集組合在一起。我們只需將數(shù)據(jù)集中的類別映射到樹上的同位素。圖6顯示了一個使用WordTree來結(jié)合ImageNet和COCO的標(biāo)簽的例子。WordNet是非常多樣化的,所以我們可以將這種技術(shù)用于大多數(shù)數(shù)據(jù)集。

精讀

原始正常的數(shù)據(jù)集中數(shù)據(jù)結(jié)構(gòu)是WordNet(有向圖)。作者改造成了WordTree(樹)。

WordTree的生成方式如下:

  • 遍歷Imagenet的label,然后在WordNet中尋找該label到根節(jié)點(指向一個物理對象)的路徑;
  • 如果路徑只有一條,那么就將該路徑直接加入到分層樹結(jié)構(gòu)中;
  • 否則,從剩余的路徑中選擇一條最短路徑,加入到分層樹。

【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)

混合后的數(shù)據(jù)集形成一個有9418類的WordTree。生成的WordTree模型如下圖所示。另外考慮到COCO數(shù)據(jù)集相對于ImageNet數(shù)據(jù)集數(shù)據(jù)量太少了,為了平衡兩個數(shù)據(jù)集,作者進一步對COCO數(shù)據(jù)集過采樣,使COCO數(shù)據(jù)集與ImageNet數(shù)據(jù)集的數(shù)據(jù)量比例接近1:4。


4.3 Joint classification and detection—聯(lián)合分類和檢測

翻譯

聯(lián)合分類和檢測?現(xiàn)在我們可以使用WordTree結(jié)合數(shù)據(jù)集,我們可以訓(xùn)練分類和檢測的聯(lián)合模型。我們想訓(xùn)練一個極大規(guī)模的檢測器,所以我們使用COCO檢測數(shù)據(jù)集和ImageNet完整版本中的前9000個類來創(chuàng)建我們的聯(lián)合數(shù)據(jù)集。我們還需要評估我們的方法,所以我們加入了ImageNet檢測挑戰(zhàn)中尚未包括的任何類別。這個數(shù)據(jù)集的相應(yīng)WordTree有9418個類。ImageNet是一個更大的數(shù)據(jù)集,所以我們通過對COCO的過度采樣來平衡數(shù)據(jù)集,使ImageNet只比它大4:1。

使用這個數(shù)據(jù)集,我們訓(xùn)練YOLO9000。我們使用基本的YOLOv2架構(gòu),但只有3個先驗因素,而不是5個,以限制輸出大小。當(dāng)我們的網(wǎng)絡(luò)看到一個檢測圖像時,我們像平常一樣反向傳播損失。對于分類損失,我們只在標(biāo)簽的相應(yīng)級別或以上反向傳播損失。例如,如果標(biāo)簽是 “狗”,我們不給樹上更遠的預(yù)測分配任何錯誤,"德國牧羊犬 "與 “金毛獵犬”,因為我們沒有這些信息。

當(dāng)它看到一個分類圖像時,我們只反向傳播分類損失。要做到這一點,我們只需找到預(yù)測該類的最高概率的邊界框,并計算其預(yù)測樹上的損失。我們還假設(shè)預(yù)測框與地面真實標(biāo)簽至少有0.3 IOU的重疊,我們根據(jù)這一假設(shè)反向傳播對象性損失。

通過這種聯(lián)合訓(xùn)練,YOLO9000學(xué)會了使用COCO中的檢測數(shù)據(jù)來尋找圖像中的物體,并學(xué)會了使用ImageNet中的數(shù)據(jù)對這些物體進行分類。

我們在ImageNet檢測任務(wù)上評估了YOLO9000。ImageNet的檢測任務(wù)與COCO共享44個對象類別,這意味著YOLO9000只看到了大多數(shù)測試圖像的分類數(shù)據(jù),而不是檢測數(shù)據(jù)。YOLO9000總體上得到了19.7的mAP,在它從未見過任何標(biāo)記的檢測數(shù)據(jù)的156個不相干的對象類別上得到了16.0的mAP。這個mAP比DPM取得的結(jié)果要高,但是YOLO9000是在不同的數(shù)據(jù)集上訓(xùn)練的,只有部分監(jiān)督[4]。它還同時檢測了9000個其他物體類別,而且都是實時的。

當(dāng)我們分析YOLO9000在ImageNet上的表現(xiàn)時,我們看到它能很好地學(xué)習(xí)新的動物物種,但在學(xué)習(xí)服裝和設(shè)備等類別時卻很困難。新的動物更容易學(xué)習(xí),因為對象性預(yù)測可以很好地從COCO中的動物中概括出來。相反,COCO沒有任何類型的衣服的邊界框標(biāo)簽,只有人的標(biāo)簽,所以YOLO9000在為 "太陽鏡 "或 "游泳褲 "等類別建模時很吃力。


精讀

YOLO9000是怎樣進行聯(lián)合訓(xùn)練的?

YOLO9000采用 YOLO v2的結(jié)構(gòu),Anchorbox由原來的5調(diào)整到3,對每個Anchorbox預(yù)測其對應(yīng)的邊界框的位置信息x , y , w , h和置信度以及所包含的物體分別屬于9418類的概率,所以每個Anchorbox需要預(yù)測4+1+9418=9423個值。每個網(wǎng)格需要預(yù)測3×9423=28269個值。在訓(xùn)練的過程中,當(dāng)網(wǎng)絡(luò)遇到來自檢測數(shù)據(jù)集的圖片時,用完整的 YOLO v2 loss進行反向傳播計算,當(dāng)網(wǎng)絡(luò)遇到來自分類數(shù)據(jù)集的圖片時,只用分類部分的loss進行反向傳播。

YOLO 9000是怎么預(yù)測的?

WordTree中每個節(jié)點的子節(jié)點都屬于同一個子類,分層次的對每個子類中的節(jié)點進行一次softmax處理,以得到同義詞集合中的每個詞的下義詞的概率。當(dāng)需要預(yù)測屬于某個類別的概率時,需要預(yù)測該類別節(jié)點的條件概率。即在WordTree上找到該類別名詞到根節(jié)點的路徑,計算路徑上每個節(jié)點的概率之積。預(yù)測時, YOLO v2得到置信度,同時會給出邊界框位置以及一個樹狀概率圖,沿著根節(jié)點向下,沿著置信度最高的分支向下,直到達到某個閾值,最后到達的節(jié)點類別即為預(yù)測物體的類別。


五、Conclusion—結(jié)論

翻譯

我們介紹了YOLOv2和YOLO9000,實時檢測系統(tǒng)。YOLOv2是最先進的,在各種檢測數(shù)據(jù)集上比其他檢測系統(tǒng)快。此外,它可以在各種圖像尺寸下運行,在速度和準(zhǔn)確性之間提供平穩(wěn)的權(quán)衡。

YOLO9000是一個實時框架,通過聯(lián)合優(yōu)化檢測和分類來檢測9000多個物體類別。我們使用WordTree來結(jié)合各種來源的數(shù)據(jù)和我們的聯(lián)合優(yōu)化技術(shù),在ImageNet和COCO上同時訓(xùn)練。YOLO9000是朝著縮小檢測和分類之間的數(shù)據(jù)集大小差距邁出的有力一步。

我們的許多技術(shù)可以在目標(biāo)檢測之外進行推廣。我們對ImageNet的WordTree表示為圖像分類提供了一個更豐富、更詳細的輸出空間。使用分層分類的數(shù)據(jù)集組合在分類和分割領(lǐng)域?qū)⑹怯杏玫?。像多尺度?xùn)練這樣的訓(xùn)練技術(shù)可以在各種視覺任務(wù)中提供好處。

對于未來的工作,我們希望將類似的技術(shù)用于弱監(jiān)督的圖像分割。我們還計劃在訓(xùn)練過程中使用更強大的匹配策略為分類數(shù)據(jù)分配弱標(biāo)簽來提高我們的檢測結(jié)果。計算機視覺有著得天獨厚的大量標(biāo)記數(shù)據(jù)。我們將繼續(xù)尋找方法,將不同來源和結(jié)構(gòu)的數(shù)據(jù)結(jié)合起來,為視覺世界建立更強大的模型。


精讀

YOLOv2?是最先進的,在各種檢測數(shù)據(jù)集上比其他檢測系統(tǒng)更快。此外,它可以在各種圖像大小下運行,以在速度和精度之間提供平滑的折中。

對比yolov1所作出的改進:

  • 加了BN(卷積后,激活函數(shù)前);
  • 加了高分辨率分類器;加了anchor(聚類得到個數(shù),1個gird cell 生成5個anchor);限制預(yù)測框;
  • 加入細粒度特征(類似于concat的殘差)加入對尺度訓(xùn)練改進骨干網(wǎng)絡(luò)(GoogleNet 變darknet-19)通過WordTree將不同數(shù)據(jù)集結(jié)合聯(lián)合訓(xùn)練。
  • 用一種新穎的方法擴充了數(shù)據(jù)集。

YOLO9000?是一個實時框架,通過聯(lián)合優(yōu)化檢測和分類,可檢測9000多個對象類別。我們使用WordTree合并來自不同來源的數(shù)據(jù),并使用我們的聯(lián)合優(yōu)化技術(shù)在ImageNet和CoCo上同時進行訓(xùn)練。

WordTree?的概念可以讓分類標(biāo)注提供更大的運用空間,并且可以利用來進行弱監(jiān)督學(xué)習(xí),也可以利用這樣的概念結(jié)合各種不同任務(wù)的資料集,對于分類有很大的助益。


本篇到這就結(jié)束了,我們YOLOv3見~??文章來源地址http://www.zghlxwxcb.cn/news/detail-402760.html

到了這里,關(guān)于【YOLO系列】YOLOv2論文超詳細解讀(翻譯 +學(xué)習(xí)筆記)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【YOLO系列】YOLOv4論文超詳細解讀2(網(wǎng)絡(luò)詳解)

    【YOLO系列】YOLOv4論文超詳細解讀2(網(wǎng)絡(luò)詳解)

    ?上一篇我們一起讀了YOLOv4的論文《YOLOv4:Optimal Speed and Accuracy of Object Detection》(直通車→【YOLO系列】YOLOv4論文超詳細解讀1(翻譯 +學(xué)習(xí)筆記)),有了初步的印象,論文里面涉及到很多tricks,上一篇介紹的比較簡略,我們這篇來詳細介紹一下。 一、YOLOv4的簡介 ?二、YO

    2024年02月02日
    瀏覽(22)
  • 深度學(xué)習(xí)目標(biāo)檢測_YOLOV2超詳細解讀

    深度學(xué)習(xí)目標(biāo)檢測_YOLOV2超詳細解讀

    YOLO v1雖然檢測速度快,但在定位方面不夠準(zhǔn)確,并且召回率較低。為了提升定位準(zhǔn)確度,改善召回率,YOLO v2在YOLO v1的基礎(chǔ)上提出了幾種改進策略,如下圖所示,一些改進方法能有效提高模型的mAP。 這個圖片的第2行第1列是進行改進的點,第2行第3列應(yīng)該看紅色數(shù)字標(biāo)注的列

    2024年02月08日
    瀏覽(53)
  • 【YOLO系列】YOLOv5超詳細解讀(網(wǎng)絡(luò)詳解)

    【YOLO系列】YOLOv5超詳細解讀(網(wǎng)絡(luò)詳解)

    吼吼!終于來到了YOLOv5啦! 首先,一個熱知識:YOLOv5沒有發(fā)表正式論文哦~ 為什么呢?可能YOLOv5項目的作者Glenn Jocher還在吃帽子吧,hh 前言 一、YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu) ?二、輸入端 (1)Mosaic數(shù)據(jù)增強 (2)自適應(yīng)錨框計算 (3)自適應(yīng)圖片縮放 三、Backbone (1)Focus結(jié)構(gòu) (2)CSP結(jié)構(gòu)

    2023年04月09日
    瀏覽(38)
  • 【目標(biāo)檢測系列】YOLOV2解讀

    【目標(biāo)檢測系列】YOLOV2解讀

    為更好理解YOLOv2模型,請先移步,了解YOLOv1后才能更好的理解YOLOv2所做的改進。 前情回顧:【目標(biāo)檢測系列】YOLOV1解讀_懷逸%的博客-CSDN博客 通用的目標(biāo)檢測應(yīng)該具備快速、準(zhǔn)確且能過識別各種各樣的目標(biāo)的特點。自從引入神經(jīng)網(wǎng)絡(luò)以來,檢測框架已經(jīng)變得越來越塊和準(zhǔn)確,

    2024年02月13日
    瀏覽(21)
  • 【YOLO系列】YOLOv5超詳細解讀(源碼詳解+入門實踐+改進)

    【YOLO系列】YOLOv5超詳細解讀(源碼詳解+入門實踐+改進)

    吼吼!終于來到了YOLOv5啦! 首先,一個熱知識:YOLOv5沒有發(fā)表正式論文哦~ 為什么呢?可能YOLOv5項目的作者Glenn Jocher還在吃帽子吧,hh 前言 一、YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu) ?二、輸入端 (1)Mosaic數(shù)據(jù)增強 (2)自適應(yīng)錨框計算 (3)自適應(yīng)圖片縮放 三、Backbone (1)Focus結(jié)構(gòu) (2)CSP結(jié)構(gòu)

    2024年02月07日
    瀏覽(26)
  • YOLO技術(shù)概要學(xué)習(xí)筆記2——YOLOV2到Y(jié)OLOV3

    YOLO技術(shù)概要學(xué)習(xí)筆記2——YOLOV2到Y(jié)OLOV3

    實時物體檢測已經(jīng)成為眾多鄰域應(yīng)用的關(guān)鍵組成部分,這些領(lǐng)域包括:自動駕駛車輛、機器人、視頻監(jiān)控和增強現(xiàn)實等。在眾多物體檢測算法中,近年來,YOLO(You Only Look Once)框架以其卓越的速度和準(zhǔn)確性脫穎而出,實際證明能夠快速可靠地識別圖像中的物體。自誕生以來,

    2024年02月08日
    瀏覽(24)
  • 經(jīng)典目標(biāo)檢測YOLO系列(二)YOLOV2的復(fù)現(xiàn)(1)總體網(wǎng)絡(luò)架構(gòu)及前向推理過程

    經(jīng)典目標(biāo)檢測YOLO系列(二)YOLOV2的復(fù)現(xiàn)(1)總體網(wǎng)絡(luò)架構(gòu)及前向推理過程

    和之前實現(xiàn)的YOLOv1一樣,根據(jù) 《YOLO目標(biāo)檢測》(ISBN:9787115627094) 一書,在不脫離YOLOv2的大部分核心理念的前提下,重構(gòu)一款較新的YOLOv2檢測器,來對YOLOV2有更加深刻的認識。 書中源碼連接: RT-ODLab: YOLO Tutorial 對比原始YOLOV2網(wǎng)絡(luò),主要改進點如下: 添加了后續(xù)YOLO中使用的neck,

    2024年01月18日
    瀏覽(21)
  • 經(jīng)典目標(biāo)檢測YOLO系列(二)YOLOV2的復(fù)現(xiàn)(2)正樣本的匹配、損失函數(shù)的實現(xiàn)及模型訓(xùn)練

    經(jīng)典目標(biāo)檢測YOLO系列(二)YOLOV2的復(fù)現(xiàn)(2)正樣本的匹配、損失函數(shù)的實現(xiàn)及模型訓(xùn)練

    我們在之前實現(xiàn)YOLOv1的基礎(chǔ)上,加入了先驗框機制,快速的實現(xiàn)了YOLOv2的網(wǎng)絡(luò)架構(gòu),并且實現(xiàn)了前向推理過程。 經(jīng)典目標(biāo)檢測YOLO系列(二)YOLOV2的復(fù)現(xiàn)(1)總體網(wǎng)絡(luò)架構(gòu)及前向推理過程 如前所述,我們使用基于先驗框的正樣本匹配策略。 由于每個網(wǎng)格只輸出一個邊界框,因此在

    2024年01月19日
    瀏覽(90)
  • 經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細解讀(六)——DenseNet學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

    經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細解讀(六)——DenseNet學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

    上一篇我們介紹了ResNet:經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn)) ResNet通過短路連接,可以訓(xùn)練出更深的CNN模型,從而實現(xiàn)更高的準(zhǔn)確度。今天我們要介紹的是 DenseNet(《Densely connected convolutional networks》) 模型,它的基本

    2024年02月03日
    瀏覽(62)
  • 經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細解讀(八)——ResNeXt學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

    經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細解讀(八)——ResNeXt學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

    今天我們一起來學(xué)習(xí)何愷明大神的又一經(jīng)典之作:? ResNeXt(《Aggregated Residual Transformations for Deep Neural Networks》) 。這個網(wǎng)絡(luò)可以被解釋為 VGG、ResNet?和 Inception 的結(jié)合體,它通過重復(fù)多個block(如在 VGG 中)塊組成,每個block塊聚合了多種轉(zhuǎn)換(如 Inception),同時考慮到跨層

    2024年02月03日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包