news 2026/5/1 9:59:42

小白也能懂的YOLO11教程:从环境搭建到模型推理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小白也能懂的YOLO11教程:从环境搭建到模型推理

小白也能懂的YOLO11教程:从环境搭建到模型推理

1. 环境准备与镜像使用

1.1 使用YOLO11镜像快速启动开发环境

为了简化YOLO11的部署流程,推荐使用预配置的深度学习镜像。该镜像基于ultralytics/ultralytics构建,集成了PyTorch、CUDA、OpenCV等必要依赖,开箱即用。

通过CSDN星图平台可一键拉取并运行YOLO11完整环境:

# 示例:本地Docker方式启动(如支持) docker run -d --gpus all \ -p 8888:8888 \ -v ./datasets:/mnt/data \ yolo11-env:latest

容器启动后可通过Jupyter或SSH两种方式接入开发环境。

1.2 Jupyter Notebook 使用指南

访问http://<服务器IP>:8888即可进入Jupyter界面。首次登录需输入Token(可在日志中查看),建议绑定个人账户以提升安全性。

在Jupyter中可以:

  • 实时调试训练脚本
  • 可视化数据增强效果
  • 查看损失曲线和mAP变化趋势
  • 快速验证推理结果

1.3 SSH远程连接开发环境

对于习惯命令行操作的用户,可通过SSH直接连接容器进行开发:

ssh user@<服务器IP> -p 2222

登录后即可执行常规Linux命令,如文件管理、进程监控、日志查看等。适合批量处理数据、长时间训练任务等场景。


2. 项目结构初始化

2.1 进入项目目录

首先切换至YOLO11主工程目录:

cd ultralytics-8.3.9/

此目录包含核心代码库ultralytics/以及后续自定义脚本存放位置。

2.2 建立标准项目结构

为保证工程规范性,建议创建如下目录结构:

ultralytics-8.3.9/ ├── datasets/ # 存放训练/验证数据 │ └── det_auto_parts_20241020/ │ ├── train/images/ │ ├── train/labels/ │ ├── val/images/ │ └── val/labels/ ├── weights/ # 预训练权重存储 │ ├── yolo11n.pt │ └── yolo11m.pt ├── runs/ # 训练输出自动保存路径 ├── train.py # 自定义训练脚本 ├── infer.py # 推理脚本 └── ...

该结构与Ultralytics官方设计兼容,便于迁移和复现。


3. 数据集准备与标注转换

3.1 使用Labelme进行图像标注

推荐使用开源工具Labelme进行手动标注:

  1. 安装:pip install labelme
  2. 启动:labelme
  3. 操作流程:
    • 点击“打开目录”加载图片
    • 选择“创建矩形”框选目标
    • 输入类别标签(如car、bus)
    • 保存生成同名.json文件

每个JSON文件记录了图像尺寸、对象坐标及语义信息。

3.2 Labelme JSON转YOLO TXT格式

YOLO系列模型要求标签为归一化的TXT格式,每行表示一个物体:

<object-class> <x_center> <y_center> <width> <height>

编写自动化转换脚本如下:

import json import os # 类别映射表(根据实际任务修改) label_map = { "car": 0, "bus": 1, "truck": 2 } def convert_labelme_to_yolo(json_path, output_dir): with open(json_path, 'r') as f: data = json.load(f) img_w = data['imageWidth'] img_h = data['imageHeight'] annotations = [] for shape in data['shapes']: label_name = shape['label'] if label_name not in label_map: continue class_id = label_map[label_name] points = shape['points'] # 处理矩形或多边形 x_coords = [p[0] for p in points] y_coords = [p[1] for p in points] x1, x2 = min(x_coords), max(x_coords) y1, y2 = min(y_coords), max(y_coords) # 归一化计算 xc = (x1 + x2) / 2 / img_w yc = (y1 + y2) / 2 / img_h w = (x2 - x1) / img_w h = (y2 - y1) / img_h annotations.append(f"{class_id} {xc:.6f} {yc:.6f} {w:.6f} {h:.6f}") # 写入txt文件 base_name = os.path.splitext(os.path.basename(json_path))[0] output_file = os.path.join(output_dir, base_name + '.txt') os.makedirs(output_dir, exist_ok=True) with open(output_file, 'w') as f: f.write('\n'.join(annotations)) def process_folder(input_folder, output_folder): for file in os.listdir(input_folder): if file.endswith('.json'): json_path = os.path.join(input_folder, file) convert_labelme_to_yolo(json_path, output_folder) # 执行转换 input_folder = "/mnt/data/json_labels" output_folder = "/mnt/data/yolo11_txt_labels" process_folder(input_folder, output_folder)

4. YOLO11模型配置与训练

4.1 数据集YAML配置文件

ultralytics/cfg/datasets/下新建auto-parts-det.yaml

path: ./datasets/det_auto_parts_20241020 train: train/images val: val/images names: 0: car 1: bus 2: truck

关键字段说明:

  • path: 数据集根目录
  • train/val: 相对路径下的图像文件夹
  • names: 类别索引映射

4.2 模型结构配置文件解析

YOLO11主干网络定义于ultralytics/cfg/models/11/yolo11.yaml,其核心组件包括:

  • Backbone: 多尺度特征提取(P3-P5)
  • Neck: FPN+PAN结构融合高低层特征
  • Head: Detect头输出三路检测结果

支持不同规模模型通过scales参数控制:

  • n: nano,最小轻量版
  • s/m/l/x: 从小到大逐步增加深度和宽度

4.3 编写训练脚本

创建train.py,实现全流程训练逻辑:

from ultralytics import YOLO # 加载模型配置并加载预训练权重 model = YOLO("yolo11m.yaml").load("weights/yolo11m.pt") # 训练参数配置 train_params = { 'data': 'auto-parts-det.yaml', 'epochs': 100, 'imgsz': 640, 'batch': 8, 'device': 0, # 使用GPU 0 'workers': 8, 'optimizer': 'AdamW', 'lr0': 0.001, 'weight_decay': 0.0005, 'warmup_epochs': 3, 'project': 'runs/train', 'name': 'exp_auto_parts', 'save_period': 10, 'val': True, 'plots': True } # 开始训练 results = model.train(**train_params)

提示:若未指定模型大小,默认加载yolo11n;建议明确使用yolo11m.yaml等形式避免混淆。


5. 模型推理与结果分析

5.1 执行模型训练

运行以下命令开始训练:

python train.py

典型输出日志:

Starting training for 100 epochs... Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 1/100 4.68G 2.238 1.691 2.426 80 640 Class Images Instances Box(P R mAP50) all 128 929 0.77 0.728 0.798 ... 100/100 4.49G 1.171 0.7135 1.319 41 640 all 128 929 0.847 0.845 0.891

训练完成后,最佳权重保存在runs/train/exp_auto_parts/weights/best.pt

5.2 模型推理实现

创建infer.py进行预测:

from ultralytics import YOLO # 加载训练好的模型 model = YOLO("runs/train/exp_auto_parts/weights/best.pt") # 批量推理图像文件夹 results = model.predict( source="datasets/det_auto_parts_20241020/val/images/", conf=0.45, iou=0.6, imgsz=640, device=0, save=True, save_txt=True, show_labels=True, show_conf=True )

参数说明:

  • source: 支持图片路径、文件夹、视频、摄像头ID
  • conf: 置信度阈值过滤低质量预测
  • save: 自动保存带框图和标签文本
  • device: 指定GPU设备加速推理

5.3 推理结果可视化

系统将自动生成:

  • 带检测框的图像(保存在runs/detect/predict/
  • 对应的TXT标签文件(用于后续评估)
  • 可选:分割掩码、关键点、OBB旋转框等高级输出

适用于简单场景与密集遮挡场景的目标检测任务。


6. 总结

本文系统介绍了YOLO11从环境搭建到模型推理的完整流程,涵盖以下关键步骤:

  1. 环境部署:利用预置镜像快速构建开发环境,支持Jupyter交互式开发与SSH远程操作。
  2. 数据准备:通过Labelme标注并转换为YOLO标准格式,确保数据正确性。
  3. 模型配置:合理设置YAML文件,匹配实际任务需求。
  4. 模型训练:调用Ultralytics API完成端到端训练,灵活调整超参数。
  5. 模型推理:加载最优权重进行预测,输出可视化结果与结构化数据。

YOLO11继承了Ultralytics系列高效易用的特点,同时在精度与速度间取得良好平衡,非常适合工业检测、自动驾驶、安防监控等应用场景。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 9:43:07

大模型部署一文详解:云端镜像让小白也能上手

大模型部署一文详解&#xff1a;云端镜像让小白也能上手 你是不是也和我一样&#xff0c;非科班出身&#xff0c;却对AI大模型充满好奇&#xff1f;作为一名产品经理&#xff0c;每天都在和算法团队沟通需求、讨论效果&#xff0c;但总感觉“听不懂他们在说什么”。直到最近&a…

作者头像 李华
网站建设 2026/4/27 6:45:03

零基础掌握AXI DMA高性能传输原理

零基础搞懂AXI DMA&#xff1a;从原理到实战的完整指南你有没有遇到过这样的场景&#xff1f;在Zynq上跑视频采集&#xff0c;图像明明来了&#xff0c;但CPU却忙得连中断都处理不过来&#xff0c;最后帧率上不去、画面还丢帧。或者做高速ADC采样时&#xff0c;每秒几百MB的数据…

作者头像 李华
网站建设 2026/5/1 9:46:28

零配置玩转AI对话:Qwen1.5-0.5B-Chat网页版实测体验

零配置玩转AI对话&#xff1a;Qwen1.5-0.5B-Chat网页版实测体验 1. 引言&#xff1a;轻量级模型的实用价值再定义 在当前大模型动辄数十亿、数百亿参数的背景下&#xff0c;Qwen1.5-0.5B-Chat 作为通义千问系列中最小的对话模型之一&#xff0c;反而因其“小而精”的特性脱颖…

作者头像 李华
网站建设 2026/5/1 8:49:21

实现电路仿真与PCB设计联动:Multisim14.0实战

从仿真到制板&#xff1a;用 Multisim14.0 打通电路设计的“任督二脉”你有没有过这样的经历&#xff1f;花了一周时间画好原理图&#xff0c;信心满满地导入PCB工具&#xff0c;结果发现某个运放引脚接反了&#xff1b;或者仿真时波形完美&#xff0c;一上电就振荡——而问题早…

作者头像 李华
网站建设 2026/5/1 6:49:50

Kotaemon镜像大全:10个预装环境任选,即开即用

Kotaemon镜像大全&#xff1a;10个预装环境任选&#xff0c;即开即用 你是不是也遇到过这种情况&#xff1a;想测试一个叫 Kotaemon 的开源 RAG 工具在不同 Python 版本下的表现&#xff0c;结果本地环境乱成一团&#xff1f;Python 3.8 跑得通的包&#xff0c;换到 3.10 就报…

作者头像 李华
网站建设 2026/3/26 5:00:55

告别传统OCR瓶颈|用PaddleOCR-VL-WEB实现复杂元素端到端提取

告别传统OCR瓶颈&#xff5c;用PaddleOCR-VL-WEB实现复杂元素端到端提取 1. 引言&#xff1a;传统OCR的局限与文档解析新范式 在数字化转型加速的今天&#xff0c;企业积累了海量以图像或PDF形式存在的技术文档、财务报表、工程图纸和历史档案。这些内容虽然“可见”&#xf…

作者头像 李华