CNN之yolo目標檢測算法筆記


本文並不是詳細介紹yolo工作原理以及改進發展的文章,只用做作者本人回想與提綱。

1.yolo是什么

  輸入一張圖片,輸出圖片中檢測到的目標和位置(目標的邊框)

yolo名字含義:you only look once

 

對於yolo這個神經網絡:

(Assume  s*s柵格, n類可能對象, anchor box數量為B)

Input       448*448*3

Output     s*s*(5 * B +n)的tensor

2.CNN目標檢測之yolo

在目標檢測領域,DPM方法采用滑動窗口檢測法將原圖片切出一小塊一小塊,先選區再卷積提取特征,先整張圖卷積提取特征再選區,然后投入神經網絡進行圖像分類操作處理。RCNN方法采用region proposal來生成整張圖像中可能包含待檢測對象的可能的bounding boxes然后用分類器評估這些boxes,再post processing來改善bounding box並消除重復的目標,最后基於整個場景中其他物體重新對boxes打分(這些環節都是分開訓練)。其實都是把目標檢測問題轉化成了一個分類問題。2015年yolo論文公開,提出了一種新思路,將目標檢測問題轉化成了一個regression problem。Yolo 從輸入的圖像,僅僅經過一個神經網絡直接得到bounding box和每個bounding box所屬類別的概率。正因為整個過程下來只有一個神經網絡,所以它可以進行端到端的優化。

Yolo優缺點:速度極快;在背景上預測出不存在物體的概率要低;能夠學習抽象的特征,可用於藝術畫像等。但定位偶爾出現錯誤。

3.Unified Detection

先分s*s個柵格;

每一個柵格預測B個bounding boxes以及每個bboxes的confidence score。

        Confidence score =P(Object) * IOUtruth_pred

        若bbox包含物體,則P(Object)=1,否則為0

每一個柵格預測n個條件類別概率P(Classi|Object)——在一個柵格包含一個Object的前提下它屬於某個類的概率。為每一個柵格預測一組類概率。

在測試的非極大值抑制階段,對於每個柵格:將每個bbox的置信度和類概率相乘,

class-specific confidence scores=Confidence * P(Classi|Object) = P(classi) * IOU,

結果既包含了類別信息又包含了對bbox值的准確度。然后設置一個閾值,把低分的濾掉,剩下的投給非極大值抑制,然后得到最終標定框。

4.模型訓練

  首先預訓練一個分類網絡。在 ImageNet 1000-class competition dataset上預訓練一個分類網絡,這個網絡是Figure3中的前20個卷機網絡+average-pooling layer(平均池化層)+ fully connected layer(全連接層) (此時網絡輸入是224*224)。

  然后訓練我們的檢測網絡。轉換模型去執行檢測任務,《Object detection networks on convolutional feature maps》提到說在預訓練網絡中增加卷積和全鏈接層可以改善性能。在作者的例子基礎上添加4個卷積層和2個全鏈接層,隨機初始化權重。檢測要求細粒度的視覺信息,所以把網絡輸入把224*224變成448*448。

5.損失函數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM