news 2026/4/18 10:43:15

小白也能懂的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/4/15 19:23:37

毕业设计救星:Qwen1.5+云端GPU三天搞定AI项目

毕业设计救星&#xff1a;Qwen1.5云端GPU三天搞定AI项目 大四的毕业季总是伴随着焦虑和压力&#xff0c;尤其是当你发现自己的笔记本电脑根本跑不动深度学习模型时。更糟的是&#xff0c;重装系统后环境全崩了——CUDA版本不对、PyTorch装不上、依赖冲突一堆……眼看答辩DDL只…

作者头像 李华
网站建设 2026/4/18 8:10:08

Yolo-v5训练避坑指南:云端GPU按秒计费,不花冤枉钱

Yolo-v5训练避坑指南&#xff1a;云端GPU按秒计费&#xff0c;不花冤枉钱 你是不是也经历过这样的场景&#xff1f;作为研究生第一次尝试训练自己的目标检测模型&#xff0c;兴冲冲地把代码跑起来&#xff0c;结果一觉醒来发现电脑风扇还在狂转&#xff0c;显卡温度90度&#…

作者头像 李华
网站建设 2026/4/18 7:53:23

SenseVoice Small镜像详解|语音转文字+情感事件标签一站式解决方案

SenseVoice Small镜像详解&#xff5c;语音转文字情感事件标签一站式解决方案 1. 技术背景与核心价值 随着智能语音技术的快速发展&#xff0c;传统语音识别&#xff08;ASR&#xff09;已从单一的文字转换逐步演进为多模态语义理解。在客服质检、会议纪要、内容审核、心理健…

作者头像 李华
网站建设 2026/4/18 7:56:00

MinerU 2.5优化指南:降低PDF处理成本的策略

MinerU 2.5优化指南&#xff1a;降低PDF处理成本的策略 1. 背景与挑战&#xff1a;复杂PDF文档提取的高成本瓶颈 在当前大模型驱动的内容理解场景中&#xff0c;PDF文档作为知识载体的重要格式&#xff0c;其结构化提取需求日益增长。然而&#xff0c;传统OCR工具在面对多栏排…

作者头像 李华
网站建设 2026/4/18 4:48:34

Qwen3-Embedding-4B部署教程:多维度向量生成实战

Qwen3-Embedding-4B部署教程&#xff1a;多维度向量生成实战 1. 引言 随着大模型在检索、分类、聚类等任务中的广泛应用&#xff0c;高质量的文本嵌入&#xff08;Text Embedding&#xff09;能力成为构建智能系统的核心基础。Qwen3-Embedding-4B 是通义千问系列最新推出的中…

作者头像 李华
网站建设 2026/4/18 7:58:33

Llama3-8B长文本处理实战:16K外推摘要生成案例

Llama3-8B长文本处理实战&#xff1a;16K外推摘要生成案例 1. 引言 随着大语言模型在自然语言理解与生成任务中的广泛应用&#xff0c;长文本处理能力成为衡量模型实用性的重要指标。Meta于2024年4月发布的Meta-Llama-3-8B-Instruct&#xff0c;作为Llama 3系列中等规模的指令…

作者头像 李华