日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

目標檢測篇 - YOLO V1論文筆記(Anchor-free)

 taotao_2016 2020-02-10

目標檢測篇 - YOLO V1論文筆記(Anchor-free)

YOLO

直接進入正文:

摘要:

我們提出了YOLO,一種新的物體檢測方法,之前的目標檢測是通過重新使用分類器來完成檢測。相反,我們將目標檢測抽象為一個回歸問題,描述為以空間分隔的邊界框和相關(guān)的類別概率。一個簡單的神經(jīng)網(wǎng)絡(luò)通過對完整圖片的進行檢測,直接預(yù)測邊界框和分類類別。因為整個檢測基于是單一網(wǎng)絡(luò),所以可以實現(xiàn)端到端優(yōu)化。

我們整體的框架運行速度非??臁N覀兊幕A(chǔ)模型YOLO實時處理圖片速度達到45幀/秒。另一個小規(guī)模版本--Fast YOLO,達到了驚人的處理155幀/秒的圖片速率,并且仍然實現(xiàn)了2倍于其他實時檢測器的mAP。與當前最先進的檢測系統(tǒng)相比,YOLO有較高的定位錯誤,但是對于沒有物體區(qū)域的檢測錯誤,YOLO優(yōu)于其他系統(tǒng)。最后,YOLO學習了對象的通用表示,從自然圖像到畢加索和PeopleArt數(shù)據(jù)集,它的性能遠遠超過其他檢測方法,包括DPM和RCNN。

1.介紹

人們瞥一眼圖像,就能立即知道圖像中的物體是什么,它們在哪里,以及他們之間的相互關(guān)系。人類的視覺系統(tǒng)快而準確,以至于可以允許我們完成像駕駛汽車之類的復(fù)雜任務(wù),而不用很多的意識想法參與??焖?、準確的目標檢測算法將允許計算機在任何天氣下駕駛汽車而不需要特定傳感器,輔助設(shè)備可以將實時的場景信息傳遞給人類用戶,并且釋放通用的、反應(yīng)靈敏的機器人系統(tǒng)能力。

現(xiàn)在的檢測系統(tǒng)重新使用分類器來進行檢測。為了檢測物體,這些系統(tǒng)使用一個對應(yīng)類別的分類器,并且將其應(yīng)用到測試圖片中的不同區(qū)域和規(guī)模。例如deformable parts models(DPM)使用滑動窗口,以使得分類器作用于整張圖片上的每一個區(qū)域。

最近的一些方法,像R-CNN,使用建議區(qū)域方法(region proposal method),先在圖片中定位邊界框,然后再通過分類器來對邊界框進行分類(是典型的two-staged的方法)。分類之后,使用后處理對邊框進行校正,消除重復(fù)邊界框(如NMS),并且根據(jù)場景中的其他物體,對邊界框重新打分。該方法很難去優(yōu)化,因為每一個獨立的部分都需要分開訓練。

我們重新抽象目標檢測為一個簡單的回歸問題,直接從圖像像素輸入到輸出邊界框坐標和類別概率。使用我們的系統(tǒng),你只需要看一遍('you only look once', YOLO)圖片就能預(yù)測出物體的類別和位置。

目標檢測篇 - YOLO V1論文筆記(Anchor-free)

圖1:YOLO V1系統(tǒng)

圖1:YOLO目標檢測系統(tǒng)。使用YOLO處理圖像非常簡單和直接。我們的系統(tǒng)(1)吊針輸入圖像的大小為448×448,(2)將圖像輸入到一個簡單的卷積神經(jīng)網(wǎng)絡(luò),并且(3)通過閾值篩選出檢測結(jié)果。

YOLO非常簡單:見圖1。一個簡單的卷積網(wǎng)絡(luò)同時預(yù)測多個邊界框以及其每一個對應(yīng)的:類別概率。YOLO是對完整圖像進行訓練并且直接優(yōu)化檢測效果。這種統(tǒng)一的模型相比傳統(tǒng)的目標檢測模型有幾個優(yōu)點。

