faster-rcnn自己的理解總結(包括它的前世今身R-CNN和fast R-CNN)


1、grandfather:  R-CNN網絡

結構如下:

工作流程:

 Input(an image)   Proposals(~2K個,在使用CNN提取特征之前還要先resize)  feature maps  每類得分,再經過NMS篩選,再使用手工設計的回歸器進行box regression;

 

 缺點:

(1)速度慢,2K多個proposals都要經過CNN提取特征;

(2)先分類在再回歸,沒有實現end to end;

2、father:  fast R-CNN網絡

 結構如下:

工作流程:

Input(an Image,同時已經用SS提取了proposals,知道了它們的位置)  整圖的feature map(同時將proposals映射到了feature map上)(經過Rol Pooling的resize操作)再使用softmax分類以及box regssion

改進:

(1)不用再對每一個proposal單獨提取特征,大大提高了速度;

(2)引入了ROI Pooling層;

(3)將分類和回歸加入了網絡,且共享卷積層,不用再像R-CNN中那樣單獨訓練SVM和回歸器了;

 缺點:

(1)依然在使用SS(selective search)提取候選框,很耗時;

 

為了摒棄SS,我們取而代之使用RPN網絡,即用CNN實現提取特征框的功能,這樣一來所有的操作都可以通過CNN實現了,真正實現了end to end,然后我們的豬腳登場了:

3、son : faster-rcnn的網絡結構如下:

如上圖所示,(im_info = [M , N , scale_factor]),說一下它的前向傳播流程:

(1)一般對於輸入的圖像,P*Q的原圖先統一縮放為M*N,並且在前面的特征提取層(也可稱“共享卷積層”)中,由於stride = 1 , pad = 1 , kernel size = 3 * 3,所以卷積前后圖像大小不變,只有四個Pool層起到了作用,因此原始圖像經過提取層后的feature map大小為(M / 16)* (N /16),這樣做也是為了使原始圖像到feature map的縮放系數為整數從而使得feature map上的每個特征點和M*N的原始圖像的區域坐標更方便地實現一一映射關系,這對后面生成proposal會有幫助;

(2)RPN結構中第一個層是一個3*3的卷積層,它作用在經過特征提取層后的feature map上,我覺得這個3*3的卷積作用是為了增加目標附近區域的語義理解;然后再經過兩條支路,每條都首先經過一個1*1的卷積。先看上面一條,這條的作用是對“foreground”和"background"進行二分類,所以經過1*1之后的深度為18(9*2,對應每個點生成9個anchors和每個anchor兩個類別),再看下面一條,也是經過一個1*1的卷積,深度為36(9*4)進行矩形框回歸,然后這兩條支路匯合,首先去除掉background類別,然后對於剩下的forground類別,利用im_info先將anchors放大到M*N的原始圖像上,這些放大后在原始圖像上的區域就是一開始的proposals,數量很多所以我們還要進行兩次篩選:第一次,判斷這些proposals是否大范圍超出圖像邊界,剔除嚴重超出邊界的;第二次,對剩下的proposals進行nms,然后對nms后的proposals根據cls scores進行排序,選取top-N個作為最終的proposals(一般在600個左右),其實到這里檢測任務差不多就完成了,但作者后面還加另一步,相當於一個refine;

(3)之后就涉及到ROI Pooling層了,由於RPN輸出的proposals對應的M*N的輸入圖像,所以我們先通過im_info中的scale_factor將其映射到特征提取層的feature map上,但由於后面需要經過全連接層,而這里每個proposals映射到feature map上的大小均不同,所以我們使用了ROI Pooling層將這些proposals映射后的大小固定(7*7或者6*6,好像論文和實現里稍微有點不同,看代碼就知道了),然后這塊固定的區域再經過全連接層進行分類和坐標框回歸;

 關於如何訓練,參考這個:https://www.cnblogs.com/zf-blog/p/7142463.html

補充:

(1)bounding box regression:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM