GET3D Human은 3차원 인간 형태 모델링 및 렌더링을 위한 고급 프레임워크다.
이 프로젝트의 목표는 사실적이고 정교한 3D 인간 모델을 생성하고 시각화하는 것이다. GET3D Human은 딥 러닝과 컴퓨터 비전 기술을 활용하여 다양한 포즈, 모양 및 질감을 가진 인간 형태의 3D 모델을 생성한다. 그래서 해당 모델을 이용해서 3D 아바타를 생성해 볼 것이다.
사실 해당 모델은 GET3D 모델을 사용해보면서, 같이 공부했던 모델이다. 2달전에 코드를 공개하여서 한번 사용해보기로 했다.
conda create -n get3dhuman python=3.8
conda activate get3dhuman
새로운 컨다 환경을 생성하려면 터미널 또는 아나콘다 프롬프트를 열고 다음 명령어를 실행한다.
conda install pytorch==1.8.0 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch
PyTorch는 프로젝트에서 사용하는 주요 라이브러리이므로, 적절한 버전을 설치해야 한다. 본인의 cuda 버전을 확인하고 적절한 버전을 설치해주어야한다.
프로젝트의 코드를 가져오기 위해 Git 리포지토리를 클론하거나, 프로젝트의 웹사이트에서 코드를 다운로드한다.
cd GET3DHUMAN_CODE_PATH
pip install -r requirements.txt
프로젝트의 루트 디렉토리로 이동한 후, 필요한 Python 라이브러리를 설치한다.
프로젝트에 필요한 사전 훈련된 모델을 다운로드하고, 이들을 적절한 폴더(예: PRETRAINED_MODELS_PATH)에 저장한다.
python inference.py --model_path PRETRAINED_MODELS_PATH --sample_num 1
모든 설정이 완료되면, 해당 명령어를 사용하여 추론 명령을 실행한다
인퍼런스가 완료되면, 결과는 기본적으로 ./results 디렉토리에 저장된다.
ModuleNotFoundError: No module named 'requests'
ModuleNotFoundError: No module named 'requests' 오류는 Python 'requests' 라이브러리가 현재 활성화된 가상 환경에 설치되어 있지 않음을 나타낸다.
pip install requests
"/jysong/get3d_human_folder/Get3DHuman/Get3DHuman/surface_tracing.py", line 346, in make_rotate_torch
sinZ = torch.sin(rz)
RuntimeError: sin_vml_cpu not implemented for 'Long'
torch.sin() 함수는 부동 소수점 타입의 텐서에 대해서만 작동한다. 여기서 rz라는 변수가 정수(Long) 타입이기 때문에 오류가 발생한다. 이를 해결하려면 해당 변수를 부동 소수점 타입으로 변환해야 한다.
경고들이 많이 뜨긴하지만, 지금은 결과만 보는 단계이니 넘어가겠다.