본문 바로가기

Computer Vision/Object detection

Ubuntu 18.04 에서 Yolo v4 설치하기

YOLO v3에 대해서는 자료도 많고, 관심도 많고, 논문, 리뷰 모두 많이 봤을거라 생각한다.

하지만 YOLO v4의 소식이 있음에도 관련 post가 많지 않기에 글을 작성하게 되었다.

실제로 코드들도 github에 업로드 되어 있다. (YOLO v4에 대한 자세한 내용은 아래 논문 참고.)

YOLO v4의 그래프

YOLO v4 논문 참고 : AP50:95 / AP50 - FPS (Tesla V100) Paper: https://arxiv.org/abs/2004.10934

 

YOLOv4: Optimal Speed and Accuracy of Object Detection

There are a huge number of features which are said to improve Convolutional Neural Network (CNN) accuracy. Practical testing of combinations of such features on large datasets, and theoretical justification of the result, is required. Some features operate

arxiv.org

YOLO v4 한글 리딩 : 2020/06/24 - [지식 저장소] - YOLOv4 : Object detection의 최적의 속도와 정확도

 

YOLOv4 : Object detection의 최적의 속도와 정확도

이번 포스팅에서는 YOLOv4의 논문을 리딩해보겠다. 저번 포스팅에서도 최대한 논문의 전반적인 내용을 다루면서 쉽게 설명하려고 노력 했으나.. 여간 어려운 작업이 아닐 수 없다. 각설하고 YOLOv4�

keyog.tistory.com

 

AlexAB의  github에 올라온 YOLO v4에 대한 자료는 별로 없기 때문에 훈련 시키는 법을 작성했다.

(또, YOLO글 이라니.. YOLO를 사랑하는 남자인가 보다.. SSD나 RetinaNet이라던가 할게 많은데.. 쓰읍..)

저번 YOLO v3 글에 작성한건 pjreddie github에 있는 redmon의  YOLO훈련법을 작성 했으므로,

이번에는 AlexAB github에 있는 YOLO를 훈련 시키는 방법과 함께 나의 프로그램에 어떻게 사용할 수 있는지 까지 적어 보았다.

https://github.com/AlexeyAB/darknet

 

AlexeyAB/darknet

YOLOv4 - Neural Networks for Object Detection (Windows and Linux version of Darknet ) - AlexeyAB/darknet

github.com

여기에 가보면 상세히 적혀 있으므로 Window유저는 참고하면 된다. 

darknet을 받아 YOLO를 사용하기전에 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

 

가장 먼저, AlexAB의 github에 들어가서 git을 clone해오거나 zip파일로 다운로드 받아준다.

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

 

YOLO v3와 마찬가지로 darknet을 컴퓨터에 make해주자. make를 위한 makefile을 수정해 준다.

GPU=0
CUDNN=0
CUDNN_HALF=0
OPENCV=0
AVX=0
OPENMP=0
LIBSO=0

Makefile 첫부분에 작성되어 있는 이 부분을

GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=1
AVX=0
OPENMP=0
LIBSO=1

이렇게 수정해주면 된다. 이 전과 비교해 추가된것은 CUDNN_HALF가 추가 되었다. 좀 더 학습시간을 향상시켜준다고 하니 1로 변경해 주자. 그 다음은 LIBSO인데 이전 redmon의 darknet은 make하면 빠져나왔던 so 파일이 옵션으로 추가 되었다. 우리는 응용 프로그램에 yolo를 사용하기 위해 1로 설정해서 so 파일까지 생성해주도록 하자.

이전에는 1000iter 마다 weights파일을 빠져나오도록 하기위해 설정해주었었지만, AlexeyAB의 darknet에서는 1000으로 이미 설정이 되어 있으니 패스.. 바로 make를 통해 darknet을 make해보자!

make

make가 진행되는 모습

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

example을 돌려서 확인 해보기 위해 YOLO v4의 weight파일을 다운로드 받아보자.

drive.google.com/open?id=1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT

 

yolov4.weights

 

drive.google.com

weight파일을 다운로드 받았다면, darknet폴더로 이동해서 example을 실행해보자.

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

dog.jpg

아무튼 요렇게 잘 나온다.

설치 방법은 YOLO v3와 별 다를 것이 없었다.

이제 다음 글에서 yolo v4 custom 데이터 훈련하는 것을 알아보고

훈련 시킨 데이터를 본인의 프로그램으로 어떻게 응용할 수 있는지 알아보도록 하자!