深度学习和目标检测系列教程 5-300:早期的目标检测RCNN架构
@Author:Runsen
最早期的目標檢測基于RCNN的算法,下面介紹RCNN的架構
RCNN架構
R-CNN 的目標是獲取圖像,并正確識別圖片中的主要對象(通過邊界框)的位置。
- 輸入:圖像;
- 輸出:圖像中每個對象的邊界框和標簽。
R-CNN檢測系統由三個模塊組成。
- 第一個生成與類別無關的區域候選框。這些候選框識別圖像中存在的候選檢測集。
- 第二個模塊是一個深度卷積神經網絡,從每個區域提取一個特征向量。
- 第三個模塊是一組特定于類的分類器,即線性 SVM。
R-CNN 也做了我們可能直覺上做的事情——在圖像中提出一堆框,看看它們中是否有任何一個對應于一個對象。R-CNN 使用稱為Selective Search的過程創建這些邊界框或區域提議 。
在高層次上,選擇性搜索(如下圖 所示)通過不同大小的窗口查看圖像,并針對每種大小嘗試按紋理、顏色或強度對相鄰像素進行分組以識別對象。
候選框一經創建,R-CNN 就將該區域封閉為標準正方形大小,并將其傳遞給 AlexNet 的修改版本。在 CNN 的最后一層,R-CNN 添加了一個支持向量機 (SVM),可以對這是否是一個對象以及如果是什么對象進行分類。這是上圖中的第 4 步。
- AlexNet是卷積神經網絡 (CNN) 架構的名稱,由 Alex Krizhevsky 與 Ilya Sutskever 和 Geoffrey Hinton 合作設計
改進邊界框
在盒子中創建物體后,我們可以收緊盒子以使物體適合其真實尺寸。這是R-CNN的最后一步。R-CNN 對區域提議運行簡單的線性回歸以生成邊界框坐標以獲得最終結果。這個回歸模型的輸入和輸出是:
- 輸入:與對象對應的圖像子區域。
- 輸出:子區域中對象的新邊界框坐標。
所以,總而言之,R-CNN 是以下步驟:
- 為邊界框生成一組區域候選框。
- 通過預訓練的 AlexNet 和 SVM 運行邊界框中的圖像,以查看框中的圖像是什么對象。
- 一旦對象被分類,通過線性回歸模型運行框以輸出更緊密的框坐標。
RCNN訓練網絡所需的時間非常長,因為網絡必須對每張圖像 2000 個區域提議進行分類。它無法實時實現,因為每個測試圖像需要大約 47 秒。特定的搜索算法是固定算法。因此,在那個階段沒有發生任何學習。這會導致產生不良區域的建議。
下面是RCNN架構實現的具體代碼:
- Tensorflow : https://github.com/rbgirshick/rcnn
- Keras : https://github.com/broadinstitute/keras-rcnn
Result
R-CNN 提供了最先進的結果。以前的系統是復雜的集成,將多個低級圖像特征與來自對象檢測器和場景分類器的高級上下文相結合。R-CNN 提出了一種簡單且可擴展的對象檢測算法,與之前在 ILSVRC2013 上的最佳結果相比,相對提高了 30%。
R-CNN 通過兩個見解實現了這一性能。
- 首先是將大容量卷積神經網絡應用于自下而上的區域建議以定位和分割對象。
- 第二種是在訓練數據標簽稀缺時訓練大型 CNN。
R-CNN 結果表明,在監督下預訓練網絡非常有用。
總結
以上是生活随笔為你收集整理的深度学习和目标检测系列教程 5-300:早期的目标检测RCNN架构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 武警副指导员办案吗
- 下一篇: maskrcnn用于目标检测_用于目标检