news 2026/11/3 7:15:09

小白也能懂的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/11/3 2:00:06

腾讯翻译模型实测:HY-MT1.5云端1小时体验报告

腾讯翻译模型实测&#xff1a;HY-MT1.5云端1小时体验报告 你是不是也经常被多语言内容卡住&#xff1f;看外文资料要反复查词典&#xff0c;写国际邮件担心表达不地道&#xff0c;甚至想做个跨境项目却因为翻译质量不过关而搁浅。别急&#xff0c;今天我要带大家亲测一款刚刚开…

作者头像 李华
网站建设 2026/11/3 2:00:06

Open-WebUI定制:DeepSeek-R1-Distill-Qwen-1.5B可视化界面开发

Open-WebUI定制&#xff1a;DeepSeek-R1-Distill-Qwen-1.5B可视化界面开发 1. 背景与技术选型 随着大模型轻量化趋势的加速&#xff0c;如何在资源受限设备上实现高性能推理成为边缘AI落地的关键挑战。DeepSeek-R1-Distill-Qwen-1.5B 的出现为这一问题提供了极具性价比的解决…

作者头像 李华
网站建设 2026/11/2 8:17:15

工业级语音降噪方案|FRCRN 16k模型部署全攻略

工业级语音降噪方案&#xff5c;FRCRN 16k模型部署全攻略 在智能语音交互、远程会议、电话客服等实际应用场景中&#xff0c;背景噪声严重影响语音清晰度与识别准确率。如何高效地从嘈杂环境中提取干净语音&#xff0c;成为音频处理的核心挑战之一。 阿里巴巴达摩院开源的 FR…

作者头像 李华
网站建设 2026/11/3 2:00:06

Qwen All-in-One灰度发布:新版本平滑上线教程

Qwen All-in-One灰度发布&#xff1a;新版本平滑上线教程 1. 引言 1.1 业务场景描述 在当前AI服务部署中&#xff0c;多任务需求日益普遍——例如同时需要情感分析与开放域对话能力。传统方案通常采用“多个模型并行”的架构&#xff0c;如BERT用于情感分类、LLM用于对话生成…

作者头像 李华
网站建设 2026/11/3 2:00:06

Llama3-8B+LangChain实战:3步搭建智能知识管家

Llama3-8BLangChain实战&#xff1a;3步搭建智能知识管家 你是不是也有这样的烦恼&#xff1f;每天记笔记、看文章、收藏网页&#xff0c;时间一长信息越积越多&#xff0c;想找某个知识点却像大海捞针。更头疼的是&#xff0c;这些内容分散在不同平台——微信收藏、Notion、语…

作者头像 李华