티스토리 뷰
전에 파편적으로 spin github의 demo code를 이용하는 법을 적어 놓았었다. 특히 코드에 집중해 적어놨는데, 최근에 얘네 demo를 돌려서 내 것과 비교해야 하는 일이 생겨서 다시 쓰려고 보니, 완전 복잡해 정리의 필요성을 느꼈다. 한 1년은 SPIN과의 비교를 더 우려먹을 가능성이 있으므로 이 참에 demo code 사용법을 step-by-step 적어 놓는다. github.com/nkolot/SPIN
1. 환경설치
virtual env사용법은 너무 복잡하다. 일단 얘네가 제대로 해놓지 않음. 얘네 추천대로 docker를 쓰자. 단, nvidia-container toolkit을 먼저 깔아야 한다. docker가 없다면 docker도 먼저 깔아야한다. docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
위의 링크를 그대로 옮겨놓은 것이다. 참고로 나는 우분투 16.04를 쓰고 있다.
curl https://get.docker.com | sh \
&& sudo systemctl --now enable docker
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
그 다음 SPIN 도커 이미지를 다운 받은 다음,
sudo docker run -it --shm-size=256m --gpus all --name ubuntu01 chaneyk/spin /bin/bash
핵심은 --gpus all을 하는 것이다. 그래야 도커에서 gpu접근이 되고 코드를 돌릴 수 있다. --name은 알아서 바꿀 것. 혹시 training을 할 생각이라면 --ipc=host 도 추가해줘야 문제가 없을 듯하다. 이 링크 참고, curioso365.tistory.com/136
그리고 내가 도커 개념에 대해 잘 모르긴 한데, 도커의 컨테이너는 일종의 폴더 하나를 만드는 거이다. 따라서 --gpus all을 안하고 run한 다음 데이터 다운 받을 거 다 받은 다음에 코드가 안 돌아가서 그 때 다시 컨테이너를 새로 run하면 데이터를 다시 다운받아야 하는 말이다. 물론 데이터는 다른데서 옮기면 그만이지만, pip install한 것들도 전부 새로 해야 되는 등 귀찮아질테니 꼭 --gpus all을 해야한다.
다음으로 남아있는 필요 library를 설치해야 한다. 도커이미지를 제공하면서 어이없게도 더 해야할 일이 남아있따..ㅎㅎ 다행히 이 사람이 뭐가 필요한지 미리 알려주었다. github.com/nkolot/SPIN/issues/46#issuecomment-575302539
pip install 두 개를 해야하는데, pyrender관련 dependency warning이 빨간색으로 뜨는데, 워닝 메시지 보고 거긱에 맞는 버전을 pip instsall하면 된다.
update: eval.py를 돌리려면 꼭 --no-deps를 붙여서 neural renderer를 설치해줘야 한다. 이 이슈 참고, github.com/nkolot/SPIN/issues/59
pip install neural-renderer-pytorch --no-deps
2. 코드 및 데이터 다운로드
spin github을 clone하고, ./fetch_data.sh를 한다.
그리고 SMPL model pkl파일들을 ./data/smpl/ 에 다운로드 해준다. 링크는 spin README에 있음
3. demo 실행
python3 demo.py --checkpoint=data/model_checkpoint.pt --img=examples/im1010.jpg --openpose=examples/im1010_openpose.json
참고:
nicewoong.github.io/development/2017/10/09/basic-usage-for-docker/
'Research (연구 관련)' 카테고리의 다른 글
camera projection, 3D visualization (0) | 2021.04.06 |
---|---|
openpose Pytorch code 활용 (0) | 2021.03.15 |
tool 자투리 (0) | 2021.03.06 |
좌표계 변환, camera parameter (0) | 2021.02.03 |
구글 대용량 다운로드 (0) | 2021.01.11 |
- Total
- Today
- Yesterday
- 에디톨로지
- 인터뷰
- 문경식
- pytorch
- 헬스
- spin
- nerf
- densepose
- pyrender
- Machine Learning
- 비전
- demo
- 컴퓨터비젼
- deep learning
- 2d pose
- 컴퓨터비전
- nohup
- Pose2Mesh
- 피트니스
- Virtual Camera
- focal length
- world coordinate
- camera coordinate
- Docker
- Generative model
- VAE
- Interview
- 머신러닝
- Transformation
- part segmentation
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |