Quickstart
Install Ultralytics
Ultralytics provides various installation methods including pip, conda, and Docker. Install YOLO via the ultralytics
pip package for the latest stable release or by cloning the Ultralytics GitHub repository for the most up-to-date version. Docker can be used to execute the package in an isolated container, avoiding local installation.
Watch: Ultralytics YOLO Quick Start Guide
Install
Install the ultralytics
package using pip, or update an existing installation by running pip install -U ultralytics
. Visit the Python Package Index (PyPI) for more details on the ultralytics
package: https://pypi.org/project/ultralytics/.
You can also install the ultralytics
package directly from the GitHub repository. This might be useful if you want the latest development version. Make sure to have the Git command-line tool installed on your system. The @main
command installs the main
branch and may be modified to another branch, i.e. @my-branch
, or removed entirely to default to main
branch.
Conda is an alternative package manager to pip which may also be used for installation. Visit Anaconda for more details at https://anaconda.org/conda-forge/ultralytics. Ultralytics feedstock repository for updating the conda package is at https://github.com/conda-forge/ultralytics-feedstock/.
Note
If you are installing in a CUDA environment best practice is to install ultralytics
, pytorch
and pytorch-cuda
in the same command to allow the conda package manager to resolve any conflicts, or else to install pytorch-cuda
last to allow it override the CPU-specific pytorch
package if necessary.
Conda Docker Image
Ultralytics Conda Docker images are also available from DockerHub. These images are based on Miniconda3 and are an simple way to start using ultralytics
in a Conda environment.
# Set image name as a variable
t=ultralytics/ultralytics:latest-conda
# Pull the latest ultralytics image from Docker Hub
sudo docker pull $t
# Run the ultralytics image in a container with GPU support
sudo docker run -it --ipc=host --gpus all $t # all GPUs
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t # specify GPUs
Clone the ultralytics
repository if you are interested in contributing to the development or wish to experiment with the latest source code. After cloning, navigate into the directory and install the package in editable mode -e
using pip.
Utilize Docker to effortlessly execute the ultralytics
package in an isolated container, ensuring consistent and smooth performance across various environments. By choosing one of the official ultralytics
images from Docker Hub, you not only avoid the complexity of local installation but also benefit from access to a verified working environment. Ultralytics offers 5 main supported Docker images, each designed to provide high compatibility and efficiency for different platforms and use cases:
- Dockerfile: GPU image recommended for training.
- Dockerfile-arm64: Optimized for ARM64 architecture, allowing deployment on devices like Raspberry Pi and other ARM64-based platforms.
- Dockerfile-cpu: Ubuntu-based CPU-only version suitable for inference and environments without GPUs.
- Dockerfile-jetson: Tailored for NVIDIA Jetson devices, integrating GPU support optimized for these platforms.
- Dockerfile-python: Minimal image with just Python and necessary dependencies, ideal for lightweight applications and development.
- Dockerfile-conda: Based on Miniconda3 with conda installation of ultralytics package.
Below are the commands to get the latest image and execute it:
# Set image name as a variable
t=ultralytics/ultralytics:latest
# Pull the latest ultralytics image from Docker Hub
sudo docker pull $t
# Run the ultralytics image in a container with GPU support
sudo docker run -it --ipc=host --gpus all $t # all GPUs
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t # specify GPUs
The above command initializes a Docker container with the latest ultralytics
image. The -it
flag assigns a pseudo-TTY and maintains stdin open, enabling you to interact with the container. The --ipc=host
flag sets the IPC (Inter-Process Communication) namespace to the host, which is essential for sharing memory between processes. The --gpus all
flag enables access to all available GPUs inside the container, which is crucial for tasks that require GPU computation.
Note: To work with files on your local machine within the container, use Docker volumes for mounting a local directory into the container:
# Mount local directory to a directory inside the container
sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container $t
Alter /path/on/host
with the directory path on your local machine, and /path/in/container
with the desired path inside the Docker container for accessibility.
For advanced Docker usage, feel free to explore the Ultralytics Docker Guide.
See the ultralytics
pyproject.toml file for a list of dependencies. Note that all examples above install all required dependencies.
Tip
PyTorch requirements vary by operating system and CUDA requirements, so it's recommended to install PyTorch first following instructions at https://pytorch.org/get-started/locally.
Use Ultralytics with CLI
The Ultralytics command line interface (CLI) allows for simple single-line commands without the need for a Python environment. CLI requires no customization or Python code. You can simply run all tasks from the terminal with the yolo
command. Check out the CLI Guide to learn more about using YOLO from the command line.
Example
Ultralytics yolo
commands use the following syntax:
TASK
(optional) is one of (detect, segment, classify, pose, obb)MODE
(required) is one of (train, val, predict, export, track, benchmark)ARGS
(optional) arearg=value
pairs likeimgsz=640
that override defaults.
See all ARGS
in the full Configuration Guide or with the yolo cfg
CLI command.
Train a detection model for 10 epochs with an initial learning_rate of 0.01
Predict a YouTube video using a pretrained segmentation model at image size 320:
Val a pretrained detection model at batch-size 1 and image size 640:
Export a yolo11n classification model to ONNX format at image size 224 by 128 (no TASK required)
Warning
Arguments must be passed as arg=val
pairs, split by an equals =
sign and delimited by spaces between pairs. Do not use --
argument prefixes or commas ,
between arguments.
yolo predict model=yolo11n.pt imgsz=640 conf=0.25
✅yolo predict model yolo11n.pt imgsz 640 conf 0.25
❌ (missing=
)yolo predict model=yolo11n.pt, imgsz=640, conf=0.25
❌ (do not use,
)yolo predict --model yolo11n.pt --imgsz 640 --conf 0.25
❌ (do not use--
)
Use Ultralytics with Python
YOLO's Python interface allows for seamless integration into your Python projects, making it easy to load, run, and process the model's output. Designed with simplicity and ease of use in mind, the Python interface enables users to quickly implement object detection, segmentation, and classification in their projects. This makes YOLO's Python interface an invaluable tool for anyone looking to incorporate these functionalities into their Python projects.
For example, users can load a model, train it, evaluate its performance on a validation set, and even export it to ONNX format with just a few lines of code. Check out the Python Guide to learn more about using YOLO within your Python projects.
Example
from ultralytics import YOLO
# Create a new YOLO model from scratch
model = YOLO("yolo11n.yaml")
# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo11n.pt")
# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.yaml", epochs=3)
# Evaluate the model's performance on the validation set
results = model.val()
# Perform object detection on an image using the model
results = model("https://ultralytics.com/images/bus.jpg")
# Export the model to ONNX format
success = model.export(format="onnx")
Ultralytics Settings
The Ultralytics library provides a powerful settings management system to enable fine-grained control over your experiments. By making use of the SettingsManager
housed within the ultralytics.utils
module, users can readily access and alter their settings. These are stored in a JSON file in the environment user configuration directory, and can be viewed or modified directly within the Python environment or via the Command-Line Interface (CLI).
Inspecting Settings
To gain insight into the current configuration of your settings, you can view them directly:
View settings
You can use Python to view your settings. Start by importing the settings
object from the ultralytics
module. Print and return settings using the following commands:
Modifying Settings
Ultralytics allows users to easily modify their settings. Changes can be performed in the following ways:
Update settings
Within the Python environment, call the update
method on the settings
object to change your settings:
If you prefer using the command-line interface, the following commands will allow you to modify your settings:
Understanding Settings
The table below provides an overview of the settings available for adjustment within Ultralytics. Each setting is outlined along with an example value, the data type, and a brief description.
Name | Example Value | Data Type | Description |
---|---|---|---|
settings_version |
'0.0.4' |
str |
Ultralytics settings version (different from Ultralytics pip version) |
datasets_dir |
'/path/to/datasets' |
str |
The directory where the datasets are stored |
weights_dir |
'/path/to/weights' |
str |
The directory where the model weights are stored |
runs_dir |
'/path/to/runs' |
str |
The directory where the experiment runs are stored |
uuid |
'a1b2c3d4' |
str |
The unique identifier for the current settings |
sync |
True |
bool |
Whether to sync analytics and crashes to HUB |
api_key |
'' |
str |
Ultralytics HUB API Key |
clearml |
True |
bool |
Whether to use ClearML logging |
comet |
True |
bool |
Whether to use Comet ML for experiment tracking and visualization |
dvc |
True |
bool |
Whether to use DVC for experiment tracking and version control |
hub |
True |
bool |
Whether to use Ultralytics HUB integration |
mlflow |
True |
bool |
Whether to use MLFlow for experiment tracking |
neptune |
True |
bool |
Whether to use Neptune for experiment tracking |
raytune |
True |
bool |
Whether to use Ray Tune for hyperparameter tuning |
tensorboard |
True |
bool |
Whether to use TensorBoard for visualization |
wandb |
True |
bool |
Whether to use Weights & Biases logging |
vscode_msg |
True |
bool |
When VS Code terminal detected, enables prompt to download Ultralytics-Snippets extension. |
As you navigate through your projects or experiments, be sure to revisit these settings to ensure that they are optimally configured for your needs.
FAQ
How do I install Ultralytics using pip?
To install Ultralytics with pip, execute the following command:
For the latest stable release, this will install the ultralytics
package directly from the Python Package Index (PyPI). For more details, visit the ultralytics package on PyPI.
Alternatively, you can install the latest development version directly from GitHub:
Make sure to have the Git command-line tool installed on your system.
Can I install Ultralytics YOLO using conda?
Yes, you can install Ultralytics YOLO using conda by running:
This method is an excellent alternative to pip and ensures compatibility with other packages in your environment. For CUDA environments, it's best to install ultralytics
, pytorch
, and pytorch-cuda
simultaneously to resolve any conflicts:
For more instructions, visit the Conda quickstart guide.
What are the advantages of using Docker to run Ultralytics YOLO?
Using Docker to run Ultralytics YOLO provides an isolated and consistent environment, ensuring smooth performance across different systems. It also eliminates the complexity of local installation. Official Docker images from Ultralytics are available on Docker Hub, with different variants tailored for GPU, CPU, ARM64, NVIDIA Jetson, and Conda environments. Below are the commands to pull and run the latest image:
# Pull the latest ultralytics image from Docker Hub
sudo docker pull ultralytics/ultralytics:latest
# Run the ultralytics image in a container with GPU support
sudo docker run -it --ipc=host --gpus all ultralytics/ultralytics:latest
For more detailed Docker instructions, check out the Docker quickstart guide.
How do I clone the Ultralytics repository for development?
To clone the Ultralytics repository and set up a development environment, use the following steps:
# Clone the ultralytics repository
git clone https://github.com/ultralytics/ultralytics
# Navigate to the cloned directory
cd ultralytics
# Install the package in editable mode for development
pip install -e .
This approach allows you to contribute to the project or experiment with the latest source code. For more details, visit the Ultralytics GitHub repository.
Why should I use Ultralytics YOLO CLI?
The Ultralytics YOLO command line interface (CLI) simplifies running object detection tasks without requiring Python code. You can execute single-line commands for tasks like training, validation, and prediction straight from your terminal. The basic syntax for yolo
commands is:
For example, to train a detection model with specified parameters:
Check out the full CLI Guide to explore more commands and usage examples.