DragGAN

이해성·2023년 7월 4일
0

AI

목록 보기
4/5

Drag Your GAN: Interactive Point-based Manipulation on the Generative Image Manifold

Xingang Pan, Ayush Tewari, Thomas Leimkühler, Lingjie Liu, Abhimitra Meka, and Christian Theobalt. 2023. Drag Your GAN: Interactive Pointbased Manipulation on the Generative Image Manifold. In Special Interest Group on Computer Graphics and Interactive Techniques Conference Conference Proceedings (SIGGRAPH ’23 Conference Proceedings), August 6–10, 2023, Los Angeles, CA, USA. ACM, New York, NY, USA, 11 pages. https://doi.org/10.1145/3588432.3591500

논문 사이트
참고 자료: GAN 용어 설명

Introduction

GANs와 같은 많은 Deep generative model들은 이미지 수정과 합성에 있어 유래없는 성과를 이뤄냈다. 이와 같은 이미지 수정 및 합성 모델들에게 가장 많이 요구되는 사항은 조작성(controllability)이라고 볼 수 있다. 이를 다음과 같은 세가지 항목으로 나누어 볼 수 있다.

  • 유연성(Flexibility)
    위치, 모양, 사물 혹은 동물의 배치 등 이미지의 다양한 종류의 속성을 수정할 수 있어야 한다.
  • 정확성(Precision)
    높은 정확도를 지녀야 한다.
  • 보편성(Generality)
    특정 분야의 이미지의 국한되지 않고 다양한 분야 및 종류의 이미지에 적용가능해야한다.

기존의 연구들에서는 위 세 항목 중 하나 혹은 두가지만 충족시켰지만 본 연구에서는 세 항목 모두를 목표로 하였다.


유연성, 정확성, 그리고 보편성을 얻기 위해 본 연구에서는, 기존에 연구가 활발하지 않던, point-based manipulation을 채택하였다. Point-based manipulation은 수정되는 속성의 종류와 이미지 속 개체의 종류에 상관없이 사용자가 쉽게 이미지를 조작할 수 있도록 한다. 이는 기존에 UserControllableLT에 의해 채택되어 연구된 적이 있다. 그것과 비교하여 본 연구는 point-based manipulation의 두 가지 추가적인 한계점을 해결하고자 했다.

  • 기존 연구가 오직 한 점에 대한 조작에 유의미한 성과를 거둔 반면, 본 연구는 한개 이상의 점의 조작에 대해 고려하였다. 이는 더 세밀하고 다양한 조작을 가능케 한다.
  • 직접적인 Drag 위주의 기존 연구와는 다르게, 본 연구에서는 조작점이 미리 설정한 목표점에 도달하도록 한다.

위와 같은 특성을 지는 DragGAN을 만들기 위해선 두가지 문제 즉, 조작점이 목표점에 다가가도록 지도 하는 문제(motion supervision)와 각 조작점의 위치를 추적하는 문제(point tracking)를 해결해야 한다. Motion supervision은 shifted feature patch loss 함수를 사용한다. 해당 함수는 잠재 벡터 혹은 공간(latent code)을 최적화 하는 데에 쓰이는데, 이 최적화 과정에서 조작점이 목표점으로 다가가도록 한다. 이 가운데 최근접 이웃 탐색(Nearest Neighbor Search)을 수행하며 목표점에 올바르게 도달하도록 point tracking을 수행한다. 위와 같은 최적화 과정은 조작점이 목표점에 도달할 때까지 반복되어 수행된다.

Generative Models for Interactive Content Creation

대부분의 최근 이미지 합성 모델들은 GANs(Generative Adversarial Networks) 혹은 diffusion model을 사용한다. 이들은 다음과 같이 분류된다.

  • Unconditional GANs
  • Conditional GANs
  • Controllability using Unconditional GANs
  • 3D-aware GANs
  • Diffusion Models

Point Tracking

Point Tracking에 있어 Deep learining 이전에는, 전통적으로 미리 정해진 기준에 따라 optical flow estimation을 수행하였다. Deep learning이 주류로 자리잡은 이후에는 합성된 이미지를 ground truth로 사용하여 학습된 deep learning 모델을 이용하였다. 하지만, 본 연구에서는 위와 같은 방법 대신 GANs가 생산해낸 feature map을 이용하여 point-tracking을 수행하였다. 이러한 feature map들은 point tracking을 수행하기에 충분한, 분별력 있는 정보를 제공하고 있다.

Method

본 연구는 StyleGAN2에 기초하였다. StyleGAN2는 표준 정규분포를 따르는 512 차원의 latent code를 실수로 이루어진 latent code로 매핑한다. 매핑된 latent code를 여러개로 복사하여 생성자(generator)의 입력층들에 각각 입력한다. 입력층들에 따라 다르게 입력해 줄 수 있다. 생성자는 이러한 입력을 기반으로 고차원의 출력을 생성해낸다.

