66yurimi99 / Z-ERO

졸음 운전 사고 방지를 위한 DMS 시스템과 자율주행 시스템(ZERO; Zㅔ발 Eyes Re-Open)
0 stars 0 forks source link

Feat: [FCA] Object Detection을 위한 AI Custom Model 트레이닝 #25

Closed YuNayeong closed 1 year ago

YuNayeong commented 1 year ago

Description

object detection을 위한 custom model training에 대한 내용입니다.

Todo

2차 (batch 16, epochs 600로 진행, early stop으로 종료) $ python train.py --batch 16 --epochs 300 --data ./cvat/custom.yaml --weights [yolo5모델.pt -> yolov5s]

- 테스트 (val.py)

$ python val.py --task 'test' --data ./cvat/custom.yaml --weights ./runs/train/[best.pt 경로]/ --save-txt

- [x] 트레이닝 모델 성능 비교
-  트레이닝 모델 테스트 결과 비교

- [x] Model Export
- 최종 모델 선택 : 2차 트레이닝 모델 사용 결정

- [x] opencv 사용을 위한 onnx 포맷으로 변경

$ python export.py --weights ./runs/train/exp9/weights/best.pt --include torchscript onnx

<br>

## 산출물

- 1차 트레이닝 테스트 결과
  ![val_batch0_pred](https://github.com/66yurimi99/Z-ERO/assets/147594641/3396cbe0-6a76-4207-bb17-30d960496207)

- 2차 트레이닝 테스트 결과

  ![val_batch0_pred](https://github.com/66yurimi99/Z-ERO/assets/147594641/e984bbca-af4d-4bed-bb8b-1762ed604367)

- 최종 모델
 (yolo format) [custom_model_yolov5s.zip](https://github.com/66yurimi99/Z-ERO/files/13475015/custom_model_yolov5s.zip)
  (onnx format) [best_onnx.zip](https://github.com/66yurimi99/Z-ERO/files/13475845/best_onnx.zip)

<br>

## 참고자료

- Problem GPU Out of Memory
  해결방법 1
  : batch size 줄이기

--batch 32 -> --batch 16


- 모델 성능 지표
  [1] https://en.wikipedia.org/wiki/Receiver_operating_characteristic
  [2] https://cosmiccoding.com.au/tutorials/pr_vs_roc_curves/
  [3] https://ai-com.tistory.com/entry/ML-%EB%B6%84%EB%A5%98-%EC%84%B1%EB%8A%A5-%EC%A7%80%ED%91%9C-Precision%EC%A0%95%EB%B0%80%EB%8F%84-Recall%EC%9E%AC%ED%98%84%EC%9C%A8
- yolo -> onnx export.py
  https://github.com/ultralytics/yolov5/blob/master/export.py