目標檢測模型二:Fast-R-CNN,ROI池化

1. Fast R-CNN

R-CNN需要很多候選區域以提高準確度,但是很多候選區域其實是彼此重疊的,如果我們有2000個候選區域,每一個候選區域都需要獨立的送到CNN中,對於不同的ROI,我們需要提取2000次特徵,效率很低。CNN的特徵圖是以一種密集的方式表徵空間特徵,我們可以直接使用特徵圖來代替原圖來檢測目標。
這裏寫圖片描述
這裏寫圖片描述
不同於R-CNN多次對每個圖像提取特徵,Fast R-CNN使用特徵提取器(CNN)先提取整個圖像的特徵,然後將創建候選區域的方法直接應用到特徵圖中。

例如,Fast R-CNN 選擇了 VGG16 中的卷積層 conv5 來生成 ROI,這些關注區域隨後會結合對應的特徵圖以裁剪爲特徵圖塊,並用於目標檢測任務中。我們使用 ROI 池化將特徵圖塊轉換爲固定的大小,並饋送到全連接層進行分類和定位。因爲 Fast-RCNN 不會重複提取特徵,因此它能顯著地減少處理時間。
以下是Fast R-CNN的流程圖:
這裏寫圖片描述
這裏寫圖片描述
Fast R-CNN包含了特徵提取器、分類器和邊框迴歸器在內的整個網絡能通過多任務損失函數進行端到端的訓練,這種分類包含了分類損失方法和定位損失方法,大大提升了模型準確度。

ROI池化

Fast R-CNN使用全連接層,我們需要使用池化層將不同大小的ROI轉換爲固定大小的ROI。
假如我們有如下特徵圖,我們想要轉換成預定義的2*2大小的ROI:
這裏寫圖片描述
首先將ROI與特徵圖重疊:
這裏寫圖片描述
然後將ROI拆分成目標維度的ROI,因爲我們要求生成2*2的ROI,所以我們考慮將上圖拆分爲4個大小相等或近似的部分。
這裏寫圖片描述
然後使用max-pooling的方式找到每個區域的最大值,生成2*2的特徵模塊,分佈饋送到分類器和邊框迴歸器中。
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章