優(yōu)點1:YOLO很快。因為我們抽象物品檢測為回歸問題,不需要復(fù)雜的規(guī)則。在測試時,我們將新圖片喂給神經(jīng)網(wǎng)絡(luò),基礎(chǔ)網(wǎng)絡(luò)運行速率為45幀/秒(在泰坦X GPU上沒有批量處理),快速版本運行速率超過150幀/秒。這意味著我們能夠以小于25ms的延遲實時處理視頻。而且,YOLO的平均精度是其他實時系統(tǒng)平均精度的兩倍以上。有關(guān)我們系統(tǒng)的Demo可以實時在網(wǎng)站上運行演示,請看我們的YouTube頻道:https:///bEs6Cj。

優(yōu)點2:YOLO在預(yù)測時利用了圖像的全局信息。不像基于滑動窗口和基于建議區(qū)域(region proposal)的技術(shù),YOLO在訓練和測試的時都是看到整個圖像的,所以它對類別的上下文信息以及它們的外觀進行編碼。Fast R-CNN由于無法看到更多的上下文信息,所以會在圖像中錯誤地顯示背景塊(將背景塊錯誤識別)。YOLO產(chǎn)生的背景錯誤不到R-CNN的一半。

優(yōu)點3:YOLO學習的是對象的通用表示。在自然圖像進行訓練并且在藝術(shù)品上進行測試時,YOLO的表現(xiàn)遠遠超過DPM和R-CNN等檢測方法。由于YOLO是高度一般化的,所以當其應(yīng)用到新的領(lǐng)域或者意外的輸入時,它不太可能出現(xiàn)崩潰(效果很差)。代碼已開源。

2.統(tǒng)一識別(Unified Detection)

我們將物體檢測的幾個部分統(tǒng)一成一個簡單的神經(jīng)網(wǎng)絡(luò)。我們的網(wǎng)絡(luò)使用整張圖片的特征去預(yù)測每一個邊界框,它也支持對一張圖片同時預(yù)測全部邊界框。這意味著網(wǎng)絡(luò)關(guān)注整張圖片以及在這張圖片中的所有物體的信息。這個設(shè)計允許端到端的訓練,以及在保證高準確率的同時保證實時速度。

我們的系統(tǒng)將輸入圖像分成S×S(7x7)的網(wǎng)格。如果物品的中點落在某一個網(wǎng)格單元,這個網(wǎng)格單元將負責識別出這個物體。

每一個網(wǎng)格單元預(yù)測B(B=2)個邊界框以及對應(yīng)于每一個邊界框的置信分數(shù)。這些置信分數(shù)反映了這個模型預(yù)測該邊界框包含某一物體的可能性以及模型認為對于這個邊界框的預(yù)測有多高的準確率。我們將置信度用公式定義為Pr(Object)?IOUtruthpred。如果在網(wǎng)格單元中沒有物品,置信分數(shù)將為0。否則,我們定義置信分數(shù)為預(yù)測邊界框和真實邊界框的IOU(intersection over union)。

每一個邊界框包含5個預(yù)測值:x,y,w,h以及置信分數(shù)confidence。(x,y)表示了邊界框相對于當前網(wǎng)格單元的位置。width和height是根據(jù)整張圖片的比例預(yù)測的。最后,置信分數(shù)表示預(yù)測邊界框和真實邊界框的IOU。每一個網(wǎng)格單元同時也預(yù)測屬于C類別的條件概率,Pr(Classi|Object)。這個概率表示了這個網(wǎng)格單元包含某一個物體的置信度。我們也預(yù)測每個網(wǎng)格的一組類別的概率,而不考慮邊界框的數(shù)量B。

在測試的時候我們將類別概率和獨立的邊界框預(yù)測置信分數(shù)相乘,公式如下:

目標檢測篇 - YOLO V1論文筆記(Anchor-free)

這個給了我們對于每一個邊界框?qū)儆谀骋粋€特定類別的置信分數(shù)。這些分數(shù)編碼了這個類出現(xiàn)在框中的概率以及預(yù)測框和對象的匹配程度。在PADCAL VOC上評估YOLO,我們使用了S=7,B=2。PASCAL VOC有20個標簽類別,所以C=20。我們最后的預(yù)測是一個7×7×30的張量。

目標檢測篇 - YOLO V1論文筆記(Anchor-free)

圖2:模型

我們的系統(tǒng)模型抽象為一個回歸問題。它將圖片分為一個一個的網(wǎng)格并且同時地預(yù)測邊界框、置信分數(shù)以及類別概率。這些預(yù)測將被編碼為S×S×(B*5+C)的張量。

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

我們通過卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)這個模型,在PASCAL VOC檢測數(shù)據(jù)集上進行評估。網(wǎng)絡(luò)中初始的卷積層從圖像中提取特征,而全連接層用來預(yù)測輸出概率和坐標。

我們的網(wǎng)絡(luò)架構(gòu)受GoogLeNet啟發(fā),網(wǎng)絡(luò)有24個卷積層,后面接2個全連接層。然而,不同于GoogLeNet中使用的inception modules簡單地在1×1卷積層后面接上3×3卷積層。我們的整個網(wǎng)絡(luò)如圖3所示。

目標檢測篇 - YOLO V1論文筆記(Anchor-free)

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

圖3:架構(gòu)。我們的檢測網(wǎng)絡(luò)擁有24個卷積層后接2個全連接層。交替使用1×1卷積層從前面網(wǎng)絡(luò)層中減小了特征空間。我們在ImageNet分類任務(wù)上使用一辦分辨率(224×224的輸入圖像)預(yù)訓練了卷積層,然后使用一倍分辨率用來訓練檢測。

目標檢測篇 - YOLO V1論文筆記(Anchor-free)

預(yù)測張量分析

我們也訓練了一個YOLO的快速版本,其用于快速進行目標檢測并且給出邊界框。fast YOLO使用更少卷積層的神經(jīng)網(wǎng)絡(luò)(9個而不是24個)以及卷積層中有更少的卷積核(過濾器)。除了網(wǎng)絡(luò)的規(guī)模,其他的訓練和測試的參數(shù)YOLO和fast YOLO是一樣的。網(wǎng)絡(luò)的預(yù)測輸出是一個7×7×30的張量。

2.2 訓練

我們在ImageNet 1000-class挑戰(zhàn)賽數(shù)據(jù)集上預(yù)訓練卷積層。為了預(yù)訓練,我們使用了圖3中的前面20個卷積層,接上一個平均池化層和一個全連接層。訓練網(wǎng)絡(luò)時間大約為一周,達到了在ImageNet 2012驗證數(shù)據(jù)集上top-5 88%的準確率,可以與Caffe's的模型庫中的GoogLeNet相比。

然后我們模型應(yīng)用到檢測任務(wù)。Ren等人提出加入卷積層和連接層可以提高預(yù)訓練網(wǎng)絡(luò)的性能。根據(jù)他們的樣例,我們在我們的預(yù)訓練網(wǎng)絡(luò)上加入了四個卷積層和兩個全連接層,它們都用隨機權(quán)重初始化。檢測任務(wù)通常需要細粒度的視覺信息,因此我們將網(wǎng)絡(luò)的輸入像素從224×224增加到448×448。

我們最后一層同時預(yù)測了類別概率以及邊界框位置。我們利用原圖像的寬和高歸一化邊界框的寬和高,從而使得邊界框的寬和高表示數(shù)值落在0和1之間。我們將邊界框的坐標x和y參數(shù)化,使得其成為特定網(wǎng)絡(luò)單元格位置的偏移量,因此他們的數(shù)值也在0和1之間。最后一層使用線性激活函數(shù),而其他所有層使用下述的leaky rectified線性激活函數(shù)。

我們優(yōu)化模型輸出的平方誤差和。使用平方誤差和是因為易于優(yōu)化,雖然它并不符合我們最大化平均精度的目標。它將定位誤差和分類誤差同等加權(quán),這可能不是理想的。同時,在每一張圖片中,一些網(wǎng)格單元并不包含物體。這使得這些單元的置信分數(shù)為0,通常會超過包含對象的單元格梯度,這可能導(dǎo)致模型的不穩(wěn)定。

