Custom data 를 사용해서 yolov8 model 을 돌려보았는데, 파라미터들을 변경하면 어떻게 변할지 궁금해서 실험해보았다.
data set 으로는 라바콘 red,yellow,blue 세가지 label 을 돌려보았다.
명령어
yolo task=detect mode=train data=C:\Univercity\2024\Summer_vacation\Basic_yolov8\ultralytics\ultralytics\cfg\datasets\data.yaml model=yolov8n.pt <예:epochs=100 >
Basic_아무런 변경 x
Model summary (fused): 168 layers, 3006233 parameters, 0 gradients, 8.1 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 13/13 [00:04
all 400 6684 0.958 0.911 0.958 0.733
b 400 2182 0.955 0.942 0.974 0.771
y 400 2439 0.962 0.948 0.972 0.788
r 400 2063 0.956 0.845 0.927 0.64
Speed: 0.2ms preprocess, 1.7ms inference, 0.0ms loss, 0.7ms postprocess per image
Results saved to runs\detect\train3
하이퍼 파라미터
default.yaml 참고
Image_size 변경 (800)
본인 데이터 셋은 크기가 작은 라바콘으로만 이루어져 있기 때문에, 해상도를 높여서 진행해 주었다.
Model summary (fused): 168 layers, 3006233 parameters, 0 gradients, 8.1 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 13/13 [00:03
all 400 6684 0.962 0.936 0.969 0.751
b 400 2182 0.955 0.956 0.98 0.782
y 400 2439 0.969 0.964 0.98 0.803
r 400 2063 0.962 0.889 0.948 0.669
Speed: 0.3ms preprocess, 1.5ms inference, 0.0ms loss, 0.6ms postprocess per image
Results saved to runs\detect\train4
하이퍼 파라미터
default.yaml 참고 (imgsz 640 => 800)
- 최신 결과는 전반적으로 더 나은 성능을 보여주고 있으며, 특히 다양한 IoU 임계값에서의 mAP (mAP@0.5:0.95) 향상이 두드러진다.
- 'r' 클래스의 성능이 여전히 다른 클래스에 비해 낮지만, 이전 결과보다 개선되었다.
Image_size 변경 (800) & mixup 향상
본인 데이터 셋은 크기가 작은 라바콘으로만 이루어져 있기 때문에, 해상도를 높여서 진행해 주었다. 또한 red 라바콘 데이터가 현저히 작기 때문에 작은 객체나 불균형한 클래스에 도움을 주기 위해 mixup 을 0.2 로 설정해주었다.
Model summary (fused): 168 layers, 3006233 parameters, 0 gradients, 8.1 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 13/13 [00:04
all 400 6684 0.965 0.93 0.972 0.749
b 400 2182 0.958 0.943 0.981 0.782
y 400 2439 0.973 0.961 0.981 0.8
r 400 2063 0.964 0.887 0.954 0.665
Speed: 0.4ms preprocess, 1.6ms inference, 0.0ms loss, 0.7ms postprocess per image
Results saved to runs\detect\train5
default.yaml 참고 (imgsz 640 => 800, mixup 0.0 => 0.2)
현재 성능은 이전 성능과 비교해 약간의 개선이 이루어졌지만, 큰 차이는 없다. 전체적으로 보면 모델이 안정적인 성능을 보이고 있다.
Image_size 변경 (800) & cls 변경
간 콘이 상대적으로 적으므로, 해당 클래스에 대한 손실 가중치를 높이는 것을 고려해보았다.
Model summary (fused): 168 layers, 3006233 parameters, 0 gradients, 8.1 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 13/13 [00:04
all 400 6684 0.965 0.935 0.971 0.75
b 400 2182 0.958 0.95 0.978 0.781
y 400 2439 0.971 0.964 0.982 0.802
r 400 2063 0.964 0.89 0.954 0.667
Speed: 0.3ms preprocess, 1.6ms inference, 0.0ms loss, 0.6ms postprocess per image
Results saved to runs\detect\train6
default.yaml 참고 (imgsz 640 => 800, cls 0.5 => 0.7)
이번 결과는 전반적으로 우수한 성능을 나타내며, 특히 'b'와 'y' 클래스에서 강력한 성능을 보이고 있다. 'r' 클래스의 성능이 상대적으로 낮지만, 그래도 전체적으로 모델이 잘 학습되었음을 알 수 있다.
Image_size 변경 (800) & cls 변경 & IoU
객체 간 겹침이 많다면 IoU 임계값을 낮추어 탐지율을 높여보았다.
Model summary (fused): 168 layers, 3006233 parameters, 0 gradients, 8.1 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 13/13 [00:04
all 400 6684 0.968 0.937 0.971 0.751
b 400 2182 0.96 0.951 0.977 0.782
y 400 2439 0.974 0.965 0.983 0.803
r 400 2063 0.969 0.896 0.955 0.669
Speed: 0.4ms preprocess, 2.5ms inference, 0.0ms loss, 0.7ms postprocess per image
Results saved to runs\detect\train7
default.yaml 참고 (imgsz 640 => 800, cls 0.5 => 0.7 , iou 0.7 => 0.6)
이번 결과는 전반적으로 성능이 약간 향상되었다. 특히, Precision이 모든 클래스에서 개선되었다.
'r' 클래스는 여전히 다른 클래스에 비해 성능이 낮지만, 꾸준히 개선되고 있다.
Image_size 변경 (800) & cls 변경 & IoU & mosaic
default.yaml 참고 (imgsz 640 => 800, cls 0.5 => 0.7 , iou 0.7 => 0.6 , mosaic 1.0 => 0.8)
'Vision_ > Object Detection' 카테고리의 다른 글
Yolov8_커스텀 데이터 학습(개발환경 구축)_1 (1) | 2024.04.01 |
---|---|
Object Detection - yolov7 (GPU로 학습) (4) | 2024.01.04 |
이미지 라벨링 2nd. (labeling) (4) | 2024.01.04 |
이미지 라벨링 1st. (환경세팅) (0) | 2024.01.04 |