2022.08.10 - [AI/Cartoonize] - 사진을 만화화하다 - 2
2022.08.08 - [AI/Cartoonize] - 사진을 만화화하다 - 1
사진을 만화화하다는 주제로 관련 정보를 정리 중에 있습니다.
이번 포스팅에서는 2번째 포스팅에서 분석한 데모 소스를 바탕으로 프로그램을 만든 내용을 적어보겠습니다.
https://github.com/bryandlee/animegan2-pytorch
데모 프로그램은 아래와 같은 절차를 따릅니다.
1. 이미지 로딩
2. 얼굴 검출
3. 얼굴 정렬 및 짜르기
4. 이미지 저장
제가 원하는 거는 전체 이미지를 만화화하는 것인데... 얼굴만 만화화하는 것으로 끝났습니다.
그래서 저는 데모에다가 추가로 배경 이미지 + 카툰화 얼굴 합성까지 해보고자 합니다.
그 절차는 아래와 같습니다.
1. 이미지 로딩
2. 얼굴 검출
3. 얼굴 정렬 ( transform ) 및 짜르기
4. 얼굴 inverse transform
5. 원본 배경 이미지와 합성
원본과 비교해보시면 얼굴이 반시계반향으로 회전이 되어있음을 알 수 있습니다.
눈 크기도 조금 달라진것 같네요.
해당 모델에서 잘 변환할 수 있도록 ( 아마 학습 데이터도 이와 같은 방법으로 전처리가 되지 않았을까 합니다. )
정면으로 변환한 얼굴 이미지를 원래대로 변환(Inverse) 해주고 이걸 배경과 합성해줍니다.
배경과 합성할때는 cv2.seamlessClone합수를 사용했습니다. ( Normal type )
이미지를 확대해서 보면 그냥 합성해서 그런지 블록화 현상이 뚜렷이 관찰됩니다.
보기 않좋습니다.
전체 이미지를 그냥했을때랑 얼굴을 때서 다시 합성했을 때랑 차이점이 보입니다.
이 방법은 샘플처럼 배경에 비해 얼굴이 작을때 그 차이가 많이 날 것으로 예상됩니다.
얼굴이 작을 수록 이 방법으로 하지 않으면 안예쁩니다.
(실험해보니 얼굴이 대부분을 차지하는, 증명사진 같은 비율의 사진은 별 차이가 안느껴집니다.)
다음 포스팅에서는 위에서 언급한 합성시 조금 부드럽게 해보는 실험에 대해서 쓸까합니다.
그럼 이만 마치겠습니다.
'AI > Cartoonize' 카테고리의 다른 글
사진을 만화화하다 - 2 (0) | 2022.08.10 |
---|---|
사진을 만화화하다 - 1 (0) | 2022.08.08 |