論文:Region Normalization for Image Inpainting, AAAI 2020
代碼:https://github.com/geekyutao/RN
圖像修復的目的是重建輸入圖像的損壞區域。它在圖像編輯中有許多應用,例如面部編輯和圖像遮擋。圖像修復中的關鍵問題是在損壞的區域中生成視覺上合理的內容。
現有的圖像修復方法可以分為兩類:傳統方法和基於學習的方法。傳統方法通過基於擴散的方式來填充損壞的區域,這些方法會將鄰近的信息傳播到損壞區域。基於學習的方法通常訓練神經網絡以在損壞區域中合成內容,近年來已大大超越了傳統方法。但是,當前的方法大多通過改進網絡結構來提升性能,忽略了圖像修復的本質問題:損壞的區域大多和未損壞的區域通常是獨立的。
將損壞的圖像輸入到神經網絡中可能會產生問題,例如無效像素的卷積以及歸一化的均值和方差。但是,當前方法無法解決網絡中的均值和方差漂移問題。當前方法大多采用 feature normalization(FN) 進行訓練,這些FN方法大多在空間維度上進行歸一化,忽略了損壞區域對歸一化的影響。
在這篇論文中,作者提出Region normalization(RN)來解決上述問題。根據輸入的mask將像素划分為不同的區域,並計算每個區域的均值和方差來實現歸一化。
RN算法的思想比較容易懂,如上圖所示:綠色部分代表損壞的數據、紅色部分代表未損壞的數據,兩部分數據分別歸一化。
在實現細節上,作者提出兩種RN,一個是basic RN,另一個是learnable RN。basic RN如下圖所示。對未損壞區域、損壞區域分別歸一化,然后會有兩組affine transformation參數。在網絡的前面幾層中,輸入圖像具有較大的損壞區域,會導致嚴重的均值和方差漂移。因此,使用RN-B通過分區域歸一化來解決這一問題。
經過多個卷積層以后,未損壞區域和損壞區域會融合在一起,這時仍然使用region mask就不可靠了。這個時候,使用RN-L,利用輸入特征的空間關系來檢測損壞區域,為RN生成region mask。RN-L如下圖所示,首先使用 maxpool 和 avgpool 得到兩個feature map並拼接在一起。然后使用sigmoid函數得到一個spatial response map。最后,通過閾值得到 region mask。在論文里,\(t=0.8\)。
作者使用了 EdgeConnect 方法的架構。(EdgeConnect包括一個 edge generator 和一個 image generator),在本文中,作者使用了 image generator 做為基礎網絡。同時,作者把 instance normalization 替換為 RN, RN-B, RN-L. 整體架構如下圖所示。
值得注意的是,作者所提出的兩種RN是即插即用模塊,可以方便地應用於其他圖像修復網絡。