YOLO V1論文理解


摘要

作者提出了一種新的物體檢測方法YOLO。YOLO之前的物體檢測方法主要是通過region proposal產生大量的可能包含待檢測物體的 potential bounding box,再用分類器去判斷每個 bounding box里是否包含有物體,以及物體所屬類別的 probability或者 confidence,如R-CNN,Fast-R-CNN,Faster-R-CNN等。
YOLO不同於這些物體檢測方法,它將物體檢測任務當做一個regression問題來處理,使用一個神經網絡,直接從一整張圖像來預測出bounding box 的坐標、box中包含物體的置信度和物體的probabilities。因為YOLO的物體檢測流程是在一個神經網絡里完成的,所以可以end to end來優化物體檢測性能。
YOLO檢測物體的速度很快,標准版本的YOLO在Titan X 的 GPU 上能達到45 FPS。網絡較小的版本Fast YOLO在保持mAP是之前的其他實時物體檢測器的兩倍的同時,檢測速度可以達到155 FPS。

相較於其他的state-of-the-art 物體檢測系統,YOLO在物體定位時更容易出錯,但是在背景上預測出不存在的物體(false positives)的情況會少一些。而且,YOLO比DPM、R-CNN等物體檢測系統能夠學到更加抽象的物體的特征,這使得YOLO可以從真實圖像領域遷移到其他領域,如藝術。

核心思想

  • 整張圖作為網絡的輸入,把 Object Detection(物體檢測)問題轉化成一個Regression(回歸)問題,用一個卷積神經網絡結構直接在輸出層回歸bounding box的位置和bounding box所屬的類別。
  • Faster RCNN中也直接用整張圖作為輸入,但是faster-RCNN整體還是采用了RCNN那種proposal+classifier的思想,只不過是將提取proposal的步驟放在CNN中實現了。

 

算法特點

  • 將物體檢測作為回歸問題求解。基於一個單獨的End-To-End網絡,完成從原始圖像的輸入到物體位置和類別的輸出,輸入圖像經過一次Inference,便能得到圖像中所有物體的位置和其所屬類別及相應的置信概率。
  • YOLO網絡借鑒了GoogLeNet分類網絡結構。不同的是,YOLO未使用Inception Module,而是使用1x1卷積層(此處1x1卷積層的存在是為了跨通道信息整合)+3x3卷積層簡單替代。
  • Fast YOLO使用9個卷積層代替YOLO的24個,網絡速度更快,在Titan X GPU上的速度是45 fps(frames per second),加速版的YOLO差不多是155fps。但同時損失了檢測准確率。
  • 使用全圖作為 Context 信息,這一點和基於sliding window以及region proposal等檢測算法不一樣。與Fast RCNN相比,誤檢測率(把背景錯認為物體)降低一半多。
  • 泛化能力強,可以學到物體的generalizable representations,在自然圖像上訓練好的結果在藝術作品中的依然具有很好的效果。

 

優缺點

YOLO模型相對於之前的物體檢測方法有多個優點:

1、YOLO檢測物體非常快。
因為沒有復雜的檢測流程,只需要將圖像輸入到神經網絡就可以得到檢測結果,YOLO可以非常快的完成物體檢測任務。標准版本的YOLO在Titan X 的 GPU 上能達到45 FPS。更快的Fast YOLO檢測速度可以達到155 FPS。而且,YOLO的mAP是之前其他實時物體檢測系統的兩倍以上。

2、YOLO可以很好的避免背景錯誤,產生false positives。
不像其他物體檢測系統使用了滑窗或region proposal,分類器只能得到圖像的局部信息。YOLO在訓練和測試時都能夠看到一整張圖像的信息,因此YOLO在檢測物體時能很好的利用上下文信息,從而不容易在背景上預測出錯誤的物體信息。和Fast-R-CNN相比,YOLO的背景錯誤不到Fast-R-CNN的一半。

3、YOLO可以學到物體的泛化特征。
當YOLO在自然圖像上做訓練,在藝術作品上做測試時,YOLO表現的性能比DPM、R-CNN等之前的物體檢測系統要好很多。因為YOLO可以學習到高度泛化的特征,從而遷移到其他領域。

盡管YOLO有這些優點,它也有一些缺點:

1、YOLO的物體檢測精度低於其他state-of-the-art的物體檢測系統。
2、YOLO容易產生物體的定位錯誤。
3、YOLO對小物體的檢測效果不好(尤其是密集的小物體,因為一個柵格只能預測2個物體)。


 

 

 

 

舉例說明:在本文中,網絡結構參考GooLeNet模型,包含24個卷積層和2個全連接層,卷積層主要用來提取特征,全連接層主要用來預測類別概率和坐標。對於卷積層,主要使用1x1卷積來做channle reduction,然后緊跟3x3卷積。對於卷積層和全連接層,采用Leaky ReLU激活函數,但是最后一層卻采用線性激活函數。除了上面這個結構,文章還提出了一個輕量級版本Fast Yolo,其僅使用9個卷積層,並且卷積層中使用更少的卷積核。圖像輸入為448x448(強制轉換),取S=7,B=2,C=20 (因為PASCAL VOC有20個類別),所以最后有 7∗7∗30個tensor。如下圖。

 

 

訓練

 

 

測試

NMS:

獲取目標檢測結果:

 

 

參考:

https://blog.csdn.net/hrsstudy/article/details/70305791

https://blog.csdn.net/sunshineski/article/details/83518165


免責聲明!

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



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