본문 바로가기
Personal Projects/Toy Projects

[토이 프로젝트 3] 범인의 몽타주 그려주는 AI - 학습 (1), VQVAE

by muns91 2024. 12. 13.
Text to 몽타주 AI 만들기 - 학습 (1)

 

 이번 글은 범인의 몽타주를 그려주는 AI 만들기의 학습 (1)입니다. 전처리와는 다르게... 왜 안되지? 를 혼자 중얼거리며 GPT와 구글의 도움을 받으면서 겨우 겨우 학습했던 시간이었습니다. 대부분은 영상과 비슷하지만, 약간의 차이가 있음을 알려드리면서 이번 학습 (1) 과정을 살펴보도록 하겠습니다. 

 

  • 사용 데이터 : 페르소나 기반의 가상 인물 몽타주 데이터
  • 프로그래밍 환경 : 개인 컴퓨터 (GPU : NVIDIA TITAN RTX, RAM 128)
  • 모델 : VQVAE
  • 총 학습 시간 : 약 24 시간
  • 데이터 링크 (AI 허브)
 

AI-Hub

샘플 데이터 ? ※샘플데이터는 데이터의 이해를 돕기 위해 별도로 가공하여 제공하는 정보로써 원본 데이터와 차이가 있을 수 있으며, 데이터에 따라서 민감한 정보는 일부 마스킹(*) 처리가 되

www.aihub.or.kr

 


데이터 학습 (1)

 

■ 순 서

1. 깃허브 페이지 (https://github.com/kairess/KoDALLE)에서 해당 코드 다운로드 혹은 터미털 창에서 git clone하기

2. KoDALLE-main 폴더 내부에서 vqgan 폴더에서 Train_vae.py 파일을 KoDALLE-main 폴더로 옮기기

3. train_vae.py 파일 수정

  • if __name__ == '__main__': 하단 부분
    • 본인 PC 경로로 변경 (2 부분 있음)
  • wandb 부분 수정
    • run = wandb.init(project="본인 프로젝트 이름", entity="본인 엔티티 부분", config=model_config,)
    • 미리 wandb에 가입하셔서 프로젝트를 생성하시고, 아래 그림과 같이 API Key 복사해두기 (노란색 부분, 코드를 실행했을 때, wandb 로그인 명령이 나오는 데, 이후 API 키를 입력해야함. 참고로 안보이니깐 오타 주의)

wandb 프로젝트 첫 페이지

  • configs 폴더에 있는 vae_config.py에서 MODEL_PATH와 CONFIG_PATH 경로를 본인에 맞게 변경

 

4. 이후, 아나콘다 프롬프트 창에서 가상 환경을 activate하고  cd KoDALLE-main 경로를 지정해주고 아래 명령어 수행 ( * 윈도우 사용자)

# 파이썬 프로그램 실행
python train_vae.py

 

* 주의 사항 : 혹시 모듈이 없다는 에러 메세지를 보고 pip install을 하기 전에 해당 폴더를 잘 살펴보세요! 폴더에 이미 모듈이 존재할 수 있기 때문에 멀쩡한 것을 내버려두고 site-packages에서 실행할 수 있기 때문에 꼭 명심하시길 바랍니다. 만약에 폴더에 있는 모듈을 pip install 하셨다면 uninstall을 통해 설치한 모듈을 삭제해주세요! (그래서 train_vae.py 파일을 바깥으로 빼달라고 한 것입니다. 이것 때문에 한참을... )

 

5. wandb를 통해 학습 결과 확인 (VAE는 성능이 좋지 못함)

 

 

 

* 참고로 VQVAE를 사용하는 train_vae 파일에서는 checkpoint를 저장하는 코드가 없기 때문에 koDALLE를 추가로 학습 시킬 수는 없었습니다. 대신에 다음에 사용하게 될 VQGAN 모델에서는 해당 부분이 있었고 이에 대한 사항은 다음 글에서 소개하도록 하겠습니다.  


마무리

 여기까지 학습 (1)에 대한 부분이었습니다. 이번에는 VAE 모델을 통한 학습 결과를 수행하였는 데, 생각보다 결과가 좋지는 않았습니다. 이후 진행했던 VQGAN 모델에 대한 학습을 수행했을 때에는 빵형님과는 환경 자체가 달랐기 때문에 버전을 맞추고 환경을 설정하는 것이 쉽지 않았습니다. 아무튼 이번에도 징한 싸움 끝에 모델을 무사히 돌릴 수 있었고 이에 대한 후기는 다음 글에서 소개하도록 하겠습니다. 그냥 단순하게 따라만하고 넘어가려고 했던 토이 프로젝트는... 오류를 수정하는 과정에서 코드를 샅샅히 뒤져보고 파헤쳐보느니라, 저절로 습득하게 되었습니다. 이 과정에서 모델에 대해서 더욱 관심을 갖게 되었고, 다양하게 응용해볼 수 있겠다라는 생각을 갖게 되었습니다. 다음에는 VQGAN에 대한 준비를 하면서 이번 글은 여기서 마치도록 하겠습니다.

 

참고

빵형의 개발도상국 : https://www.youtube.com/@bbanghyong

 

빵형의 개발도상국

신기하고 재밌는 인공지능을 쉽게, 짧게, 내손으로 만들어 봅니다! 📮사업 및 개발문의 kairess87@gmail.com 😘빵형의 개발도상국 후원 카카오페이 : https://qr.kakaopay.com/Ej86nqvdu 투네이션 : https://toon.at

www.youtube.com

 

 

 

반응형