Paper Reading:You Only Look Once:Unified,Real-Time Object Detection

在這裏插入圖片描述
論文鏈接:https://arxiv.org/abs/1506.02640

YOLO_v1閱讀報告

摘要

​ 本文提出一種新的目標檢測算法YOLO,不同於先前的檢測算法通過重新利用分類器進行目標檢測,本文提出的YOLO算法將目標檢測問題看作迴歸問題從空間上定位邊界框同時預測相應類別的概率,使用單個神經網絡通過一次估計直接從整張圖片預測邊界框和類的概率。由於整個檢測過程只使用單個神經網絡,檢測效果能從端到端直接進行優化。

​ 統一檢測結構的檢測速度非常快速。基礎的YOLO模型能實時地以每秒45幀的速度處理圖片。更小版本的網絡Fast YOLO在保持兩倍mAP於其他實時檢測器的基礎下做到每秒155幀處理圖片的速度。與最先進的檢測系統相比,YOLO產生更多的定位誤差但其背景預測誤差要小很多。最後,YOLO能學到檢測目標非常一般的表示。在從自然圖像泛化到其他領域如藝術圖像,YOLO比其他方法,例如DPM,R-CNN效果都要好。

統一檢測

​ YOLO網絡使用來自整個圖像的特徵來預測每個邊界框,同時也預測所有類別的所有邊界框。本算法將輸入圖像劃分成 $ S \times S$ 塊網格結構,目標中心落在網格單元中。每個網格單元預測B個邊界框和對應的置信度,置信度反映邊界框是否包含目標以及預測的精度如何。


confidence=Pr(object)IOUpredtruth confidence =Pr(object)*IOU_{pred}^{truth}
​ 每個邊界框由5個預測量組成:x,y,w,h,confidence(x,y)(x,y)表示邊界框中心位置的座標;w,hw,h是和整幅圖相關的預測量;confidenceconfidence表示預測框和真實值的IOUIOU值。

​ 每個網格單元也預測 CC 個條件類概率,Pr(ClassiObject)Pr(Class_i|Object)。這些概率的計算在網格單元包含一個目標的基礎上進行,只計算每個網格單元上一系列類的概率。

每個邊界框中特定類的置信度計算公式:
Pr(ClassiObject)Pr(object)IOUpredtruth=Pr(Classi)IOUpredtruth Pr(Class_i|Object)*Pr(object)*IOU_{pred}^{truth}=Pr(Class_i)*IOU_{pred}^{truth}
在這裏插入圖片描述

網絡設計

​ YOLO的網絡有24個卷積層緊接着2個全連接層,同時簡單使用1×11\times 1衰減層緊接着 3×33\times 3 卷積層。全部網絡效果圖見下圖:

在這裏插入圖片描述
該網絡的最終輸出是7×7×307\times 7\times 30 的預測張量。

訓練

​ 本文所提YOLO算法在ImageNet數據集上進行預訓練,接着對GoogLeNet模型進行修改來用來檢測。同時聯合隨機初始化權重的四層全卷積網絡和兩層全連接層來進行預訓練以提升效果。考慮到檢測通常要求細粒度的視覺信息,我們將輸入網絡的分辨率從224×224224\times 224增加到448×448448\times 448 。網絡的最後一層同時預測類概率和邊界框的座標,同時我們對邊界框尺寸和座標進行歸一化處理,以便更好地進行訓練。

​ 最後一層採用線性激活函數,其他層使用leaky rectified linear activation:
ϕ(x)={xif x>00.1xotherwise} \phi(x)=\left\{ \begin{array}{ll} x & \textrm{if $x>0$}\\ 0.1x & \textrm{otherwise}\\ \end{array} \right\}
​ 本文對模型輸出的平方誤差和進行優化,其具備易於優化的特點但與最大化平均精度的目標不匹配。一方面,它將定位誤差和分類誤差看的同等重要是不完美的;另一方面,在每幅圖像中有不少網格單元不包含目標,也就是說其置信度爲零,會極大地影響包含目標單元的梯度計算,導致模型穩定性變差。

​ 爲解決上述問題,提出兩點針對性措施:

  1. 增加邊界框座標損失並減小置信度預測損失
  2. 對邊界框的寬和高進行平方根處理來突出小邊界框誤差的貢獻能力

損失函數表達式:

在這裏插入圖片描述
YOLO網絡要在PASCALVOC2007PACALVOC2012PASCAL VOC 2007和PACAL VOC2012訓練集和驗證集上進行135epochsepochs 的訓練。當測試2012的測試數據時我們也在2007的測試集上進行訓練,整個訓練過程的批處理尺寸爲64,動量爲0.9,衰減係數爲0.0005。爲避免過擬合,網絡中還進行dropout和數據增強。

推斷

​ 就如訓練階段和預測階段所描述的那樣,YOLO算法只需要一次網絡估計。在PASCAL VOC數據集上,網絡對每張圖像的98個邊界框和每個邊界框的類別概率進行預測。由於YOLO算法只需要進行一次網絡估計,它的運行速度十分快,這正是其優於R-CNN,DPM等基於分類器的檢測算法的優越性所在。

​ 網格的設計使得在邊界框的預測上實現空間的劃分,通常這也是清楚的當網格單元中有一個目標存在並且爲每個目標對邊界框進行預測。但是,有些尺寸大的目標或者正好位於網格單元邊界的目標會同時被多個不同網格單元定位。這時,需要使用非極大值抑制來適應這種情況。非最大抑制對於YOLO的性能的影響不像對於R-CNN或DPM那樣重要,但也能增加2−3%的mAP。

侷限性

YOLO給邊界框預測強加空間約束,因爲每個網格單元只預測兩個框和只能有一個類別。這個空間約束限制了我們的模型可以預測的鄰近目標的數量,難以預測羣組中出現的小物體(比如鳥羣)。

由於我們的模型學習是從數據中預測邊界框,因此它很難泛化到新的、不常見的長寬比或配置的目標。模型也使用相對較粗糙的特徵來預測邊界框,因爲輸入圖像在神經網絡中經歷了多個下采樣層。

最後,我們的訓練基於一個逼近檢測性能的損失函數,這個損失函數無差別地處理小邊界框與大邊界框的誤差。大邊界框的小誤差通常是無關要緊的,但小邊界框的小誤差對IOU的影響要大得多。我們的主要錯誤來自於不正確的定位。

實驗與結論

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在實驗中,可以看出YOLO算法的定位誤差有19%,而背景判斷誤差只有4.75%;R-CNN算法的背景判斷誤差有13.6%,而定位誤差只有8.6%。綜合以上表現,可以將YOLO和R-CNN進行聯合運行,各自規避自身高錯誤率部分,提高算法性能。同時YOLO算法的實時性極好,兩者結合使用的用時與單獨使用R-CNN幾乎一致,但精度可上升3.2%,在ImageNet競賽的排名也能上升五位到達第四名。

在小目標識別領域,YOLO的效果不佳,但在泛化性能上YOLO要優於R-CNN和DPM算法。實驗中可看出R-CNN和DPM在自然圖像上表現良好但在藝術作品上性能下降明顯,而YOLO算法在自然圖像和藝術作品上都表現出極好的效果。

個人解讀

YOLO算法表現出極好的實時性和背景識別性能,但在小的相鄰目標的識別表現不佳,這一切都是由其對網格單元進行處理分析的策略決定的——每個網格單元只預測兩個邊界框和一個類別。考慮到上述因素,本文可以在網格劃分和相關網格的處理上進行改進優化來更好地規避該缺陷。

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