1.目標分類與定位
訓練一個卷積神經網絡,標籤爲類別和邊界框的座標值,labels={c,bx,by,bh,bw}
2.滑動窗口的卷積實現
將FC神經網絡轉化爲卷積神經網絡,即,將神經元變爲1x1的feature map,將中間的權重相應的變爲適當的過濾器
滑動窗口實現目標檢測的原理:如將圖片分爲3x3個區域,依次喂入訓練好的卷積神經網絡輸出結果,輸出結果爲類別。
這樣的話,計算成本比較大。滑動窗口的卷積神經網絡則很好的解決了這個問題。
將全連接層變爲卷積層後,我們發現,滑動窗口對應的輸出結果(維度爲4),剛好對應將整個圖片喂入卷積神經網絡的左上角的輸出結果(維度爲1x1x4),所以一個一個喂入滑動的區域與整個圖片喂入網絡在數學上的形式是一樣的。所以只需進行一次前向傳播,就可以得到與滑動窗口一樣的輸出結果,節省了計算成本。
這樣的滑動窗口的卷積神經網絡仍存在缺點,就是邊界框的位置可能不夠準確。應爲它完全取決去劃分的窗口的大小和滑動的步幅。
3.YOLO algorithm
YOLO 解決了滑動窗口邊界框位置不準確的缺點。
YOLO將圖片分爲3x3個區域,在這個圖片上進行滑動窗口的卷積網絡,輸出不再只爲類別c,而是{pc,bx,by,bh,bw,c1,c2,c3},pc等於0或1取決去這個格子中是否有圖像。bx,by,bh,bw爲這個格子中的檢測出來的邊界框
假設圖片的大小爲100x100x3,YOLO輸出爲3x3x8.
4.交併比
黃色區域爲ground truth , 綠色爲prediction,IOU爲評價標準,一般取IOU大於0.5
5.非極大值抑制