為了補救這個問題,我們增加邊界框位置預(yù)測的損失,減少不包含物體的邊界框置信預(yù)測的損失。我們使用兩個參數(shù)λcoord和λnoobj來實現(xiàn),設(shè)置λcoord=5和λnoobj=0.5。

平方誤差和對于大回歸框和小回歸框有著同等權(quán)重。我們的錯誤度量應(yīng)該反映出小邊界框的小偏差比大邊界框的小偏差更重要(小的偏差一點,結(jié)果就會偏差很多,而大的偏差一點,并不會很影響結(jié)果)。為了部分解決這個問題,我們預(yù)測邊界框的寬和高的平方根而不是直接預(yù)測寬和高。

YOLO對于每一個網(wǎng)格單元預(yù)測多個邊界框。在訓練時候,我們只希望每一個對象只用一個邊界框預(yù)測器來負責表示。我們根據(jù)哪一個邊界框跟真實邊界框有最高的IOU來決定分配其作為負責預(yù)測一個對象的預(yù)測器。這將使得邊界看預(yù)測器越來越“專業(yè)”。每一個預(yù)測器對于特定的尺寸、長寬比例、或者對象類別的預(yù)測會越來越好。

在訓練的時候,我們優(yōu)化下面這個多部分損失函數(shù):

目標檢測篇 - YOLO V1論文筆記(Anchor-free)

損失函數(shù)

注意:損失函數(shù)只有當有一個對象在網(wǎng)格單元中,才會對分類錯誤進行懲罰(因此前面討論了條件類別概率)。這也只有當一個預(yù)測器負責真實邊界框時才會對邊界框坐標定位誤差進行懲罰(也就是在該網(wǎng)格單元中有最高的IOU預(yù)測器)。

我們在PASCAL VOC 2007和2012數(shù)據(jù)集上訓練大約135個迭代。測試時候我們也在2012和2007測試數(shù)據(jù)集上進行。訓練過程中我們使用的batch size為64,momentum為0.9以及0.0005的decay。

學習率策略如下:對于第一個迭代,我們緩慢地將學習率從10?3提高到10?2。如果我們從較高的學習率開始我們的模型通常會因為不穩(wěn)定而發(fā)散。我們接下來以10?2的學習率訓練75個迭代,然后減少到10?3再繼續(xù)訓練30個迭代,最后減少到10?4再訓練30個迭代。

為了避免過擬合,我們使用了dropout和擴展增強數(shù)據(jù)集。第一個連接層之后的dropout層的rate為0.5,以防止層之間的相互適應(yīng)。對于數(shù)據(jù)增強,我們引入了高達20%的原始圖像進行隨機放縮和平移。我們同時也在HSV顏色空間中隨機調(diào)整圖像的曝光和飽和度,其調(diào)整幅度高達1.5。

2.3 Inference(推斷)

類似于訓練,對一張測試圖片進行預(yù)測檢測只需要一次網(wǎng)絡(luò)評估。在PASCAL VOC,這個網(wǎng)絡(luò)對于每一張圖片預(yù)測98個邊界框以及對于每一個邊界框預(yù)測類別概率。YOLO在測試時候特別快因為它只需要一次簡單的網(wǎng)絡(luò)評估,而不像給予分類器的方法(需要多步處理,或者需要對圖片進行復(fù)雜的預(yù)處理)。

網(wǎng)格的設(shè)計在邊界框預(yù)測中強調(diào)了空間的多樣性。通常來說,一個對象只落在一個網(wǎng)格單元里面,因此網(wǎng)絡(luò)只需要對于每一個對象預(yù)測一個邊界框即可。然而,一些大的對象或者對象剛好在多個網(wǎng)格單元的邊緣可能會被歸屬有多個網(wǎng)格單元。非極大值抑制(NMS)能夠用來綜合這些重疊的檢測。雖然不像R-CNN或者DPM那樣對性能至關(guān)重要,但非極大值抑制使得mAP中增加了23%。

目標檢測篇 - YOLO V1論文筆記(Anchor-free)

推斷

2.4 YOLO的局限性

