【配准】空间变换网络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)四鄰域的加權和。
?
?
總結:
空間變換網絡的原理并不復雜,簡單來說就是生成變換參數,生成扭曲后柵格,插值得到輸出圖像。我認為容易弄錯的地方在于柵格的生成,是柵格和插值算法決定了生成特征圖的每個點是由輸入特征圖的哪些點插值得來的。
總結
以上是生活随笔為你收集整理的【配准】空间变换网络Spatial Transformer Networks原理分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA构建树状结构
- 下一篇: 东进语音卡 java_东进语音卡的声音文