目录
RCNN 的架構
RCNN 架構主要由以下幾個部分組成:
1. 抽取圖像中多個候選區域
- 這個部份負責從圖像中,找出可能是物件的候選區域 (region propos)
- RCNN中採用了 selective search 來計算候選區域
2. 抽取候選區域特徵
- 前面抽取出來的候選區域圖像,會經過預處理成固定尺寸
- 預處理的過程,會將候選區域向外擴張一點、剪裁 (cropping)、最後 warp 成 227x227
- 接著被輸入 Alexnet 網絡中,抽取出 4096-D 的特徵
3. 分類候選區域
- 圖像特徵接著會被輸入多個 SVM 分類器中進行分類
- 每個分類器只負責判斷一種類目
4. 後處理
- 使用一個訓練得到的閾值,過濾類別分數過低的結果
- 對不同類別進行 greedy NMS (物件重疊時,只取分數最大的框)
相較於過去其他算法的優點
- CNN 特徵擷取器的參數,是所有類別共享的
- CNN 輸出的特徵維度不高
- 儘管如此,仍然無法實時預測
- 預測 Region proposals + 抽取特徵 ~ 13s / image (GPU)
- 100000 類 SVM分類器 ~ 10s
訓練過程
訓練的過程也可以分成三個階段:
1. 使用 ILSVRC 2012 數據集 + 分類任務(1000類),預訓練 CNN 模型
2. 使用 VOC 數據集 + 目標檢測任務(20 類),Fine tune CNN 模型
3. 訓練多個 SVM 模型,每個 SVM 模型只負責判斷一個類目
其他部分
- 實驗中,發現 CNN + softmax 分類器效果並不如 SVM,所以才使用 SVM 進行分類
參考文獻
- Girshick, R. , et al. "Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation." IEEE Computer Society (2013).
- He, K. , et al. "Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition." IEEE Transactions on Pattern Analysis and Machine Intelligence 37.9(2015):1904-1916.