1. 程式人生 > >【目標檢測】[論文閱讀][yolo] You Only Look Once: Unified, Real-Time Object Detection

【目標檢測】[論文閱讀][yolo] You Only Look Once: Unified, Real-Time Object Detection

論文名稱《You Only Look Once: Unified, Real-Time Object Detection》

摘要

1、之前的目標檢測方法採用目標分類思想解決檢測問題,本文提出一個基於迴歸的框架,用於目標的定位及識別。
2、一個網路,一次預測即可獲得目標的檢測框(bounding boxs)和 類別概率。
3、所提目標檢測框架運算速度非常快。基本YOLO 模型45幀/S。簡化版本Fast YOLO模型可達到155F/s.
4、相比其他檢測器,yolo定位誤差較大,但是flase positive 較少。
5、YOLO泛化能力較高。

1、引言

1、現有目標檢測框架典型的有滑窗檢測(如 DPM演算法)和Region proposal方式(如 RCNN)。
2、YOLO將目標檢測是為迴歸問題。通過畫素值直接預測bboxes和類別概率。
3、YOLO通過全圖訓練網路,並優化檢測器效能,該方式有如下優勢:
 1)YOLO fast.因為基於迴歸的框架簡單,不需要額外複雜流程
 2)YOLO 檢測目標時,利用全圖資訊

。與滑窗和基於候選框的檢測技術不同,YOLO在訓練及檢測的時候不僅利用目標特徵還學習上下文資訊。Faster RCNN產生虛警的願意是沒用利用上下文資訊。
 3)YOLO學習泛化的目標資訊。
在精度上相差很多。

2、統一的檢測器

2.1網路設計:特徵提取層+額外分類檢測層

  • 受GoogleLetnet 網路設計啟發。(腦補一下:googleLenet共22層,考慮pooling 層,共27層。後接平均池化層,並送入分類器)GoogleLetNet連結
  • YOLO網路設計共24層卷積層,後接2層全連結層。
  • 預訓練對前20層進行分類訓練(參考GoogleNet ,修改 *1、*3組合)。後面4個卷積層和2個全連結層用於檢測。預訓練影象尺寸用224*224(imageNet 影象集)
  • 檢測影象輸入尺寸變尺寸至448*448。
    這裡寫圖片描述

2.2 關鍵點設計

  • 將輸入影象分為個grid cell,目標中心所在的 cell,負責對此目標的檢測及識別。
  • 每個cell預測B個 bboxes和相應的置信度confidence=Pr(object)IOUtruthpred。如果沒目標Pr(object)=0,confidence為0,有目標Pr(object)=1,則confidence為IOU值。(預測階段咋整?)
  • 每個bboxes 包含5個引數:x,y,w,h和置信度 confidence。其中(x,y)座標代表所檢測目標的中心點,該值是相對於grid cell的邊緣,因此取值範圍【0,1】。w
    ,h
    相對於整個影象尺寸,取值範圍【0,1】。
  • 目標。

2.3 訓練

從網路圖可以看出,448影象輸入,經過6次pooling,影象大小變為 448/2^6=448/64=7
網格設定S=7是否與最終輸出的featureMap大小有關?
輸出大小 為7*7*(2*5+20)=7*7*30=1470,每一個點都是前一層向量迴歸而來(全連結,內積計算預測)。
訓練誤差採用均方差。考慮存在目標的(座標預測誤差、置信度誤差、類別誤差)+不是目標的置信度。
訓練中的誤差函式如下,加重有目標的位置比重λcoord=5,不是目標的置信度λnoobj=0.5

這裡寫圖片描述

這裡寫圖片描述

2.4 測試

Test的時候,每個網格預測的class資訊(Pr(Classi|Object))和bounding box預測的confidence資訊( Pr(Object)IOUtruthpred ) 相乘。
說白了,就是預測置信度與類別概率的乘積。