YOLOv11
YOLOv11 完整保姆级教程从环境搭建到部署落地YOLOv11 是 Ultralytics 团队于 2025 年推出的最新一代目标检测模型在精度、速度和参数量上相比 YOLOv8 有显著提升同时支持目标检测、实例分割、姿态估计、分类等多任务API 完全兼容 YOLOv8迁移成本极低。一、环境准备5 分钟搞定1.1 基础环境要求表格组件推荐版本说明操作系统Windows 10/11 或 Ubuntu 20.04推荐 Linux 用于训练Python3.8 ~ 3.113.10 兼容性最好CUDA11.8 或 12.1有 NVIDIA 显卡必装加速训练内存16GB训练大模型建议 32GB显存6GB训练 yolov11n 至少 4GByolov11m 建议 8GB1.2 步骤 1创建并激活 Conda 环境bash运行# 创建名为 yolov11 的虚拟环境 conda create -n yolov11 python3.10 -y # 激活环境 conda activate yolov111.3 步骤 2安装 PyTorchGPU 版本Windows/Linux 通用命令CUDA 12.1 版本bash运行pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121验证 GPU 是否可用bash运行python -c import torch; print(torch.cuda.is_available())输出True表示 GPU 安装成功。1.4 步骤 3安装 Ultralytics 库YOLOv11 核心bash运行# 卸载旧版本如果之前装过 YOLOv8 pip uninstall -y ultralytics # 安装支持 YOLOv11 的最新稳定版指定版本避免兼容问题 pip install ultralytics8.3.28 -i https://pypi.tuna.tsinghua.edu.cn/simple1.5 步骤 4验证安装成功bash运行python -c from ultralytics import YOLO; print(YOLO(yolo11n.pt).model.info())输出模型信息参数数量、GFLOPs 等即表示安装成功。二、快速上手预训练模型推理无需训练直接使用官方预训练模型在 COCO 数据集上训练支持 80 类物体检测进行推理。2.1 图片推理python运行from ultralytics import YOLO # 加载预训练模型n/s/m/l/x 从小到大精度越高速度越慢 model YOLO(yolo11n.pt) # 轻量级适合快速测试 # 对单张图片进行推理 results model(test.jpg, saveTrue, conf0.25) # 打印检测结果 for result in results: boxes result.boxes # 检测框 for box in boxes: print(f类别: {result.names[int(box.cls)]}, 置信度: {box.conf.item():.2f}, 坐标: {box.xyxy.tolist()[0]})saveTrue自动保存检测结果到runs/detect/predict/目录conf0.25置信度阈值只显示置信度大于 0.25 的检测框2.2 视频推理python运行# 对视频文件进行推理 results model(video.mp4, saveTrue, conf0.3)2.3 摄像头实时推理python运行# 0 表示默认摄像头 results model(source0, showTrue, conf0.3, streamTrue) # 实时显示结果按 q 退出 for result in results: pass三、核心自定义数据集训练这是教程的重点教你训练自己的目标检测模型。3.1 步骤 1数据集准备3.1.1 数据集结构必须严格遵循plaintextmy_dataset/ ├── images/ │ ├── train/ # 训练集图片约占 80% │ │ ├── img1.jpg │ │ ├── img2.jpg │ │ └── ... │ └── val/ # 验证集图片约占 20% │ ├── img101.jpg │ ├── img102.jpg │ └── ... └── labels/ ├── train/ # 训练集标签与图片同名.txt 格式 │ ├── img1.txt │ ├── img2.txt │ └── ... └── val/ # 验证集标签 ├── img101.txt ├── img102.txt └── ...3.1.2 标签格式YOLO 格式每个.txt文件对应一张图片每行表示一个物体格式为plaintextclass_id x_center y_center width heightclass_id类别编号从 0 开始x_center边界框中心点 x 坐标 / 图片宽度归一化到 0~1y_center边界框中心点 y 坐标 / 图片高度归一化到 0~1width边界框宽度 / 图片宽度归一化到 0~1height边界框高度 / 图片高度归一化到 0~1示例图片尺寸 640x480边界框左上角 (100,80)右下角 (300,250)类别 0plaintext0 0.3125 0.34375 0.3125 0.354173.1.3 标注工具推荐LabelImg简单易用适合新手bash运行pip install labelimg labelimg # 启动工具使用时选择 YOLO 格式保存。CVAT在线标注工具支持多人协作Roboflow一站式数据集管理平台支持自动标注和格式转换3.2 步骤 2创建数据配置文件在项目根目录新建my_data.yaml内容如下yaml# 数据集根目录绝对路径或相对路径 path: ./my_dataset # 训练集和验证集路径相对于 path train: images/train val: images/val # 类别数量 nc: 3 # 类别名称顺序与 class_id 对应 names: [cat, dog, bird]3.3 步骤 3开始训练3.3.1 最简训练命令python运行from ultralytics import YOLO # 加载预训练模型迁移学习比从零开始训练快且精度高 model YOLO(yolo11n.pt) # 开始训练 model.train( datamy_data.yaml, # 数据配置文件 epochs100, # 训练轮数 imgsz640, # 输入图片尺寸 batch8, # 批次大小根据显存调整显存不够就调小 namemy_yolov11 # 训练结果保存目录名 )3.3.2 常用训练参数说明表格参数说明默认值epochs训练轮数100imgsz输入图片尺寸640batch批次大小16lr0初始学习率0.01lrf最终学习率因子0.01momentum动量0.937weight_decay权重衰减0.0005device训练设备0 表示 GPU 0cpu 表示 CPU自动选择workers数据加载线程数8save_period每隔多少轮保存一次模型-1只保存最好和最后一轮3.3.3 训练过程说明训练结果会保存到runs/detect/my_yolov11/目录包含训练日志、权重文件best.pt是验证集上最好的模型last.pt是最后一轮的模型、混淆矩阵、PR 曲线等训练过程中可以通过 TensorBoard 查看实时指标bash运行tensorboard --logdir runs/detect/my_yolov11/四、模型验证与测试4.1 模型验证使用验证集评估模型性能python运行from ultralytics import YOLO # 加载训练好的模型 model YOLO(runs/detect/my_yolov11/weights/best.pt) # 在验证集上进行评估 metrics model.val(datamy_data.yaml) # 打印评估指标 print(fmAP0.5: {metrics.box.map50:.3f}) print(fmAP0.5:0.95: {metrics.box.map:.3f}) print(f精确率: {metrics.box.precision.mean():.3f}) print(f召回率: {metrics.box.recall.mean():.3f})4.2 单张图片测试python运行from ultralytics import YOLO import cv2 # 加载模型 model YOLO(runs/detect/my_yolov11/weights/best.pt) # 读取图片 img cv2.imread(test_image.jpg) # 推理 results model(img, conf0.3) # 绘制检测结果 annotated_img results[0].plot() # 显示结果 cv2.imshow(YOLOv11 Detection, annotated_img) cv2.waitKey(0) cv2.destroyAllWindows() # 保存结果 cv2.imwrite(result.jpg, annotated_img)五、模型导出与部署训练好的.pt模型只能在 PyTorch 环境中运行需要导出为其他格式才能在不同平台部署。5.1 导出为 ONNX 格式跨平台通用python运行from ultralytics import YOLO # 加载模型 model YOLO(runs/detect/my_yolov11/weights/best.pt) # 导出为 ONNX 格式 model.export( formatonnx, imgsz640, opset15, simplifyTrue, # 简化模型提升推理速度 dynamicFalse # 是否支持动态尺寸 )导出的best.onnx文件可以在 ONNX Runtime、TensorRT、OpenVINO 等推理引擎中运行。5.2 导出为 TensorRT 格式NVIDIA GPU 加速前提已安装 TensorRT 并配置好环境python运行# 导出为 TensorRT 格式FP16 精度 model.export( formatengine, imgsz640, halfTrue, # 使用 FP16 精度速度更快 workspace4 # 工作区大小GB )导出的best.engine文件在 NVIDIA GPU 上的推理速度比 ONNX 快 2~5 倍。5.3 其他导出格式YOLOv11 支持导出为多种格式formattorchscriptTorchScript 格式formatcoremlCoreML 格式适用于 iOS 设备formattfliteTensorFlow Lite 格式适用于移动端formatpbTensorFlow GraphDef 格式六、常见问题与优化技巧6.1 常见问题解决显存不足CUDA out of memory减小batch大小减小imgsz如 640 → 416使用更小的模型如 yolov11n 代替 yolov11m启用混合精度训练ampTrue默认开启训练时 loss 不下降检查数据集标注是否正确调整学习率lr0增加训练轮数检查数据增强是否过于强烈检测结果漏检或误检多降低置信度阈值conf增加训练数据量调整非极大值抑制阈值iou使用更大的模型6.2 训练优化技巧数据增强YOLOv11 默认开启多种数据增强翻转、缩放、裁剪、马赛克等可以通过augmentTrue启用更多增强。迁移学习使用预训练模型进行微调比从零开始训练快且精度高。早停机制当验证集 mAP 连续多轮不提升时自动停止训练patience50。学习率调度使用余弦退火学习率调度默认可以更好地收敛。七、YOLOv11 模型版本对比表格模型参数量mAP0.5:0.95 (COCO)推理速度 (RTX 3090)适用场景yolov11n2.6M39.51.1ms边缘设备、实时性要求高yolov11s9.4M47.21.9ms平衡速度与精度yolov11m20.1M51.63.5ms通用场景yolov11l25.3M53.45.1ms精度要求较高yolov11x56.9M54.79.2ms精度要求极高八、多任务支持YOLOv11 不仅支持目标检测还支持其他任务实例分割使用yolo11n-seg.pt模型姿态估计使用yolo11n-pose.pt模型图像分类使用yolo11n-cls.pt模型实例分割示例python运行from ultralytics import YOLO model YOLO(yolo11n-seg.pt) results model(test.jpg, saveTrue)