상세 컨텐츠

본문 제목

[Paper review] High-Fidelity GAN Inversion for Image Attribute Editing

Paper review

by 최끝장1234 2022. 7. 11. 17:02

본문

나의 Inversion관련 블로그 포스팅을 쭉 읽어본 사람이라면 알겠지만, GAN Inversion의 가장 큰 난관은 distortion-editing 사이의 trade-off를 극복하는 것이다.

Vision에서 Inversion을 수행하는 방식은 크게 세가지 (1) Optimization-based (2) Encoder-based (3) Hybrid-method가 있는데, 저번 리뷰에서 소개한 PTI는 (1)에 해당하는 방법이라고 볼 수 있다. (이미지 한장에 대한 latent vector를 optimization 방식으로 찾은 후, generator fine tuning함)

오늘 소개할 논문은 CVPR 2022에 등재된 논문이기에 매우 따끈따끈한 논문이고,  (2) Encoder-base 방식을 통해, trade-off를 극복하는 방법을 소개한다. 이를 활용하면, PTI와 같은 optimization-based method 만큼의 좋은 성능을 내는 것은 물론이고, 인퍼런스 시간이 크게 단축된다고 한다. 

 

논문 참조

 

위 그림이 논문에서 소개한 모델의 전체적인 구조이다. 

먼저 Inversion시 어떤식으로 모델이 진행되는지 살펴보자. 일단은 기본적으로 pretrained encoder를 source image에 적용하여 low-rated latent vector를 뽑아낸다. 이 latent vector를 pretrained generator를 통과시키면, source-image와 비교했을때, distortion이 심한 이미지가 나온다. (latent vector의 차원이 커질수록, W→ +W, distortion이 줄어든다. 따라서 저차원의 latent vector를 활용하면 distortion이 심한 이미지를 만들어낼 수 밖에 없다) 이 상태에서 latent vector의 rate(차원)을 증가시키면, distortion은 줄어들지만, editability가 줄어든다. (trade-off)

이를 극복하기 위해 논문에서는 DCI(Distortion Consultation Inversion)방식을 이용한다. low-rated latent vector가 만들어낸 이미지와 source 이미지와의 차이를 구하면 하나의 distortion map이 만들어진다. 이 distortion map에는 필요없는 이미지의 정보와 어떤 detail을 low-latent vector가 잡아내지 못했는지 담겨져있다. 이제 이를 low-rated latent vector와 잘 fusion 시켜주는 것이 핵심이다.

이를 위해 먼저 distortion map을 또 하나의 encoder를 통과시킴으로써, latent map C을 만들어준다. 그리고 이 map과 기존의 low-rated latent vector를 fusion 모듈에 넣어줌으로써, generator의 AdaIN 연산시 모두 반영될 수 있도록한다. 이러한 Fusion 연산은 특히 StyleGAN Generator의 초기 layer에만 적용함으로써, overfitting을 방지할 수 있다고 한다.

 

이제 editing으로 넘어와서 모델을 살펴보자. 논문에서는 low-rated latent vector에 다른 논문에서 제공하는 semantic-direction 방법을 사용하면(ex: GANSpace, InterfaceGAN), General 하게 작동될 수 있다고 한다. 다만 정확한 editing을 위해서 ADA(Adaptive Distortion Alignment)라는 하나의 모듈을 더 추가했다고 말한다.

우리가 low-rated latent vector에 semantic direction을 적용한 vector을 이용해 이미지를 생성하면 앞서 Inversion에서와 마찬가지로 distortion이 심한 이미지를 얻게 된다. 이를 source 이미지와 빼면 하나의 distortion map이 완성되지만, Inversion과 다르게 이미 editing이 진행되었기 때문에, misalignment가 발생하게 된다. 따라서 이러한 misalign을 잡아주기 위한 모듈이 ADA이다. 논문에서는 ADA는 encoder-decoder 구조이고 이를 훈련하기 위해 self-supervised learning을 사용했다. (기존 distortion map을 GT로 놓고, random한 augment를 distortion map에 적용한 뒤, 이들의 차이를 l1 loss로 사용함으로써 optimization)

참고로 위 논문에서 제시한 모델을 훈련할떄는 editing과정은 따로 생각하지않고, Inversion 과정에서만 loss를 계산하여 적용했다. (특별한 loss는 사용하지 않았음)

 

모델결과를 이제 확인해보자

PTI와 성능비교

 

인퍼런스 time, 논문 참조

 

PTI도 성능이 잘나오지만, 논문에서도 언급했듯이 이러한 optimization based 방식은 시간이 오래 소요된다는 것을 확인할 수 있다. 이는 real-time 기반의 app에 활용되는데는 한계가 있음을 시사한다. 따라서 논문 모델은 Encoder-based 모델로써의 장점이 확실히 존재하기에 주목할 필요가 있다.

real video에서도 잘 작동하는 것을 알 수 있다. 특히 흥미로운 점은 다른 모델들과 달리 background는 완벽하게 유지하면서 얼굴에만 변화가 나타난다는 점이다. 이는 모델이 Disentangle하게 이미지의 특징을 변화시킬 수 있음을 보여준다.

위 논문의 한계는 editing시 disalign이 너무 심할경우, 적절한 이미지가 생성되지 않는다고 한다. 이는 sel-supervised learning으로 ADA를 진행한 한계라고 생각된다. 이를 극복하기 위해 matching을 통해 align을 잡아줄 수 있지 않을까라는 생각이 든다.

 

논문을 읽으면서 encoder-based 방식을 더 연구하는 것이 Optimization 방식보다 궁극적으로 더 활용가능성이 있지 않을까라는 생각이 조심스럽게 들었다. 

 

https://arxiv.org/abs/2109.06590

 

High-Fidelity GAN Inversion for Image Attribute Editing

We present a novel high-fidelity generative adversarial network (GAN) inversion framework that enables attribute editing with image-specific details well-preserved (e.g., background, appearance, and illumination). We first analyze the challenges of high-fi

arxiv.org

 

관련글 더보기

댓글 영역