[객체인식 & Depth Estimation 프로젝트] 4. YOLO v7 tiny 모델

happy_quokka·2024년 1월 29일
0

자율주행 프로젝트

목록 보기
10/15

1. YOLO v7 tiny 모델 선정 이유

  • https://github.com/WongKinYiu/yolov7
  • 최신 모델을 사용하여 학습해보고 싶어서 yolo v7 모델을 사용했다 (자이카에 탑재해야하기 때문에 가벼운 v7 tiny를 선택하였다)
  • yolo v3 모델도 학습하였지만 결과적으로 yolo v7 모델의 성능이 좋아서 자이카에 v7 모델을 탑재했다
  • v7에서 제공해주는 onnx 변환, tensorRT 변환 코드를 사용하여 tensorRT로 변환하고 자이카에 탑재했다

2. YOLO v7 전이학습

전이 학습을 위해 AiHub에서 제공하는 100만장 이미지와 총 2일간 tiny 모델 학습을 진행하였다

2-1. AiHub Dataset

  • ai-hub 사이트의 dataset을 다운받아서 사용
  • AIHub에서 신호등/도로표지판 인지 영상 데이터를 활용하여 모델 사전 학습 진행
  • 프로젝트 환경과 비슷한 표지판, 신호등 인지 데이터를 통해 적은 데이터로 좋은 성능을 위해 사전 작업을 수행하였다

2-2. hyper-parameter 설정

  • 기본적으로 YOLOv7이 제공하는 기본 파라미터를 사용
  • 데이터 증강(Data Augmentation)기법인 mixup을 사용하여 데이터 증강을 최대화 시킴
  • shear, flip과 같이 방향을 바꾸는 파라미터는 0으로 주어 좌,우 표지판의 방향을 유지하며 학습 진행
  • 교차 검증을 진행하며 best 모델 추출 (500에폭)

3. 학습 과정 및 결과

  • 사전 학습을 진행한 모델의 loss와 mAP 모두 준수한 성능을 확인함

  • 하지만 objectness에서는 loss가 오르는 모습은 라벨링 단계에서 ignore 클래스에 대해 명확한 기준을 정하지 못하고 라벨링을 진행하여 모델에 혼란을 야기함

  • 결과적으로 ignore을 제외한 모든 클래스를 잘 예측하는 모델을 구축함

  • 예측 결과를 보면 대부분 90% 이상 confidence score를 보이며 객체 탐지에 대한 좋은 정확도와 안정성을 확인할 수 있음
  • 또한, YOLOv7은 40에 가까운 FPS를 유지하며 기존 yolov3보다 대략 2~3배 높은 FPS 성능을 보여주며 실시간에 가까운 차선 인지와 객체 탐지가 가능함

0개의 댓글