Deep-Learning

[YOLOv4] YOLOv4 설치 및 테스트 - Ubuntu 20.04

Jerry_JH 2021. 4. 9. 23:30
728x90

YOLOv4 에 대하여 우연히 듣게 되었고, 관심을 가지게 되어 설치하고 테스트까지 해보았다.

 

 

YOLOv4는 이 github을 참고하였고, git clone를 하였다. (맨유팬인듯)

github.com/hunglc007/tensorflow-yolov4-tflite

 

hunglc007/tensorflow-yolov4-tflite

YOLOv4, YOLOv4-tiny, YOLOv3, YOLOv3-tiny Implemented in Tensorflow 2.0, Android. Convert YOLO v4 .weights tensorflow, tensorrt and tflite - hunglc007/tensorflow-yolov4-tflite

github.com

 

 

 

이 표는 Object Detection 에서 YOLOv4가 빠른 속도와 준수한 정확률을 가지고 있는 것을 보여준다.

(지금 시각으로는 더 좋은 것이 나왔을 수도 있다...)

 

출처 : https://github.com/hunglc007/tensorflow-yolov4-tflite/blob/master/data/performance.png 

 

1. YOLOv4를 실행하기 위해서는 Tensorflow를 설치해야 한다.

 

github를 따르면 저자는 Tensorflow 2.3.0rc0 설치를 권장하고 있다.

하지만 나는 tensorflow-gpu 2.4.0 인데 실행이 잘되었다.

 

또한 cpu로만 실행을 한다면 gpu에 비하여 굉장히 성능이 저하될 것이다. 

gpu 이용하는 것을 추천한다.

gpu를 이용하기 위해서는 CUDA Toolkit 과 cuDNN이 설치되어야 한다.

$ pip install tensorflow-gpu==2.3.0rc0

 

설치가 잘 되었는지 확인도 해준다.

 

$ python
Python 3.9.2 (default, Mar 24 2021, 10:44:35) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
2021-04-09 22:41:57.877924: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0
>>> tf.__version__
'2.3.0-rc0'

 

2. 위 링크에 있는 프로젝트를 다운로드한다. 

github에 가서 Coda - Download ZIP 을 해도 되고, 

나는 git clone 를 이용해서 다운로드를 받았다.

git clone https://github.com/hunglc007/tensorflow-yolov4-tflite

 

3. yolov4.weights 파일을 다운로드한다.

 

drive.google.com/file/d/1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT/view

 

 

4. yolov4.weights 파일을 복사해준다.

 

2번에서 다운로드한 폴더 tensorflow-yolov4-tflite/data 안에 복사를 해준다.

 

 

5. 다크넷 가중치 파일을 텐서플로우로 변환한다.

 

윈도우는 윈도우키 + R을 눌러 cmd를 검색하고

우분투는 ctrl + art + T 를 눌러서 터미널에 들어간다.

 

$ cd tensorflow-yolov4-tflite

2번에서 다운로드한 폴더 안으로 진입해준다.

 

아래 명령어를 이용하여 변환해준다.  

python save_model.py --weights ./data/yolov4.weights --output ./checkpoints/yolov4-416 --input_size 416 --model yolov4 

 

[ 테스트 ]

6. 다음 명령을 이용하여 yolov4-tflites 에  있는 기본 데이터로 테스트를 해본다.

python detect.py --weights ./checkpoints/yolov4-416 --size 416 --model yolov4 --image ./data/kite.jpg

 

직접 테스트 해본 결과이다. 

 

[다른 테스트 사진]

python detect.py --weights ./checkpoints/yolov4-416 --size 416 --model yolov4 --image ./data/1010.jpg

 옛날에 유럽을 갔던 사진을 이용하여 테스트를 해보았다. 

인식이 잘 되는 것을 볼 수 있다.

 

[영상]

python detectvideo.py --weights ./checkpoints/yolov4-416 --size 416 --model yolov4 --video ./data/road.mp4

 

기본으로 제공하는 영상이다.

 

 

728x90