인공지능/Computer Vision

Style Transfer

여니여니_ 2019. 10. 15. 01:29

Visualizing What Convnets Learn

딥러닝의 블랙박스는 학습된 표현에서 사람이 이해하기 쉬운 형태를 뽑아내거나 제시하기 어렵다. 

ConvNet은 시각적인 개념을 학습한 것이기 때문에 시각화하기에 좋다. 

 

대표적인 세가지 기법

- 컨브넷 중간층의 출력을 시각화하기: 연속적인 컨브넷층이 입력을 어떻게 변형시키는지 이해하고 개별적인 컨브넷 필터의 의미 파악에 도움이 된다. 

- 컨브넷 필터 시각화: 컨브넷의 필터가 찾으려는 시각적인 패턴과 개념이 무엇인지 상세하게 이해하는데 도움이 된다.

- 클래스 활성화에 대하나 히트맵을 이미지에 시각화: 이미지의 어느 부분이 주어진 클래스에 속하는데 기여했는지 이해하고 이미지에서 객체의 위치를 추정하는데 도움이 된다.

 

중간 층의 활성화 시각화

- 어떤 입력이 주어졌을 때 네트워크에 있는 여러 합성곱과 풀링층이 출력하는 Featuremap을 그리는 것이다.

- 네트워크에 의해 학습된 필터들이 어떻게 입력을 분해하는지 보여준다.

- 넓이, 높이, 채널의 세 개 차원에 대해 특성 맵을 시각화하는 것이 좋다.

- 각 채널은 독립적인 특성을 인코딩하므로 Featuremap의 각 채널 내용을 독립적인 2D 이미지로 그리는 것이 좋다.

 

- 첫번째 층은 여러 종류의 Edge detector를 모아놓은 것 같다. 이 단계의 활성화에는 초기 사진에 있는 거의 모든 정보가 유지된다. 상위층으로 갈수록 활성화는 점점 더 추상적으로 되고 시각적으로 이해하기 어려워진다. 고양이 귀, 고양이 눈 과 같은 고수준의 개념을 인코딩하기 시작한다. 상위층의 표현은 이미지의 시각적 콘텐츠에 관한 정보가 점점 줄어들고 이미지의 클래스에 관한 정보가 점점 증가한다. 비어있는 활성화가 층이 깊어짐에 따라 늘어난다. 첫번째 층에서는 모든 필터가 입력 이미지에 활성화되었지만 층을 올라가면서 활성화되지 않는 필터들이 생긴다.

 

 

심층 신경망이 학습한 표현에서의 주요 특징

- 층에서 추출한 특성은 층의 깊이를 따라 점점 더 추상적이게 된다.

- 입력되는 원본 데이터에 대한 정보 정제 파이프라인처럼 작동

- 반복적인 변환으르 통해 관계없는 정보를 걸러내고 유용한 정보는 강조/개선된다.

 

컨브넷 필터 시각화

빈 입력 이미지에서 시작해서 특정 필터의 응답을 최대화하기 위해 컨브넷 입력 이미지에 경사 상승법을 적용하여 선택된 필터가 최대로 응답하는 이미지를 결과로 한다.

- 컨브넷의 각 층의 필터의 조합으로 입력을 표현할 수 있는 일련의 필터를 학습하는데, 푸리에 변환을 사용해 신호를 일련의 코사인 함수로 분해할 수 있는 것과 같다. 이 컨브넷 필터들은 모델의 상위 층으로 갈수록 더 복잡해진다.

 

클래스 활성화의 히트맵 시각화하기

- 이미지의 어느 부분이 컨브넷의 최종 분류 결정에 기여하는지 이해하는데 유용하다. 

- 분류에 실수가 있는 경우 컨브넷의 결정 과정을 디버깅하는데 도움이 된다.

- 이미지에 특정 물체가 있는 위치를 파악하는데 사용할 수도 있다.

- 일반적으로 클래스 활성화맵(CAM) 시각화라고 한다.

방법) 입력 이미지가 주어지면 합성곱층에 있는 특성맵의 출력을 추출하고 특성맵의 모든 채널의 출력에 채널에 대한 클래스의 그래디언트 평균을 곱한다.

 

 

 

 Neural Style Transfer 

