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.

315 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` &nbsp;
- `yolo predict model yolov8n.pt imgsz 640 conf 0.25` &nbsp;
- `yolo predict --model yolov8n.pt --imgsz 640 --conf 0.25` &nbsp;
[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记录 |
在您浏览项目或实验时,请务必重新访问这些设置,以确保它们为您的需求提供最佳配置。