YOLO11新手指南:Jupyter和SSH使用全解析
1. 前言
随着计算机视觉技术的快速发展,YOLO系列模型持续演进,YOLO11作为最新一代目标检测与实例分割框架,在精度、速度和多任务能力上实现了显著提升。对于初学者而言,快速搭建可运行环境并掌握核心开发工具是进入该领域的第一步。
本文基于预置的YOLO11完整可运行镜像,重点讲解如何通过Jupyter Notebook和SSH(Secure Shell)两种主流方式高效使用该深度学习环境。无论你是数据科学新手还是有一定经验的开发者,都能通过本指南快速上手YOLO11项目开发,完成从环境连接到模型训练的全流程操作。
文章将涵盖:
- Jupyter Notebook 的访问与交互式开发技巧
- SSH 远程终端连接配置方法
- 镜像内项目结构说明与基础命令操作
- 模型训练与推理实战示例
帮助你零门槛启动 YOLO11 实验,专注于算法实现而非环境配置。
2. Jupyter Notebook 使用详解
2.1 什么是 Jupyter Notebook?
Jupyter Notebook 是一个开源的 Web 应用程序,允许用户创建和共享包含实时代码、方程、可视化和文本的文档。在深度学习领域,它是进行实验记录、调试模型和展示结果的理想工具。
本 YOLO11 镜像已内置 Jupyter 环境,无需额外安装即可直接使用。
2.2 启动与访问 Jupyter
当你成功启动 YOLO11 镜像后,系统通常会自动运行 Jupyter 服务。你会看到类似以下输出信息:
[I 10:30:45.123 NotebookApp] Serving notebooks from local directory: /workspace [I 10:30:45.124 NotebookApp] The Jupyter Notebook is running at: [I 10:30:45.124 NotebookApp] http://localhost:8888/?token=abc123def456... [I 10:30:45.124 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).此时你可以通过浏览器访问提示中的 URL 地址(如http://localhost:8888/?token=...),即可进入 Jupyter 主界面。
注意:若为远程服务器部署,请确保端口 8888 已开放,并正确配置了反向代理或 SSH 隧道。
2.3 在 Jupyter 中操作 YOLO11 项目
进入 Jupyter 后,你会看到文件目录结构。找到ultralytics-8.3.9/文件夹并进入。
切换至项目根目录
在任意 Notebook 单元格中执行:
import os os.chdir("/workspace/ultralytics-8.3.9") print("当前工作目录:", os.getcwd())这一步确保后续训练脚本能正确加载配置文件和数据路径。
快速运行训练任务
你可以在 Notebook 中直接编写并运行训练代码,例如:
from ultralytics import YOLO # 加载模型配置并初始化权重 model = YOLO("yolo11m-seg.yaml").load("weights/yolo11m-seg.pt") # 开始训练 results = model.train( data="point-offer-seg.yaml", epochs=30, imgsz=640, batch=8, device=0 # 使用 GPU 0 )这种方式便于实时查看损失曲线、评估指标变化,适合调参和实验记录。
2.4 可视化训练过程
Jupyter 的一大优势在于其强大的可视化能力。训练过程中生成的日志图表(如results.png、confusion_matrix.png)可以直接在 Notebook 中显示:
from IPython.display import Image Image(filename='runs/segment/train2/results.png', width=800)此外,还可以利用%matplotlib inline展示自定义分析图,极大提升调试效率。
3. SSH 远程终端使用指南
3.1 为什么使用 SSH?
虽然 Jupyter 提供了图形化交互体验,但在实际工程中,SSH 终端仍是大多数 AI 工程师的首选开发方式。它具有以下优势:
- 更高效的命令行操作
- 支持后台任务运行(如
nohup或tmux) - 易于批量处理脚本和自动化任务
- 资源占用低,适合长时间训练任务
3.2 如何建立 SSH 连接
假设你的 YOLO11 镜像运行在远程服务器或云平台上,获取以下信息后即可连接:
- 服务器 IP 地址(如
192.168.1.100) - 登录用户名(如
user) - 密码或私钥文件(
.pem)
使用终端执行:
ssh user@192.168.1.100 -p 22如果使用密钥认证:
ssh -i ~/.ssh/id_rsa user@192.168.1.100连接成功后,你将获得一个 Linux 命令行环境,可以直接操作 YOLO11 项目。
3.3 常用命令操作流程
进入项目目录
cd ultralytics-8.3.9/这是所有训练和推理操作的基础路径。
查看目录结构
ls -l典型输出如下:
drwxr-xr-x 5 user user 4096 Dec 5 10:00 datasets/ drwxr-xr-x 3 user user 4096 Dec 5 10:00 weights/ drwxr-xr-x 7 user user 4096 Dec 5 10:00 runs/ -rw-r--r-- 1 user user 1234 Dec 5 10:00 train.py -rw-r--r-- 1 user user 567 Dec 5 10:00 infer.py运行训练脚本
python train.py如果你希望在断开 SSH 后仍保持训练进程运行,建议使用nohup或tmux:
nohup python train.py > training.log 2>&1 &该命令将训练日志重定向到training.log,并在后台运行。
监控训练状态
查看 GPU 使用情况:
nvidia-smi查看日志输出:
tail -f training.log或直接查看训练进度图:
cat runs/segment/train2/results.csv | head -104. YOLO11 项目实战:从训练到推理
4.1 数据准备与标注
YOLO11 支持多种任务类型,包括实例分割。推荐使用Labelme工具进行多边形标注。
安装 Labelme
pip install labelme启动标注工具:
labelme选择“创建多边形”模式对图像中的对象进行精细分割标注,保存后生成同名.json文件。
4.2 标签格式转换:JSON → YOLO TXT
YOLO11 使用归一化的多边形坐标格式:
<class-id> <x1> <y1> <x2> <y2> ... <xn> <yn>其中所有坐标值均在[0,1]范围内。
以下是转换脚本示例:
import json import os label_to_class_id = { "person": 0, "bicycle": 1, "car": 2, } def convert_labelme_json_to_yolo(json_file, output_dir, img_width, img_height): with open(json_file, 'r') as f: data = json.load(f) file_name = os.path.splitext(os.path.basename(json_file))[0] txt_path = os.path.join(output_dir, f"{file_name}.txt") with open(txt_path, 'w') as txt_file: for shape in data['shapes']: label = shape['label'] class_id = label_to_class_id.get(label) if class_id is None: continue points = shape['points'] normalized = [(x / img_width, y / img_height) for x, y in points] line = [str(class_id)] for nx, ny in normalized: line.append(f"{nx:.6f}") line.append(f"{ny:.6f}") txt_file.write(" ".join(line) + "\n") if __name__ == "__main__": json_dir = "json_labels" output_dir = "labels" img_width, img_height = 640, 640 os.makedirs(output_dir, exist_ok=True) for fname in os.listdir(json_dir): if fname.endswith(".json"): path = os.path.join(json_dir, fname) convert_labelme_json_to_yolo(path, output_dir, img_width, img_height)运行后将在labels/目录下生成对应的.txt标签文件。
4.3 配置数据集 YAML 文件
在ultralytics/cfg/datasets/下新建point-offer-seg.yaml:
path: ./datasets/seg_point_offer_20240930 train: train/images val: val/images names: 0: person 1: bicycle 2: car请根据实际数据路径修改path字段。
4.4 编写训练脚本
在项目根目录创建train.py:
from ultralytics import YOLO model = YOLO("yolo11m-seg.yaml").load("weights/yolo11m-seg.pt") train_params = { 'data': 'point-offer-seg.yaml', 'epochs': 30, 'imgsz': 640, 'batch': 8, 'device': 0, 'workers': 8, 'optimizer': 'AdamW', 'lr0': 0.001, 'weight_decay': 0.0005, 'warmup_epochs': 3, 'box': 7.5, 'cls': 0.5, 'dfl': 1.5, 'mask_ratio': 4, 'overlap_mask': True, 'hsv_h': 0.2, 'hsv_s': 0.7, 'hsv_v': 0.4, 'degrees': 30.0, 'translate': 0.1, 'scale': 0.5, 'fliplr': 0.5, 'mosaic': 0.5, 'close_mosaic': 10, 'amp': True, 'verbose': True, } results = model.train(**train_params)4.5 执行训练
在 SSH 终端中运行:
python train.py训练完成后,最佳权重将保存在:
runs/segment/train/weights/best.pt同时生成训练曲线、混淆矩阵等可视化结果。
4.6 模型推理与预测
创建infer.py进行推理测试:
from ultralytics import YOLO model = YOLO("runs/segment/train/weights/best.pt") results = model.predict( source="datasets/test_images/", imgsz=640, conf=0.45, iou=0.6, device=0, save=True, save_txt=True, show_labels=True, show_conf=True )运行:
python infer.py预测结果图像将保存在runs/segment/predict/目录下,包含边界框与分割掩膜。
5. 总结
本文系统介绍了如何使用 YOLO11 深度学习镜像,通过Jupyter Notebook和SSH 终端两种方式开展计算机视觉项目开发。
我们重点覆盖了以下内容:
- Jupyter 使用场景:适合交互式开发、实验记录与可视化分析,特别适用于教学和调参。
- SSH 终端优势:更适合生产级任务,支持后台运行、资源监控和自动化脚本管理。
- 完整训练流程:从数据标注、标签转换、YAML 配置、模型训练到推理部署,形成闭环。
- 实用代码模板:提供了可直接复用的数据转换脚本、训练参数配置和推理代码。
无论是新手入门还是团队协作,掌握这两种开发模式将大幅提升你在 YOLO11 上的工作效率。
下一步建议:
- 尝试不同规模的模型(如
yolo11n-seg,yolo11x-seg)对比性能 - 探索其他任务类型(姿态估计、OBB 旋转检测)
- 使用 TensorBoard 分析训练过程
只要环境就绪,剩下的就是专注创新!
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。