Interactive Point-based Manipulation

GAN이 생성한 이미지와 n개의 조작점, 동일한 n개의 목표점을 입력으로 받는다. 경우에 따라서, 조작이 가능한 범위를 추가적으로 입력받는다. 밑 사진에서 볼 수 있듯이 각 편집 과정들은 motion supervision과 point tracking으로 이루어져 있다.

Motion supervison에서는 latent code에 대한 손실함수의 값을 참고하여 조작점이 나아가야 할 방향과 거리를 제시한다. 이를 통해 아주 미세한 편집이 이루어진다. 이때 조작점의 정확한 이동거리는 입력 불문 정해져있지 않고 입력 이미지에 따라 변화한다. 새로 만들어진 latent code와 이미지를 바탕으로 조작점의 위치를 파악한다. 이렇게 매 단계마다 조작점의 위치를 파악하는 것은 정확한 편집에 있어 중요하다.

위와 같은 과정이, 조작점이 목표점에 다다를 때까지 반복된다. 본 연구에 수반된 실험에서는 30에서 200회가량 반복하여야 목표점에 도달할 수 있었다.
Overview of Interactive Point-based Mnipulation

Motion Supervision

Motion Supervision에 사용되는 feature map은 StypleGAN2의 6번째 block의 feature map(F)이다. 우선, F의 feature들을 원본 이미지의 픽셀들과 대응시키기 위해, 선형 보간법을 이용하여 F를 원본 이미지만하게 만든다. 원본 이미지의 픽셀들과 입력된 정보 중 조작점의 위치에 대하여 아래와 같은 연산을 진행해 손실 함수값을 계산한다.

  • Ω(pi,r1)\Omega(p_i,r_1)은 픽셀 pip_i에 대하여 거리가 r1r_1이하인 픽셀들의 집합을 나타낸다.
  • F(qi)F(q_i)는 픽셀 qiq_i에 해당하는 featrue map의 값을 의미한다.
  • Loss=i=0nqiΩ(pi,ri)F(qi)F(qi+di)1+λ(FF0)×(1M)2Loss=\sum_{i=0}^n{\sum_{q_i \in {\Omega(p_i,r_i)}} ||F(q_i)-F(q_i+d_i)||_1 + \lambda||(F-F_0)\times(1-M)||_2}
    ( di=tipitipi2d_i = {{t_i-p_i}\over{||t_i-p_i||_2}} )

해당 손실 함수값을 바탕으로 조작점 pip_ipi+dip_i+d_i 방향으로 움직인다. 이러한 역전사 과정을 거치면 기존 latent code ww와 다른 WW가 나타난다. 갱신된 latent code WW를 다시 6번째 block의 값으로 활용하면서 결과를 얻어낸다.

Point Tracking

Motion Supervison을 통해 새로운 feature map FF', 새로운 latent code ww', 새로운 이미지 II'를 얻게 되었다. 새로운 정보들에서 기존의 조작점을 찾는 것은 결과의 정확성에 있어 중요하다. 과거의 연구들에서는 optical flow estimation을 통해 이루어졌지만 그러한 방법들은 비효율적이고 오류가 축적되는 단점이 존재한다. 본 연구에서는 feature map을 통해 아래와 같이 새로운 pip_i의 위치를 구하고자 한다.

pi:=argminqiΩ2(pi,r2)F(qi)fi1p_i:={argmin}_{q_i\in{\Omega_2(p_i,r_2)}}{||F'(q_i)-f_i||_1}    (but, Ω2(pi,r2)={(x,y)  xxp,i<r2, yyp,i<r2})\ \ \ (but,\ \Omega_2(p_i,r_2)=\{{(x,y)\ | \ |x-x_{p,i}|<r_2,\ |y-y_{p,i}|<r_2}\})

위 수식을 통해 pip_i의 새로운 위치를 추적할 수 있다. 만약, 조작점이 두개 이상일 경우, 위 과정을 조작점의 개수만큼 반복하면 된다. 이때, FF'는 motion supervision과 마찬가지로 6번째 feature map이다.

메모

Latent code를 바탕으로 feature map과 이미지를 생성하고, feature map을 기준으로 loss 함수를 계산한다. 계산된 값을 바탕으로, latent code를 수정(역전사)한다. 이후, 갱신된 latent code를 바탕으로 다시 feature map과 이미지를 생성하여 motion supervision을 반복한다. 이때, 새롭게 생성된 feature map을 기준으로 nearest neighbor 방법을 적용해 point tracking을 수행한다.

Implementation Details

본 연구에서 사용한 hyper 매개변수의 값은 다음과 같다. λ=20, r1=3, r2=12\lambda=20, \ r_1=3,\ r_2=12.

profile
열심히하겠습니다열심히하겠습니다열심히하겠습니다

0개의 댓글