파이썬, 얼굴 사진을 애니메이션 스타일로 바꾸는 방법은?!

2021. 2. 26. 10:28

딥러닝 기술을 활용할 수 있는 기반이 점점 낮아지면서, 이를 활용한 재미있고 신기한 서비스들이 늘어나고 있다. 필자도 이미지에 관심이 많다. 블로그를 하다보면 이미지가 필요하고, 어떻게 하면 더 좋은 품질의 이미지를 쉽게 만들 수 있을까 고민하기 때문이다. 이미지를 애니메이션 스타일로 바꾸는 것은 다른 서비스도 있지만, 보통은 구독해야하는 서비스가 많다. 그러던 와중에 얼굴 사진을 애니메이션으로 만들 수 있는 패키지가 있다고 해서 알아보았다.

 

 

애니메이션 얼굴

 

 

유투브에 '빵형의 개발도상국'에 보면, U-GOT-IT라는 패키지를 활용하는 방법이 있다. 필자도 이 방법을 이용해서 사진을 애니메이션 스타일로 변경해보았다. 자세한 내용은 해당 유투브를 참조하면 되겠다.

 

 

코드는 github에 올라가 있다. 빠르게 테스트를 해보고 싶다면 이 github를 다운로드 받으면 되겠다. github주소는 아래와 같다.

- github주소: https://github.com/kairess/UGATIT

 

폴더 안에는 실행할 수 있는 노트북 파일이 2개 있다. 하나는 test.ipynb이고, 다른 하나는 test_tflite.ipynb파일이다. test_tflite는 용량이 적은 모델이다. 텐서플로우 2.X를 이용하면 되서, 쉽게 실행할 수 있다. 정교한 모델을 돌려보고 싶으면, test.ipynb 파일을 실행해야 한다. 하지만, 이 text.ipynb파일은 실행하기가 좀 까다로웠다. 텐서플로우 1.X버전을 이용해서, 버전 충돌을 막기 위해 가상환경을 만들고 실행하는 것이 좋다. 모델도 다운받아야 하는데, 압축된 파일이 4.7GB이다. 압출 풀면 8GB에 가까운 파일이라 용량의 압박이 있다. 필자는 맥북 2015년 버전을 사용하고 있는데, 요즘 하드용량이 거의 없다. 최대한 프로그램을 많이 삭제하고 겨우 돌릴 수 있었다. 노트북 업그레이드의 욕구가 솟구치는 하루였다.

 

참고로 cv2 패키지가 없는데, 패키지 이름이 cv2가 아니다. pip install opencv-python이라고 실행하면 된다. dlib패키지를 설치하다가 에러나서 pip install cmake로 cmake패키지를 설치하고 나니, 설치가 잘 되었다.

 

test_tflite 노트북을 파일을 이용하면 필자의 사진을 애니메이션으로 바꿔보았다. 애니메이션 스타일로 잘 바꾸려면 몇 가지 설정을 잘 해줘야 하는데, 이는 유투브 영상을 참고하자. 바꾼 결과는 아래와 같다.

 

 

애니메이션 결과

 

 

좀 보정하면, 잘 될 것 같았지만 그냥 더 좋은 모델(파라미터가 많은)을 돌리기로 했다. 확실히 test.ipynb로 실행한 결과가 더 좋았다.

 

 

애니메이션 결과2

 

 

첫번째보다 결과는 좋아졌지만, 품질이 조금 아쉽긴하다. 목에 그림자가 생기면서 해당 부분이 전체적으로 어둡게 표현됐다. 조금 보정을 하면 더 잘 나올 수도 있겠지만, 테스트라 여기까지만 해 보았다. 애니메이션은 아무래도 여자 얼굴이 많아서 남성이라 잘 안 나오지 않을까 하는 추측도 해 본다.

 

 

오늘은 이렇게 얼굴 사진을 애니메이션 스타일로 바꾸는 작업을 해 보았다. 앞으로도 딥러닝 기술을 활용한 재미있는 프로젝트가 많아지기를 기대해본다.

댓글()