FAST R-CNN 論文筆記

R-CNN有以下幾個缺點:

1、訓(xùn)練分多階段,首先fine-tune CNN,然后訓(xùn)練SVM作為檢測器,最后訓(xùn)練bonding box 回歸器。

2、訓(xùn)練時間空間消耗大。特征需要寫入硬盤。

3、測試時間比較長。一張圖片在VGG16網(wǎng)絡(luò)上,GPU運行需要47s。因為對每個region proposal都當(dāng)做一幅圖像,通過CNN提取特征。

SPPnets(Spatial pyramid pooling networks):

SPPnets【1】提高了R-CNN的速度。根據(jù)R-CNN的速度慢的缺點,R-CNN對每個region proposal都當(dāng)做一幅圖像,通過CNN提取特征,沒有共享計算。SPPnet的思想是把整副圖像輸入CNN網(wǎng)絡(luò),然后把每個region proposal的對應(yīng)特征提取出來,輸入CNN。這樣一幅圖像就需要一遍CNN前向傳播,共享了計算。但是每個region proposal的大小形狀不一樣,對應(yīng)的特征大小也不一樣,但全連接層需要特定大小的輸入,所以SPP-NET恰好可以解決這個問題:


上圖對應(yīng)的就是SPP-NET的網(wǎng)絡(luò)結(jié)構(gòu)圖,任意給一張圖像輸入到CNN,經(jīng)過卷積操作我們可以得到卷積特征(比如VGG16最后的卷積層為conv5_3,共產(chǎn)生512張?zhí)卣鲌D)。圖中的window是就是原圖一個region proposal對應(yīng)到特征圖的區(qū)域,只需要將這些不同大小window的特征映射到同樣的維度,將其作為全連接的輸入,就能保證只對圖像提取一次卷積層特征。SPP-NET使用了空間金字塔采樣(spatial pyramid pooling):將每個window劃分為4*4, 2*2, 1*1的塊,然后每個塊使用max-pooling下采樣,這樣對于每個window經(jīng)過SPP層之后都得到了一個長度為(4*4+2*2+1)*512維度的特征向量,將這個作為全連接層的輸入進行后續(xù)操作。

SPPnets因為實現(xiàn)了計算共享,所以測試速度比R-CNN快了10~100倍,訓(xùn)練速度也提高了3倍。

SPPnets也存在著不足:

1.訓(xùn)練還是多階段的,region proposal+fine-tune CNN+訓(xùn)練svm+fit Bounding box regression。特征還是需要寫入硬盤。

2.fine-tune過程中只調(diào)整了全連接層,對spatial pyramid pooling之前的層沒有更新。這個限制了網(wǎng)絡(luò)的準(zhǔn)確性。

FAST R-CNN[2]

針對R-CNN和SPPnets的缺點,F(xiàn)AST R-CNN 被提出來。FAST R-CNN 有以下幾個優(yōu)點:

1.比R-CNN和SPPnets有更高的檢測準(zhǔn)確率(mAP)。

2.使用多任務(wù)損失,訓(xùn)練是單階段的。

3.訓(xùn)練時可以更新所有的層。

4.不需要硬盤存儲提取的特征。


FAST R-CNN結(jié)構(gòu)圖

從上圖可以看出,F(xiàn)AST R-CNN的整個結(jié)構(gòu)和R-CNN類似,改變的地方有在卷積層后有一個ROI pooling layer 這個層的左右是把大小不同的region proposal 的特征下采樣的同樣的大小。最后輸出采用的多任務(wù)的輸出,將分類和BBOX 回歸整合到一塊進行。用softmax代替SVM分類器。測試時,最后輸出后要經(jīng)過非極大值抑制和R-CNN一樣。注意:region proposal步驟還是要提前單獨進行的。

The RoI pooling layer:

所有的ROI都要下采樣到固定的大小H*W。若某個ROI長寬為h,w。那么要把ROI均勻分成H*W個方格,每個方格進行max pooling。是一種特殊的SPPnets,只有一層。

fine-tune:

把最后一個pooling層改為POI層,最后一個全連接層和softmax層被兩個姐妹層代替(全連接層和一個K+1類的softmax,和類別相關(guān)的BBox回歸)。把輸入改為一幅圖像和一系列的region proposals。

為了能夠高效的fine-tune全部層的權(quán)重,采取了新的策略。每個mini-batch采樣N幅圖,每幅圖采樣R/N個ROIs。因為每幅圖里的POIs可以共享計算,這樣就提高了訓(xùn)練速度。

Multi task loss:

Each training RoI is labeled with a ground-truth class u and a ground-truth bounding-box regression target v.

Truncated SVD for faster detection

因為每幅圖有大量的ROIs,每個ROI都要經(jīng)過全連接層,所以全連接層的時間占了一半左右。可以通過Truncated SVD壓縮。

全連接層的權(quán)重矩陣W可以被如下分解:

因為t<<min(u,v),所以參數(shù)大大減少。一個全連接層可以被分解為兩個全連接層。The first of these layers uses the weight matrix ΣtVT (and no biases) and the second uses U(with the original biases associated with W).

參考論文:

1.Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

2.faster R-cnn (ICCV 2015)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容