본문 바로가기

Computer Vision/Object detection

Yolo v3 설치하기

object detection 분야에서 유명한 yolo의 설치법 및 사용법을 작성한다.

모든 딥러닝 라이브러리가 마찬가지겠지만 yolo를 효율적으로 사용하기 위해서는 gpu를 사용하는 것이 좋다.

그래픽 드라이버와 Cuda설치 참고

2020/04/17 - [잡다한 것] - Ubuntu 18.04 그래픽 드라이버, Cuda 10.0 설치

 

Ubuntu 18.04 그래픽 드라이버, Cuda 10.0 설치

Python 패키지 설치 sudo apt-get install openjdk-8-jdk git python-dev python3-dev python-numpy python3-numpy python-six python3-six build-essential python-pip python3-pip python-virtualenv swig pytho..

keyog.tistory.com

2020/04/17 - [잡다한 것] - 그래픽 드라이버 440, cuda 10.2 오류 관련

 

그래픽 드라이버 440, cuda 10.2 오류 관련

Cuda 설치 및 ubuntu에 대한 default 셋팅 2020/04/17 - [잡다한 것] - Ubuntu 18.04 그래픽 드라이버, Cuda 10.0 설치 Ubuntu 18.04 그래픽 드라이버, Cuda 10.0 설치 Python 패키지 설치 sudo apt-get install o..

keyog.tistory.com

드라이버와 Cuda설치가 끝났으면 본격적으로 darknet설치를 진행해보자.

darknet을 사용하는 yolo는 현재 github에 alexab의 darknet과 pjreddie의 darknet이 올라와 있다.
alexab의 darknet이 업데이트도 되어있고 편리기능이 추가되어서 사용하기 훨씬 좋지만, 베이직하게 darknet project홈페이지에 기재된 prjreddie의 darknet으로 설치하여 사용하는 방법을 알아보도록 한다.

설치하기

먼저 원하는 디렉토리에 들어가 darknet을 다운받아 준다.

git clone https://github.com/pjreddie/darknet.git

darknet 다운로드

darknet을 클론하면 해당 디렉토리에 darknet디렉토리가 생성되는데 make를 통해 darknet을 개인의 컴퓨터에서 사용할 수 있게 해준다. 그러나 make하기 전에 dakrnet폴더에 Makefile을 수정 해주자.

gedit Makefile

Makefile을 열면 설정할 수 있는 부분이 있는데 맨위의 세 줄을 변경해주자

GPU=0
CUDNN=0
OPENCV=0
OPENMP=0
DEBUG=0

이렇게 설정되어 있는 것을

GPU=1
CUDNN=1
OPENCV=1
OPENMP=0
DEBUG=0

이렇게 변경해주자. 그 다음 훈련이 진행되면서 weight파일이 출력되는 주기를 변경해주자. yolo의 초기 셋팅은 weight파일이 1000iter까지는 100번에 한번씩 weight파일을 내뱉지만 그 이후 부터는 10000번에 한번씩 출력이 되기 때문에 1000iter이 후 매우 오래 기다려야하는 현상이 생긴다.. 

(이 부분은 make이 후에 진행하여도 문제없다. 하지만 까먹기 때문에 초기에 셋팅할 때 미리미리 해주자)

gedit examples/detector.c

detector.c의 138번째 줄을 보면 weight파일이 빠져나오는 주기를 확인할 수 있다. 그 부분을 필자는 1000번에 한번씩 빠져나오도록 수정해주었다.

if(i%10000==0 || (i < 1000 && i%100 == 0)){

이렇게 적혀 있는 부분을

if(i%1000==0){

이렇게 수정해주면 1000번에 한번씩 출력이 된다. 그 다음에 make명령어를 통해 darknet을 설치해주자.

make

make진행되는 모습

make가 끝나고 나면 darknet파일들이 생성된 것을 확인할 수 있다.

yolo v3의 weight파일을 다운로드 받아서 test를 해보자.

wget https://pjreddie.com/media/files/yolov3.weights

 

다운로드 받은 뒤 yolo의 유명한 example을 직접 돌려보자.

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

 

그 다음 웹캠으로 test를 해보자!

./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights

 

만약, test나 example 돌렸는데 opencv관련 오류가 나타나거나, 새로운 창에 화면이 안뜨고 이미지만 저장되는 경우 opencv 에 대한 오류를 해결 해주어야한다. 이런 문제가 나타난 경우 해당 글을 참조하길 바란다.

2020/04/21 - [잡다한 것] - darknet, Yolo v3 설치 시 Opencv 오류 관련

 

darknet, Yolo v3 설치 시 Opencv 오류 관련

darknet 설치하였을 때 에서 opencv관련 오류가 발생하는 경우가 있다. 그 경우 pip로 install 한 opencv가 인식되지 않는 것이므로 opencv를 컴퓨터에 빌드해 주어야한다. // 2020/01/22 추가 sudo apt install p..

keyog.tistory.com

 

 

참조 : https://pjreddie.com/darknet/yolo/

 

YOLO: Real-Time Object Detection

YOLO: Real-Time Object Detection You only look once (YOLO) is a state-of-the-art, real-time object detection system. On a Pascal Titan X it processes images at 30 FPS and has a mAP of 57.9% on COCO test-dev. Comparison to Other Detectors YOLOv3 is extremel

pjreddie.com