ultralytics / yolov5

YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
https://docs.ultralytics.com
GNU Affero General Public License v3.0
50.27k stars 16.23k forks source link

Origin of the Zidane.jpg demo image #11834

Closed RapidEdgeAI closed 1 year ago

RapidEdgeAI commented 1 year ago

Search before asking

Question

Hi! I am porting Yolov5s v7.0 to multiple different edge AI accelerators. I am using Yolov5 because it is very user friendly. The code is well maintained, and you can find an answer for almost every upcoming question in the Github issues. I am using the Zidane.jpg image, that Ultralytics uses for their Yolov5 and Yolov8 demos to visually compare the original PyTorch FP32 and FP16 with the ported (and quantized) Yolov5s models. Zidane.jpg I think this image is an interesting example because Yolov5s v7.0 detects the tie of the right person but some quantized models, depending on the vendor, don't because the original Yolov5s is close to the 0.25 confidence NMS threshold.

My actual question: What is the original source of this image? I didn't find a source on your website. Did Ultralytics take the picture? I need to reference it in my master thesis.

Thank you very much. I hope you can help me.

Additional

By the way: Why doesn't export.py quantize Yolov5 to integer? I read in one issue that it hasn't been done because the accuracy loss is too high. But this isn't true. The mAP values are still fairly good although noticeable accuracy loss. Vendors like Xilinx have int8 Yolov5 in their modelzoo. There are some model architectures like EfficientNet that don't work well with post training quantization. But Yolov5 does very well. Quantizing Yolov5 might reduce the accuracy a little bit, but the speedup is significant, and the memory footprint is also reduced. This would make Yolov5 even more suitable for resource limited devices.

github-actions[bot] commented 1 year ago

👋 Hello @RapidEdgeAI, thank you for your interest in YOLOv5 🚀! Please visit our ⭐️ Tutorials to get started, where you can find quickstart guides for simple tasks like Custom Data Training all the way to advanced concepts like Hyperparameter Evolution.

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.

Requirements

Python>=3.7.0 with all requirements.txt installed including PyTorch>=1.7. To get started:

git clone https://github.com/ultralytics/yolov5  # clone
cd yolov5
pip install -r requirements.txt  # install

Environments

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

Status

YOLOv5 CI

If this badge is green, all YOLOv5 GitHub Actions Continuous Integration (CI) tests are currently passing. CI tests verify correct operation of YOLOv5 training, validation, inference, export and benchmarks on macOS, Windows, and Ubuntu every 24 hours and on every commit.

Introducing YOLOv8 🚀

We're excited to announce the launch of our latest state-of-the-art (SOTA) object detection model for 2023 - YOLOv8 🚀!

Designed to be fast, accurate, and easy to use, YOLOv8 is an ideal choice for a wide range of object detection, image segmentation and image classification tasks. With YOLOv8, you'll be able to quickly and accurately detect objects in real-time, streamline your workflows, and achieve new levels of accuracy in your projects.

Check out our YOLOv8 Docs for details and get started with:

pip install ultralytics
glenn-jocher commented 1 year ago

@RapidEdgeAI the Zidane.jpg image used in the YOLOv5 and YOLOv8 demos does not belong to Ultralytics. We do not have the information about the original source of the image. To properly reference the image in your master thesis, we recommend performing a reverse image search to find the original source and provide the appropriate citation.

Regarding the quantization of YOLOv5 to integer values in export.py, while it is technically possible to quantize YOLOv5 to integers, there are trade-offs to consider. The accuracy loss can be significant, impacting the model's ability to detect objects accurately. Although some vendors like Xilinx have provided int8 YOLOv5 models in their model zoo, it's important to note that their models may be specialized for their hardware.

Our goal is to provide a versatile and accurate object detection framework, and we want to ensure that models exported from YOLOv5 maintain the highest level of accuracy possible. While quantization can offer speed and memory benefits, it's important to evaluate the trade-offs and determine the best approach based on the specific requirements of your project.

Thank you for your valuable feedback and suggestions. We appreciate your interest in YOLOv5 and wish you success with your master thesis!

RapidEdgeAI commented 1 year ago

Hi Glen, thank you very much for the fast and helpful response. It is very helpful.

glenn-jocher commented 1 year ago

Hi @RapidEdgeAI,

You're welcome! I'm glad to hear that my response was helpful to you. If you have any more questions or need further assistance, feel free to ask. We're here to help!

Best, Glenn