docker gpu 를 활용한 darknet yolov4 설치 및 구동 (CentOS7)
본문 바로가기
도커(docker)

docker gpu 를 활용한 darknet yolov4 설치 및 구동 (CentOS7)

by Migos 2022. 3. 7.
반응형

[1] docker hub에서 cuda11.2, cudnn8, centos7환경의 이미지를 받아온다.

(=누군가 CentOS7 을 내 컴에 깔고, CUDA11.2와 cuDNN 8 버젼을 깔아준 셈)

sudo systemctl start docker
docker pull nvidia/cuda:11.2.0-cudnn8-devel-centos7

 

 

[2] docker run, 설치가 완료된 컴퓨터를 켜준다.

--name : 이름(원하는걸로 설정)

-e : 추후 opencv로 imshow 할 경우 디스플레이 화면에 팝업으로 보여야 하기 때문에 설정해줌(그대로 복붙)

-v /tmp/.X11-unix:/tmp/.X11-unix --privileged : docker와 내 컴이 서로 display볼륨을 공유하기위해서 설정

-v $(pwd):/workspace/ : 터미널 현재 내 경로와 도커 내부의 /workspace 경로에 마운트(공유)하겠다는 의미

nvidia/cuda:11.2.0-cudnn8-devel-centos7 : 아까 다운(pull)받은 이미지

bin/bash : 커멘드 환경으로 열겠다는 의미

docker run -it --gpus all\
--name darknet\
-e DISPLAY=unix$DISPLAY\
-v /tmp/.X11-unix:/tmp/.X11-unix --privileged \
-v $(pwd):/workspace/ \
nvidia/cuda:11.2.0-cudnn8-devel-centos7 \
bin/bash

docker run -it --gpus all --name VAS_BCT_1 -e DISPLAY=unix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --privileged -v $(pwd):/workspace/ nvidia/cuda:11.2.0-cudnn8-devel-centos7 bin/bash

 

[3] CUDA, cuDNN까지 모두 설치되었으니, darknet을 구동하기 위한 나머지 설치를 진행.

[3.1] python, opencv를 비롯한 기본 설치

cd home
mkdir dpw
cd dpw
mkdir code
cd code
yum install -y git
yum install -y python3
yum install -y opencv opencv-devel opencv-python
yum install -y unzip
yum install -y wget
pip3 install --upgrade pip
pip3 install numpy
pip3 install opencv-python
pip3 install scipy
pip3 install requests
pip3 install jaydebeapi
pip3 install flask
pip3 install gputil

[3.2] darknet build

cd /home/dpw
git clone https://github.com/AlexeyAB/darknet.git
cd darknet
wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights
rm -rf Makefile src
wget https://download1519.mediafire.com/qwucdfme9sjg/9ojvtrubbdz91ad/Makefile
wget https://download1650.mediafire.com/724z80csd3mg/8nprui37b114w8a/src.zip
unzip src.zip
make
xhost +

docker 빠져나오기

exit

 

[4] 여기까지 설치한 그대로 박제해서 docker image로 만들기

[4.1] 컨테이너 조회

docker ps -a

[4.2] 박제할 컨테이너 지정 및 이미지 이름:태그 설정

docker commit <contianer id> cuda/cudnn/darknet:v1.0

[4.3] 잘 박제되었는지 확인

docker images

 

[4.4] 도커 허브에 업로드하기

 

https://nicewoong.github.io/development/2018/03/06/docker-commit-container/

 

[5] Darknet 테스트 예제 구동

./darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg

 

팝업으로 이 이미지가 나타나면 성공!

 

[6] 나중에 다시 접속하기

docker start darknet
docker attach darknet # 컨테이너 내부로 들어옴
cd home/dpw/darknet
./darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg

 

[7] docker 내부에서 ifconfig 안먹힐 때 bash: ifconfig: command not found

yum -y install net-tools

 

반응형

댓글