스타일 변환은 텍스쳐 변환 문제로 생각될 수 있다. 소스 이미지의 콘텐츠를 보존하면서 텍스쳐를 합성해 타겟 이미지를 만들어내는 것이 목적이다. 소스 텍스쳐의 픽셀을 resampling하여 원본 사진에 학습하는 non-parametric 알고리즘도 많이 있으며 콘텐츠 정보를 보존하는 여러 방식의 알고리즘이 있다.
이러한 알고리즘의 공통적인 한계가 하나 있는데 low-lever의 이미지 feature에서만 사용 가능하다는 것이다. 우리는 의미있는 콘텐츠 정보도 필요하다. 따라서 이미지 안에서 콘텐츠와 스타일의 독립적인 이미지 representations가 필요하다.
원래 이미지에서 스타일로부터 콘텐츠 분리는 매우 어려운 일이었다. 그러나 Deep Convolutional Neural Networks는 가능하다. 객체인식 같이 특정 task에 충분한 양으로 라벨된 데이터들로 학습된 CNN은 높은 수준의 이미지 콘텐츠를 추출해낸다.
Style Transfer는 최신 CNN에서 얻은 feature representations로 텍스쳐를 합성하도록 하는 알고리즘이다.텍스쳐 모델은 딥러닝 기반이라서 Neural Network에서 최적화 문제를 줄이는 식으로 학습된다.
일반적으로 non-leaner 필터를 쌓은 레이어들을 Neural Network에 배치해 복잡도를 높인다. 이렇게 인풋 이미지 는 CNN의 각 레이어에서 encoded된다. 개 레이어에서 X 의 사이즈를 갖는 feature map을 가짐.
층 구조에서 embedded 된 이미지 정보를 시각화하기 위해서 화으트노이즈 이미지가 원본 이미지와 대응 되도록 Gradient descent 실행. 는 원본 이미지이고, 는 생성된 이미지라고 할때, 과 을 각각 레이어에서 얻을 feature representations라고 한다. 이를 squared-error를 취하여
임의의 이미지 를 특정 레이어의 원본 와 대응하도록 학습한다. 객체 인식으로 학습된 모델은 층을 지날수록 객체 정보를 잘 표현하여 물체의 배치를 잘 잡지만 픽셀단위로 정확한 위치를 얻지는 않는다. lower layer일때는 원본 이미지와 비교해 픽셀단위로 정확하게 새로운 이미지를 생성하지만 콘텐츠 적 의미는 별로 같지 못한다.
--> layer가 깊어질수록 물체의 배치 , 정확한 외관
--> layer가 얕아질수록 물체의 배치 , 정확한 외관