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

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

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

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

前言

從這篇開始,我們將進(jìn)入YOLO的學(xué)習(xí)。YOLO是目前比較流行的目標(biāo)檢測算法,速度快且結(jié)構(gòu)簡單,其他的目標(biāo)檢測算法如RCNN系列,以后有時間的話再介紹。

本文主要介紹的是YOLOV1,這是由以Joseph Redmon為首的大佬們于2015年提出的一種新的目標(biāo)檢測算法。它與之前的目標(biāo)檢測算法如R-CNN等不同之處在于,R-CNN等目標(biāo)檢測算法是兩階段算法, 步驟為先在圖片上生成候選框,然后利用分類器對這些候選框進(jìn)行逐一的判斷;而YOLOv1是一階段算法,是端到端的算法,它把目標(biāo)檢測問題看作回歸問題,將圖片輸入單一的神經(jīng)網(wǎng)絡(luò),然后就輸出得到了圖片的物體邊界框,即boundingbox以及分類概率等信息。下面我們就開始學(xué)習(xí)吧。


下面是一些學(xué)習(xí)資料:

論文鏈接:[1506.02640] You Only Look Once: Unified, Real-Time Object Detection (arxiv.org)

項目地址 :YOLO: Real-Time Object Detection (pjreddie.com)

Github源碼地址:mirrors / alexeyab / darknet · GitCode?


目錄

Abstract—摘要?

一、Introduction—前言?

二、Uni?ed Detection—統(tǒng)一檢測

2.1 Network Design—網(wǎng)絡(luò)設(shè)計

2.2 Training—訓(xùn)練?

2.3 Inference—推論

2.4 Limitations of YOLO—YOLO的局限性?

三、Comparison to Other Detection Systems—與其他目標(biāo)檢測算法的比較

四、Experiments—實驗?

4.1 Comparison to Other RealTime Systems—與其他實時系統(tǒng)的比較

?4.2 VOC 2007 Error Analysis—VOC 2007誤差分析

?4.3 Combining Fast R-CNN and YOLO—Fast R-CNN與YOLO的結(jié)合

4.4 VOC 2012 Results—VOC 2012結(jié)果?

4.5 Generalizability: Person Detection in Artwork—泛化性:圖像中的人物檢測?

五、Real-Time Detection In The Wild—自然環(huán)境下的實時檢測?

六、Conclusion—結(jié)論


Abstract—摘要?

翻譯

我們提出的YOLO是一種新的目標(biāo)檢測方法。以前的目標(biāo)檢測方法通過重新利用分類器來執(zhí)行檢測。與先前的方案不同,我們將目標(biāo)檢測看作回歸問題從空間上定位邊界框(bounding box)預(yù)測該框的類別概率。我們使用單個神經(jīng)網(wǎng)絡(luò),在一次評估中直接從完整圖像上預(yù)測邊界框和類別概率。由于整個檢測流程僅用一個網(wǎng)絡(luò),所以可以直接對檢測性能進(jìn)行端到端的優(yōu)化。

我們的統(tǒng)一架構(gòu)速度極快。我們的基本YOLO模型以45 fps(幀/秒)的速度實時處理圖像。該網(wǎng)絡(luò)的一個較小版本——Fast YOLO,以155 fps這樣驚人的速度運行,同時仍然達(dá)到其他實時檢測器的兩倍。與最先進(jìn)的(state-of-the-art,SOTA)檢測系統(tǒng)相比,YOLO雖然產(chǎn)生了較多的定位誤差,但它幾乎不會發(fā)生把背景預(yù)測為目標(biāo)這樣的假陽性(False Positive)的錯誤。最后,YOLO能學(xué)習(xí)到泛化性很強(qiáng)的目標(biāo)表征。當(dāng)從自然圖像學(xué)到的模型用于其它領(lǐng)域如藝術(shù)畫作時,它的表現(xiàn)都優(yōu)于包括DPM和R-CNN在內(nèi)的其它檢測方法。

精讀

之前的方法(RCNN系列)

(1)通過region proposal產(chǎn)生大量的可能包含待檢測物體的potential bounding box

(2)再用分類器去判斷每個bounding box里是否包含有物體,以及物體所屬類別的probability或者 confidence

(3)最后回歸預(yù)測

YOLO的簡介:

本文將檢測變?yōu)橐粋€regression problem(回歸問題),YOLO 從輸入的圖像,僅僅經(jīng)過一個神經(jīng)網(wǎng)絡(luò),直接得到一些bounding box以及每個bounding box所屬類別的概率。

因為整個的檢測過程僅僅有一個網(wǎng)絡(luò),所以它可以直接進(jìn)行end-to-end的優(yōu)化。

end-to-end:?端到端,指的是輸入原始數(shù)據(jù),輸出的是最后結(jié)果,原來輸入端不是直接的原始數(shù)據(jù),而是在原始數(shù)據(jù)中提取的特征。通過縮減人工預(yù)處理和后續(xù)處理,盡可能使模型從原始輸入到最終輸出,給模型更多可以根據(jù)數(shù)據(jù)自動調(diào)節(jié)的空間,增加模型的整體契合度。在CV中具體表現(xiàn)是,神經(jīng)網(wǎng)絡(luò)的輸入為原始圖片,神經(jīng)網(wǎng)絡(luò)的輸出為(可以直接控制機(jī)器的)控制指令。


一、Introduction—前言?

翻譯

人們只需瞄一眼圖像,立即知道圖像中的物體是什么,它們在哪里以及它們?nèi)绾蜗嗷プ饔谩H祟惖囊曈X系統(tǒng)是快速和準(zhǔn)確的,使得我們在無意中就能夠執(zhí)行復(fù)雜的任務(wù),如駕駛??焖偾覝?zhǔn)確的目標(biāo)檢測算法可以讓計算機(jī)在沒有專門傳感器的情況下駕駛汽車,使輔助設(shè)備能夠向人類用戶傳達(dá)實時的場景信息,并解鎖通用、響應(yīng)性的機(jī)器人系統(tǒng)的潛能。

目前的檢測系統(tǒng)通過重用分類器來執(zhí)行檢測。為了檢測目標(biāo),這些系統(tǒng)為該目標(biāo)提供一個分類器,在測試圖像的不同的位置和不同的尺度上對其進(jìn)行評估。像deformable parts models(DPM,可變形部分模型)這樣的系統(tǒng)使用滑動窗口方法,其分類器在整個圖像上均勻間隔的位置上運行[10]。

最近的方法,如R-CNN使用region proposal(區(qū)域候選)策略,首先在圖像中生成潛在的邊界框(bounding box),然后在這些框上運行分類器。在分類之后,執(zhí)行用于細(xì)化邊界框的后處理,消除重復(fù)的檢測,并根據(jù)場景中的其它目標(biāo)為邊界框重新打分[13]。這些復(fù)雜的流程是很慢,很難優(yōu)化的,因為每個獨立的部分都必須單獨進(jìn)行訓(xùn)練。

我們將目標(biāo)檢測看作是一個單一的回歸問題,直接從圖像像素得到邊界框坐標(biāo)和類別概率。使用我們的系統(tǒng)——You Only Look Once(YOLO),便能得到圖像上的物體是什么和物體的具體位置。

YOLO非常簡單(見圖1),它僅用單個卷積網(wǎng)絡(luò)就能同時預(yù)測多個邊界框和它們的類別概率。YOLO在整個圖像上訓(xùn)練,并能直接優(yōu)化檢測性能。與傳統(tǒng)的目標(biāo)檢測方法相比,這種統(tǒng)一的模型下面所列的一些優(yōu)點

第一,YOLO速度非???/strong>。由于我們將檢測視為回歸問題,所以我們不需要復(fù)雜的流程。測試時,我們在一張新圖像上簡單的運行我們的神經(jīng)網(wǎng)絡(luò)來預(yù)測檢測結(jié)果。在Titan X GPU上不做批處理的情況下,YOLO的基礎(chǔ)版本以每秒45幀的速度運行,而快速版本運行速度超過150fps。這意味著我們可以在不到25毫秒的延遲內(nèi)實時處理流媒體視頻。此外,YOLO實現(xiàn)了其它實時系統(tǒng)兩倍以上的平均精度。關(guān)于我們的系統(tǒng)在網(wǎng)絡(luò)攝像頭上實時運行的演示,請參閱我們的項目網(wǎng)頁:YOLO: Real-Time Object Detection。

