【目標檢測】R-CNN

條竿兒毛好發表於2020-12-13

【目標檢測】RCNN演算法詳解R-CNN

RCNN是第一個可以真正工業級應用的解決方案,Fast-RCNN,Faster-RCNN沿襲RCNN,
把region proposal和CNN結合起來,所以該方法被稱為R-CNN:Regions with CNN features。

1.1.介紹
與影像分類不同的是檢測需要定位一個影像內的許多物體。
一個方法是將框定位看做是迴歸問題。但是這種策略效果不好。
另一個可替代的方法是使用滑動視窗探測器,通過這種方法使用CNN至少已經有20年的時間了,通常用於一些特定的種類如人臉,行人等。為了獲取較高的空間解析度,這些CNNs都採用了兩個卷積層和兩個池化層。但是由於網路層次更深,輸入圖片有非常大的感受野和步長,這使得采用滑動視窗的方法充滿挑戰。
在這裡插入圖片描述
採用候選框來檢測解決CNN的定位問題。對這每張圖片,產生接近2000個與類別無關的region proposal,對每個CNN抽取一個固定長度的特徵向量,然後藉助線性SVM對每個區域進行分類。我們不考慮region的大小,使用放射影像變形的方法來對每個不同形狀的region proposal產生一個固定長度的作為CNN輸入的特徵向量(也就是把不同大小的proposal放到同一個大小)。

1.2.用RCNN做物體檢測
物體檢測系統有三個模組構成。

  • 產生類別無關的region proposal。這些推薦定義了一個候選檢測區域的集合
  • 一個大型卷積神經網路,用於對每個區域抽取特定大小的特徵向量
  • 一個指定類別的線性SVM

2.1模組設計

  • 區域推薦:
    有很多研究都提出了產生類別無關區域推薦的方法。比如:objectness(物體性),selective search(選擇性搜尋),category-independent object proposals(類別無關物體推薦),constrained parametric min-cuts(受限參最小剪下,CPMC),multi-scale combinatorial grouping(多尺度聯合分組),以及Ciresan等人的方法,將CNN用在規律空間塊裁剪上以檢測有絲分裂細胞,也算是一種特殊的區域推薦型別。由於R-CNN對特定區域演算法是不關心的,所以我們採用了選擇性搜尋以方便和前面的工作進行可控的比較。
  • 特徵提取:
    對每個推薦區域抽取一個特徵向量。

2.2測試階段的物體檢測
測試階段在測試影像上使用selective search抽取2000個推薦區域。然後變形每一個推薦區域,再通過CNN前向傳播計算出特徵。然後我們使用對每個類別訓練出的SVM給整個特徵向量中的每個類別單獨打分。
然後給出一張影像中所有的打分割槽域,然後使用NMS(每個類別是獨立進行的),拒絕掉一些和高分割槽域的IOU大於閾值的候選框。
執行時的分析:
兩個特性讓檢測變得很高效。首先,所有的CNN引數都是跨類別共享的。其次通過CNN計算的特徵向量相比其他通用方法維度是很低的。

相關文章