YOLO 트레이닝, roboflow
라벨링하는 방법으로 라벨미도 있지만 roboflow가 편리하고 자동화되어있다.
동영상에서 이미지를 간격마다 추출하거나, 트레이닝 셋을 추가로 만들어내는 작업이 가능하다.
Roboflow: Give your software the power to see objects in images and video
With just a few dozen example images, you can train a working, state-of-the-art computer vision model in less than 24 hours.
roboflow.com
roboflow에서 프로젝트를 만든 후 파일을 업로드
파일을 올린 후 save and continue를 클릭
Augmentation은 데이터 양을 늘려준다. 단 Test set 에 한정되어 있다.
다운로드 코드를 선택하면
아래와 같은 코드를 카피할 수 있게 해준다.
!pip install roboflow
from roboflow import Roboflow
rf = Roboflow(api_key="Vm4xxxxxxX")
project = rf.workspace("oxxxxs").project("potholedetectionyolov8-su8fw")
dataset = project.version(1).download("yolov5")
트레이닝을 시작해본다.
epochs=10은 좀 적다고 볼 수 있으나 시간상
- Model Summary:
- 218 layers: 모델은 총 218개의 계층(layer)으로 구성되어 있습니다.
- 25,840,339 parameters: 모델은 약 2580만개의 파라미터를 가지고 있습니다.
- 0 gradients: 그라디언트는 0입니다, 이는 학습 중인 모델에서 가중치가 업데이트되지 않음을 의미할 수 있습니다.
- 78.7 GFLOPs: 모델은 78.7 Giga Floating Point Operations Per Second(십억 번의 부동 소수점 연산/초)를 수행합니다.
- Class:
- Images: 135개의 이미지를 테스트에 사용했습니다.
- Instances: 테스트 이미지들은 총 424개의 객체 인스턴스를 포함하고 있습니다.
- Box: 다음의 값들은 bounding box 예측의 평가 메트릭을 나타냅니다.
- P (Precision): 0.621, 모델이 참으로 예측한 것 중에 실제로 참인 비율입니다.
- R (Recall): 0.427, 실제 참인 것 중에서 모델이 참으로 예측한 비율입니다.
- mAP50: 0.488, mAP(mean Average Precision)는 모델의 평균 정밀도를 나타내며, 이 경우 IoU(Intersection over Union)가 0.50 이상인 예측에 대한 것입니다.
- mAP50-95: 0.222, 이것은 IoU 임계값을 0.50에서 0.95까지 0.05의 간격으로 증가시키면서 계산한 mAP의 평균입니다.
- Speed:
- 3.0ms pre-process: 각 이미지를 전처리하는데 평균적으로 3.0밀리초가 소요되었습니다.
- 11.1ms inference: 모델이 각 이미지에 대한 예측을 생성하는데 평균적으로 11.1밀리초가 소요되었습니다.
- 0.0ms loss: 손실 계산에 0.0밀리초가 소요되었습니다.
- 4.2ms post-process: 각 이미지를 후처리하는데 평균적으로 4.2밀리초가 소요되었습니다.
트레이닝 후의 결과들
validation
best 모델을 적용