YOLO1:you only look once
注:本文為機(jī)翻,不提供源碼,代碼自己找。
摘要
我們提出了 YOLO,一種新的目標(biāo)檢測方法。 先前關(guān)于對(duì)象檢測的工作將分類器重新用于執(zhí)行檢測。 相反,我們將對(duì)象檢測框架為空間分離的邊界框和相關(guān)類概率的回歸問題。 單個(gè)神經(jīng)網(wǎng)絡(luò)在一次評(píng)估中直接從完整圖像預(yù)測邊界框和類別概率。 由于整個(gè)檢測管道是一個(gè)單一的網(wǎng)絡(luò),因此可以直接在檢測性能上進(jìn)行端到端的優(yōu)化。
我們的統(tǒng)一架構(gòu)非???。 我們的基礎(chǔ) YOLO 模型以每秒 45 幀的速度實(shí)時(shí)處理圖像。 該網(wǎng)絡(luò)的較小版本 Fast YOLO 每秒處理驚人的 155 幀,同時(shí)仍實(shí)現(xiàn)其他實(shí)時(shí)檢測器的兩倍 mAP。 與最先進(jìn)的檢測系統(tǒng)相比,YOLO 會(huì)產(chǎn)生更多的定位錯(cuò)誤,但不太可能預(yù)測背景上的誤報(bào)。 最后,YOLO 學(xué)習(xí)了對(duì)象的非常一般的表示。 當(dāng)從自然圖像推廣到藝術(shù)品等其他領(lǐng)域時(shí),它優(yōu)于其他檢測方法,包括 DPM 和 R-CNN。
1、簡介
人類瞥一眼圖像,立即知道圖像中有哪些物體,它們?cè)谀睦?,以及它們是如何相互作用的?/span> 人類的視覺系統(tǒng)快速而準(zhǔn)確,使我們能夠執(zhí)行復(fù)雜的任務(wù),例如在沒有意識(shí)的情況下駕駛。 快速、準(zhǔn)確的物體檢測算法將允許計(jì)算機(jī)在沒有專門傳感器的情況下駕駛汽車,使輔助設(shè)備能夠向人類用戶傳達(dá)實(shí)時(shí)場景信息,并釋放通用、響應(yīng)式機(jī)器人系統(tǒng)的潛力。
當(dāng)前的檢測系統(tǒng)重新利用分類器來執(zhí)行檢測。 為了檢測一個(gè)物體,這些系統(tǒng)對(duì)該物體進(jìn)行分類,并在測試圖像中的不同位置和尺度上對(duì)其進(jìn)行評(píng)估。 可變形零件模型 (DPM) 等系統(tǒng)使用滑動(dòng)窗口方法,其中分類器在整個(gè)圖像上的均勻間隔位置運(yùn)行 [10]。
R-CNN 等最近的方法使用區(qū)域提議方法首先在圖像中生成潛在的邊界框,然后在這些提議的框上運(yùn)行分類器。 分類后,后處理用于細(xì)化邊界框,消除重復(fù)檢測,并根據(jù)場景中的其他對(duì)象對(duì)框進(jìn)行重新評(píng)分[13]。 這些復(fù)雜的管道速度緩慢且難以優(yōu)化,因?yàn)楸仨殕为?dú)訓(xùn)練每個(gè)單獨(dú)的組件。
我們將目標(biāo)檢測重新定義為一個(gè)單一的回歸問題,直接從圖像像素到邊界框坐標(biāo)和類概率。 使用我們的系統(tǒng),您只需在圖像上查看一次 (YOLO) 即可預(yù)測存在哪些對(duì)象以及它們?cè)谀睦铩?/span>
YOLO 非常簡單:見圖 1。單個(gè)卷積網(wǎng)絡(luò)同時(shí)預(yù)測多個(gè)邊界框和這些框的類別概率。 YOLO 訓(xùn)練完整圖像并直接優(yōu)化檢測性能。與傳統(tǒng)的對(duì)象檢測方法相比,這種統(tǒng)一的模型有幾個(gè)好處。?
首先,YOLO 非???。由于我們將檢測視為回歸問題,因此我們不需要復(fù)雜的管道。我們只是在測試時(shí)在一張新圖像上運(yùn)行我們的神經(jīng)網(wǎng)絡(luò)來預(yù)測檢測。我們的基礎(chǔ)網(wǎng)絡(luò)以每秒 45 幀的速度運(yùn)行,在 Titan X GPU 上沒有批處理,快速版本以超過 150 fps 的速度運(yùn)行。這意味著我們可以實(shí)時(shí)處理流視頻,延遲小于 25 毫秒。此外,YOLO 的平均精度是其他實(shí)時(shí)系統(tǒng)的兩倍多。有關(guān)在網(wǎng)絡(luò)攝像頭上實(shí)時(shí)運(yùn)行的系統(tǒng)演示,請(qǐng)參閱我們的項(xiàng)目網(wǎng)頁:http://pjreddie.com/yolo/。?
其次,YOLO 在進(jìn)行預(yù)測時(shí)對(duì)圖像進(jìn)行全局推理。與基于滑動(dòng)窗口和區(qū)域提議的技術(shù)不同,YOLO 在訓(xùn)練和測試期間看到整個(gè)圖像,因此它隱式編碼了關(guān)于類及其外觀的上下文信息。 Fast R-CNN 是一種頂級(jí)檢測方法 [14],它會(huì)將圖像中的背景補(bǔ)丁誤認(rèn)為是對(duì)象,因?yàn)樗鼰o法看到更大的上下文。與 Fast R-CNN 相比,YOLO 產(chǎn)生的背景錯(cuò)誤數(shù)量不到一半。?
?第三,YOLO 學(xué)習(xí)對(duì)象的可泛化表示。在對(duì)自然圖像進(jìn)行訓(xùn)練并在藝術(shù)品上進(jìn)行測試時(shí),YOLO 大大優(yōu)于 DPM 和 R-CNN 等頂級(jí)檢測方法。由于 YOLO 具有高度泛化性,因此在應(yīng)用于新域或意外輸入時(shí)不太可能發(fā)生故障。 YOLO 在準(zhǔn)確度上仍然落后于最先進(jìn)的檢測系統(tǒng)。雖然它可以快速識(shí)別圖像中的物體,但它很難精確定位一些物體,尤其是小物體。
我們?cè)趯?shí)驗(yàn)中進(jìn)一步檢查了這些權(quán)衡。 我們所有的訓(xùn)練和測試代碼都是開源的。還可以下載各種預(yù)訓(xùn)練模型。

2. 統(tǒng)一檢測
我們將目標(biāo)檢測的獨(dú)立組件統(tǒng)一到單個(gè)神經(jīng)網(wǎng)絡(luò)中。我們的網(wǎng)絡(luò)使用整個(gè)圖像的特征來預(yù)測每個(gè)邊界框。它還同時(shí)預(yù)測圖像的所有類別中的所有邊界框。這意味著我們的網(wǎng)絡(luò)對(duì)完整圖像和圖像中的所有對(duì)象進(jìn)行全局推理。 YOLO 設(shè)計(jì)可實(shí)現(xiàn)端到端訓(xùn)練和實(shí)時(shí)速度,同時(shí)保持較高的平均精度。
我們的系統(tǒng)將輸入圖像劃分為 S x S 網(wǎng)格。如果一個(gè)對(duì)象的中心落入一個(gè)網(wǎng)格單元,則該網(wǎng)格單元負(fù)責(zé)檢測該對(duì)象。
每個(gè)網(wǎng)格單元預(yù)測 B 個(gè)邊界框和這些框的置信度分?jǐn)?shù)。這些置信度分?jǐn)?shù)反映了模型對(duì)盒子包含對(duì)象的信心以及它認(rèn)為盒子預(yù)測的準(zhǔn)確度。正式地,我們將置信度定義為 Pr(Object) x IOU。如果該單元格中不存在對(duì)象,則置信度分?jǐn)?shù)應(yīng)為零。否則,我們希望置信度分?jǐn)?shù)等于預(yù)測框和地面實(shí)況之間的交集(IOU)。
每個(gè)邊界框由 5 個(gè)預(yù)測組成:x、y、w、h 和置信度。 (x, y) 坐標(biāo)表示相對(duì)于網(wǎng)格單元邊界的框的中心。相對(duì)于整個(gè)圖像預(yù)測寬度和高度。最后,置信度預(yù)測表示預(yù)測框與任何地面實(shí)況框之間的 IOU。
每個(gè)網(wǎng)格單元還預(yù)測 C 個(gè)條件類概率,Pr(Classi, Object)。這些概率取決于包含對(duì)象的網(wǎng)格單元。我們只預(yù)測每個(gè)網(wǎng)格單元的一組類別概率,而不考慮框 B 的數(shù)量。
在測試時(shí),我們將條件類概率和單個(gè)框置信度預(yù)測相乘,從而為每個(gè)框提供特定于類的置信度分?jǐn)?shù)。這些分?jǐn)?shù)既編碼了該類出現(xiàn)在框中的概率,也編碼了預(yù)測的框與對(duì)象的匹配程度。


S * S * (B * 5 + C) tensor.
為了在 PASCAL VOC 上評(píng)估 YOLO,我們使用 S = 7,B = 2。PASCAL VOC 有 20 個(gè)標(biāo)記類,因此 C = 20。我們的最終預(yù)測是 7 * 7 * 30 的張量。
2.1?網(wǎng)絡(luò)設(shè)計(jì)
我們將該模型實(shí)現(xiàn)為卷積神經(jīng)網(wǎng)絡(luò),并在 PASCAL VOC 檢測數(shù)據(jù)集 [9] 上對(duì)其進(jìn)行評(píng)估。網(wǎng)絡(luò)的初始卷積層從圖像中提取特征,而全連接層預(yù)測輸出概率和坐標(biāo)。
我們的網(wǎng)絡(luò)架構(gòu)受到用于圖像分類的 GoogLeNet 模型的啟發(fā) [34]。我們的網(wǎng)絡(luò)有 24 個(gè)卷積層,后跟 2 個(gè)全連接層。我們沒有使用 GoogLeNet 使用的初始模塊,而是簡單地使用 1*1 縮減層,然后使用 3*3 卷積層,類似于 Lin 等人 [22]。完整的網(wǎng)絡(luò)如圖 3 所示。
我們還訓(xùn)練了一個(gè)快速版本的 YOLO,旨在突破快速目標(biāo)檢測的界限。 Fast YOLO 使用的神經(jīng)網(wǎng)絡(luò)具有更少的卷積層(9 個(gè)而不是 24 個(gè))和這些層中更少的過濾器。除了網(wǎng)絡(luò)的大小之外,YOLO 和 Fast YOLO 之間的所有訓(xùn)練和測試參數(shù)都是相同的。
我們網(wǎng)絡(luò)的最終輸出是 7 * 7 * 30 的預(yù)測張量。

2.2?訓(xùn)練
我們?cè)?ImageNet 1000 類競賽數(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)證集上實(shí)現(xiàn)了 88% 的單次裁剪 top-5 準(zhǔn)確率,與 Caffe 的 Model Zoo [24] 中的 GoogLeNet 模型相當(dāng)。我們使用 Darknet 框架進(jìn)行所有訓(xùn)練和推理 [26]。
然后我們將模型轉(zhuǎn)換為執(zhí)行檢測。任等人。表明將卷積層和連接層添加到預(yù)訓(xùn)練網(wǎng)絡(luò)可以提高性能 [29]。按照他們的示例,我們添加了四個(gè)卷積層和兩個(gè)具有隨機(jī)初始化權(quán)重的全連接層。檢測通常需要細(xì)粒度的視覺信息,因此我們將網(wǎng)絡(luò)的輸入分辨率從 224 * 224 提高到 448 * 448。
我們的最后一層預(yù)測類概率和邊界框坐標(biāo)。我們通過圖像的寬度和高度對(duì)邊界框的寬度和高度進(jìn)行歸一化,使其介于 0 和 1 之間。我們將邊界框的 x 和 y 坐標(biāo)參數(shù)化為特定網(wǎng)格單元位置的偏移量,因此它們也介于 0 和 1 之間.
我們對(duì)最后一層使用線性激活函數(shù),所有其他層使用以下泄漏校正線性激活。
我們針對(duì)模型輸出中的平方和誤差進(jìn)行了優(yōu)化。我們使用平方和誤差是因?yàn)樗苋菀變?yōu)化,但它并不完全符合我們最大化平均精度的目標(biāo)。它將定位誤差與分類誤差同等加權(quán),這可能并不理想。此外,在每個(gè)圖像中,許多網(wǎng)格單元不包含任何對(duì)象。這會(huì)將這些細(xì)胞的“置信度”分?jǐn)?shù)推向零,通常會(huì)壓倒確實(shí)包含物體的細(xì)胞的梯度。這可能導(dǎo)致模型不穩(wěn)定,導(dǎo)致訓(xùn)練早期出現(xiàn)分歧。
為了解決這個(gè)問題,我們?cè)黾恿诉吔缈蜃鴺?biāo)預(yù)測的損失,并減少了不包含對(duì)象的框的置信度預(yù)測的損失。我們?cè)O(shè)置了 5。
平方和誤差也同樣加權(quán)大框和小框的錯(cuò)誤。我們的錯(cuò)誤度量應(yīng)該反映大盒子中的小偏差比小盒子中的小偏差更重要。為了部分解決這個(gè)問題,我們直接預(yù)測邊界框?qū)挾群透叨鹊钠椒礁?,而不是直接預(yù)測寬度和高度。
YOLO 預(yù)測每個(gè)網(wǎng)格單元的多個(gè)邊界框。在訓(xùn)練時(shí),我們只希望一個(gè)邊界框預(yù)測器負(fù)責(zé)每個(gè)對(duì)象。我們分配一個(gè)預(yù)測器來“負(fù)責(zé)”預(yù)測一個(gè)對(duì)象,根據(jù)該預(yù)測與基本事實(shí)的當(dāng)前 IOU 最高。這導(dǎo)致邊界框預(yù)測器之間的專業(yè)化。每個(gè)預(yù)測器都能更好地預(yù)測某些尺寸、縱橫比或?qū)ο箢悇e,從而提高整體召回率。
在訓(xùn)練期間,我們優(yōu)化了以下多部分損失函數(shù):

請(qǐng)注意,損失函數(shù)僅在該網(wǎng)格單元中存在對(duì)象時(shí)才懲罰分類錯(cuò)誤(因此前面討論了條件類概率)。如果該預(yù)測器對(duì)地面實(shí)況框“負(fù)責(zé)”(即具有該網(wǎng)格單元中任何預(yù)測器的最高 IOU),它也只會(huì)懲罰邊界框坐標(biāo)錯(cuò)誤。
我們?cè)?PASCAL VOC 2007 和 2012 的訓(xùn)練和驗(yàn)證數(shù)據(jù)集上對(duì)網(wǎng)絡(luò)進(jìn)行了大約 135 個(gè) epoch 的訓(xùn)練。在 2012 年進(jìn)行測試時(shí),我們還包括 VOC 2007 測試數(shù)據(jù)進(jìn)行訓(xùn)練。在整個(gè)訓(xùn)練過程中,我們使用 64 的批大小、0:9 的動(dòng)量和 0:0005 的衰減。
我們的學(xué)習(xí)率時(shí)間表如下:對(duì)于第一個(gè) epoch,我們慢慢地將學(xué)習(xí)率從 10^-3 提高到 10^-2。如果我們從高學(xué)習(xí)率開始,我們的模型通常會(huì)由于不穩(wěn)定的梯度而發(fā)散。我們繼續(xù)用 10^-2 訓(xùn)練 75 個(gè) epoch,然后 10^-3 訓(xùn)練 30 個(gè) epoch,最后 10^-4 訓(xùn)練 30 個(gè) epoch。
為了避免過度擬合,我們使用 dropout 和廣泛的數(shù)據(jù)增強(qiáng)。在第一個(gè)連接層之后,速率 = .5 的 dropout 層可防止層之間的共同適應(yīng) [18]。對(duì)于數(shù)據(jù)增強(qiáng),我們引入了高達(dá)原始圖像大小 20% 的隨機(jī)縮放和平移。我們還在 HSV 顏色空間中將圖像的曝光和飽和度隨機(jī)調(diào)整高達(dá) 1:5。
2.3?推理
就像在訓(xùn)練中一樣,預(yù)測測試圖像的檢測只需要一次網(wǎng)絡(luò)評(píng)估。 在 PASCAL VOC 上,網(wǎng)絡(luò)預(yù)測每個(gè)圖像的 98 個(gè)邊界框和每個(gè)框的類別概率。 YOLO 在測試時(shí)非??欤?yàn)樗恍枰淮尉W(wǎng)絡(luò)評(píng)估,這與基于分類器的方法不同。
網(wǎng)格設(shè)計(jì)在邊界框預(yù)測中強(qiáng)制執(zhí)行空間多樣性。 通常很清楚一個(gè)對(duì)象落入哪個(gè)網(wǎng)格單元,并且網(wǎng)絡(luò)只為每個(gè)對(duì)象預(yù)測一個(gè)框。 但是,一些大物體或靠近多個(gè)單元格邊界的物體可以被多個(gè)單元格很好地定位。 可以使用非最大抑制來修復(fù)這些多重檢測。 雖然對(duì) R-CNN 或 DPM 的性能并不重要,但非最大抑制在 mAP 中增加了 2-3%。
2.4 YOLO 的局限性
YOLO 對(duì)邊界框預(yù)測施加了很強(qiáng)的空間約束,因?yàn)槊總€(gè)網(wǎng)格單元只能預(yù)測兩個(gè)框并且只能有一個(gè)類別。 這種空間約束限制了我們的模型可以預(yù)測的附近物體的數(shù)量。 我們的模型與成群出現(xiàn)的小物體作斗爭,例如成群的鳥。
由于我們的模型學(xué)習(xí)從數(shù)據(jù)中預(yù)測邊界框,它很難泛化到具有新的或不尋常的縱橫比或配置的對(duì)象。 我們的模型還使用相對(duì)粗略的特征來預(yù)測邊界框,因?yàn)槲覀兊募軜?gòu)具有來自輸入圖像的多個(gè)下采樣層。
最后,當(dāng)我們訓(xùn)練一個(gè)近似于檢測性能的損失函數(shù)時(shí),我們的損失函數(shù)對(duì)小邊界框和大邊界框的錯(cuò)誤處理相同。 大盒子中的小錯(cuò)誤通常是良性的,但小盒子中的小錯(cuò)誤對(duì) IOU 的影響要大得多。 我們的主要錯(cuò)誤來源是不正確的本地化。
3. 與其他檢測系統(tǒng)的比較
目標(biāo)檢測是計(jì)算機(jī)視覺的核心問題。檢測管道通常首先從輸入圖像中提取一組魯棒特征(Haar [25]、SIFT [23]、HOG [4]、卷積特征 [6])。然后,分類器 [36, 21, 13, 10] 或定位器 [1, 32] 用于識(shí)別特征空間中的對(duì)象。這些分類器或定位器在整個(gè)圖像上以滑動(dòng)窗口方式運(yùn)行,或者在圖像中的某些區(qū)域子集上運(yùn)行 [35,15,39]。我們將 YOLO 檢測系統(tǒng)與幾個(gè)頂級(jí)檢測框架進(jìn)行了比較,突出了關(guān)鍵的異同。
可變形零件模型。可變形零件模型 (DPM) 使用滑動(dòng)窗口方法進(jìn)行對(duì)象檢測 [10]。 DPM 使用不相交的管道來提取靜態(tài)特征、分類區(qū)域、預(yù)測高分區(qū)域的邊界框等。我們的系統(tǒng)用單個(gè)卷積神經(jīng)網(wǎng)絡(luò)替換所有這些不同的部分。該網(wǎng)絡(luò)同時(shí)執(zhí)行特征提取、邊界框預(yù)測、非極大值抑制和上下文推理。網(wǎng)絡(luò)不是靜態(tài)特征,而是在線訓(xùn)練特征并針對(duì)檢測任務(wù)對(duì)其進(jìn)行優(yōu)化。我們的統(tǒng)一架構(gòu)帶來了比 DPM 更快、更準(zhǔn)確的模型。
R-CNN。 R-CNN 及其變體使用區(qū)域提議而不是滑動(dòng)窗口來查找圖像中的對(duì)象。選擇性搜索 [35] 生成潛在的邊界框,卷積網(wǎng)絡(luò)提取特征,SVM 對(duì)框進(jìn)行評(píng)分,線性模型調(diào)整邊界框,非最大抑制消除重復(fù)檢測。這個(gè)復(fù)雜管道的每個(gè)階段都必須獨(dú)立精確地調(diào)整,并且生成的系統(tǒng)非常慢,在測試時(shí)每張圖像需要超過 40 秒 [14]。
YOLO 與 R-CNN 有一些相似之處。每個(gè)網(wǎng)格單元提出潛在的邊界框并使用卷積特征對(duì)這些框進(jìn)行評(píng)分。然而,我們的系統(tǒng)對(duì)網(wǎng)格單元提議施加了空間限制,這有助于減輕對(duì)同一對(duì)象的多次檢測。我們的系統(tǒng)還提出了更少的邊界框,每張圖像只有 98 個(gè),而 Selective Search 大約有 2000 個(gè)。最后,我們的系統(tǒng)將這些單獨(dú)的組件組合成一個(gè)單一的、聯(lián)合優(yōu)化的模型。
其他快速檢測器 Fast and Faster R-CNN 專注于通過共享計(jì)算和使用神經(jīng)網(wǎng)絡(luò)來提出區(qū)域而不是選擇性搜索來加速 R-CNN 框架 [14] [28]。雖然它們?cè)?R-CNN 上提供了速度和準(zhǔn)確性的改進(jìn),但兩者仍然沒有達(dá)到實(shí)時(shí)性能。
許多研究工作集中在加速 DPM 管道 [31] [38] [5]。它們加速 HOG 計(jì)算、使用級(jí)聯(lián)并將計(jì)算推送到 GPU。然而,只有 30Hz DPM [31] 真正實(shí)時(shí)運(yùn)行。
YOLO 沒有嘗試優(yōu)化大型檢測管道的各個(gè)組件,而是完全拋棄了管道,并且設(shè)計(jì)速度很快。
像人臉或人這樣的單一類別的檢測器可以高度優(yōu)化,因?yàn)樗鼈儽仨毺幚淼淖兓俚枚?[37]。 YOLO 是一種通用檢測器,可以學(xué)習(xí)同時(shí)檢測各種物體。
深度多框。與 R-CNN 不同,Szegedy 等人。訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)來預(yù)測感興趣區(qū)域 [8],而不是使用選擇性搜索。 MultiBox 還可以通過將置信度預(yù)測替換為單個(gè)類別預(yù)測來執(zhí)行單個(gè)對(duì)象檢測。然而,MultiBox 不能執(zhí)行一般的對(duì)象檢測,并且仍然只是更大檢測管道中的一部分,需要進(jìn)一步的圖像塊分類。 YOLO 和 MultiBox 都使用卷積網(wǎng)絡(luò)來預(yù)測圖像中的邊界框,但 YOLO 是一個(gè)完整的檢測系統(tǒng)。
OverFeat。 Sermanet 等人。訓(xùn)練一個(gè)卷積神經(jīng)網(wǎng)絡(luò)來執(zhí)行定位并調(diào)整該定位器來執(zhí)行檢測[32]。 OverFeat 有效地執(zhí)行滑動(dòng)窗口檢測,但它仍然是一個(gè)不相交的系統(tǒng)。 Over-Feat 優(yōu)化定位,而不是檢測性能。與 DPM 一樣,定位器在進(jìn)行預(yù)測時(shí)只看到本地信息。 OverFeat 無法推理全局上下文,因此需要大量的后處理來產(chǎn)生連貫的檢測。
多抓。我們的工作在設(shè)計(jì)上與 Redmon 等人 [27] 的抓握檢測工作相似。我們的邊界框預(yù)測網(wǎng)格方法基于用于回歸到抓取的 MultiGrasp 系統(tǒng)。然而,抓取檢測比物體檢測要簡單得多。 MultiGrasp 只需要為包含一個(gè)對(duì)象的圖像預(yù)測單個(gè)可抓取區(qū)域。它不必估計(jì)對(duì)象的大小、位置或邊界或預(yù)測它的類別,只需找到適合抓取的區(qū)域。 YOLO 預(yù)測圖像中多個(gè)類別的多個(gè)對(duì)象的邊界框和類別概率。
4. 實(shí)驗(yàn)
首先,我們?cè)?PASCAL VOC 2007 上將 YOLO 與其他實(shí)時(shí)檢測系統(tǒng)進(jìn)行比較。為了了解 YOLO 和 R-CNN 變體之間的差異,我們探討了 YOLO 和 Fast R-CNN 的 VOC 2007 上的錯(cuò)誤,這是性能最高的版本之一 R-CNN [14]。 基于不同的錯(cuò)誤配置文件,我們表明 YOLO 可用于對(duì) Fast R-CNN 檢測進(jìn)行重新評(píng)分并減少背景誤報(bào)的錯(cuò)誤,從而顯著提升性能。 我們還展示了 VOC 2012 結(jié)果,并將 mAP 與當(dāng)前最先進(jìn)的方法進(jìn)行了比較。 最后,我們展示了 YOLO 在兩個(gè)藝術(shù)品數(shù)據(jù)集上比其他檢測器更好地泛化到新領(lǐng)域。
4.1 與其他實(shí)時(shí)系統(tǒng)的比較
目標(biāo)檢測方面的許多研究工作都集中在快速實(shí)現(xiàn)標(biāo)準(zhǔn)檢測流程。 [5] [38] [31] [14] [17] [28] 但是,只有 Sadeghi 等人。實(shí)際上產(chǎn)生了一個(gè)實(shí)時(shí)運(yùn)行的檢測系統(tǒng)(每秒 30 幀或更好)[31]。我們將 YOLO 與他們以 30Hz 或 100Hz 運(yùn)行的 DPM 的 GPU 實(shí)現(xiàn)進(jìn)行比較。雖然其他努力沒有達(dá)到實(shí)時(shí)里程碑,但我們還比較了它們的相對(duì) mAP 和速度,以檢查對(duì)象檢測系統(tǒng)中可用的準(zhǔn)確性-性能權(quán)衡。
Fast YOLO 是 PASCAL 上最快的目標(biāo)檢測方法;據(jù)我們所知,它是現(xiàn)存最快的物體檢測器。憑借 52:7% 的 mAP,它的準(zhǔn)確度是之前實(shí)時(shí)檢測工作的兩倍多。 YOLO 將 mAP 推至 63:4%,同時(shí)仍保持實(shí)時(shí)性能。
我們還使用 VGG-16 訓(xùn)練 YOLO。這個(gè)模型比 YOLO 更準(zhǔn)確,但也明顯慢得多。它對(duì)于與依賴 VGG-16 的其他檢測系統(tǒng)進(jìn)行比較很有用,但由于它比實(shí)時(shí)慢,因此本文的其余部分將重點(diǎn)放在我們更快的模型上。
最快的 DPM 在不犧牲太多 mAP 的情況下有效地加速了 DPM,但它仍然錯(cuò)過了 2 倍的實(shí)時(shí)性能 [38]。與神經(jīng)網(wǎng)絡(luò)方法相比,它還受到 DPM 相對(duì)較低的檢測精度的限制。
R-CNN 減去 R 用靜態(tài)邊界框提議 [20] 替換選擇性搜索。雖然它比 R-CNN 快得多,但它仍然缺乏實(shí)時(shí)性,并且由于沒有好的建議而嚴(yán)重影響了準(zhǔn)確性。
Fast R-CNN 加快了 R-CNN 的分類階段,但它仍然依賴于選擇性搜索,每張圖像可能需要大約 2 秒來生成邊界框建議。因此它具有高 mAP,但在 0:5 fps 時(shí)仍遠(yuǎn)非實(shí)時(shí)。
最近的 Faster R-CNN 用神經(jīng)網(wǎng)絡(luò)代替選擇性搜索來提出邊界框,類似于 Szegedy 等人。 [8] 在我們的測試中,他們最準(zhǔn)確的模型達(dá)到 7 fps,而更小、不太準(zhǔn)確的模型以 18 fps 運(yùn)行。 Faster R-CNN 的 VGG-16 版本比 YOLO 高 10 mAP,但也比 YOLO 慢 6 倍。 Zeiler-Fergus Faster R-CNN 僅比 YOLO 慢 2.5 倍,但也不太準(zhǔn)確。

4.2 VOC 2007 誤差分析
為了進(jìn)一步檢查 YOLO 和最先進(jìn)檢測器之間的差異,我們查看了 VOC 2007 上結(jié)果的詳細(xì)分類。我們將 YOLO 與 Fast RCNN 進(jìn)行比較,因?yàn)?Fast R-CNN 是 PASCAL 上性能最高的檢測器之一,并且它的檢測結(jié)果是公開的。
我們使用 Hoiem 等人的方法和工具。 [19] 對(duì)于測試時(shí)的每個(gè)類別,我們查看該類別的前 N 個(gè)預(yù)測。每個(gè)預(yù)測要么是正確的,要么根據(jù)錯(cuò)誤類型進(jìn)行分類:
正確:正確的類和 IOU > .5?
本地化:正確的類,.1 < IOU < .5?
相似:類相似,IOU > .1?
其他:類錯(cuò)誤,IOU > .1?
背景:任何對(duì)象的 IOU < .1
圖 4 顯示了所有 20 個(gè)類的平均每個(gè)錯(cuò)誤類型的細(xì)分。
YOLO 努力正確定位對(duì)象。定位錯(cuò)誤占 YOLO 錯(cuò)誤的比例比所有其他來源的總和還要多。 Fast R-CNN 的定位錯(cuò)誤少得多,但背景錯(cuò)誤多得多。 13.6% 的頂級(jí)檢測是不包含任何對(duì)象的誤報(bào)。 Fast R-CNN 預(yù)測背景檢測的可能性幾乎是 YOLO 的 3 倍。

