좌충우돌개발일지

HumanML3D Dataset 준비하기

린틀 2024. 11. 13. 16:50

Demo를 수행하기 위해서는, Human3DML이 필요하다.

따라서 코드가 원활이 동작하는지 확인하기 위해, HumanML3D 데이터셋을 내려받는다.

HumanML3D에 사용되는 AMASS의 정책에 의해, 바로 다운로드는 불가능하다. 대신 아래 GitHub에서 가공할 수 있으니, 아래 Git을 clone하자.

 

https://github.com/EricGuo5513/HumanML3D

 

GitHub - EricGuo5513/HumanML3D: HumanML3D: A large and diverse 3d human motion-language dataset.

HumanML3D: A large and diverse 3d human motion-language dataset. - EricGuo5513/HumanML3D

github.com

 

KIT-ML과 달리, 다른 데이터셋 두개를 내려받기 때문에, 바로 다운로드는 불가하다.

SMPL+H

  • Extended SMPL+H model used in AMASS project 다운로드

DMPL model from DMPL

  • DMPLs compatible with SMPL 다운로드

두 사이트에서 각 각 파일을 다운로드를 진행한다.

두 모델을 다운로드 완료했다면, 끝!..인줄 알았는 데, 아니다.

제공되는 script에 보면, AMASS dataset을 다운로드해야한다..!!

https://amass.is.tue.mpg.de/download.php

script에서 다운로드 하라는 모델이 존재하지 않을 수 있는데, 다른 파일 안에 함께 있을 수 있다.

그러니 해당 웹사이트에서 아래 Motion들을 다운로드하자.

용량이 상당하다! 천천히 여유를 갖고 다운로드를 진행하자.

여러개를 다운하면 조금 느려진다… 그냥 한번에 하나씩 천천히 하는게 좋아보인다.

써있는 다운로드 순서가 정렬이 안되어있어, 정렬했다.

  • ACCD (ACCD)
  • BMLhandball (BMLhandball)
  • BMLmovi (BMLmovi)
  • BMLrub (BioMotionLab_NTroje)
  • CMU (CMU)
  • DFaust (DFaust_67)
  • EKUT (EKUT)
  • Eyes_Japan_Dataset (Eyes_Japan_Dataset)
  • HDM05 (MPI_HDM05)
  • HumanEva (HumanEva)
  • KIT (KIT)
  • Mosh (MPI_mosh)
  • PosePrior (MPI_Limits)
  • SFU (SFU)
  • SSM (SSM_synced)
  • TCDHands (TCD_handMocap)
  • TotalCapture (TotalCapture)
  • Transitions (Transitions_mocap)

다음과 같이 파일들을 준비하자.

폴더 내부에 License를 삭제하면 에러를 더 줄일 수 있다.

 

 

위 깃을 따라 가상 환경을 Windows에서 조성할 때, 문제가 많이 발생했다.

 

https://github.com/EricGuo5513/HumanML3D/issues/9

 

For windows "conda create -f environment.yaml" · Issue #9 · EricGuo5513/HumanML3D

name: torch_render channels: - defaults dependencies: - _libgcc_mutex=0.1=main - argon2-cffi=21.3.0 - argon2-cffi-bindings=21.2.0 - attrs=21.4.0 - backcall=0.2.0 - beautifulsoup4=4.11.1 - blas=1.0=...

github.com

를 참고해서 해결했다.

맨 아래에 댓글을 남겨두었기 때문에, 참고하면 좋을것 같다!

 

Windows에서 진행하는 경우, 경로를 split할 때 '/'가 아닌 '\\'로 변경해야 한다.

생각 이상으로 오래 걸렸다! ( 11:17 시작, 12:18 종료 - 약 1시간 걸림)

마지막 프로세스에서, './joints' 에 대해 No such file or directory 문제가 발생해, 직접 './joints'폴더를 생성해줬다.

raw_pose_processing 종료


motion_representation의 경우, 환경 설정을 잘 해뒀으면 문제없이 동작한다.

https://github.com/EricGuo5513/HumanML3D/issues/64

에 나와있는 것 처럼, 0.xx정도면 쓸만한것으로 보여진다!!

009707, 011059, M009707, M011059 는 cannot reshape 뜨는게 괜찮다고 HumanML3D저자가 알려줬다. https://github.com/EricGuo5513/HumanML3D/issues/120


cal_mean_variance

그냥 돌리면 아주 잘돈다


 

animation.ipynb

생짜로 돌리면 다음과 같은 에러를 만난다

MovieWriter ffmpeg unavailable; using Pillow instead.

https://notes.nakurei.com/post/i-want-to-output-mp4-with-matplotlib/

https://eclipse360.tistory.com/7

https://m.blog.naver.com/chandong83/221165275268

3개를 참고해서 ffmpeg를 설치했고, 성공적으로 모두 실행할 수 있었다!