news 2026/6/15 15:30:25

用YOLO11做了个目标检测项目,附完整步骤

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用YOLO11做了个目标检测项目,附完整步骤

用YOLO11做了个目标检测项目,附完整步骤

1. 这不是又一个“安装教程”,而是真正在跑通的实操记录

你可能已经看过不少YOLO系列的介绍文章——讲架构、列参数、贴性能对比图。但真正卡在“我的代码跑不起来”“训练没反应”“推理结果全是空框”的人,从来不在少数。

这篇文章不一样。它不讲YOLO11有多先进,也不堆砌mAP和GFLOPs数据。它只记录我在真实镜像环境里,从打开终端到看到第一个检测框的全过程:哪些命令必须敲、哪些路径不能错、哪些报错能忽略、哪些提示意味着成功。所有操作均基于你手头已有的YOLO11镜像(含完整可运行环境),无需额外配置CUDA或PyTorch,开箱即用。

如果你正对着黑乎乎的终端发愁,不知道下一步该cd进哪个文件夹,或者train.py运行后屏幕静默三分钟——请放心往下看。每一步,我都替你试过了。

2. 镜像启动后,第一件事不是写代码,是确认环境

别急着跑模型。先花30秒确认你真的站在了正确的起点上。

2.1 进入项目主目录

镜像文档明确写了这行命令:

cd ultralytics-8.3.9/

请务必执行。这不是可选项。YOLO11的训练脚本、配置文件、权重都在这个目录下。如果你跳过这步,在家目录或jupyter根目录直接运行python train.py,会得到清晰但冰冷的报错:

ModuleNotFoundError: No module named 'ultralytics'

或更隐蔽的:

FileNotFoundError: [Errno 2] No such file or directory: 'train.py'

执行后,用ls快速扫一眼关键文件是否存在:

ls -l

你应该看到类似这些内容(不必完全一致,但核心文件名要对得上):

drwxr-xr-x 4 root root 4096 Dec 15 10:22 ultralytics/ -rw-r--r-- 1 root root 123 Dec 15 10:22 train.py -rw-r--r-- 1 root root 456 Dec 15 10:22 detect.py -rw-r--r-- 1 root root 789 Dec 15 10:22 coco8.yaml

看到train.pydetect.pycoco8.yamlultralytics/文件夹,说明环境就绪。

2.2 检查Python与Ultralytics版本

虽然镜像是预装好的,但多一重验证更安心。运行:

python --version pip list | grep ultralytics

预期输出(版本号可能略有浮动,但ultralytics必须在列表中):

Python 3.10.12 ultralytics 8.3.9

如果ultralytics没出现,说明镜像环境异常,请重启实例并重试第一步。不要尝试手动pip install——镜像已固化依赖,强行安装可能破坏环境一致性。

3. 用最简方式,让YOLO11“动”起来

别一上来就训COCO。先让模型“说句话”,证明它听懂了你的指令。

3.1 一行命令,完成首次推理

ultralytics-8.3.9/目录下,执行:

python detect.py --source assets/bus.jpg --weights yolov11n.pt --conf 0.25 --imgsz 640

注意几个关键点:

  • --source assets/bus.jpg:镜像自带示例图,路径固定,别自己找图替换;
  • --weights yolov11n.pt:使用轻量级预训练权重,启动最快;
  • --conf 0.25:降低置信度阈值,避免因默认0.5太高而“看不见框”;
  • --imgsz 640:统一输入尺寸,兼容性最好。

运行后,你会看到类似这样的日志流:

Ultralytics YOLOv11 Python-3.10.12 torch-2.3.0+cu121 CUDA:0 (Tesla T4) ... Results saved to runs/detect/predict

成功标志:终端末尾出现Results saved to runs/detect/predict,且runs/detect/predict/目录下生成了bus.jpg(带红框的检测结果图)。

小技巧:如果想立刻查看效果,不用下载图片。在Jupyter中新建notebook,输入:

from IPython.display import Image, display display(Image('runs/detect/predict/bus.jpg'))

红框、标签、置信度分数一目了然。

3.2 如果卡住或报错?先看这三点

