卷積神經網路(4)----目標檢測
一、分類、定位和檢測
簡單來說,分類、定位和檢測的區別如下:
-
分類:是什麼?
-
定位:在哪裡?是什麼?(單個目標)
-
檢測:在哪裡?分別是什麼?(多個目標)
(1)目標分類 |
(2)目標定位 |
(3)目標檢測 |
二、目標定位:
1)案例1:在構建自動駕駛時,需要定位出照片中的行人、汽車、摩托車和背景,即四個類別。
輸出:
1,2,3為要檢測的行人、汽車、摩托車, Pc=1
4為背景, Pc
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
三、特徵點檢測:
特徵點檢測就是第一個單元輸出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看成是檢測正確的,當然這個值可以根據實際情況來定。