Neural Style Transfer - Project

2021. 11. 20. 23:57Artificial_Intelligence/Computer Vision

2021.10.07 - [Hi/Artificial_Intelligence] - Neural Style Transfer

 

Neural Style Transfer

What is NST? Style transfer란, 두 영상(content image & style image)이 주어졌을 때 그 이미지의 주된 형태는 content image와 유사하게 유지하면서 스타일만 우리가 원하는 style image와 유사하게 바꾸는 것..

forbetterdays.tistory.com

기존의 NST 모델 공부에서 한단계 더 깊게 하여 프로젝트에 사용하였습니다.

 

What is NST (Neural Style Transfer)?
- Style transfer란, 두 영상(content image & style image)이 주어졌을 때, 그 이미지의 주된 형태는 content image와 유사하게 유지하면서 스타일만 사용자가 원하는 style image와 유사하게 바꾸는 것을 말합니다.
- Style Transfer, image-to-image translation, 또는 texture transfer 등으로 불리는 이 문제는 한 이미지 P를 다른 이미지 A의 스타일을 가지는 새로운 이미지 X를 생성하는 방식임.

 

 

 

NST의 방식

Image Style Transfer Using Convolutional Neural Networks, Gatys et al.

 
- 모델의 작동 방식을 설명하자면, 두개의 Input(Content와 Style)을 받아서 새로운 output을 생성하는데,
여기서 Pretraining된 모델을 사용하여 각각의 Input 이미지의 특징맵을 뽑아 이를 기록하여 놓습니다.
그러면 output의 이미지는 노이즈에서 시작되어 각각의 특징맵을 합치게 되는데,
각각의 비율에 따라 content와 style 이미지의 feature map을 닮아가도록 output 이미지의 픽셀을 최적화하여 만들어지게 됩니다.
- Pretraining 모델에서 컨텐츠와 스타일 각각의 feature map을 추출하여 저장하고, Output의 feature map이 content의 feature map에서 content가 비슷해지도록,  style의 feature map에서 style과 비슷해지도록, output 픽셀들을 최적화합니다.
 
NST 최종 목적 함수

Style Transfer Using Convolutional Neural Networks , Gatys et al.

- Content의 비율이 더 크면 Content의 형태를 더 유지하고,
- Style의 비율이 더 크면 Content의 형태를 유지하지 못하고, 이미지의 형태가 Style쪽에 더 치우칩니다.



1. 새로운 Style Image 제작 모델 + 화풍 같이 만드는 Style Transfer 모델

- 여러 화가들의 작품 이미지 데이터를 바탕으로, NST 모델을 사용하여 두가지 이상의 화가들의 특징과 색감을 살린 새로운 이미지를 제작하였다.
- 입력의 두 이미지의 특징과 색감 등 적절하게 반씩 섞어야 해서 여러 실험을 통해 가중치를 찾아 제작하였다.
- VGG19모델을 사용하였고 실험을 통해 Dimensions값을 512정도로 설정을 하게 되었을 때, 각 각의 이미지의 특징이 잘 합쳐진다는 결과가 나왔다.
- 따라서 dimensions을 512로 설정하고, Content의 Weight를 1e-4, Style의 Weight를 1e-2를 주었다. 100번씩 10번을 학습하여 결과물들을 제작하였다.

 

1번 모델 결과물

 

 2. 사용자 선택 이미지 모델

- VGG19모델을 사용하였고, Content의 Weight를 2.5e-8로, Style의 Weight를 1e-6으로 설정을 하였다.
- 각 값은 여러 번의 실험을 통해 얻게 된 자연스러운 합성을 위한 가중치이다.
- 최대한 Content의 형태를 잃지 않도록, 화풍처럼 보이지 않도록 각각의 가중치를 설정하여 사용자가 선택한 Style Image의 색감을 Transfer 할 수 있도록 제작하였다.

2번 모델 결과물

 

3. 객체 검출을 통해 합성된 이미지의 자연스러운 합성 모델

- 서버와 통신하는 모바일 어플리케이션에서는 객체 검출과 Style Transfer을 사용하여 사용자에게 전달하기에는 많은 시간이 소요된다는 판단에, 가장 빠르게 스타일 전이를 위해 Tensorflow_Hub에 적재되어 있는 Magenta Model을 사용하기로 선택하였다.
- 이 모델에서는 두가지 Input 이미지를 받으면, 전처리를 해주어, 모델에 맞는 Tensor 형식으로 이미지를 preprocessing 하였다.
- Content사진은 객체 검출을 통해 붙여진 합성 이미지이고, Style 사진은 합성 이전의 사진이 된다.

3번 모델 결과물

 

728x90