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가 빠른 속도와 준수한 정확률을 가지고 있는 것을 보여준다.
(지금 시각으로는 더 좋은 것이 나왔을 수도 있다...)
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
'Deep-Learning' 카테고리의 다른 글
[ Review ] Object Detection의 기초 공부 (0) | 2021.06.07 |
---|---|
[YOLOv4] Pistols data를 이용하여 yolov4 학습하기 (2) | 2021.04.08 |