目前能夠將現有的基於深度學習的目標檢測與識別算法大體分爲如下三大類:算法
這類算法的主要步驟是:網絡
目前此類算法比較知名的有R-CNN, Fast-R-CNN, Faster-R-CNN三種方法。從順序上,Fast-R-CNN針對R-CNN的不足作了改進,而Faster-R-CNN對Fast-R-CNN作了改進,三者在非實時水平上,精度和速度明顯改善。學習
R-CNN,Fast-R-CNN的做者同爲Ross Girshick。測試
R-CNN的工做流程:spa
⦁ 首先用選擇性搜索算法(Selective Search,SS)提取1k-2k個候選區域設計
⦁ 使用深度卷積神經網絡提取每個候選區的深度特徵blog
⦁ 訓練SVM分類器來對這些特徵進行分類圖片
⦁ 最後經過邊界迴歸算法從新定位目標邊界框深度學習
Selective Search對算法的貢獻:此前,在一些傳統的目標識別算法中,使用的是滑動窗口進行候選區提取,這樣會致使在一章圖片中會產生高達百萬個候選區,而在R-CNN中,使用選擇性搜索算法,每次提取的候選區大概只有1k到2k可能包含物體的區域。工作流
使用深度CNN提取建議區域的特徵時,須要注意的是,有些網絡對輸入圖片的大小有要求,如Alex-net要求輸入的圖片尺寸爲227像素*227像素的大小。所以,由SS提取獲得的候選區的尺寸大小不一,須要在輸入神經網絡以前調整大小。經過深度CNN提取特徵後,每一個目標候選區域相應獲得一個4096維的特徵向量。
以上獲得了每一個候選區域的特徵向量,接下來使用SVM分類器對特徵進行分類。
相對與傳統的方法,R-CNN的主要優點有:
⦁ 使用深度學習方法提取深度特徵,而不是使用人爲設計,所以提升了任務精度。
⦁ 採用區域建議提取可能目標,而不是使用滑動窗口的方式取檢測目標,這樣減小了沒必要要的候選區。
⦁ 加入了邊界迴歸的策略來進一步提升檢測精度
不足之處:
雖然相對於傳統的目標檢測與識別算法,R-CNN在公共數據集上的準確率有着突破性的進展,如在PASCAL VOC的準確率從35.1%提高到了53.7%,可是R-CNN也有必定的侷限性。目標候選區的重疊使得CNN特徵提取的計算中有着很大的冗餘,着很大程度上限制了檢測速度。針對這個缺點將R-CNN升級爲Fast-R-CNN。
R-CNN主要存在如下三個不足之處:
(待續)