目標檢測算法——YOLOV1解析

前言

以前打算分析caffe源碼的,可是因爲工做較忙就耽誤了。可是但願從此仍是能堅持寫博客,對知識進行總結梳理,鍛鍊本身的表達能力。算法

最近一段時間在研究yolo算法,發現這個算法很是的優美,而且做者更新到了第三版。經過對該算法的學習,能夠學習到如何進行算法的優化與實現。可是正如吳恩達在深度學習課程裏面所說的,yolo的論文很是的難讀,做者寫文章的時候着重在寫模型的測試部分,而對於模型的訓練講解的很是的少。這讓一開始閱讀yolo的論文時,有種不知因此然的感受。還好yolo的做者提供的源代碼,使得不懂的地方能夠經過閱讀來進行增強理解。在這裏很是佩服yolo的做者,不只科研能力強,工程能力也很是的棒,竟然本身用C語言擼了一個深度學習框架,佩服。是我學習的榜樣!!網絡

好了,廢話很少說了,開始咱們的正題吧。框架

算法原理

對於一個新的深度學習算法,我常常從輸入輸出着手。咱們來看一下YOLO的輸入出是什麼?
首先yolo的輸入是一張448x448大小的圖片,而後通過網絡以後輸出爲30個值。那麼這30個值是什麼呢?咱們來進行一一的分析。ide

  1. 前面20個爲物體的類別數。爲何是20呢?由於在論文中yolo是要檢測20種物體,而後進行one-hot編碼,因此維度就是20;
  2. 第21-22個爲兩個confidence。這個詞咱們有點陌生。中文叫作置性度,也就是物體框裏面包含物體的可能性。
  3. 第23-30個爲兩組x,y,w,h值,即物體框的中心座標及寬高,共8個值。

知道了網絡的輸出數據,咱們就能夠知道訓練數據的標籤長怎麼樣了。訓練數據的標籤一定也有:類別數、confidence和(xywh)組成。那圖片的標籤具體是怎麼打的呢?咱們接着分析。學習

  1. 首先yolo將一張圖片分紅SxS大小,在論文中爲7x7,以下圖所示

clipboard.png

在上面的圖中,第一個網絡因爲沒有咱們要識別的物體,因此標籤的類別數、confidence和xywh都爲0,接着第二個網格也是如此。。。直到紅色框的網格處,咱們發現有一隻狗,這是標籤爲狗的類別數,confidence爲1,xywh爲包含狗的物體框的中心座標和寬高。那紅色框的上面那個框的標籤數據是什麼呢?它也包含了狗啊。在yolo中只用物體框中心點所在的網格進行預測,所以紅色框周圍的網格的標籤數據也全都是0。
通過這樣計算,咱們能夠獲得,一張圖片最終的標籤數爲[20(類別)+2(confidence)+8(xywh)]xSxS測試

  1. 待續。。。。。
相關文章
相關標籤/搜索