news 2026/4/23 16:39:12

快速上手YOLO11:Jupyter和SSH使用详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
快速上手YOLO11:Jupyter和SSH使用详解

快速上手YOLO11:Jupyter和SSH使用详解

YOLO11是Ultralytics最新发布的实时目标检测模型,继承了YOLOv8的易用性与工程友好性,同时在精度、速度和泛化能力上进一步优化。本镜像已预装完整可运行环境,无需手动配置CUDA、PyTorch或Ultralytics依赖——开箱即用,专注模型开发与实验。

本文不讲原理、不谈论文,只聚焦一件事:如何在5分钟内真正跑起来YOLO11。我们将手把手带你通过Jupyter Notebook交互式调试模型,再用SSH连接进行命令行训练与部署。所有操作均基于镜像内置环境,零报错、零踩坑、零环境冲突。


1. Jupyter Notebook:可视化调试YOLO11

Jupyter是快速验证模型行为、调试预处理/后处理逻辑、可视化结果最直观的方式。本镜像已预启动Jupyter服务,无需安装、无需端口转发,浏览器直连即可开始编码。

1.1 访问Jupyter界面

镜像启动后,控制台会输出类似以下信息:

[I 10:22:34.123 LabApp] JupyterLab application directory is /opt/conda/share/jupyter/lab [I 10:22:34.456 LabApp] Serving notebooks from local directory: /workspace [I 10:22:34.456 LabApp] JupyterLab server extension is enabled [I 10:22:34.456 LabApp] The Jupyter Notebook is running at: [I 10:22:34.456 LabApp] http://localhost:8888/?token=abc123def456...

关键信息

  • 服务根目录为/workspace(所有文件默认保存在此)
  • 端口为8888
  • Token为一串随机字符(每次启动不同)

实操提示:复制完整URL(含?token=...),粘贴到本地浏览器地址栏,回车即可进入Jupyter Lab界面。若使用远程服务器,请确保8888端口已映射并放行防火墙。

1.2 创建第一个YOLO11推理脚本

进入Jupyter Lab后,点击左上角+ NewPython File,新建一个空文件,重命名为quick_infer.py,然后粘贴以下代码:

# quick_infer.py from ultralytics import YOLO import cv2 import numpy as np # 1. 加载预训练模型(镜像已内置yolo11s.pt) model = YOLO("yolo11s.pt") # 2. 读取示例图像(镜像自带bus.jpg) img_path = "ultralytics/assets/bus.jpg" img = cv2.imread(img_path) assert img is not None, f"无法读取图像: {img_path}" # 3. 模型推理(自动选择GPU) results = model(img) # 4. 可视化结果并保存 annotated_img = results[0].plot() # 自动绘制边界框+标签 cv2.imwrite("bus_result.jpg", annotated_img) print(f" 推理完成!结果已保存至 bus_result.jpg") print(f" 检测到 {len(results[0].boxes)} 个目标") print(f" 类别: {results[0].names}")

点击右上角 ▶Run按钮执行。几秒后,你将看到终端输出类似:

推理完成!结果已保存至 bus_result.jpg 检测到 4 个目标 类别: {0: 'person', 1: 'bicycle', 2: 'car', 3: 'motorcycle', ...}

此时左侧文件列表中会出现bus_result.jpg—— 点击即可在浏览器中查看带标注的检测结果图。

1.3 调试预处理:对比LetterBox与warpAffine

YOLO11支持两种主流预处理方式。我们用Jupyter快速验证差异:

  1. 新建一个Notebook(.ipynb),执行以下单元格:
