ultralytics / ultralytics

NEW - YOLOv8 πŸš€ in PyTorch > ONNX > OpenVINO > CoreML > TFLite
https://docs.ultralytics.com
GNU Affero General Public License v3.0
24.46k stars 4.86k forks source link

YOLOv5 or YOLOv8 for color recognition of small targets #12733

Open smallMantou opened 2 weeks ago

smallMantou commented 2 weeks ago

Search before asking

Question

How to improve the model to recognize different colors of droplets (circles) with the same shape and better recognition performance by choosing yolov8 or yolov5.

11

Additional

No response

github-actions[bot] commented 2 weeks ago

πŸ‘‹ Hello @smallMantou, thank you for your interest in Ultralytics YOLOv8 πŸš€! We recommend a visit to the Docs for new users where you can find many Python and CLI usage examples and where many of the most common questions may already be answered.

If this is a πŸ› Bug Report, please provide a minimum reproducible example to help us debug it.

If this is a custom training ❓ Question, please provide as much information as possible, including dataset image examples and training logs, and verify you are following our Tips for Best Training Results.

Join the vibrant Ultralytics Discord 🎧 community for real-time conversations and collaborations. This platform offers a perfect space to inquire, showcase your work, and connect with fellow Ultralytics users.

Install

Pip install the ultralytics package including all requirements in a Python>=3.8 environment with PyTorch>=1.8.

pip install ultralytics

Environments

YOLOv8 may be run in any of the following up-to-date verified environments (with all dependencies including CUDA/CUDNN, Python and PyTorch preinstalled):

Status

Ultralytics CI

If this badge is green, all Ultralytics CI tests are currently passing. CI tests verify correct operation of all YOLOv8 Modes and Tasks on macOS, Windows, and Ubuntu every 24 hours and on every commit.

glenn-jocher commented 2 weeks ago

For recognizing different colors of small targets like droplets, YOLOv8 would be a better choice due to its improved architecture, which generally offers better performance, especially for tasks involving small or detailed object detection.

You should focus on training your model with a well-labeled dataset where droplets are accurately annotated with color labels. Here's a simple example of how you might set up your model for training with YOLOv8:

yolo detect train data=droplets.yaml model=yolov8n.yaml epochs=100 imgsz=640

Ensure your droplets.yaml includes accurate path settings and that each droplet color is a separate class if they need individual recognition. This will help your YOLOv8 model learn to distinguish between different colors more effectively. 🎨

Feel free to experiment with different configurations and hyperparameters to optimize detection performance.

smallMantou commented 2 weeks ago

Thank you for your help. Do I need to set the hyperparameter hsv to 0 due to the small color difference between my different droplets.

glenn-jocher commented 2 weeks ago

@smallMantou hello!

Setting the hsv_h, hsv_s, and hsv_v hyperparameters to 0 will effectively disable color augmentation during training, which might be beneficial if the color distinction between droplets is crucial and subtle. However, it's important to carefully consider this because color augmentation can also help prevent overfitting by providing variety in training data.

You might want to experiment with low values first before turning it off entirely. Here’s how you can adjust these settings in your .yaml config file:

hsv_h: 0.1  # adjust the hue by a small percentage
hsv_s: 0.1  # adjust the saturation by a small percentage
hsv_v: 0.1  # adjust the value by a small percentage

Try different values and see which offers the best performance! 😊