YOLO v4를 사용하여 플젝을 진행할 일이 있어서 사용 방법을 기록한다.
처음엔 google colab을 이용해서 yolo v4를 실행해봤는데 그때 봤던 tutorial에서는 명령 프롬프트 위주 실습이였다.
(www.youtube.com/watch?v=mKAEGSxwOAY)- 참고했던 영상
코드로 직접 실행하는 실습을 원했기 때문에 다른 자료를 참고해서 실습했던 부분에 대한 기록을 해본다.
(물론 저 youtube영상도 까보면 코드로 실행할순 있겠지만....귀찮아서 다른걸 검색해서 실습)
다음 GitHub에 있는 YOLO v4 실행 방법 소개.
github.com/theAIGuysCode/tensorflow-yolov4-tflite.git
실습 환경
Window10
Anaconda prompt
cpu로 실행.
(실습할 땐 가상 환경 설정은 안하고 설치되어 있던 것들로 실습)
1. github에 있는 requirements.txt를 보면 Tensorflow 2.3.0rc0 설치를 권장하고 있다.
pip install tensorflow==2.3.0rc0
하위 버전이 설치된 경우 자동으로 제거하고 지정한 Tensorflow 2.3.0rc0 버전으로 설치된다.
(cpu로 잠깐 실행만 시켜봤기 때문에 이 부분에 대한건 설치 안했다.)
참고로 CUDA를 설치하면 실행속도가 많이 개선됩니다.
노트북을 사용하는 경우 전원 어댑터를 연결해야 cuda가 제 성능으로 동작합니다
.
다음 포스트를 참고하여 CUDA 설치 후
Windows 10에 CUDA와 cuDNN, Tensorflow 설치하기
https://webnautes.tistory.com/1423
Ubuntu 20.04에 CUDA Toolkit와 cuDNN, Tensorflow 설치하기
https://webnautes.tistory.com/1428
Tensorflow GPU 버전을 설치하세요.
pip install tensorflow-gpu==2.3.0rc0
2. 이미 설치된 Tensorflow의 버전은 다음처럼 확인 가능
본 글에서는 Anaconda Prompt에서 진행했지만 Window cmd, 리눅스의 터미널에서도 동일한 방법으로 확인할 수 있다.
3. Git Bash git clone
tensorflow-yolov4-tflite 파일을 받아오기 위한 clone.
git clone github.com/theAIGuysCode/tensorflow-yolov4-tflite
or
Download ZIP을 클릭해서 직접 zip 파일을 받아와도 된다.
4. yolov4.weights 파일 다운로드
위 글처럼 github에 명시되어 있다.
https://drive.google.com/open?id=1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT
다운로드하고 yolov4.weights 파일을 tensorflow-yolov4-tflite\data 로 옮긴다.
5. 폴더로 이동
C:\Users\wonseyoung\my_Git_Hub>cd tensorflow-yolov4-tflite
6. Convert darknet weights to tensorflow
python save_model.py --weights ./data/yolov4.weights --output ./checkpoints/yolov4-416 --input_size 416 --model yolov4
7. 다음 명령으로 실행하고 잠시 기다리면 결과가 나온다.
결과 이미지를 보여주기 위해 PIL을 사용했기 때문에 그림판 같은 프로그램에서 결과가 보여준다.
어떤 프로그램에서 결과를 보여줄지 선택해야 할 수도 있다.
yolov4 일반 버전.
# Run yolov4 tensorflow model
python detect.py --weights ./checkpoints/yolov4-416 --size 416 --model yolov4 --images ./data/images/kite.jpg
yolov4 tflite 버전
https://stackoverflow.com/a/54137730 에 따르면 tensorflow lite는 arm 프로세서에 최적화되어 있어 PC에서는 오히려 느리다고 한다.
arm 프로세서는 간단하게 말해서 모바일이나 라즈베리 같은 곳에서 사용하기 편하다는 걸로 일단 이해...
cpu로 실행해서 그런지 검출 속도가 느리다는 느낌을 확 받긴 했다.
8. webcam을 실행했을 때 FPS
cpu로 실행했을 때 FPS...평균 3 fps 정도 나왔다.
GPU로 실행했을 땐 평균 FPS 15...확실히 차이가 있다.