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

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

使用 定義 fmt 應該 否則 vdh lan blog 檢測

一、分類、定位和檢測

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

  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看成是檢測正確的,當然這個值可以根據實際情況來定。

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