第二,YOLO是在整個圖像上進(jìn)行推斷的。與基于滑動窗口和候選框的技術(shù)不同,YOLO在訓(xùn)練期間和測試時都會顧及到整個圖像,所以它隱式地包含了關(guān)于類的上下文信息以及它們的外觀。Fast R-CNN是一種很好的檢測方法[14],但由于它看不到更大的上下文,會將背景塊誤檢為目標(biāo)。與Fast R-CNN相比,YOLO的背景誤檢數(shù)量少了一半。

第三,YOLO能學(xué)習(xí)到目標(biāo)的泛化表征(generalizable representations of objects)。把在自然圖像上進(jìn)行訓(xùn)練的模型,用在藝術(shù)圖像進(jìn)行測試時,YOLO大幅優(yōu)于DPM和R-CNN等頂級的檢測方法。由于YOLO具有高度泛化能力,因此在應(yīng)用于新領(lǐng)域或碰到意外的輸入時不太可能出故障。

YOLO在精度上仍然落后于目前最先進(jìn)的檢測系統(tǒng)。雖然它可以快速識別圖像中的目標(biāo),但它在定位某些物體尤其是小的物體上精度不高。

我們在實驗中會進(jìn)一步探討精度/時間的權(quán)衡。我們所有的訓(xùn)練和測試代碼都是開源的,而且各種預(yù)訓(xùn)練模型也都可以下載。


精讀?

之前的研究:

DPM:?系統(tǒng)為檢測對象使用分類器,并在測試圖像的不同位置和尺度對其進(jìn)行評估

R-CNN:SS方法提取候選框+CNN+分類+回歸。

YOLO處理步驟:

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

(1)將輸入圖像的大小調(diào)整為448×448,分割得到7*7網(wǎng)格;

(2)通過CNN提取特征和預(yù)測;

(3)利用非極大值抑制(NMS)進(jìn)行篩選


YOLO的定義:

YOLO將目標(biāo)檢測重新定義為單個回歸問題,從圖像像素直接到邊界框坐標(biāo)和類概率。YOLO可以在一個圖像來預(yù)測:哪些對象是存在的?它們在哪里?

如 Figure 1:將圖像輸入單獨的一個 CNN 網(wǎng)絡(luò),就會預(yù)測出 bounding box,以及這些 bounding box 所屬類別的概率。

YOLO 用一整幅圖像來訓(xùn)練,同時可以直接優(yōu)化性能檢測。

性能檢測對比:

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


YOLO的優(yōu)點:

(1)YOLO的速度非???。能夠達(dá)到實時的要求。在 Titan X 的 GPU 上 能夠達(dá)到 45 幀每秒。

(2)YOLO在做預(yù)測時使用的是全局圖像。與FastR-CNN相比,YOLO產(chǎn)生的背景錯誤數(shù)量不到一半。

(3)YOLO 學(xué)到物體更泛化的特征表示。因此當(dāng)應(yīng)用于新域或意外輸入時,不太可能崩潰。


二、Uni?ed Detection—統(tǒng)一檢測

網(wǎng)格單元?

翻譯

我們將目標(biāo)檢測的獨立部分(the separate components )整合到單個神經(jīng)網(wǎng)絡(luò)中。我們的網(wǎng)絡(luò)使用整個圖像的特征來預(yù)測每個邊界框。它還可以同時預(yù)測一張圖像中的所有類別的所有邊界框。這意味著我們的網(wǎng)絡(luò)對整張圖像和圖像中的所有目標(biāo)進(jìn)行全局推理(reason globally)。YOLO設(shè)計可實現(xiàn)端到端訓(xùn)練和實時的速度,同時保持較高的平均精度。

我們的系統(tǒng)將輸入圖像分成 S×S 的網(wǎng)格。如果目標(biāo)的中心落入某個網(wǎng)格單元(grid cell)中,那么該網(wǎng)格單元就負(fù)責(zé)檢測該目標(biāo)。

每個網(wǎng)格單元都會預(yù)測 B個 邊界框和這些框的置信度分?jǐn)?shù)(confidence scores)。這些置信度分?jǐn)?shù)反映了該模型對那個框內(nèi)是否包含目標(biāo)的置信度,以及它對自己的預(yù)測的準(zhǔn)確度的估量。在形式上,我們將置信度定義為 confidence=Pr(Object)?IOUpred?truth??。如果該單元格中不存在目標(biāo)(即Pr(Object)=0),則置信度分?jǐn)?shù)應(yīng)為 0 。否則(即Pr(Object)=1),我們希望置信度分?jǐn)?shù)等于預(yù)測框(predict box)與真實標(biāo)簽框(ground truth)之間聯(lián)合部分的交集(IOU)。

每個網(wǎng)格單元還預(yù)測了C類的條件概率,Pr(Classi|Object)。這些概率是以包含目標(biāo)的網(wǎng)格單元為條件的。我們只預(yù)測每個網(wǎng)格單元的一組類別概率,而不考慮框B的數(shù)量。

在測試時,我們將條件類概率和單個框的置信度預(yù)測相乘:

這給我們提供了每個框的特定類別的置信度分?jǐn)?shù)。這些分?jǐn)?shù)既是對該類出現(xiàn)在框里的概率的編碼,也是對預(yù)測的框與目標(biāo)的匹配程度的編碼。


精讀

思想

YOLO將目標(biāo)檢測問題作為回歸問題。會將輸入圖像分成S×S的網(wǎng)格,如果一個物體的中心點落入到一個cell中,那么該cell就要負(fù)責(zé)預(yù)測該物體,一個格子只能預(yù)測一個物體,會生成兩個預(yù)測框。

對于每個grid cell:

(1)預(yù)測B個邊界框,每個框都有一個置信度分?jǐn)?shù)(confidence score)這些框大小尺寸等等都隨便,只有一個要求,就是生成框的中心點必須在grid cell里

(2)每個邊界框包含5個元素:(x,y,w,h)

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

x,y:?是指bounding box的預(yù)測框的中心坐標(biāo)相較于該bounding box歸屬的grid cell左上角的偏移量,在0-1之間。

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

在上圖中,綠色虛線框代表grid cell,綠點表示該grid cell的左上角坐標(biāo),為(0,0);紅色和藍(lán)色框代表該grid cell包含的兩個bounding box,紅點和藍(lán)點表示這兩個bounding box的中心坐標(biāo)。有一點很重要,bounding box的中心坐標(biāo)一定在該grid cell內(nèi)部,因此,紅點和藍(lán)點的坐標(biāo)可以歸一化在0-1之間。在上圖中,紅點的坐標(biāo)為(0.5,0.5),即x=y=0.5,藍(lán)點的坐標(biāo)為(0.9,0.9),即x=y=0.9。

w,h:?是指該bounding box的寬和高,但也歸一化到了0-1之間,表示相較于原始圖像的寬和高(即448個像素)。比如該bounding box預(yù)測的框?qū)捠?4.8個像素,高也是44.8個像素,則w=0.1,h=0.1。

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

紅框的x=0.8,y=0.5,w=0.1,h=0.2。

(3)不管框 B 的數(shù)量是多少,只負(fù)責(zé)預(yù)測一個目標(biāo)。

(4)預(yù)測 C 個條件概率類別(物體屬于每一種類別的可能性)

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

綜上,S×S 個網(wǎng)格,每個網(wǎng)格要預(yù)測 B個bounding box (中間上圖),還要預(yù)測 C 個類(中間下圖)。將兩圖合并,網(wǎng)絡(luò)輸出就是一個 S × S × (5×B+C)。(S x S個網(wǎng)格,每個網(wǎng)格都有B個預(yù)測框,每個框又有5個參數(shù),再加上每個網(wǎng)格都有C個預(yù)測類)

Q1:為什么每個網(wǎng)格有固定的B個bounding box?(即B=2)

