OpenPose를 Singularity에서 실행
6237 단어 SingularityDockerHubOpenPose우분투
소개
실행 환경
이번 시도한 환경은 다음과 같습니다.
OS: Ubuntu 18.04 LTS
CPU: i3-4130 3.40GHz
메모리: 16GB
GPU: GeForce GTX 1660 Ti (6GB)
1. Singularity 및 Nvidia-Docker 설치
Singularity 설치에 대해서는 이전 기사에서 언급했으므로 다음 기사를 참조하십시오.
Singularity를 설치하고 실행해 보았습니다.
또 nvidia-docker에 대해서는 이쪽의 기사를 알기 쉬웠습니다.
nvidia-docker 2를 Docker CE (안정 버전)와 함께 Ubuntu 18.04에 설치
설치까지 할 수 있으면 k입니다.
2. OpenPose 도입
이번에는 Singularity 샌드 박스의 방법을 설명합니다.
다음 코드로 DockerHub에서 OpenPose를 다운로드하여 샌드 박스화합니다.
다운로드에 시간이 걸린다고 생각합니다만, 기장에 기다리고 있으면 문제 없습니다.
$ sudo singularity build --sandbox openpose_box docker://garyfeng/docker-openpose:latest
여기서 nvidia-docker를 시작하는 작업을합니다.
※이유는 나중에 에러집에서 접해 갑니다.
시작하면 exit해 주셔서 문제 없습니다.
$ sudo nvidia-docker run -it --rm garyfeng/docker-openpose:latest
$ exit
그런 다음 샌드 박스화 된 OpenPose를 Singularity에서 실행하고 다음 디렉토리로 이동합니다.
$ singularity shell --nv openpose_box
$ cd openpose_box/openpose-master
여기서 OpenPose를 실행하면 다음과 같은 오류가 발생하지만 Window가 상승한다고 생각합니다.
$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi
Starting pose estimation demo.
Auto-detecting GPUs... Detected 1 GPU(s), using them all.
Starting thread(s)
Gtk-Message: Failed to load module "gail"
Gtk-Message: Failed to load module "atk-bridge"
Gtk-Message: Failed to load module "canberra-gtk-module"
※실행 결과의 일부(OpenPose의 샘플 동영상)
런타임에 오류가 있으므로 다음 코드로 대응합니다.
$ exit # Singularityから抜け出す
$ sudo singularity shell --writable openpose_box/ # sudoで書き込み
$ apt-get update
$ apt-get install libatk-adaptor libgail-common
$ apt install libcanberra-gtk-module libcanberra-gtk3-module
$ exit # Singularityから抜け出す
# 以下前の操作と同様
$ singularity shell --nv openpose_box
$ cd openpose_box/openpose-master
$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi
2.1 OpenPose의 도입에 해당하는 에러집
솔직한지 아니면 모르겠지만, 자신이 만난 에러에 대해 정리해 갑니다.
오류 1# エラー
$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi
Starting pose estimation demo.
Auto-detecting GPUs... Detected 1 GPU(s), using them all.
Starting thread(s)
No protocol specified
(OpenPose 1.1.0:4279): Gtk-WARNING **: cannot open display: :0.0
디스플레이가 열리지 않는다고 알려져 있으므로 호스트 측의 DISPLAY 값을 확인하고 Singularity의 DISPLAY 값을 변경합시다.
호스트측$ echo $DISPLAY
:1
컨테이너측(Singularity)$ echo $DISPLAY
:0.0
$ export DISPLAY=:1
================================================== =======
오류 2# エラー
$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi
Starting pose estimation demo.
Error:
Cuda check failed (30 vs. 0): unknown error
Coming from:
- src/openpose/utilities/cuda.cpp:getGpuNumber():47
- src/openpose/utilities/cuda.cpp:cudaCheck():36
- src/openpose/utilities/cuda.cpp:getGpuNumber():57
- ./include/openpose/wrapper/wrapper.hpp:configure():947
terminate called after throwing an instance of 'std::runtime_error'
what():
Error:
Cuda check failed (30 vs. 0): unknown error
Coming from:
- src/openpose/utilities/cuda.cpp:getGpuNumber():47
- src/openpose/utilities/cuda.cpp:cudaCheck():36
- src/openpose/utilities/cuda.cpp:getGpuNumber():57
- ./include/openpose/wrapper/wrapper.hpp:configure():947
Aborted
이 부분이 nvidia-docker를 시작하는 이유입니다.
아마도 nvidia-docker를 한 번 시작하지 않으면 Cuda를 확인할 수 없습니까? 그렇게 되어, 그것을 회피하기 위한 처리가 됩니다.
이것에 관해서는 나도 잘 모르기 때문에 교수해 주시면 다행입니다.
요약
Singularity 설치에 대해서는 이전 기사에서 언급했으므로 다음 기사를 참조하십시오.
Singularity를 설치하고 실행해 보았습니다.
또 nvidia-docker에 대해서는 이쪽의 기사를 알기 쉬웠습니다.
nvidia-docker 2를 Docker CE (안정 버전)와 함께 Ubuntu 18.04에 설치
설치까지 할 수 있으면 k입니다.
2. OpenPose 도입
이번에는 Singularity 샌드 박스의 방법을 설명합니다.
다음 코드로 DockerHub에서 OpenPose를 다운로드하여 샌드 박스화합니다.
다운로드에 시간이 걸린다고 생각합니다만, 기장에 기다리고 있으면 문제 없습니다.
$ sudo singularity build --sandbox openpose_box docker://garyfeng/docker-openpose:latest
여기서 nvidia-docker를 시작하는 작업을합니다.
※이유는 나중에 에러집에서 접해 갑니다.
시작하면 exit해 주셔서 문제 없습니다.
$ sudo nvidia-docker run -it --rm garyfeng/docker-openpose:latest
$ exit
그런 다음 샌드 박스화 된 OpenPose를 Singularity에서 실행하고 다음 디렉토리로 이동합니다.
$ singularity shell --nv openpose_box
$ cd openpose_box/openpose-master
여기서 OpenPose를 실행하면 다음과 같은 오류가 발생하지만 Window가 상승한다고 생각합니다.
$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi
Starting pose estimation demo.
Auto-detecting GPUs... Detected 1 GPU(s), using them all.
Starting thread(s)
Gtk-Message: Failed to load module "gail"
Gtk-Message: Failed to load module "atk-bridge"
Gtk-Message: Failed to load module "canberra-gtk-module"
※실행 결과의 일부(OpenPose의 샘플 동영상)
런타임에 오류가 있으므로 다음 코드로 대응합니다.
$ exit # Singularityから抜け出す
$ sudo singularity shell --writable openpose_box/ # sudoで書き込み
$ apt-get update
$ apt-get install libatk-adaptor libgail-common
$ apt install libcanberra-gtk-module libcanberra-gtk3-module
$ exit # Singularityから抜け出す
# 以下前の操作と同様
$ singularity shell --nv openpose_box
$ cd openpose_box/openpose-master
$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi
2.1 OpenPose의 도입에 해당하는 에러집
솔직한지 아니면 모르겠지만, 자신이 만난 에러에 대해 정리해 갑니다.
오류 1# エラー
$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi
Starting pose estimation demo.
Auto-detecting GPUs... Detected 1 GPU(s), using them all.
Starting thread(s)
No protocol specified
(OpenPose 1.1.0:4279): Gtk-WARNING **: cannot open display: :0.0
디스플레이가 열리지 않는다고 알려져 있으므로 호스트 측의 DISPLAY 값을 확인하고 Singularity의 DISPLAY 값을 변경합시다.
호스트측$ echo $DISPLAY
:1
컨테이너측(Singularity)$ echo $DISPLAY
:0.0
$ export DISPLAY=:1
================================================== =======
오류 2# エラー
$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi
Starting pose estimation demo.
Error:
Cuda check failed (30 vs. 0): unknown error
Coming from:
- src/openpose/utilities/cuda.cpp:getGpuNumber():47
- src/openpose/utilities/cuda.cpp:cudaCheck():36
- src/openpose/utilities/cuda.cpp:getGpuNumber():57
- ./include/openpose/wrapper/wrapper.hpp:configure():947
terminate called after throwing an instance of 'std::runtime_error'
what():
Error:
Cuda check failed (30 vs. 0): unknown error
Coming from:
- src/openpose/utilities/cuda.cpp:getGpuNumber():47
- src/openpose/utilities/cuda.cpp:cudaCheck():36
- src/openpose/utilities/cuda.cpp:getGpuNumber():57
- ./include/openpose/wrapper/wrapper.hpp:configure():947
Aborted
이 부분이 nvidia-docker를 시작하는 이유입니다.
아마도 nvidia-docker를 한 번 시작하지 않으면 Cuda를 확인할 수 없습니까? 그렇게 되어, 그것을 회피하기 위한 처리가 됩니다.
이것에 관해서는 나도 잘 모르기 때문에 교수해 주시면 다행입니다.
요약
$ sudo singularity build --sandbox openpose_box docker://garyfeng/docker-openpose:latest
$ sudo nvidia-docker run -it --rm garyfeng/docker-openpose:latest
$ exit
$ singularity shell --nv openpose_box
$ cd openpose_box/openpose-master
$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi
Starting pose estimation demo.
Auto-detecting GPUs... Detected 1 GPU(s), using them all.
Starting thread(s)
Gtk-Message: Failed to load module "gail"
Gtk-Message: Failed to load module "atk-bridge"
Gtk-Message: Failed to load module "canberra-gtk-module"
$ exit # Singularityから抜け出す
$ sudo singularity shell --writable openpose_box/ # sudoで書き込み
$ apt-get update
$ apt-get install libatk-adaptor libgail-common
$ apt install libcanberra-gtk-module libcanberra-gtk3-module
$ exit # Singularityから抜け出す
# 以下前の操作と同様
$ singularity shell --nv openpose_box
$ cd openpose_box/openpose-master
$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi
솔직한지 아니면 모르겠지만, 자신이 만난 에러에 대해 정리해 갑니다.
오류 1
# エラー
$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi
Starting pose estimation demo.
Auto-detecting GPUs... Detected 1 GPU(s), using them all.
Starting thread(s)
No protocol specified
(OpenPose 1.1.0:4279): Gtk-WARNING **: cannot open display: :0.0
디스플레이가 열리지 않는다고 알려져 있으므로 호스트 측의 DISPLAY 값을 확인하고 Singularity의 DISPLAY 값을 변경합시다.
호스트측
$ echo $DISPLAY
:1
컨테이너측(Singularity)
$ echo $DISPLAY
:0.0
$ export DISPLAY=:1
================================================== =======
오류 2
# エラー
$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi
Starting pose estimation demo.
Error:
Cuda check failed (30 vs. 0): unknown error
Coming from:
- src/openpose/utilities/cuda.cpp:getGpuNumber():47
- src/openpose/utilities/cuda.cpp:cudaCheck():36
- src/openpose/utilities/cuda.cpp:getGpuNumber():57
- ./include/openpose/wrapper/wrapper.hpp:configure():947
terminate called after throwing an instance of 'std::runtime_error'
what():
Error:
Cuda check failed (30 vs. 0): unknown error
Coming from:
- src/openpose/utilities/cuda.cpp:getGpuNumber():47
- src/openpose/utilities/cuda.cpp:cudaCheck():36
- src/openpose/utilities/cuda.cpp:getGpuNumber():57
- ./include/openpose/wrapper/wrapper.hpp:configure():947
Aborted
이 부분이 nvidia-docker를 시작하는 이유입니다.
아마도 nvidia-docker를 한 번 시작하지 않으면 Cuda를 확인할 수 없습니까? 그렇게 되어, 그것을 회피하기 위한 처리가 됩니다.
이것에 관해서는 나도 잘 모르기 때문에 교수해 주시면 다행입니다.
요약
참고문헌
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation
OpenPose - Quick Start
garyfeng/docker-openpose
OpenPose1.3.0을 Docker에서 이동
ubuntu에서 root시에 cannot open display가 되는 건
Failed to load module “canberra-gtk-module” … but already installed
How to install gail and atk-bridge?
우분투에서 쉽게 데스크톱 녹화를하고 gif로 변환하여 Qiita에 게시하는 방법
Reference
이 문제에 관하여(OpenPose를 Singularity에서 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Nahuel/items/5a7e1105a3fdfd71bd19
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(OpenPose를 Singularity에서 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Nahuel/items/5a7e1105a3fdfd71bd19텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)