티스토리 뷰

728x90

darknet은 AlexeyAB와 pjreddie 2가지 버전이 있는데,

pjreddie 버전 설치하는 법을 설명하겠습니다.

 

 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

 

1. 터미널을 켜서 build 폴더까지 들어와줍니다.

$  cd opencv/opencv-4.2.0/build 

opencv-4.2.0 폴더는 각자 다운한 버전에 맞게 수정해주면 됩니다.

모를경우 cd opencv 까지 한 후 ls 를 입력해주면 하위 폴더가 나와서 알 수 있습니다.

 

 

2. 아래 코드 실행

sudo apt install git   // git 설치
git clone https://github.com/pjreddie/darknet.git cd darknet    //darknet 폴더로 이동
make

 

 

3. makefile 수정

vi Makefile

Makefile을 열어서 0이었던 GPU, CUDNN, OPENCV 값을 1로 수정해줍니다.

GPU = 1 //0
CUDNN = 1 //0
OPENCV = 1  //0

수정 후 ESC 누른 후 :wq + Enter 을 입력해 저장한 후 파일 밖으로 나가줍니다.

w : 저장

q : 나가기

wq : 저장 후 나가기

 

 

4. 다시 make

makefile을 수정했으니 터미널에 make를 입력해줍니다.

 

make 오류

make 시 ./src/image_opencv.cpp:5:30: fatal error: opencv2/opencv.hpp: 그런 파일이나 디렉터리가 없습니다.

not found file or directory 이런 오류가 뜬다면

$ sudo apt install libopencv-dev

이 명령어를 입력해주면 해결됩니다.

 

다른 make 오류가 생겼다면 아래 글을 한 번 보고오세요.

2020/06/01 - [Capstone Eng_2020/ERROR] - Darknet make error

 

5. yolo 기본 가중치 파일을 다운받아 제대로 설치된지 확인해줍니다.

이걸 꼭 하고가야 나중에 각자의 가중치파일로 테스트를 진행했을 때, 데이터셋의 문제인지 yolov3의 문제인지 알 수 있습니다.

둘 중 원하는 가중치를 받습니다. yolov3.weights 파일이 일반적.

wget https://pjreddie.com/media/files/yolov3.weights   //일반버전 왠만하면 이걸로.
wget https://pjreddie.com/media/files/yolov3-tiny.weights   // tiny(가벼운)버전, 모바일버전

 

 

6. 가중치파일 테스트

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg  
./darknet detect cfg/yolov3-tiny.cfg yolov3-tiny.weights data/dog.jpg   // tiny버전으로 실행 시

이 개, 자전거, 트럭이 나온다면 설치도 잘 되고 테스트도 성공적으로 실행된 것 !

다음 포스팅으로 넘어가면 됩니다 :)

 

 

만약, 아래와 같은 

CUDA Error : out of memory

darknet: ./src/cuda.c:36: check_error: Assertion '0' failed.

Aborted (core dumped)

오류가 뜬다면, darknet/cfg 경로에 있는 yolov3.cfg 파일을 수정해줘야합니다.

 

현재 터미널에서 opencv/opencv-4.2.0/build 까지 열려있는 상태라면 cfg 폴더에 들어가 yolov3.cfg 파일을 열어줍니다.

cd cfg
vi yolov3.cfg

(vi : 파일 열기)

해결 github 답변

위 캡쳐본처럼 6,7 라인의 batch와 subdivisions를 1로 수정해줍니다.

:wq + 엔터 를 입력해 저장 후 yolov3.cfg 파일에서 나와준 후 터미널에 cd .. 를 입력해 darknet 폴더로 나와줍니다. 

다시 테스트 코드를 입력해주면 실행이 잘 되는 것을 볼 수 있습니다.

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg  
./darknet detect cfg/yolov3-tiny.cfg yolov3-tiny.weights data/dog.jpg   // tiny버전으로 실행 시
반응형