YOLO_v1論文詳解You Only Look Once,Unified, Real-Time Object Detection

目錄

一、概覽

1.1 貢獻點

1.2 背景

雙階段

單階段

二、方法

2.1 Unified detection

2.2 網絡結構設計

2.3 缺點

三、實驗

3.1 模型性能對比

3.2 錯誤樣本分析

3.3 YOLO與fast-RCNN的boost

3.4 實時檢測模型對比

四、結論及個人評價


相關內容:

深度學習目標檢測2013-2018模型總結概覽及詳解

一、概覽

1.1 貢獻點

  • 將目標檢測的定位問題轉化爲迴歸問題
  • 將目標檢測實現爲單個網絡,端到端實現(單階段目標檢測模型)
  • 幀率快,達到實時幀率。YOLO達到45fps,fast YOLO達到155fps
  • 與SOTA(state of the art)模型相比,YOLO有更大的定位誤差,但是有更少的僞正樣本。
  • 比DPM或者R-CNN學出更具general的representations。

1.2 背景

深度學習目標檢測2013-2018單雙階段主流模型概覽及詳解

https://blog.csdn.net/weixin_36474809/article/details/84172579

目標檢測模型旨在從圖片中定位出目標。分爲單階段目標檢測模型和雙階段目標檢測模型。

雙階段

一個階段提出備選框,一個階段對備選框進行判斷。是一個兩階段級聯的網絡。主要爲RCNN系列的網絡。

  •     RCNN
  •     SPPNet(Spatial Pyramid Pooling)
  •     Fast RCNN
  •     Faster RCNN
  •     RFCN(Region based Fully ConvNet)
  •     Mask RCNN
  •     Light Head RCNN

單階段

單階段的網絡,整個生成備選框的過程一體化的實現。代表有YOLO系列和SSD(single shot detector)

  •     DetectorNet
  •     OverFeat
  •     YOLO
  •     YOLOv2 and YOLO9000
  •     SSD(Single Shot Detector)

二、方法

2.1 Unified detection

之前的雙階段模型,如RCNN系列,將模型分爲兩部分,一部分給出備選框,另一部分進行備選框的預測。而YOLO將圖片作爲一個整體進行預測。

分格:

  • YOLO將輸入圖片分爲S*S個方格,如果目標檢測的物體Object存在於方格之中,則方格負責對物體做出預測。
  • 每個方格預測出B個備選框,備選框帶有置信概率(confidence scores),注意此置信概率是有目標物體的置信概率,不是類別的置信概率
  • 置信概率(confidence scores)定義爲Pr(Object)*IOU, 即分類的物體的置信概率與標定框和網絡預測框的IOU交併比。
  • 每個bounding box的預測包括五個量。x,y中心點的座標,w,h寬和高,confidence置信概率
  • 每個grid預測得出C個條件概率的標籤Pr(Class_i | Object)
  • 測試階段, 用條件概率算出每個格子的概率。 Pr(Class_i | Object)*Pr(Object)*IOU=Pr(Class_i)*IOU

最終,每個S*S的方格預測得出B個備選框(包含5個座標,x,y,w,h,confidence),同時,每個方格預測得到每個C類的置信概率。最終,網絡預測輸出一個張量 S*S*(B*5+C). 例如在PASCAL VOC數據集上,作者採用了S=7,也就是7×7個方格,B=2,每個方格負責預測得到2個備選框,同時,因爲網絡是20個分類標籤,是C=20,所以最終預測的張量是:S*S*(B*5+C)=7×7×(2×5+20)

2.2 網絡結構設計

採用卷積神經網絡的結構,卷積層提取特徵,最終全連接層進行張量的預測,張量包含概率和座標。沿用GoogLeNet的結構。用1×1reduction layer後面跟3×3的卷積layer。

預測框被歸一化爲0-1之間。

激活函數:Leakey ReLU

Loss函數:

由兩部分構成,定位誤差與分類誤差。localization error與classification error, 定位誤差相對於分類誤差更重要一些,因此將定位誤差的係數 λ_coord設爲5,分類誤差的係數 λ_noobj設爲0.5

  • 平方誤差與平方根誤差:定位時候,平方誤差對大目標更加敏感,但是大目標與小目標同等重要,因此,定位誤差由兩項組成,平方誤差與平方根誤差。
  • 表示目標object出現在格子 i 中。所以當前格子需要對類別做出預測。,表示每個S*S的格子需要預測出正確的類別。
  • 表示每個S*S生成的格子,生成了B個Boundingbox,這B個bounding box需要對目標做出預測。
  • 目標誤差與類別誤差,目標誤差表示Bbbox中每個出現目標。類別誤差表示當前S×Sgrid預測出現的類別。

2.3 缺點

小目標效果差,寬高比不規則物體效果差,IOU指標的不合理性

  • 每個S×Sgrid只預測得出一個類別,但是實際上每個grid可能有多個類別均在此grid之中。同時,對於小目標的檢測效果較差。
  • 因爲對已有的數據集進行訓練,當實際的備選框出現特殊的寬高比的時候(比如長條狀),則檢測效果就會變差。
  • IOU標準的缺點,IOU是交併比,但是對於小物體,並集的面積偏小,會導致IOU偏大,因此IOU有一定的不合理性。

三、實驗

PASCAL VOC2007數據集上進行實驗。並且與其他實時模型進行比較,並與雙階段模型,如R-CNN進行對比。

3.1 模型性能對比

對比相應的幀率和mAP,可以看出,實時模型中,YOLOmAP最高,且Fast YOLO速率最快。

3.2 錯誤樣本分析

用IOU與分類作爲評價標準,目標檢測結果分爲下列幾類。

  • Correct正確樣本:分類正確且 IOU>0.5,
  • Loc定位錯誤樣本,分類正確且 0.1<IOU<0.5
  • Sim相近樣本:分類相近,且 IOU<0.1
  • Other其他:分類錯誤,IOU>0.1
  • Background背景:IOU<0.1 (貢獻點中提到,YOLO可以檢測出更少的background,從下面圖中即可看出)

3.3 YOLOfast-RCNNboost

YOLO可以檢測出更少的background,而fast-RCNN可以達到更高的mAP-71.8,因此,兩個網絡可以通過boosting的過程結合。

通過實驗,YOLO對與提升RCNN的性能非常有幫助。在PASCAL2012的數據集上,YOLORCNN結合能夠達到最高的mAP

3.4 實時檢測模型對比

在三個數據集上進行對比,VOC2007PicassoPeople-art上。

 

 

四、結論及個人評價

將雙階段的目標檢測模型改進爲單階段目標檢測模型,非常具有開創性。並且將bounding box的座標值預測爲張量,將目標檢測的定位實現爲一個迴歸問題。

相關內容:

深度學習目標檢測2013-2018模型總結概覽及詳解

目標檢測網絡mAP的測試的python實現

YOLOv3:Darknet代碼解析(一)安裝Darknet

YOLOv3:Darknet代碼解析(二)代碼初步

YOLOv3:Darknet代碼解析(三)卷積操作

YOLOv3:Darknet代碼解析(四)結構更改與訓練

YOLOv3:Darknet代碼解析(五)權重與特徵存儲

YOLOv3:Darknet代碼解析(六)簡化的程序與卷積拆分

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章