Vision_/Object Detection

YOLOV8 성능_비교

대장장ㅇi 2024. 8. 28. 10:12

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)