I merged three data sets and the results are no satisfactory

I new to this so I trained a YOLOv8 model on my ROAM3-Combined dataset, which merges three datasets: bird_nest.yolov8 (for detecting birds and nests), veg.yolov8 (for detecting vegetation), and Pole Segment.yolov8 (for pole segmentation). However, the model only performs well when tested on images from one dataset at a time. For example, it accurately detects birds and nests when tested on bird_nest.yolov8 images, vegetation on veg.yolov8 images, or pole segments on Pole Segment.yolov8 images. When I test it on a mixed dataset or real-world images containing all three types of objects, the model tends to focus on detecting only one category (e.g., vegetation) and ignores the others, seemingly picking the most “convenient” class to predict. I need the model to simultaneously detect and segment poles, detect vegetation, and detect birds and nests in the same image with high accuracy. How can I solve this issue?

  • Project Type: Object Detection + Segmentation (multi-class, multi-task)
  • Operating System & Browser: Windows / Google Chrome
  • Project Universe Link or Workspace/Project ID: Sign in to Roboflow

Hi @Abdullah_Aljunaibi!
First off, welcome to the Roboflow Community! In looking at your dataset, you have a great start. There is a golden rule of Computer Vision that you should keep in mind as you continue building out your project.

  • Your training data should look like your production data.

Right now, your dataset has a mix of close up pictures of birds, and zoomed out pictures of landscapes. Given this, your model will do an excellent job classifying zoomed in pictures of birds, but it will struggle if the bird is at distance in a tree.

My advice is to determine what your production data will look like, and then use similar looking data for training. For example, if you want to classify birds at a distance in trees, then your training data should be birds at a distance in trees.

Happy to advise in any further way, happy building!!