본문 바로가기

연구노트/AI

[AI] 신비한 캬루콘 생성기 (feat. 뒤틀린 황천의 캬루콘)

인터넷을 하다보면 댓글에 다음과 같은 이상하게 귀엽게 생긴 캐릭터가 짤로 자주 나온다.

 

신비한 캬루콘

 

해외에서 밈으로써 쓰이는 "우는 고양이"나 " Woman Yelling at a Cat"  을 기반으로 프리코네라는 게임의 등장하는 주인공 "캬루" 로 한국인 작가 [pixiv 링크]분께서 다시 그린것이다. 일명 "신비한 캬루콘" 이라고 불린다.

 

우는 고양이 밈중 하나

 

 

보다 자세한 설명은 킹무갓키를 참고하기 바란다.

 

킹무갓키피셜

 

 

저 캐릭터가 어떤 캐릭터인지는 중요한게 아니고
암튼나무위키에 보면 "신비한 캬루콘 모음들과 원본 사진들" 링크가 있는데 이걸보고 내가 든 생각중에 하나는

"야 이 정도면 머신러닝 돌려도 되겠는데?"

 

안타깝게도 필자는 컴퓨터 엔지니어지 머신러닝 리서처는 아니므로, AI 에 관하여 잘아는 후배에게 물어봤다

 

삽가능 하시덴다

 

 

 

쌉가능하다는 말을듣고 바로 머신러닝 돌려보기로 결정,

처음에는 원본 이미지와 그에 맞는 Pair 이미지가 있는거니까 Pix2Pix로 하려고 데이터를 수집했는데

 

전문가께서 Pix2Pix를 추천

 

아니 이게 캬루콘은 금방모으는데, Pair 된 원본 고양이사진 찾는게 더 힘들다.

Pair 이미지 레이블링하다가 몬해먹겠어서 결과물은 좀 떨어져도, 내가 확인하고싶은건 "과연 캬루콘 생성기는 가능한가" 였기때문에 그냥 Unpaired Image-To-Image Translation 쪽으로 노선을 변경하였다.

paperswithcode.com/area/computer-vision 해당 페이지의 Image-To-Image Translation 중괜찮은 기술하나 아무거나 골라 잡았다.

 

내가 사용한것

 

이중에서 나는 U-GAT-IT 의 공식 파이토치 구현체[Github 링크]를 사용했다, (한국인 저자인듯 함)

이걸 고른 이유는 큰건없고  cat2dog 항목을보고 캬루 캐릭터가 고양이라 그냥 이걸로 골랏다. 

(필자는 킹반인이기 때문에 봐도 잘 모른다.)

 

코드수정같은건 어차피 아무것도 모르기때문에 못하고, 약 70장의 고양이(밈으로 쓰이는 고양이만 모음) 과 70장의 캬루콘을 수집하고 구현코드를 고~~대로 돌렸다.

돌리자 마자 VRAM 펑펑터지길래 성능을 좀많이 낮췃다 ㅜ (GTX 1080은 이제 놓아줘야 할때인가 ㅜ)

 

대충 줄이라는것들 줄였다는 내용

 

대충 사용한 하이퍼 파라미터는 다음과 같다.

batch 8 / iter 70000 / ch 16 / img_size 128 / light 모드 / 그외 기본값 사용

채널을 좀 많이줄였다, 더 늘려도 매모리가 터지지는 않는데, 너무 느려 터져서...

 

결과중에서 잘나온것들은 그나마 다음 그림과 같고

 

고양이랑 모양이 다른건 넘어가도록 하자
눈이 3개 처럼 보이는건 넘어가도록하자
얼굴이 작아진건 넘어가도록하자

 

 

뒤틀린 황천의 캬루콘 처럼 나온건 다음과 같다..

 

현대 미술임

 

사실 그나마 잘나온 몇개빼고 다 뒤틀린 황천의 캬루콘이다 ㅜ

 

뭐 누군가는 이걸보고 "개판인데?" 생각할수도 있지만 필자는 결과를 보고 꽤 놀랐다.

  • unpair 이미지
  • 줄일수있는건 왠만해서 다줄인 하이퍼 파라미터들
  • 걍 하루만에 뚝딱 나온 결과 (완벽한 결과물을 바란게 아니라, 가능한가? 에대한 의문을 풀고싶었음)
  • 개판인 데이터셋 (구글에 meme cat 치고 나온것들에서 걍 아무렇게나 저장), 심지어 3만 이터까지는 사진하나를 잘못된 폴더에 넣었었음;;
  • 머신러닝 경험이 0인 개발자 (딥러닝의 컨셉적인 레벨의 이해는 있음)가 API 가져가쓰듯이 돌린 결과물

 

위와 같은이유로, 데이터셋이 좀더 풍부하고 더 괜찮은 알고리즘으로 돌린다면 현 시대 기술로도 충분히 신비한 캬루콘 생성이 가능하지 않을까 싶다..

 

ps. GAN 을 처음 생각한 사람은 진짜 천재라고 생각한다. 개인적으로 수학잘하는것도 대단하지만, "상식의 흐름을 벗어난 놀라운 생각" 이라는것을 좋아한다. 코덱에서의 DCT 활용 / 허프변환 등 처음 듣고 "와 개천재같은데?" 하는 기술이 몇개 있는데 그중 하나

 

ps2. 이글을 쓰는 도중에 발견한데, 그림작가분이 Pixiv 가 아닌 트위터에서는 원본이되는 이미지를 같이 올리고 계신다. 아씨 pix2pix 로 다시 돌리게 생겼다.
728x90