YOLO Vision 2026:

在 Docker 中开始使用 YOLOv5 🚀#

欢迎阅读 Ultralytics YOLOv5 Docker 快速入门指南!本教程提供了在 Docker 容器中设置和运行 YOLOv5 的逐步说明。使用 Docker 可以让你在隔离、一致的环境中运行 YOLOv5,从而简化跨不同系统的部署和依赖管理。这种方法利用容器化将应用程序及其依赖项打包在一起。

有关其他设置方法,请参考我们的 Colab 笔记本 Open In Colab Open In KaggleGCP 深度学习虚拟机Amazon AWS 指南。有关将 Docker 与 Ultralytics 模型结合使用的通用概述,请参阅 Ultralytics Docker 快速入门指南

前提条件#

在开始之前,请确保已安装以下内容:

  1. Docker:从官方 Docker 网站下载并安装 Docker。Docker 对于创建和管理容器至关重要。
  2. NVIDIA 驱动程序GPU 支持所必需):确保已安装 455.23 或更高版本的 NVIDIA 驱动程序。你可以从 NVIDIA 网站下载最新的驱动程序。
  3. NVIDIA Container Toolkit(GPU 支持所必需):此工具包允许 Docker 容器访问你主机的 NVIDIA GPU。请按照官方的 NVIDIA Container Toolkit 安装指南获取详细说明。

设置 NVIDIA Container Toolkit(GPU 用户)#

首先,通过运行以下命令验证 NVIDIA 驱动程序是否安装正确:

nvidia-smi

此命令应显示有关你的 GPU 和已安装驱动程序版本的信息。

接下来,安装 NVIDIA Container Toolkit。以下命令适用于 Ubuntu 等基于 Debian 的系统以及 Fedora/CentOS 等基于 RHEL 的系统,但请参考上面链接的官方指南以获取特定于你发行版的说明:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
  | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
    | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

更新软件包列表并安装 NVIDIA Container Toolkit:

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

使用 Docker 验证 CDI 设备#

运行 nvidia-ctk cdi list 以确保 GPU CDI 设备可用(toolkit 版本 >= 1.18 时,该工具包的 nvidia-cdi-refresh 服务会自动生成并维护规范):

nvidia-ctk cdi list

你应该会看到诸如 nvidia.com/gpu=0nvidia.com/gpu=all 的条目。在 Linux 上,CDI 设备请求需要 Docker >= 28.2.0 和 NVIDIA Container Toolkit >= 1.18。旧版的 --gpus all 标志在主机守护进程重新加载后可能会丢失 GPU 访问权限,因此请升级较旧的 Linux 主机并改用 --device

第 1 步:拉取 YOLOv5 Docker 镜像#

Ultralytics 在 Docker Hub 上提供官方 YOLOv5 镜像。latest 标签会跟踪最新的仓库提交,确保你始终获得最新版本。使用以下命令拉取镜像:

# Define the image name with tag
t=ultralytics/yolov5:latest

# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $t

你可以在 Ultralytics YOLOv5 Docker Hub 仓库中浏览所有可用的镜像。

第 2 步:运行 Docker 容器#

拉取镜像后,你就可以将其作为容器运行。

仅使用 CPU#

要仅使用 CPU 运行交互式容器实例,请使用 -it 标志。--ipc=host 标志允许共享主机的 IPC 命名空间,这对于共享内存访问非常重要。

# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $t

使用 GPU#

要在容器内启用 GPU 访问,请使用 --device nvidia.com/gpu=... CDI 标志。这需要正确安装 NVIDIA Container Toolkit。

# Run with access to all available GPUs
sudo docker run -it --ipc=host --device nvidia.com/gpu=all $t

# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --ipc=host --device nvidia.com/gpu=2 --device nvidia.com/gpu=3 $t

有关命令选项的更多详情,请参阅 Docker 运行参考

挂载本地目录#

若要在容器内处理本地文件(数据集、模型权重等),请使用 -v 标志将主机目录挂载到容器中:

# Mount /path/on/host (your local machine) to /path/in/container (inside the container)
sudo docker run -it --ipc=host --device nvidia.com/gpu=all -v /path/on/host:/path/in/container $t

/path/on/host 替换为机器上的实际路径,将 /path/in/container 替换为 Docker 容器内的目标路径(例如 /usr/src/datasets)。

第 3 步:在 Docker 容器内使用 YOLOv5 🚀#

你现在已经进入正在运行的 YOLOv5 Docker 容器中!从这里,你可以执行标准的 YOLOv5 命令来完成各种机器学习深度学习任务,例如目标检测

# Train a YOLOv5 model on your custom dataset (ensure data is mounted or downloaded)
python train.py --data your_dataset.yaml --weights yolov5s.pt --img 640 # Start training

# Validate the trained model's performance (Precision, Recall, mAP)
python val.py --weights path/to/your/best.pt --data your_dataset.yaml # Validate accuracy

# Run inference on images or videos using a trained model
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos # Perform detection

# Export the trained model to various formats like ONNX, CoreML, or TFLite for deployment
python export.py --weights yolov5s.pt --include onnx coreml tflite # Export model

探索文档以了解不同模式的详细用法:

了解有关评估指标的更多信息,例如准确率召回率mAP。了解不同的导出格式,例如 ONNXCoreMLTFLite,并探索各种模型部署选项。记得有效管理你的模型权重

Running YOLOv5 inside a Docker container on GCP

你已成功在 Docker 容器中设置并运行了 YOLOv5。

评论