# 单元格1:加载图像与模型 import cv2 import numpy as np from ultralytics.data.augment import LetterBox from ultralytics.utils.ops import scale_boxes img = cv2.imread("ultralytics/assets/bus.jpg") h, w = img.shape[:2] print(f"原始尺寸: {w}x{h}")
# 单元格2:LetterBox预处理(保持宽高比,灰边填充) letterbox = LetterBox(new_shape=640, stride=32, auto=True) img_lb = letterbox(image=img) print(f"LetterBox后尺寸: {img_lb.shape[1]}x{img_lb.shape[0]}") # 通常为640x480等
# 单元格3:warpAffine预处理(固定640x640,仿射缩放+灰边) scale = min(640 / w, 640 / h) ox = (640 - scale * w) / 2 oy = (640 - scale * h) / 2 M = np.array([[scale, 0, ox], [0, scale, oy]], dtype=np.float32) img_wa = cv2.warpAffine(img, M, (640, 640), borderMode=cv2.BORDER_CONSTANT, borderValue=(114, 114, 114)) print(f"warpAffine后尺寸: {img_wa.shape[1]}x{img_wa.shape[0]}") # 恒为640x640

观察输出:对于1080x810的bus.jpg,LetterBox输出为640x480(无灰边),而warpAffine恒为640x640(上下/左右有灰边)。这对后续NMS输出框数量(6300 vs 8400)有直接影响,但镜像已默认适配两种模式。

1.4 实时修改参数:动态调整置信度与IOU阈值

Jupyter的优势在于交互式调试。在Notebook中新增单元格:

# 使用自定义参数推理(无需重新加载模型) results_custom = model( "ultralytics/assets/bus.jpg", conf=0.3, # 置信度阈值:0.3→保留更多低分框 iou=0.6, # NMS IOU阈值:0.6→更严格抑制重叠框 save=True, # 自动保存结果图到runs/detect/predict/ show=False # 不弹窗显示(适合服务器环境) ) print(f" conf=0.3, iou=0.6 下检测到 {len(results_custom[0].boxes)} 个目标")

执行后,runs/detect/predict/目录下会生成带新参数标注的图片。你可以反复修改confiou值,实时观察效果变化——这是命令行无法提供的调试效率。


2. SSH连接:命令行训练与批量推理

当项目进入工程化阶段(如训练自定义数据集、批量处理视频、集成到CI/CD流程),SSH命令行是更稳定、更可控的选择。本镜像已预配置SSH服务,支持密码/密钥登录。

2.1 获取SSH连接信息

镜像启动后,控制台会输出SSH访问提示,例如:

SSH服务已就绪 用户名: user 密码: 123456 端口: 2222 连接命令: ssh -p 2222 user@your-server-ip

实操提示:若使用Docker,确保启动时添加-p 2222:22映射;若使用云服务器,请在安全组中放行2222端口。

2.2 登录并验证环境

在本地终端执行:

ssh -p 2222 user@192.168.1.100 # 输入密码 123456

登录成功后,执行基础检查:

# 查看CUDA与PyTorch状态 nvidia-smi -L python -c "import torch; print(f'PyTorch {torch.__version__}, CUDA可用: {torch.cuda.is_available()}')" # 查看Ultralytics版本与YOLO11支持 python -c "from ultralytics import __version__; print('Ultralytics:', __version__)" # 列出预置模型文件 ls -lh yolo11*.pt # 输出: -rw-r--r-- 1 user user 12M Jan 1 00:00 yolo11s.pt

所有命令应返回预期结果,表明深度学习环境已就绪。

2.3 三步完成自定义数据集训练

假设你已准备好COCO格式数据集(dataset/目录下含train/val/test子目录及labels/),训练流程极简:

步骤1:编写配置文件

/workspace下创建my_dataset.yaml

train: ../dataset/train val: ../dataset/val test: ../dataset/test nc: 3 # 类别数 names: ['cat', 'dog', 'bird'] # 类别名称
步骤2:启动训练(单卡)
# 进入Ultralytics主目录(镜像已预装) cd ultralytics-8.3.9/ # 启动训练(自动使用GPU) python train.py \ --data ../my_dataset.yaml \ --cfg models/yolo11/yolo11s.yaml \ --weights yolo11s.pt \ --epochs 100 \ --batch 16 \ --name my_yolo11_exp

