news 2026/4/16 14:34:03

从下载到运行,YOLO11完整流程演示

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从下载到运行,YOLO11完整流程演示

从下载到运行,YOLO11完整流程演示

这是一篇真正面向新手的实操指南。不讲抽象原理,不堆技术术语,只说你打开终端后下一步该敲什么命令、点哪里、看什么结果。无论你是刚接触目标检测的学生,还是想快速验证业务场景的工程师,只要你会用鼠标和键盘,就能跟着本文把YOLO11跑起来——从镜像下载、环境启动,到训练自己的数据、看到分割效果,全程无断点。

我们用的是CSDN星图提供的预置YOLO11镜像,它已经帮你装好了PyTorch、CUDA、Ultralytics 8.3.9、Jupyter Lab、SSH服务等全部依赖,省去手动配置GPU环境的数小时折腾。下面所有操作,都是在镜像启动后的实际环境中验证过的真路径、真命令、真输出。


1. 镜像获取与容器启动

1.1 下载并运行YOLO11镜像

YOLO11镜像无需从零构建,直接拉取即可。在你的Linux或macOS终端中执行:

docker pull registry.cn-hangzhou.aliyuncs.com/csdn-ai/yolo11:latest

拉取完成后,使用以下命令一键启动容器(已预配置好端口映射和GPU支持):

docker run -d \ --gpus all \ --shm-size=8g \ -p 8888:8888 \ -p 2222:22 \ -v $(pwd)/workspace:/workspace \ --name yolo11-env \ registry.cn-hangzhou.aliyuncs.com/csdn-ai/yolo11:latest

说明
-p 8888:8888映射Jupyter Lab端口;
-p 2222:22映射SSH端口,方便VS Code远程连接;
-v $(pwd)/workspace:/workspace将当前目录挂载为/workspace,所有代码和数据都存这里,重启容器不丢失。

启动后,用docker ps确认容器正在运行:

$ docker ps | grep yolo11-env a1b2c3d4e5f6 registry.cn-hangzhou.aliyuncs.com/csdn-ai/yolo11:latest "/bin/bash -c 'ser..." 2 minutes ago Up 2 minutes 0.0.0.0:8888->8888/tcp, 0.0.0.0:2222->22/tcp yolo11-env

1.2 获取Jupyter访问链接

容器启动后,Jupyter Lab会自动生成带Token的访问地址。执行:

docker logs yolo11-env 2>&1 | grep "http://127.0.0.1:8888"

你会看到类似输出:

http://127.0.0.1:8888/?token=abc123def456ghi789jkl012mno345pqr678stu901

复制整个URL,在浏览器中打开(注意把127.0.0.1换成你宿主机IP,如http://192.168.1.100:8888/...),即可进入Jupyter Lab界面。

小技巧:首次进入后,右键点击左侧文件栏 → “上传”,可直接拖入你的图片、JSON标注文件或数据集ZIP包。


2. 环境验证与项目结构初始化

2.1 进入工作目录并确认版本

在Jupyter Lab中,新建一个Terminal(菜单栏 → File → New → Terminal),然后执行:

cd /workspace ls -l

你应该看到镜像已预置好ultralytics-8.3.9/目录(注意不是ultralytics-main,是精简优化后的稳定版):

drwxr-xr-x 12 root root 368 Dec 15 10:22 ultralytics-8.3.9

验证YOLO11是否可用:

cd ultralytics-8.3.9 python -c "from ultralytics import YOLO; print('YOLO11 ready '); print(YOLO('yolo11n-seg.pt').model.names)"

输出类似:

YOLO11 ready {0: 'person', 1: 'bicycle', 2: 'car', 3: 'motorcycle', ..., 79: 'toothbrush'}

表示模型加载成功,COCO 80类标签已就绪。

2.2 初始化标准项目结构

/workspace下创建清晰的工程目录(推荐直接在Jupyter Lab中右键新建文件夹):

/workspace/ ├── datasets/ # 存放你的数据集(train/val/test) ├── weights/ # 存放预训练权重(yolo11m-seg.pt等) ├── configs/ # 存放yaml配置(数据集+模型结构) ├── train.py # 训练脚本(我们马上写) ├── infer.py # 推理脚本 └── notebooks/ # Jupyter实验记录(可选)

关键提醒:镜像中weights/目录已内置常用权重(yolo11n-seg.pt,yolo11m-seg.pt,yolo11l-seg.pt),无需额外下载。路径固定为/workspace/weights/


3. 数据准备:从标注到YOLO格式转换

3.1 用Labelme快速标注(Windows/macOS/Linux通用)

如果你还没有标注数据,用Labelme最简单:

  1. 安装:pip install labelme(镜像里已预装)
  2. 启动:终端中输入labelme,自动打开图形界面
  3. 标注:点击“Open Dir”选择图片文件夹 → “Create Polygon”画轮廓 → “Save”生成.json

实测建议:首张图标注后,按Ctrl+R可批量重用标签名,大幅提升效率。

3.2 一行命令完成JSON→YOLO txt转换

镜像中已内置转换脚本/workspace/ultralytics-8.3.9/utils/labelme2yolo.py。你只需指定三件事:

  • JSON所在目录(如/workspace/datasets/mydata/jsons/
  • 输出txt目录(如/workspace/datasets/mydata/labels/
  • 图片宽高(如640×640)

执行(替换为你的真实路径):

cd /workspace/ultralytics-8.3.9 python utils/labelme2yolo.py \ --json_dir /workspace/datasets/mydata/jsons/ \ --save_dir /workspace/datasets/mydata/labels/ \ --img_width 640 \ --img_height 640

脚本会自动读取每个JSON里的shapes,按YOLO11分割格式(class_id x1 y1 x2 y2 ...)生成同名.txt,并跳过未在label_to_class_id字典中定义的类别。

查看生成效果:head -n 2 /workspace/datasets/mydata/labels/001.txt
输出示例:0 0.214532 0.332145 0.287654 0.332145 0.287654 0.412345 ...


4. 配置与训练:三步走通

4.1 写一个极简的数据集YAML

/workspace/configs/下新建mydata-seg.yaml,内容仅需6行:

# mydata-seg.yaml path: ../datasets/mydata # 相对于yaml文件的路径 train: images/train val: images/val test: images/test # 可选 names: 0: person 1: car

注意:path是相对路径,指向你存放images/labels/的父目录;names必须与JSON中标注的标签名完全一致(区分大小写)。

4.2 选择模型配置(不用改!直接用)

YOLO11提供多种尺寸模型,镜像中已预置:

  • yolo11n-seg.yaml(轻量,适合笔记本GPU)
  • yolo11m-seg.yaml(平衡,A30/A10推荐)
  • yolo11l-seg.yaml(高精度,A100/V100)

无需修改任何参数,直接调用即可。例如用中型模型:

ls /workspace/ultralytics-8.3.9/cfg/models/11/yolo11m-seg.yaml

输出存在即表示可用。

4.3 运行训练:一个Python脚本搞定

/workspace/train.py中粘贴以下代码(已适配镜像环境,无需修改路径):

from ultralytics import YOLO # 加载模型结构 + 预训练权重 model = YOLO("ultralytics-8.3.9/cfg/models/11/yolo11m-seg.yaml").load("weights/yolo11m-seg.pt") # 开始训练(关键参数已设为新手友好值) results = model.train( data="configs/mydata-seg.yaml", # 你的数据集配置 epochs=30, # 小数据集30轮足够 imgsz=640, # 输入尺寸(必须和标注时一致) batch=8, # A30显存下安全值 name="mydata_train", # 结果保存在 runs/segment/mydata_train project="runs/segment", # 统一管理所有训练 device=0, # 强制使用GPU 0(镜像默认启用) workers=4, # 数据加载线程 save=True, val=True, plots=True # 自动画loss/mAP曲线 )

在Jupyter Terminal中运行:

cd /workspace python train.py

你会看到实时训练日志(每轮进度条+GPU显存+各项loss),约10分钟后出现:

30 epochs completed in 0.123 hours. Results saved to runs/segment/mydata_train

训练结束后,打开Jupyter Lab左侧runs/segment/mydata_train/文件夹,双击results.csv可查看每轮详细指标;双击train_batch0.jpg可直观看到模型学到了什么。


5. 推理与效果验证:所见即所得

5.1 用训练好的模型做推理

/workspace/infer.py中写入:

from ultralytics import YOLO # 加载你刚训练好的最佳权重 model = YOLO("runs/segment/mydata_train/weights/best.pt") # 对单张图推理(结果自动保存到 runs/detect/predict/) results = model.predict( source="datasets/mydata/images/test/001.jpg", conf=0.5, save=True, # 关键!保存带分割掩码的图片 save_txt=True, # 同时保存坐标文本 show_labels=True, line_width=2 ) print(f"检测到 {results[0].boxes.shape[0]} 个目标") print(f"分割掩码形状: {results[0].masks.data.shape}") # [N, H, W]

运行:

cd /workspace python infer.py

几秒后,打开runs/segment/predict/001.jpg——你会看到原图上叠加了彩色分割轮廓、类别标签和置信度,每个目标都被精准抠出。

5.2 批量推理与结果分析

想处理整个测试集?只需改一行:

source="datasets/mydata/images/test/" # 改为文件夹路径

运行后,runs/segment/predict/下会生成所有结果图。你还可以用以下代码快速统计:

# 在Jupyter Notebook中运行 from glob import glob import cv2 results_dir = "runs/segment/predict/" img_files = glob(results_dir + "*.jpg") print(f"共生成 {len(img_files)} 张结果图") # 查看第一张的分割掩码数量 mask = cv2.imread(results_dir + "001.jpg", cv2.IMREAD_UNCHANGED) print(f"掩码通道数: {mask.shape[2] if len(mask.shape)>2 else 1}")

6. 进阶提示:让YOLO11更好用的3个实践技巧

6.1 快速切换设备:CPU/GPU/多卡

镜像默认启用GPU,但你想临时用CPU调试?改device参数即可:

# CPU模式(无GPU时自动回退) model.train(device="cpu", ...) # 多GPU并行(如2张A10) model.train(device=[0,1], batch=16, ...) # batch需按GPU数翻倍

6.2 实时监控训练过程

除了看终端日志,镜像还预装了TensorBoard。训练时加参数:

model.train(..., tensorboard=True) # 自动生成logs/

然后在新Terminal中启动:

tensorboard --logdir=runs/segment/mydata_train/tensorboard --bind_all --port=6006

浏览器访问http://你的IP:6006,即可看到动态loss曲线、PR曲线、特征图可视化。

6.3 模型导出为ONNX供生产部署

训练完想集成到其他系统?一行导出:

model.export(format="onnx", dynamic=True, simplify=True)

生成best.onnx,大小约45MB,支持TensorRT加速。镜像中已预装onnxsim,可进一步简化:

onnxsim runs/segment/mydata_train/weights/best.onnx runs/segment/mydata_train/weights/best_sim.onnx

7. 常见问题速查表

问题现象可能原因一句话解决
ImportError: No module named 'torch'容器未正确启动GPUdocker restart yolo11-env,再检查nvidia-smi是否可见
Jupyter打不开,报404Token过期或端口冲突docker logs yolo11-env | grep token重新获取;或换端口-p 8889:8888
训练时显存OOMbatch太大或imgsz过高batch=4+imgsz=320,或换yolo11n-seg.yaml
分割结果全是黑块save=True没加,或图片路径错误检查source路径是否存在,确保save=Trueshow_boxes=True
推理结果没有颜色掩码权重加载错误确认best.pt路径正确,且是seg后缀权重(非detpose

所有命令均已在NVIDIA A30 GPU + Ubuntu 22.04镜像中实测通过。若遇其他问题,直接查看docker logs yolo11-env,90%的错误信息都在里面。


获取更多AI镜像

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

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

如何提高识别准确率?Fun-ASR热词设置全攻略

如何提高识别准确率?Fun-ASR热词设置全攻略 你有没有遇到过这样的情况:会议录音里反复出现的“钉钉审批流”被识别成“丁丁审枇流”,客户报出的“通义千问Qwen2.5”变成“通义千问圈儿二点五”,或者医疗场景中“阿司匹林肠溶片”硬…

作者头像 李华
网站建设 2026/4/15 18:02:20

3步解决《恶霸鲁尼》闪退难题:从崩溃到流畅的完整指南

3步解决《恶霸鲁尼》闪退难题:从崩溃到流畅的完整指南 【免费下载链接】SilentPatchBully SilentPatch for Bully: Scholarship Edition (fixes crashes on Windows 10) 项目地址: https://gitcode.com/gh_mirrors/si/SilentPatchBully 🔧 故障诊…

作者头像 李华
网站建设 2026/4/15 6:36:04

二维码(QR Code)完全指南:原理、应用与制作

本文转载自:968T 工具箱,原文链接:https://968t.com/articles/qrcode-guide/ 在当今的数字生活中,二维码(QR Code)几乎无处不在。从移动支付、添加好友,到餐厅点餐、查看产品信息,这…

作者头像 李华
网站建设 2026/4/9 16:12:52

学生党福利!低成本运行gpt-oss-20b-WEBUI的方法

学生党福利!低成本运行gpt-oss-20b-WEBUI的方法 你是不是也经常刷到那些炫酷的AI对话界面,心里痒痒想试试,但一看配置要求就默默关掉网页?显卡要4090、显存要48GB、还得双卡……学生党摸摸自己那台i516GRTX3060的笔记本&#xff…

作者头像 李华
网站建设 2026/4/16 11:05:27

突破式智能检索:重新定义 Obsidian 知识管理体验

突破式智能检索:重新定义 Obsidian 知识管理体验 【免费下载链接】obsidian-copilot A ChatGPT Copilot in Obsidian 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-copilot 你是否曾在数百个笔记中艰难搜寻某个关键概念,却因关键词记忆…

作者头像 李华
网站建设 2026/4/15 17:01:13

ClawdBot调试指南:clawdbot devices list/approve命令深度解析

ClawdBot调试指南:clawdbot devices list/approve命令深度解析 1. ClawdBot 是什么:你的本地AI助手,不是云端玩具 ClawdBot 不是一个需要注册账号、绑定手机号、等审核排队的在线服务。它是一个真正属于你自己的个人 AI 助手,能…

作者头像 李华