YOLO理解

1、YOLO v1網絡

一、網絡結構ide

20170530021508530

(1)最後一層使用線性激活函數;函數

(2)其餘各層使用leaky ReLU的激活函數:spa

637085-20160804120550184-381051244

二、Training.net

(1) 將原圖劃分爲SxS的網格。若是一個目標的中心落入某個格子,這個格子就負責檢測該目標,即Pr(object)=1。S取7;設計

(2) 每一個網格要預測C個類別機率Pr(classi|object),C爲20(不須要表示背景這一類,由於這20類機率都爲0即表示爲背景)。用於訓練用的每一個網格類別標籤爲,若是實際bounding box的中心在該網格上,且是第i類,則對應位置的機率爲1,其餘類別機率爲0,不然C個類的機率都爲0;blog

(3) 每一個網格要預測B個bounding box:(x, y, w, h),論文中B取2。ci

關於(x,y,w,h)的定義很少說,看以下例子:get

當某個格子含有object時,標籤按上圖方式計算。博客

(4)每一個網格還要預測B個condidence:

若是格子內有物體,則Pr(Object)=1,此時置信度等於IoU。若是格子內沒有物體,則Pr(Object)=0,此時置信度爲0。當格子內有物體標籤爲1,沒物體標籤爲0。(不知理解得是否正確

(5)因爲輸入圖像被分爲SxS網格,每一個網格包括B個bounding boxes,每一個box有5個預測量:(x, y, w, h, confidence),每一個網格還有預測C個類別的機率,因此網絡輸出是SxSx(5xB+C)大小。

(6)損失函數:

這裏注意如下幾點:

1)image表示第i個網格,第j個bounding box含有object,image表示第i個網格,第j個bounding box不含有object,image表示第i個網格含有object;

2)因爲絕大部分網格中不包含目標,致使絕大部分box的confidence=0,因此在設計confidence偏差時同等對待包含目標和不包含目標的box也是不合理的,不然會致使模型不穩定。因此在預測偏差中乘以懲罰權重λnoobj=0.5。除此以外,同等對待4個值(x, y, w, h)的座標預測偏差與1個值的conference預測偏差也不合理,因此在座標預測偏差偏差以前乘以權重λcoord=5。

3)對於大的box的小偏差確定要比小box的小偏差影響更小,因而,採用對w,h,x,y取平方根的作法,由於平方根函數的圖像隨着x的增大會變得平緩。

4)加入了image這一項,有這個好處,可讓沒有物體的狀況下confidence的輸出預測值爲較低(接近0)。也就是說,上式的損失函數,能夠同時訓練讓confidence高與讓confidence低兩種狀況。

5)咱們發現每一項loss的計算都是L2 loss,即便是分類問題也是。因此說yolo是把分類問題轉爲了迴歸問題。

三、Inference

(1)在test的時候,每一個網格預測的class信息和B個bounding box預測的confidence信息相乘,就獲得每一個bounding box的class-specific confidence score:

image

等式左邊第一項就是每一個網格預測的類別機率,第二三項就是每一個bounding box預測的confidence。這個乘積即表示box屬於某一類的機率。

1433065-20180803230410198-515290534

(2)獲得每一個box的class-specific confidence score之後,設置閾值,濾掉得分低的boxes,對保留的boxes進行NMS處理,就獲得最終的檢測結果。

(3)注意:

   1)因爲輸出層爲全鏈接層,所以在檢測時,YOLO訓練模型只支持與訓練圖像相同的輸入分辨率。

   2)雖然每一個格子能夠預測B個bounding box,可是最終只選擇只選擇IOU最高的bounding box做爲物體檢測輸出,即每一個格子最多隻預測出一個物體。當物體佔畫面比例較小,如圖像中包含畜羣或鳥羣時,每一個格子包含多個物體,但卻只能檢測出其中一個。這是YOLO方法的一個缺陷。

四、疑惑及解答

(1)訓練時7x7xB個bbox的初始位置怎麼肯定?

是根據各層的權重獲得的,各層權重是隨機初始化的,因此bbox的初始置是隨機的。但bbox的中心點都在對應網格內。

(2)訓練時,當某個網格始終沒有被檢測物體的中心點選中,是否是該網格的對應的參數永遠不會被訓練?

不會,由於在最後一層卷積層以後鏈接了兩層全鏈接層,其餘網格也會對當前網格有有影響的。

 

參考:

yolo迴歸型的物體檢測 - Jinlong_Xu的博客 - CSDN博客  https://blog.csdn.net/jinlong_xu/article/details/77888100

理解 YOLO 目標檢測-圖文外翻-AI研習社  https://ai.yanxishe.com/page/TextTranslation/1168

 

end

相關文章
相關標籤/搜索