AIFFELTHON 기록

yoon·2022년 5월 18일
0

주제: Jetson Nano를 활용한 알약 탐지

  • 이전 까지

    • https://github.com/ultralytics/yolov5 를 clone하여 yolov5 모델 수행'
    • 기존 데이터셋인 10개 클래스, 각 클래스 당 200장 총 2000장에서 train set은 클래스 당 500장, validation set은 클래스 당 110장 씩 총 6100장 구축
    • 따로 mAP를 기록하지 않고 hyper parameter를 튜닝하고 수행하여 어떤 모델이 더 나은 성능을 보이는지 확인할 수 없게 됨.
    • 팀원분의 yolo 모델에서는 알약의 클래스를 잘 도출하였지만 내가 수행한 모델에서는 하나의 클래스만 계속 출력되는 문제 발생: 생각되는 원인으로는,
      • 알약의 모양은 거의 비슷하기 때문에 feature를 잘 뽑아내기 위해서는 기존에 사용한 YOLOv5s 모델이 너무 가볍다: mAP를 따로 기록하지 않아 확인 불가능
      • 특정 클래스에 과대 적합: 이 부분 또한 학습 결과의 정량적 수치를 기록하지 않아 확인 불가능
    • 모델의 차이와 학습 결과의 정량적 평가를 위해 mAP 테이블 기록의 필요성을 느끼게 되었다.
  • 22.05.19

    • 2차 멘토링
      • mAP 기록의 중요성 강조하심
      • YOLOv5n, 즉 s 모델보다 더 작은 tiny 모델부터 수행하며 성능의 차이를 정량적으로 기록할 것.
      • 학습 시간이 너무 오래 걸리는 것(기존 6100장 데이터셋은 GCP 환경에서 epoch 50을 수행하는 데에 약 30시간 소요): 데이터셋을 줄이는 것을 제안하심. train set은 클래스 당 250장, validation set은 클래스 당 55장씩 기존 데이터셋에서 절반으로 줄임
    • mAP 테이블 만듦
    • YOLOv5n 모델로 베이스라인 모델 수행 시작
    • data.yaml의 nc:10, yolov5n.yaml에 default로 저장된 nc:80(coco dataset) 그대로 두고 수행. 그 외에 하이퍼 파라미터는 default, image size: 640, batch size: 16으로 수행
    • 특정 epoch 당 mAP 테이블 기록을 위한 학습 시작
    • 학습 중 발생한 warning: corrupt JPEG restored and saved 해결을 위해 기존 구글 드라이브로 데이터셋을 바로 업로드하는 방식에서 roboflow를 통해 데이터셋 생성 후 업로드 하는 방식 시도.(업로드 중. 결과는 아직)
    • 업로드 후 작성: roboflow에서 구축한 데이터셋으로 학습을 진행 하니까 corrupt 어쩌구 경고가 사라졌고 epoch 속도가 엄청 빨라짐.(1 epoch 당 약 42초!!)
profile
공부하자

0개의 댓글