what is YOLOv1|You Only Look Once: Unified, Real-Time Object Detection

參考其他文章,在此表示感謝,文章僅用于學(xué)習(xí),侵權(quán)請(qǐng)聯(lián)系,感謝


論文地址:https://arxiv.org/pdf/1506.02640.pdf


論文翻譯

Abstract

我們提出了YOLO,一種新的目標(biāo)檢測(cè)方法。以前的目標(biāo)檢測(cè)工作重新利用分類器來執(zhí)行檢測(cè)。相反,我們將目標(biāo)檢測(cè)框架看作回歸問題從空間上分割邊界框和相關(guān)的類別概率。單個(gè)神經(jīng)網(wǎng)絡(luò)在一次評(píng)估中直接從完整圖像上預(yù)測(cè)邊界框和類別概率。由于整個(gè)檢測(cè)流水線是單一網(wǎng)絡(luò),因此可以直接對(duì)檢測(cè)性能進(jìn)行端到端的優(yōu)化。

我們的統(tǒng)一架構(gòu)非常快。我們的基礎(chǔ)YOLO模型以45幀/秒的速度實(shí)時(shí)處理圖像。網(wǎng)絡(luò)的一個(gè)較小版本,快速YOLO,每秒能處理驚人的155幀,同時(shí)實(shí)現(xiàn)其它實(shí)時(shí)檢測(cè)器兩倍的mAP。與最先進(jìn)的檢測(cè)系統(tǒng)相比,YOLO產(chǎn)生了更多的定位誤差,但不太可能在背景上的預(yù)測(cè)假陽性。最后,YOLO學(xué)習(xí)目標(biāo)非常通用的表示。當(dāng)從自然圖像到藝術(shù)品等其它領(lǐng)域泛化時(shí),它都優(yōu)于其它檢測(cè)方法,包括DPM和R-CNN。

1.Introduction

人們瞥一眼圖像,立即知道圖像中的物體是什么,它們?cè)谀睦镆约八鼈內(nèi)绾蜗嗷プ饔?。人類的視覺系統(tǒng)是快速和準(zhǔn)確的,使我們能夠執(zhí)行復(fù)雜的任務(wù),如駕駛時(shí)沒有多少有意識(shí)的想法??焖?,準(zhǔn)確的目標(biāo)檢測(cè)算法可以讓計(jì)算機(jī)在沒有專門傳感器的情況下駕駛汽車,使輔助設(shè)備能夠向人類用戶傳達(dá)實(shí)時(shí)的場(chǎng)景信息,并表現(xiàn)出對(duì)一般用途和響應(yīng)機(jī)器人系統(tǒng)的潛力。

目前的檢測(cè)系統(tǒng)重用分類器來執(zhí)行檢測(cè)。為了檢測(cè)目標(biāo),這些系統(tǒng)為該目標(biāo)提供一個(gè)分類器,并在不同的位置對(duì)其進(jìn)行評(píng)估,并在測(cè)試圖像中進(jìn)行縮放。像可變形部件模型(DPM)這樣的系統(tǒng)使用滑動(dòng)窗口方法,其分類器在整個(gè)圖像的均勻間隔的位置上運(yùn)行[10]。

最近的方法,如R-CNN使用區(qū)域提出方法首先在圖像中生成潛在的邊界框,然后在這些提出的框上運(yùn)行分類器。在分類之后,后處理用于細(xì)化邊界框,消除重復(fù)的檢測(cè),并根據(jù)場(chǎng)景中的其它目標(biāo)重新定位邊界框[13]。這些復(fù)雜的流程很慢,很難優(yōu)化,因?yàn)槊總€(gè)單獨(dú)的組件都必須單獨(dú)進(jìn)行訓(xùn)練。

我們將目標(biāo)檢測(cè)重新看作單一的回歸問題,直接從圖像像素到邊界框坐標(biāo)和類概率。使用我們的系統(tǒng),您只需要在圖像上看一次(YOLO),以預(yù)測(cè)出現(xiàn)的目標(biāo)和位置。

圖1:YOLO檢測(cè)系統(tǒng)。用YOLO處理圖像簡(jiǎn)單直接。我們的系統(tǒng)(1)將輸入圖像調(diào)整為448×448,(2)在圖像上運(yùn)行單個(gè)卷積網(wǎng)絡(luò),以及(3)由模型的置信度對(duì)所得到的檢測(cè)進(jìn)行閾值處理。

