ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문 리뷰] Free-Form Image Inpainting with Gated Convolution (2019)
    Paper Review/Generative Model 2023. 2. 20. 20:34

    Abstract 

    이 논문은 free-form mask와 guidance로 이미지를 완성하기 위한 Generative image inpainting system을 제시한다. 새로운 시스템은 추가 labeling 필요 없이 수백만 개의 이미지에서 학습된 gated convolutions을 기반으로 이루어진다. 제안된 gated convolution은 모든 layer에 걸쳐 각 spatial location에서 각 channel에 대해 학습 가능한 dynamic feature selection mechanism을 활용한다. 또한, free-form mask는 다양하게 이미지에 나타날 수 있으므로 단일 직사각형 mask를 위해 설계되었던 global, local GAN은 사용되지 않는다. 따라서, dense image patches에 spectral-normalized discriminator을 적용하여 SN-PatchGAN loss를 제안하였다. 

    1. Introduction 

    이 논문이 제안한 방법이 적용된 Image inpainting 작업은 현실적이고 정확하게 missing region에 대체할 수 있는 contents를 합성하는 작업이다. 이러한 방식으로 image un-cropping, rotation, super-resolution, 등으로 확장 가능성이 존재한다. 

     

    기존 inpainting 작업에는 low-level의 image features를 활용하는 patch matching과 deep conv network을 사용하는  feed-forward generative models으로 크게 두 가지로 접근 방식을 나눌 수 있다. Patch matching의 경우, 고정적인 texture 합성에는 성공하였지만, 복잡한 객체 등 고정되지 않는 경우에는 대부분 성공하지 못한다. 두번째 방법의 경우, 비정형 이미지 내의 contents를 합성하는데 성공하였다. 하지만, 대부분 vanila convolution 기반으로 deep generative model이 사용되었다. Vanila convolution은 공간적으로 filter가 모든 input pixels 또는, feature 동일한 유효성으로 취급하기 때문에 해당 작업에 적합하지 않다. Inpainting 작업에는 이렇게 유효한 pixel/feature와 유효하지 않은 pixel/feature 구분하는 것이 중요하기 때문에  색상 불일치, outline blur 등 여러 문제가 발생한다. 

     

    이러한 문제를 해결하기 위해 최근 마스킹되고 유효한 픽셀에서만 conditional 하게 하기 위한 partial convolution이 제안되었다. 이 방법은 모든 input locations을 유효하지 않거나 유효한 것으로 분류하고 0 또는 1 mask를 모든 layer의 input에 곱한다. 하지만 이러한 방법에도 다음과 같은 문제점이 존재한다. 첫번째로, 이렇게 모든 location을 0 또는 1로 분류하는 것은 input image의 valid, masking pixels, 깊은 layer에서 합성된 pixel 등의 정보를 잃을 수 있다. 두번째, 완벽한 마스킹이 아닌 흐린 마스킹에 대해 inpainting을 수행하는 경우 mask를 업데이트하기 까다롭다.  

    따라서, 이 논문에서는 network 내부에서 mask를 자동으로 학습하도록 하여, mask가 input image에서의 mask 여부에 따라, 각 layer에서 서로 다른 값을 가질 수 있음을 보여준다. 

    이 논문에서는 최종적으로, free-form image inpainting을 위한 gated convolution을 제안하였다. 각 channel과 각 spatial location에 대한 dynamic feature gating mechanism을 학습한다. 이러한 gated convolution은 구현이 쉽고, 희미한 마스크를 가진 conditional input image의 상황에서도 훨씬 잘 작업을 수행한다. 또한, 해당 inpainting network에 contextual attention module을 추가하여 long-range dependencies를 잘 포착할 수 있다. 

    기여점은 다음과 같다. 

    1. 모든 layer에 걸쳐 각 spatial location에서 각 channel에 대한 dynamic feature selection mechanism을 학습하기 위한  Gated convolution을 도입하여 free-form mask와 input의 색상 일관성과 품질을 크게 향상시킨다.
    2. 보다 빠르고 고품질의 실용적인 patch-based GAN discriminator인 SN-PatchGAN을 제시한다. 
    3. Inpainting model을 interactive 모델로 확장하여 사용자가 원하는 결과를 얻을 수 있는 guidance를 통해 사용자 스케치를 가능하게 한다.

    3. Approach 

    3.1. Gated Convolution 

    기존 vanila convolution 방식이 free-form image inpainting 작업에 적합하지 않은 이유는 다음과 같다. 

    x,y : pixel location, W : convolution filter, I : Input, O : output, k : kernel size

    위 식은 vanila convolution 방식의 과정을 모여준다. 모든 spatial location(y, x)에 대해 동일한 filter가 적용되어 output을 생성한다는 것을 보여준다. 그러나 image inpainting의 경우 input은 valid pixel/feature와 mask region의 invalid pixel/feature또는 synthesized pixel/feature를 가진 두 region으로 구성된다. 이로 인해 훈련 중 ambiguity가 발생하고 색상 불일치, 흐릿함, 등과 같은 시각적 오류가 발생한다.

    이러한 문제를 해결하기 위해 masking, re-normalization step을 적용하여 convolution이 다음과 같은 valid pixel에만 의존하도록 하는 partial convolution이 제안되었다.

    M : binary mask, 1 : (y,x) pixel is valid, 0 : (y,x) pixel is invalid, if 조건을  통해 updated M 전달

    하지만, 이러한 partial convolution 또한, 다음과 같은 문제가 발생한다. 모든 spatial location을 단지 valid, invalid로 분류하며, 위와 같은 식을 통해 invalid pixel이 깊은 layer로 갈수록 점차 사라지며, 모든 mask value는 하나로 변환된다. 

    이 논문에서는 이러한 문제점을 해결하기 위해 figure.2와 같이 image inpainting network을 위한 gated convolution을 제안한다. Gated convolution은 date로부터 soft mask를 자동으로 학습한다. 다음과 같이 공식화된다.

    제안된 gated convolution은 각 channel 및 각 spatial location에 대한 dynamic feature selection mechanism을 학습한다. 실험에 의해 시각화된 중간 gating value를 통해 배경, 마스크, 스케치뿐만 아니라 일부 channel에서 semantic segmentatoin을 고려하여 기능을 선택하는 방법을 배운다는 것을 보여준다. 심층 layer에서도 gated convolution은 masked region을 강조하고 별도의 channel에서 정보를 스케치하여 결과를 더 잘 생성하는 방법을 학습한다.

    3.2. Spectral-Normalized Marckovian Discriminator (SN-PatchGAN)

    단일 직사각형 영역을 채우려고 하는 이전의 inpainting network의 경우, 결과를 개선하기 위해 마스킹된 직사각형 영역에 추가 global and local GAN이 사용된다. 그러나 임의의 위치와 형상을 가진 free-form image inpainting에는 적합하지 않다. 따라서, free-form image inpainting network을 학습시키기 위한 간단하고 효과적인 GAN loss인 SN-PatchGAN을 제시한다.

    Convolution network는 input이 image, mask, guidance channel로 구성된 discriminator로 사용되며 output은 channel의 높이, 너비, 개수를 포함하는 3D(h, w, c) 형태의 feature이다. Figure 3과 같이, kernel size가 5이고 stride가 2인 6개의 strided convolution이 쌓여서 Markovian patches의 feature statistics를 포착한다. 그런 다음 이 feature map의 각 feature 요소에 대해 GAN을 직접 적용하여 input image의 다른 location과 semantics(다른 채널로 표현됨)에 초점을 맞춰 GAN의 h, w, c 을 공식화한다. 주목할 점은 output map에서 각 뉴런의 수용 필드가 학습 설정에 의해 전체 input image를 포함할 수 있으므로 global discriminator가 필요하지 않다는 것이다.

     

    또한 최근 제안된 spectral normalization을 적용하여 GAN의 훈련을 더욱 안정화한다. SN-GAN에 설명된 spectral normalization의 default fast approximation algorithm을 사용한다. 논문의 loss는 아래와 같다. 

     

    SN-PatchGAN을 사용한 inpainting network는 기본 모델보다 빠르고 안정적으로 훈련된다. 유사한 patch-level 정보가 이미 SN-PatchGAN에서 인코딩되었기 때문에 perceptual loss는 사용되지 않는다. Inpainting network에 대한 최종 objective function은 pixel-level l1 reconstruction loss와 SN-PatchGAN loss로만 구성되며 default loss balancing hyper-parameter는 1:1이다.

    3.3. Inpainting Netowrk Architecture 

    제안된 gated convolution 및 SN-PatchGAN loss로 generative inpainting network을 customize 할 수 있다.

    Coarse network와 refinement network의 경우, PartialConv에서 사용되는 U-Net 대신 간단한 encoder-decoder network를 사용한다. 우리는 UNet의 skip connection이 non-narrow mask에 큰 영향을 미치지 않는다는 것을 발견했다. 이는 masked region의 중심의 skip connection의 input이 거의 0이기 때문에 상세한 색상이나 질감 정보를 해당 영역의 decoder에 전파할 수 없기 때문이다. Boundary의 경우 gated convolution이 장착된 encoder-decoder 아키텍처는 결과를 생성하기에 충분하다. 또한, 모든 vanila convolution을 gated convolution으로 대체한다. Inference 시에는 다양한 해상도 지원도 가능하다.

    3.4. Free-Form Mask Generation

    Sampled mask는 실제 mask와 유사해야 하며, 과적합 방지를 위한 다양함, 계산 효율성, 제어 가능성이 필요하다. 이를 위해 학습 중에 임의의 free-form mask를 자동으로 생성하는 알고리즘을 제안한다. 구멍 채우기 작업의 경우 사용자는 지우개를 사용하여 앞뒤로 브러시하여 원하지 않는 영역을 가려내는 것처럼 행동할 수 있다. 이 동작은 선과 회전 각도를 반복하여 무작위 알고리즘으로 간단하게 시뮬레이션할 수 있다. 두 선의 평활도를 보장하기 위해 두 선 사이의 접합 부분에도 원을 그린다. 더 자세한 내용은 supplementary에 포함.

    3.5. Extension to User-Guided Image Inpainting 

    해당 inpainting network을 user-guided image inpainting으로 활용하도록 하였다. User-guided image inpainting model은 5 channel input(R, G, B, mask, sketch)을 통해 별도로 학습된다.

    4. Experiments 

     

     

    paper : https://openaccess.thecvf.com/content_ICCV_2019/html/Yu_Free-Form_Image_Inpainting_With_Gated_Convolution_ICCV_2019_paper.html
Designed by Tistory.