💡 Stuck at 43.2% mAP50 with YOLOv11 – Could It Be a Annotate Issue?

Hi everyone,
I’m working on a dataset of 932 images containing 4 classes: healthy leaf, healthy grape, frozen leaf, and frozen grape. The images were taken from different angles. In general:

  • Leaves are large and clearly visible,
  • Grapes are still in early growth stages and appear very small.

I trained a YOLOv11 model and even tried up to 10x augmentation, but the mAP50 is stuck around 43.2%, with only about a 2% improvement.

This made me wonder if the issue might be related to label quality, especially since the grapes are very small and might be inconsistently labeled or hard to detect.

I’d appreciate any feedback from those with experience:

  • How can I check if my labels are the root of the problem?
  • Are there any specific practices for labeling small objects?
  • Would you recommend any alternative models or preprocessing techniques for this kind of dataset?

I’ve attached one labeled image from each class for reference.

Thanks in advance for your insights! :folded_hands:

Which YOLO11 model? And is that box mAP or mask mAP?

It’s mask mAP50 with YOLOv11l-segmentation model.

What’s the box mAP?

%41.5 for box loss

More images should help. Use the model you already have trained to help speed up your annotations for additional images, but remember you’ll have to check/fix for errors or missed instances.

The distinction between good/bad (healthy/not-healthy) might be challenging for a model to detect. Given the photo you shared, I see 4 different highlights (colors). The good/bad leaf instances seem fairly distinct visually, so I don’t think those will be an issue (assuming all images are similar), however good/bad grape instances are more difficult to distinguish. Consider training for only the leaves and only the grapes classes separately. If the result from the leaves model is considerably better and the result from the grapes is considerably worse, it will likely point to the grapes being difficult to separate. You may also need to review your existing annotations to check for inconsistent labeling (good instances labeled bad or missed instances), as these could hurt performance as well.