现象最可能原因解决动作
终端长时间无输出,光标闪烁GPU未被识别或显存不足执行nvidia-smi,确认有GPU进程;改用yolov11n.pt(最小模型)重试
报错No module named 'ultralytics'不在ultralytics-8.3.9/目录执行cd ultralytics-8.3.9/,再运行命令
报错File not found: yolov11n.pt权重文件名拼写错误镜像内实际文件名是yolo11n.pt(不是yolov11n.pt!),修正为--weights yolo11n.pt

记住:YOLO11的权重文件前缀是yolo11,不是yolov11。这是官方命名,也是新手最容易输错的地方。

4. 训练自己的数据:从准备到收敛,只改3个地方

很多教程把数据集准备说得云山雾罩。其实对于YOLO11,只要结构对,两分钟就能搭好。

4.1 数据集目录结构,严格按这个来

假设你要训一个“检测办公室椅子”的小项目,数据放在my_chair/目录下。它的结构必须是:

my_chair/ ├── images/ │ ├── train/ │ │ ├── img1.jpg │ │ └── img2.jpg │ └── val/ │ ├── img3.jpg │ └── img4.jpg ├── labels/ │ ├── train/ │ │ ├── img1.txt │ │ └── img2.txt │ └── val/ │ ├── img3.txt │ └── img4.txt └── my_chair.yaml

关键细节:

  • images/labels/必须同级;
  • train/val/子目录必须存在(哪怕val/里只有1张图);
  • .txt标签文件必须与同名.jpg在同一级目录(如img1.jpg对应img1.txt);
  • my_chair.yaml是你的数据集配置文件,内容极简:
train: ../my_chair/images/train val: ../my_chair/images/val nc: 1 names: ['chair']

nc: 1表示1个类别;names: ['chair']是类别名,必须是列表格式,单类别也加方括号。

4.2 修改训练脚本,只动3行

打开train.py,找到这几行(通常在文件末尾附近):

if __name__ == '__main__': model = YOLO('yolo11n.pt') results = model.train(data='coco8.yaml', epochs=100, imgsz=640)

改成:

if __name__ == '__main__': model = YOLO('yolo11n.pt') # 保持不变 results = model.train(data='../my_chair/my_chair.yaml', epochs=50, imgsz=640)

仅3处修改:

  • data=路径指向你的my_chair.yaml(注意..返回上一级);
  • epochs=50:小数据集50轮足够,避免过拟合;
  • 其他参数(imgsz,batch,device)全部保留默认,不碰。

保存文件,运行:

python train.py

你会看到实时训练日志,包括每轮的box_loss,cls_loss,mAP50-95等指标。训练完成后,模型自动保存在runs/train/exp/weights/best.pt

成功标志:runs/train/exp/weights/目录下出现best.ptlast.pt两个文件。

5. 验证效果:用自己训的模型,检测新图

训练完不验证,等于没训。用刚生成的best.pt跑一次检测:

python detect.py --source assets/zidane.jpg --weights runs/train/exp/weights/best.pt --conf 0.3
  • --source换成任意你想测的图(assets/下还有zidane.jpg,dog.jpg);
  • --weights指向你训出的best.pt
  • --conf 0.3略微调低阈值,让结果更丰富。

结果图同样保存在runs/detect/predict/下。打开它,看红框是否精准落在椅子上——这才是闭环的最后一环。

6. 常见问题直击:那些文档里没写的“坑”

6.1 Jupyter里跑不起来train.py?换种姿势

镜像支持Jupyter,但直接在notebook里!python train.py常因路径或环境变量失败。推荐做法:

  1. 在Jupyter左侧文件浏览器,进入ultralytics-8.3.9/目录;
  2. 新建一个.py文件(如my_train.py),把修改后的训练代码粘贴进去;
  3. 在终端(非notebook)中执行:cd ultralytics-8.3.9 && python my_train.py

这样既利用Jupyter编辑便利,又保证执行环境纯净。

6.2 训练中途断了,能续吗?

能。YOLO11原生支持断点续训。只需把train.py里的model.train(...)改成:

