目標檢測入門系列手冊三:Fast R-CNN 訓練教程

視覺計算發表於2019-12-10

,學習全套目標檢測演算法&模型

image.png

Fast R-CNN

針對R-CNN 的3 個主要問題,我們思考一下是否有更好的解決方案。

首先是速度,2000 個ROI 的CNN 特徵提取佔用了大量的時間,是否可以用更好的方法,比如共享卷積層來同時處理所有2000 個ROI ?

其次是CNN 的特徵不會因SVM 和迴歸的調整而更新。

R-CNN 的操作流程比較複雜,能否有更好的方式使得訓練過程成為端到端的?

接下來我們將介紹Firshick 等人於2015 年提出的Fast R-CNN[2],它非常巧妙地解決了R-CNN 主要的幾個問題。

image.png

(a)Fast R-CNN 訓練過程示意圖

image.png

(b)Fast R-CNN 預測過程示意圖

圖2-7 Fast R-CNN 訓練和預測過程示意圖[9]

Fast R-CNN 的訓練和預測過程如圖2-7 所示,具體訓練步驟如下:

(1)將整張圖片和ROI 直接輸入到全卷積的CNN 中,得到特徵層和對應在特徵層上的ROI(特徵層的ROI 資訊可用其幾何位置加摺積座標公式推導得出)。

(2)與R-CNN 類似, 為了使不同尺寸的ROI 可以統一進行訓練,Fast R-CNN 將每塊候選區域透過池化的方法調整到指定的M×N,所以此時特徵層上調整後的ROI 作為分類器的訓練資料。與R-CNN 不同的是,這裡將分類和迴歸任務合併到一起進行訓練,這樣就將整個流程串了起來。Fast R-CNN 的池化示意圖如圖2-8 所示,即先將整張圖透過卷積神經網路,然後在特徵層上找到ROI 對應的位置並取出,對取出的ROI 進行池化(此處的池化方法有很多)。池化後,所有2000個M×N 個訓練資料透過全連線層並分別經過2 個head:softmax 分類以及L2 迴歸,最終的損失函式為分類和迴歸的損失函式的加權和。透過這樣的方式就實現了端到端的訓練。

image.png

圖2-8 Fast R-CNN 中的ROI Pooling[9]

Fast R-CNN 極大地提升了目標檢測訓練和預測的速度,如圖2-9 所示。從圖2-9 中我們可以看出,Fast R-CNN 把訓練時長從R-CNN 的84 小時下降到了8.75 小時,每張圖片平均總預測時長從49 秒降到2.3 秒。

image.png

圖2-9 R-CNN 和Fast R-CNN 訓練和測試時間對比

從圖2-9 中我們還可以看出,在Fast R-CNN 預測的這2.3 秒中,真正的預測過程僅僅佔用0.32 秒,而Region proposal 佔用了絕大多數的時間。

文章來源: 阿里雲-機器智慧技術


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956605/viewspace-2667678/,如需轉載,請註明出處,否則將追究法律責任。

相關文章