YOLO V1論文筆記(Anchor-free)

定期更新學習內容,一起進步,歡迎點贊和關注。

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

YOLO

摘要:

我們提出了YOLO,一種新的物體檢測方法,之前的目標檢測是通過重新使用分類器來完成檢測。相反,我們將目標檢測抽象為一個迴歸問題,描述為以空間分隔的邊界框和相關的類別概率。一個簡單的神經網絡通過對完整圖片的進行檢測,直接預測邊界框和分類類別。因為整個檢測基於是單一網絡,所以可以實現端到端優化

  我們整體的框架運行速度非常快。我們的基礎模型YOLO實時處理圖片速度達到45幀/秒。另一個小規模版本--Fast YOLO,達到了驚人的處理155幀/秒的圖片速率,並且仍然實現了2倍於其他實時檢測器的mAP。與當前最先進的檢測系統相比,YOLO有較高的定位錯誤,但是對於沒有物體區域的檢測錯誤,YOLO優於其他系統。最後,YOLO學習了對象的通用表示,從自然圖像到畢加索和PeopleArt數據集,它的性能遠遠超過其他檢測方法,包括DPM和RCNN。

1.介紹

  人們瞥一眼圖像,就能立即知道圖像中的物體是什麼,它們在哪裡,以及他們之間的相互關係。人類的視覺系統快而準確,以至於可以允許我們完成像駕駛汽車之類的複雜任務,而不用很多的意識想法參與。快速、準確的目標檢測算法將允許計算機在任何天氣下駕駛汽車而不需要特定傳感器,輔助設備可以將實時的場景信息傳遞給人類用戶,並且釋放通用的、反應靈敏的機器人系統能力。

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

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

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

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

圖1:YOLO V1系統

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

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

  優點1:YOLO很快。因為我們抽象物品檢測為迴歸問題,不需要複雜的規則。在測試時,我們將新圖片餵給神經網絡,基礎網絡運行速率為45幀/秒(在泰坦X GPU上沒有批量處理),快速版本運行速率超過150幀/秒。這意味著我們能夠以小於25ms的延遲實時處理視頻。而且,YOLO的平均精度是其他實時系統平均精度的兩倍以上。有關我們系統的Demo可以實時在網站上運行演示,請看我們的YouTube頻道:https://goo.gl/bEs6Cj。

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

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

2.統一識別(Unified Detection)

我們將物體檢測的幾個部分統一成一個簡單的神經網絡。我們的網絡使用整張圖片的特徵去預測每一個邊界框,它也支持對一張圖片同時預測全部邊界框。這意味著網絡關注整張圖片以及在這張圖片中的所有物體的信息。這個設計允許端到端的訓練,以及在保證高準確率的同時保證實時速度。

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

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

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

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

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

  這個給了我們對於每一個邊界框屬於某一個特定類別的置信分數。這些分數編碼了這個類出現在框中的概率以及預測框和對象的匹配程度。在PADCAL VOC上評估YOLO,我們使用了S=7,B=2。PASCAL VOC有20個標籤類別,所以C=20。我們最後的預測是一個7×7×30的張量。

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

圖2:模型

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

2.1網絡設計

我們通過卷積神經網絡實現這個模型,在PASCAL VOC檢測數據集上進行評估。網絡中初始的卷積層從圖像中提取特徵,而全連接層用來預測輸出概率和座標。

  我們的網絡架構受GoogLeNet啟發,網絡有24個卷積層,後面接2個全連接層。然而,不同於GoogLeNet中使用的inception modules簡單地在1×1卷積層後面接上3×3卷積層。我們的整個網絡如圖3所示。

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

圖3:網絡結構

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

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

預測張量分析

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

2.2 訓練

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

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

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

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

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

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

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

  在訓練的時候,我們優化下面這個多部分損失函數:

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

損失函數

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

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

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

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

2.3 Inference(推斷)

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

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

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

推斷

2.4 YOLO的侷限性

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

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

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

3 與其他檢測系統進行比較

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

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

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

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

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

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

  Deep MultiBox:不像R-CNN,Szegedy等人訓練一個卷積神經網絡來預測感興趣的區域而不是通過選擇性搜索。MultiBox能夠在單一目標檢測中把置信分數預測替換成單一類別預測。然而,MultiBox不能夠實現通用的目標檢測,並且它只是一個大的檢測系統中的一個部分,需要更進一步的圖片小塊分類。YOLO和MultiBox都使用了卷積網絡去預測一張圖片中的邊界框,但是YOLO是一個完整的檢測系統。

  OverFeat:Sermanet等人訓練一個卷積神經網絡預測定位並且調整定位器去做檢測。OverFeat有效地使用了滑動窗口檢測,當它仍然是一個分離系統。OverFeat優化對象是定位信息,而不是檢測性能。類似DPM,定位器在做預測的時候只看到了定位信息。OverFeat不能關注到全局的上下文信息,因此需要有效的後續處理來提供目標間具有相關性的檢測效果。

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

4.實驗

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

表1

表1:在PASCAL VOC 2007上的實時系統。比較快速檢測器的性能和速度。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 結論

我們介紹了YOLO,這是一個統一模型來做目標檢測。我們的模型結構簡單,可以在完整圖片上直接進行訓練。不像基於分類器的方法,YOLO直接訓練與檢測性能相關的損失函數,並且整個模型是一起訓練的。

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


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

代碼鏈接:http://pjreddie.com/yolo/

完結撒花!


分享到:


相關文章: