YOLOv1論文解讀


原文下載鏈接
摘要
  我們提出一種新的目標檢測算法——YOLO。以前有關目標檢測的研究將檢測轉化成分類器來執行。然而,我們將目標檢測框架化為空間分隔的邊界框及相關的類概率的回歸問題。在一次評估中,單個神經網絡直接從整幅圖像中預測邊界框和類概率。因為整個檢測管道是單個網絡,在檢測性能上可以直接進行端到端的優化。
  我們的統一架構非常快。我們的基礎YOLO模型以每秒45幀的速度實時處理圖像。較小型的網絡Fast YOLO,以驚人的每秒155幀的速度處理圖像,同時達到其他實時檢測器的兩倍的mAP。與最先進的檢測系統相比,YOLO產生更多的定位錯誤,但在背景上預測錯誤的可能性較小。最后,YOLO學到了目標的整體特征。當從自然圖像推廣到藝術品等其他領域時,它的性能優於其他檢測方法,包括DPM和R-CNN。
1.介紹
  人們瞥了一眼圖像,立即知道圖像中有什么對象,它們在哪里以及它們如何相互作用。人類的視覺系統快速准確,使我們能夠在極少意識思考的情況下執行一些復雜的任務,例如駕駛。快速准確的目標檢測算法將使計算機無需專用傳感器即可駕駛汽車,使輔助設備能夠向人類用戶傳達實時的現場信息,並釋放一般用途、響應式機器人系統的應用潛力。
  當前的檢測系統將檢測轉化成分類器來執行。為了檢測物體,這些系統需要一個該對象的分類器,並在測試圖像的不同位置和不同尺寸下進行評估。像可變形組件模型(DPM)這樣的系統使用滑動窗口方法,其中分類器在整個圖片中均勻分布的位置運行。
  諸如R-CNN的最新方法使用區域提議方法,首先生成圖像中潛在的邊界框,然后在這些提議的框上運行分類器。分類之后,后處理用於完善邊界框,消除重復的檢測並基於場景中的其他對象重新標記邊界框。這些復雜的管道運行緩慢且難以優化,因為每個獨立組件必須單獨訓練。
  我們將目標檢測重新構造為一個回歸問題,直接從圖像像素到邊界框坐標和類概率。使用我們的系統,您只看一次(YOLO)就能預測圖像中有什么對象以及他們在哪里。

  YOLO非常簡單:請參見圖1。單個卷積網絡可同時預測多個邊界框和這些框的類概率。YOLO在全圖上訓練並直接優化檢測性能。相較於傳統的目標檢測方法,這個統一的模型有幾個優點。
  第一,YOLO非常快。由於我們構架檢測作為回歸問題,我們不需要復雜的管道。我們只需簡單地在測試的新圖像上運行神經網絡就能預測檢測結果了。在Titan X GPU上不進行批處理時,我們的基礎網絡運行速度每秒45幀,快速版本的運行速度超過每秒150幀。這意味着我們可以以低於25毫秒的延遲實時處理流視頻。此外,YOLO的平均精度達到其他實時系統的兩倍以上。有關我們系統通過網絡攝像頭實時運行的演示請查看我們的項目網頁:http://pjreddie.com/yolo/。
  第二,YOLO在做出預測時會全局考慮圖像。與滑動窗口和基於區域提案的技術不同,YOLO在訓練和測試中可以看到全局圖像,因此它隱式編碼有關類及其外觀的上下文信息。Fast R-CNN是一種頂級檢測方法,由於看不到圖像更大的范圍,因此將圖像中的背景錯誤認為是物體。與Fast R-CNN相比,YOLO產生不到其一半的背景錯誤。
  第三,YOLO學習對象的通用特征。在自然圖像上進行訓練並在藝術品上進行測試時,YOLO比DPM和R-CNN等頂級檢測方法表現好得多。由於YOLO具有高度通用性,因此應用於新的領域或意外輸入時YOLO崩潰的可能性較小。
  在准確性方面,YOLO仍然落后於最新的檢測系統。盡管它可以快速識別圖像中的對象,但仍難以精確定位某些對象,尤其是小的對象。我們將在我們的實驗中進一步研究。
  我們所有的訓練和測試代碼都是開源的。各種預訓練的模型也可以下載。

2.統一檢測
  我們統一了目標檢測的各個組成部分到單個神經網絡中。我們的網絡使用整個圖像的特征來預測每個邊界框。它也是同時預測圖像所有類的所有邊界框。這意味着我們的網絡會在全局范圍內考慮完整圖像和圖像中的所有對象。YOLO設計可實現端到端的訓練和實時速度,同時保持較高的平均精度。
  我們的系統將輸入圖像划分為S×S網格。如果對象的中心落入網格單元,則該網格單元負責檢測該對象。
  每個網格單元預測這些盒子的B邊界框和置信度。這些置信度得分反映了模型確信盒子包含一個對象的自信度,並且以及它認為盒子預測的准確性。形式上,我們將置信度定義為 \(Pr(Object)\)*\({IOU}_{pred}^{truth}\)。如果單元格中不存在對象,置信度分數應為零。否則,我們希望置信度得分等於預測框和真實值之間的聯合相交(IOU)。
  每個邊界框由5個預測值組成:x,y,w,h,和confidence。(x,y)坐標表示相對於網格單元邊界的盒子的中心。寬度和高度是相對於整個圖像的預測值。最后置信度預測表示預測框和真實值之間的IOU。
  每個網格單元還預測C個條件類別概率\(Pr(\)\({Class}_i\)\(|Object)\)。這些概率以網格單元包含對象為條件。我們只預測每個網格單元的一組類概率,而不管B框的數量。
  在測試時,我們將條件類別的概率與各個框的置信度預測相乘,

這為我們提供了對於每個框具體類別的置信度。這些分數既代表了該類別出現在方塊中的概率,又代表了預測框和目標的吻合度。
  為了在PASCAL VOC上評估YOLO,我們設S = 7,B = 2。PASCAL VOC具有20個標記的類別,因此C = 20。我們的最終預測是7×7×30的張量。

2.1.網絡設計
  我們將該模型實現為卷積神經網絡,並在PASCAL VOC檢測數據集上對其進行評估。網絡的初始卷積層從圖像中提取特征,全連接圖層輸出預測概率和坐標。
  我們的網絡架構受到圖像分類模型GoogLeNet的啟發。我們的網絡有24卷積層,然后是2個全連接層。代替GoogLeNet使用的啟動模塊,我們只需使用1×1降采樣層,然后使用3×3卷積層,類似於Lin等。完整的網絡如圖3所示。
  我們還訓練了旨在推廣快速目標檢測的Fast YOLO。Fast YOLO使用卷積層較少的神經網絡(24改為9個),而且這些層中的過濾器較少。除了大小,YOLO和Fast YOLO在網絡中所有訓練和測試參數都相同。

  我們網絡的最終輸出是7×7×30張量預測。

2.2.訓練
  我們在ImageNet 1000類別比賽數據集上預訓練卷積層。對於預訓練,我們使用圖3中的前20個卷積層,然后是平均池層和全連接層。我們訓練該網絡大約需要一周的時間,並在ImageNet 2012驗證集中,實現一次排名top-5的88%的准確率,與Caffe模型大全中的GoogLeNet模型相當。我們對所有訓練和推論都使用Darknet框架。
  然后,我們將模型轉換來執行檢測。Ren等人表明將卷積層和連接層同時添加到預訓練的網絡中可以提高性能。按照他們的示例,我們添加了四個卷積層和兩個完全連接的層,並進行了隨機初始化權重。檢測通常需要細粒度的視覺信息,因此我們提高了網絡的輸入分辨率從224×224到448×448。
  我們的最后一層可以預測類別概率和邊界框坐標。我們根據圖像的寬度和高度對邊界框的寬度和高度進行歸一化,使其介於0和1之間。我們將邊界框x和y坐標參數化為特定網格單元位置的偏移量,因此它們也被限制在0和1之間。
  我們對最后一層使用線性激活函數,而所有其他層均使用以下泄漏整流線性激活函數:

  我們針對損失函數的輸出中的平方和誤差進行了優化:
其中$l_i^{obj}$表示對象是否出現在單元格i中,$l_{ij}^{obj}$表示該單元格i中的第j個邊界框預測變量對該預測“負責”。

  請注意,如果該網格單元中存在對象,則損失函數只會懲罰分類錯誤(因此前面討論過條件分類概率)。如果該預測變量對真值框“負責”(即該網格單元中IOU最高的預測變量),它也只會懲罰邊界框坐標誤差。
  我們根據PASCAL VOC 2007和2012的訓練和驗證數據集對網絡進行了135輪的訓練。在2012進行測試時,我們還包含了VOC 2007測試數據進行訓練。在整個訓練過程中,我們使用的批次大小為64,動量為0.9,衰減為0.0005。
  我們的學習率時間表如下:在開始時期,我們將學習率從\(10^{-3}\)緩慢提高到\(10^{-2}\)。如果我們以較高的學習率開始,則由於不穩定的梯度,我們的模型經常會發散。我們繼續以\(10^{-2}\)訓練75輪,然后以\(10^{-3}\)訓練30輪,最后以\(10^{-4}\)訓練30輪。
  為了避免過度擬合,我們使用了dropout和廣泛的數據擴充。在第一個連接的層之后,比例為0.5的dropout層可防止層之間的共同適應。對於數據增強,我們引入了最多原始圖像尺寸20%的隨機縮放和平移。在HSV顏色空間中,我們還將圖像的曝光和飽和度隨機調整為至多1.5倍。

2.3.推理
  就像在訓練中一樣,預測測試圖像的檢測僅需要進行一次網絡評估。在PASCAL VOC上,網絡可預測每個圖像98個邊界框,並預測每個框的類概率。與基於分類器的方法不同,YOLO只需要進行一次網絡評估,因此測試速度非常快。
  網格設計在邊界框預測中強制執行空間分集。通常,一個對象屬於哪個網格單元是很明確的,並且網絡僅為每個對象預測一個框。 但是,一些大對象或多個單元格邊界附近的對象可以被多個單元格很好地定位。非最大抑制可用於修復這些多次檢測。盡管不像對於R-CNN或DPM而言那么至關重要,但非最大抑制可以增加2-3%的mAP。

2.4.YOLO的局限性
  由於每個網格單元僅預測兩個框且只能具有一個類別,因此YOLO對邊界框的預測施加了強大的空間約束。這種空間限制限制了我們的模型可以預測的附近物體的數量。我們的模型在成組出現的小物體(例如成群的鳥)上表現不佳。
  由於我們的模型通過學習數據來預測邊界框,因此很難將其推廣到具有新的或不同尋常的寬高比或配置的對象。我們的模型還使用相對粗糙的特征來預測邊界框,因為我們的體系結構從輸入圖像中有多個下采樣層。
  最后,雖然我們訓練的是近似檢測性能的損失函數,但損失函數在小邊界框與大邊界框中對待錯誤的方式相同。大盒子中的小錯誤通常是良性的,但小盒子中的小錯誤對IOU的影響更大。錯誤的主要來源是錯誤的定位。

3.與其他檢測系統的比較
  對象檢測是計算機視覺中的核心問題。檢測管線通常從輸入圖像中提取一組魯棒特征開始(卷積特征[6)。然后,使用分類器或定位器來識別特征空間中的對象。這些分類器或定位器在整個圖像上或圖像中區域的某些子集上以滑動窗口的方式運行。我們將YOLO檢測系統與幾個頂級檢測框架進行了比較,突出了關鍵的異同。
  DPM。可變形零件模型(DPM)使用滑動窗口方法進行對象檢測。DPM使用不相交的管線來提取靜態特征,對區域進行分類,預測高分區域的邊界框等。我們的系統用單個卷積神經網絡替換了所有這些不同的部分。網絡同時執行特征提取,邊界框預測,非最大抑制和上下文推理。並非靜態特征,網絡線性訓練特征並針對檢測任務對其進行優化。與DPM相比,我們的統一體系結構可導致更快更准確的模型。
  R-CNN。R-CNN及其變形使用區域提議而不是滑動窗口在圖像中查找對象。選擇性搜索生成潛在的邊界框,卷積網絡提取特征,SVM為該框評分,線性模型調整邊界框,非最大抑制消除重復的檢測。這個復雜的流水線的每個階段都必須獨立地精確調整,並且結果系統非常慢,在測試時每個圖像需要40秒鍾以上的時間。
  YOLO與R-CNN有一些相似之處。每個網格單元都會提出潛在的邊界框,並使用卷積特征對這些框進行評分。但是,我們的系統在網格單元建議上施加了空間限制,這有助於減輕對同一對象的多次檢測。我們的系統還提出了更少的邊界框,每個圖像只有98個邊界框,而選擇性搜索有2000個邊界框。最后,我們的系統將這些單獨的組件組合成一個共同優化的模型。
  其他快速檢測器Fast和Faster R-CNN專注於通過共享計算並使用神經網絡來提議區域而不是選擇性搜索來加快R-CNN框架。盡管它們相比R-CNN在速度和准確性方面有所改進,但兩者仍然都缺乏實時性能。
  許多研究工作都集中在加快DPM流程上。它們加快了HOG計算,使用級聯並將計算推入GPU中。但是,只有30Hz DPM實際上可以實時運行的。
  YOLO並沒有嘗試優化大型檢測管道的各個組件,而是完全淘汰了該管道,並且設計合理。
  像人臉或人這樣的單一類別的檢測器可以進行高度優化,因為它們必須處理更少的變化。YOLO是一種通用檢測器,可學習同時檢測各種物體。
  Deep MultiBox。與R-CNN不同,Szegedy等人訓練卷積神經網絡來預測感興趣區域,而不是使用選擇性搜索。MultiBox還可以通過用單個類別預測替換置信度預測來執行單個對象檢測。但是,MultiBox無法執行常規的對象檢測,並且仍然只是較大檢測管道中的一部分,需要進一步的圖像補丁分類。YOLO和MultiBox都使用卷積網絡來預測圖像中的邊界框,但是YOLO是一個完整的檢測系統。
  OverFeat。Sermanet等人訓練一個卷積神經網絡執行定位,並使該定位器執行檢測。OverFeat有效地執行滑動窗口檢測,但它仍然是不相交的系統。OverFeat針對定位而不是檢測性能進行優化。像DPM一樣,定位器只能在進行預測時看到本地信息。OverFeat無法推理全局上下文,因此需要進行大量后期處理才能產生連貫的檢測結果。
  MultiGrasp。我們的工作在設計上類似於Redmon等人的抓握檢測工作。我們用於邊界框預測的網格方法是基於MultiGrasp系統進行回歸分析的。 但是,抓取檢測比對象檢測要簡單得多。MultiGrasp只需要為包含一個對象的圖像預測單個可抓握區域。不必估計物體的大小,位置或邊界或預測其類別,僅需找到適合抓握的區域即可。YOLO預測圖像中多個類別的多個對象的邊界框和類別概率。

4.實驗
  首先,我們將YOLO與PASCAL VOC 2007上的其他實時檢測系統進行比較。為了了解YOLO和R-CNN變體之間的差異,我們探究了YOLO和Fast R-CNN(性能最高的R-CNN版本之一)在VOC 2007上的錯誤。基於不同的錯誤配置文件,我們證明了YOLO可用於對Fast R-CNN檢測進行評分,並減少背景假陽性引起的錯誤,從而顯着提高性能。我們還將介紹VOC 2012的結果,並將mAP與當前的最新方法進行比較。最后,我們在兩個藝術品數據集上證明了YOLO可以比其他檢測器更好地推廣到新領域。
4.1.與其他實時系統的比較
  在目標檢測方面的許多研究工作都集中在快速建立標准檢測管道上。但是,只有Sadeghi等人實際上產生了一個實時運行的檢測系統(每秒30幀或更高)。我們將YOLO與他們在30Hz或100Hz GPU上運行的DPM進行了比較。盡管其他工作尚未達到實時里程碑,但我們還比較了它們的相對mAP和速度,以檢查目標檢測系統中可用的精度-性能折衷。
  Fast YOLO是PASCAL上最快的目標檢測方法。據我們所知,它是現存最快的目標檢測器。憑借52.7%的mAP,它的准確度是以前實時檢測工作的兩倍以上。YOLO將mAP提升至63.4%,同時仍保持實時性能。
  我們還使用VGG-16訓練YOLO。該模型比YOLO更准確,但速度也要慢得多。與其他依賴VGG-16的檢測系統進行比較時,它很有用,但由於它比實時系統慢,因此本文的其余部分集中在我們更快的模型上。
  最快的DPM可以在不犧牲很多mAP的情況下有效地加快DPM的速度,但是它仍然將實時性能降低了2倍。與神經網絡方法相比,它還受到DPM檢測精度相對較低的限制。

  R-CNN minus R用靜態邊界框建議替換“選擇性搜索”。盡管它比R-CNN快得多,但是它仍然缺乏實時性,並且由於沒有好的建議而使准確性大大降低。
  Fast R-CNN可以加快R-CNN的分類速度,但是它仍然依賴於選擇性搜索,每個圖像可能需要2秒鍾左右的時間來生成邊界框建議。因此,它具有較高的mAP,但0.5 fps仍離實時性還很遠。
  最近的Faster R-CNN用神經網絡取代了選擇性搜索,以提出邊界框,類似於Szegedy等人。在我們的測試中,他們最准確的模型達到了7 fps,而較小的,精度較低的模型則以18 fps運行。Faster R-CNN的VGG-16版本高出10 mAP,但比YOLO慢6倍。ZeilerFergus的Faster R-CNN僅比YOLO慢2.5倍,但准確性也較低。

4.2. VOC 2007錯誤分析
  為了進一步檢查YOLO和最先進的探測器之間的差異,我們查看了VOC 2007的詳細結果細分。我們將YOLO與Fast RCNN進行了比較,因為Fast R-CNN是PASCAL上性能最高的探測器之一並且它的檢測結果是公開可用的。
  我們使用Hoiem等人的方法和工具。對於測試時的每個類別,我們查看該類別的前N個預測。每個預測要么是正確的,要么根據錯誤的類型進行分類:

  • 正確:分類正確並且IOU > 0.5
  • 定位:分類正確,0.1 < IOU <0.5
  • 相似:分類相似,IOU > 0.1
  • 其他:分類錯誤,IOU > 0.1
  • 背景:任意對象,IOU < 0.1

  圖4顯示了所有20個類別的平均每種錯誤類型的細分。
  YOLO在定位目標方面需要努力。定位錯誤占YOLO錯誤的比所有其他來源的總和還多。Fast R-CNN產生的定位錯誤少得多,但是背景錯誤卻多得多。最高檢測到的13.6%是不包含任何物體的誤報。Fast R-CNN預測背景錯誤的可能性是YOLO的三倍。

4.3.結合Fast R-CNN和YOLO
  與Fast R-CNN相比,YOLO產生的背景錯誤少得多。通過使用YOLO消除Fast R-CNN的背景檢測,我們可以顯着提高性能。對於R-CNN預測的每個邊界框,我們都會檢查YOLO是否預測了類似的框。如果是這樣,我們將根據YOLO預測的概率和兩個框之間的重疊來對該預測進行增強。
  最佳的Fast R-CNN模型在VOC 2007測試集上的mAP達到71.8%。與YOLO結合使用時,其mAP增長3.2%,達到75.0%。我們還嘗試將頂級Fast R-CNN模型與Fast R-CNN的其他幾個版本結合使用。這些組合的mAP在0.3和0.6%之間有小幅增加,有關詳細信息,請參見表2。

  YOLO的推動力不只是模型集成的副產品,因為結合使用不同版本的Fast R-CNN幾乎沒有好處。恰恰是因為YOLO在測試時犯了各種錯誤,所以它在提高Fast R-CNN的性能方面是如此有效。
  不幸的是,這種組合無法從YOLO的速度中受益,因為我們分別運行每個模型然后組合結果。 但是,由於YOLO如此之快,與Fast R-CNN相比,它不會增加任何可觀的計算時間。

4.4. VOC 2012結果
  在VOC 2012測試集上,YOLO的mAP得分為57.9%。這比當前的技術水平低,更接近使用VGG-16的原始R-CNN,請參見表3。與最接近的競爭者相比,我們的系統在小物體上表現不佳。在瓶、羊和電視/顯示器等類別中,YOLO得分比R-CNN或Feature Edit低8-10%。但是,在貓和火車等其他類別上,YOLO則具有更高的性能。

  我們的Fast R-CNN + YOLO組合模型是性能最高的檢測方法之一。與YOLO的組合使Fast R-CNN改進了2.3%,在公共排行榜上的排名上升了5位。

4.5.通用性:藝術品中的人檢測
  用於對象檢測的學術數據集從同一分布中提取訓練和測試數據。在現實世界的應用程序中,很難預測所有可能的用例,並且測試數據可能會與系統之前看到的有所不同。我們將YOLO與Picasso數據集和People-Art數據集上的其他檢測系統進行比較,這兩個數據集用於測試藝術品上的人物檢測。
  圖5顯示了YOLO和其他檢測方法之間的比較性能。作為參考,我們給出了所有模型僅在VOC 2007數據上訓練的檢測人的AP。在畢加索上,模型在VOC 2012上進行訓練,而在People-Art上,模型在VOC 2010上進行訓練。

  R-CNN在VOC 2007上具有較高的AP。但是,R-CNN在應用於藝術品時會大幅下降。 R-CNN將“選擇性搜索”用於邊界框建議,該建議針對自然圖像進行了調整。 R-CNN中的分類器步驟只能看到很小的區域,並且需要好的建議。
  DPM應用於圖稿時,可以很好地保持其AP。現有的工作理論認為DPM表現良好,因為它具有強大的對象形狀和布局空間模型。盡管DPM的降級程度不如R-CNN,但它是從較低的AP開始的。
  YOLO在VOC 2007上具有良好的性能,並且在應用於藝術品時,其AP的降級比其他方法要少。與DPM一樣,YOLO對對象的大小和形狀以及對象之間的關系以及對象通常出現的位置進行建模。圖稿和自然圖像在像素級別上有很大差異,但是在對象的大小和形狀方面相似,因此YOLO仍可以預測良好的邊界框和檢測。

5.野外實時檢測
  YOLO是一種快速,准確的物體檢測器,非常適合計算機視覺應用。 我們將YOLO連接到網絡攝像機,並驗證它是否保持實時性能,包括從攝像機獲取圖像並顯示檢測結果的時間。
  最終的系統是交互式的並且引人入勝。YOLO單獨處理圖像時,將其連接到網絡攝像頭后,其功能類似於跟蹤系統,可以檢測到物體在周圍移動和外觀變化。可以在我們的項目網站上找到該系統的演示和源代碼:http://:pjreddie.com/yolo/。

6.總結
  我們介紹了YOLO,這是用於對象檢測的統一模型。 我們的模型構造簡單,可以直接在完整圖像上進行訓練。 與基於分類器的方法不同,YOLO在直接與檢測性能相對應的損失函數上進行訓練,並且整個模型都在一起進行訓練。
  Fast YOLO是文獻中最快的通用目標檢測器,YOLO推動了實時目標檢測的最新發展。YOLO還很好地推廣到了新領域,使其成為依賴快速強大的目標檢測的應用程序的理想選擇。
致謝:這項工作得到了ONR N00014-13-1-0720,NSF IIS-1338054和艾倫傑出研究者獎的部分支持。

參考文獻(略)
以上。水平有限,翻譯不當之處請指正!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM