1. 目標(biāo)檢測(cè)中的YOLO算法詳解

        共 8793字,需瀏覽 18分鐘

         ·

        2022-01-01 09:02

        來自于點(diǎn)擊下方卡片,關(guān)注“新機(jī)器視覺”公眾號(hào)

        視覺/圖像重磅干貨,第一時(shí)間送達(dá)

        來源 |?信息網(wǎng)絡(luò)工程研究中心

        YOLO的全拼是You Only Look Once,顧名思義就是只看一次,把目標(biāo)區(qū)域預(yù)測(cè)和目標(biāo)類別預(yù)測(cè)合二為一,作者將目標(biāo)檢測(cè)任務(wù)看作目標(biāo)區(qū)域預(yù)測(cè)和類別預(yù)測(cè)的回歸問題。該方法采用單個(gè)神經(jīng)網(wǎng)絡(luò)直接預(yù)測(cè)物品邊界和類別概率,實(shí)現(xiàn)端到端的物品檢測(cè)。因此識(shí)別性能有了很大提升,達(dá)到每秒45幀,而在快速YOLO(Fast YOLO,卷積層更少)中,可以達(dá)到每秒155幀。


        當(dāng)前最好系統(tǒng)相比,YOLO目標(biāo)區(qū)域定位誤差更大,但是背景預(yù)測(cè)的假陽性優(yōu)于當(dāng)前最好的方法。


        一、引言


        人類瞥了一眼圖像,立即知道圖像中的物體,它們?cè)谀睦镆约八鼈內(nèi)绾蜗嗷プ饔?。人類視覺系統(tǒng)快速而準(zhǔn)確,使我們能夠執(zhí)行復(fù)雜的任務(wù),比如汽車駕駛。


        傳統(tǒng)的目標(biāo)檢測(cè)系統(tǒng)利用分類器來執(zhí)行檢測(cè)。為了檢測(cè)對(duì)象,這些系統(tǒng)在測(cè)試圖片的不同位置不同尺寸大小采用分類器對(duì)其進(jìn)行評(píng)估。如目標(biāo)檢測(cè)系統(tǒng)采用deformable parts models (DPM)方法,通過滑動(dòng)框方法提出目標(biāo)區(qū)域,然后采用分類器來實(shí)現(xiàn)識(shí)別。近期的R-CNN類方法采用region proposal methods,首先生成潛在的bounding boxes,然后采用分類器識(shí)別這些bounding boxes區(qū)域。最后通過post-processing來去除重復(fù)bounding boxes來進(jìn)行優(yōu)化。這類方法流程復(fù)雜,存在速度慢和訓(xùn)練困難的問題。


        我們將目標(biāo)檢測(cè)問題轉(zhuǎn)換為直接從圖像中提取bounding boxes和類別概率的單個(gè)回歸問題,只需一眼(you only look once,YOLO)即可檢測(cè)目標(biāo)類別和位置。


        YOLO簡(jiǎn)潔明了:見下圖。YOLO算法采用單個(gè)卷積神經(jīng)網(wǎng)絡(luò)來預(yù)測(cè)多個(gè)bounding boxes和類別概率。與傳統(tǒng)的物體檢測(cè)方法相比,這種統(tǒng)一模型具有以下優(yōu)點(diǎn):

        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預(yù)測(cè)流程簡(jiǎn)單,速度很快。我們的基礎(chǔ)版在Titan X GPU上可以達(dá)到45幀/s;快速版可以達(dá)到150幀/s。因此,YOLO可以實(shí)現(xiàn)實(shí)時(shí)檢測(cè)。

        • YOLO采用全圖信息來進(jìn)行預(yù)測(cè)。與滑動(dòng)窗口方法和region proposal-based方法不同,YOLO在訓(xùn)練和預(yù)測(cè)過程中可以利用全圖信息。Fast R-CNN檢測(cè)方法會(huì)錯(cuò)誤的將背景中的斑塊檢測(cè)為目標(biāo),原因在于Fast R-CNN在檢測(cè)中無法看到全局圖像。相對(duì)于Fast R-CNN,YOLO背景預(yù)測(cè)錯(cuò)誤率低一半。

        • YOLO可以學(xué)習(xí)到目標(biāo)的概括信息(generalizable representation),具有一定普適性。我們采用自然圖片訓(xùn)練YOLO,然后采用藝術(shù)圖像來預(yù)測(cè)。YOLO比其它目標(biāo)檢測(cè)方法(DPM和R-CNN)準(zhǔn)確率高很多。

        在準(zhǔn)確性上,YOLO算法仍然落后于最先進(jìn)的檢測(cè)系統(tǒng)。雖然它可以快速識(shí)別圖像中的對(duì)象,但它很難精確定位某些對(duì)象,特別是小對(duì)象。


        二 統(tǒng)一檢測(cè)(Unified Detection)


        我們將目標(biāo)檢測(cè)統(tǒng)一到一個(gè)神經(jīng)網(wǎng)絡(luò)。我們的網(wǎng)絡(luò)使用整個(gè)圖像中的特征來預(yù)測(cè)每個(gè)邊界框。它也是同時(shí)預(yù)測(cè)圖像的所有類的所有邊界框。這意味著我們的網(wǎng)絡(luò)學(xué)習(xí)到的完整圖像和圖中所有的對(duì)象.YOLO設(shè)計(jì)可實(shí)現(xiàn)端到端訓(xùn)練和實(shí)時(shí)的速度,同時(shí)保持較高的平均精度。


        • YOLO首先將圖像分為S×S的格子。如果一個(gè)目標(biāo)的中心落入格子,該格子就負(fù)責(zé)檢測(cè)該目標(biāo)。每一個(gè)網(wǎng)格中預(yù)測(cè)B個(gè)Bounding box 和置信值(confidence score)。這些置信度分?jǐn)?shù)反映了該模型對(duì)盒子是否包含目標(biāo)的信心,以及它預(yù)測(cè)盒子的準(zhǔn)確程度。然后,我們定義置信值為:

        ??

        如果沒有目標(biāo),置信值為零。另外,我們希望置信度分?jǐn)?shù)等于預(yù)測(cè)框與真實(shí)值之間聯(lián)合部分的交集(IOU)。


        • 每一個(gè)bounding box包含5個(gè)值:x,y,w,h和confidence。(x,y)坐標(biāo)表示邊界框相對(duì)于網(wǎng)格單元邊界框的中心。寬度和高度是相對(duì)于整張圖像預(yù)測(cè)的。confidence表示預(yù)測(cè)的box與實(shí)際邊界框之間的IOU。每個(gè)網(wǎng)格單元還預(yù)測(cè)C個(gè)C" style="outline: 0px;">條件類別概率:

        這些概率是以網(wǎng)格包含目標(biāo)為條件的,每個(gè)網(wǎng)格單元我們只預(yù)測(cè)的一組類別概率,而不管邊界框的的數(shù)量B時(shí)B" style="outline: 0px;">多少。

        B" style="outline: 0px;">

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

        這些分?jǐn)?shù)編碼了該類出現(xiàn)在框中的概率以及預(yù)測(cè)框擬合目標(biāo)的程度。。在PASCAL VOC數(shù)據(jù)集上評(píng)價(jià)時(shí),我們采用S=7,B=2,C=20(該數(shù)據(jù)集包含20個(gè)類別),最終預(yù)測(cè)結(jié)果為7×7×30(B*5+C)的tensor。

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


        1、網(wǎng)絡(luò)模型

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

        我們的網(wǎng)絡(luò)架構(gòu)受到GoogLeNet圖像分類模型的啟發(fā)。我們的網(wǎng)絡(luò)有24個(gè)卷積層,后面是2個(gè)全連接層。我們使用1x1降維層,后面是3x3卷積層,這與Lin等人類似,而不是GoogLeNet使用的Inception模塊。我們?cè)贗mageNet分類任務(wù)上以一半的分辨率(224x224的224×224" style="outline: 0px;">輸入圖像)預(yù)訓(xùn)練卷積層,然后將分辨率加倍來進(jìn)行檢測(cè)。完整的網(wǎng)絡(luò)如圖所示。

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

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

        我們網(wǎng)絡(luò)的最終輸出是7x7x30的7×7×30" style="outline: 0px;">預(yù)測(cè)張量。


        2、訓(xùn)練

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

        88%" style="outline: 0px;">

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


        我們的最后一層預(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ū)挾群透叨鹊钠椒礁皇菍挾群透叨取?/span>


        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)的類別,從而改善整體召回率。


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

        其中1iobj1iobj" style="outline: 0px;">示目標(biāo)是否出現(xiàn)在網(wǎng)格單元i中(是為1,否為0,根據(jù)該單元實(shí)際上是否有目標(biāo)確定),1ijobj表示i" style="outline: 0px;">網(wǎng)格單元ii" style="outline: 0px;">的第j個(gè)邊界框預(yù)測(cè)器“負(fù)責(zé)”該預(yù)測(cè)(如果該單元真有目標(biāo),并且該邊界框IOU最大,則值為1,否為0)。


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


        0.9" style="outline: 0px; font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif; letter-spacing: 0.544px; white-space: normal; background-color: rgb(255, 255, 255);">我們對(duì)Pascal VOC 2007和2012的訓(xùn)練和驗(yàn)證數(shù)據(jù)集進(jìn)行了大約135個(gè)迭代周期的網(wǎng)絡(luò)訓(xùn)練。在Pascal VOC 2012上進(jìn)行測(cè)試時(shí),我們的訓(xùn)練包含了Pascal VOC 2007的測(cè)試數(shù)據(jù)。在整個(gè)訓(xùn)練過程中,我們使用了64個(gè)批大小,0.9的動(dòng)量和0.0005的衰減。

        0.9" style="outline: 0px; font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif; letter-spacing: 0.544px; white-space: normal; background-color: rgb(255, 255, 255);">

        103" style="outline: 0px; font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif; letter-spacing: 0.544px; white-space: normal; background-color: rgb(255, 255, 255);">我們的學(xué)習(xí)率方案如下:對(duì)于第一個(gè)迭代周期,我們慢慢地將學(xué)習(xí)率從0.001提高到0.01,如果我們從高學(xué)習(xí)率開始,我們的模型往往會(huì)由于不穩(wěn)定的梯度而發(fā)散。我們繼續(xù)以0.01的學(xué)習(xí)率訓(xùn)練75個(gè)迭代周期,然后用0.001學(xué)習(xí)率訓(xùn)練30個(gè)迭代周期,最后用0.0001的學(xué)習(xí)率訓(xùn)練30個(gè)迭代周期。

        103" style="outline: 0px; font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif; letter-spacing: 0.544px; white-space: normal; background-color: rgb(255, 255, 255);">

        為了避免過度擬合,我們使用棄權(quán)和大量的數(shù)據(jù)增強(qiáng)。在第一個(gè)連接層之后,棄權(quán)層使用0.5的比例,防止層之間的互相適應(yīng)。對(duì)于數(shù)據(jù)增強(qiáng),我們引入高達(dá)原始圖像20%的大小的隨機(jī)縮放和轉(zhuǎn)換。我們還在HSV色彩空間中使用高達(dá)1.5的因子來隨機(jī)調(diào)整圖像的曝光和飽和度。


        3、預(yù)測(cè)

        就像在訓(xùn)練中一樣,預(yù)測(cè)測(cè)試圖像的檢測(cè)只需要一次網(wǎng)絡(luò)評(píng)估。在Pascal VOC上,每張圖像上網(wǎng)絡(luò)預(yù)測(cè)98個(gè)邊界框和每個(gè)框的類別概率。YOLO在測(cè)試時(shí)非??欤?yàn)樗恍枰淮尉W(wǎng)絡(luò)評(píng)估,不像基于分類器的方法。


        網(wǎng)格設(shè)計(jì)強(qiáng)化了邊界框預(yù)測(cè)中的空間多樣性。通常很明顯一個(gè)目標(biāo)落在哪一個(gè)網(wǎng)格單元中,而網(wǎng)絡(luò)只能為每個(gè)目標(biāo)預(yù)測(cè)一個(gè)邊界框。然而,一些大的目標(biāo)或靠近多個(gè)網(wǎng)格單元邊界的目標(biāo)可以被多個(gè)網(wǎng)格單元很好地定位。非極大值抑制可以用來修正這些多重檢測(cè)。對(duì)于R-CNN或DPM而言,性能不是關(guān)鍵的,非最大抑制會(huì)增加2%-3%的mAP。


        4、YOLO的限制

        • YOLO的每一個(gè)網(wǎng)格只預(yù)測(cè)兩個(gè)邊界框,一種類別。這導(dǎo)致模型對(duì)相鄰目標(biāo)預(yù)測(cè)準(zhǔn)確率下降。因此,YOLO對(duì)成隊(duì)列的目標(biāo)(如 一群鳥)識(shí)別準(zhǔn)確率較低。

        • 由于我們的模型學(xué)習(xí)從數(shù)據(jù)中預(yù)測(cè)邊界框,因此它很難泛化到新的、不常見角度的目標(biāo)。我們的模型使用相對(duì)較粗糙的特征來預(yù)測(cè)邊界框,因?yàn)槲覀兊募軜?gòu)具有來自輸入圖像的多個(gè)下采樣層。

        • YOLO的損失函數(shù)會(huì)同樣的對(duì)待小邊界框與大邊界框的誤差。大邊界框的小誤差通常是良性的,但小邊界框的小誤差對(duì)IOU的影響要大得多。我們的主要錯(cuò)誤來源是不正確的定位。


        三 與其他目標(biāo)檢測(cè)算法對(duì)比


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


        • 可變形部件模型。可變形零件模型(DPM)使用滑動(dòng)窗口方法進(jìn)行目標(biāo)檢測(cè)。DPM使用不相交的流程來提取靜態(tài)特征,對(duì)區(qū)域進(jìn)行分類,預(yù)測(cè)高評(píng)分區(qū)域的邊界框等。我們的系統(tǒng)用單個(gè)卷積神經(jīng)網(wǎng)絡(luò)替換所有這些不同的部分。網(wǎng)絡(luò)同時(shí)進(jìn)行特征提取,邊界框預(yù)測(cè),非極大值抑制和上下文推理。代替靜態(tài)特征,網(wǎng)絡(luò)內(nèi)嵌地訓(xùn)練特征并為檢測(cè)任務(wù)優(yōu)化它們。我們的統(tǒng)一架構(gòu)導(dǎo)致了比DPM更快,更準(zhǔn)確的模型。


        • R-CNN。R-CNN及其變種使用區(qū)域提名而不是滑動(dòng)窗口來查找圖像中的目標(biāo)。選擇性搜索產(chǎn)生潛在的邊界框,卷積網(wǎng)絡(luò)提取特征,SVM對(duì)邊界框進(jìn)行評(píng)分,線性模型調(diào)整邊界框,非極大值抑制消除重復(fù)檢測(cè)。這個(gè)復(fù)雜流程的每個(gè)階段都必須獨(dú)立地進(jìn)行精確調(diào)整,所得到的系統(tǒng)非常慢,測(cè)試時(shí)每張圖像需要超過40秒。

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


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

        許多研究工作集中在加快DPM流程上。它們加速HOG計(jì)算,使用級(jí)聯(lián),并將計(jì)算推動(dòng)到GPU上。但是,實(shí)際上只有30Hz的DPM可以實(shí)時(shí)運(yùn)行。

        YOLO不是試圖優(yōu)化大型檢測(cè)流程的單個(gè)組件,而是完全拋棄流程,被設(shè)計(jì)為快速檢測(cè)。


        像人臉或行人等單類別的檢測(cè)器可以高度優(yōu)化,因?yàn)樗麄儽仨毺幚砀俚淖兓OLO是一種通用的檢測(cè)器,可以學(xué)習(xí)同時(shí)檢測(cè)多個(gè)目標(biāo)。


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

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

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


        四 實(shí)驗(yàn)

        首先,我們?cè)赑ASCAL VOC 2007上比較YOLO和其它的實(shí)時(shí)檢測(cè)系統(tǒng)。為了理解YOLO和R-CNN變種之間的差異,我們探索了YOLO和R-CNN性能最高的版本之一Fast R-CNN在VOC 2007上錯(cuò)誤率。根據(jù)不同的誤差曲線,我們顯示YOLO可以用來重新評(píng)估Fast R-CNN檢測(cè),并減少背景假陽性帶來的錯(cuò)誤,從而顯著提升性能。我們還展示了在VOC 2012上的結(jié)果,并與目前最先進(jìn)的方法比較了mAP。最后,在兩個(gè)藝術(shù)品數(shù)據(jù)集上我們顯示了YOLO可以比其它檢測(cè)器更好地泛化到新領(lǐng)域。


        1、與其他實(shí)時(shí)系統(tǒng)的比較

        • 目標(biāo)檢測(cè)方面的許多研究工作都集中在快速制定標(biāo)準(zhǔn)檢測(cè)流程上。然而,只有Sadeghi等實(shí)際上產(chǎn)生了一個(gè)實(shí)時(shí)運(yùn)行的檢測(cè)系統(tǒng)(每秒30幀或更好)。我們將YOLO與DPM的GPU實(shí)現(xiàn)進(jìn)行了比較,其在30Hz或100Hz下運(yùn)行。雖然其它的努力沒有達(dá)到實(shí)時(shí)性的里程碑,我們也比較了它們的相對(duì)mAP和速度來檢查目標(biāo)檢測(cè)系統(tǒng)中精度——性能權(quán)衡。

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

        • 我們還使用VGG-16訓(xùn)練YOLO。這個(gè)模型比YOLO更準(zhǔn)確,但也比它慢得多。對(duì)于依賴于VGG-16的其它檢測(cè)系統(tǒng)來說,它是比較有用的,但由于它比實(shí)時(shí)的YOLO更慢,本文的其它部分將重點(diǎn)放在我們更快的模型上。

        • Fastest DPM可以在不犧牲太多mAP的情況下有效地加速DPM,但仍然會(huì)將實(shí)時(shí)性能降低2倍。與神經(jīng)網(wǎng)絡(luò)方法相比,DPM相對(duì)低的檢測(cè)精度也受到限制。

        • R-CNN Minus R用靜態(tài)邊界框提出取代選擇性搜索。雖然速度比R-CNN更快,但仍然不能實(shí)時(shí),并且由于沒有好的邊界框提出,準(zhǔn)確性受到了嚴(yán)重影響。

        • Fast R-CNN加快了R-CNN的分類階段,但是仍然依賴選擇性搜索,每張圖像需要花費(fèi)大約2秒來生成邊界框提出。因此,它具有很高的mAP,但是0.5的fps仍離實(shí)時(shí)性很遠(yuǎn)。

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

        Pascal VOC 2007上的實(shí)時(shí)系統(tǒng)。比較快速檢測(cè)器的性能和速度??焖資OLO是Pascal VOC檢測(cè)記錄中速度最快的檢測(cè)器,其精度仍然是其它實(shí)時(shí)檢測(cè)器的兩倍。YOLO比快速版本更精確10mAP,同時(shí)在速度上仍保持實(shí)時(shí)性。


        2、VOC 2007錯(cuò)誤率分析

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


        我們使用Hoiem等人的方法和工具。對(duì)于測(cè)試時(shí)的每個(gè)類別,我們看這個(gè)類別的前N個(gè)預(yù)測(cè)。每個(gè)預(yù)測(cè)或者是正確的,或者根據(jù)錯(cuò)誤類型進(jìn)行分類:

        • Correct:正確的類別而且IOU>0.5

        • Localization:正確的類別,0.1

        • Similar:類別相似,IOU>0.1

        • Other:類別錯(cuò)誤,IOU>0.1

        • Background:任何IOU<0.1的目標(biāo)

        下圖顯示了在所有的20個(gè)類別上每種錯(cuò)誤類型平均值的分解圖。

        誤差分析:Fast R-CNN vs. YOLO。這張圖顯示了各種類別的前N個(gè)預(yù)測(cè)中定位錯(cuò)誤和背景錯(cuò)誤的百分比(N = #表示目標(biāo)在那個(gè)類別中)。


        YOLO努力地正確定位目標(biāo)。定位錯(cuò)誤占YOLO錯(cuò)誤的大多數(shù),比其它錯(cuò)誤源加起來都多。Fast R-CNN使定位錯(cuò)誤少得多,但背景錯(cuò)誤更多。它的檢測(cè)的13.6%是不包含任何目標(biāo)的誤報(bào)。Fast R-CNN比YOLO預(yù)測(cè)背景檢測(cè)的可能性高出近3倍。


        3、結(jié)合Fast R-CNN和YOLO

        YOLO比Fast R-CNN的背景誤檢要少得多。通過使用YOLO消除Fast R-CNN的背景檢測(cè),我們獲得了顯著的性能提升。對(duì)于R-CNN預(yù)測(cè)的每個(gè)邊界框,我們檢查YOLO是否預(yù)測(cè)一個(gè)類似的框。如果是這樣,我們根據(jù)YOLO預(yù)測(cè)的概率和兩個(gè)盒子之間的重疊來對(duì)這個(gè)預(yù)測(cè)進(jìn)行提升。


        最好的Fast R-CNN模型在VOC 2007測(cè)試集上達(dá)到了71.8%的mAP。當(dāng)與YOLO結(jié)合時(shí),其mAP增加了3.2%達(dá)到了75%,我們也嘗試將最好的Fast R-CNN模型與其它幾個(gè)版本的Fast R-CNN結(jié)合起來。這些模型組合產(chǎn)生了0.3%到0.6%之間的小增幅。

        VOC 2007模型組合實(shí)驗(yàn)。我們檢驗(yàn)了各種模型與Fast R-CNN最佳版本結(jié)合的效果。Fast R-CNN的其它版本只提供很小的好處,而YOLO則提供了顯著的性能提升。


        來自YOLO的提升不僅僅是模型組合的副產(chǎn)品,因?yàn)榻M合不同版本的Fast R-CNN幾乎沒有什么好處。相反,正是因?yàn)閅OLO在測(cè)試時(shí)出現(xiàn)了各種各樣的錯(cuò)誤,所以在提高Fast R-CNN的性能方面非常有效。


        遺憾的是,這個(gè)組合并沒有從YOLO的速度中受益,因?yàn)槲覀兎謩e運(yùn)行每個(gè)模型,然后結(jié)合結(jié)果。但是,由于YOLO速度如此之快,與Fast R-CNN相比,不會(huì)增加任何顯著的計(jì)算時(shí)間。


        4、VOC 2012結(jié)果

        在VOC 2012測(cè)試集上,YOLO得分為57.9%mAP,這低于現(xiàn)有的最新技術(shù),接近于使用VGG-16的原始R-CNN,見表3。我們的系統(tǒng)與其最接近的競(jìng)爭(zhēng)對(duì)手相比,在小目標(biāo)上努力。在bottle,sheeptv/monitor等類別上,YOLO的得分比R-CNN或Feature Edit低8%-10%,然而,在cattrain等其它類別上YOLO實(shí)現(xiàn)了更高的性能。

        PASCAL VOC 2012排行榜。截至2015年11月6日,YOLO與完整comp4(允許外部數(shù)據(jù))公開排行榜進(jìn)行了比較。顯示了各種檢測(cè)方法的平均精度均值和每類的平均精度。YOLO是唯一的實(shí)時(shí)檢測(cè)器。Fast R-CNN + YOLO是評(píng)分第四高的方法,比Fast R-CNN提升了2.3%。


        我們聯(lián)合的Fast R-CNN + YOLO模型是性能最高的檢測(cè)方法之一。Fast R-CNN從與YOLO的組合中獲得了2.3%2.3%" style="outline: 0px;">提高,在公開排行榜上上移了5位。


        5、泛化能力,藝術(shù)品中的行人檢測(cè)

        用于目標(biāo)檢測(cè)的學(xué)術(shù)數(shù)據(jù)集以相同分布獲取訓(xùn)練和測(cè)試數(shù)據(jù)。在現(xiàn)實(shí)世界的應(yīng)用中,很難預(yù)測(cè)所有可能的用例,而且測(cè)試數(shù)據(jù)可能與系統(tǒng)之前看到的不同[3]。我們?cè)赑icasso數(shù)據(jù)集上和People-Art數(shù)據(jù)集上將YOLO與其它的檢測(cè)系統(tǒng)進(jìn)行比較,這兩個(gè)數(shù)據(jù)集用于測(cè)試藝術(shù)品中的行人檢測(cè)。


        下圖顯示了YOLO和其它檢測(cè)方法之間的比較性能。作為參考,我們?cè)?/span>person上提供VOC 2007的檢測(cè)AP,其中所有模型僅在VOC 2007數(shù)據(jù)上訓(xùn)練。在Picasso數(shù)據(jù)集上的模型在VOC 2012上訓(xùn)練,而People-Art數(shù)據(jù)集上的模型則在VOC 2010上訓(xùn)練。

        Picasso和People-Art數(shù)據(jù)集上的泛化結(jié)果。

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


        DPM在應(yīng)用于藝術(shù)品時(shí)保持了其AP。之前的工作認(rèn)為DPM表現(xiàn)良好,因?yàn)樗哂心繕?biāo)形狀和布局的強(qiáng)大空間模型。雖然DPM不會(huì)像R-CNN那樣退化,但它開始時(shí)的AP較低。


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

        定性結(jié)果。YOLO在網(wǎng)絡(luò)采樣的藝術(shù)品和自然圖像上的運(yùn)行結(jié)果。雖然它將人誤檢成了飛機(jī),但它大部分上是準(zhǔn)確的。


        四 實(shí)時(shí)目標(biāo)檢測(cè)

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


        由此產(chǎn)生的系統(tǒng)是交互式和參與式的。雖然YOLO單獨(dú)處理圖像,但當(dāng)連接到網(wǎng)絡(luò)攝像頭時(shí),其功能類似于跟蹤系統(tǒng),可在目標(biāo)移動(dòng)和外觀變化時(shí)檢測(cè)目標(biāo)。系統(tǒng)演示和源代碼可以在項(xiàng)目網(wǎng)站上找到:http://pjreddie.com/yolo/。


        五 結(jié)論

        我們介紹了YOLO,一種統(tǒng)一的目標(biāo)檢測(cè)模型。我們的模型構(gòu)建簡(jiǎn)單,可以直接在整張圖像上進(jìn)行訓(xùn)練。與基于分類器的方法不同,YOLO直接在對(duì)應(yīng)檢測(cè)性能的損失函數(shù)上訓(xùn)練,并且整個(gè)模型聯(lián)合訓(xùn)練。


        快速YOLO是文獻(xiàn)中最快的通用目的的目標(biāo)檢測(cè)器,YOLO推動(dòng)了實(shí)時(shí)目標(biāo)檢測(cè)的最新技術(shù)。YOLO還很好地泛化到新領(lǐng)域,使其成為依賴快速,強(qiáng)大的目標(biāo)檢測(cè)應(yīng)用的理想選擇。


        本文僅做學(xué)術(shù)分享,如有侵權(quán),請(qǐng)聯(lián)系刪文。
        —THE END—
        瀏覽 126
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 国产一级内射视频 | 五月天丁香花 | 伦理4少妇按摩完整版 | 国产黄色三级毛片 | 久久国产精品美女操出白浆视频 |