1. 程式人生 > >卷積神經網路(4)----目標檢測

卷積神經網路(4)----目標檢測

一、分類、定位和檢測

簡單來說,分類、定位和檢測的區別如下:

  1. 分類:是什麼?

  2. 定位:在哪裡?是什麼?(單個目標)

  3. 檢測:在哪裡?分別是什麼?(多個目標)

     

(1)目標分類

(2)目標定位

(3)目標檢測

二、目標定位:

1)案例1:在構建自動駕駛時,需要定位出照片中的行人、汽車、摩托車和背景,即四個類別。

輸出:

1,2,3為要檢測的行人、汽車、摩托車, Pc=1

4為背景, Pc

=0

 Pc:首先第一個元素pc=1表示有要定位的物體的概率,即是有1,2,3類的概率,否則pc=0表示只有背景第4類如上圖的第二個圖。

bx,by,bh,bw:這四個輸出元素表示定位框的中心座標bx,by和寬高bh,bw

c1,c2,c3:3個輸出元素one-hot表示是三個類別(1,2,3)中的哪一類。

當第一個元素pc=0時表示是背景,然後就不需要考慮其他輸出了

損失函式:

輸出向量中有8個元素:故:

if y1 =1 ,L = (y'1-y1)2 + (y'2-y2)2 + ……+(y'8-y8)2

if y1 = 0,L = (y'1-y1)2

實際使用中pc使用邏輯迴歸,c1

,c2,c3是用softmax啟用然後用對數損失函式,位置資訊是使用平方誤差損失函式,然後將這些損失函式相加起來得到最終的代價函式。當標籤y=0時,只考慮pc即可。

三、特徵點檢測:

特徵點檢測就是第一個單元輸出1,表示有這個物件(如人臉),

然後如果在人臉上定義了64個特徵點(如下圖所示),每個特徵點用(x,y)表示,那麼網路將會有1+2*68=129個單元輸出。

需要注意的一點是在標註樣本時,所有標籤在所有圖片中務必保持一致,比如說,第5個特徵點表示左眼的外眼角,那麼所有圖片的第五個特徵點都應該是這個。

四、目標檢測:滑動視窗、YOLO演算法【更好解決邊界】

https://www.cnblogs.com/ys99/p/9326637.html

傳統的視窗滑動:將圖片切割成很多小視窗,然後進行目標檢測。直到某個小視窗檢測到目標。

卷積的滑動視窗實現:在原輸入補上邊,在進行卷積操作,得到結果。

例如:

原輸入是14*14*3,輸出是1*1*4【4個分類】。傳統的滑動視窗是將原輸入切成4個,每個大小為12*12*3。經過重複4次卷積操作得到4個1*1*4。

卷積的滑動視窗:將原輸入補成16*16*3,輸出為2*2*4。只需要經過一次卷積操作就可以得到和4個1*1*4相同的結果2*2*4=2*2*(1*1*4)。

交併比函式是用來判斷物件定位是否準確,IoU=(A∩B)/(A∪B),一般將交併比的值大於0.5看成是檢測正確的,當然這個值可以根據實際情況來定。