在訓(xùn)練的時候會在線地計算每個predictor預(yù)測的bounding box和ground truth的IOU,計算出來的IOU大的那個predictor,就會負(fù)責(zé)預(yù)測這個物體,另外一個則不預(yù)測。這么做有什么好處?我的理解是,這樣做的話,實際上有兩個predictor來一起進(jìn)行預(yù)測,然后網(wǎng)絡(luò)會在線選擇預(yù)測得好的那個predictor(也就是IOU大)來進(jìn)行預(yù)測。

Q2:每個網(wǎng)格預(yù)測的兩個bounding box是怎么得到的?

YOLO中兩個bounding box是人為選定的(2個不同 長寬比)的box,在訓(xùn)練開始時作為超參數(shù)輸入bounding box的信息,隨著訓(xùn)練次數(shù)增加,loss降低,bounding box越來越準(zhǔn)確。Faster RCNN也是人為選定的(9個 不同長寬比和scale),YOLOv2是統(tǒng)計分析ground true box的特點得到的(5個)。


預(yù)測特征組成

最終的預(yù)測特征由邊框的位置、邊框的置信度得分以及類別概率組成,這三者的含義如下:

  • 邊框位置:?對每一個邊框需要預(yù)測其中心坐標(biāo)及寬、高這4個量, 兩個邊框共計8個預(yù)測值邊界框?qū)挾葁和高度h用圖像寬度和高度歸一化。因此 x,y,w,h 都在0和1之間。
  • 置信度得分(box confidence score) c :?框包含一個目標(biāo)的可能性以及邊界框的準(zhǔn)確程度。類似于Faster RCNN 中是前景還是背景。由于有兩個邊框,因此會存在兩個置信度預(yù)測值。
  • 類別概率:?由于PASCAL VOC數(shù)據(jù)集一共有20個物體類別,因此這里預(yù)測的是邊框?qū)儆谀囊粋€類別。

注意

  • 一個cell預(yù)測的兩個邊界框共用一個類別預(yù)測, 在訓(xùn)練時會選取與標(biāo)簽IoU更大的一個邊框負(fù)責(zé)回歸該真實物體框,在測試時會選取置信度更高的一個邊框,另一個會被舍棄,因此7×7=49個gird cell最多只能預(yù)測49個物體。
  • 因為每一個 grid cell只能有一個分類,也就是他只能預(yù)測一個物體,這也是導(dǎo)致YOLO對小目標(biāo)物體性能比較差的原因。如果所給圖片極其密集,導(dǎo)致 grid cell里可能有多個物體,但是YOLO模型只能預(yù)測出來一個,那這樣就會忽略在本grid cell內(nèi)的其他物體。

    2.1 Network Design—網(wǎng)絡(luò)設(shè)計

?翻譯

我們將此模型作為卷積神經(jīng)網(wǎng)絡(luò)來實現(xiàn),并在Pascal VOC檢測數(shù)據(jù)集[9]上進(jìn)行評估。網(wǎng)絡(luò)的初始卷積層從圖像中提取特征,而全連接層負(fù)責(zé)預(yù)測輸出概率和坐標(biāo)。

我們的網(wǎng)絡(luò)架構(gòu)受圖像分類模型GoogLeNet的啟發(fā)[34]。我們的網(wǎng)絡(luò)有24個卷積層,后面是2個全連接層。我們只使用1×1降維層,后面是3×3卷積層,這與Lin等人[22]類似,而不是GoogLeNet使用的Inception模塊。

我們還訓(xùn)練了快速版本的YOLO,旨在推動快速目標(biāo)檢測的界限??焖資OLO使用具有較少卷積層(9層而不是24層)的神經(jīng)網(wǎng)絡(luò),在這些層中使用較少的卷積核。除了網(wǎng)絡(luò)規(guī)模之外,基本版YOLO和快速YOLO的所有訓(xùn)練和測試參數(shù)都是相同的。

我們網(wǎng)絡(luò)的最終輸出是7×7×30的預(yù)測張量。


精讀

網(wǎng)絡(luò)結(jié)構(gòu)

YOLO網(wǎng)絡(luò)結(jié)構(gòu)借鑒了 GoogLeNet (經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(三)——GoogLeNet InceptionV1學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn)))。輸入圖像的尺寸為448×448,經(jīng)過24個卷積層,2個全連接的層(FC),最后在reshape操作,輸出的特征圖大小為7×7×30。

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


Q:7×7×30怎么來的?

張量剖面圖

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

?(圖片來源:YOLO v1詳細(xì)解讀_yolov1詳解_迪菲赫爾曼的博客-CSDN博客)

  • ?7×7:?一共劃分成7×7的網(wǎng)格。
  • ?30:?30包含了兩個預(yù)測框的參數(shù)和Pascal VOC的類別參數(shù):每個預(yù)測框有5個參數(shù):x,y,w,h,confidence。另外,Pascal VOC里面還有20個類別;所以最后的30實際上是由5x2+20組成的,也就是說這一個30維的向量就是一個gird cell的信息。
  • ?7×7×30:?總共是7 × 7個gird cell一共就是7 × 7 ×(2 × 5+ 20)= 7 × 7 × 30 tensor = 1470 outputs,正好對應(yīng)論文。

網(wǎng)絡(luò)詳解

(1)YOLO主要是建立一個CNN網(wǎng)絡(luò)生成預(yù)測7×7×1024 的張量 。

(2)然后使用兩個全連接層執(zhí)行線性回歸,以進(jìn)行7×7×2 邊界框預(yù)測。將具有高置信度得分(大于0.25)的結(jié)果作為最終預(yù)測。

(3)在3×3的卷積后通常會接一個通道數(shù)更低1×1的卷積,這種方式既降低了計算量,同時也提升了模型的非線性能力。

(4)除了最后一層使用了線性激活函數(shù)外,其余層的激活函數(shù)為 Leaky ReLU 。

(5)在訓(xùn)練中使用了 Dropout 與數(shù)據(jù)增強(qiáng)的方法來防止過擬合。

(6)對于最后一個卷積層,它輸出一個形狀為 (7, 7, 1024) 的張量。 然后張量展開。使用2個全連接層作為一種線性回歸的形式,它輸出1470個參數(shù),然后reshape為 (7, 7, 30) 。


2.2 Training—訓(xùn)練?

翻譯

我們在ImageNet的1000類競賽數(shù)據(jù)集[30]上預(yù)訓(xùn)練我們的卷積層。對于預(yù)訓(xùn)練,我們使用圖3中的前20個卷積層,接著是平均池化層和全連接層。我們對這個網(wǎng)絡(luò)進(jìn)行了大約一周的訓(xùn)練,并且在ImageNet 2012驗證集上獲得了單一裁剪圖像88%的top-5準(zhǔn)確率,與Caffe模型池中的GoogLeNet模型相當(dāng)。我們使用Darknet框架進(jìn)行所有的訓(xùn)練和推斷[26]。

然后我們轉(zhuǎn)換模型來執(zhí)行檢測訓(xùn)練。Ren等人表明,預(yù)訓(xùn)練網(wǎng)絡(luò)中增加卷積層和連接層可以提高性能[29]。按照他們的方法,我們添加了四個卷積層和兩個全連接層,這些層的權(quán)重都用隨機(jī)值初始化。檢測通常需要細(xì)粒度的視覺信息,因此我們將網(wǎng)絡(luò)的輸入分辨率從224×224改為448×448。

模型的最后一層預(yù)測類概率和邊界框坐標(biāo)。我們通過圖像寬度和高度來規(guī)范邊界框的寬度和高度,使它們落在0和1之間。我們將邊界框x和y坐標(biāo)參數(shù)化為特定網(wǎng)格單元位置的偏移量,所以它們的值被限定在在0和1之間。

模型的最后一層使用線性激活函數(shù),而所有其它的層使用下面的Leaky-ReLU:

我們對模型輸出的平方和誤差(sum-squared error)進(jìn)行優(yōu)化。我們選擇使用平方和誤差,是因為它易于優(yōu)化,但是它并不完全符合最大化平均精度(average precision)的目標(biāo)。它給分類誤差與定位誤差的權(quán)重是一樣的,這點可能并不理想。另外,每個圖像都有很多網(wǎng)格單元并沒有包含任何目標(biāo),這將這些單元格的“置信度”分?jǐn)?shù)推向零,通常壓制了包含目標(biāo)的單元格的梯度。這可能導(dǎo)致模型不穩(wěn)定,從而導(dǎo)致訓(xùn)練在早期就發(fā)散(diverge)。

