공개된지 며칠도 되지 않은 DualStyleGAN
dualstyle이라는 이름에 걸맞게 기존의 stylegan2에서 새로운 네트워크를 추가해 한 쌍의 스타일 네트워크(매핑)를 사용하며, 적은 데이터로도 다른 모델들과 확실히 비교되는 좋은 성능을 내는 것을 볼 수 있다.
Introduction
이 연구에서는 예시 기반 초상화 스타일 전송에 초점을 맞췄다. 기존의 모델 fine-tuning 방법도 적은 데이터와 조금의 학습시간 만으로도 충분한 성능을 보여주었지만 목표 데이터셋의 전체적인 특징만을 학습하고 특정 예제에 대한 스타일 전송은 수행할 수 없었다. fine-tuning은 기존 네트워크의 도메인이 목표 도메인의 가장 비슷한 이미지에 매핑되는 형태로 학습하는데 이 방법은 반직관적이고 스타일 전송에 적합하지 않다고 한다.
그래서 기존 도메인을 변경하지 않고 또 다른 스타일 네트워크를 만들어 외부스타일을 주입하는 새로운 아이디어를 제시했다. 이 방법은 fine-tuning에서 레이어 스와핑을 통해 기존 도메인과 목표 도메인의 특정 계층을 섞어서 사용하던 것과 달리 각 계층의 외부 스타일 주입만을 조정하여 다중 레벨 스타일 조작이 가능하다.
기존 fine-tuning에 대한 분석을 바탕으로 fine-tuning이 컨볼루션 레이어에 미치는 영향을 잘 근사할 수 있는 잔차(residual) 방식으로 외부 스타일을 도입한다.
외부 스타일 네트워크의 원활한 전이학습을 위해 기존 도메인의 생성 공간을 유지하도록 하는 새로운 점진적 fine-tuning 방법론을 소개한다. 쉬운 스타일 전송 작업으로 훈련을 시작한 다음 난이도를 높여 점진적으로 대상 도메인으로 변환된다.
또한 훈련 도중 다양한 스타일을 학습하고 모드 붕괴를 방지하기 위해 감독 역할을 하는 얼굴-초상화 쌍을 제공하는 새로운 얼굴 destyle 방법을 제시한다.
Related Work
finetuning - 레이어 스와핑 방법은 유효한 감독이 없고 조건없는 조정과 함께 alignment가 약해져 완벽한 스타일 전송에 실패한다. 색 전송에는 유효하지만 구조적 스타일을 전송하는 데는 효과적이지 않다고 한다.
justin pinkney ukiyoe 1, justin pinkney ukiyoe 2
U-GAT-IT : 어텐션을 사용하여 두 도메인 간의 공유되는 영역에 주로 초점을 맞춤
AniGAN : 판별자에서 공유 레이어를 사용하여 두 도메인의 공통 기능 추출
GANs 'N Roses : 콘텐츠 코드와 스타일 코드를 추출한다. scaling, rotating, cropping 등 다양한 증강을 사용하며 증강에 의해 바뀌는 것을 콘텐츠, 증강에 영향을 받지 않는 것이 스타일이라는 정의로부터 모델이 콘텐츠와 스타일을 명확히 구분 할 수 있게 학습
Portrait Style Transfer via DualStyleGAN
기존의 fine-tuning은 공간을 전체적으로 변환하여 스타일 다양성을 잃지만 dualstylegan에서는 외부 스타일 네트워크를 이용하여 기존 도메인을 해치지 않음과 동시에 다양한 스타일 도메인에 매핑할 수 있다.
1) Facial Destylization
얼굴 디스타일화는 예술적 초상화(애니메이션 얼굴과 같은)에서 사실적인 얼굴을 복구하여 훈련 감독으로서 고정된 얼굴-초상화 쌍을 형성하는 것을 목표로 한다. 복구된 얼굴과 초상화 사이의 차이가 클 수 있으므로 둘 사이의 균형을 유지하기 위해 초상화의 사실감을 점진적으로 향상시키는 다단계 디스타일 방법을 제안한다.
1-1) Latent initialization
PSP Encoder를 이용해 초상화를 stylegan 잠재공간에 매핑한다.
PSP 인코더는 특정한 stylegan2 네트워크에 대해 학습한다. 어떤 이미지 S를 입력하면 입력된 이미지와 가장 가까운 해당 네트워크의 W+ 공간 벡터를 출력한다.
연구진은 초상화의 얼굴과 무관한 배경이나 변형에 영향을 받지 않도록 PSP를 조금 수정하여 W+가 아닌 Z+ 공간 벡터를 출력하도록 했다. psp 인코더는 실제 얼굴 이미지로 훈련되었지만 실제 얼굴이 아닌 이미지에서도 색감이나 특징을 잘 잡아낸다.
S를 입력했을 때 FFHQ로 훈련된 psp 인코더와 stylegan 생성기 g을 통하여 나오는 출력 이미지 (b)
(내부 스타일 네트워크 + 제너레이터 = g, 외부 스타일 네트워크 + 제너레이터 = g', 전체 dualstylegan 네트워크 = G)
1-2) Latent optimization
인코더를 이용해 S에서 ze+를 추출했다면 이제는 추출된 ze+를 fine-tuning된 생성기 g'를 이용해 최적화하는데
(최적화 하기 전 z+를 평균벡터가 아닌 ze+로 초기화한 이유는 얼굴 구조를 정확히 맞추는데 도움이 되기 때문)
g'(z+)와 S의 perceptual loss (지각적 특징이 얼마나 유사한지),
identity loss (얼굴인식을 하는 데 활용되는 특징들이 얼마나 유사한지),
표준 오차를 최소가 되게 하는 zeˆ+를 찾는다.
zeˆ+를 찾은 후 과적합을 피하기 위해 zeˆ+를 잘 정의된 Z 공간(FFHQ의 잠재공간을 말하는 듯)으로 당기는 정규화 항을 설계했다.
1-3) Image embedding
최종적으로 zeˆ+ 를 원래 FFHQ모델과 인코더를 통과시켜 zi+ (=E(g(zeˆ+))) 비현실적인 얼굴 정보를 추가로 제거한다.
zi+는 보다 합리적인 안면 구조를 가지며 ze+와 한 쌍으로 훈련을 진행하여 S를 모방하기 위해 안면 구조를 변형하고 추상화하는 방법에 대한 유효한 감독을 제공한다.
2) DualStyleGAN
왼쪽에 있는 기존의 내부 스타일 네트워크(매핑 네트워크)와 생성기의 피라미터들은 고정된 상태로 유지되며 입력으로 디스타일화된 스타일 코드 zi+ or 실제 얼굴의 스타일 코드 z+ or 단위 가우스 노이즈 z를 받는다.
(인코더의 출력 크기는 18x512이고 원래 stylegan2에서 입력으로 받는 잠재벡터 크기는 1x512이지만 사실 각 층에 들어갈 잠재벡터가 각 층의 레이어에서 요구되는 스타일 정보만 갖고 있으면 되므로 상관없다. 그리고 내가 예전에 psp를 사용 했을 때 psp의 출력이 매핑 네트워크를 고려하지 않고 바로 생성기 네트워크로 출력했었는데 이 모델은 고정된 매핑과 psp를 같이 썼길래 의아해서 찾아봤더니 psp에 매핑을 사용하는 옵션이 있었다.)
외부 스타일 네트워크는 단순히 초상화를 인코딩한 ze+ or 노이즈 z를 받는다. 이 노이즈와 네트워크 N에 대한 내용은 추후 설명.
전체적인 훈련은 얼굴 이미지 I와 초상화 이미지 S, 가중치 w를 받고 G(E(I), E(S), w)에 의해 스타일 전송이 이루어지며 w는 각 계층의 스타일 조합을 조절하기 위한 가중치 벡터이다.
Color control
미세 해상도 레이어(8~18)에서 외부 스타일 경로는 내부 스타일과 동일하게 매핑 네트워크와 아핀 변환 블록을 거치고 AdaIN에서 가중치 w의 값을 반영하여 융합된다. 블록 Tc는 도메인별로 색상 값을 특성화하기 위해 사용된다.
Structure control
거친 해상도 레이어(1~7)에서 구조적 스타일을 조정하기 위해 도메인별 스타일을 특성화하는 Ts, 그리고 ResBlock과 AdaIN이 포함된 변조 잔차 블록(ModRes)를 제안한다.
fine-tuning은 조정 전후 모델의 의미적 alignment가 중요한데, 연구진은 fine-tuning 도중 가장 많이 변경되는 컨볼루션 레이어를 제외한 다른 하위모듈을 모두 얼리고 ResBlock, AdaIN, DAT 등의 모듈을 적용해보며 컨볼루션 레이어의 변화를 시뮬레이션해 보았다.
실험 결과 모든 가중치를 fine-tuning한 결과와 가장 비슷한 ResBlock으로 외부 스타일을 주입하기로 했으며 블록 내부 모듈로는 컨볼루션 + AdaIN을 사용했다.
이 모델의 DualStyle 구조는 color와 structure에 대한 계층적 스타일 모델링, w를 이용한 유연한 스타일 조작, 기존 모델의 가중치를 전혀 건드리지 않음으로써 모드 붕괴 완화, 다음 섹션에서 설명할 변조 잔차 블록의 contents loss에 대한 이점을 얻을 수 있다.
3) Progressive Fine-Tuning
3-1) Color transfer on source domain
이 단계는 기존 도메인 내에서 색상 전달을 담당한다. 변조 잔차 블록 컨볼루션의 가중치를 0에 가깝게, 색상 변환 블록 Tc의 FC 레이어는 단위행렬로 설정함으로써 coarse style은 내부 스타일로부터, fine style은 외부 스타일로부터 얻는 마치 stylegan의 스타일 믹싱과 유사한 효과를 낸다.
3-2) Structure transfer on source domain
이 단계에서 dualstylegan은 다음과 같은 식에 대해 훈련한다.
Ladv는 일반적인 adversarial loss, Lperc는 perceptual loss
z1, z2는 임의의 잠재벡터, z~2는 E(g(z2))에서 샘플링(추후 설명)한 값, zl+는 z1과 z2를 l번째 레이어까지 실제로 스타일 믹싱한 결과벡터이다. 학습 도중 l을 7에서 5까지 점점 줄이면서 처음에는 z1에서만 coarse style을 받다가 나중엔 z2 에서 받도록 한다.
정리하자면 Lperc는 두 잠재벡터를 실제로 스타일 믹싱해 기존 생성 네트워크를 지나 출력된 값과 dualstylegan를 통한 간접 스타일 믹싱을 이용해 생성된 값의 지각적 차이를 의미하며, l을 조금씩 줄임으로써 외부 스타일의 middle style을 점진적으로 배울 수 있게 한다.
3-3) Style transfer on target domain
최종적으로 기존 도메인을 목표 도메인으로 fine-tuning한다.
먼저 perceptual loss,
임의의 z에 대해 S와의 contextual loss와 feature matching loss의 합인 style loss,
z를 dualstylegan과 기존 네트워크에 각각 통과시킨 값의 identity loss와 ModRes block 가중치의 L2 정규화의 합인 content loss를 사용하여 학습시킨다.
ModRes의 L2정규화를 loss로 사용하는 이유는 3-1 단계처럼 기존 얼굴의 구조적 특징을 최대한 보존하기 위함이다.
그래서 최종 손실함수는
4) Latent Optimization and Sampling
잠재 최적화와 샘플링은 모델의 기본 파이프라인은 아니고 추가적인 선택사항이다.
4-1) Latent optimization
이전 단계에서 콘텐츠 정보의 소실을 막기 위한 몇 개의 정규화 트릭이 있었는데, 좀 더 스타일 이미지에 치우쳐진 이미지를 얻도록 모델을 조정한다. 앞서 설명한 디스타일 잠재 최적화에서 정규화항을 뺀 프로세스를 거치고 최종 손실함수에서 사용된 perceptual loss와 contextual loss를 최소화 시킨다. 조정된 모델로 얻은 이미지는 훨씬 더 스타일 이미지에 가까워진 것을 확인할 수 있다.
4-2) Latent sampling
샘플링 네트워크 N을 훈련하여 단위 가우스 노이즈를 최적화된 외부 스타일 코드의 분포에 매핑한다. 이걸 이해하기 위해서는 배경지식이 좀 필요한데,
IMLE : GAN의 적대적 방식을 사용하지 않고, 가짜->실제가 아닌 실제->가짜 이미지 매칭 방식으로 가짜 이미지들에게 가장 가까운 실제 이미지를 닮아가도록 훈련시키는 방법을 제안했다. 모드 붕괴는 현재의 결정 경계에서 거리가 먼 실제 이미지에 낮은 확률을 할당하는 것으로도 볼 수 있는데 여기서는 모든 가짜 이미지에 실제 이미지의 매핑이 있고 그것만 따라가면 되므로 모드붕괴가 일어나지 않지만 선명한 이미지를 학습하지 못한다. 하나의 입력에 하나의 출력이 아니라 그 이웃에 해당하는 여러 개의 후보군을 출력한다.
GLO : 오토인코더처럼 학습가능한 노이즈 벡터를 데이터셋의 각 이미지에 매핑한다. 노이즈 벡터와 대응되는 이미지 간의 대응관계를 추적하고 의미있는 특징을 찾아 알맞는 이미지에 매핑할 수 있도록 한다. 의미론적으로 잘 정렬된 저차원의 공간에 이미지를 임베딩하는 방법론 정도로 생각하면 된다.
GLANN : GLO와 IMLE의 장점을 합친 것. 훈련 데이터셋을 GLO의 잠재공간에 임베딩하고 IMLE를 이용해 입력에 대한 출력 이미지 후보군을 산출한다. 위의 세 모델 모두 비적대적으로 이미지를 생성한다.
이 GLANN 모델을 기반으로 입력 노이즈를 잠재공간에 매핑시키고 출력 후보군에서 샘플링하여 값을 출력하는 매핑네트워크 N을 훈련시켜 dualstylegan의 학습에 이용한다.
Experiment
1) Comparison with State-of-the-Art Methods
https://www.mmlab-ntu.com/project/dualstylegan/
공식 웹사이트, 다른 모델들에 비해 압도적인 성능을 볼 수 있다.
2) Ablation Study
2-1) Paired data
2-2) Regularization lambda
0.005 채택
2-3) Progressive fine-tuning
2-4) Effect of different layers
아래 적힌 숫자의 레이어에만 외부 스타일을 주입 했을 때 어떻게 변하는지
3) Further Analysis
(c) 외부 color 가중치 wc = 0
(d) 외부 fine 스타일 을 내부 스타일의 것으로 교체, Tc블록을 지나므로 c와 조금 다름
(e) 외부 coarse 스타일의 가중치 ws = 0.5
보간을 이용해 스타일 융합.
위쪽부터 내/외부 스타일 변경, 내부 스타일만 변경, 외부 스타일만 변경
다양한 스타일 적용의 예시
훈련 데이터에 없었던 유형의 스타일를 입력 했을 때의 예시.
(d)는 잠재 최적화를 통해 조금이나마 스타일이 반영됨.
4) Limitations
일반적인 실패 사례
(a) 모자와 같은 비얼굴 텍스쳐를 잘 감지하지 못함
(b) 몇몇 애니메이션 얼굴은 코 부분이 매우 부자연스럽다
(c) 외부 스타일 데이터셋에 앞머리가 없는 곱슬머리 이미지가 없어 표현하지 못함
(d) 극도로 큰 눈 등 특이한 스타일은 잘 흉내낼 수 없다. 개인적인 경험으로 이건 다른 모델을 훈련시킬 때도 느꼈는데 identity loss 때문인 걸로 추정된다. 저 이미지에서 얼굴을 감지할 수가 없어서인듯. 사실 큰 눈만을 가지고 있는 데이터셋이 있다면 identity loss 빼고 훈련시키면 될 것 같긴 하다.
THE END.
아래는 후기입니다
stylegan3 리뷰를 하고 나서 좀 쉬다가 paperswithcode 에 들어갔는데 딱 메인화면에 이 모델이 있었다. 들어가봤는데 내가 평소에 관심 있었던 fine-tuning, style transfer 그리고 최근에 사용해봤던 psp까지 묶음으로 있어서 일단 기분이 좋았고 성능도 엄청 좋아보여서 바로 리뷰해야겠다 싶었다. stylegan3 리뷰 엄청 힘들게 하고 나니깐 다른 논문은 약간 easy mode 같은 느낌이 든다.
'논문 리뷰 > GAN' 카테고리의 다른 글
Domain Enhanced Arbitrary Image Style Transfer via Contrastive Learning (CAST) 논문 리뷰 (0) | 2022.05.26 |
---|---|
StyleGAN-XL: Scaling StyleGAN to Large Diverse Datasets 논문 리뷰 (2) | 2022.05.14 |
Projected GANs Converge Faster 논문 리뷰 (0) | 2022.05.14 |
FastGAN : Towards Faster and Stabilized GAN Training for High-fidelity Few-shot Image Synthesis 논문 리뷰 (0) | 2022.05.13 |
Alias-Free GAN (StyleGAN3) 리뷰 - Architecture (0) | 2022.03.26 |
Alias-Free GAN (StyleGAN3) 리뷰 - 개념 (2) | 2022.03.09 |