R-CNN算法
??R-CNN算法可以說是利用深度學習進行目標檢測的開山之作。2012年AlexNet網絡在ImageNet LSVRC中效果顯著,因此R-CNN的作者想要嘗試將AlexNet在圖像分類上的能力遷移到PASCAL VOC的目標檢測上。這就要解決兩個問題:
- 如何利用卷積網絡去進行目標定位;
- 如何在小規模的數據集上訓練出較好的網絡模型。
??對于利用卷積網絡去進行目標定位的問題,R-CNN利用候選區域(Region Proposal)的方法,這也是該網絡被稱為R-CNN的原因:Regions with CNN features。對于小規模數據集的問題,R-CNN使用了微調的方法,利用AlexNet網絡在ImageNet上預訓練好的模型。
??R-CNN算法步驟:
step1:候選區域的生成
??利用selective Search算法,通過圖像分割的方法,得到一些原始區域,然后使用合并策略將這些區域合并,得到一個層次化的區域結構,而這些結構就包含著可能需要的物體。
step2:對每個候選區域,使用深度卷積神經網絡提取特征
??將2000候選區域縮放為227×227的大小,接著將候選區域輸入到預訓練好的AlexNet CNN網絡獲取4096維的特征得到2000×4096維矩陣。
step3:提取的特征送入每一類的SVM分類器,判定類別
??將2000×4096維特征與20個SVM組成的權值矩陣4096×20相乘,得到2000×20維矩陣表示每個候選框是某個目標類別的得分。分別對上述2000×20維矩陣中每一列即每一類進行非極大值抑制剔除重疊候選框,得到該列即該類中得分最高的一些候選框框。
??非極大值抑制步驟:尋找得分最高的目標;計算其他目標與該目標的IoU(交并比)值;刪除所有IoU值大于給定閾值的目標。
step4:使用回歸器精細修正候選框位置
??對NMS處理后剩余的候選框進一步篩選。接著分別用20個回歸器對上述20個類別中剩余的候選框進行回歸操作,最終得到每個類別的修正后的得分最高的bounding box。
??如圖,黃色框口PPP表示建議框Region Proposal,綠色窗口GGG表示實際框Ground Truth,紅色窗口G^\hat{G}G^表示Region Proposal進行回歸后的預測窗口,可以用最小二乘法解決的線性回歸問題。
??R-CNN存在的問題:
總結
- 上一篇: 数据结构和算法,也就那么回事儿
- 下一篇: 终极教程,带具体实验现象,1个GPIO控