為了彌補(bǔ)平方和誤差的缺陷,我們增加了邊界框坐標(biāo)預(yù)測的損失,并減少了不包含目標(biāo)的框的置信度預(yù)測的損失。 我們使用兩個參數(shù)λ c o o r d λ_{coord}λcoord?和λ n o o b j λ_{noobj}λnoobj?來實現(xiàn)這一點。 我們設(shè)定λ c o o r d = 5 λ_{coord}= 5λcoord?=5?和?λ n o o b j = 0.5 λ_{noobj}=0.5λnoobj?=0.5。

平方和誤差對大框和小框的誤差權(quán)衡是一樣的,而我們的錯誤指標(biāo)(error metric)應(yīng)該要體現(xiàn)出,大框的小偏差的重要性不如小框的小偏差的重要性。為了部分解決這個問題,我們直接預(yù)測邊界框?qū)挾群透叨鹊?strong>平方根,而不是寬度和高度。

YOLO為每個網(wǎng)格單元預(yù)測多個邊界框。在訓(xùn)練時,每個目標(biāo)我們只需要一個邊界框預(yù)測器來負(fù)責(zé)。若某預(yù)測器的預(yù)測值與目標(biāo)的實際值的IOU值最高,則這個預(yù)測器被指定為“負(fù)責(zé)”預(yù)測該目標(biāo)。這導(dǎo)致邊界框預(yù)測器的專業(yè)化。每個預(yù)測器可以更好地預(yù)測特定大小,方向角,或目標(biāo)的類別,從而改善整體召回率(recall)。

在訓(xùn)練期間,我們優(yōu)化以下多部分損失函數(shù):

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

?注意,如果目標(biāo)存在于該網(wǎng)格單元中(前面討論的條件類別概率),則損失函數(shù)懲罰(penalizes)分類錯誤。如果預(yù)測器“負(fù)責(zé)”實際邊界框(即該網(wǎng)格單元中具有最高IOU的預(yù)測器),則它也懲罰邊界框坐標(biāo)錯誤。

我們用Pascal VOC 2007和2012的訓(xùn)練集和驗證數(shù)據(jù)集進(jìn)行了大約 135個epoch 的網(wǎng)絡(luò)訓(xùn)練。因為我們僅在Pascal VOC 2012上進(jìn)行測試,所以我們的訓(xùn)練集里包含了Pascal VOC 2007的測試數(shù)據(jù)。在整個訓(xùn)練過程中,我們使用:batch size=64,momentum=0.9,decay=0.0005。

我們的學(xué)習(xí)率(learning rate)計劃如下:在第一個epoch中,我們將學(xué)習(xí)率從1 0 ? 3 10^{-3}10?3慢慢地提高到?1 0 ? 2 10^{-2}10?2。如果從大的學(xué)習(xí)率開始訓(xùn)練,我們的模型通常會由于不穩(wěn)定的梯度而發(fā)散(diverge)。我們繼續(xù)以?1 0 ? 2 10^{-2}10?2?進(jìn)行75個周期的訓(xùn)練,然后以?1 0 ? 3 10^{-3}10?3?進(jìn)行30個周期的訓(xùn)練,最后以?1 0 ? 4 10^{-4}10?4?進(jìn)行30個周期的訓(xùn)練。

為避免過擬合,我們使用了Dropout和大量的數(shù)據(jù)增強(qiáng) 在第一個連接層之后的dropout層的丟棄率設(shè)置為0.5,以防止層之間的相互適應(yīng)[18]。 對于數(shù)據(jù)增強(qiáng)(data augmentation),我們引入高達(dá)20%的原始圖像大小的隨機(jī)縮放和平移(random scaling and translations )。我們還在 HSV 色彩空間中以高達(dá) 1.5 的因子隨機(jī)調(diào)整圖像的曝光度和飽和度。


精讀

預(yù)訓(xùn)練分類網(wǎng)絡(luò)

在 ImageNet 1000數(shù)據(jù)集上預(yù)訓(xùn)練一個分類網(wǎng)絡(luò),這個網(wǎng)絡(luò)使用Figure3中的前20個卷積層,然后是一個平均池化層和一個全連接層。(此時網(wǎng)絡(luò)輸入是224×224)。

Q:主干結(jié)構(gòu)的輸入要求必須是448x448的固定尺寸,為什么在預(yù)訓(xùn)練階段可以輸入224x224的圖像呢?

主要原因是加入了平均池化層,這樣不論輸入尺寸是多少,在和最后的全連接層連接時都可以保證相同的神經(jīng)元數(shù)目。

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


??訓(xùn)練檢測網(wǎng)絡(luò)

經(jīng)過上一步的預(yù)訓(xùn)練,就已經(jīng)把主干網(wǎng)絡(luò)的前20個卷積層給訓(xùn)練好了,前20層的參數(shù)已經(jīng)學(xué)到了圖片的特征。接下來的步驟本質(zhì)就是遷移學(xué)習(xí),在訓(xùn)練好的前20層卷積層后加上4層卷積層和2層全連接層,然后在目標(biāo)檢測的任務(wù)上進(jìn)行遷移學(xué)習(xí)。

在整個網(wǎng)絡(luò)(24+2)的訓(xùn)練過程中,除最后一層采用ReLU函數(shù)外,其他層均采用leaky ReLU激活函數(shù)。leaky ReLU相對于ReLU函數(shù)可以解決在輸入為負(fù)值時的零梯度問題。YOLOv1中采用的leaky ReLU函數(shù)的表達(dá)式為:


NMS非極大值抑制

概念:NMS算法主要解決的是一個目標(biāo)被多次檢測的問題,意義主要在于在一個區(qū)域里交疊的很多框選一個最優(yōu)的。

YOLO中具體操作

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

?(1)對于上述的98列數(shù)據(jù),先看某一個類別,也就是只看98列的這一行所有數(shù)據(jù),先拿出最大值概率的那個框,剩下的每一個都與它做比較,如果兩者的IoU大于某個閾值,則認(rèn)為這倆框重復(fù)識別了同一個物體,就將其中低概率的重置成0。

(2)最大的那個框和其他的框比完之后,再從剩下的框找最大的,繼續(xù)和其他的比,依次類推對所有類別進(jìn)行操作。 注意,這里不能直接選擇最大的,因為有可能圖中有多個該類別的物體,所以IoU如果小于某個閾值,則會被保留。

(3)最后得到一個稀疏矩陣,因為里面有很多地方都被重置成0,拿出來不是0的地方拿出來概率和類別,就得到最后的目標(biāo)檢測結(jié)果了。

注意:?NMS只發(fā)生在預(yù)測階段,訓(xùn)練階段是不能用NMS的,因為在訓(xùn)練階段不管這個框是否用于預(yù)測物體的,他都和損失函數(shù)相關(guān),不能隨便重置成0。


損失函數(shù)

損失函數(shù)包括:

localization loss -> 坐標(biāo)損失

confidence loss -> 置信度損失

classification loss -> 分類損失

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

損失函數(shù)詳解:

(1)坐標(biāo)損失

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

  • 第一行:?負(fù)責(zé)檢測物體的框中心點(x, y)定位誤差。
  • 第二行:?負(fù)責(zé)檢測物體的框的高寬(w,h)定位誤差,這個根號的作用就是為了修正對大小框一視同仁的缺點,削弱大框的誤差。

Q:為啥加根號?

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

在上圖中,大框和小框的bounding box和ground truth都是差了一點,但對于實際預(yù)測來講,大框(大目標(biāo))差的這一點也許沒啥事兒,而小框(小目標(biāo))差的這一點可能就會導(dǎo)致bounding box的方框和目標(biāo)差了很遠(yuǎn)。而如果還是使用第一項那樣直接算平方和誤差,就相當(dāng)于把大框和小框一視同仁了,這樣顯然不合理。而如果使用開根號處理,就會一定程度上改善這一問題 。

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

這樣一來,同樣是差一點,小框產(chǎn)生的誤差會更大,即對小框懲罰的更嚴(yán)重。

(2)置信度損失

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

  • 第一行:?負(fù)責(zé)檢測物體的那個框的置信度誤差。
  • 第二行:?不負(fù)責(zé)檢測物體的那個框的置信度誤差。

(3)分類損失

【YOLO系列】YOLOv1論文超詳細(xì)解讀(翻譯 +學(xué)習(xí)筆記)?負(fù)責(zé)檢測物體的grid cell分類的誤差。


特殊符號的含義:

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


2.3 Inference—推論

翻譯

就像在訓(xùn)練中一樣,預(yù)測測試圖像的檢測只需要一次網(wǎng)絡(luò)評估。在Pascal VOC上,每張圖像上網(wǎng)絡(luò)預(yù)測 98 個邊界框和每個框的類別概率。YOLO在測試時非常快,因為它只需要一次網(wǎng)絡(luò)評估(network evaluation),這與基于分類器的方法不同。

網(wǎng)格設(shè)計強(qiáng)化了邊界框預(yù)測中的空間多樣性。通常一個目標(biāo)落在哪一個網(wǎng)格單元中是很明顯的,而網(wǎng)絡(luò)只能為每個目標(biāo)預(yù)測一個邊界框。然而,一些大的目標(biāo)或接近多個網(wǎng)格單元的邊界的目標(biāo)能被多個網(wǎng)格單元定位。非極大值抑制(Non-maximal suppression,NMS)可以用來修正這些多重檢測。非最大抑制對于YOLO的性能的影響不像對于R-CNN或DPM那樣重要,但也能增加2?3%的mAP。


精讀

(1)預(yù)測測試圖像的檢測只需要一個網(wǎng)絡(luò)評估。

(2)測試時間快

(3)當(dāng)圖像中的物體較大,或者處于 grid cells 邊界的物體,可能在多個 cells 中被定位出來。

(4)利用NMS去除重復(fù)檢測的物體,使mAP提高,但和RCNN等相比不算大。


2.4 Limitations of YOLO—YOLO的局限性?

翻譯

由于每個格網(wǎng)單元只能預(yù)測兩個框,并且只能有一個類,因此YOLO對邊界框預(yù)測施加了很強(qiáng)的空間約束。這個空間約束限制了我們的模型可以預(yù)測的鄰近目標(biāo)的數(shù)量。我們的模型難以預(yù)測群組中出現(xiàn)的小物體(比如鳥群)。

由于我們的模型學(xué)習(xí)是從數(shù)據(jù)中預(yù)測邊界框,因此它很難泛化到新的、不常見的長寬比或配置的目標(biāo)。我們的模型也使用相對較粗糙的特征來預(yù)測邊界框,因為輸入圖像在我們的架構(gòu)中歷經(jīng)了多個下采樣層(downsampling layers)。

最后,我們的訓(xùn)練基于一個逼近檢測性能的損失函數(shù),這個損失函數(shù)無差別地處理小邊界框與大邊界框的誤差。大邊界框的小誤差通常是無關(guān)要緊的,但小邊界框的小誤差對IOU的影響要大得多。我們的主要錯誤來自于不正確的定位


精讀

(1)對于圖片中一些群體性小目標(biāo)檢測效果比較差。因為yolov1網(wǎng)絡(luò)到后面感受野較大,小目標(biāo)的特征無法再后面7×7的grid中體現(xiàn),針對這一點,yolov2已作了一定的修改,加入前層(感受野較小)的特征進(jìn)行融合。

(2)原始圖片只劃分為7x7的網(wǎng)格,當(dāng)兩個物體靠的很近時(挨在一起且中點都落在同一個格子上的情況),效果比較差。因為yolov1的模型決定了一個grid只能預(yù)測出一個物體,所以就會丟失目標(biāo),針對這一點,yolov2引入了anchor的概念,一個grid有多少個anchor理論上就可以預(yù)測多少個目標(biāo)。

(3)每個網(wǎng)格只對應(yīng)兩個bounding box,當(dāng)物體的長寬比不常見(也就是訓(xùn)練數(shù)據(jù)集覆蓋不到時),效果較差。

(4)最終每個網(wǎng)格只對應(yīng)一個類別,容易出現(xiàn)漏檢(物體沒有被識別到)。


三、Comparison to Other Detection Systems—與其他目標(biāo)檢測算法的比較

翻譯

目標(biāo)檢測是計算機(jī)視覺中的核心問題。檢測流程通常是首先從輸入圖像上提取一組魯棒特征(Haar [25],SIFT [23],HOG [4],卷積特征[6])。然后,分類器[36,21,13,10]或定位器[1,32]被用來識別特征空間中的目標(biāo)。這些分類器或定位器或在整個圖像上或在圖像中的一些子區(qū)域上以滑動窗口的方式運行[35,15,39]。我們將YOLO檢測系統(tǒng)與幾種頂級檢測框架進(jìn)行比較,突出了關(guān)鍵的相似性和差異性。

Deformable parts models??勺冃尾糠帜P停―PM)使用滑動窗口方法進(jìn)行目標(biāo)檢測[10]。DPM使用不相交的流程來提取靜態(tài)特征,對區(qū)域進(jìn)行分類,預(yù)測高評分區(qū)域的邊界框等。我們的系統(tǒng)用單個卷積神經(jīng)網(wǎng)絡(luò)替換所有這些不同的部分。網(wǎng)絡(luò)同時進(jìn)行特征提取,邊界框預(yù)測,非極大值抑制和上下文推理。網(wǎng)絡(luò)的特征feature是在在線(in-line)訓(xùn)練出來的而不是靜態(tài),因此可以根據(jù)特定的檢測任務(wù)進(jìn)行優(yōu)化。我們的統(tǒng)一架構(gòu)比DPM更快,更準(zhǔn)確。

R-CNN。R-CNN及其變體(variants)使用區(qū)域候選而不是滑動窗口來查找圖像中的目標(biāo)。選擇性搜索[35]生成潛在的邊界框(Selective Search generates potential bounding boxes),卷積網(wǎng)絡(luò)提取特征,SVM對框進(jìn)行評分,線性模型調(diào)整邊界框,非最大抑制消除重復(fù)檢測(eliminates duplicate detections)。 這個復(fù)雜流水線的每個階段都必須獨立地進(jìn)行精確調(diào)整(precisely tuned independently),所得到的系統(tǒng)非常緩慢,在測試時間每個圖像需要超過40秒[14]。

YOLO與R-CNN有一些相似之處。每個網(wǎng)格單元提出潛在的邊界框并使用卷積特征對這些框進(jìn)行評分。然而,我們的系統(tǒng)對網(wǎng)格單元的候選框施加空間限制,這有助于緩解對同一目標(biāo)的多次檢測的問題。 我們的系統(tǒng)還生成了更少的邊界框,每張圖像只有98個,而選擇性搜索則有約2000個。最后,我們的系統(tǒng)將這些單獨的組件(individual components)組合成一個單一的、共同優(yōu)化的模型。

其它快速檢測器。 Fast R-CNN 和 Faster R-CNN 通過共享計算和使用神經(jīng)網(wǎng)絡(luò)替代選擇性搜索[14],[28]來提出候選區(qū)域來加速 R-CNN 框架。雖然它們提供了比 R-CNN 更快的速度和更高的準(zhǔn)確度,但仍然不能達(dá)到實時性能。

許多研究工作集中在加快DPM流程上[31] [38] [5]。它們加速HOG計算,使用級聯(lián)(cascades),并將計算推動到(多個)GPU上。但是,實際上只有30Hz的DPM [31]可以實時運行。

YOLO并沒有試圖優(yōu)化大型檢測流程的單個組件,相反,而是完全拋棄(throws out…entirely)了大型檢測流程,并通過設(shè)計來提高速度。

像人臉或行人等單個類別的檢測器可以高度優(yōu)化,因為他們只需處理較少的多樣性[37]。YOLO是一種通用的檢測器,它可以同時(simultaneously)檢測多個目標(biāo)。

Deep MultiBox。與R-CNN不同,Szegedy等人 訓(xùn)練一個卷積神經(jīng)網(wǎng)絡(luò)來預(yù)測感興趣的區(qū)域(regions of interest,ROI)[8],而不是使用選擇性搜索。 MultiBox還可以通過用單個類別預(yù)測替換置信度預(yù)測來執(zhí)行單個目標(biāo)檢測。 但是,MultiBox無法執(zhí)行一般的目標(biāo)檢測,并且仍然只是較大檢測流水線中的一部分,需要進(jìn)一步的圖像補(bǔ)丁分類。 YOLO和MultiBox都使用卷積網(wǎng)絡(luò)來預(yù)測圖像中的邊界框,但YOLO是一個完整的檢測系統(tǒng)

