티스토리 뷰

전에 파편적으로 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/

 

[Docker] Docker 기본 사용법 정리 - nicewoong

Docker 사용법 (Linux에서) Reference 를 보고 직접 따라해본 것을 정리한 내용입니다. Docker 다운받기 curl -s https://get.docker.com/ | sudo sh Docker 사용 권한 주기 docker 는 기본적으로 root 권한이 필요로 되어

nicewoong.github.io

shy-blg.tistory.com/entry/Docker%EB%8F%84%EC%BB%A4-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EC%97%90-%ED%8C%8C%EC%9D%BC-%EC%A0%84%EC%86%A1%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

Docker(도커) 호스트(로컬)에서 컨테이너로, 컨테이너에서 로컬로 파일 전송하는 방법

도커에서 컨테이너로 파일을 전송하려고 한다면 docker cp 를 이용하자. 예를들어 리눅스 컨테이너에 파일을 전송하고자 한다면 1. 호스트에서 컨테이너로 파일 전송하는 방법 docker cp /path/foo.txt my

shy-blg.tistory.com

'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
링크
«   2024/05   »
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
글 보관함