目錄
相關內容:
一、概覽
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×1的reduction 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需要對目標做出預測。
- 目標誤差與類別誤差,目標誤差表示B個bbox中每個出現目標。類別誤差表示當前S×S的grid預測出現的類別。
2.3 缺點
小目標效果差,寬高比不規則物體效果差,IOU指標的不合理性
- 每個S×S的grid只預測得出一個類別,但是實際上每個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 YOLO與fast-RCNN的boost
YOLO可以檢測出更少的background,而fast-RCNN可以達到更高的mAP-71.8,因此,兩個網絡可以通過boosting的過程結合。
通過實驗,YOLO對與提升RCNN的性能非常有幫助。在PASCAL2012的數據集上,YOLO與RCNN結合能夠達到最高的mAP
3.4 實時檢測模型對比
在三個數據集上進行對比,VOC2007,Picasso,People-art上。
四、結論及個人評價
將雙階段的目標檢測模型改進爲單階段目標檢測模型,非常具有開創性。並且將bounding box的座標值預測爲張量,將目標檢測的定位實現爲一個迴歸問題。
相關內容:
YOLOv3:Darknet代碼解析(一)安裝Darknet
YOLOv3:Darknet代碼解析(六)簡化的程序與卷積拆分