⚡ 镜像优化:训练日志自动保存至runs/train/my_yolo11_exp/,包含实时loss曲线、mAP指标、PR曲线及验证集预测图。无需额外配置TensorBoard。

步骤3:验证训练结果

训练完成后,直接测试:

# 在验证集上评估 python val.py \ --data ../my_dataset.yaml \ --weights runs/train/my_yolo11_exp/weights/best.pt \ --task detect # 对单张图推理并保存 python detect.py \ --source ../dataset/val/images/001.jpg \ --weights runs/train/my_yolo11_exp/weights/best.pt \ --save-txt --save-conf

输出结果将保存在runs/detect/predict/,含标注图与坐标文本。

2.4 批量视频处理:一行命令生成检测视频

YOLO11原生支持视频输入。处理监控视频流只需:

# 将video.mp4中的每一帧检测后合成为新视频 python detect.py \ --source ../videos/video.mp4 \ --weights yolo11s.pt \ --conf 0.5 \ --save-vid \ --project runs/detect \ --name video_result # 输出路径: runs/detect/video_result/video.mp4

效率提示:镜像已编译OpenCV with CUDA backend,视频解码与后处理加速3倍以上。实测1080p视频可达25FPS(RTX 4090)。


3. 文件系统与路径规范

镜像采用清晰、一致的路径设计,避免新手因路径错误导致FileNotFoundError。以下是核心目录说明:

路径用途是否可写示例内容
/workspace工作区(默认挂载点)你的代码、数据集、训练日志、输出结果
/ultralytics-8.3.9Ultralytics源码主目录否(只读)train.py,val.py,detect.py,models/
/ultralytics/assets官方示例资源bus.jpg,zidane.jpg,coco8.yaml
/models预训练权重存放处yolo11s.pt,yolo11m.pt,yolo11l.pt
/runs默认输出目录train/,detect/,val/子目录

最佳实践:所有自定义操作(创建数据集、写脚本、保存结果)请始终在/workspace下进行。镜像启动时会自动将该目录设为当前工作路径(pwd返回/workspace)。


4. 常见问题与解决方案

Q1:Jupyter打开后显示“Kernel starting, please wait…”且长时间无响应?

  • 原因:浏览器缓存或Token过期。
  • 解决:关闭页面 → 复制控制台最新输出的完整URL(含新Token)→ 重新粘贴访问。

Q2:SSH登录时报错“Connection refused”?

  • 原因:端口未正确映射或SSH服务未启动。
  • 解决
    # 检查容器内SSH服务状态 docker exec -it your-container-name ps aux | grep sshd # 若无输出,重启容器并确认启动命令含`-p 2222:22`

Q3:运行python train.py报错“No module named 'ultralytics'”?

  • 原因:未进入Ultralytics目录。
  • 解决:务必先执行cd ultralytics-8.3.9/,再运行训练命令。

Q4:检测结果图中文字显示为方块(乱码)?

  • 原因:OpenCV默认字体不支持中文。
  • 解决:在绘图前添加中文字体支持(Jupyter中):
    from PIL import Image, ImageDraw, ImageFont import numpy as np def cv2AddChineseText(img, text, position, textColor=(0, 255, 0), textSize=30): if isinstance(img, np.ndarray): img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) draw = ImageDraw.Draw(img) font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", textSize) draw.text(position, text, textColor, font=font) return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)

Q5:训练时显存不足(OOM)?

  • 解决:镜像提供梯度累积方案,降低显存压力:
    python train.py \ --data my_data.yaml \ --weights yolo11s.pt \ --batch 8 \ # 物理batch size --accumulate 2 \ # 梯度累积步数 → 等效batch=16 --epochs 100

5. 进阶技巧:提升开发效率

5.1 使用镜像内置的VS Code Server(免安装IDE)

