Yolov5를 로컬에서 돌려봅시다!
전 포스팅에서는 구글 코랩을 이용해서 yolov5를 돌리는 법에 대해서 알아보았습니다.
walkaroundthedevelop.tistory.com/64
구글 코랩은 환경 설정을 알아서 해주는 만큼, 환경 설정에 대한 부담을 덜 수 있어서
굉장히 바람직하다고 할 수 있겠습니다.
하지만 직접 로컬에서 돌려봐야지 제대로 머신러닝을 체험해볼 수 있겠죠?
그래서 로컬에서 직접 yolov5을 돌리는 법을 포스팅해보도록 하겠습니다.
yolov5와 yolov4 의 차이에 대해서도 알아보면 좋을 것 같습니다.
yolov5와 yolov4는 사실 다른 사람이 만들었고, 만들어진 시기의 차이도 얼마 나지 않기 때문에,
(yolov5는 20년 5월 공개), (yolov4는 20년 4월 공개), 성능상 어떤 게 더 우위에 있다고는 말하기 힘들다고 합니다.
하지만 yolov5같은 경우에는 pytorch기반이고, yolov4의 경우엔 darknet기반인 데다가, (pytorch가 사용이 용이함)
yolov5 는 크기가 small, medium, large, extra-large 4가지로 나뉘어져 조그만한 디바이스에서 돌리고 싶어하는 경우
yolov5의 small을 사용하면 훨씬 빠르게 inferencing이 가능하다고 합니다.
참고로 yolov4같은 경우 논문이 나왔지만, yolov5의 경우 논문이 없어서 이것 때문에 yolov4를 사용하는 사람도 많다고 합니다.
yolov4 논문: arxiv.org/abs/2004.10934
자 그럼 실제 로컬에서 돌리려면, 그래픽카드를 갖춘 리눅스 컴퓨터가 있으면 좋습니다.
제 사양은, ubuntu 20.04, geforce 1660 SUPER, cpu 10400의 컴퓨터를 사용합니다.
독립적이고 자유로운 개발을 위해서 아나콘다 가상환경을 사용하도록 하겠습니다.
텐서플로우를 사용하는 경우 Cuda 버전과 그 Cuda에 맞는 Cudnn, python 버전, 텐서플로우 버전 등을 맞추기 위해서
심지어 ubuntu 버전까지!
골머리를 앓는 경우가 있지만, (도커를 사용하면 어느정도 해결되긴 합니다만)
pytorch 의 경우 어느정도 거기서 자유롭다고 합니다.
pytorch홈페이지에 친절하게 가상환경 세팅설정이 되어 있습니다.
pytorch.org/get-started/previous-versions/
저의 경우에는 디폴트 Cuda 버전이 11.2 였기 때문에 최대한 가깝게 설정하였습니다.
# CUDA 11.0
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=11.0 -c pytorch
conda로 설치가 완료된 이후엔, yolov5의 깃헙 저장소로 가서 클론해 옵니다.
깃헙 주소: github.com/ultralytics/yolov5
간단하게 돌려보는 건, detect.py 파일을 사용할 수 있습니다.
$ python detect.py --source 0 # webcam
file.jpg # image
file.mp4 # video
path/ # directory
path/*.jpg # glob
'https://youtu.be/NUsoVlDFqZg' # YouTube video
'rtsp://example.com/media.mp4' # RTSP, RTMP, HTTP stream
웹캠부터, jpg, mp4, 유튜브 비디오, rtsp 스트리밍까지 볼 수 있습니다.