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

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

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

image.png

Faster R-CNN

Faster R-CNN [3] 作為目標檢測的經典方法在現今很多實戰專案和比賽中頻頻出現。其實,Faster R-CNN 就是在Fast R-CNN 的基礎上構建一個小的網路,直接產生region proposal 來代替透過其他方法(如selective search)得到ROI。這個小型的網路被稱為區域預測網路(Region Proposal Network,RPN)。Faster R-CNN 的訓練流程如圖2-10 所示,其中的RPN 是關鍵,其餘流程基本和Fast R-CNN 一致。

image.png

圖2-10 Faster R-CNN 訓練流程[9]

RPN 的思想是構建一個小的全卷積網路,對於任意大小的圖片,輸出ROI 的具體位置以及該ROI 是否是物體。RPN 網路在卷積神經網的最後一個特徵層上滑動。

接下來我們對著圖2-11 來進一步解釋RPN 網路。圖2-11(a)中最下面灰色的網格表示卷積神經網路的特徵層,紅框表示 RPN 網路的輸入,其大小為3×3,而後連線到256 維的一個低維向量。這3×3 的視窗滑動經過整個特徵層,並且每次計算都將經過這256 維的向量並最終輸出2 個結果:該3×3 滑動視窗位置中是否有物體以及該滑動視窗對應物體的矩形框位置。如果還是不好理解,我們將圖2-11(a)中的RPN 網路順時針旋轉90 度,如圖2-11(b)所示,現在可以很清晰地看出神經網路結構了,這裡input 維度是9,即圖2-11(a)中的3×3 大小。

image.png

(a)

image.png

(b)

圖2-11 RPN 網路原理[3]

為了適應多種形狀的物體,RPN 網路定義了k 種不同尺度的滑窗(因為有的目標是長的,有的是扁的,有的是大的,有的是小的,統一用一個3×3 的滑窗難以很好地擬合多種情況),這裡給它一個專業的名詞——anchor,每個anchor 都是以特徵層(feature map)上的畫素點為中心並且根據其尺度大小進行後續計算的。在Faster-RCNN 論文中,滑窗在特徵層的每個位置上使用3 種大小和3 種比例共3×3=9 種anchor,在圖2-11(a)中n=9。

根據上面的介紹我們知道RPN 網路有2 類輸出:二分類網路輸出是否是物體,迴歸網路返回矩形框位置對應的4 個值。

接下來,我們看一下訓練過程中的一些細節問題。首先,針對分類任務,對於滑窗產生的每一個anchor 都計算該anchor 與真實標記矩形框的IOU。當IOU 大於0.7 時,便認為該anchor 中含有物體;當IOU 小於0.3 時,便認為該anchor 中不含物體;當IOU 介於0.3-0.7 之間時,則不參與網路訓練的迭代過程。

對於迴歸任務,這裡定義為anchor 中心點的橫、縱座標以及anchor 的寬高,學習目標為anchor 與真實bbox 在這四個值上的偏移。RPN 網路為一個全卷積網路,可以用隨機梯度下降的方式端到端地進行訓練。

這裡需要注意,訓練過程中能與真實物體矩形框相交的IOU 大於0.7 的anchor並不多,絕大多數都是負樣本,因此會導致正負樣本比例嚴重失衡,從而影響識別效果。因此,在RPN 訓練的過程,每個batch 進行隨機取樣(每個batch 中有256個樣本)並保證正負樣本的比例為1:1,而當正樣本數量小於128 時,取全部的正樣本,其餘的隨機使用負樣本進行補全。

使用RPN 網路產生ROI 的好處是可以和檢測網路共享卷積層,使用隨機梯度下降的方式端到端地進行訓練。接下來我們看下Faster R-CNN 的訓練過程:

(1)使用ImageNet 預訓練好的模型訓練一個RPN 網路。

(2)使用ImageNet 預訓練好的模型,以及第(1)步裡產生的建議區域訓練Fast R-CNN 網路,得到物體實際類別以及微調的矩形框位置。

(3)使用(2)中的網路初始化RPN,固定前面卷積層,只有調整RPN 層的引數。

(4)固定前面的卷積層,只訓練並調整Fast R-CNN 的FC 層。

有了RPN 的幫助,Faster R-CNN 的速度大大提升,(如圖2-12 所示。RCNN、Fast R-CNN、Faster R-CNN 幾個模型的對比如圖2-13 所示。

image.png

圖2-12 RCNN、Fast R-CNN、Faster R-CNN 模型耗時對比


image.png

圖2-13 RCNN、Fast R-CNN、Faster R-CNN 模型對比

從R-CNN 到Faster R-CNN,前面講了基於proposal 想法做目標檢測的發展史,這種思路分為產生proposal 和檢測兩個步驟,可以得到相對較好的精度,但缺點是速度較慢。接下來我們介紹另外幾種常用於檢測的方法。


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

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

相關文章