상세 컨텐츠

본문 제목

[Paper review] Spatially-Adaptive Multilayer Selection for GAN Inversion and Editing

Paper review

by 최끝장1234 2022. 7. 14. 17:16

본문

위 논문은 CVPR 2022에 체택된 논문이며, 핵심은 다음과 같은 질문으로 부터 시작된다

 

“우리가 이미지를 하나의 latent space로 inversion할 필요가 있을까?’ 이미지의 각각의 영역이 효과적으로 inversion될 수 있는 latent space에 각각 inversion 하면 더 좋지 않을까?"

위와 같은 질문은 어떻게 생각해보면 당연하다. 기존의 연구는 보통 W/W+ space에 inversion하는 것으로 latent space를 한정했다. 이러한 방식은 가장 간단하게 활용할 수 있다는 장점이 존재하지만, 논문의 초록에도 언급했듯이 이미지의 배경이 복잡하거나, 기타 detail한 요소가 이미지에 존재할 경우 reconstruction에 한계를 보인다.

위 논문에서는 이를 극복하기 위한 방법론인 SAM을 제시한다. SAM은 latent space가 될 수 있는 candidate space를 5개 정도 정한 뒤, 이미지를 segmentation하여 분할된 영역 각각이 어떤 latent space로 mapping되어야 할지 정한다. 아래 그림을 가지고 좀더 상세히 설명하겠다.

 

논문 참조

 

 

SAM에서는 먼저 input image를 5개의 cadidate space각각을 활용하여 inversion을 진행한다. 그리고 이를 통해 만들어진 inversion image와 input image를 가지고 Invertibility map을 만들어준다. 여기서 Invertibility mapInversion image와 input image 사이의 perceptual error통해 만들어 진다. 이렇게 최종적으로 5개의 Invertibility map이 만들어지면 Invertibility Predictor(위 그림에서 S)를 훈련시킨다. Invertibility Predictor(S)는 input image x가 들어 왔을때, 5개의 candidate latent space 각각에 대한 Invertibility map을 만들어낸다. 이를 훈련하기 위해서 G.T로 앞서 만들어낸 5개의 Invertibility map을 사용한다.

 

여기서 또 드는 의문은 그래서 “input image의 각 영역에 대응하는 latent space를 어떻게 찾느냐?”라는 것이다. 일단 앞서 훈련된 Predictor를 활용하면 input image에 대한 5개의 Invertibility map을 구할 수 있다. 이 5개의 map은 각각 하나의 candidate space를 대표한다. 여기에 추가로, input image를 훈련된 segmentation model에 돌리면,  input image에 대해 영역이 분할된다. 이제 이 영역들 각각이 5개의 Invertibility map 중 어떤 map에 대응해야할지만 판단하면 된다.

 

Invertibility map에 나타난 값은 input image와 각각에 latent space로 Inversion을 통해 도출된 Inversion image사이의 perceptual error와 관련있기에, 5개의 map 중 적합한 map이 무엇인지는 map에 나타낸 값을 기준으로 찾을 수 있다. 이렇게 특정 영역에 대한 하나의 map이 정해진다는 것은 특정 영역이 5개의 candidate space에서 어떤 latent space로 Inversion 되어야 하는지 정해진다는 것을 의미한다.

 

논문 참조

 

이제 하나의 input image에 대해서 각각의 영역이 어떤 latent space상으로 Inversion이 진행되어야 하는지 알고있다. 위 그림에서는 3개의 영역에 대해서 각각 다른 latent space가 결정된것을 확인할 수 있다. 이렇게 latent space가 정해지면 W+가 할당된 영역은 별도의 영역 masking없이 StyleGAN Generator에 적용되고, 나머지 latent space가 배정된 영역은 해당 영역을 나타내는 binary mask와 latent feature change를 곱해준뒤 Generator에 적용된다.

 

최종적으로 Inversion시 구해야 하는 latent code는 W+와 나머지 4개의 latent space상의 latent feature change인것 이다.

논문에서 Editing은 W+에 대해서만 진행한다. 이렇게 W+ 상에서 latent vector를 바꿔준다고, W+에 해당하는 영역만 editing 하는 것은 아닌데, 그 이유는 W+는 mask를 거치지 않고, 곧바로 Generator 각 layer에 들어가기 때문이다. 따라서 Editing을 진행할때, 모든 이미지 영역에 대해서 Editing이 가능하다.

 

이제 SAM의 결과를 확인해보자. 참고로 SAM은 하나의 방법론이기 때문에, Optimization-based method와 Encoder-based-method 모두에 적용될 수 있다고 한다.

 

논문참조

 

위 결과를 보면 기존의 다양한 방식들보다 SAM을 적용했을때, 모두 reconstruction 성능이 더 좋다는 것을 확인할 수 있다. (PTI보다도 좋은 성능을 낸다)

 

 

위 결과는 두 장의 차 이미지에 대해서 editing을 진행한 결과이다. input image를 확인해보면 알겠지만, background가 꽤 복잡하다는 것을 알 수 있다. PTI를 비롯한 기존의 방식들은  reconstruction 부터 잘 되지 않는 것을 알 수있다. 하지만 SAM은 background까지 비교적 정확하게 input image를 reconstruction하고, editing 역시 잘 진행된다는 것을 확인할 수 있다.

 

위 논문을 읽고나서 SAM의 방법론에 집중하기보다는 위 논문에서 던져주고 있는 메시지에 대해서 생각해보면, 굳이 하나의 latent space로 Inversion을 진행할 필요는 없고, 이미지에 각각 영역에 대해서 효과적으로 inversion될 수 있는 영역이 다를 수 있기에 이를 고려할 필요가 있다라고 느꼈다. 특히 SAM은 segmentation을 통해 이러한 메시지에 대한 해법을 전개했지만, 다른 방법들도 충분히 존재할 수 있다고 생각한다.

 

또한 좀 더 general한 이미지에 대해서 적용가능한 Inversion method를 위해서는 이 논문처럼 W/W+ 뿐만 아니라 다양한 latent space를 동시에 활용해 볼 수도 있겠다는 생각도 든다.

 

아래는 논문 링크이다.

https://arxiv.org/abs/2206.08357

 

Spatially-Adaptive Multilayer Selection for GAN Inversion and Editing

Existing GAN inversion and editing methods work well for aligned objects with a clean background, such as portraits and animal faces, but often struggle for more difficult categories with complex scene layouts and object occlusions, such as cars, animals,

arxiv.org

 

 

 

 

관련글 더보기

댓글 영역