박민혀기

YOLOv3 install on Raspberry Pi 본문

Research

YOLOv3 install on Raspberry Pi

박민혀기 2024. 8. 29. 21:27

라즈베리파이 환경에서 객체감지 YOLO를 사용하기 위해 필요한 패키지나 백본을 설치해야 한다.

아마 리눅스 환경에서도 비슷하게 동작할 것으로 예상되는데, 윈도우에서 사용하려면 백본(Darknet) build나 CUDA, OpenCV, cudnn등 다양한 부분에서 비교적 설치가 까다롭다.

 

2024-09-10 업데이트 : 리눅스 윈도우 환경 두 환경 모두 정상 동작함

 

우선 있는 장비로 빠르게 사용하기 위해 라즈베리 파이 5를 가지고 설치했다.

 

Darknet 설치

기본적인 OS 업데이트와 필요한 패키지, 라이브러리를 설치해야 한다.

#OS Update
sudo apt-get update

#Darknet을 컴파일하기 위해 필요한 의존성 설치
sudo apt-get install build-essential libopencv-dev git cmake

#Darknet 소스코드 다운로드
git clone https://github.com/AlexeyAB/darknet.git
cd darknet

#Makefile 설정 수정
#Darknet의 Makefile을 수정하여 CUDA와 OpenCV를 활성화할 수 있다.
#라즈베리파이는 CUDA를 지원하지 않으므로 CUDA를 비활성화하고, 필요에 따라 OpenCV를 활성화
nano Makefile

#텍스트 에디터를 이용하여 파일 수정
GPU=0
CUDNN=0
OPENCV=1
OPENMP=1
LIBSO=1

#Darknet 컴파일
make

 

yolov3.weights 다운로드

cd ~/darknet
wget https://pjreddie.com/media/files/yolov3.weights

 

YOLOv3 테스트

#각 파일 경로 주의
./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/dog.jpg

 

최초 입력 이미지는 768x576 사이즈의 이미지이다.

결과는 개, 자전거, 트럭을 인식, 분류하여 정상적으로 처리된 것을 확인할 수 있다.

추론 시간은 10초 이내로  나름 괜찮은 속도였는데, 오히려 커맨드 창에 출력하는 시간 리소스가 더 많이 사용된 느낌도 있다.

라즈베리파이5 환경에서 YOLOv3 실행

 

결론

YOLOv3 모델을 사용하기 위해 필요한 패키지와 가중치, 백본 등을 설치하고 실행하는 것까지 해보았다.

YOLOv3 보다 더 상위 버전을 사용해 본 적은 없지만 사용해 본다면 이와 비슷하게 사용 환경을 구축할 것 같다고 생각한다. 즉 다른 버전의 YOLO 모델을 사용하더라도 위 포스팅 내용을 참고할 수 있지 않을까? 생각한다.

 

앞으로 연구

최종적으로 모델을 두 부분으로 분리하여 서버와 클라이언트에서 split 학습을 진행할 예정이다.

그로 인해 Pytorch와 같은 딥러닝 프레임워크를 사용해야 할 수 있다.

그 전에 파이썬과 모델을 통해 추론이 가능한 환경으로 구현하는 것이 우선일 것 같다.