상세 컨텐츠

본문 제목

[3주차/최유민/논문리뷰] Image Style Transfer Using Convolutional Neural Networks

2023 Summer Session/CV Team 3

by 도지01 2023. 7. 26. 17:27

본문

1. Introduction

Image Quilting for Texture Synthesis and Transfer

이전까지의 style transfer task는 위와 같은 image Quilting 기법과 같이 딥러닝을 이용하지 않고 있었다. 이러한 알고리즘의 문제점은 target image의 low-level image features만 사용한다는 것이다. style transfer의 경우 target image의 semantic content를 잘 담아야 하는데, 그러지 못한다는 단점이 있다. 

딥러닝이 발전하고 CNN기법이 등장한 후 CNN을 이용하여 처음으로 style transfer을 시도한 논문이 본 논문이며, 2016년 CVPR에 발표된다. 

 

2. Deep Image representations

본 논문에서는 CNN을 이용하여 target image 에서 content 정보를 추출하고, style image에서 style 정보를 추출한다. 임의의 노이즈 이미지 x(생성되는 이미지)를 업데이트하면서 이미지를 생성한다. 

VGG19 모델 구조

이용되는 CNN 네트워크는 19-layer VGG network에서 16개의 normalized 된 convolutional layer과, 5개의 pooling layer이다. FC layer는 사용하지 않는다. 

 

 

2.1. Content representation

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 은 하이퍼파라미터 값으로, 임의로 정해진다.

 

 

2.3. Style transfer

total loss function은 위와 같다. 

a : style 이미지 - 스타일을 추출하고 싶은 이미지

p : target 이미지 - 스타일을 적용하고 싶은 이미지

x : 생성하는 이미지. 노이즈에서 시작

content loss와 style loss 중 어떤 것을 더 반영할 지 설정하는 가중치 term  α,  β 도 있다.

 

위 total loss를 이미지인 x로 미분해서 얻은 gradient 값을 이미지에 업데이트해서 최종 이미지를 만들어낸다.

모델의 전체적인 모습이다. content loss값은 하나의 layer에서만 계산되고, style loss는 각각의 레이어마다 계산되어 더해진 것을 볼 수 있다.

 

3. Result

style tranfer을 적용한 결과물이다. A의 target image 가 각 스타일로 잘 변형된 것을 볼 수 있다.

다만 F와 같이 스타일 이미지가 low level noise가 강한 경우, target image 가 잘 남아있지 않은 것을 볼 수 있다.

 

이럴 때 위의 total loss에서  α , β  값을 조정하면서 더 좋은 결과물을 얻을 수 있다.

 α/β 값에 따른 결과물. content loss의 가중치인  α값의 비율이 높아질 수록 target image을 더 잘 반영한다.

 

4. Limitation

본 모델의 가장 큰 한계점은 스타일의 정의 부분에서 나타난 것 같다. 

본 논문에서도 이미지의 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

 

A Neural Algorithm of Artistic Style

In fine art, especially painting, humans have mastered the skill to create unique visual experiences through composing a complex interplay between the content and style of an image. Thus far the algorithmic basis of this process is unknown and there exists

arxiv.org

2. Leon A. Gatys, Alexander S. Ecker, Matthias Bethge, Image Style Transfer Using Convolutional Neural Networks,  2016

https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Gatys_Image_Style_Transfer_CVPR_2016_paper.pdf

 

3. https://ssungkang.tistory.com/entry/%EB%94%A5%EB%9F%AC%EB%8B%9DNeural-Style-Transfer

 

[딥러닝]Neural Style Transfer

Intro 사진을 찍던 중 사진의 스타일을 바꿀 수 있는 걸 보고 새삼스럽게 든 생각. 이건 어떻게 구현하지? 그래서 이를 한 번 구현해보고자 하였습니다, 이에 대해서 찾아보니 이름은 뉴럴 스타일

ssungkang.tistory.com

4. https://www.youtube.com/watch?v=va3e2c4uKJk&t=642s 동빈나 유튜브

 

관련글 더보기

댓글 영역