[3주차/최유민/논문리뷰] Image Style Transfer Using Convolutional Neural Networks
이전까지의 style transfer task는 위와 같은 image Quilting 기법과 같이 딥러닝을 이용하지 않고 있었다. 이러한 알고리즘의 문제점은 target image의 low-level image features만 사용한다는 것이다. style transfer의 경우 target image의 semantic content를 잘 담아야 하는데, 그러지 못한다는 단점이 있다.
딥러닝이 발전하고 CNN기법이 등장한 후 CNN을 이용하여 처음으로 style transfer을 시도한 논문이 본 논문이며, 2016년 CVPR에 발표된다.
본 논문에서는 CNN을 이용하여 target image 에서 content 정보를 추출하고, style image에서 style 정보를 추출한다. 임의의 노이즈 이미지 x(생성되는 이미지)를 업데이트하면서 이미지를 생성한다.
이용되는 CNN 네트워크는 19-layer VGG network에서 16개의 normalized 된 convolutional layer과, 5개의 pooling layer이다. FC layer는 사용하지 않는다.
p : target image(스타일을 변경하고 싶은 이미지)
x : 생성되는 이미지
P^l : original image의 각 레이어 l 에서의 feature
F^l : 생성되는 이미지의 각 레이어 l 에서의 feature
content loss 는 두 이미지의 feature map 값이 각 레이어에서 동일하도록 만든다. content loss의 경우 특정 하나의 레이어에서만 두 이미지의 차이를 줄인다.
2.2. Style representation
본 논문에서는 이미지의 '스타일'을 위와 같은 gram matrix 로 정의한다. gram matrix 는 l번째 layler에서 각 feature map의 내적의 합으로 정의된다.
gram matrix가 유사한 두 이미지는 스타일이 비슷한 이미지라고 할 수 있는 것이다.
다음으로, style image 와 새로 생성되는 이미지의 gram matrix값의 차이인 E_l 을 정의한다.
G : 생성되는 이미지(x)의 gram matrix
A : style 이미지의 gram matrix
E_l : 레이어 l에서의 두 이미지의 gram matrix(style 정보) 차이
N_l, M_l : normalization term
style loss는 각 레이어마다 E_l 의 값의 가중치 합이다.
w_l 은 하이퍼파라미터 값으로, 임의로 정해진다.
total loss function은 위와 같다.
a : style 이미지 - 스타일을 추출하고 싶은 이미지
p : target 이미지 - 스타일을 적용하고 싶은 이미지
x : 생성하는 이미지. 노이즈에서 시작
content loss와 style loss 중 어떤 것을 더 반영할 지 설정하는 가중치 term α, β 도 있다.
위 total loss를 이미지인 x로 미분해서 얻은 gradient 값을 이미지에 업데이트해서 최종 이미지를 만들어낸다.
모델의 전체적인 모습이다. content loss값은 하나의 layer에서만 계산되고, style loss는 각각의 레이어마다 계산되어 더해진 것을 볼 수 있다.
style tranfer을 적용한 결과물이다. A의 target image 가 각 스타일로 잘 변형된 것을 볼 수 있다.
다만 F와 같이 스타일 이미지가 low level noise가 강한 경우, target image 가 잘 남아있지 않은 것을 볼 수 있다.
이럴 때 위의 total loss에서 α , β 값을 조정하면서 더 좋은 결과물을 얻을 수 있다.
α/β 값에 따른 결과물. content loss의 가중치인 α값의 비율이 높아질 수록 target image을 더 잘 반영한다.
본 모델의 가장 큰 한계점은 스타일의 정의 부분에서 나타난 것 같다.
본 논문에서도 이미지의 content와 style 정보를 명확하게 분류할 수 있는 것인지 알 수 없다고 말했다.
예를 들어, 반 고흐의 "Starry Night" 그림의 style을 별 모양이 없는 이미지로 그리는 것은 불가능하다. 위 그림을 보면 각 layer에서 스타일 정보를 추출하고 그 스타일을 다시 reconstruction한 이미지를 볼 수 있다.
이미지 스타일이 이미지의 content에서 명확하게 분리되었다고 하기 어려운 부분이 있다.
본 논문 이후로 이미지 스타일의 정의가 어떻게 바뀌어 가는지, 최신 논문은 이 task를 어떻게 해결하는지가 궁금해진다.
참고자료
1. Leon A. Gatys, Alexander S. Ecker, Matthias Bethge, A Neural Algorithm of Artistic Style, 2015
https://arxiv.org/abs/1508.06576
2. Leon A. Gatys, Alexander S. Ecker, Matthias Bethge, Image Style Transfer Using Convolutional Neural Networks, 2016
3. https://ssungkang.tistory.com/entry/%EB%94%A5%EB%9F%AC%EB%8B%9DNeural-Style-Transfer
4. https://www.youtube.com/watch?v=va3e2c4uKJk&t=642s 동빈나 유튜브
댓글 영역