Papaer:GridFace: Face Rectification via Learning Local Homography Transformations
論文鏈接: https://arxiv.org/pdf/1808.06210v1.pdf
曠視科技,ECCV-2018 paper。
STN網絡用在識別網絡中,主要用於做一個二次校正。
但是直接用STN學習可能會有扭曲
這篇paper的主要思想是把人臉切成不同的grid,分別做stn變換,相當於一個更細緻的二次對齊的過程。
問題思考:
文章其實做的很細緻。paper的初衷在於align的效果可能並不是非常好,所以這裏要一個二次校正。
那麼真正去思考如何提升align的過程是不是更好一些呢。而且gridface的計算量,其實是不可忽視的。那麼實際應用中,其實有一個更好的align可能也能達到同樣的效果。
Introduction
先看文章的整體效果,可以看到對於大角度得到了一個很好的改善。
網絡結構
GridFace的網絡結構如圖所示,分爲矯正模塊和識別模塊(rectification module and the recognition module):
矯正模塊就是把人臉切分乘grid,然後對每個grid學習一個Homograph矩陣
識別模塊做metric learning。
主要contributes:
- 減少帶有局部單應變換的人臉幾何變形來提升識別性能
- 引入一個人臉標準先驗和一個基於近似方法的降噪自編碼器來正則化人臉校正
- 各種擴展實驗證明了算法的優越性
Rectification module
矯正模塊結構如圖:
利用STN的思想,學習一個變換矩陣H。這裏主要是把原圖切成了nxn的grid,每一個grid學一個H矩陣。
爲了防止交點處的值映射失真,在pi和pj之間加入了一個軟間隔:Deformable Constraint。
表示相鄰交點對之間的一個歐氏距離
H矩陣
- H矩陣中的9個參數,表示圖像平移、旋轉和拉伸。
- 加上I的作用:每次網絡學習一個參差,訓練時候只需要學習參差。
- 9個參數的範圍是不一樣的,因此在實現過程中加上了left和right scale。right是映射到01之間,left scale是恢復到原圖。
Recognition module
識別的loss用的是triplet loss
總體loss如下:
Experiment
SNFace中grid數量實驗:
常見數據集結果:
LFW和YTF: