DCT-Net: Domain-Calibrated Translation for Portrait Stylization

리뷰 날짜
2023/02/20
분야
Full Body Portrait Stylization
본 포스트에서는 적은 수의 이미지를 사용함에도 불구하고 bias 나 overfitting 없이 실사 도메인의 전신 이미지를, 기존 이미지의 content 를 잘 유지하면서도 특정한 도메인의 스타일을 충분하게 가진 이미지로 변환하려는 시도를 한 논문에 대해서 소개드리려고 합니다.
arxiv.org
DCT-Net: Domain-Calibrated Translation for Portrait Stylization
논문을 직접 읽어보시고 싶으신 분들은 위 링크를 참고하시면 좋습니다.

Objective

Portrait Stylization 은 일반적인 자연 상태의 인간의 외관을 해당 인간의 고유성을 유지한 채로 원하는 시각적인 스타일로 변환하는 것을 목적으로 하는 기술입니다. 해당 기술은 실사에 가까운 Source Portrait 을 미화하거나 과장하여 다양하게 변경시킬 수 있었고, 이러한 이점 때문에 Art Creation, Animation Making, Virtual Avatar Generation 등 다양한 응용 분야에서 사용될 수 있었습니다.
Artistic Portrait Synthesis based on Limited Exemplars
2014년 Goodfellow 가 GAN 을 처음 세상에 공개한 뒤로 Image-to-Image 변환 모델은 GAN 을 기반으로 빠르게 발전해왔습니다. Source Domain 과 Target Domain 사이의 Paired Dataset 의 부재를 타겟팅하기 위해 2017년도에는 CycleGAN 논문에서 cycle consistency loss 를 도입했고, 최근에는 2019년에 공개된 StyleGAN 의 pre-trained model 을 사용한 Toonify 와 같은 논문들이 공개되었습니다.
StyleGAN 을 활용한 방법론들은 높은 퀄리티의 이미지를 생성할 수 있었지만 1. 기존 이미지의 content 를 잃어버리는 문제점이 종종 나타났고, 2. FFHQ 데이터로 학습된 StyleGAN 특성 상 머리 영역에 대한 이미지에서만 동작할 수 있는 문제점이 있었습니다.
논문에서는 앞선 연구들과는 차별적으로 content 를 잘 유지할 수 있으면서, 얼굴 영역 뿐만이 아니라 복잡한 실사 이미지를 다룰 수 있고, 다양한 스타일들에 대해서도 잘 동작할 수 있는 새롭고 효과적인 방법론을 제안합니다. 논문에서는 그들의 방법론이 효과적인 이유로 적은 수의 Target Domain 이미지만으로도 앞선 목표를 달성할 수 있음을 주장했고, 이러한 Few-Shot 기반의 Style Transfer 연구가 일반적으로 겪은 bias 와 overfitting 또한 해결했다고 이야기하고 있습니다.

Method

논문에서는 앞서 언급한 것과 같이 얼굴 영역에 국한되지 않은 실사 이미지 (이하 Full-Body Portrait) 를 원하는 스타일로 변경하는 것을 목적으로 합니다. 이를 위해 논문에서 설계한 네트워크는 궁극적으로 Source Domain 의 이미지 XsX_s 를 Target Domain 의 이미지 XtX_t 로 변환할 수 있는 Mst\mathcal{M}_{s\to t} 를 학습하게 됩니다.
Overview of Methodology Pipeline
논문에서 제시한 네트워크는 다음과 같은 세 가지 세부적인 구조로 나눌 수 있습니다.
1.
CCN (Content Calibration Network)
CCN 은 pre-trained 된 StyleGAN 의 source generator 와 transfer learning 을 사용하여 Target Domain 의 이미지를 생성하는 generator 를 학습하는 네트워크입니다.
2.
GEM (Geometry Expansion Module)
GEM 은 domain 의 geometric expansion 을 위한 transformation 과정입니다. 거창한 이름을 붙였지만, 결국에는 data augmentation 과정이라고 보시면 됩니다.
3.
TTN (Texture Translation Network)
TTN 은 논문에서 최종적으로 학습하고자 하는 네트워크 (앞서 Mst\mathcal{M}_{s\to t} 로 언급한 네트워크) 이자, Full-Body Portrait 이미지를 stylization 하는 네트워크입니다.
각각에 대해서는 아래에서 자세하게 설명하도록 하겠습니다.

Content Calibration Network (CCN)

Content Calibration Network
CCN 에서는 Target Domain 의 이미지를 다량 생성할 수 있는 네트워크를 학습하는 것을 목표로 합니다. 기존 StyleGAN 이 noise 로부터 실사 이미지를 생성할 수 있는 네트워크였다면, CCN 은 noise 로부터 Target Domain 이미지를 생성할 수 있는 네트워크를 학습하는 것을 목표로 하는 것입니다.
논문에서는 이를 달성하기 위해 FFHQ 데이터셋으로 pre-trained 된 StyleGAN-based source generator GsG_s 와 Few-Shot Target Domain 이미지 기반의 Transfer Learning 을 활용합니다. 기존의 JoJoGAN 과 같은 방법론과 다른 점이라면 latent space 로의 inversion 과정을 사용하지 않는 것이 특징이고 (확실한 유의미함인지는 의문이지만) 논문에서는 inversion 후 reconstruction 과정에서 발생하는 error 를 겪지 않을 수 있다- 고 이야기하고 있습니다.
GtG_t 학습 (Transfer Learning) 에 사용되는 Loss 항목은 크게 다음 두 가지입니다.
1.
GAN Loss
GAN Loss 는 GtG_t 와 DtD_t 를 finetuning 하여 GtG_t 가 Target Domain 의 이미지를 생성하도록 유도하는 항목입니다. Few-Shot 으로 준비한 이미지들을 Real Image 로, Gt 에서 생성한 이미지들이 Fake Image 로 취급하여 adversarial 하게 학습을 진행합니다.
2.
ID Loss
ID Loss 는 Arcface 에서 제안한 loss 항목으로 Face Recognition 에서 얼굴의 identity 를 비교하는데 사용할 수 있는 항목입니다. 논문에서는 Target Domain 으로 stylized 된 이미지가 원본의 content 를 많이 벗어나지 않도록 (identity 를 유지하도록) ID Loss 항목을 추가합니다. Pre-trained 된 Face Recognition Model RidR_{id} 를 xs^\hat{x_s} 와 xt^\hat{x_t} 각각에 적용하여 embedding vector 를 뽑아낸 뒤, 두 벡터의 cosine similarity 를 계산하는 형태로 두 얼굴의 identity 차이를 계산하고 최소화하는 loss 항목을 정의합니다.
위에서 설명드린 두 가지 Loss 항목들을 이용해 CCN 이 독립적으로 학습된 이후에 GsG_s 와 GtG_t 는 identity 가 보장되는 Source Domain 의 이미지와 Target Domain 의 이미지를 생성할 수 있는 능력을 가지게 됩니다.
Content Calibration Network (Inference)
하지만 inference 과정에서는 독단적으로 GtG_t 를 사용하지는 않습니다. 위의 그림과 같이 GtG_t 의 앞부분 layer 를 GtG_t 의 앞부분 layer 와 blending (layer 의 weight 를 interpolation) 하는 과정을 거치고, 이는 기존 Source Domain 의 content 를 유지하는 효과가 있음을 Toonify 에서 보인 적 있다고 합니다. 이러한 테크닉을 Model Blending 이라고 합니다.

Geometry Expansion Module (GEM)