results = model.train( data='../my_chair/my_chair.yaml', epochs=100, imgsz=640, resume=True # 👈 加这一行 )

它会自动读取runs/train/exp/weights/last.pt继续训练。

6.3 想换GPU设备?不用改代码

镜像已预装CUDA驱动。若机器有多个GPU,只需在命令后加:

python train.py --device 1 # 使用第1号GPU(编号从0开始)

或指定多卡:

python train.py --device 0,1 # 同时用GPU 0和1

无需修改Python代码,命令行参数直接生效。

7. 总结:你刚刚完成的,是一套可复用的目标检测工作流

回顾一下,你亲手走通了:

  • 环境确认:cd进对目录、验证ultralytics可用;
  • 快速验证:一行命令跑通预训练模型推理;
  • 数据准备:建立标准YOLO格式数据集,写极简yaml;
  • 模型训练:修改3个参数,启动训练并获得best.pt;
  • 效果验证:用自训模型检测新图,闭环验证。

这五步,就是工业界落地YOLO项目的最小可行路径。它不追求SOTA精度,但保证100%可运行、可调试、可交付。后续你可以:

  • yolo11n.pt换成yolo11m.pt提升精度;
  • my_chair.yaml里增加test: ../my_chair/images/test做最终评估;
  • model.export(format='onnx')导出ONNX部署到边缘设备。

技术的价值,永远在于它能否解决眼前的问题。而你现在,已经拥有了那个“能解决问题”的能力。


获取更多AI镜像

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

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

动手试了PyTorch通用镜像,JupyterLab直接可用真方便

动手试了PyTorch通用镜像,JupyterLab直接可用真方便 1. 开箱即用的体验:不用折腾环境,专注写代码 以前每次开始一个新项目,光是搭环境就要花掉大半天——装Python版本、配CUDA驱动、pip install一堆包、解决依赖冲突、调试Jupyt…

作者头像 李华
网站建设 2026/6/15 10:43:59

用Z-Image-Turbo做萌宠写真和产品设计,这些提示词技巧太实用了

用Z-Image-Turbo做萌宠写真和产品设计,这些提示词技巧太实用了 1. 为什么选Z-Image-Turbo做创意设计? 你有没有试过花一小时调参数、改提示词,就为了生成一张像样的宠物照片?或者为新品咖啡杯折腾半天,出来的图不是反…

作者头像 李华
网站建设 2026/6/10 12:43:59

Clawdbot+Qwen3-32B惊艳效果:复杂SQL生成+数据库Schema理解真实案例

ClawdbotQwen3-32B惊艳效果:复杂SQL生成数据库Schema理解真实案例 1. 这不是普通SQL助手,而是真正“懂”数据库的AI伙伴 你有没有遇到过这样的场景:手头有一张结构复杂的订单表,字段多达27个,关联着用户、商品、物流…

作者头像 李华
网站建设 2026/6/15 11:49:39

DeerFlow多场景落地:覆盖科研/金融/媒体的AI应用

DeerFlow多场景落地:覆盖科研/金融/媒体的AI应用 1. DeerFlow是什么:不只是一个工具,而是你的研究搭档 你有没有过这样的经历:想快速了解某个前沿技术的最新进展,却要在几十篇论文、上百条新闻和各种论坛讨论中反复筛…

作者头像 李华
网站建设 2026/6/15 8:16:57

十分钟完成微调!这才是大模型落地该有的速度

十分钟完成微调!这才是大模型落地该有的速度 你有没有过这样的经历:花两天配环境、三天调参数、一周等训练,最后发现模型还是答非所问?微调大模型,本不该是场耗时耗力的苦役。今天要介绍的这个镜像,把整个…

作者头像 李华
网站建设 2026/6/15 11:49:24

Glyph部署总结:单卡显存占用竟然这么低

Glyph部署总结:单卡显存占用竟然这么低 1. 为什么Glyph的显存表现让人眼前一亮 你有没有试过在单张4090D上跑一个能处理万字长文本的大模型?不是“理论上支持”,而是真正在网页界面里流畅输入、点击、等待几秒就出结果的那种——Glyph做到了…

作者头像 李华