Darknet은 C, CUDA로 작성된 딥러닝 프레임워크이다. YOLO와 같은 모델을 쉽게 사용해볼 수 있으며 OpenCV나 CUDA가 없어도 일부 기능이 제한될 뿐 정상적으로 작동하니 이보다 간편할 수가 없다.
필자는 리눅스 환경에서 pjreddie버전을 실행하였으며, OpenCV와 CUDA를 사용하고 싶다면 미리 설치해두어야 한다.
먼저 Darknet Git을 클론한다.
git clone https://github.com/pjreddie/darknet.git
폴더를 확인해보면 MAKE 를 사용하여 빌드를 한다는 것을 알 수 있다. 윈도우 환경은 Chololatey 등을 사용하여 MAKE 툴을 설치할 필요가 있다.
클론한 폴더로 이동하여 make를 실행시키면 간단히 빌드가 끝난다.
cd darknet
make
만일 OpenCV나 CUDA를 사용하고 싶다면 Makefile 파일을 조금 수정해주어야 한다. 코드의 가장 상단에 다음과 같은 변수들이 정의된다.
GPU=0
CUDNN=0
OPENCV=0
OPENMP=0
DEBUG=0
OpenCV를 사용하고 싶다면 OPENCV=1로, CUDA를 사용하고 싶다면 GPU=1, CUDNN=1로 변경해준다.
만일 OpenCV를 활성화 시킨후, 빌드 시 에러가 발생한다면 다음과 같이 해보자.
Makefile을 수정한다.
#Line:45
LDFLAGS+= `pkg-config --libs opencv` -lstdc++
COMMON+= `pkg-config --cflags opencv`
이를 다음과 같이 바꾼다.
LDFLAGS+= `pkg-config --libs opencv4` -lstdc++
COMMON+= `pkg-config --cflags opencv4`
다음을 설치해준다
sudo apt-get install libopencv-dev
#또는
sudo pip install libopencv-dev
/src/image_opencv.cpp 파일에서 다음 코드를 수정한다.
#헤더파일 추가
#include "opencv2/core/core_c.h"
#include "opencv2/videoio/legacy/constants_c.h"
#include "opencv2/highgui/highgui_c.h"
#Line:63
#IplImage ipl = m
IplImage ipl = cvIplImage(m);
프로젝트 내에서 어떤 파일을 수정했다면 make 명령어로 빌드를 다시 해야 적용이 된다.
빌드를 마쳤다면, 간단한 코드로 YOLO 모델을 테스트 해볼것이다. Darknet 홈페이지에는 다양한 pre-trained 모델을 제공한다. 가중치 파일과 cfg 파일만 있다면 쉽게 실행시킬 수 있다. 이 두 파일은 반드시 짝이 맞아야 한다.
cfg 파일은 처음 클론을 받을때 대부분 들어있다. 다음 코드로 가중치를 다운받는다.
wget https://pjreddie.com/media/files/yolov3.weights
이제 실행만 시켜주면 된다.
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
make했을 때 생성된 darknet 파일이 detect라는 커맨드로 모델을 실행시킨 것이다. dog.jpg의 여러가지 클래스를 찾아 박스 형태로 표시해줄것이다. OpenCV를 사용했다면 즉시 팝업으로 띄워주고, 그렇지 않더라도 predictions.jpg에서 확인할 수 있다.
참조
Survival Strategies for the Robot Rebellion
Welcome to my website! I am a graduate student advised by Ali Farhadi. I work on computer vision. I maintain the Darknet Neural Network Framework, a primer on tactics in Coq, occasionally work on research, and try to stay off twitter. Outside of computer s
pjreddie.com
'ComputerVision' 카테고리의 다른 글
Crowd11 Preprocessing (0) | 2022.06.24 |
---|---|
Colab에서 동영상 재생 (0) | 2022.06.22 |
Crowd11에 대하여 (0) | 2022.06.21 |
Crowd11 in Colab (0) | 2022.06.20 |
댓글