YOLO對邊界框預(yù)測施加了嚴格的空間約束,因為每個網(wǎng)格單元只能預(yù)測兩個邊界框,并且只能有一個類。這個空間約束限制了我們模型能夠預(yù)測的臨近對象的數(shù)量。我們的模型在處理以群體形式出現(xiàn)的小對象時會有困難,比如成群的鳥。

由于模型是通過數(shù)據(jù)集來學習預(yù)測邊界框的,所以它很難推廣到新的或不常見的寬高比例或不同屬性的對象。由于我們的架構(gòu)有多個從輸入圖像的下采樣層,我們的模型還使用了相對粗糙的特征來預(yù)測邊界框。

最后,當我們訓練一個大約有檢測功能的損失函數(shù)時,我們的損失函數(shù)對于小邊界框和大邊界框中的錯誤做了同等的對待。大邊界框的小錯誤可能沒什么影響,但當小邊界框有稍微的錯誤偏差將極大地影響到IOU。YOLO中的誤差主要還是定位的誤差。

3 與其他檢測系統(tǒng)進行比較

目標檢測是計算機視覺中的一個核心問題。檢測過程通常是從輸入圖像提取一組魯棒特征開始。然后,使用分類器或者定位器來從特征空間中識別出對象。這些分類器或者定位器既可以以滑動窗口的方式在整個圖像上運行,也可以在圖像中的某些子區(qū)域進行運行。我們著重將YOLO檢測系統(tǒng)和幾個頂尖的識別框架的關(guān)鍵的相似點和不同點進行比較。

Deformable parts models(DPM):DPM使用滑動窗口方法來進行目標檢測。DPM使用不相交的通道(disjoint pipeline,分離模塊?)來提取靜態(tài)特征,區(qū)域分類,對高分區(qū)域預(yù)測邊界框等等。我們的系統(tǒng)將這些分離的部分都替換成一個簡單的卷積神經(jīng)網(wǎng)絡(luò)。這個網(wǎng)絡(luò)提供了特征提取,邊界框預(yù)測,非極大值抑制以及上下文并發(fā)推理(contextual reasoning all concurrently)等功能。相比DPM,我們的網(wǎng)絡(luò)不是提取靜態(tài)特征,而是在線訓練特征,并且根據(jù)檢測任務(wù)優(yōu)化它們。我們的統(tǒng)一模型相比DPM有著更快的速度以及更高的準確率。

R-CNN:R-CNN以及它的一些變種使用建議區(qū)域(region proposals)而不是滑動窗口去找到圖片中的目標。選擇性搜索生成潛在可能的邊界框,一個卷積網(wǎng)絡(luò)用來提取特征,一個SVM(支持向量機)來對邊界框進行平衡,一個線性模型來調(diào)整邊界框,以及非極大值抑制來消除重復(fù)的檢測。這個復(fù)雜的方法要求每個階段都必須獨立地進行精確的調(diào)優(yōu),這導(dǎo)致系統(tǒng)非常慢,在測試時候預(yù)測一張圖片需要40秒以上。

YOLO和R-CNN有一些相似之處。每一個網(wǎng)格單元通過卷積特征提出一個潛在的邊界框和對應(yīng)的分數(shù)。然而,我們的系統(tǒng)在網(wǎng)格單元上設(shè)置了空間約束,這有助于減少同一個對象被多次檢測。我們的系統(tǒng)也給出了更少的回歸框,對于每張圖片之給出了98個,而選擇性搜索大約有2000個。最后,我們的系統(tǒng)綜合了這些分離的部分為一個簡單的、聯(lián)合優(yōu)化(jointly optimized)的模型。

其他快速分類器:快速的和更快的R-CNN是通過共享計算以及使用神經(jīng)網(wǎng)絡(luò)去提供預(yù)測區(qū)域而不是選擇性搜索來加速R-CNN框架的速度。當它們實現(xiàn)了在R-CNN的基礎(chǔ)上的速度和準確率的提升的同時,還是仍然不能達到實時性能。

一些研究工作致力于加速DPM。它們加速了HOG計算,使用級聯(lián),并將計算放入GPU中。但是,DPM實際上實時速度只有30Hz。相比分開的去優(yōu)化一個大的檢測系統(tǒng)中的某一些獨立的部分,YOLO提出了一個統(tǒng)一的模型設(shè)計并且它很快。像人臉或者人這樣的單一檢測器能夠被高度的優(yōu)化,因為它們處理很少的變化。YOLO是一種通用的目標檢測器,它可以學習同時檢測多種目標。

Deep MultiBox:不像R-CNN,Szegedy等人訓練一個卷積神經(jīng)網(wǎng)絡(luò)來預(yù)測感興趣的區(qū)域而不是通過選擇性搜索。MultiBox能夠在單一目標檢測中把置信分數(shù)預(yù)測替換成單一類別預(yù)測。然而,MultiBox不能夠?qū)崿F(xiàn)通用的目標檢測,并且它只是一個大的檢測系統(tǒng)中的一個部分,需要更進一步的圖片小塊分類。YOLO和MultiBox都使用了卷積網(wǎng)絡(luò)去預(yù)測一張圖片中的邊界框,但是YOLO是一個完整的檢測系統(tǒng)。

OverFeat:Sermanet等人訓練一個卷積神經(jīng)網(wǎng)絡(luò)預(yù)測定位并且調(diào)整定位器去做檢測。OverFeat有效地使用了滑動窗口檢測,當它仍然是一個分離系統(tǒng)。OverFeat優(yōu)化對象是定位信息,而不是檢測性能。類似DPM,定位器在做預(yù)測的時候只看到了定位信息。OverFeat不能關(guān)注到全局的上下文信息,因此需要有效的后續(xù)處理來提供目標間具有相關(guān)性的檢測效果。

MultiGrasp:我們的工作跟Redmon等人提出的grasp detection設(shè)計相似。我們的網(wǎng)格邊界框預(yù)測方法是基于回歸抓取的MultiGrasp系統(tǒng)(the MultiGrasp system for regression to grasps)。然而,grasp detection是一種比目標檢測更加簡單的任務(wù)。MultiGrasp只需要去預(yù)測一張只包含一個對象的圖片中的一個單一區(qū)域。它不需要去評估尺寸、位置以及邊界,也不需要預(yù)測它所屬的類別,而只需要找到一個適合抓取的區(qū)域。而YOLO需要對一張圖片中有多個對象以及多種物體來預(yù)測邊界框以及類別概率。

4.實驗

目標檢測篇 - YOLO V1論文筆記(Anchor-free)

表1

表1:在PASCAL VOC 2007上的實時系統(tǒng)。比較快速檢測器的性能和速度。Fast YOLO是PASCAL VOC檢測中歷史上最快的檢測器,而且它還有其他檢測器兩倍的準確率。YOLO相比Fast YOLO多了10 mAP的準確度而且還保持著實時性。

目標檢測篇 - YOLO V1論文筆記(Anchor-free)

圖4:錯誤分析

圖4:錯誤分析:Fast R-CNN vs. YOLO:這些圖顯示了對于不同類別的top N檢測的定位和背景錯誤的百分比(N=#個在該類別的對象)。

目標檢測篇 - YOLO V1論文筆記(Anchor-free)

表2:對比fast R-CNN

表2:在VOC 2007上的模型綜合實驗。我們驗證了將最好版本的Fast R-CNN綜合不同模型的效果。綜合YOLO提升了不錯的性能,而綜合其他版本的Fast R-CNN相比沒有提高很多效果。

5 結(jié)論

我們介紹了YOLO,這是一個統(tǒng)一模型來做目標檢測。我們的模型結(jié)構(gòu)簡單,可以在完整圖片上直接進行訓練。不像基于分類器的方法,YOLO直接訓練與檢測性能相關(guān)的損失函數(shù),并且整個模型是一起訓練的。

Fast YOLO是文獻中最快的通用目標檢測方法,而YOLO則是代表實時目標檢測的最前沿。YOLO同時也能夠很好的推廣到新領(lǐng)域,這使得它成為依賴于快速、健壯的目標識別領(lǐng)域的理想選擇。

論文鏈接:https:///pdf/1506.02640.pdf

代碼鏈接:http:///yolo/

完結(jié)撒花!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多