一、基礎知識
1.1 目標定位
前兩節課程中,我們介紹的是利用CNN模型進行圖像分類。除此之外,本週課程將繼續深入介紹目標定位和目標檢測(包含多目標檢測)。
圖片分類問題你已經並不陌生了,如:
輸入一張圖片到多層卷積神經網絡。這就是卷積神經網絡,它會輸出一個特徵向量,並反饋給 softmax 單元來預測圖片類型。
原始圖片經過CONV卷積層後,Softmax層輸出4 x 1向量,分別是:
注意,class label也可能是概率。上述四個向量分別對應pedestrain,car,motorcycle和background四類。
這就是標準的分類過程,如果你還想定位圖片中汽車的位置,該怎麼做呢?
我們可以讓 神經網絡多輸出幾個單元,輸出一個邊界框。具體說就是讓神經網絡再多輸出 4 個數字,標 記爲𝑏𝑥 ,𝑏𝑦 ,𝑏h 和𝑏𝑤 ,這四個數字是被檢測對象的邊界框的參數化表示。
對於目標定位和目標檢測問題,其模型如下所示:
我們先來約定下面使用的符號表示,圖片左上角的座標爲(0,0),右下角標記爲 (1,1)。要確定邊界框的具體位置,需要指定紅色方框的中心點,這個點表示爲(𝑏𝑥 ,𝑏𝑦 ),邊界框的高度爲𝑏h ,寬度爲𝑏𝑤 。因此訓練集不僅包含神經網絡要預測的對象分類標籤,還要包含表示邊界框的這四個數字,接着採用監督學習算法,輸出一個分類標籤,還有四個參數值, 從而給出檢測對象的邊框位置。
輸出label可表示爲:
若Pc=0,表示沒有檢測到目標,則輸出label後面的7個參數都可以忽略。
若Pc= 1,表示存在某個對象,同時輸出𝑐1、𝑐2和𝑐3,表示該對象屬於 1-3 類中的哪一類,𝑐1、𝑐2和𝑐3中最多隻有一個等於 1;是行人,汽車還是摩托車。
對於損失函數Loss function,若使用平方誤差形式,有兩種情況:
神經網絡的損失:
對於損失函數Loss function,若使用平方誤差形式,有兩種情況:
-
Pc=1,即y1=1:
-
Pc=0,即y1=0:
當然,除了使用平方誤差之外,還可以使用邏輯迴歸損失函數,類標籤c1,c2,c3c1,c2,c3也可以通過softmax輸出。比較而言,平方誤差已經能夠取得比較好的效果。