1. 程式人生 > >RPN網路通俗理解

RPN網路通俗理解

【提特徵】

RPN網路前面是一個提特徵的網路,比如VGG,Res等,傳給RPN網路的是一個特徵圖,其實也就是一個tensor

比如用ZF網路(論文裡面用的)

輸出特徵圖:13*13*256

【RPN】

拿到模型的特徵,RPN網路首先加了一個3*3*256*256的卷積層(其實不是很清楚為什麼加,可能是為了擴大感受野)

這樣就會得到11*11*256的輸出,前面11*11是圖形矩陣,其中每一個點在原圖中都是一個很大的區域,256表示這個區域的特徵,具體的計算不再討論


厲害的一步來了,之後在這個卷積之後,各自接了兩個全連線層,一個輸出18,一個輸出36

這是為啥呢?

先看下面這個圖


上面我說的11*11,其中每一個點,也就是特徵圖上的每一個點其實在原圖中都是一塊很大的區域(不太清楚的再看看卷積),也就是上面的黑框,在這個區域內可能有目標,為了能更能逼近目標,我們需要3種尺度,和3種形狀。3*3=9,就是圖中的那9種物體框。假設原圖中有一個物體,那我們通過在原圖上平移黑框,就總能找到一個顏色框能正好把物體框在裡面(真是厲害這想法),而且尺度啊形狀最接近。

那麼如何平移的呢?在原圖上你一個畫素一個畫素平移沒意義啊,難道要重複提取特徵?所以平移必須在特徵圖上平移,因為特徵圖最後總能映射回原圖。11*11的特徵圖區域,在原圖中就表示11*11個大黑框,每個大黑框裡面又有9個小顏色框,這樣就會產生11*11*9個不同位置,不同尺度,不同形狀的物體框,基本足夠框出所有物體了。

【如何訓練】

損失函式參考這篇文章,等我程式碼熟了直接上程式碼

https://blog.csdn.net/wfei101/article/details/77150573