論文提要“You Only Look Once: Unified, Real-Time Object Detection”

轉載於:http://blog.csdn.net/cv_family_z/article/details/46803421

版權歸原作者所有.


項目主頁:http://pjreddie.com/darknet/yolo/

這篇文章着重在檢測的速度提升,區別於之前的方法是用分類器來做檢測,文章對bbox和對應的類概率進行迴歸,檢測速度可以達到45f/s,mAP與原始的R-CNN差不多。

出現原因: 
CNN在分類上已經可以達到實時,而在檢測上R-CNN需要幾秒的時間處理一張圖片,主要是由於proposal的提取時間需要約1~2s的時間,然後還有很多後續步驟:proposal的特徵學習,矯正bbox,消除虛警等,最好的方法需要2~40s時間處理完畢。並且R-CNN的每個檢測步驟是分離的不便整體優化。

一體化的檢測: 
輸入圖像劃分爲7*7的網格,如果一個物體的中心落在某個格子內,則對應的格子負責檢測該物體。每個網格預測一個bbox和對應的類概率,系統流程如下: 
這裏寫圖片描述

系統使用cnn實現並在VOC上測試,初始卷積層從圖像中提取特徵,全連接層預測概率和座標。網絡框架與GoogleNet類似,擁有24個卷積層和2個全連接層,網絡如下圖所示,最終的輸出是對7*7網格的預測,每個網格預測20類的概率和座標。 
這裏寫圖片描述

網絡訓練: 
使用ImageNet進行初始訓練,使用圖3中的前20層加一個maxpooling層及兩個全連接層進行訓練,1星期訓練得到top-5error爲86%。由於檢測需要更爲精細的信息,作者將網絡輸入由224*224調整至448*448.

網絡的最後一層預測類概率和bbox,在最後一層使用邏輯激活函數,其他層使用leaky ReLU: 
這裏寫圖片描述

網絡輸出使用平方和誤差,並引入尺度因子λ 對類概率和bbox的誤差進行加權,同時爲了反映出偏離在大的bbox中的影響比較小,文章使用bbox寬高的平方根,最終的損失函數是: 
這裏寫圖片描述 
爲了避免過擬合,作者使用了dropout和數據增加。

參數化類概率: 
49個網格給出20類的概率,一幅圖像產生980個預測的概率,大部分概率爲0。這會導致訓練離散,作者引入了一個變量解決這個問題:即某位置是否有物體存在的概率。因此除了20個類概率還有一個“objectness”概率Pr(Object),則某位置每一類的非條件概率爲Pr(Object)與條件概率的乘積; 
Pr(Dog) = Pr(Object)*Pr(Dog|Object) 
在每個位置都對Pr(Object)進行更新,而只在有物體存在時纔對Pr(Dog|Object)更新。

YOLO的限制: 
  1.由於YOLO具有極強的空間限制,它限制了模型在鄰近物體上的預測,

    如果兩個物體出現在同一個cell中,模型只能預測一個物體,所以在小物體檢測上會出問題。

  2 另外模型對訓練數據中不包含的物體或具有異常長寬比的物體擴展不是太好。

  3 loss函數對大小bbox採取相同的error也是個問題。

實驗結果: 
在voc2012上的實驗結果對比如下,YOLO在不基於R-CNN的方法中mAP最高,但比state-of-art低。 
這裏寫圖片描述

YOLO的速度提升比較明顯,在voc2007上的實驗結果對比如下: 
這裏寫圖片描述

0

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