4.3 結(jié)合Fast RCNN和YOLO
YOLO 的背景錯(cuò)誤比 Fast R-CNN 少得多。通過使用 YOLO 消除 Fast R-CNN 的背景檢測,我們的性能得到了顯著提升。對(duì)于 R-CNN 預(yù)測的每個(gè)邊界框,我們檢查 YOLO 是否預(yù)測了類似的框。如果是這樣,我們會(huì)根據(jù) YOLO 預(yù)測的概率和兩個(gè)框之間的重疊來提高該預(yù)測。

最好的 Fast R-CNN 模型在 VOC 2007 測試集上實(shí)現(xiàn)了 71.8% 的 mAP。與 YOLO 結(jié)合使用時(shí),其 mAP 提升 3.2% 至 75.0%。我們還嘗試將頂級(jí) Fast R-CNN 模型與其他幾個(gè)版本的 Fast R-CNN 結(jié)合起來。這些合奏產(chǎn)生了 0.3% 到 0.6% 之間的 mAP 小幅增長,詳見表 2。
YOLO 的提升不僅僅是模型集成的副產(chǎn)品,因?yàn)榻M合不同版本的 Fast R-CNN 幾乎沒有什么好處。相反,正是因?yàn)?YOLO 在測試時(shí)犯了不同類型的錯(cuò)誤,它才如此有效地提升了 Fast R-CNN 的性能。
不幸的是,這種組合并沒有從 YOLO 的速度中受益,因?yàn)槲覀兎謩e運(yùn)行每個(gè)模型然后組合結(jié)果。然而,由于 YOLO 速度如此之快,與 Fast R-CNN 相比,它不會(huì)增加任何顯著的計(jì)算時(shí)間。

