딥러닝 모델을 사용하여 실시간으로 유해조수를 판별하여 타겟팅을 하는 팬틸트 카메라 어플리케이션과 디바이스.
유해조수 판별 로그와 영상/사진을 클라우드에 업로드하고, 이를 조회할 수 있는 관리자 프로그램.
이름
역할
팀장 박민재
사용자 GUI
이무봉
데이터셋 변환 및 모델학습
김태헌
팬틸트 카메라용 객체인식 및 추적 어플리케이션 개발
홍석진
데이터베이스 설계
2023.11.16 ~ 2023.12.15 (중 10일)
개발환경
언어
DB, UI 등
AI
개발환경
형상관리 및 협업
팬틸트 카메라 어플리케이션 및 디바이스
YOLOv8 모델과 openCV로 유해조수 탐지
로컬과 AWS에 인식한 객체 로그 데이터와 녹화 영상 및 캡쳐 이미지를 업로드
사용자 UI 프로그램
팬틸트 카메라 선택 선택하여 해당 카메라 실시간 영상 조회
탐지 결과와 녹화 영상, 캡쳐 이미지 조회
데이터 저장 서버(DB)
탐지 결과에 대한 정보, 녹화 영상과 캡쳐 이미지를 클라우드에 저장
고라니
노루
너구리
멧돼지
반달곰
토끼
얼룩다람쥐
다람쥐
백로
족제비
왜가리
① 실시간 영상
② 녹화 영상 및 캡쳐 이미지 조회: Open File 버튼으로 로컬에 저장된 영상/이미지 파일 조회
③ 객체 검출 정보: 검출 시간, 객체 정보, 경계박스 좌표에 대한 raw 데이터, 녹화 영상 및 캡쳐 이미지 저장 경로를 표시
① 팬틸트 카메라 디바이스 선택
② 실시간 영상
(좌) 바운딩 박스가 있는 영상
(우) 바운딩 박스가 없는 원본 영상
③ 유해조수 출현 기록 리스트: 유해조수가 검출된 시간을 선택하면 해당 영상 파일을 재생
④ 출현 기록 영상 플레이어
1.팬틸트 카메라 디바이스 선택
2.출현 기록 리스트 중 조회하고 싶은 시간을 선택
3.녹화 기록 영상 플레이어를 통해 기록 시청
데이터 수집 및 라벨링
개체 인식 및 추적 모델 구축
2. 팬틸트 카메라 APP 개발 및 딥러닝 성능개선 (2주차 ~ 3주차)
구분
역할
이무봉, 박민재
Epoch 및 batch size 등 파라미터 조절 및 클래스 추가 등 방법을 통한 성능 개선
김태헌
팬틸트 카메라용 GUI 개발: PyQt 내에서 실시간 영상과 딥러닝 모델 통합
홍석진
DB 구축
구분
역할
박민재
Epoch 및 batch size 등 파라미터 조절 및 클래스 추가 등 방법을 통한 성능 개선
이무봉
사용자 GUI 개발: DB로부터 검출 기록을 선택 후 이에 대한 비디오 플레이어 개발
김태헌
팬틸트 카메라용 GUI 개발: 객체 인식 정보 및 영상/이미지를 AWS RDS와 AWS S3에 업로드
사용자 프로그램과 팬틸트 카메라 APP 연동
코드 디버깅
팬틸트 카메라 APP
사용자 프로그램
결론
학습한 클래스의 종류가 적어 오버피팅 현상 발생.
학습한 클래스의 종류를 늘렸으나, 사용했던 공공 데이터셋의 품질이 좋지 않았기 때문인지 마찬가지로 현상 발생.
다양한 클래스와 많은 데이터셋의 수가 중요하지만, 데이터 품질이 모델에 가장 큰 영향을 끼친다.
아쉬운 점
Jetson Nano와 서보모터를 사용하여 개발하려고 했으나 디바이스의 Ubuntu와 Python 버전과 YOLOv8의 최소 요구사항 문제로 구현을 하지 못한 점.
DeepSORT, IOU Tracker, Kalman Filter와 같은 추적 알고리즘을 구현 및 적용하지 못한 점.
colab 보다 노트북이 2.5배 빨랐다 !
적합한 라벨링 기준 !