在講fast-rcnn之前,我們先來看一下spp net吧?~
spp net對r-cnn的改進主要有兩點:
1. 只對原圖提取一次特徵。輸入是圖片,在feature層對應位置找到候選框的位置。
2. 結合空間金字塔方法實現cnns的對不同尺度的輸入。實現數據的多尺度輸入。分別劃分不同的小塊對feature進行pooling。
對比r-cnn提速100倍左右
問題:如何訓練提取特徵的網絡?
流程:選框,CNN,SVM,迴歸
fast rcnn:
解決的問題:輸入很多圖重複計算耗時。
解決辦法:借鑑spp net的思想,1. 圖片過一次網絡,在特徵層選框;2. 提出roi pooling,將候選框劃分爲2*2的區域,提取特徵,保證所有候選框提取的特徵都是一致的。
流程改動:沒有SVM,roi pooling後邊直接接分類和迴歸分支
faster rcnn:
解決的問題:選擇性搜索,找出所有候選框也非常耗時。
解決辦法:使用region proposal network(rpn)-->提取邊緣的神經網絡。
具體做法:將rpn放在最後一個卷積層的後面。rpn直接訓練得到候選區域。
rpn具體算法詳解:https://www.cnblogs.com/wangyong/p/8513563.html
非極大值抑制算法詳解:https://blog.csdn.net/zchang81/article/details/70211851
流程改動:加RPN在特徵層選框,最終確定大約300個概率較高的框繼續向後做ROI POOLING等,NMS移到網絡最後決定300個框留下哪幾個