You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
314 lines
16 KiB
314 lines
16 KiB
--- |
|
评论:真 |
|
描述:探索使用pip、conda、git和Docker安装Ultralytics的各种方法。了解如何在命令行界面或Python项目中使用Ultralytics。 |
|
关键字:Ultralytics安装,pip安装Ultralytics,Docker安装Ultralytics,Ultralytics命令行界面,Ultralytics Python接口 |
|
--- |
|
|
|
## 安装Ultralytics |
|
|
|
Ultralytics提供了多种安装方法,包括pip、conda和Docker。通过`ultralytics`pip包安装最新稳定版的YOLOv8,或者克隆[Ultralytics GitHub仓库](https://github.com/ultralytics/ultralytics)以获取最新版本。Docker可用于在隔离容器中执行包,避免本地安装。 |
|
|
|
!!! 示例 "安装" |
|
|
|
=== "Pip安装(推荐)" |
|
使用pip安装`ultralytics`包,或通过运行`pip install -U ultralytics`更新现有安装。访问Python包索引(PyPI)了解更多关于`ultralytics`包的详细信息:[https://pypi.org/project/ultralytics/](https://pypi.org/project/ultralytics/)。 |
|
|
|
[![PyPI版本](https://badge.fury.io/py/ultralytics.svg)](https://badge.fury.io/py/ultralytics) [![下载](https://static.pepy.tech/badge/ultralytics)](https://pepy.tech/project/ultralytics) |
|
|
|
```bash |
|
# 从PyPI安装ultralytics包 |
|
pip install ultralytics |
|
``` |
|
|
|
你也可以直接从GitHub[仓库](https://github.com/ultralytics/ultralytics)安装`ultralytics`包。如果你想要最新的开发版本,这可能会很有用。确保你的系统上安装了Git命令行工具。`@main`指令安装`main`分支,可修改为其他分支,如`@my-branch`,或完全删除,默认为`main`分支。 |
|
|
|
```bash |
|
# 从GitHub安装ultralytics包 |
|
pip install git+https://github.com/ultralytics/ultralytics.git@main |
|
``` |
|
|
|
|
|
=== "Conda安装" |
|
Conda是pip的一个替代包管理器,也可用于安装。访问Anaconda了解更多详情,网址为[https://anaconda.org/conda-forge/ultralytics](https://anaconda.org/conda-forge/ultralytics)。用于更新conda包的Ultralytics feedstock仓库位于[https://github.com/conda-forge/ultralytics-feedstock/](https://github.com/conda-forge/ultralytics-feedstock/)。 |
|
|
|
|
|
[![Conda配方](https://img.shields.io/badge/recipe-ultralytics-green.svg)](https://anaconda.org/conda-forge/ultralytics) [![Conda下载](https://img.shields.io/conda/dn/conda-forge/ultralytics.svg)](https://anaconda.org/conda-forge/ultralytics) [![Conda版本](https://img.shields.io/conda/vn/conda-forge/ultralytics.svg)](https://anaconda.org/conda-forge/ultralytics) [![Conda平台](https://img.shields.io/conda/pn/conda-forge/ultralytics.svg)](https://anaconda.org/conda-forge/ultralytics) |
|
|
|
```bash |
|
# 使用conda安装ultralytics包 |
|
conda install -c conda-forge ultralytics |
|
``` |
|
|
|
!!! 注意 |
|
|
|
如果你在CUDA环境中安装,最佳实践是同时安装`ultralytics`、`pytorch`和`pytorch-cuda`,以便conda包管理器解决任何冲突,或者最后安装`pytorch-cuda`,让它必要时覆盖特定于CPU的`pytorch`包。 |
|
```bash |
|
# 使用conda一起安装所有包 |
|
conda install -c pytorch -c nvidia -c conda-forge pytorch torchvision pytorch-cuda=11.8 ultralytics |
|
``` |
|
|
|
### Conda Docker映像 |
|
|
|
Ultralytics Conda Docker映像也可从[DockerHub](https://hub.docker.com/r/ultralytics/ultralytics)获得。这些映像基于[Miniconda3](https://docs.conda.io/projects/miniconda/en/latest/),是开始在Conda环境中使用`ultralytics`的简单方式。 |
|
|
|
```bash |
|
# 将映像名称设置为变量 |
|
t=ultralytics/ultralytics:latest-conda |
|
|
|
# 从Docker Hub拉取最新的ultralytics映像 |
|
sudo docker pull $t |
|
|
|
# 使用GPU支持运行ultralytics映像的容器 |
|
sudo docker run -it --ipc=host --gpus all $t # 所有GPU |
|
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t # 指定GPU |
|
``` |
|
|
|
=== "Git克隆" |
|
如果您对参与开发感兴趣或希望尝试最新源代码,请克隆`ultralytics`仓库。克隆后,导航到目录并使用pip以可编辑模式`-e`安装包。 |
|
```bash |
|
# 克隆ultralytics仓库 |
|
git clone https://github.com/ultralytics/ultralytics |
|
|
|
# 导航到克隆的目录 |
|
cd ultralytics |
|
|
|
# 为开发安装可编辑模式下的包 |
|
pip install -e . |
|
``` |
|
|
|
=== "Docker" |
|
|
|
利用Docker轻松地在隔离的容器中执行`ultralytics`包,确保跨不同环境的一致性和流畅性能。通过选择一款官方`ultralytics`映像,从[Docker Hub](https://hub.docker.com/r/ultralytics/ultralytics)中不仅避免了本地安装的复杂性,还获得了对验证工作环境的访问。Ultralytics提供5种主要支持的Docker映像,每一种都为不同的平台和使用案例设计,以提供高兼容性和效率: |
|
|
|
<a href="https://hub.docker.com/r/ultralytics/ultralytics"><img src="https://img.shields.io/docker/pulls/ultralytics/ultralytics?logo=docker" alt="Docker拉取次数"></a> |
|
|
|
- **Dockerfile:** 推荐用于训练的GPU映像。 |
|
- **Dockerfile-arm64:** 为ARM64架构优化,允许在树莓派和其他基于ARM64的平台上部署。 |
|
- **Dockerfile-cpu:** 基于Ubuntu的CPU版,适合无GPU环境下的推理。 |
|
- **Dockerfile-jetson:** 为NVIDIA Jetson设备量身定制,整合了针对这些平台优化的GPU支持。 |
|
- **Dockerfile-python:** 最小化映像,只包含Python及必要依赖,理想于轻量级应用和开发。 |
|
- **Dockerfile-conda:** 基于Miniconda3,包含conda安装的ultralytics包。 |
|
|
|
以下是获取最新映像并执行它的命令: |
|
|
|
```bash |
|
# 将映像名称设置为变量 |
|
t=ultralytics/ultralytics:latest |
|
|
|
# 从Docker Hub拉取最新的ultralytics映像 |
|
sudo docker pull $t |
|
|
|
# 使用GPU支持运行ultralytics映像的容器 |
|
sudo docker run -it --ipc=host --gpus all $t # 所有GPU |
|
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t # 指定GPU |
|
``` |
|
|
|
上述命令初始化了一个带有最新`ultralytics`映像的Docker容器。`-it`标志分配了一个伪TTY,并保持stdin打开,使您可以与容器交互。`--ipc=host`标志将IPC(进程间通信)命名空间设置为宿主,这对于进程之间的内存共享至关重要。`--gpus all`标志使容器内可以访问所有可用的GPU,这对于需要GPU计算的任务至关重要。 |
|
|
|
注意:要在容器中使用本地机器上的文件,请使用Docker卷将本地目录挂载到容器中: |
|
|
|
```bash |
|
# 将本地目录挂载到容器内的目录 |
|
sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container $t |
|
``` |
|
|
|
将`/path/on/host`更改为您本地机器上的目录路径,将`/path/in/container`更改为Docker容器内希望访问的路径。 |
|
|
|
欲了解进阶Docker使用方法,请探索[Ultralytics Docker指南](https://docs.ultralytics.com/guides/docker-quickstart/)。 |
|
|
|
有关依赖项列表,请参见`ultralytics`的[requirements.txt](https://github.com/ultralytics/ultralytics/blob/main/requirements.txt)文件。请注意,上述所有示例均安装了所有必需的依赖项。 |
|
|
|
!!! 提示 "提示" |
|
|
|
PyTorch的要求因操作系统和CUDA需要而异,因此建议首先根据[https://pytorch.org/get-started/locally](https://pytorch.org/get-started/locally)上的指南安装PyTorch。 |
|
|
|
<a href="https://pytorch.org/get-started/locally/"> |
|
<img width="800" alt="PyTorch安装指南" src="https://user-images.githubusercontent.com/26833433/228650108-ab0ec98a-b328-4f40-a40d-95355e8a84e3.png"> |
|
</a> |
|
|
|
## 通过CLI使用Ultralytics |
|
|
|
Ultralytics命令行界面(CLI)允许您通过简单的单行命令使用,无需Python环境。CLI不需要自定义或Python代码。您可以直接从终端使用`yolo`命令运行所有任务。查看[CLI指南](/../usage/cli.md),了解更多关于从命令行使用YOLOv8的信息。 |
|
|
|
!!! 示例 |
|
|
|
=== "语法" |
|
|
|
Ultralytics `yolo`命令使用以下语法: |
|
```bash |
|
yolo 任务 模式 参数 |
|
|
|
其中 任务(可选)是[detect, segment, classify]中的一个 |
|
模式(必需)是[train, val, predict, export, track]中的一个 |
|
参数(可选)是任意数量的自定义“arg=value”对,如“imgsz=320”,可覆盖默认值。 |
|
``` |
|
在完整的[配置指南](/../usage/cfg.md)中查看所有参数,或者用`yolo cfg`查看 |
|
|
|
=== "训练" |
|
|
|
用初始学习率0.01训练检测模型10个周期 |
|
```bash |
|
yolo train data=coco128.yaml model=yolov8n.pt epochs=10 lr0=0.01 |
|
``` |
|
|
|
=== "预测" |
|
|
|
使用预训练的分割模型以320的图像大小预测YouTube视频: |
|
```bash |
|
yolo predict model=yolov8n-seg.pt source='https://youtu.be/LNwODJXcvt4' imgsz=320 |
|
``` |
|
|
|
=== "验证" |
|
|
|
以批量大小1和640的图像大小验证预训练的检测模型: |
|
```bash |
|
yolo val model=yolov8n.pt data=coco128.yaml batch=1 imgsz=640 |
|
``` |
|
|
|
=== "导出" |
|
|
|
以224x128的图像大小将YOLOv8n分类模型导出到ONNX格式(无需任务) |
|
```bash |
|
yolo export model=yolov8n-cls.pt format=onnx imgsz=224,128 |
|
``` |
|
|
|
=== "特殊" |
|
|
|
运行特殊命令以查看版本、查看设置、运行检查等: |
|
```bash |
|
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` ❌ |
|
|
|
[CLI指南](/../usage/cli.md){ .md-button .md-button--primary} |
|
|
|
## 通过Python使用Ultralytics |
|
|
|
YOLOv8的Python接口允许无缝集成进您的Python项目,轻松加载、运行模型及处理输出。Python接口设计简洁易用,使用户能快速实现他们项目中的目标检测、分割和分类功能。这使YOLOv8的Python接口成为任何希望在其Python项目中纳入这些功能的人的宝贵工具。 |
|
|
|
例如,用户可以加载一个模型,训练它,在验证集上评估性能,甚至只需几行代码就可以将其导出到ONNX格式。查看[Python指南](/../usage/python.md),了解更多关于在Python项目中使用YOLOv8的信息。 |
|
|
|
!!! 示例 |
|
|
|
```python |
|
from ultralytics import YOLO |
|
|
|
# 从头开始创建一个新的YOLO模型 |
|
model = YOLO('yolov8n.yaml') |
|
|
|
# 加载预训练的YOLO模型(推荐用于训练) |
|
model = YOLO('yolov8n.pt') |
|
|
|
# 使用“coco128.yaml”数据集训练模型3个周期 |
|
results = model.train(data='coco128.yaml', epochs=3) |
|
|
|
# 评估模型在验证集上的性能 |
|
results = model.val() |
|
|
|
# 使用模型对图片进行目标检测 |
|
results = model('https://ultralytics.com/images/bus.jpg') |
|
|
|
# 将模型导出为ONNX格式 |
|
success = model.export(format='onnx') |
|
``` |
|
|
|
[Python指南](/../usage/python.md){.md-button .md-button--primary} |
|
|
|
## Ultralytics设置 |
|
|
|
Ultralytics库提供了一个强大的设置管理系统,允许您精细控制实验。通过利用`ultralytics.utils`模块中的`SettingsManager`,用户可以轻松访问和修改设置。这些设置存储在YAML文件中,可以直接在Python环境中查看或修改,或者通过命令行界面(CLI)修改。 |
|
|
|
### 检查设置 |
|
|
|
若要了解当前设置的配置情况,您可以直接查看: |
|
|
|
!!! 示例 "查看设置" |
|
|
|
=== "Python" |
|
您可以使用Python查看设置。首先从`ultralytics`模块导入`settings`对象。使用以下命令打印和返回设置: |
|
```python |
|
from ultralytics import settings |
|
|
|
# 查看所有设置 |
|
print(settings) |
|
|
|
# 返回特定设置 |
|
value = settings['runs_dir'] |
|
``` |
|
|
|
=== "CLI" |
|
或者,命令行界面允许您用一个简单的命令检查您的设置: |
|
```bash |
|
yolo settings |
|
``` |
|
|
|
### 修改设置 |
|
|
|
Ultralytics允许用户轻松修改他们的设置。更改可以通过以下方式执行: |
|
|
|
!!! 示例 "更新设置" |
|
|
|
=== "Python" |
|
在Python环境中,调用`settings`对象上的`update`方法来更改您的设置: |
|
```python |
|
from ultralytics import settings |
|
|
|
# 更新一个设置 |
|
settings.update({'runs_dir': '/path/to/runs'}) |
|
|
|
# 更新多个设置 |
|
settings.update({'runs_dir': '/path/to/runs', 'tensorboard': False}) |
|
|
|
# 重置设置为默认值 |
|
settings.reset() |
|
``` |
|
|
|
=== "CLI" |
|
如果您更喜欢使用命令行界面,以下命令将允许您修改设置: |
|
```bash |
|
# 更新一个设置 |
|
yolo settings runs_dir='/path/to/runs' |
|
|
|
# 更新多个设置 |
|
yolo settings runs_dir='/path/to/runs' tensorboard=False |
|
|
|
# 重置设置为默认值 |
|
yolo settings reset |
|
``` |
|
|
|
### 理解设置 |
|
|
|
下表提供了Ultralytics中可调整设置的概览。每个设置都概述了一个示例值、数据类型和简短描述。 |
|
|
|
| 名称 | 示例值 | 数据类型 | 描述 | |
|
|--------------------|-----------------------|--------|------------------------------------------------------------------------------------------| |
|
| `settings_version` | `'0.0.4'` | `str` | Ultralytics _settings_ 版本(不同于Ultralytics [pip](https://pypi.org/project/ultralytics/)版本) | |
|
| `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 Key](https://hub.ultralytics.com/settings?tab=api+keys) | |
|
| `clearml` | `True` | `bool` | 是否使用ClearML记录 | |
|
| `comet` | `True` | `bool` | 是否使用[Comet ML](https://bit.ly/yolov8-readme-comet)进行实验跟踪和可视化 | |
|
| `dvc` | `True` | `bool` | 是否使用[DVC进行实验跟踪](https://dvc.org/doc/dvclive/ml-frameworks/yolo)和版本控制 | |
|
| `hub` | `True` | `bool` | 是否使用[Ultralytics HUB](https://hub.ultralytics.com)集成 | |
|
| `mlflow` | `True` | `bool` | 是否使用MLFlow进行实验跟踪 | |
|
| `neptune` | `True` | `bool` | 是否使用Neptune进行实验跟踪 | |
|
| `raytune` | `True` | `bool` | 是否使用Ray Tune进行超参数调整 | |
|
| `tensorboard` | `True` | `bool` | 是否使用TensorBoard进行可视化 | |
|
| `wandb` | `True` | `bool` | 是否使用Weights & Biases记录 | |
|
|
|
在您浏览项目或实验时,请务必重新访问这些设置,以确保它们为您的需求提供最佳配置。
|
|
|