Neural Style Transfer (NST) refers to a class of software algorithms that manipulate digital images, or videos, to adopt the appearance or visual style of another image. NST algorithms are characterized by their use of deep neural networks in order to perform the image transformation. Common uses for NST are the creation of artificial artwork from photographs, for example by transferring the appearance of famous paintings to user supplied photographs. Several notable mobile apps use NST techniques for this purpose, including DeepArt and Prisma.

 

Prisma (app) - Wikipedia

Prisma is a photo-editing application that uses neural network and artificial intelligence to transform the image into an artistic effect.[3] The app was created by Alexey Moiseenkov (Russian: Алексей Моисеенков), Oleg Poyaganov, Ilya Frolov, Andrey Usolts

en.wikipedia.org

Style Transfer 는 디지털 이미지, 비디오를 다른 이미지의 모습 또는 시각적 스타일을 적용시키는 알고리즘을 말합니다. 

 

Target Image의 Content를 보존하면서 Reference Image의 Style을 Target Image에 적용한다.

Style: 질감, 색깔, 이미지에 있는 다양한 크기의 시각 요소

Contents: 이미지에 있는 고수준의 대형 구조

Loss Function: distance(style(reference_img)-style(generated_img))+

                        distance(content(original_img)-content(generated_img))

Distance: Norm 함수

 

  • 콘텐츠 손실

- 네트워크 하위층의 활성화는 이미지에 대한 국부적인 정보를 담고있다. 반면 상위층의 활성화일수록 점점 전역적이고 추상적인 정보를 담게된다. 

- 컨브넷층의 활성화는 이미지를 다른 크기의 콘텐츠로 분해한다고 볼 수 있다.

- 컨브넷 상위 층의 표현을 사용하면 전역적이고 추상적인 이미지 콘텐츠를 찾는다.

- 타깃과 생성된 이미지를 사전 훈련된 컨브넷에 주입하여 상위층의 활성화를 계산한다. 

- 상위층에서 보았을 때 생성된 이미지와 원본 타깃 이미지를 비슷하게 만든다.

- 컨브넷의 상위층이 보는 것이 입력 이미지의 콘텐츠라면 이미지의 콘텐츠를 보존하는 방법으로 사용할 수 있다.

 

  • 스타일 손실

- 스타일 손실은 컨브넷의 여러 층을 사용하는데, 이는 하나의 스타일이 아니라 참조 이미지에서 컨브넷이 추출한 모든 크기의 스타일을 잡는것이다.

- 층의 활성화 출력의 그람행렬을 스타일 손실로 사용하였다.

- 그람 행렬은 층의 Featuremap들의 내적이다.

- 내적은 층의 특성 사이에 있는 상관관계를 표현하고 이해하는데, 이는 특정 크기의 공간적인 패턴 통계를 잡아낸다.

- 스타일 Reference image와 generated image로 층의 활성화를 계산한다.

- 스타일 손실은 그 안에 내재된 상관관계를 비슷하게 보존한다.

- 스타일 참조 이미지와 생성된 이미지에서 여러 크기의 텍스처가 비슷하게 보이도록 만든다.

 

  • 과정

- 스타일참조이미지, Target Image, Generated Image를 위해 VGG19의 층활성화를 통시에 계산하는 네트워크를 설정한다.

- 세 이미지에서 계산한 층 활성화를 사용하여 앞서 설명한 손실함수를 정의한다. 이 손실을 최소화하여 Style Transfer를 구현한다.

- 손실 함수를 최소화할 경사하강법 과정을 설정한다.

 

- 스타일 이미지의 텍스처가 두드러지고 비슷한 패턴이 많을 때 잘 작동한다. 

- 콘텐츠 타깃을 알아보기 위해 수준 높은 이해가 필요하지 않을 때 잘 작동한다. 

- 느리지만 간단한 변환을 수행하기 때문에 작고 빠른 컨브넷을 사용해 학습할 수 있다.

 

'인공지능 > Computer Vision ' 카테고리의 다른 글

LeNet-5  (0) 2020.01.09
CNN의 구조와 처리 과정  (0) 2020.01.09
Faster R-CNN  (0) 2020.01.09
컴퓨터 비전 Computer Vision  (0) 2019.07.28