본문 바로가기
Paper Review/Style Transfer

Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization (2017)

by HanByol Jang 2022. 1. 23.
728x90

원하는 style로 이미지를 변화시켜주는 Adaptive Instance Normalization (Adain) 기법을 제시한 논문입니다. 이 논문을 기점으로 Image의 style을 변화시켜주는 Style Transfer 관련논문에서 모두 기본으로 사용하는 noramalization 기법으로 자리를 잡습니다.

https://openaccess.thecvf.com/content_iccv_2017/html/Huang_Arbitrary_Style_Transfer_ICCV_2017_paper.html


Introduction

초창기 Style transfer 논문은 noise 이미지로부터 원하는 content와 style을 가지도록 수백, 수천번의 학습을 통해 진행이 되었습니다.

https://hanstar4.tistory.com/13?category=1032711 

 

Image Style Transfer Using Convolutional Neural Networks (2016)

Image Style Transfer Using Convolutional Neural Networks는 Image에서의 Style를 변화시킨 최초의 논문으로 이 논문을 기점으로 다양한 style transfer 논문들이 나오게 됩니다. https://www.cv-foundation.org..

hanstar4.tistory.com

그러다보니 한장의 이미지를 얻기 위해서라도 시간이 굉장히 오래 걸린다는 단점이 있었습니다.

또한 미리 학습된 모델을 가지고 인퍼런스만 진행하면 되는 feed-forward network의 경우 시간이 단축이 되지만, 내가 원하는 style로 항상 바꿀수 있는 것이 아니고, 학습된 몇가지의 style로만 변환이 가능하다는 단점이 있었습니다.

그러므로 저자는 시간이 소요되지 않는 feed-forward 방식의 네트워크를 구현하였고, 이 네트워크는 정해지지않고 바꾸고 싶은 style을 넣어주면 그 style로 변환됩니다.


Background

1. Instance Normalization

기존의 style transfer 논문들에서는 Batch Normalization 대신에 하나의 이미지의 채널마다 normalization을 진행하는 Instance Noramlization을 진행했습니다.

배치별로 normalization을 진행하는 것보다 한장마다 normalization을 진행하는 것이 style을 바꾸는 학습에서는 더 좋은 성능을 보였습니다.

 

2. Conditional Instance Normalization

Instance normalization의 식에서 볼 수 있는 감마와 베타가 이미지의 style을 바꿔주는 역할을 하고 있다는 생각하고 이를 발전시킨 방법입니다. 즉, 바꾸고 싶은 style에 대해 각각의 감마와 베타 세트를 가지고 학습을 진행하는 것입니다. 이렇게 감마와 베타를 다르게 하는 것만으로도 다른 style로 바뀌는 것을 증명했습니다.


Adative Instance Normalization

CIN을 통해 감마와 베타가 style을 결정한다는 것을 확인하였기에, 저자는 미리 정해진 감마와 베타가아닌 내가 바꾸고 싶은 임의의 style을 통해 감마와 베타를 만들어 사용하여 원하는 style로 변환을 시키는 방법을 제안하였습니다.

학습이 필요한 감마와 베타 대신 내가 바꾸고 싶은 style의 이미지로부터 scale, shifting factor를 만들기 때문에 학습이 필요없다는 장점도 있습니다.

또한 정해진 style로만의 변환이 아니고 임의의 이미지를 넣더라도 해당 style로의 변환이 가능하다는 장점이 있습니다.

 

위 네트워크를 살펴보면, Content와 Style 이미지를 모두 이미 학습이 완료된 VGG encoder에 넣어 중간 feature를 추출합니다. 그리고 AdaIN 방법을 통해 Content feature를 정규화한 뒤, steyl의 feature를 입혀주게 됩니다. 그리고 Decoder를 통해 style이 바뀐 이미지를 생성합니다. 위 네트워크에서 실질적으로 학습이 진행되는 것은 Decoder 부분만입니다. 

Loss로는 content와 style에 관련되 나누어 계산이 됩니다.

Content loss는 AdaIN을 진행한 feautre와 실제 output 이미지가 VGG encoder를 통과한 후 생기는 feature가 같아지도록 학습을 유도합니다.

Style loss는 바꾸고자하는 style 이미지(s)와 생성된 output 이미지(g(t))의 VGG encoder를 통과한 후 생기는 feature의 mean, variance 즉 statistics 정보가 같아지는 방법으로 학습을 유도합니다.


Results

결과 이미지를 살펴보면, content는 유지한채 원하는 style로 변환되는 것을 알 수 있습니다.

728x90

댓글