[python] SMPLify 깃허브 코드 실행 전 환경 설정



SMPLify GIT 코드 실행 전 환경 설정

기존 simplify python2 버전을 python3 버전으로 바꾼 smplify_python3 git code 실행을 위한 환경 세팅 진행하겠습니다.

1. 필요 패키지 설치

anaconda

가상 환경을 위한 anaconda 설치는 이전에 포스팅한 여기 참고

그래픽 및 OpenGL

그래픽 및 OpenGL 실행 관련 환경 설치
sudo apt update sudo apt-get install -y \ libgl1-mesa-dev \ libgl1-mesa-glx \ libglew-dev \ libosmesa6-dev \ software-properties-common

2. 코드 관련 환경 설정

git 코드 clone 진행
git clone https://github.com/dongle94/smplify_python3.git cd smplify_python3

가상 환경 생성
conda create -n smpl python==3.8.20 conda activate smpl pip install -r ./requirements.txt

3. Opendr 설치

python3 버전을 위한 Opendr 설치
pip download --no-deps opendr==0.78 tar zxvf opendr-0.78.tar.gz cd opendr-0.78 sed -i 's/from _constants import/from opendr.contexts._constants import/g' ./opendr/contexts/ctx_base.pyx python setup.py install

설치 완료 화면

4. 버전 호환

GLIBCXX_X.X.XX not found

gcc compiler 활용 시, glibc 버전이 맞지 않음(여기선 GLIBCXX_3.4.30 버전)
conda install -c conda-forge gcc=12.1.0

chumpy

기존에 설치한 chumpy는 버전 문제로 인해 numpy 관련 ImportError가 발생
TypeError: 'numpy.float64' object cannot be interpreted as an integer 또는
ImportError: cannot import name 'bool' from 'numpy'
해당 에러를 고치기 위해 아래 chumpy 재설치 진행
pip install git+https://github.com/mattloper/chumpy

5. 데이터 준비

git 코드에 LSP dataset 이미지는 이미 업로드 되어 있습니다.
다만, Deepcut detected joints 데이터가 필요하기 때문에, SMPLify 사이트에서 데이터를 다운받습니다.

데이터 다운을 위해 계정 생 진행 후, 로그인

우상단에 있는 "Downloads" 클릭 후 "LSP-results - LSP_RESULTS.TAR.GZ" 다운
다운받은 파일 압축 해제 후 아래 경로로 이동(경로를 다르게 설정할거면 다른 경로로 설정해도 상관 없음)
lsp_results/results/lsp -> smplify_python3/results/lsp 경로로 이동

6. 실행

code/fit_3d.py의 main 함수에서 base_dir 경로를 본인의 smplify_python3 경로로 변경(586번 라인)
변경 전
변경 후

마지막으로 code/fit_3d.py를 실행 시, TypeError: 'numpy.float64' object cannot be interpreted as an integer 발생
float형을 int로 사용할 수 없다는 에러로서, 본인 anaconda env 경로/scipy/sparse/_coo.py 파일의 150번, 151번 라인 수정
# /root/anaconda3/envs/smpl/lib/python3.8/site-packages/scipy/sparse/_coo.py # 위 경로 참고하여 본인 경로 _coo.py 수정 np.max(row) -> int(np.max(row)) np.max(col) -> int(np.max(col))
변경 전
변경 후
이후 아래 코드를 실행하면 정상 동작함을 확인할 수 있습니다.
python3 code/fit_3d.py



참고 문헌

[1]   https://dongle94.github.io/paper/smplify/#google_vignette
[2]   https://github.com/dongle94/smplify_python3
[3]   https://github.com/openai/mujoco-py/issues/690
[4]   https://github.com/mattloper/chumpy/issues/55
[5]   https://velog.io/@zxxzx1515/%EC%98%A4%EB%A5%98-%EB%85%B8%ED%8A%B8-libstdc.so.6-version-glibcxx3.4.30-not-found

댓글

이 블로그의 인기 게시물

[opencv-python] 이미지 크기조절(resize) 하는 법

[python]파이썬: csv reader header skip (첫번째 행 무시하기, 안읽기)

[python] selenium close와 quit 차이점