镜像预装Code Server,浏览器访问http://your-server:8080即可获得完整VS Code体验:

  • 支持Python IntelliSense、调试器、Git集成
  • 直接编辑/workspace下所有文件
  • 终端内置,无缝切换Jupyter/SSH命令行

5.2 快速导出ONNX模型(适配TensorRT/C++部署)

一键导出符合工业部署标准的ONNX:

cd ultralytics-8.3.9/ python export.py \ --format onnx \ --weights yolo11s.pt \ --dynamic \ --simplify \ --opset 17 \ --imgsz 640 # 输出: yolo11s.onnx(输入: images[1,3,640,640], 输出: output[1,8400,84])

5.3 多模型对比实验(自动化脚本)

/workspace下创建benchmark.py,批量测试不同模型:

import time from ultralytics import YOLO models = ["yolo11s.pt", "yolo11m.pt", "yolo11l.pt"] img = "ultralytics/assets/bus.jpg" for m in models: model = YOLO(m) start = time.time() _ = model(img, verbose=False) end = time.time() print(f"{m:12s} | 推理耗时: {(end-start)*1000:.1f}ms")

总结

本文围绕YOLO11镜像的核心使用场景,系统梳理了两大生产力工具的落地方法:

  • Jupyter Notebook:以交互式方式快速验证模型、调试预处理逻辑、可视化结果。重点掌握model()参数动态调整、results[0].plot()结果渲染、以及LetterBoxwarpAffine预处理差异的实测对比。
  • SSH命令行:以工程化方式完成数据集训练、批量视频处理、模型导出。关键在于路径规范(始终在/workspace操作)、配置文件编写(YAML结构)、以及train.py/val.py/detect.py三大脚本的参数组合技巧。

YOLO11不是对YOLOv8的颠覆,而是务实的演进——它保留了你已熟悉的API与工作流,同时在底层性能与易用性上做了扎实优化。本镜像的价值,正在于帮你跳过所有环境配置的“脏活累活”,把时间真正花在模型调优与业务创新上。

现在,你已经具备了独立运行、调试、训练YOLO11的全部能力。下一步,就是打开Jupyter,加载一张自己的图片,敲下第一行model(),亲眼见证AI“看见”世界的过程。

--- > **获取更多AI镜像** > > 想探索更多AI镜像和应用场景?访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_source=mirror_blog_end),提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 14:32:58

效率提升实战:用 Python 毕业设计实现高内聚低耦合的工程架构

效率提升实战:用 Python 毕业设计实现高内聚低耦合的工程架构 摘要:许多学生在完成“关于 Python 的毕业设计”时,常陷入代码混乱、重复开发和部署困难的困境,导致项目效率低下且难以维护。本文从工程化视角出发,通过模…

作者头像 李华
网站建设 2026/4/23 15:15:19

焕新Windows任务栏:让桌面颜值秒升的极简美化工具

焕新Windows任务栏:让桌面颜值秒升的极简美化工具 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 每天面对电脑屏幕&#xff…

作者头像 李华
网站建设 2026/4/23 14:54:29

MacOS如何截图

快捷键方式 操作快捷键功能说明全屏截图Command (⌘) Shift 3截取整个屏幕,自动保存到桌面区域截图Command (⌘) Shift 4拖动选择区域,松开即截图保存窗口截图Command (⌘) Shift 4 → 按 Space光标变相机图标,点击窗口截图&#xff0…

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

AI智能证件照制作工坊是否开源?代码结构与二次开发指南

AI智能证件照制作工坊是否开源?代码结构与二次开发指南 1. 这不是PS插件,而是一个能跑在你电脑上的“证件照工厂” 你有没有过这种经历:临时要交简历照片,翻遍手机相册却找不到一张合适的正面免冠照;赶着办护照&…

作者头像 李华
网站建设 2026/4/23 14:06:47

茉莉花插件:让科研工作者告别中文文献管理困境的效率革命

茉莉花插件:让科研工作者告别中文文献管理困境的效率革命 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件,用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum &#x1f50…

作者头像 李华