GAN으로 우주 사진 생성하기
GAN으로 우주 사진 생성하기
평소 우주에 관심이 많아 우주 관련 프로젝트를 할 거 없나 찾다가 GAN을 알게되어 GAN으로 우주 이미지를 만들어 보면 재밌을 것 같아서 시작하게 되었다. 처음 예상과는 달리 프로젝트가 너무 오래 걸렸고 결과물도 그렇게 만족스럽지는 않아서 추후 더 보완해야 할 것 가지만 일단은 지금까지의 상황을 기록해 둔다.
프로젝트를 시작하기 전에 우선은 GAN에 대한 가벼운 공부를 진행했다. GAN도 종류가 너무 많지만 나는 단순한 이미지 생성이라 가장 기본적인 DGAN으로 하기로 했고 DGAN만 가볍게 공부했다.
우주 이미지 데이터
지옥의 시작이였다. 우선 우주 이미지들을 크롤링 하기로 했는데 여러 플랫폼을 찾다가 품질도 괜찮고 저작권 문제도 없는 Pixabay 의 이미지들을 space
태그로 검색해 크롤링 했다.
약 20000개 정도의 데이터들이 받아졌는데 개중에 우주 이미지가 아닌것들, 우주 이미지이지만 너무 현실 적이지 않은 것들 등을 약 3주 가량 걸렀고 반대로 비현실 적이어도 우주 이미지스럽고 아름답다(?)고 느껴지는 것들만 뽑아 최종적으로 3600개 정도의 이미지들을 모을 수 있었다.
데이터 과정에서 솔직히 현타가 많이 왔다. 물론 AI 제작 과정에서는 데이터가 많은 비율을 차지하지만 단순히 순수 우주 이미지를 모으는 데만 3주가 걸리고 게다가 모인 데이터 양도 너무 적었기 때문이다.(물론 시작한 이상 끝은 봐야 하기에 멈추지는 않는다!)
그 후에는 이미지들을 1대1 비율로 resize 해서 데이터 준비를 마쳤다.
모델 학습
모델은 Pytorch DCGAN Tutorial(DCGAN Tutorial)을 참고하여 제작하였고 최대한 많이 학습 시키려고 했지만 내 컴퓨터가 못버티고 혼자 죽어버리는(?) 경우들이 너무 생겨서 최종적으로 500 epochs를 학습 시켰다.
그렇게 나온 최종 결과물
마치며
쓰읍… 솔직히 결과물이 잘 나왔다고는 말 못한다. 괜찮게 나온 것들도 있지만 행성 같은 경우는 막 찌그러 지기도 했고 전체 적으로 우주 보다는 닥터 스트레인지 영화에 나왔던 도르마무의 세계(?)처럼 되었다.
근데 모델을 욕할 수 없는게 원래 데이터에 우주 비행사가 있는 걸 봐서 아마도 데이터를 내가 제대로 거르지 못한게 원인인 것 같다.
하지만 그렇다고 않좋기만 했던 건 아니다. 처음으로 GAN을 써보기도 했고 내가 작성한 코드와 데이터 셋을 캐글(Cosmos Images) 에 올려서 동메달을 받기도 했다.
솔직히 고생만 많이 한 것 같은데 끝나고 나니 재밌었던 것 같다. 다음에는 데이터도 더 모으고 모델도 조금 고쳐서 더 나은 결과를 만들어 보고 싶다.
지구는 우주에 떠 있는 창백한 푸른 점 하나. -칼 세이건(Carl Sagan)
Earth is a pale blue dot floating in space.