4.4 VOC 2012 年結(jié)果
在 VOC 2012 測試集上,YOLO 的 mAP 得分為 57.9%。 這低于當(dāng)前最先進(jìn)的水平,更接近于使用 VGG-16 的原始 R-CNN,見表 3。與最接近的競爭對(duì)手相比,我們的系統(tǒng)在處理小物體時(shí)遇到了困難。 在瓶子、羊和電視/顯示器等類別上,YOLO 的得分比 R-CNN 或 Feature Edit 低 8-10%。 然而,在 cat 和 train 等其他類別上,YOLO 實(shí)現(xiàn)了更高的性能。
我們組合的 Fast R-CNN + YOLO 模型是性能最高的檢測方法之一。 Fast R-CNN 通過與 YOLO 的結(jié)合獲得了 2.3% 的改進(jìn),在公共排行榜上提升了 5 位。
4.5 泛化性:藝術(shù)品中的人物檢測
用于對(duì)象檢測的學(xué)術(shù)數(shù)據(jù)集從同一分布中提取訓(xùn)練和測試數(shù)據(jù)。在現(xiàn)實(shí)世界的應(yīng)用程序中,很難預(yù)測所有可能的用例,并且測試數(shù)據(jù)可能與系統(tǒng)之前看到的不同 [3]。我們將 YOLO 與 Picasso 數(shù)據(jù)集 [12] 和 People-Art 數(shù)據(jù)集 [3] 上的其他檢測系統(tǒng)進(jìn)行比較,這兩個(gè)數(shù)據(jù)集用于測試藝術(shù)品上的人物檢測。
圖 5 顯示了 YOLO 與其他檢測方法的性能對(duì)比。作為參考,我們?cè)谒心P蛢H在 VOC 2007 數(shù)據(jù)上訓(xùn)練的人身上給出了 VOC 2007 檢測 AP。 Picasso 模型使用 VOC 2012 進(jìn)行訓(xùn)練,而 People-Art 模型使用 VOC 2010 進(jìn)行訓(xùn)練。
R-CNN 在 VOC 2007 上具有很高的 AP。但是,當(dāng)應(yīng)用于藝術(shù)品時(shí),R-CNN 會(huì)大幅下降。 R-CNN 對(duì)邊界框建議使用選擇性搜索,該建議針對(duì)自然圖像進(jìn)行了調(diào)整。 R-CNN 中的分類器步驟只看到小區(qū)域,需要好的建議。

