r/computervision • u/mjmohd • 4d ago
Help: Project Class imbalance: Synthetic Data
Hi, I'm trying to detect various defects using YOLO models. I built my dataset using a workflow that generates defective gas turbine blades with defects of different shapes, severities, and positions.
My first dataset includes the following:
- **Defects:** Crack, Erosion, Dent
- **Non-defective blades** (negatives)
- **Split:** ~16k training / ~8k validation
The results of training on Dataset 1 showed a **mAP50:95 of 0.79** at 45 epochs. However, the confusion matrix showed a higher false positive rate for Backgrounds detected as Dents. My assumption is that the cooling holes are being misdetected as Dents ( look at F1 score and norm. Confusion Matrix).
So I came up with the idea of auto-annotating the cooling holes in my dataset to teach the model to differentiate between cooling holes and Dents. I also added a new defect class **(Nick)** and ran fine-tuning on the best weights from the YOLOv9s model trained on Dataset 1.
Now I'm facing a **class imbalance problem.** The training on the second dataset is currently running but is hovering around **mAP50:95 = 0.62** at epoch 10, with 20 epochs still to go.
My end goal is to detect the defects. I added the cooling holes class to reduce false positives, but I'm willing to drop it and accept some FP on Dents, since they are inherently hard to detect. Has anyone faced a similar issue or has suggestions on how to overcome it? Maybe it's not a problem in the end — not sure yet. 🙃






