优秘智能 · 内容中心

vision-understanding ·

yolov5

Ultralytics YOLOv5 in PyTorch for object detection, instance segmentation, classification, training, and export.

Ultralytics YOLO banner

[中文](https://docs.ultralytics.com/zh) | [한국어](https://docs.ultralytics.com/ko) | [日本語](https://docs.ultralytics.com/ja) | [Русский](https://docs.ultralytics.com/ru) | [Deutsch](https://docs.ultralytics.com/de) | [Français](https://docs.ultralytics.com/fr) | [Español](https://docs.ultralytics.com/es) | [Português](https://docs.ultralytics.com/pt) | [Türkçe](https://docs.ultralytics.com/tr) | [Tiếng Việt](https://docs.ultralytics.com/vi) | [العربية](https://docs.ultralytics.com/ar)
YOLOv5 CI Testing Docker Pulls Discord Ultralytics Forums Ultralytics Reddit
Run on Gradient Open In Colab Open In Kaggle

Ultralytics YOLOv5 🚀 is a fast, accurate, and easy-to-use computer vision model developed by [Ultralytics](https://www.ultralytics.com/). Based on the [PyTorch](https://pytorch.org/) framework, YOLOv5 is renowned for its speed, accuracy, and simplicity. It incorporates insights and best practices from extensive research and development, making it a popular and reliable choice for a wide range of vision AI tasks, including [object detection](https://docs.ultralytics.com/tasks/detect), [image segmentation](https://docs.ultralytics.com/tasks/segment), and [image classification](https://docs.ultralytics.com/tasks/classify). We hope the resources here help you get the most out of YOLOv5. Please browse the [YOLOv5 Docs](https://docs.ultralytics.com/yolov5) for detailed information, raise an issue on [GitHub](https://github.com/ultralytics/yolov5/issues/new/choose) for support, and join our [Discord community](https://discord.com/invite/ultralytics) for questions and discussions! To request an Enterprise License, please complete the form at [Ultralytics Licensing](https://www.ultralytics.com/license).
Ultralytics GitHub space Ultralytics LinkedIn space Ultralytics Twitter space Ultralytics YouTube space Ultralytics TikTok space Ultralytics BiliBili space Ultralytics Discord

## 🚀 Explore the Ultralytics YOLO Ecosystem YOLOv5 is a mature, production-proven model that remains an excellent choice for fast and reliable [object detection](https://docs.ultralytics.com/tasks/detect), [instance segmentation](https://docs.ultralytics.com/tasks/segment), and [image classification](https://docs.ultralytics.com/tasks/classify). If your project calls for the newest architectures, additional tasks such as [pose estimation](https://docs.ultralytics.com/tasks/pose) and [oriented object detection (OBB)](https://docs.ultralytics.com/tasks/obb), or a unified Python and CLI interface, the actively maintained [`ultralytics`](https://github.com/ultralytics/ultralytics) package brings the latest [Ultralytics YOLO models](https://docs.ultralytics.com/models) together in one place. Explore the [Ultralytics Docs](https://docs.ultralytics.com/) to find the best fit for your use case. ```bash # Install the ultralytics package for the latest Ultralytics YOLO models pip install ultralytics ```
Ultralytics YOLO performance comparison
## 📚 Documentation See the [YOLOv5 Docs](https://docs.ultralytics.com/yolov5) for full documentation on training, testing, and deployment. See below for quickstart examples. Install Clone the repository and install dependencies in a [**Python>=3.8.0**](https://www.python.org/) environment. Ensure you have [**PyTorch>=1.8**](https://pytorch.org/get-started/locally/) installed. ```bash # Clone the YOLOv5 repository git clone https://github.com/ultralytics/yolov5 # Navigate to the cloned directory cd yolov5 # Install required packages pip install -r requirements.txt ``` Inference with PyTorch Hub Use YOLOv5 via [PyTorch Hub](https://docs.ultralytics.com/yolov5/tutorials/pytorch_hub_model_loading) for inference. [Models](https://github.com/ultralytics/yolov5/tree/master/models) are automatically downloaded from the latest YOLOv5 [release](https://github.com/ultralytics/yolov5/releases). ```python import torch # Load a YOLOv5 model (options: yolov5n, yolov5s, yolov5m, yolov5l, yolov5x) model = torch.hub.load("ultralytics/yolov5", "yolov5s") # Default: yolov5s # Define the input image source (URL, local file, PIL image, OpenCV frame, numpy array, or list) img = "https://ultralytics.com/images/zidane.jpg" # Example image # Perform inference (handles batching, resizing, normalization automatically) results = model(img) # Process the results (options: .print(), .show(), .save(), .crop(), .pandas()) results.print() # Print results to console results.show() # Display results in a window results.save() # Save results to runs/detect/exp ``` Inference with detect.py The `detect.py` script runs inference on various sources. It automatically downloads [models](https://github.com/ultralytics/yolov5/tree/master/models) from the latest YOLOv5 [release](https://github.com/ultralytics/yolov5/releases) and saves the results to the `runs/detect` directory. ```bash # Run inference using a webcam python detect.py --weights yolov5s.pt --source 0 # Run inference on a local image file python detect.py --weights yolov5s.pt --source img.jpg # Run inference on a local video file python detect.py --weights yolov5s.pt --source vid.mp4 # Run inference on a screen capture python detect.py --weights yolov5s.pt --source screen # Run inference on a directory of images python detect.py --weights yolov5s.pt --source path/to/images/ # Run inference on a text file listing image paths python detect.py --weights yolov5s.pt --source list.txt # Run inference on a text file listing stream URLs python detect.py --weights yolov5s.pt --source list.streams # Run inference using a glob pattern for images python detect.py --weights yolov5s.pt --source 'path/to/*.jpg' # Run inference on a YouTube video URL python detect.py --weights yolov5s.pt --source 'https://youtu.be/LNwODJXcvt4' # Run inference on an RTSP, RTMP, or HTTP stream python detect.py --weights yolov5s.pt --source 'rtsp://example.com/media.mp4' ``` Training The commands below demonstrate how to reproduce YOLOv5 [COCO dataset](https://docs.ultralytics.com/datasets/detect/coco) results. Both [models](https://github.com/ultralytics/yolov5/tree/master/models) and [datasets](https://github.com/ultralytics/yolov5/tree/master/data) are downloaded automatically from the latest YOLOv5 [release](https://github.com/ultralytics/yolov5/releases). Training times for YOLOv5n/s/m/l/x are approximately 1/2/4/6/8 days on a single [NVIDIA V100 GPU](https://www.nvidia.com/en-us/data-center/v100/). Using [Multi-GPU training](https://docs.ultralytics.com/yolov5/tutorials/multi_gpu_training) can significantly reduce training time. Use the largest `--batch-size` your hardware allows, or use `--batch-size -1` for YOLOv5 [AutoBatch](https://github.com/ultralytics/yolov5/pull/5092). The batch sizes shown below are for V100-16GB GPUs. ```bash # Train YOLOv5n on COCO for 300 epochs python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 128 # Train YOLOv5s on COCO for 300 epochs python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5s.yaml --batch-size 64 # Train YOLOv5m on COCO for 300 epochs python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5m.yaml --batch-size 40 # Train YOLOv5l on COCO for 300 epochs python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5l.yaml --batch-size 24 # Train YOLOv5x on COCO for 300 epochs python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5x.yaml --batch-size 16 ``` YOLOv5 Training Results Tutorials - **[Train Custom Data](https://docs.ultralytics.com/yolov5/tutorials/train_custom_data)** 🚀 **RECOMMENDED**: Learn how to train YOLOv5 on your own datasets. - **[Tips for Best Training Results](https://docs.ultralytics.com/guides/model-training-tips)** ☘️: Improve your model's performance with expert tips. - **[Multi-GPU Training](https://docs.ultralytics.com/yolov5/tutorials/multi_gpu_training)**: Speed up training using multiple GPUs. - **[PyTorch Hub Integration](https://docs.ultralytics.com/yolov5/tutorials/pytorch_hub_model_loading)**: Easily load models using PyTorch Hub. - **[Model Export (TFLite, ONNX, CoreML, TensorRT)](https://docs.ultralytics.com/yolov5/tutorials/model_export)** 🚀: Convert your models to various deployment formats like [ONNX](https://onnx.ai/) or [TensorRT](https://developer.nvidia.com/tensorrt). - **[NVIDIA Jetson Deployment](https://docs.ultralytics.com/guides/nvidia-jetson)**: Deploy YOLOv5 on [NVIDIA Jetson](https://developer.nvidia.com/embedded-computing) devices. - **[Test-Time Augmentation (TTA)](https://docs.ultralytics.com/yolov5/tutorials/test_time_augmentation)**: Enhance prediction accuracy with TTA. - **[Model Ensembling](https://docs.ultralytics.com/yolov5/tutorials/model_ensembling)**: Combine multiple models for better performance. - **[Model Pruning/Sparsity](https://docs.ultralytics.com/yolov5/tutorials/model_pruning_and_sparsity)**: Optimize models for size and speed. - **[Hyperparameter Evolution](https://docs.ultralytics.com/yolov5/tutorials/hyperparameter_evolution)**: Automatically find the best training hyperparameters. - **[Transfer Learning with Frozen Layers](https://docs.ultralytics.com/yolov5/tutorials/transfer_learning_with_frozen_layers)**: Adapt pretrained models to new tasks efficiently using [transfer learning](https://www.ultralytics.com/glossary/transfer-learning). - **[Architecture Summary](https://docs.ultralytics.com/yolov5/tutorials/architecture_description)**: Understand the YOLOv5 model architecture. - **[Ultralytics Platform Training](https://platform.ultralytics.com)** 🚀 **RECOMMENDED**: Train and deploy YOLO models using Ultralytics Platform. - **[ClearML Logging](https://docs.ultralytics.com/yolov5/tutorials/clearml_logging_integration)**: Integrate with [ClearML](https://clear.ml/) for experiment tracking. - **[Neural Magic DeepSparse Integration](https://docs.ultralytics.com/yolov5/tutorials/neural_magic_pruning_quantization)**: Accelerate inference with DeepSparse. - **[Comet Logging](https://docs.ultralytics.com/yolov5/tutorials/comet_logging_integration)**: Log experiments using [Comet ML](https://www.comet.com/site/). ## 🧩 Integrations Our key integrations with leading AI platforms extend the functionality of Ultralytics' offerings, enhancing tasks like dataset labeling, training, visualization, and model management. Discover how Ultralytics, in collaboration with partners like [Weights & Biases](https://docs.ultralytics.com/integrations/weights-biases), [Comet ML](https://docs.ultralytics.com/integrations/comet), [Roboflow](https://docs.ultralytics.com/integrations/roboflow), and [Intel OpenVINO](https://docs.ultralytics.com/integrations/openvino), can optimize your AI workflow. Explore more at [Ultralytics Integrations](https://docs.ultralytics.com/integrations). Ultralytics active learning integrations ## 🤔 Why YOLOv5? YOLOv5 is designed for simplicity and ease of use. We prioritize real-world performance and accessibility.

YOLOv5 Performance Chart

YOLOv5-P5 640 Figure

YOLOv5 P5 640 Performance Chart

Figure Notes - **COCO AP val** denotes the [mean Average Precision (mAP)](https://www.ultralytics.com/glossary/mean-average-precision-map) at [Intersection over Union (IoU)](https://www.ultralytics.com/glossary/intersection-over-union-iou) thresholds from 0.5 to 0.95, measured on the 5,000-image [COCO val2017 dataset](https://docs.ultralytics.com/datasets/detect/coco) across various inference sizes (256 to 1536 pixels). - **GPU Speed** measures the average inference time per image on the [COCO val2017 dataset](https://docs.ultralytics.com/datasets/detect/coco) using an [AWS p3.2xlarge V100 instance](https://aws.amazon.com/ec2/instance-types/p4/) with a batch size of 32. - **EfficientDet** data is sourced from the [google/automl repository](https://github.com/google/automl) at batch size 8. - **Reproduce** these results using the command: `python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt` ### Pretrained Checkpoints This table shows the performance metrics for various YOLOv5 models trained on the COCO dataset. | Model | Size
(pixels) | mAPval
50-95 | mAPval
50 | Speed
CPU b1
(ms) | Speed
V100 b1
(ms) | Speed
V100 b32
(ms) | Params
(M) | FLOPs
@640 (B) | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------- | -------------------- | ----------------- | ---------------------------- | ----------------------------- | ------------------------------ | ------------------ | ---------------------- | | [YOLOv5n](https://platform.ultralytics.com/ultralytics/yolov5/yolov5nu) | 640 | 28.0 | 45.7 | **45** | **6.3** | **0.6** | **1.9** | **4.5** | | [YOLOv5s](https://platform.ultralytics.com/ultralytics/yolov5/yolov5su) | 640 | 37.4 | 56.8 | 98 | 6.4 | 0.9 | 7.2 | 16.5 | | [YOLOv5m](https://platform.ultralytics.com/ultralytics/yolov5/yolov5mu) | 640 | 45.4 | 64.1 | 224 | 8.2 | 1.7

原始来源:https://github.com/ultralytics/yolov5#readme