1. 程式人生 > >RPN層解析

RPN層解析

原文地址:https://blog.csdn.net/lanran2/article/details/54376126

RPN全稱是Region Proposal Network,Region
Proposal的中文意思是“區域選取”,也就是“提取候選框”的意思,所以RPN就是用來提取候選框的網路;

1. RPN的意義

RPN第一次出現在世人眼中是在Faster RCNN這個結構中,專門用來提取候選框,在RCNN和Fast RCNN等物體檢測架構中,用來提取候選框的方法通常是Selective Search,是比較傳統的方法,而且比較耗時

,在CPU上要2s一張圖。所以作者提出RPN,專門用來提取候選框,一方面RPN耗時少,另一方面RPN可以很容易結合到Fast RCNN中,稱為一個整體。

RPN的引入,可以說是真正意義上把物體檢測整個流程融入到一個神經網路中,這個網路結構叫做Faster RCNN;
Faster RCNN = RPN + Fast RCNN
這裡寫圖片描述
圖1 Faster RCNN的整體結構

我們不難發現,RPN在整個Faster RCNN中的位置,處於中間部分;

2. RPN的運作機制

我們先來看看Faster RCNN原文中的圖:
這裡寫圖片描述
圖2 RPN的結構

圖2展示了RPN的整個過程,一個特徵圖經過sliding window處理,得到256維特徵,然後通過兩次全連線得到結果2k個分數和4k個座標;相信大家一定有很多不懂的地方;我把相關的問題一一列舉:

  1. RPN的input 特徵圖指的是哪個特徵圖?
  2. 為什麼是用sliding window?文中不是說用CNN麼?
  3. 256維特徵向量如何獲得的?
  4. 2k和4k中的k指的是什麼?
  5. 圖右側不同形狀的矩形和Anchors又是如何得到的?

首先回答第一個問題,RPN的輸入特徵圖就是圖1中Faster RCNN的公共Feature Map,也稱共享Feature Map,主要用以RPN和RoI Pooling共享;

對於第二個問題,我們可以把3x3的sliding window看作是對特徵圖做了一次3x3的卷積操作,最後得到了一個channel數目是256的特徵圖,尺寸和公共特徵圖相同,我們假設是256 x (H x W)

對於第三個問題,我們可以近似的把這個特徵圖看作有H x W個向量,每個向量是256維,那麼圖中的256維指的就是其中一個向量,然後我們要對每個特徵向量做兩次全連線操作,一個得到2個分數,一個得到4個座標,由於我們要對每個向量做同樣的全連線操作,等同於對整個特徵圖做兩次1 x 1的卷積,得到一個2 x H x W和一個4 x H x W大小的特徵圖,換句話說,有H x W個結果,每個結果包含2個分數和4個座標;
這裡寫圖片描述
圖3 問題1,2,3的解答描述圖

這裡我們需要解釋一下為何是2個分數,因為RPN是提候選框,還不用判斷類別,所以只要求區分是不是物體就行,那麼就有兩個分數,前景(物體)的分數,和背景的分數;
我們還需要注意:4個座標是指標對原圖座標的偏移,首先一定要記住是原圖;
此時讀者肯定有疑問,原圖哪裡來的座標呢?
這裡我要解答最後兩個問題了:
首先我們知道有H x W個結果,我們隨機取一點,它跟原圖肯定是有個一一對映關係的,由於原圖和特徵圖大小不同,所以特徵圖上的一個點對應原圖肯定是一個框,然而這個框很小,比如說8 x 8,這裡8是指原圖和特徵圖的比例,所以這個並不是我們想要的框,那我們不妨把框的左上角或者框的中心作為錨點(Anchor),然後想象出一堆框,具體多少,聰明的讀者肯定已經猜到,K個,這也就是圖中所說的K anchor boxes(由錨點產生的K個框);換句話說,H x W個點,每個點對應原圖有K個框,那麼就有H x W x k個框默默的在原圖上,那RPN的結果其實就是判斷這些框是不是物體以及他們的偏移;那麼K個框到底有多大,長寬比是多少?這裡是預先設定好的,共有9種組合,所以k等於9,最後我們的結果是針對這9種組合的,所以有H x W x 9個結果,也就是18個分數和36個座標;
這裡寫圖片描述
圖4 問題4,5的解答描述圖

這裡宣傳一下我的公共號,懶人學AI,歡迎大家關注,共同學習:
這裡寫圖片描述

3. RPN的整個流程回顧

最後我們再把RPN整個流程走一遍,首先通過一系列卷積得到公共特徵圖,假設他的大小是N x 16 x 16,然後我們進入RPN階段,首先經過一個3 x 3的卷積,得到一個256 x 16 x 16的特徵圖,也可以看作16 x 16個256維特徵向量,然後經過兩次1 x 1的卷積,分別得到一個18 x 16 x 16的特徵圖,和一個36 x 16 x 16的特徵圖,也就是16 x 16 x 9個結果,每個結果包含2個分數和4個座標,再結合預先定義的Anchors,經過後處理,就得到候選框;整個流程如圖5:
這裡寫圖片描述
圖5 RPN整個流程

RPN全稱是Region Proposal Network,Region
Proposal的中文意思是“區域選取”,也就是“提取候選框”的意思,所以RPN就是用來提取候選框的網路;