yolo中文文档-快速入门 分类置顶 ultralytics
安装 Ultralytics
Ultralytics 提供多种安装方法,包括 pip、conda 和 Docker。通过 ultralytics pip 包安装 YOLOv8 以获取最新稳定版本,或通过克隆 Ultralytics GitHub 存储库安装最新版本。Docker 可用于在隔离容器中执行包,避免本地安装。
安装
利用 Docker 轻松在隔离容器中执行 ultralytics 包,确保在各种环境中保持一致和流畅的性能。通过从 Docker Hub 选择官方 ultralytics 映像之一,您不仅可以避免本地安装的复杂性,还可以受益于访问经过验证的工作环境。Ultralytics 提供 5 个主要支持的 Docker 映像,每个映像都旨在为不同的平台和用例提供高兼容性和效率:
- Dockerfile: 推荐用于训练的 GPU 图像。
- Dockerfile-arm64: 针对 ARM64 架构进行了优化,允许部署在 Raspberry Pi 等基于 ARM64 的平台等设备上。
- Dockerfile-cpu: 基于 Ubuntu 的仅 CPU 版本适用于推理和没有 GPU 的环境。
- Dockerfile-jetson: 专为 NVIDIA Jetson 设备量身定制,集成针对这些平台优化的 GPU 支持。
- Dockerfile-python: 仅包含 Python 和必要依赖项的最小镜像,非常适合轻量级应用程序和开发。
- Dockerfile-conda: 基于 Miniconda3,使用 conda 安装 ultralytics 包。
以下是获取最新镜像并执行的命令:
# 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
- [x] 上述命令使用最新的 ultralytics 映像初始化 Docker 容器。-it 标志分配伪 TTY 并保持 stdin 开放,使您能够与容器交互。--ipc=host 标志将 IPC(进程间通信)命名空间设置为主机,这对于进程间共享内存至关重要。--gpus all 标志允许访问容器内所有可用的 GPU,这对于需要 GPU 计算的任务至关重要。
注意:要使用容器内本地计算机上的文件,请使用 Docker 卷将本地目录挂载到容器中:
# 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
- [x] 将 /path/on/host 更改为本地计算机上的目录路径,并将 /path/in/container 更改为 Docker 容器内所需的路径,以便于访问。
对于高级 Docker 用法,请随意浏览 Ultralytics Docker 指南。
请参阅 ultralytics pyproject.toml 文件以获取依赖项列表。请注意,上述所有示例都安装了所有必需的依赖项。
通过 CLI 使用 Ultralytics
Ultralytics 命令行界面 (CLI) 允许使用简单的单行命令,而无需 Python 环境。CLI 不需要自定义或 Python 代码。您只需使用 yolo 命令从终端运行所有任务即可。查看 CLI 指南以了解有关从命令行使用 YOLOv8 的更多信息。
例子
语法
Ultralytics yolo 命令使用以下语法:
yolo TASK MODE ARGS
TASK
(可选)是以下之一(检测、分段、分类、姿势、obb)MODE
(必需)是以下之一(训练、验证、预测、导出、跟踪、基准)ARGS
(可选)是 arg=value 对,如 imgsz=640,用于覆盖默认值。
查看完整配置指南中的所有 ARGS 或使用 yolo cfg CLI 命令。
训练
训练检测模型 10 个 epoch,初始 learning_rate 为 0.01:
yolo train data=coco8.yaml model=yolov8n.pt epochs=10 lr0=0.01
预测
使用图像大小为 320 的预训练分割模型预测 YouTube 视频:
yolo predict model=yolov8n-seg.pt source='https://youtu.be/LNwODJXcvt4' imgsz=320
验证
验证批次大小为 1、图像大小为 640 的预训练检测模型:
yolo val model=yolov8n.pt data=coco8.yaml batch=1 imgsz=640
导出
将 YOLOv8n 分类模型导出为 ONNX 格式,图像大小为 224 x 128(无需 TASK):
yolo export model=yolov8n-cls.pt format=onnx imgsz=224,128
特殊命令
运行特殊命令来查看版本、查看设置、运行检查等:
yolo help
yolo checks
yolo version
yolo settings
yolo copy-cfg
yolo cfg
注意
参数必须以 arg=val 对的形式传递,用等号 = 分隔,各对之间用空格分隔。请勿在参数之间使用 -- 参数前缀或逗号 ,。
yolo predict model=yolov8n.pt imgsz=640 conf=0.25 ✅
yolo predict model yolov8n.pt imgsz 640 conf 0.25 ❌(缺少 =)
yolo predict model=yolov8n.pt, imgsz=640, conf=0.25 ❌(请勿使用 ,)
yolo predict --model yolov8n.pt --imgsz 640 --conf 0.25 ❌(请勿使用 --)
通过 Python 使用 Ultralytics
YOLOv8 的 Python 接口可以无缝集成到您的 Python 项目中,从而轻松加载、运行和处理模型的输出。Python 接口在设计时考虑到了简单性和易用性,使用户能够在项目中快速实现对象检测、分割和分类。这使得 YOLOv8 的 Python 接口成为任何希望将这些功能整合到 Python 项目中的人的宝贵工具。
例如,用户只需几行代码就可以加载模型、训练模型、评估其在验证集上的表现,甚至将其导出为 ONNX 格式。查看 Python 指南,了解有关在 Python 项目中使用 YOLOv8 的更多信息。
例子
from ultralytics import YOLO
# Create a new YOLO model from scratch
model = YOLO("yolov8n.yaml")
# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolov8n.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 设置
Ultralytics 库提供了强大的设置管理系统,可对实验进行细粒度控制。通过使用 ultralytics.utils 模块中的 SettingsManager,用户可以轻松访问和更改其设置。这些设置存储在环境用户配置目录中的 JSON 文件中,可以直接在 Python 环境中或通过命令行界面 (CLI) 查看或修改。
检查设置
要深入了解设置的当前配置,您可以直接查看它们:
python
您可以使用 Python 查看您的设置。首先从 ultralytics 模块导入设置对象。使用以下命令打印并返回设置:
from ultralytics import settings
# View all settings
print(settings)
# Return a specific setting
value = settings["runs_dir"]
cli
或者,命令行界面允许您使用简单的命令检查您的设置:
yolo settings
修改设置
Ultralytics 允许用户轻松修改其设置。可以通过以下方式进行更改:
python
在 Python 环境中,调用设置对象上的更新方法来更改您的设置:
from ultralytics import settings
# Update a setting
settings.update({"runs_dir": "/path/to/runs"})
# Update multiple settings
settings.update({"runs_dir": "/path/to/runs", "tensorboard": False})
# Reset settings to default values
settings.reset()
cli
如果您更喜欢使用命令行界面,以下命令将允许您修改设置:
# Update a setting
yolo settings runs_dir='/path/to/runs'
# Update multiple settings
yolo settings runs_dir='/path/to/runs' tensorboard=False
# Reset settings to default values
yolo settings reset
了解设置
下表概述了 Ultralytics 中可供调整的设置。每个设置都附有示例值、数据类型和简要说明。
配置项 | 示例值 | 数据类型 | 描述 |
---|---|---|---|
settings_version |
'0.0.4' |
str |
Ultralytics 设置版本(与 Ultralytics pip 版本不同) |
datasets_dir |
'/path/to/datasets' |
str |
数据集存储的目录 |
weights_dir |
'/path/to/weights' |
str |
模型权重存储的目录 |
runs_dir |
'/path/to/runs' |
str |
实验运行的目录存储 |
uuid |
'a1b2c3d4' |
str |
当前设置的唯一标识符 |
sync |
True |
bool |
是否将分析和崩溃同步到 HUB |
api_key |
'' |
str |
Ultralytics HUB API 密钥 |
clearml |
True |
bool |
是否使用ClearML日志记录 |
comet |
True |
bool |
是否使用 Comet ML 进行实验跟踪和可视化 |
dvc |
True |
bool |
是否使用 DVC 进行实验跟踪和版本控制 |
hub |
True |
bool |
是否使用 Ultralytics HUB 集成 |
mlflow |
True |
bool |
是否使用 MLFlow 进行实验跟踪 |
neptune |
True |
bool |
是否使用 Neptune 进行实验跟踪 |
raytune |
True |
bool |
是否使用 Ray Tune 进行超参数调整 |
tensorboard |
True |
bool |
是否使用 TensorBoard 进行可视化 |
wandb |
True |
bool |
是否使用权重和偏差记录 |
vscode_msg |
True |
bool |
当检测到 VS Code 终端时,会提示下载 Ultralytics-Snippets 扩展。 |
在您浏览项目或实验时,请务必重新查看这些设置,以确保它们已根据您的需要进行了最佳配置。
常见问题
如何使用 pip 安装 Ultralytics YOLOv8?
要使用 pip 安装 Ultralytics YOLOv8,请执行以下命令:
pip install ultralytics
对于最新的稳定版本,这将直接从 Python 软件包索引 (PyPI) 安装 ultralytics 软件包。有关更多详细信息,请访问 PyPI 上的 ultralytics 软件包。
或者,您可以直接从 GitHub 安装最新的开发版本:
pip install git+https://github.com/ultralytics/ultralytics.git
确保您的系统上安装了 Git 命令行工具。
我可以使用 conda 安装 Ultralytics YOLOv8 吗?
是的,您可以通过运行以下命令使用 conda 安装 Ultralytics YOLOv8:
conda install -c conda-forge ultralytics
此方法是 pip 的绝佳替代方案,可确保与您环境中的其他软件包兼容。对于 CUDA 环境,最好同时安装 ultralytics、pytorch 和 pytorch-cuda 以解决任何冲突:
conda install -c pytorch -c nvidia -c conda-forge pytorch torchvision pytorch-cuda=11.8 ultralytics
如需更多说明,请访问 Conda 快速入门指南。
使用 Docker 运行 Ultralytics YOLOv8 有哪些好处?
使用 Docker 运行 Ultralytics YOLOv8 提供了一个独立且一致的环境,确保在不同系统上流畅运行。它还消除了本地安装的复杂性。Ultralytics 的官方 Docker 镜像可在 Docker Hub 上找到,其中有针对 GPU、CPU、ARM64、NVIDIA Jetson 和 Conda 环境量身定制的不同版本。以下是提取和运行最新镜像的命令:
# 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
有关更详细的 Docker 说明,请查看 docker快速入门指南。
如何克隆 Ultralytics 存储库用于开发?
要克隆 Ultralytics 存储库并设置开发环境,请按照以下步骤操作:
# 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 .
这种方法允许您为项目做出贡献或尝试最新的源代码。有关更多详细信息,请访问 Ultralytics GitHub 存储库。
为什么我应该使用 Ultralytics YOLOv8 CLI?
Ultralytics YOLOv8 命令行界面 (CLI) 简化了运行对象检测任务的过程,无需 Python 代码。您可以直接从终端执行单行命令来执行训练、验证和预测等任务。yolo 命令的基本语法是:
yolo TASK MODE ARGS
例如,训练具有指定参数的检测模型:
yolo train data=coco8.yaml model=yolov8n.pt epochs=10 lr0=0.01
查看完整的 CLI 指南以了解更多命令和使用示例。
YOLO性能指标 ultralytics
性能指标是评估对象检测模型的准确性和效率的关键工具。它们阐明了模型如何有效地识别和定位图像中的对象。此外,它们有助于理解模型对假阳性和假阴性的处理。这些见解对于评估和增强模型的性能至关重要。在本指南中,我们将探讨与 YOLO11 相关的各种性能指标、它们的重要性以及如何解释它们。