안녕하세요, 저는 컴퓨터공학과 캡스톤디자인과정을 수강중인 학생입니다!
저희 팀의 졸업프로젝트 주제를 소개하고, 이 서비스를 만들때 사용될 styleGan2 모델관련
<Toonify Yourself >코드를 실행해보겠습니다.
# 주제 소개
저희 팀 졸프 주제는 [내 얼굴이 나오는 역사책 AR] 입니다.
기존에도 각각 책, 역사 AR이 있었지만 둘이 합쳐진 역사책 AR은 없었습니다.
또 AR이 초등학생들을 대상으로 학습효과에 대해 연구한 논문에서 학습에 도움이 된다는 결과가 있어
역사적 사실과 인물을 대상으로 한 AR을 만들기로 결정했습니다!
또 여기서 포인트!
는 바로, AR에 등장하는 역사적 인물의 얼굴에 바로 '나'의 얼굴이 들어간다는 점입니다.
또, 그냥 들어가지 않습니다.
역사책의 그림체에 맞게 변형되어 들어갑니다.
이렇게요!
위의 예시에 두 동일 인물 이미지 중 왼쪽처럼 자신의 얼굴을 입력으로 넣으면
결과값으로 오른쪽 이미지같은 특정한 그림체처럼 변형되어 보여집니다.
이를 통해 AR책의 얼굴과 배경의 그림체가 이질적이라는 단점을 개선하려고 했습니다.
오늘은 이 그림체 변환을 시켜주는 기존의 연구 Toonify Yourself를 소개해드리려고 합니다.
Toonify Yourself은 StyleGan2모델을 배경으로 만들어졌습니다.
StyleGan2는 원래 이미지를 생성하는 모델입니다.
여기에서 Layer Swaping 즉 원래의 생성모델과 저 애니메이션 얼굴을 만드는 레이어를
swap, 섞어서 저렇게 사람의 얼굴에 애니메이션의 외형을 섞는 모델을 만들어 냈습니다.
그럼 코드를 실행해보겠습니다.
저는 colab을 사용했습니다!
그리고 justin님이 작성한 toonify코드를 활용해 실습해보았습니다.
그러나, 저는 코드 실행에 실패했습니다.
어디서 잘못된 건지 감이 오지 않아서 일단 된 데까지 하고
차후 마무리 짓겠습니다.
1.우선 tensorflow를 설치취소 및 깃 클론
왜냐면 최근 업그레이드된 colab이 tensorflow 2.0버전 이상을 사용하기 때문입니다.
2. tensorflow == 1.15.0 을 설치해줍니다.
왜냐면 1.15.0에서만 차후 나올 import pretrained
3. 깃클론해줍니다.
4. 3개의 폴더를 만들어 줍니다.
raw, aligned, generated폴더입니다.
raw 는 원본이미지, aligned는 새로운 이미지 생성을 위한 정렬된 이미지,
generated 는 모델학습을 통해 새롭게 생성된 이미지를 넣어주는 파일입니다.
5. raw데이터에 예시 이미지를 넣어줍니다.
저는 위키피디아에 있는 톰하디 이미지를 넣었습니다.
https://ko.wikipedia.org/wiki/%ED%86%B0_%ED%95%98%EB%94%94
6. 이미 학습된 모델 불어오기
그러나... 저는 여기서 에러가 났습니다.
아무리 해도 고쳐지지 않아서 일단 여기서 이 코드는 냅두겠습니다.
7. 원본 이미지를 정렬해줍니다.
아까 raw폴더에 넣은 원본 이미지 있죠? 그 이미지를 모델에 넣기 전, 정렬을 해줘야 합니다.
이 코드가 정렬하는 기능을 하는 코드입니다.
8. 정렬된 이미지에서 latent vector를 추출합니다.
9. Latent vector로 부터 결과값을 추출합니다.
10. 이미지 출력
그러나,, 아까 말씀드렸듯 사전학습된 모델을 불러오는 데 실패했습니다.
그래서 이 코드도.. 돌아가지 않습니다.
여기까지 toonify yourself 코드를 살펴보았습니다.
버전문제 때문인지 코드가 돌아가지 않고
unpickle에러, filenotfounderror, runtime error가 계속 나오네요..
부족함을 많이 느꼈고
앞으로도 계속 공부해 나가야 할 것 같습니다^^;
읽어주셔서 감사합니다!