ultralytics / ultralytics

NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite
https://docs.ultralytics.com
GNU Affero General Public License v3.0
25.92k stars 5.16k forks source link

blurry details after resizing images to 640x360 #13539

Open Avv22 opened 3 weeks ago

Avv22 commented 3 weeks ago

Search before asking

Question

YOLOv8 will resize the input image such that the longest side is set to 640 while maintaining the original aspect ratio of the image. Therefore, if you provide an image with dimensions of 1920x1080, YOLOv8 will resize it to 640x360.

After that, I checked the training images and the details I want to catch now are blurry compared to the original. Any suggestion please?

Additional

No response

ixez commented 3 weeks ago

It's YOLO, you only look once. So how much information you look once depends on how large the patch size is. Simply change imgsz for training, but also be aware of the GPU memory limit.

yolo detect train model=yolov8m.pt data=dataset.yaml imgsz=1088

glenn-jocher commented 3 weeks ago

@ixez hi there!

Thank you for reaching out. You're absolutely right that resizing images can sometimes lead to a loss of detail, especially when the target size is significantly smaller than the original. Here are a few suggestions to help mitigate this issue:

  1. Increase Image Size (imgsz): As you mentioned, increasing the imgsz parameter can help preserve more details. However, be mindful of your GPU memory limits. You can try a larger size like 1088 or even higher if your hardware allows it:

    yolo detect train model=yolov8m.pt data=dataset.yaml imgsz=1088
  2. Data Augmentation: Sometimes, applying data augmentation techniques can help the model learn to recognize objects even when details are slightly blurred. Techniques like sharpening, contrast adjustment, and noise addition can be beneficial.

  3. High-Resolution Training: If GPU memory is a constraint, consider training on high-resolution images and then using a lower resolution for inference. This way, the model learns from more detailed images.

  4. Multi-Scale Training: YOLOv8 supports multi-scale training, which can help the model generalize better across different image sizes. You can enable this by setting multi_scale=True in your training command.

  5. Check Image Quality: Ensure that the images in your dataset are of high quality and properly annotated. Sometimes, the issue might be with the dataset itself rather than the resizing process.

If you continue to face issues, please provide a minimum reproducible example so we can investigate further. You can find more details on creating a reproducible example here.

Feel free to reach out if you have any more questions or need further assistance. Happy training! 😊