Deep photo style transfer
Feature map을 이용하여 원본 이미지에 원하는 style을 적용시켜 새로운 이미지를 생성하는 방법
Content generation
이미지에 대한 convolution layer를 수행하면서 생성한 feature map을 통해 image(content)를 복원시키는 작업을 말한다. 깊은 convolution layer 일수록 많은 정보를 잃어버리기 때문에 image를 복원시키는 것이 어렵고 얕은 layer에서는 기존 이미지와 비슷하게 복원이 가능하다.
Style generation
Feature map을 통해서 비슷한 style을 가지는 image를 생성해내는 작업을 말한다.
Gram matrix (Auto-correlation matrix)을 사용하여 style을 추출하게 되는데, L-th layer에서 i번째 feature와 j번째 feature 간의 correlation을 구하게 된다. Feature를 가지고 vector를 만들고 correlation을 구하게 된다. correlation이 texture(style)에 대한 정보가 숨어있다고 가정한다. Style generation 또한 layer가 깊어질수록 style을 담아내고 있는 feature가 적어진다.
Artistic style
Feature map을 통해서 style generation과 content generation을 동시에 수행하는 것이 neural algorithm of artistic style이다. 즉 적당히 content를 복원하고 여기에 style을 추가한다는 느낌으로 해석할 수 있다. Content 영상에 style image와 같은 style을 가지게 해주고 싶다는 것은 content image의 feature map과 generation 하는 영상의 feature map을 같게 하고 싶고 (content generation) style image에서 gram matrix로 추출한 style이 generation 하는 영상의 style과 같게 해주는 것(style generation)을 의미한다.
Deep photo style transfer
Deep photo style transfer는 위와 같은 이론을 바탕으로 Photorealism regularization과 Augmented style loss with semantic segmentation을 적용시킨 방법이다. Content를 조금 더 정밀하게 보안하고(Photorealism regularization) style이 잘못 입혀지는 부분을 최소화시키는 방법(Augmented style loss with semantic segmentation)을 사용했다. (그림의 빨간색 부분이 noise를 의미한다.) Photorealism regularization은 image matting이라는 방법을 사용하게 되는데 Foreground object(원하는 물체)를 뽑아내는 것을 말한다. Image matting을 object를 뽑아내는데 필요로 되는 loss로 적용시켜 foreground object를 잘 뽑아내지 못하면 penalty를 주는 형식으로 원하는 object를 추출하게 된다. Augmented style loss with semantic segmentation은 background와 foreground에 대해 gram matrix를 구할 경우 나타나는 cross-term을 제거하기 위해서 사용한다. Cross-term은 background와 foreground가 겹쳐지는 현상을 말하며 적용시키는 style이 foreground와 background 적절하게 분포되지 못하게 된다. feature map에 semantic segmentation mask를 통과시킴으로써 제거를 시키게 된다.
reference
- 'Deep Photo Style Transfer' paper
'머신러닝' 카테고리의 다른 글
Single Image Super-Resolution with Convolutional layers (0) | 2019.07.10 |
---|---|
Autoencoder & Generative adversarial network (1) | 2019.07.08 |
머신러닝 실습 with Tensorflow 8장 - ReLu & Dropout & Xavier - (0) | 2017.06.12 |
머신러닝 실습 with Tensorflow 7장 - Neural Network for XOR problem - (0) | 2017.06.11 |
머신러닝 실습 with Tensorflow 6장 - MNIST data test - (0) | 2017.06.09 |