DPM 在應(yīng)用于藝術(shù)品時(shí)可以很好地保持其 AP。先前的工作理論上認(rèn)為 DPM 表現(xiàn)良好,因?yàn)樗哂袑?duì)象形狀和布局的強(qiáng)大空間模型。雖然 DPM 不會(huì)像 R-CNN 那樣退化,但它是從較低的 AP 開始的。

YOLO 在 VOC 2007 上具有良好的性能,并且在應(yīng)用于藝術(shù)品時(shí),其 AP 降級(jí)低于其他方法。與 DPM 一樣,YOLO 對(duì)對(duì)象的大小和形狀以及對(duì)象之間的關(guān)系以及對(duì)象通常出現(xiàn)的位置進(jìn)行建模。藝術(shù)品和自然圖像在像素級(jí)別上非常不同,但它們?cè)趯?duì)象的大小和形狀方面相似,因此 YOLO 仍然可以預(yù)測良好的邊界框和檢測。
5. 野外實(shí)時(shí)檢測
YOLO 是一種快速、準(zhǔn)確的物體檢測器,非常適合計(jì)算機(jī)視覺應(yīng)用。 我們將 YOLO 連接到網(wǎng)絡(luò)攝像頭并驗(yàn)證它是否保持實(shí)時(shí)性能,包括從攝像頭獲取圖像和顯示檢測結(jié)果的時(shí)間。
由此產(chǎn)生的系統(tǒng)是互動(dòng)的和引人入勝的。 雖然 YOLO 單獨(dú)處理圖像,但當(dāng)連接到網(wǎng)絡(luò)攝像頭時(shí),它的功能就像一個(gè)跟蹤系統(tǒng),在物體移動(dòng)和外觀變化時(shí)檢測它們。 該系統(tǒng)的演示和源代碼可以在我們的項(xiàng)目網(wǎng)站上找到:http://pjreddie.com/yolo/。
6. 結(jié)論
我們介紹了 YOLO,一個(gè)統(tǒng)一的目標(biāo)檢測模型。 我們的模型構(gòu)造簡單,可以直接在完整圖像上進(jìn)行訓(xùn)練。 與基于分類器的方法不同,YOLO 是在與檢測性能直接對(duì)應(yīng)的損失函數(shù)上訓(xùn)練的,整個(gè)模型是聯(lián)合訓(xùn)練的。
Fast YOLO 是文獻(xiàn)中最快的通用目標(biāo)檢測器,YOLO 推動(dòng)了實(shí)時(shí)目標(biāo)檢測的最新技術(shù)。 YOLO 還可以很好地推廣到新領(lǐng)域,使其成為依賴快速、穩(wěn)健的對(duì)象檢測的應(yīng)用程序的理想選擇。