안녕하세요 딥루트 입니다.
이전에 소개드렸던 딥러닝 토이즈 시리즈중 그 첫번째인 Style transfer입니다. 방법에 대한 간단한 설명과 테스트를 할 수 있는 데모 사이트를 함께 소개할건데요. 설명의 깊이나 소개의 내용은 글을 하나 둘 진행하면서 맞춰나가겠습니다!
Style Transfer 란?
Style transfer는 content image (입력 영상), style image (적용하고픈 스타일 이미지) 이렇게 두 영상이 주어졌을 때 이미지의 윤곽, 형태는 content image와 유사하게, 스타일 또는 텍스쳐는 style image와 유사하게 바꾸는 것을 의미합니다.
딥러닝에 조금이나마 관심을 가지고 계신 분들이라면 한번쯤 본적이 있는 그림이죠. 아래의 그림을 보면 A) 독일 튀빙겐에서 찍은 사진을 B) J.M.W. 터너의 미노타우르스 호의 난파, C) 빈센트 반 고흐의 별이 빛나는 밤, D) 뭉크의 절규의 스타일로 채색 된 것을 볼 수 있습니다. 관련 내용이 발표되고나서는 스브스뉴스에 소개되기도 했습니다.
이러한 Style transfer는 2015년 A Neural Algorithm of Artistic Style이라는 논문에 발표된 내용으로, 논문이 발표된 후에 많은 사람들에게 신선한 충격을 주었죠. 논문에서 제안한 방법은 CNN (Convolutional Newral Networks)를 이용해서 content image와 style image의 feature map (CNN networks의 layer들)을 추출하고, 합성되는 영상(출력영상)이 content image와 style image의 featur map과 유사하게 복원이 되도록 최적화합니다. 좀 더 자세한 내용은 아래의 두 블로그에 상세하게 기술되어 있습니다.
Deepart.io
그렇다면 우리는 어디서 이런 Style transfer를 해볼 수 있을까요?? 사실 논문을 제안했던 팀에서 Deepart 라는 스타트업을 설립해서 웹페이지로, 어플로 이러한 Style transfer를 테스트 해볼 수 있습니다. 링크를 들어가면 아래와 같이 메인 페이지로 들어갈 수 있습니다.
우리가 가진 이미지로 테스트 해보려면 우선 가입(Register)를 해야합니다. 간단하게 메일주소와 비밀번호를 입력하면 메일로 가서 acivation하라고 하죠. 그리고 메일이 오면 activate를 하고 넘어갑니다. 그런데!! 여기서 메일이 안오는 경우가 있더군요. 몇분이 지나도록 메일이 안온다면 그냥 activation없이 다름 프로세스를 진행할 수 있습니다. Create Your Own 탭을 클릭하면 아래와 같은 페이지로 넘어오게 됩니다.
이제 여기서 우리가 원하는 사진을 넣고 style transfer를 테스트 해볼 수 있습니다. 만약 activation이 된 계정의 경우에는 페이지 오른쪽 위의 sign in 후에 진행하시면 되지만, 만약 activation이 되지 않았더라도 submit page에서 아래의 Create Your Own으로 들어가면 바로 샘플 이미지를 테스트해볼 수 있습니다. accept privacy policy 체크 후 가입하셨던 메일과 비밀번호를 입력하시면 테스트를 해볼 수 있습니다.
Upload Photo는 content image (style를 입힐 영상), style은 말그대로 원하는 스타일입니다. 여기선 기존에 제공하는 스타일을 사용해도 되고 사용자가 원하는 이미지를 찾아서 추가해도 됩니다. Submit을 하면 대략 10분정도 기다리라고 하며, 사진은 장수에 크게 상관하지 않고 테스트 해볼 수 있는 것 같습니다. (10장 정도까지는 별 문제 없이 추가 가능했습니다)
아래에 구글검색에서 구한 free image를 3가지 스타일을 입힌 결과입니다. 사실 제가 사용한 content image가 style을 입히기 좋은 영상은 아닙니다. style feature map을 비교할 때 스타일이 명확한, 즉 화풍이 뚜렷한 스타일이 잘 입혀지는 것 처럼 content image도 배경과의 대비나 이미지에서의 물체가 명확히 드러나는게 원본 이미지의 특징을 최대한 덜 훼손하고 복원할 수 있는 좋은 이미지 입니다.
마지막으로 이세돌 9단의 불계승 이미지를 한번 변환해보고 이번 포스트를 마무리 하겠습니다. (일반적인 배경이나 인물사진이 아니라서 완전히 새로운 content로 변환이 되었네요. 이는 원하는 style의 형태가 바둑돌 같은 미세한 texture를 반영하기 어려운 것도 있습니다.)
맺음말
이제 이 시리즈의 시작 단계라 설명의 깊이나 내용이 부족할 수 있습니다. 최대한 쉽게 설명한다고 했는데 잘 전달이 되었는지 모르겠네요. 아마 이번 포스팅은 많이들 아는 내용이라 쉽게 쉽게 읽으셨을 것 같습니다.
Style transfer는 이 데모 페이지 및 논문으로 시작했지만 현재는 기존에 제안했던 방법이 content 영상의 디테일을 잘 살리지 못했던 것을 보완한 논문이나, GAN (Ganerative Adversial Networks)과 같이 Generator가 스타일을 학습하도록 하는 새로운 방법들이 나오고 있습니다. 위에 소개드린 블로그 중에 Lunit Tech Blog를 참고하시면 좀 더 확인하실 수 있습니다. 중간중간 피드백을 받아서 업데이트하고, 차근차근 포스팅을 해나가겠습니다. :)
반갑습니다 글 잘읽었어요~
팔로우&보팅하고 갑니다~^^
시간나시면 맞팔 부탁 드릴께요!
오늘 일이 많아서 확인이 늦었습니다!
잘 읽어주셨다니 감사해요 :) 저도 맞팔하러 가겠습니다!
잘 봤습니다.
리스팀 할께요
넵 감사합니다! 앞으로 좀 더 양질의 포스팅을 할 수 있게 노력하겠습니다. ^^
많은 시간 공들여 쓰신걸 느낄수 있습니다.
좋은 하루 되세요.
3월의 시작을 아름답게 보내세요^^
그리고 진정한 스팀KR 에어드롭!
[골든티켓x짱짱맨x워니프레임] 9차 옴팡이 이모티콘 증정 천명 이벤트! 그 첫번째 250명 !
https://steemkr.com/kr/@goldenticket/x-x-9-250