DeepFlowest

[Object Detection] YOLO v4 설치 및 demo 실행 : window+python 버전 본문

Computer Vision/실습, 세미 프로젝트

[Object Detection] YOLO v4 설치 및 demo 실행 : window+python 버전

Orange57 2020. 10. 12. 16:21
728x90
반응형
SMALL

환경 :

  • Window10
  • CUDA Version : 11.1
  • cuDNN Version : 8.0.1

 

1. 가상환경 생성 및 활성화

$ conda create -n yolo pip python=3.7 
$ conda activate yolo

2. 기본 패키지 설치

$ pip install tensorflow-gpu==2.3.0rc0
$ pip install opencv-python
$ pip install easydict
$ pip install pillow

3. 소스 clone

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

이 링크에서 yolov4.weights 파일 다운로드 후 tensorflow-yolov4-tflite-master\data에 복사해 넣기

$ cd tensorflow-yolov4-tflite-master

4. 다크넷 가중치 파일을 

1) Tensorflow 버전으로 변환

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

2) tflite 버전으로 변환

$ python save_model.py --weights ./data/yolov4.weights --output ./checkpoints/yolov4-416-tflite --input_size 416 --model yolov4 --framework tflite
$ python convert_tflite.py --weights ./checkpoints/yolov4-416-tflite --output ./checkpoints/yolov4-416.tflite

3) TensorRT 버전으로 변환

$ python save_model.py --weights ./data/yolov4.weights --output ./checkpoints/yolov4.tf --input_size 416 --model yolov4
$ python convert_trt.py --weights ./checkpoints/yolov4.tf --quantize_mode float16 --output ./checkpoints/yolov4-trt-fp16-416

5. 데모

5-1. 이미지

1) yolov4 일반 버전 (이게 더 빠름)

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

2) yolov4 tflite 버전

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

3) yolov4 TensorRT 버전

 

 

data 폴더에 다음과 같은 사진 추가해서 돌려본 결과

 

5-2. 비디오

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

5-3. 실시간 Webcam

$ python detectvideo_webcam.py weights ./checkpoints/yolov4-416 size 416 model yolov4

detectvideo_webcam.py에 다음 코드 추가하여 코드가 GPU에서 돌아가는지 확인

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

 

출처 : github.com/hunglc007/tensorflow-yolov4-tflite

webnautes.tistory.com/1417

728x90
반응형
LIST
Comments