【配準】空間變換網絡Spatial Transformer Networks原理分析

 

說明:此文只分析STN層的原理。

STN由三個部分組成:

1、定位網絡

生成空間變換參數,如二維仿射變換參數:a11,a12,a21,a22,t1,t2。

可以是任意的迴歸網絡,如卷積網絡,全連接網絡等

2、柵格生成器  

由變換參數獲取在輸入特徵圖上面的採樣位置。下面詳細解釋。

設U的shape爲(H,W,C),對應於高、寬、通道數,我們想要變換之後的特徵圖爲V,

V的shape爲(H’,W’,C)。

首先我們根據V的尺寸定義一個H’*W’的柵格G,柵格上的每一個節點Gi就對應着變換後特徵圖V上對應像素的座標(xit,yit)。

接下來我們要做的就是找到柵格上每一節點在輸入特徵圖U上對應的座標點(xis,yis),換句話說,就是對於輸出特徵圖上的每個像素座標(xit,yit),找到與之對應的輸入特徵圖上的像素座標(xis,yis),這個由矩陣乘法實現。

 

這樣,柵格上每一個節點的位置就發生了扭曲生成了新的柵格,如下圖。

            

3、採樣器

按理說,對於每一個輸出特徵圖的位置(xit,yit),已經找到了在輸入特徵圖上對應位置(xis,yis),只需要將(xis,yis)上的像素值複製到(xit,yit)位置上就可以生成輸出特徵圖了。但是呢,(xis,yis)大多數情況算出來都是小數,所以用插值算法進行重採樣就無法避免了。

插值算法由很多,下面以雙線性插值算法爲例。

 

Vi代表輸出特徵圖V上面座標爲(xit,yit)的像素灰度值,Ui代表輸入特徵圖U上面座標爲(xis,yis)的像素灰度值。

當(xis,yis)爲整數,最後兩個max函數要麼爲0要麼爲1,因此Vi=Ui。

當(xis,yis)爲小數,那麼Vi就是(xis,yis)四鄰域的加權和。

 

 

總結:

空間變換網絡的原理並不複雜,簡單來說就是生成變換參數,生成扭曲後柵格,插值得到輸出圖像。我認爲容易弄錯的地方在於柵格的生成,是柵格和插值算法決定了生成特徵圖的每個點是由輸入特徵圖的哪些點插值得來的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章