다시 한 번 언급하는 것이지만, 논문에서 근본적으로 구현하고자 하는 것은 실사 Full-Body Source Domain 의 이미지를 Target Domain 으로 전이시키는 것입니다. Source Domain 의 이미지 데이터셋으로 사용할 수 있는 FFHQ 데이터셋은 특정한 facial position 으로의 alignment (FFHQ Alignment) 가 선행되어 있기 때문에 논문에서는 이를 직접적으로 네트워크에 넣어 학습하게 되면 네트워크는 해당 alignment 에 의존적인 형태로 학습이 되고, 복잡한 실사 이미지를 처리할 수 있는 능력을 상실하게 될 수 있다고 제시합니다.
논문에서는 이를 해결하기 위해서 이후에 자세하게 소개드릴 Texture Translation Network (TTN) 에 넣을 학습 데이터 xs^\hat{x_s} 와 xt^\hat{x_t} 에 동일한 Geometric Transformation TGeoT_{Geo} 을 적용합니다. 논문에서 사용한 transformation 은 scale ratio μ[0.8,1.2]\mu \in [0.8, 1.2] 를 가지는 Random Scaling 과 Rotation Angle y[π2,π2]y \in [-\frac{\pi}{2}, \frac{\pi}{2}] 를 가지는 Random Rotation 으로 구성되어 있습니다.

Texture Translation Network (TTN)

