Skip to content

Models Supported by Ultralytics

Welcome to Ultralytics' model documentation! We offer support for a wide range of models, each tailored to specific tasks like object detection, instance segmentation, image classification, pose estimation, and multi-object tracking. If you're interested in contributing your model architecture to Ultralytics, check out our Contributing Guide.

Here are some of the key models supported:

  1. YOLOv3: The third iteration of the YOLO model family, originally by Joseph Redmon, known for its efficient real-time object detection capabilities.
  2. YOLOv4: A darknet-native update to YOLOv3, released by Alexey Bochkovskiy in 2020.
  3. YOLOv5: An improved version of the YOLO architecture by Ultralytics, offering better performance and speed trade-offs compared to previous versions.
  4. YOLOv6: Released by Meituan in 2022, and in use in many of the company's autonomous delivery robots.
  5. YOLOv7: Updated YOLO models released in 2022 by the authors of YOLOv4.
  6. YOLOv8 NEW 🚀: The latest version of the YOLO family, featuring enhanced capabilities such as instance segmentation, pose/keypoints estimation, and classification.
  7. YOLOv9: An experimental model trained on the Ultralytics YOLOv5 codebase implementing Programmable Gradient Information (PGI).
  8. YOLOv10: By Tsinghua University, featuring NMS-free training and efficiency-accuracy driven architecture, delivering state-of-the-art performance and latency.
  9. Segment Anything Model (SAM): Meta's Segment Anything Model (SAM).
  10. Mobile Segment Anything Model (MobileSAM): MobileSAM for mobile applications, by Kyung Hee University.
  11. Fast Segment Anything Model (FastSAM): FastSAM by Image & Video Analysis Group, Institute of Automation, Chinese Academy of Sciences.
  12. YOLO-NAS: YOLO Neural Architecture Search (NAS) Models.
  13. Realtime Detection Transformers (RT-DETR): Baidu's PaddlePaddle Realtime Detection Transformer (RT-DETR) models.
  14. YOLO-World: Real-time Open Vocabulary Object Detection models from Tencent AI Lab.



Watch: Run Ultralytics YOLO models in just a few lines of code.

Getting Started: Usage Examples

This example provides simple YOLO training and inference examples. For full documentation on these and other modes see the Predict, Train, Val and Export docs pages.

Note the below example is for YOLOv8 Detect models for object detection. For additional supported tasks see the Segment, Classify and Pose docs.

Example

PyTorch pretrained *.pt models as well as configuration *.yaml files can be passed to the YOLO(), SAM(), NAS() and RTDETR() classes to create a model instance in Python:

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.pt")

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the YOLOv8n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

CLI commands are available to directly run the models:

# Load a COCO-pretrained YOLOv8n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv8n model and run inference on the 'bus.jpg' image
yolo predict model=yolov8n.pt source=path/to/bus.jpg

Contributing New Models

Interested in contributing your model to Ultralytics? Great! We're always open to expanding our model portfolio.

  1. Fork the Repository: Start by forking the Ultralytics GitHub repository.

  2. Clone Your Fork: Clone your fork to your local machine and create a new branch to work on.

  3. Implement Your Model: Add your model following the coding standards and guidelines provided in our Contributing Guide.

  4. Test Thoroughly: Make sure to test your model rigorously, both in isolation and as part of the pipeline.

  5. Create a Pull Request: Once you're satisfied with your model, create a pull request to the main repository for review.

  6. Code Review & Merging: After review, if your model meets our criteria, it will be merged into the main repository.

For detailed steps, consult our Contributing Guide.

FAQ

What are the key advantages of using Ultralytics YOLOv8 for object detection?

Ultralytics YOLOv8 offers enhanced capabilities such as real-time object detection, instance segmentation, pose estimation, and classification. Its optimized architecture ensures high-speed performance without sacrificing accuracy, making it ideal for a variety of applications. YOLOv8 also includes built-in compatibility with popular datasets and models, as detailed on the YOLOv8 documentation page.

How can I train a YOLOv8 model on custom data?

Training a YOLOv8 model on custom data can be easily accomplished using Ultralytics' libraries. Here's a quick example:

Example

from ultralytics import YOLO

# Load a YOLOv8n model
model = YOLO("yolov8n.pt")

# Train the model on custom dataset
results = model.train(data="custom_data.yaml", epochs=100, imgsz=640)
yolo train model=yolov8n.pt data='custom_data.yaml' epochs=100 imgsz=640

For more detailed instructions, visit the Train documentation page.

Which YOLO versions are supported by Ultralytics?

Ultralytics supports a comprehensive range of YOLO (You Only Look Once) versions from YOLOv3 to YOLOv10, along with models like NAS, SAM, and RT-DETR. Each version is optimized for various tasks such as detection, segmentation, and classification. For detailed information on each model, refer to the Models Supported by Ultralytics documentation.

Why should I use Ultralytics HUB for machine learning projects?

Ultralytics HUB provides a no-code, end-to-end platform for training, deploying, and managing YOLO models. It simplifies complex workflows, enabling users to focus on model performance and application. The HUB also offers cloud training capabilities, comprehensive dataset management, and user-friendly interfaces. Learn more about it on the Ultralytics HUB documentation page.

What types of tasks can YOLOv8 perform, and how does it compare to other YOLO versions?

YOLOv8 is a versatile model capable of performing tasks including object detection, instance segmentation, classification, and pose estimation. Compared to earlier versions like YOLOv3 and YOLOv4, YOLOv8 offers significant improvements in speed and accuracy due to its optimized architecture. For a deeper comparison, refer to the YOLOv8 documentation and the Task pages for more details on specific tasks.



Created 2023-11-12, Updated 2024-07-04
Authors: glenn-jocher (13), Laughing-q (1)

Comments