YOLO很簡(jiǎn)單:參見圖1。單個(gè)卷積網(wǎng)絡(luò)同時(shí)預(yù)測(cè)這些盒子的多個(gè)邊界框和類概率。YOLO在全圖像上訓(xùn)練并直接優(yōu)化檢測(cè)性能。這種統(tǒng)一的模型比傳統(tǒng)的目標(biāo)檢測(cè)方法有一些好處。

首先,YOLO速度非常快。由于我們將檢測(cè)視為回歸問題,所以我們不需要復(fù)雜的流程。測(cè)試時(shí)我們?cè)谝粡埿聢D像上簡(jiǎn)單的運(yùn)行我們的神經(jīng)網(wǎng)絡(luò)來預(yù)測(cè)檢測(cè)。我們的基礎(chǔ)網(wǎng)絡(luò)以每秒45幀的速度運(yùn)行,在Titan X GPU上沒有批處理,快速版本運(yùn)行速度超過150fps。這意味著我們可以在不到25毫秒的延遲內(nèi)實(shí)時(shí)處理流媒體視頻。此外,YOLO實(shí)現(xiàn)了其它實(shí)時(shí)系統(tǒng)兩倍以上的平均精度。關(guān)于我們的系統(tǒng)在網(wǎng)絡(luò)攝像頭上實(shí)時(shí)運(yùn)行的演示,請(qǐng)參閱我們的項(xiàng)目網(wǎng)頁:http://pjreddie.com/yolo/。

其次,YOLO在進(jìn)行預(yù)測(cè)時(shí),會(huì)對(duì)圖像進(jìn)行全面地推理。與基于滑動(dòng)窗口和區(qū)域提出的技術(shù)不同,YOLO在訓(xùn)練期間和測(cè)試時(shí)會(huì)看到整個(gè)圖像,所以它隱式地編碼了關(guān)于類的上下文信息以及它們的外觀??焖賀-CNN是一種頂級(jí)的檢測(cè)方法[14],因?yàn)樗床坏礁蟮纳舷挛模栽趫D像中會(huì)將背景塊誤檢為目標(biāo)。與快速R-CNN相比,YOLO的背景誤檢數(shù)量少了一半。

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

YOLO在精度上仍然落后于最先進(jìn)的檢測(cè)系統(tǒng)。雖然它可以快速識(shí)別圖像中的目標(biāo),但它仍在努力精確定位一些目標(biāo),尤其是小的目標(biāo)。我們?cè)趯?shí)驗(yàn)中會(huì)進(jìn)一步檢查這些權(quán)衡。

我們所有的訓(xùn)練和測(cè)試代碼都是開源的。各種預(yù)訓(xùn)練模型也都可以下載。

2.Unified Detection

我們將目標(biāo)檢測(cè)的單獨(dú)組件集成到單個(gè)神經(jīng)網(wǎng)絡(luò)中。我們的網(wǎng)絡(luò)使用整個(gè)圖像的特征來預(yù)測(cè)每個(gè)邊界框。它還可以同時(shí)預(yù)測(cè)一張圖像中的所有類別的所有邊界框。這意味著我們的網(wǎng)絡(luò)全面地推理整張圖像和圖像中的所有目標(biāo)。YOLO設(shè)計(jì)可實(shí)現(xiàn)端到端訓(xùn)練和實(shí)時(shí)的速度,同時(shí)保持較高的平均精度。

我們的系統(tǒng)將輸入圖像分成S×S的grid。如果一個(gè)目標(biāo)的中心落入一個(gè)grid cell中,該grid cell負(fù)責(zé)檢測(cè)該目標(biāo)。

每個(gè)網(wǎng)格單元預(yù)測(cè)這些盒子的B個(gè)boundingbox和置信度分?jǐn)?shù)。這些置信度分?jǐn)?shù)反映了該模型對(duì)box是否包含目標(biāo)的信心,以及它預(yù)測(cè)盒子的準(zhǔn)確程度。在形式上,我們將置信度定義為Pr(Object)?IOUpredtruth。如果該單元格中不存在目標(biāo),則置信度分?jǐn)?shù)應(yīng)為零。否則,我們希望置信度分?jǐn)?shù)等于預(yù)測(cè)框與真實(shí)值之間聯(lián)合部分的交集(IOU)。