Texture Translation Network
TTN 은 논문이 근본적으로 구현하고자 하는, 실사 Full-Body 이미지를 Target Domain 으로 전이시키는 역할을 하는 네트워크입니다. 이를 수행할 수 있도록 TTN 은 앞서 독단적으로 학습된 CCN 이 산출한 xsx_s 와 xtx_t 에 GEM 을 거쳐 생성된 Source Domain 이미지 x~s\tilde{x}_s 와 Target Domain 이미지 x~t\tilde{x}_t 를 기반으로 Cross-Domain Correspondences 를 학습하게 됩니다.
CCN 네트워크를 통해서 충분한 texture (style) 정보를 담고 있는 두 도메인에 대한 Global Domain Mapping 을 얻어냈지만, 이를 조작 가능한 Local Texture Transformation 과정으로 변환하기 위해서 논문에서는 U-Net 기반의 네트워크 Mst\mathcal{M}_{s\to t} 를 설계합니다. 풀어서 설명하자면, 동일한 noise 에 대해서 paired image 를 생성할 수 있는 있지만, 특정 이미지를 inversion 테크닉 없이 변환시킬 수 없고 앞서 inversion 테크닉의 단점 (e.g. reeconstruction error) 을 겪고 싶지 않았기 때문에 이와 같은 네트워크를 설계한 것입니다. 결과적으로 논문에서는 이 네트워크의 inference 과정을 통해 Texture Transformation 를 기대한 것입니다.
네트워크가 Texture Transformation 을 수행할 수 있도록 논문에서는 크게 네 가지 Loss 항목을 설계합니다.
1.
Style Loss
논문에서 Style Loss 항목은 Multi-Representation Constraint 항목으로도 부릅니다. WhiteBoxGAN 의 구조를 차용하여 Surface Representation 과 Texture Representation 을 각각 뽑아낸 뒤 각각에 대해 아래와 같은 수식으로 Adversarial Loss 를 정의하게 됩니다.
Lsty=Ex^s[log(1Ds(Fsty(Mst(x~s))))]+Ex^t[log(Ds(Fsty(x~t)))]\mathcal{L}_{sty} = \mathbb{E}_{\hat{x}_s}[\log(1-D_s(\mathcal{F}_{sty}(\mathcal{M}_{s \to t}(\tilde{x}_s))))] + \mathbb{E}_{\hat{x}_t}[\log(D_s(\mathcal{F}_{sty}(\tilde{x}_t)))]
Surface Representation 은 Differentiable Guided Filter 를 사용하여 이미지 자기 자신을 guide map 으로 주었을 때 texture 와 detail 이 사라진 형태의 representation 입니다. (Blurring 과 유사하다고 보시면 됩니다.) Texture Representation 은 Random Color Shift 알고리즘을 사용하여 Single-Channel Texture Representation 을 구성한 것이며 이는 color 와 luminance 정보가 Cartoon-Like Target Domain 의 discriminator 에 많이 사용될 수 있는 현상을 방지하고 순수한 Texture 정보만으로 판단하도록 유도하기 위함이라고 합니다. (Gray Scaling 과 유사하다고 보시면 됩니다.)
2.
Content Loss
Content Loss 는 일반적인 Neural Style Transfer 에서 사용한 VGG-based Loss 항목입니다.
Lcon=VGG(x^s),VGG(Mst(x^s))1\mathcal{L}_{con} =\|VGG(\hat{x}_s), VGG(\mathcal{M_{s \to t}(\hat{x}_s)}) \|_1
위와 같이 pretrained 된 VGG 의 feature extracter 를 사용하여 입력 Source Domain 이미지와 출력 Target Domain 이미지의 content consistency 를 유도하기 위해 사용한 항목입니다.
3.
Facial Perception Loss
논문에서는 네트워크가 눈, 입과 같은 Local Structure 에 대한 디테일 가이드를 제공하기 위해서 Facial Perception Loss 를 제안합니다.
Lper=Rexp(xg)α2\mathcal{L}_{per}=\| \mathcal{R}_{exp}(x_g) - \alpha \|_2
위 식의 α=(α1,,αn)\alpha=(\alpha_1, \dots , \alpha_n) 항목은 Source Domain 이미지 x^s\hat{x}_s 의 expression paramters 로 scalar 값을 가지고 있습니다. 논문에서는 n=3n=3 으로 설정하여 α1,α2,α3\alpha_1, \alpha_2, \alpha_3 를 각각 좌측 눈, 우측 눈, 입의 각도로 정의합니다. (Normalized Width/Height Ratio)
다만 논문에서는 해당 α\alpha 가 Mst\mathcal{M}_{s\to t} 로 생성한 Target Domain 이미지에서 추출해낸 또다른 expression parameters 와 비교하지 않고 생성한 이미지를 regressor Rexp 를 통과시켜 regression 한 값과 유사하도록 설정합니다. 이에 대한 구체적인 이유는 논문에 적혀져 있지는 않지만, 1. Target Domain 이미지에서 facial landmark extraction 이 잘 동작하지 않았거나 2. 너무 강한 constraint 를 주어 괴리감 있는 이미지가 형성되었지 않았을까 생각해봅니다.
4.
Total Variation Loss
논문에서는 이미지가 부드럽게 생성되게 하기위해서 Total Variation Loss 를 사용합니다.
Ltv=1hwcu(xg)+v(xg)2\mathcal{L}_{tv}=\frac{1}{h *w*c}\| \nabla_u(x_g) + \nabla_v(x_g) \|_2
위 식의 h,w,ch, w, c 는 각각 이미지의 높이, 너비, 그리고 채널 수이며 u,vu,v 는 각각 horizontal, vertical directional vector 입니다. 가로와 세로 방향의 gradient image 의 값을 최소화하여 극단적인 변화를 방지하는 목적으로 사용됩니다. 다만, 너무 단조로운 이미지의 생성도 좋지는 않기 때문에 해당 loss 의 가중치는 구현체에 다른 loss 들에 비해서 상대적으로 훨씬 작게 들어가 있습니다.
위 네 가지 loss 항목을 이용해, 최종적으로 논문에서 TTN 을 학습하는데 사용한 loss 의 구성은 다음과 같습니다.
Ltotal=Lsty+λconLcon+λperLper+λtvLtv\mathcal{L}_{total} = \mathcal{L}_{sty} + \lambda_{con}\mathcal{L}_{con} + \lambda_{per}\mathcal{L}_{per} + \lambda_{tv}\mathcal{L}_{tv}

Experiments

Experimental Settings

논문에서는 다음과 같은 Experimental Settings 를 사용했다고 합니다. 논문의 골자를 이해하는데 중요한 내용은 딱히 없기 때문에 관심 있으신 분은 열어보시길 바랍니다.
Experimental Setting 보기

Artistic Portrait Generation

먼저 논문에서는 그들의 방법론이 CelebA 의 테스트케이스 뿐만 아니라 인터넷에서 수집한 실사 이미지들에서도 1. content 를 유지한 채 Target Domain 으로 transfer 할 수 있으며, 2. 복잡한 scene 에 대해서도 잘 동작함을 보여줍니다.
Results of Synthesized Portraits
위 그림의 (a) 에서와 같이 입력 Source Domain 이미지가 가지고 있는 Global Structure 뿐만이 아니라 악세서리, 배경, 고유성(identity) 과 같은 요소들이 유지된 채 Target Domain 으로 변환이 된 모습을 확인할 수 있습니다. 더불어, (b) 에서는 정면을 바라보지 않은 pose 의 이미지를, (c) (e) 는 occlusion 을 포함하고 있는 이미지들에 대해서 실험한 결과인데 논문의 방법론이 이러한 경우들에 대해 일반적으로 잘 동작할 수 있음을 보여줍니다.
Various Style Applied Results
이에 그치지 않고, 논문에서는 위의 그림에서 앞서 소개한 style 말고도 여러 Target Domain 의 style 을 3D Cartoon, Barbie, Anime, Hand-Drawn, Art-Style, Casual 등 다양하게 적용시킬 수 있음을 보여줍니다.

Comparison with the SOTA

논문에서는 다른 SOTA 방법론들과 논문의 방법론의 생성 결과를 비교합니다. 크게 두 그룹의 SOTA 방법론들과 비교하는데 1. Image-to-Image Translation 기반의 방법론인 CycleGAN, U-GAT-IT 과 2. StyleGAN-adaptation 기반의 방법론인 Toonify, PSP, AgileGAN, 그리고 Few-shot-Ada 와 비교합니다.
Qualitative Comparison with SOTA Methods - I
Qualitative Comparison with SOTA Methods - II
위 그림은 1. Source Code 가 공개되어 있는 연구들에 대해서 커스텀 데이터셋으로 비교한 결과와 2. Source Code 가 공개되어 있지 않는 등의 연구들에 대해서 비교적 불완전한 비교 결과입니다. AgileGAN 은 Source Code 가 공개되지 않았고, Few-shot-Ada 는 unconditional generative model 이기 때문에 inversion 과정을 임의로 추가하여 비교했다고 합니다.
위 결과를 통해 논문은 그들의 방법론이 Content Similarity 와 Style Faithfulness 측면에서 다른 방법론들에 비해서 우수하다고 주장하고 있습니다. 특히나 Content Similarity 는 Facial Identity 는 물론 디테일한 악세서리와 추가적인 Body Parts 들을 성공적으로 생성해냈다는 점을 강조하고 있습니다.

Quantitative Comparison

논문에서는 정성적인 비교 뿐만 아니라 정량적인 비교도 진행합니다.
Quantitative Comparison with SOTA Methods and Ablation
위 그림은 Target Domain Image Set 과 생성한 이미지들의 거리 측정 지표인 Frechet Inception Distance (FID) 와 Source Domain 과 생성한 이미지들의 고유성 측정 지표인 Identity Similarity (ID) 를 사용한 정량적인 평가 결과와 User Study 의 결과를 보여주고 있습니다. ID 는 Cosface 의 pretrained face recognition model 을 활용하여 측정했다고 합니다.
위 그림에서 보이는 것과 같이 논문의 방법론이 가장 낮은 FID 값과 가장 높은 ID 값을 보이는 것을 확인할 수 있었고 이는 곧 Target Domain 과 가장 유사하면서도 Source Domain 의 고유성을 가장 잘 유지했다고 해석해 볼 수 있습니다.
User Study 는 크게 두 개의 세션으로 진행되었습니다. Pref.A\rm{Pref.A} 세션은 사용자들에게 가장 적은 distorted artifact 를 가지는 이미지를 선택하게 했고, Pref.B\rm{Pref.B} 세션은 사용자들에게 가장 content 를 잘 유지한 이미지를 선택하게 했습니다. 그 결과 두 경우 모두에 대해서 80% 가 넘는 사용자들이 논문의 방법론으로 생성한 이미지를 선택했고 사용자 관점에서도 중요한 이미지의 퀄리티에 대한 향상을 이루어 냈음을 보여주었습니다.

