1. 程式人生 > >Spatial Transformer Networks

Spatial Transformer Networks

network 字符 cal csdn inpu 參考 其中 關鍵點 我只

轉載自這裏

參考文獻:**Jaderberg M, Simonyan K, Zisserman A. Spatial transformer networks[C]//Advances in Neural Information Processing Systems. 2015: 2017-2025.

摘要

卷積神經網絡(CNN)已經被證明能夠訓練一個能力強大的分類模型,但與傳統的模式識別方法類似,它也會受到數據在空間上多樣性的影響。這篇Paper提出了一種叫做空間變換網絡(Spatial Transform Networks, STN),該網絡不需要關鍵點的標定,能夠根據分類或者其它任務自適應地將數據進行空間變換和對齊(包括平移、縮放、旋轉以及其它幾何變換等)。在輸入數據在空間差異較大的情況下,這個網絡可以加在現有的卷積網絡中,提高分類的準確性。

——————
由於我之前的工作部分涉及到人臉對齊,所以看到這篇Paper異常激動。總覺得能用它做點什麽。

算法介紹

  1. 算法總流程

STN 主要可以分為三個部分:1)localisation network. 2) grid generator. 3) sampler. (中文我翻譯不準確,大家意會下)。localisation network用來計算空間變換的參數 θ,grid generator則是得到input map U∈RH×W×C到 output map 各位置的V∈RH′×W′×C對應關系 Tθ, sampler根據input map U 和 對應關系 Tθ,生成最終的output map. 流程圖如圖所示:

這裏寫圖片描述

1.1 Localisation Network

它的作用就是通過一個子網絡(全連接或者卷積網,再加一個回歸層),生成空間變換的參數θ。θ 的形式可以多樣,如需實現2D仿射變換,θ 就是一個6維(2x3)向量的輸出。

1.2 Parameterised Sampling Grid

假設U (不局限於輸入圖片,也可以是其它層輸出的feature map)每個像素的坐標為(xsi,ysi), V 的每個像素坐標為(xti,yti), 空間變換函數 Tθ 為仿射變換函數,那麽 (xsi,ysi) 和 (xti,yti) 的對應關系可以寫為:

(xsiysi)=Tθ(Gi)=Aθ(xtiyti)
當然,Aθ也可以有其它形式,如3D仿射變換,透射變換等。

1.3 Differentiable Image Sampling

在計算得到 Tθ 後,就可以由以下公式 U 得到 V 了(省略推導公式若幹,只放上最終形式):

Vci=∑nH∑mWUcnmmax(0,1?|xsi?m)|max(0,1?|ysi?n|)
在求得 V 後,當然少不了上述公式對 U, xs , ys的求導,以便根據loss進行網絡的後向傳播:

?Vci?Ucnm=∑nH∑mWmax(0,1?|xsi?m)|max(0,1?|ysi?n|)

?Vci?xsi=∑nH∑mWUcnmmax(0,1?|xsi?m)|max(0,1?|ysi?n|)?????0,1,?1if |m?xsi|≥1if m≥xsiif m<xsi
?Vci?ysi 與 ?Vci?xsi 類似。對 θ 的求導為:

?Vci?θ=???????Vci?xsi??xsi?θ?Vci?ysi??ysi?θ??????
而 ?xsi?θ, ?ysi?θ 根據具體的變換函數便可得到。

通過以上3個部分的結合,便形成了完整的 STN。

  1. 算法分析

STN 計算較快,幾乎沒有增加原有網絡模型的訓練時間。由於它能夠在訓練過程中,學習到與任務相關的空間變換參數,因此能夠進一步最小化網絡的損失函數。STN 不只可以用在輸入的圖像層,也可以加入卷積層或者其它層之後。

  1. 實驗結果

這篇文章分別在手寫文字識別、街景數字識別、鳥類分類以及共定位等方面做了實驗, 這裏我只列出比較有代表性的手寫文字實驗部分。

實驗數據為MNIST,分別在經過不同處理(包括 旋轉(R)、旋轉、縮放、平移(RTS),透射變換(P)),彈性變形(E))的數據上進行字符識別的實驗。Baseline分別使用了兩種網絡結構FCN , CNN, 加入了 STN 的網絡為 ST-FCN, ST-CNN。其中,STN 采用了以下幾種變換方法:仿射變換(Aff )、透射變換(Proj )、以及薄板樣條變換(TPS )。下表列出了 STN 與 baseline 在MNIST上的比較結果,表中數據為識別錯誤率:
這裏寫圖片描述

可以看出,對不同的形式的數據,加入了STN 的網絡均優於 baseline 的結果。以下為 STN 對數字圖像進行變換後的結果,其中a列為原始數據,b列為變換參數的示意圖,c列為最終變換後的結果:
這裏寫圖片描述

總結

STN 能夠在沒有標註關鍵點的情況下,根據任務自己學習圖片或特征的空間變換參數,將輸入圖片或者學習的特征在空間上進行對齊,從而減少物體由於空間中的旋轉、平移、尺度、扭曲等幾何變換對分類、定位等任務的影響。加入到已有的CNN或者FCN網絡,能夠提升網絡的學習能力。

Spatial Transformer Networks