인터넷을 하다보면 댓글에 다음과 같은 이상하게 귀엽게 생긴 캐릭터가 짤로 자주 나온다.
해외에서 밈으로써 쓰이는 "우는 고양이"나 " Woman Yelling at a Cat" 을 기반으로 프리코네라는 게임의 등장하는 주인공 "캬루" 로 한국인 작가 [pixiv 링크]분께서 다시 그린것이다. 일명 "신비한 캬루콘" 이라고 불린다.
보다 자세한 설명은 킹무갓키를 참고하기 바란다.
저 캐릭터가 어떤 캐릭터인지는 중요한게 아니고
암튼나무위키에 보면 "신비한 캬루콘 모음들과 원본 사진들" 링크가 있는데 이걸보고 내가 든 생각중에 하나는
"야 이 정도면 머신러닝 돌려도 되겠는데?"
안타깝게도 필자는 컴퓨터 엔지니어지 머신러닝 리서처는 아니므로, AI 에 관하여 잘아는 후배에게 물어봤다
쌉가능하다는 말을듣고 바로 머신러닝 돌려보기로 결정,
처음에는 원본 이미지와 그에 맞는 Pair 이미지가 있는거니까 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 모드 / 그외 기본값 사용
채널을 좀 많이줄였다, 더 늘려도 매모리가 터지지는 않는데, 너무 느려 터져서...
결과중에서 잘나온것들은 그나마 다음 그림과 같고
뒤틀린 황천의 캬루콘 처럼 나온건 다음과 같다..
사실 그나마 잘나온 몇개빼고 다 뒤틀린 황천의 캬루콘이다 ㅜ
뭐 누군가는 이걸보고 "개판인데?" 생각할수도 있지만 필자는 결과를 보고 꽤 놀랐다.
- unpair 이미지
- 줄일수있는건 왠만해서 다줄인 하이퍼 파라미터들
- 걍 하루만에 뚝딱 나온 결과 (완벽한 결과물을 바란게 아니라, 가능한가? 에대한 의문을 풀고싶었음)
- 개판인 데이터셋 (구글에 meme cat 치고 나온것들에서 걍 아무렇게나 저장), 심지어 3만 이터까지는 사진하나를 잘못된 폴더에 넣었었음;;
- 머신러닝 경험이 0인 개발자 (딥러닝의 컨셉적인 레벨의 이해는 있음)가 API 가져가쓰듯이 돌린 결과물
위와 같은이유로, 데이터셋이 좀더 풍부하고 더 괜찮은 알고리즘으로 돌린다면 현 시대 기술로도 충분히 신비한 캬루콘 생성이 가능하지 않을까 싶다..
ps. GAN 을 처음 생각한 사람은 진짜 천재라고 생각한다. 개인적으로 수학잘하는것도 대단하지만, "상식의 흐름을 벗어난 놀라운 생각" 이라는것을 좋아한다. 코덱에서의 DCT 활용 / 허프변환 등 처음 듣고 "와 개천재같은데?" 하는 기술이 몇개 있는데 그중 하나
ps2. 이글을 쓰는 도중에 발견한데, 그림작가분이 Pixiv 가 아닌 트위터에서는 원본이되는 이미지를 같이 올리고 계신다. 아씨 pix2pix 로 다시 돌리게 생겼다.
'연구노트 > AI' 카테고리의 다른 글
[AI/WSL] WSL2 환경에서 Pix2Pix 사용할려다 징징대는 글 (1) | 2021.03.24 |
---|