Ablation Study

논문에서는 그들의 CCN, GEM, 그리고 TTN 의 유무에 따른 Ablation Study 를 제시합니다.
Effects of CCN, GEM, and TTN
CCN 을 제거한 버전은 심각한 overfitting 문제를 확인할 수 있었습니다. 이는 CCN 이 논문에서 설계한대로 Target Domain 이미지들의 diversity 를 확보하여 Source Domain 과 Target Domain 사이의 정교한 Mapping 을 생성하는 역할을 했기 때문으로 보고 있습니다.
GEM 을 제거한 버전은 Full Model 에 비해서 적은 Face Alignment Error 를 보이고 Full-Body Translation 에 중요한 역할을 했다고 합니다.
TTN 을 제거한 버전의 Ablation 을 위해, 논문에서는 [Karras et al. 2020] 의 inversion method 를 사용하여 입력 이미지를 먼저 StyleGAN 의 latent space 로 mapping 시킨 뒤에 학습된 CCN 의 GtG_t 를 사용하는 방법을 택했습니다. 이 방법은 out-of-domain 에 속하는 임의의 실사 이미지들에 대해서 content 를 심각하게 무시한 형태의 결과를 산출함을 확인할 수 있었습니다.더불어, Out-of-domain 에 속하지 않는 이미지에 대해서도 어느정도 괴리가 나타남을 통해 이것이 단순한 inversion 에서 오는 오류가 아니라 StyleGAN-adaptation 기반의 방법론들에서 나타나는 문제점인 것을 보여주었고 이를 TTN 으로 해결했음을 강조했습니다.
Auxiliary Effects of the Facial Perception Loss
위 그림은 논문에서 TTN 에서 사용한 Facial Perception Loss 에 대한 Ablation Study 입니다. 논문에서는 Conent Similarity 와 Style Faithfulness 간의 Trade-Off 가 있음을 시사하며 Conent Loss 의 강력함 때문에 일반적으로 코나 입과 같은 부분에 anime style 의 과장된 deformation 이 등장하지 못했다고 이야기하고 있습니다. 이를 해결하기 위해서 해당 영역에 대한 과감한 deformation 을 권장하는 Facial Perception Loss 를 추가함으로써 제거했을 때 나타났던 실제 이미지와 같은 입 모양 등이 해결된 자연스러운 이미지를 얻을 수 있었음을 보여주고 있습니다.

Conclusion

이것으로 논문 “DCT-Net: Domain-Calibrated Translation for Portrait Stylization” 의 내용을 간단하게 요약해보았습니다.
논문을 읽고나서 StyleGAN 및 Image-to-Image Translation 분야에 대한 이해도가 높아졌다는 생각이 들었습니다. 해당 논문은 구현체까지 다뤄본 경험이 있는데, 논문의 방법론만으로는 논문에서 보여주는 것만큼의 퀄리티가 잘 안나오는 것 같아서 논문에 대한 신뢰도가 아쉬웠던 것 같습니다. 개인적으로는 데이터셋이 얼마나 좋은지 (e.g. 일관된 스타일을 가지는지, 다양한 형태를 가지는지 등) 에 따라서 네트워크에 Model-Centric 한 설계의 수준이 달라질 수 있다는 것을 깨닫게 해준 경험이었던 것 같습니다.
Full-Body Portrait Stylization 분야는 상당히 흥미로운 분야여서 관심 있으신 분들은 한 번 읽으셔도 괜찮을 것 같습니다. 다만, 해당 논문에서 제시한 방법론 자체보다는 논문과 곁들여서 공부한 내용이 해당 도메인의 지식을 얻는데 더 큰 도움이 되었던 것 같습니다.