라즈베리파이에서 Yolov5 실시간 객체 검출을 위해서는 64-bit OS를 사용해야 한다.
그리고, 필요한 패키지들을 설치해 준다.
git clone https://github.com/ultralytics/yolov5
명령어를 수행하면,
라즈베리파이에서 현재 작업 중인 디렉토리에 yolov5 폴더가 생성되고,
ultralytics의 GitHub 저장소에서 yolov5 코드를 복제한다.
cd yolov5
yolov5 디렉토리로 이동한 뒤,
python3 detect.py --source data/images --weights yolov5s.pt --conf 0.25
명령어로 간단하게 data/images에 있는 이미지로 yolov5s.pt 모델을 사용하여 detect.py 파이썬 스크립트를 실행하여 테스트한다.
torch 모듈은 라즈베리파이와 호환되는 버전으로 설치해야 한다.
PyTorch 설치 가이드
https://qengineering.eu/install-pytorch-on-raspberry-pi-4.html
torch 모듈을 사용하기 위한 종속성 설치 sudo apt-get install python3-pip libjpeg-dev libopenblas-dev libopenmpi-dev libomp-dev
PyTorch 파일이 정리되어 있는 github
https://github.com/Qengineering/PyTorch-Raspberry-Pi-64-OS
위의 github에서 wheel 파일을 google drive에 올려줬다.
torch 1.9.0 버전과 torchvision 0.10.0 버전을 gdown으로 설치해 준다.
우선, Google Drive에서 파일을 다운로드 받을 수 있도록 gdown 패키지를 설치한다.
sudo pip3 install gdown
PyTorch 1.9.0 version 다운로드
gdown https://drive.google.com/uc?id=1p9Sp5YmCJwIkmQIWkpuIkE4NgeYPOr-U
root 권한으로 사용자의 home 디렉토리에서 pip3로 PyTorch 설치
sudo -H pip3 install torch-1.9.0a0+gitd69c22d-cp39-cp39-linux_aarch64.whl
PyTorch 1.9.0 버전과 호환되는 TorchVision 0.10.0 버전 다운로드
gdown https://drive.google.com/uc?id=13fKq1V-zLbLBWPw3zP4EZxyMXyOiJWPi
root 권한으로 TorchVision 설치
sudo -H pip3 install torchvision-0.10.0a0+300a8a4-cp39-cp39-linux_aarch64.whl
pip install -r requirements.txt
명령어로 필요한 패키지들을 간단하게 설치할 수 있다.
이제 필요한 패키지들을 모두 설치했다.
python3 detect.py --source data/images/ --weights yolov5s.pt --conf 0.25
명령어 이후에 yolov5s.pt가 설치되고 data/images 위치의 이미지를 검출한다.
runs/detect/exp 위치에 결과 이미지가 저장된 것을 볼 수 있다.
결과 이미지
아래와 같이 객체가 문제없이 검출되어진 것을 확인할 수 있다.
이제 라즈베리파이에서 yolov5 객체 검출을 위한 준비를 모두 마쳤다.
다음은 실시간으로 확인할 수 있도록 실시간 스트리밍 서버를 구현하고,
훈련 시켜준 모델로 스트림 영상에서 객체를 검출한다.
다 설치하고 현재 python3 detect.py --source data/images/ --weights yolov5s.pt --conf 0.25 이 코드만 실행이 되면 되는데요
실행시키고 나면 chmod: cannot access 'runs': No such file or directory 이 에러가 발생합니다.
다른 글에서 봤는데 가상환경을 설치하고 돌리는게 좋다고 하는데 혹시 가상환경을 만들고 하셨을까요?