每個(gè)邊界框包含5個(gè)預(yù)測(cè):x,y,w,h和置信度。(x,y)坐標(biāo)表示邊界框相對(duì)于網(wǎng)格單元邊界框的中心。寬度和高度是相對(duì)于整張圖像預(yù)測(cè)的。最后,置信度預(yù)測(cè)表示預(yù)測(cè)框與實(shí)際邊界框之間的IOU。

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

在測(cè)試時(shí),我們乘以條件類概率和單個(gè)盒子的置信度預(yù)測(cè),

它為我們提供了每個(gè)框特定類別的置信度分?jǐn)?shù)。這些分?jǐn)?shù)編碼了該類出現(xiàn)在框中的概率以及預(yù)測(cè)框擬合目標(biāo)的程度。

模型。 我們的系統(tǒng)將檢測(cè)建模為回歸問題。它將圖像分成S×SS×S的網(wǎng)格,并且每個(gè)網(wǎng)格單元預(yù)測(cè)B個(gè)邊界框,這些邊界框的置信度以及C個(gè)類別概率。這些預(yù)測(cè)被編碼為S×S×(B*5+C)的張量。


為了在Pascal VOC上評(píng)估YOLO,我們使用S=7,B=2。Pascal VOC有20個(gè)標(biāo)注類,所以C=20。我們最終的預(yù)測(cè)是7×7×30的張量。

2.1?Network Design

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

圖3:架構(gòu)。我們的檢測(cè)網(wǎng)絡(luò)有24個(gè)卷積層,其次是2個(gè)全連接層。交替1×1卷積層減少了前面層的特征空間。我們?cè)贗mageNet分類任務(wù)上以一半的分辨率(224×224的輸入圖像)預(yù)訓(xùn)練卷積層,然后將分辨率加倍來進(jìn)行檢測(cè)。

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

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

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

2.2 training

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

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

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

我們對(duì)最后一層使用線性激活函數(shù),所有其它層使用下面的漏泄修正線性激活:

我們優(yōu)化了模型輸出中的平方和誤差。我們使用平方和誤差,因?yàn)樗苋菀走M(jìn)行優(yōu)化,但是它并不完全符合我們最大化平均精度的目標(biāo)。分類誤差與定位誤差的權(quán)重是一樣的,這可能并不理想。另外,在每張圖像中,許多網(wǎng)格單元不包含任何對(duì)象。這將這些單元格的“置信度”分?jǐn)?shù)推向零,通常壓倒了包含目標(biāo)的單元格的梯度。這可能導(dǎo)致模型不穩(wěn)定,從而導(dǎo)致訓(xùn)練早期發(fā)散。

為了改善這一點(diǎn),我們?cè)黾恿诉吔缈蜃鴺?biāo)預(yù)測(cè)損失,并減少了不包含目標(biāo)邊界框的置信度預(yù)測(cè)損失。我們使用兩個(gè)參數(shù)λcoord和λnoobj來完成這個(gè)工作。我們?cè)O(shè)置λcoord=5和λnoobj=.5。

平方和誤差也可以在大盒子和小盒子中同樣加權(quán)誤差。我們的錯(cuò)誤指標(biāo)應(yīng)該反映出,大盒子小偏差的重要性不如小盒子小偏差的重要性。為了部分解決這個(gè)問題,我們直接預(yù)測(cè)邊界框?qū)挾群透叨鹊钠椒礁?,而不是寬度和高度?/p>

YOLO每個(gè)網(wǎng)格單元預(yù)測(cè)多個(gè)邊界框。在訓(xùn)練時(shí),每個(gè)目標(biāo)我們只需要一個(gè)邊界框預(yù)測(cè)器來負(fù)責(zé)。我們指定一個(gè)預(yù)測(cè)器“負(fù)責(zé)”根據(jù)哪個(gè)預(yù)測(cè)與真實(shí)值之間具有當(dāng)前最高的IOU來預(yù)測(cè)目標(biāo)。這導(dǎo)致邊界框預(yù)測(cè)器之間的專業(yè)化。每個(gè)預(yù)測(cè)器可以更好地預(yù)測(cè)特定大小,方向角,或目標(biāo)的類別,從而改善整體召回率。



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容