OverFeat。Sermanet等人訓(xùn)練了一個卷積神經(jīng)網(wǎng)絡(luò)來執(zhí)行定位,并使該定位器進(jìn)行檢測[32]。OverFeat高效地執(zhí)行滑動窗口檢測,但它仍然是一個不相交的系統(tǒng)(disjoint system)。OverFeat優(yōu)化了定位功能,而不是檢測性能。像DPM一樣,定位器在進(jìn)行預(yù)測時只能看到局部信息。OverFeat無法推斷全局上下文,因此需要大量的后處理來產(chǎn)生連貫的檢測。

MultiGrasp。我們的系統(tǒng)在設(shè)計上類似于Redmon等[27]的抓取檢測。?我們的網(wǎng)格邊界框預(yù)測方法基于MultiGrasp系統(tǒng)進(jìn)行回歸分析。 然而,抓取檢測比物體檢測要簡單得多。 MultiGrasp只需要為包含一個目標(biāo)的圖像預(yù)測一個可抓取區(qū)域。 它不必估計目標(biāo)的大小,位置或邊界或預(yù)測它的類別,只需找到適合抓取的區(qū)域就可以了。 而YOLO則是預(yù)測圖像中多個類的多個目標(biāo)的邊界框和類概率。


精讀

DPM

用傳統(tǒng)的HOG特征方法,也用的是傳統(tǒng)的支持向量機(jī)SVM分類器,然后人工造一個模板,再用滑動窗口方法不斷的暴力搜索整個待識別圖,去套那個模板。這個方法比較大的問題就是在于設(shè)計模板,計算量巨大,而且是個靜態(tài)的,沒辦法匹配很多變化的東西,魯棒性差。

R-CNN

  • 第一階段:每個圖片使用選擇性搜索SS方法提取2000個候選框。
  • 第二階段:將每個候選框送入CNN網(wǎng)絡(luò)進(jìn)行分類(使用的SVM)。

YOLO對比他們倆都很強(qiáng),YOLO和R-CNN也有相似的地方,比如也是提取候選框,YOLO的候選框就是上面說過的那98個 bounding boxes,也是用到了NMS非極大值抑制,也用到了CNN提取特征。

Other Fast Detectors

Fast和Faster R-CNN :這倆模型都是基于R-CNN的改版,速度和精度都提升了很多,但是也沒辦法做到實時監(jiān)測,也就是說FPS到不了30,作者在這里并沒有談準(zhǔn)確度的問題,實際上YOLO的準(zhǔn)確度在這里是不占優(yōu)勢的,甚至于比他們低。

Deep MultiBox

訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)來預(yù)測感興趣區(qū)域,而不是使用選擇性搜索。多盒也可以用單個類預(yù)測替換置信預(yù)測來執(zhí)行單個目標(biāo)檢測。YOLO和MultiBox都使用卷積網(wǎng)絡(luò)來預(yù)測圖像中的邊界框,但YOLO是一個完整的檢測系統(tǒng)。

OverFeat

OverFeat有效地執(zhí)行滑動窗口檢測,優(yōu)化了定位,而不是檢測性能。與DPM一樣,定位器在進(jìn)行預(yù)測時只看到本地信息。OverFeat不能推理全局環(huán)境。

MultiGrasp

YOLO在設(shè)計上與Redmon等人的抓取檢測工作相似。邊界盒預(yù)測的網(wǎng)格方法是基于多重抓取系統(tǒng)的回歸到抓取。

