[Deep Learning] YOLOv4 설치 및 테스트 하기

그냥·2022년 8월 8일
0

deeplearning

목록 보기
1/1

1. 정의

YOLOv4는 object detection을 수행하는 AI 모델이다. 아래 이미지처럼 어떤 물체에 대해서 bounding box가 만들어지고, 해당 객체가 어떤 물체인지도 인식해준다.




3. 설치

YOLOv4 모델을 사용하기 위해서는 darknet 깃허브를 클론하는 등 사전작업이 필요하다.

0) nvidia driver CUDA cudnn 설치

사용할 GPU의 스펙에 맞춰 아래 세 가지를 설치 해줘야 한다.

  • nvidia driver
  • CUDA
  • cudnn

사용하는 OS에 맞게 구글링해서 설치해야 한다. 필자는 Ubuntu 20.04 였기에 아래를 보고 참고하였다.

nvidia driver

[Ubuntu 20.04 LTS]Nvidia드라이버 설치하기


CUDA

1) Install
CUDA install

아래 이미지를 참고해서 운영체제에 맞게 선택하면 된다. 운영체제에 맞게 선택하면 아래에 [Download Installer for ~] 탭이 뜬다. 거기에 작성되어 있는 명령어를 복사해서 터미널에서 install 하면 된다.


2) CUDA PATH 설정

vi ~/.bashrc

마지막 줄 아래 추가

# CUDA Soft Link
export PATH=/usr/local/cuda-{version 명}/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-{version 명}/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

bashrc 적용

source ~/.bashrc

cudnn

1) Install
cudnn install

CUDA의 버전에 맞게 cudnn을 설치해야 한다. CUDA 버전에 맞춰 위 이미지 처럼 둘 중 하나를 선택한다.

선택하면 어떻게 설치 할 지 선택지가 주어진다. 필자는 Linux X86_64[Tar] 다운로드 받았다. 다운 받은 후 터미널에서 tar 파일을 실행하여 cudnn을 설치하였다.


2) 압축 해제 후 설치 파일 복사 붙여넣기

설치 후 압축하제 하면 cuda 폴더가 생성이 된다. cuda 폴더에 진입하게 되면 include 폴더와 lib64 폴더 및 txt파일이 하나 있다. include 폴더 안의 파일은 cuda의 include로 lib64폴더 안의 파일은 cuda의 lib64로 복사해 주면 된다.

아래와 같이 진행하면 된다.

cd cuda
cp include/cudnn* /usr/local/cuda-11.0/include
cp lib64/libcudnn* /usr/local/cuda-11.0/lib64/
chmod a+r /usr/local/cuda-11.0/lib64/libcudnn*

설치 확인은 아래 명령어를 입력하면 된다.

cat /usr/local/cuda-{version명}/include/cudnn_version.h | grep CUDNN_MAJOR -A 2


1) git clone

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

2) make 구동환경 파일 옵션 변경

github에서 파일을 다운받아 왔으므로 모델 설치를 해야 하는데, 이를 위해 같이 다운 받은 make 파일의 옵션을 변경해 주어야 한다.

  • 위치: /darknet/Makefile

만약에 GPU를 이용해 Object Detection을 수행할 것이라면 아래 값을 1로 변경해주어야 한다.

  • GPU
  • CUDNN
  • CUDNN_HAFL
  • OPENCV

만약 GPU를 사용하지 않을 경우 OPENCV 값만 1로 변경해준다. 파일을 저장하고 닫아준다.


3) make를 이용해 Yolo v4 설치

darknet 디렉토리로 이동

cd darknet 

아래 명령여 실행

sed -i 's/OPENCV=0/OPENCV=1/' Makefile
sed -i 's/GPU=0/GPU=1/' Makefile
sed -i 's/CUDNN=0/CUDNN=1/' Makefile
sed -i 's/CUDNN_HALF=0/CUDNN_HALF=1/' Makefile

Yolo v4 설치

make

4) pretrained yolo v4 weights 다운로드

Yolov4는 coco dataset의 80 class를 학습한 pretrained weight를 제공하는데, 이것을 다운받으면 80개 클래스에 속한 object들에 대한 detection은 추가 학습 없이 할 수 있다.



4. Inference

영상 detecting 하기

darknet git clone시 기본적으로 제공해주는 데이터로 inference 하는 방법이다.

1) darknet 디렉토리로 이동
2) 아래 명령어 실행

./darknet detector demo \
cfg/coco.data \
cfg/yolov4.cfg \
yolov4.weights \
-out_filename result1.avi \
-dont_show

detecting 처리된 영상은 -out_filename result1.avi 옵션으로 적용된 이름으로 darkent 경로에 영상이 만들어진다. 확장자는 avi, mp4 등으로 작성하면 이에 맞게 인코딩되어 만들어진다.

0개의 댓글