목표
사전 학습된 YOLOv4 객체인식 모델을 사용하여 커스텀 데이터셋의 인퍼런스 결과를 학습 가능한 포맷으로 추출함
모델 및 데이터셋
모델
- Name: AI-Hub 정밀농업 농기계 자율주행 데이터
- Base Model: yolov4.conv.137
- Class Num: 6
- common_person : 농로 또는 작업지의 사람
- common_vehicle : 농로 또는 작업지의 위험객체(승용차, 트럭 등)
- common_rocks : 작업지 내 주행에 방해되는 특정 크기 이상의 돌 또는 바위
- common_vail : 수확이 완료된 볏짚의 더미
- common_tractor : 농로 또는 작업지의 위험 객체 (농기계)
- common_pole : 농로의 전봇대
학습 데이터 특징
- 해상도: 1920 x 1080 (FHD)
- 학습: 81171개
- 50px 미만의 작은 객체는 어노테이션 규칙에 의해 라벨링 하지 않음
데이터셋
- Name: Mobilus 경작지 촬영 데이터셋
- Resolution: 4k
Darknet Python 실행 환경 구축
Darknet 설치
Darknet 프레임워크는 python 스크립트를 포함하고 있으며, so
라이브러리 파일을 통해 스크립트를 실행할 수 있음
빌드의 편의를 위해 darknet_video.py
파일을 수정하여 사용
- (YOLO) YOLOv4 개발 환경 및 테스트
- 해당 내용을 참고하여 Darknet 설치 및 빌드
주의
Dakernet 설치 과정 중, MakeFile을 수정하는 과정에서 LIBSO = 1
로 세팅하여 so파일을 생성함
- GPU=1
- CUDNN=1
- CUDNN_HAFL=1
- OPENCV=1
- LIBSO=1
Darknet 스크립트 수정
dakrnet_video.py
스크립트를 수정하여 사용- drawing 함수 내 image를 저장하고, bbox를 좌표를 상대좌표로 변환하여 저장하는 코드 추가
Transclude of darknet_video(msk).py
실행
명령어
python3 darknet_video.py \
--weights dd_boundbox_rgb.weights \ # 모델
--config_file bb_rgb/bb_rgb.cfg \ # config file
--data_file bb_rgb/bb_rgb.data \ # data file
--save 5 \ # n 프레임 단위로 저장
--dont_show \ # display on/off
--input ../dataset/2024-04-18/DJI_20240418135035_0018_D.MP4 # 입력영상