목표

사전 학습된 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 파일을 수정하여 사용

주의

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 # 입력영상

결과


yoloDeepLearningObjectDetection