멧돼지 데이터 셋을 만들기 위해 멧돼지 이미지를 여러 사이트에서 수집했다. python의 selenium 라이브러리로 Google에서 이미지 크롤링을 pixabay에서 API로 이미지를 수집했다.
Yolov5의 객체 탐지에 사용할 모델을 만들기 위해서 Roboflow에서 이미지 라벨링을 진행하고, Yolov5 PyTorch Format의 zip 파일을 생성한다.
라벨링이 완료된 Yolov5 PyTorch 형식의 데이터 세트를 Google drive에 업로드 하고, Google Colab 환경에서 Yolov5 객체 검출에 사용할 가중치 파일을 만들기 위해 모델 학습을 진행한다.
라즈베리파이4에서 Yolov5를 사용하기 위해 환경을 세팅해준다. Yolov5 프로젝트를 받고, torch 모듈 설치, requirements.txt로 필요한 패키지 설치, 간단한 이미지 테스트 결과를 본다.
mjpg-streamer를 이용해 실시간 스트리밍 서버를 열고 스트리밍 영상을 Yolov5를 이용하여 실시간 객체 탐지를 한다.
Yolov5의 detect.py를 수정해서 스트림 영상에서 객체가 검출되었을 때 영상이 저장되는 것이 아니라, 검출된 객체에 바운딩 박스를 적용하고 현재 시각인 파일 이름의 이미지로 저장되도록 한다.
Firebase Storage에 이미지를 업로드하고 FCM으로 푸시 알림을 앱에 표시하기 위한 방법들을 작성한다. Firebase 프로젝트 생성, 앱 추가, 버킷 생성, FCM token으로 테스트 메시지 보내기, Android 13에서 런타임 알림 권한 요청하기.