Windows 下 YOLO 环境搭建与使用完整指南
发布日期 : 2024-01-15
标签 : YOLO, 深度学习, 目标检测, Windows
分类: 技术教程
📋 目录
一、环境准备
1.1 系统要求
在 Windows 系统上部署 YOLO 环境,请确保满足以下基本条件:
- 操作系统: Windows 10/11 64位
- Python 版本: 3.9 - 3.13 (⚠️ 不支持 Python 2.x)
- GPU 驱动: 建议使用最新版本的 NVIDIA 驱动
1.2 推荐硬件配置
| 组件 | 推荐配置 | 最低配置 |
|---|---|---|
| CPU | Intel i7 / AMD Ryzen 7 及以上 | Intel i5 / AMD Ryzen 5 |
| 显卡 | RTX 2060 SUPER (8GB 显存) 及以上 | GTX 1060 (6GB 显存) |
| 内存 | 16GB 及以上 | 8GB |
| 存储 | 50GB 可用空间 (SSD 推荐) | 20GB 可用空间 |
1.3 笔者测试环境
| 组件 | 配置信息 |
|---|---|
| CPU | i7-9700 @ 3.00GHz |
| 显卡 | RTX2060 SUPER (8GB 显存) |
| 操作系统 | Windows 10 64bit |
| Python | 3.9 (3.10.x 也可行,实测 3.12 可能存在兼容性问题) |
| PyTorch | 2.8.0 |
| CUDA | 12.6 |
| cuDNN | 8.9.7 |
1.4 相关资源链接
二、安装教程
2.1 安装方式概览
| 安装方式 | 适用场景 | 推荐度 |
|---|---|---|
| pip 直接安装 | 大多数用户 | ⭐⭐⭐⭐⭐ |
| 源码安装 | 需要修改源码的开发者 | ⭐⭐⭐⭐ |
| Conda 环境安装 | 需要隔离环境的用户 | ⭐⭐⭐⭐ |
2.2 方式一:从源码安装 (Ultralytics)
适合需要修改源码或开发自定义功能的用户:
bash
# 克隆仓库
git clone https://github.com/ultralytics/ultralytics
# 进入目录
cd ultralytics
# 源码安装
pip install -e .
2.3 方式二:从源码安装 (YOLOv5)
bash
# 克隆 YOLOv5 仓库
git clone https://github.com/ultralytics/yolov5
# 进入目录
cd yolov5
# 安装依赖
pip install -r requirements.txt
2.4 方式三:通过 pip 命令直接安装 ⭐推荐
使用国内镜像源可大幅加快下载速度:
bash
# 安装最新版
pip install ultralytics -i https://mirrors.aliyun.com/pypi/simple/
# 安装指定版本 (例如 8.2.95)
pip install ultralytics==8.2.95 -i https://mirrors.aliyun.com/pypi/simple/
# 使用清华镜像源
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple/
2.5 不同 Python 版本的安装建议
| Python 版本 | 安装方式 | 注意事项 |
|---|---|---|
| Python 3.8 | pip 安装 | 源码安装 (pip install -e .) 可能报错 |
| Python 3.9-3.10 | 任意方式 | 最稳定的版本组合 |
| Python 3.11 | 源码安装 | 需配合 PyTorch 2.8.0 + CUDA 12.6 |
| Python 3.12+ | pip 安装 | 可能存在部分兼容性问题 |
Python 3.11 + PyTorch 2.8.0 + CUDA 12.6 源码安装示例:
bash
cd ultralytics
pip install -e .
三、使用教程
3.1 CLI 命令概览
安装完成后,可以使用 yolo 命令行工具进行各种操作。
常用系统命令
bash
yolo help # 查看帮助信息
yolo checks # 运行环境检查
yolo version # 查看版本信息
yolo settings # 查看/修改设置
yolo copy-cfg # 复制配置文件
yolo cfg # 查看完整配置参数
命令语法结构
bash
yolo TASK MODE ARGS
| 参数类型 | 说明 | 可选值 |
|---|---|---|
| TASK | 任务类型 (可选) | detect, segment, classify, pose, obb |
| MODE | 运行模式 (必需) | train, val, predict, export, track, benchmark |
| ARGS | 自定义参数 (可选) | 任意 arg=value 键值对,如 imgsz=320 |
💡 提示 : 使用
yolo cfg可查看完整的配置参数列表
3.2 预测 (Predict)
单张图片预测
bash
# 使用预训练模型进行目标检测
yolo mode=predict task=detect model='./yolo/yolo11n.pt' source='./bus.jpg' show=True
# 使用自定义模型进行预测
yolo detect predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'
视频/流媒体预测
bash
# 使用预训练的分割模型在 YouTube 视频上预测
yolo predict model=yolo11n-seg.pt source='https://youtu.be/LNwODJXcvt4' imgsz=320
# 本地视频文件
yolo predict model=yolo11n.pt source='./video.mp4'
# 摄像头实时检测 (摄像头编号 0)
yolo predict model=yolo11n.pt source=0
常用预测参数
| 参数 | 说明 | 默认值 |
|---|---|---|
model |
模型路径 | yolov8n.pt |
source |
输入源 | 0 (摄像头) |
imgsz |
图像尺寸 | 640 |
conf |
置信度阈值 | 0.25 |
iou |
NMS IoU 阈值 | 0.45 |
show |
显示结果 | False |
save |
保存结果 | True |
3.3 训练 (Train)
基础训练命令
bash
# 训练一个检测模型,10 个 epoch,初始学习率 0.01
yolo train data=coco8.yaml model=yolo11n.pt epochs=10 lr0=0.01
# 在 COCO8 数据集上训练 YOLO11n,图像大小 640,训练 100 个 epoch
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640
恢复中断的训练
bash
# 从上次中断的位置继续训练
yolo detect train resume model=last.pt
常用训练参数
| 参数 | 说明 | 推荐值 |
|---|---|---|
data |
数据集配置文件 | coco8.yaml |
model |
预训练模型 | yolov8n.pt |
epochs |
训练轮数 | 100 |
imgsz |
输入图像尺寸 | 640 |
batch |
批次大小 | 16 (根据显存调整) |
lr0 |
初始学习率 | 0.01 |
device |
训练设备 | 0 (GPU) |
workers |
数据加载线程数 | 8 |
3.4 验证 (Val)
bash
# 验证预训练模型的性能
yolo val model=yolo11n.pt data=coco8.yaml batch=1 imgsz=640
# 验证自定义训练模型
yolo val model=path/to/best.pt data=custom.yaml
3.5 模型导出 (Export)
bash
# 导出为 ONNX 格式
yolo export model=yolo11n.pt format=onnx
# 导出为 TensorRT 格式
yolo export model=yolo11n.pt format=engine
# 导出为 OpenVINO 格式
yolo export model=yolo11n.pt format=openvino
四、代码示例
4.1 Python API 使用示例
python
from ultralytics import YOLO
# 加载模型
model = YOLO('yolo11n.pt')
# 预测
results = model.predict(source='image.jpg', show=True)
# 训练
model.train(data='coco8.yaml', epochs=100, imgsz=640)
# 验证
metrics = model.val()
# 导出
model.export(format='onnx')
4.2 ONNX 模型优化
如需处理 ONNX 模型或进行模型优化,建议安装以下依赖:
bash
pip install --no-cache-dir "onnx>=1.12.0,<=1.19.1" "onnxslim>=0.1.71" "onnxruntime-gpu" -i https://mirrors.aliyun.com/pypi/simple/
4.3 批量处理示例
python
from ultralytics import YOLO
import os
model = YOLO('yolo11n.pt')
# 批量处理文件夹中的图片
image_folder = './images/'
for img_file in os.listdir(image_folder):
if img_file.endswith(('.jpg', '.png')):
results = model.predict(source=os.path.join(image_folder, img_file))
print(f"处理完成: {img_file}")
五、常见问题排查
5.1 Numpy 版本冲突
问题描述: 安装过程中遇到依赖冲突或报错
解决方案:
bash
# 移除现有 numpy
conda remove numpy
# 清理 pip 缓存
pip cache purge
# 强制安装指定版本的 numpy
pip install --force-reinstall --no-deps numpy==1.26.4
5.2 Python 3.8 源码安装报错
问题描述 : 使用 pip install -e . 源码安装时报错
解决方案:
bash
# 改用 pip 直接安装预编译包
pip install ultralytics -i https://mirrors.aliyun.com/pypi/simple/
5.3 CUDA 版本不匹配
问题描述: PyTorch 无法识别 GPU 或 CUDA 报错
解决方案:
- 检查 NVIDIA 驱动版本
- 确认 CUDA 与 PyTorch 版本匹配
- 参考 PyTorch 版本对应表
5.4 内存不足问题
问题描述: 训练时出现 OOM (Out of Memory) 错误
解决方案:
bash
# 减小 batch size
yolo train data=coco8.yaml model=yolo11n.pt batch=8
# 减小图像尺寸
yolo train data=coco8.yaml model=yolo11n.pt imgsz=320
# 使用更小的模型
yolo train data=coco8.yaml model=yolo11n.pt # n/s/m/l/x 依次增大
5.5 下载速度慢
问题描述: 模型或数据集下载速度极慢
解决方案:
bash
# 使用国内镜像源
pip install -i https://mirrors.aliyun.com/pypi/simple/
# 使用代理
set HTTP_PROXY=http://proxy:port
set HTTPS_PROXY=http://proxy:port
# 手动下载模型后放入指定目录
六、参考资料
官方资源
社区教程
学习资源
💡 温馨提示 : 本教程基于 Windows 环境编写,Linux/Mac 用户请参考官方文档调整相应命令。如有问题,建议优先查阅 Ultralytics 官方文档 获取最新信息。