R-CNN(Region-CNN)是一種將深度學習套用於目標檢測的算法。它的核心原理包括以下幾個步驟:
候選區域生成:使用選擇性搜尋(Selective Search)算法在輸入圖像上生成多個高質量的候選區域。這些候選區域通常尺寸不同,大小也不同,一般在一張圖片上提取1000-2000個候選區域。
特徵提取:針對每個候選區域,利用卷積神經網路(CNN)進行特徵提取,生成一個固定長度的特徵向量。
目標分類/定位:對每個候選區域經CNN提取的特徵向量,利用支持向量機(SVM)來預測輸入候選域的目標類別,並從該目標類別下的眾多候選框中選取「最優框」作為該目標檢測的預測輸出。
非極大值抑制(NMS):在得到所有分類成功的區域後,通過非極大值抑制(NMS)去除冗餘的候選框,得到相對準確的候選框。
邊界框回歸模型:為了提升定位準確性,R-CNN最後又訓練了一個邊界框回歸模型,通過框線回歸模型對框的準確位置進行修正。
以上步驟構成了R-CNN的基本原理,它是深度學習方法進行目標檢測的開山之作。