總之,作者就是給前人的工作都數(shù)落一遍,凸顯自己模型的厲害(學(xué)到了?。?/p>


四、Experiments—實驗?

4.1 Comparison to Other RealTime Systems—與其他實時系統(tǒng)的比較

翻譯

目標(biāo)檢測方面的許多研究工作都集中在使標(biāo)準(zhǔn)的檢測流程更快[5],[38],[31],[14],[17],[28]。然而,只有Sadeghi等人實際上產(chǎn)生了一個實時運行的檢測系統(tǒng)(每秒30幀或更好)[31]。我們將YOLO與DPM的GPU實現(xiàn)進(jìn)行了比較,其在30Hz或100Hz下運行。雖然其它的算法沒有達(dá)到實時性的標(biāo)準(zhǔn),我們也比較了它們的mAP和速度的關(guān)系,從而探討目標(biāo)檢測系統(tǒng)中精度和性能之間的權(quán)衡。

Fast YOLO是PASCAL上最快的目標(biāo)檢測方法;據(jù)我們所知,它是現(xiàn)有的最快的目標(biāo)檢測器。具有52.7%的mAP,實時檢測的精度是以前的方法的兩倍以上。普通版YOLO將mAP推到63.4%的同時保持了實時性能。

我們還使用VGG-16訓(xùn)練YOLO。 這個模型比普通版YOLO更精確,但也更慢。 它的作用是與依賴于VGG-16的其他檢測系統(tǒng)進(jìn)行比較,但由于它比實時更慢,所以本文的其他部分將重點放在我們更快的模型上。

最快的DPM可以在不犧牲太多mAP的情況下有效加速DPM,但仍然會將實時性能降低2倍[38]。與神經(jīng)網(wǎng)絡(luò)方法相比,DPM的檢測精度相對較低,這也是限制它的原因。

減去R的R-CNN用靜態(tài)侯選邊界框取代選擇性搜索[20]。雖然速度比R-CNN更快,但它仍然無法實時,并且由于該方法無法找到好的邊界框,準(zhǔn)確性受到了嚴(yán)重影響。

Fast R-CNN加快了R-CNN的分類階段,但它仍然依賴于選擇性搜索,每個圖像需要大約2秒才能生成邊界候選框。因此,它雖然具有較高的mAP,但的速度是0.5 fps,仍然遠(yuǎn)未達(dá)到實時。

最近的Faster R-CNN用神經(jīng)網(wǎng)絡(luò)替代了選擇性搜索來候選邊界框,類似于Szegedy等人[8]的方法。在我們的測試中,他們最準(zhǔn)確的模型達(dá)到了 7fps,而較小的、不太準(zhǔn)確的模型以18 fps運行。 Faster R-CNN的VGG-16版本比YOLO高出10mAP,但比YOLO慢了6倍。 Zeiler-Fergus 版本的Faster R-CNN只比YOLO慢2.5倍,但也不如YOLO準(zhǔn)確。


精讀

Table 1 在Pascal VOC 2007 上與其他檢測方法的對比【YOLO系列】YOLOv1論文超詳細(xì)解讀(翻譯 +學(xué)習(xí)筆記)

結(jié)論:實時目標(biāo)檢測(FPS>30),YOLO最準(zhǔn),F(xiàn)ast YOLO最快。?


4.2 VOC 2007 Error Analysis—VOC 2007誤差分析

翻譯

為了進(jìn)一步研究YOLO和最先進(jìn)的檢測器之間的差異,我們詳細(xì)分析了VOC 2007的分類(breakdown)結(jié)果。我們將YOLO與Fast R-CNN進(jìn)行比較,因為Fast R-CNN是PASCAL上性能最高的檢測器之一并且它的檢測代碼是可公開得到的。

我們使用Hoiem等人的方法和工具[19],對于測試的每個類別,我們查看該類別的前N個預(yù)測。每個預(yù)測都或是正確的,或是根據(jù)錯誤的類型進(jìn)行分類:

  • Correct: correct class and IOU>0.5
  • Localization: correct class, 0.1<IOU<0.5
  • Similar: class is similar, IOU>0.1
  • Other: class is wrong, IOU>0.1
  • Background: IOU<0.1?for any object(所有目標(biāo)的IOU都<0.1)

YOLO難以正確地定位目標(biāo),因此定位錯誤比YOLO的所有其他錯誤總和都要多。Fast R-CNN定位錯誤更少,但把背景誤認(rèn)成目標(biāo)的錯誤比較多。它的最高檢測結(jié)果中有13.6%是不包含任何目標(biāo)的誤報(false positive,背景)。 Fast R-CNN把背景誤認(rèn)成目標(biāo)的概率比YOLO高出3倍。?


精讀

本文使用HoeMm等人的方法和工具。對于測試時間的每個類別,查看該類別的N個預(yù)測。每個預(yù)測要么是正確的,要么是基于錯誤類型進(jìn)行分類的:

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

參數(shù)含義:

  • Correct:正確分類,且預(yù)測框與ground truth的IOU大于0.5,既預(yù)測對了類別,預(yù)測框的位置和大小也很合適。?
  • Localization:正確分類,但預(yù)測框與ground truth的IOU大于0.1小于0.5,即雖然預(yù)測對了類別,但預(yù)測框的位置不是那么的嚴(yán)絲合縫,不過也可以接受。
  • Similar: 預(yù)測了相近的類別,且預(yù)測框與ground truth的IOU大于0.1。即預(yù)測的類別雖不正確但相近,預(yù)測框的位置還可以接受。
  • Other:預(yù)測類別錯誤,預(yù)測框與ground truth的IOU大于0.1。即預(yù)測的類別不正確,但預(yù)測框還勉強(qiáng)把目標(biāo)給框住了。
  • Background:預(yù)測框與ground truth的IOU小于0.1,即該預(yù)測框的位置為背景,沒有目標(biāo)。

Figure 4 顯示了所有20個類中每種錯誤類型的平均細(xì)分情況【YOLO系列】YOLOv1論文超詳細(xì)解讀(翻譯 +學(xué)習(xí)筆記)?

結(jié)論:YOLO定位錯誤率高于Fast R-CNN;Fast R-CNN背景預(yù)測錯誤率高于YOLO?


4.3 Combining Fast R-CNN and YOLO—Fast R-CNN與YOLO的結(jié)合

翻譯

YOLO誤認(rèn)背景為目標(biāo)的情況比Fast R-CNN少得多。 通過使用YOLO消除Fast R-CNN的背景檢測,我們獲得了顯著的性能提升。 對于R-CNN預(yù)測的每個邊界框,我們檢查YOLO是否預(yù)測了一個相似的框。 如果確實如此,那么我們會根據(jù)YOLO預(yù)測的概率和兩個框之間的重疊情況提高預(yù)測值。

最好的Fast R-CNN模型在VOC 2007測試集中達(dá)到了 71.8% 的mAP。 當(dāng)與YOLO合并時,其mAP增加了 3.2% 至 75.0%。 我們還嘗試將頂級Fast R-CNN模型與其他幾個版本的Fast R-CNN結(jié)合起來。 這寫的結(jié)合的平均增長率在 0.3% 至 0.6% 之間。

結(jié)合YOLO后獲得的性能提高不僅僅是模型集成的副產(chǎn)品,因為結(jié)合不同版本的Fast R-CNN幾乎沒有什么益處。 相反,正是因為YOLO在測試時出現(xiàn)了各種各樣的錯誤,所以它在提高Fast R-CNN的性能方面非常有效。

不幸的是,這種組合不會從YOLO的速度中受益,因為我們分別運行每個模型,然后合并結(jié)果。 但是,由于YOLO速度如此之快,與Fast R-CNN相比,它不會增加任何顯著的計算時間。

精讀

Table2 模型組合在VOC 2007上的實驗結(jié)果對比【YOLO系列】YOLOv1論文超詳細(xì)解讀(翻譯 +學(xué)習(xí)筆記)

結(jié)論:因為YOLO在測試時犯了各種錯誤,所以它在提高快速R-CNN的性能方面非常有效。但是這種組合并不受益于YOLO的速度,由于YOLO很快,和Fast R-CNN相比,它不增加任何有意義的計算時間。


4.4 VOC 2012 Results—VOC 2012結(jié)果?

翻譯

在VOC 2012測試集中,YOLO的mAp得分是57.9%。這比現(xiàn)有最先進(jìn)的技術(shù)水平低,更接近使用VGG-16的原始的R-CNN,見表3。與其最接近的競爭對手相比,我們的系統(tǒng)很難處理小物體上(struggles with small objects)。在瓶子、羊、電視/監(jiān)視器等類別上,YOLO得分比R-CNN和Feature Edit低8-10%。然而,在其他類別,如貓和火車YOLO取得了更好的表現(xiàn)。

我們的Fast R-CNN + YOLO模型組合是性能最高的檢測方法之一。 Fast R-CNN與YOLO的組合提高了2.3%,在公共排行榜上提升了5個位置。

精讀

Table 3 在VOC2012上mAP排序【YOLO系列】YOLOv1論文超詳細(xì)解讀(翻譯 +學(xué)習(xí)筆記)

?結(jié)論:Fast R-CNN從與YOLO的組合中得到2.3%的改進(jìn),在公共排行榜上提升了5個百分點。?


4.5 Generalizability: Person Detection in Artwork—泛化性:圖像中的人物檢測?

翻譯

用于目標(biāo)檢測的學(xué)術(shù)數(shù)據(jù)集的訓(xùn)練和測試數(shù)據(jù)是服從同一分布的。但在現(xiàn)實世界的應(yīng)用中,很難預(yù)測所有可能的用例,他的測試數(shù)據(jù)可能與系統(tǒng)已經(jīng)看到的不同[3]。我們將YOLO與其他檢測系統(tǒng)在畢加索(Picasso)數(shù)據(jù)集[12]和人物藝術(shù)(People-Art)數(shù)據(jù)集[3]上進(jìn)行了比較,這兩個數(shù)據(jù)集用于測試藝術(shù)品上的人物檢測。

作為參考(for reference),我們提供了VOC 2007的人形檢測的AP,其中所有模型僅在VOC 2007數(shù)據(jù)上訓(xùn)練。在Picasso數(shù)據(jù)集上測試的模型在是在VOC 2012上訓(xùn)練,而People-Art數(shù)據(jù)集上的模型則在VOC 2010上訓(xùn)練。

R-CNN在VOC 2007上有很高的AP值。然而,當(dāng)應(yīng)用于藝術(shù)圖像時,R-CNN顯著下降。R-CNN使用選擇性搜索來調(diào)整自然圖像的候選邊界框。R-CNN在分類器階段只能看到小區(qū)域,而且需要有很好的候選框。

DPM在應(yīng)用于藝術(shù)圖像時可以很好地保持其AP。之前的研究認(rèn)為DPM表現(xiàn)良好,因為它具有強(qiáng)大的物體形狀和布局空間模型。雖然DPM不會像R-CNN那樣退化,但它的AP本來就很低。

YOLO在VOC 2007上表現(xiàn)出色,其應(yīng)用于藝術(shù)圖像時其AP降低程度低于其他方法。與DPM一樣,YOLO模擬目標(biāo)的大小和形狀,以及目標(biāo)之間的關(guān)系和目標(biāo)通常出現(xiàn)的位置之間的關(guān)系。藝術(shù)圖像和自然圖像在像素級別上有很大不同,但它們在物體的大小和形狀方面相似,因此YOLO仍然可以預(yù)測好的邊界框和檢測結(jié)果。

精讀

Figure 5 通用性(Picasso 數(shù)據(jù)集和 People-Art數(shù)據(jù)集)【YOLO系列】YOLOv1論文超詳細(xì)解讀(翻譯 +學(xué)習(xí)筆記)?

結(jié)論:YOLO都具有很好的檢測結(jié)果


五、Real-Time Detection In The Wild—自然環(huán)境下的實時檢測?

?翻譯

YOLO是一款快速,精確的物體檢測器,非常適合計算機(jī)視覺應(yīng)用。 我們將YOLO連接到網(wǎng)絡(luò)攝像頭,并驗證它是否保持實時性能,包括從攝像頭獲取圖像并顯示檢測結(jié)果的時間。

由此產(chǎn)生的系統(tǒng)是互動的和參與的。 雖然YOLO單獨處理圖像,但當(dāng)連接到網(wǎng)絡(luò)攝像頭時,它的功能類似于跟蹤系統(tǒng),可在目標(biāo)移動并在外觀上發(fā)生變化時檢測目標(biāo)。 系統(tǒng)演示和源代碼可在我們的項目網(wǎng)站上找到:YOLO: Real-Time Object Detection。

精讀

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

?結(jié)論:將YOLO連接到一個網(wǎng)絡(luò)攝像頭上,并驗證它是否保持了實時性能,包括從攝像頭中獲取圖像和顯示檢測結(jié)果的時間。結(jié)果證明效果很好,如上圖所示,除了第二行第二個將人誤判為飛機(jī)以外,別的沒問題。


六、Conclusion—結(jié)論

翻譯

我們介紹YOLO——一種用于物體檢測的統(tǒng)一模型。 我們的模型構(gòu)造簡單,可以直接在完整圖像上訓(xùn)練。 與基于分類器的方法不同,YOLO是通過與檢測性能直接對應(yīng)的損失函數(shù)進(jìn)行訓(xùn)練的,并且整個模型是一起訓(xùn)練的。

快速YOLO是文獻(xiàn)中最快的通用目標(biāo)檢測器,YOLO推動實時對象檢測的最新技術(shù)。 YOLO還能很好地推廣到新領(lǐng)域,使其成為快速,魯棒性強(qiáng)的應(yīng)用的理想選擇。

精讀

?到底什么是YOLO?

  • YOLO眼里目標(biāo)檢測是一個回歸問題
  • 一次性喂入圖片,然后給出bbox和分類概率
  • 簡單來說,只看一次就知道圖中物體的類別和位置

YOLO過程總結(jié):

訓(xùn)練階段:

首先將一張圖像分成 S × S個 gird cell,然后將它一股腦送入CNN,生成S × S × (B × 5 + C)個結(jié)果,最后根據(jù)結(jié)果求Loss并反向傳播梯度下降。

預(yù)測、驗證階段:

首先將一張圖像分成 S × S網(wǎng)格(gird cell),然后將它一股腦送入CNN,生成S × S × (B × 5 + C)個結(jié)果,最后用NMS選出合適的預(yù)選框。


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

到了這里,關(guān)于【YOLO系列】YOLOv1論文超詳細(xì)解讀(翻譯 +學(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ìn)行投訴反饋,一經(jīng)查實,立即刪除!

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

相關(guān)文章

  • YOLO系列算法全家桶——YOLOv1-YOLOv9詳細(xì)介紹 ??!

    YOLO系列算法全家桶——YOLOv1-YOLOv9詳細(xì)介紹 ??!

    文章目錄 前言 一、YOLO算法的核心思想 1. YOLO系列算法的步驟 2. Backbone、Neck和Head 二、YOLO系列的算法 1. YOLOv1(2016) 1.1 模型介紹 1.2 網(wǎng)絡(luò)結(jié)構(gòu) 1.3 實現(xiàn)細(xì)節(jié) 1.4 性能表現(xiàn) 2. YOLOv2(2016) 2.1 改進(jìn)部分 2.2 網(wǎng)絡(luò)結(jié)構(gòu) 2.3 性能表現(xiàn) 3. YOLOv3 (2018) 3.1 模型介紹 3.2 網(wǎng)絡(luò)結(jié)構(gòu) 3.3 改進(jìn)部分

    2024年04月10日
    瀏覽(23)
  • 目標(biāo)檢測——YOLO系列學(xué)習(xí)(一)YOLOv1

    目標(biāo)檢測——YOLO系列學(xué)習(xí)(一)YOLOv1

    YOLO可以說是單階段的目標(biāo)檢測方法的集大成之作,必學(xué)的經(jīng)典論文,從準(zhǔn)備面試的角度來學(xué)習(xí)一下yolo系列。 RCNN系列,無論哪種算法,核心思路都是 Region Proposal(定位)+ classifier(修正定位+分類) 。所以也被稱為兩階段算法。但是難以達(dá)到實時檢測的效果,因此yolov1將其修

    2024年04月25日
    瀏覽(25)
  • YOLO物體檢測-系列教程1:YOLOV1整體解讀(預(yù)選框/置信度/分類任/回歸任務(wù)/損失函數(shù)/公式解析/置信度/非極大值抑制)

    YOLO物體檢測-系列教程1:YOLOV1整體解讀(預(yù)選框/置信度/分類任/回歸任務(wù)/損失函數(shù)/公式解析/置信度/非極大值抑制)

    YOLOV1整體解讀 YOLOV2整體解讀 YOLOV1提出論文:You Only Look Once: Unified, Real-Time Object Detection two-stage(兩階段):Faster-rcnn Mask-Rcnn系列 one-stage(單階段):YOLO系列 最核心的優(yōu)勢:速度非???,適合做實時檢測任務(wù)! 但是缺點也是有的,效果通常情況下不會太好! 機(jī)器學(xué)習(xí) 分類任

    2024年02月09日
    瀏覽(22)
  • 人工智能學(xué)習(xí)07--pytorch21--目標(biāo)檢測:YOLO系列理論合集(YOLOv1~v3)

    人工智能學(xué)習(xí)07--pytorch21--目標(biāo)檢測:YOLO系列理論合集(YOLOv1~v3)

    如果直接看yolov3論文的話,會發(fā)現(xiàn)有好多知識點沒見過,所以跟著視頻從頭學(xué)一下。 學(xué)習(xí)up主霹靂吧啦Wz大佬的學(xué)習(xí)方法: 想學(xué)某個網(wǎng)絡(luò)的代碼時: 到網(wǎng)上搜這個網(wǎng)絡(luò)的講解 → 對這個網(wǎng)絡(luò)大概有了印象 → 讀論文原文 ( 很多細(xì)節(jié)都要依照原論文來實現(xiàn), 自己看原論文十分

    2024年02月10日
    瀏覽(92)
  • 【目標(biāo)檢測】YOLO系列——YOLOv1詳解

    【目標(biāo)檢測】YOLO系列——YOLOv1詳解

    本篇是關(guān)于目標(biāo)檢測算法YOLOv1的學(xué)習(xí)筆記。網(wǎng)上的博客大多是摘抄翻譯論文中的重點內(nèi)容加上自己的理解,或者是梳理論文的大致思路,在沒看過原文的情況下可能總會有些看不懂的地方。所以強(qiáng)烈建議博客搭配原文食用。 原文鏈接:You Only Look Once: Unified, Real-Time Object Dete

    2024年02月05日
    瀏覽(19)
  • YOLO系列概述(yolov1至yolov7)

    YOLO系列概述(yolov1至yolov7)

    參考: 睿智的目標(biāo)檢測53——Pytorch搭建YoloX目標(biāo)檢測平臺 YoloV7 首先我們來看一下yolo系列的發(fā)展歷史,yolo v1和yolox是anchor free的方法,yolov2,yolov3,一直到y(tǒng)olov7是anchor base的方法。首選我們來回顧下每個版本的yolo都做了些什么 yolo v1是將 416 ? 416 416*416 4 1 6 ? 4 1 6 的圖片,分

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

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

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

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

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

    從R-CNN到Fast-RCNN,之前的目標(biāo)檢測工作都是分成兩階段,先提供位置信息在進(jìn)行目標(biāo)分類,精度很高但無法滿足實時檢測的要求。 而YoLo將目標(biāo)檢測看作回歸問題,輸入為一張圖片,輸出為S*S*(5*B+C)的三維向量。該向量結(jié)果既包含位置信息,又包含類別信息??赏ㄟ^損失函數(shù),

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

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

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

    2024年02月07日
    瀏覽(26)
  • 經(jīng)典目標(biāo)檢測YOLO系列(一)YOLOV1的復(fù)現(xiàn)(1)總體架構(gòu)

    經(jīng)典目標(biāo)檢測YOLO系列(一)YOLOV1的復(fù)現(xiàn)(1)總體架構(gòu)

    實現(xiàn)原版的YOLOv1并沒有多大的意義,因此,根據(jù) 《YOLO目標(biāo)檢測》(ISBN:9787115627094) 一書,在不脫離YOLOv1的大部分核心理念的前提下,重構(gòu)一款較新的YOLOv1檢測器,來對YOLOV1有更加深刻的認(rèn)識。 書中源碼連接:GitHub - yjh0410/RT-ODLab: YOLO Tutorial 對比原始YOLOV1網(wǎng)絡(luò),主要改進(jìn)點如下:

    2024年02月03日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包