了解如何自定义训练Ultralytics YOLO26进行实例分割,模型通过像素级掩码识别并分离每个独立对象。
了解如何自定义训练Ultralytics YOLO26进行实例分割,模型通过像素级掩码识别并分离每个独立对象。
得益于近期技术进步,许多在我们的生活中扮演着无声但有影响力角色的智能系统都由AI驱动。例如,当汽车闯红灯时,摄像头会自动记录违规行为,或者当自动化质量检测系统在生产线上发现制造缺陷时,AI都在幕后发挥作用。
特别是,AI的一个分支,即计算机视觉,使机器能够解释和理解图像与视频。计算机视觉使系统能够实时识别物体、track运动并分析视觉细节,这使其在交通监控、工业检测和机器人等应用中至关重要。
这些功能通过计算机视觉模型实现,例如Ultralytics YOLO26,它支持多种视觉任务,包括目标detect和实例分割。目标detect使用简单的边界框识别物体,而实例分割则更进一步,在像素级别勾勒出每个物体,从而在实际场景中实现更准确、更可靠的结果。

像YOLO26这样的模型是预训练的,开箱即用,可以segment日常物体,如人、汽车和动物。然而,对于更具体的应用,它们也可以进行自定义训练。换句话说,模型可以学习理解物体的外观以及如何准确地勾勒出它们的轮廓。
在本文中,我们将详细介绍如何自定义训练Ultralytics YOLO26进行实例分割。让我们开始吧!
在我们深入模型训练之前,让我们退一步,了解实例分割到底意味着什么。
实例分割是一项计算机视觉任务,它使模型能够找到图像中的每个独立物体并勾勒出其精确形状。模型不仅仅是识别物体的存在,而是查看图像中的每个像素,并判断它是否属于特定物体。
这意味着即使物体重叠或非常接近,它也能将它们分离。一个使实例分割易于可视化的关键概念是掩码。
掩码是像素级别的轮廓,它只覆盖物体所在的区域。你可以把它想象成用荧光笔给物体上色,而其他部分则保持不变。
每个物体都有自己的掩码,这使得模型能够区分不同的物体,即使它们是同类型,例如两辆汽车或两个人并排站立。

为了更好地理解什么是实例分割,我们可以将其与其他常见的计算机视觉任务进行比较。目标检测使用边界框,即围绕对象绘制的简单矩形。边界框快速且有用,但它们无法捕捉对象的精确形状。
同时,语义分割按类别标记图像中的每个像素,但它不区分同一类别的不同物体。实例分割结合了这两种方法的优点,通过识别物体类别并为每个独立物体分配一个单独的掩码。
由于实例分割提供了如此详细的信息,它在自动化质量检测、医学成像和机器人等实际应用中特别有用。需要精确测量、准确边界或物体分离的任务可以从这种像素级理解中受益。
Ultralytics YOLO26 是一种端到端、无需 NMS 的最先进计算机视觉模型,旨在快速高效地处理实际视觉任务。它属于 Ultralytics YOLO 检测模型系列,能够在实时处理图像和视频的同时提供准确的结果。
YOLO26 在单一框架内支持多种视觉任务,包括目标 detect、姿势估计、图像分类、旋转框检测(obb detection)和实例 segment。
YOLO26开箱即用,已预训练,这意味着它已经学会识别常见物体,如人、车辆和日常用品,这些知识来自COCO数据集和ImageNet数据集等大型常用数据集。您可以立即开始使用该模型,无需任何额外训练。
然而,当您的应用涉及独特物体、特定环境或异常光照条件时,自定义模型训练可以显著改善结果。通过在您自己的标注图像上训练YOLO26,您可以精确地教会模型要寻找什么以及如何为您的特定用例更准确地勾勒出物体轮廓。
这个过程也称为微调。微调不是从头开始训练模型,而是从预训练的 YOLO26 模型开始,并使用您自己的数据对其进行温和调整。由于模型已经理解边缘、形状和纹理等一般视觉模式,因此它需要少得多的标注图像和更少的时间来学习您的特定对象。
简而言之,微调比从头开始训练模型更快、更高效、更易于上手。定制化训练YOLO26是一个可行的选择,即使对于初学者或数据和计算资源有限的团队也是如此。
那么,实例segment在哪些场景下能发挥作用呢?在需要区分不同的物体并理解它们的精确形状的场景中,尤其是在物体密集或重叠的情况下,实例segment会非常有效。
以下是实例segment能真正发挥作用的一些常见工作流程:

接下来,我们来讨论定制化训练的工作原理。尽管训练模型听起来很专业,但整个过程是直接明了的。
您可以准备图像,标注模型需要学习的对象,配置一个小型设置文件,然后使用 Ultralytics Python 包训练 YOLO26。Ultralytics Python 包是一个软件库,提供即用型工具,用于训练、测试和部署 YOLO 模型,而无需从头开始构建一切。
第一步是准备您的定制化segment数据集。数据集就是一系列图像的集合,这些图像展示了您希望模型学习的物体。
尽量包含反映真实世界条件(如不同角度、光照、背景和物体尺寸)的图像。图像多样性越高,模型性能越好。
对于实例segment,您的图像还需要标注。标注是指在每张图像中标记物体,以便模型知道要学习什么。您将不再是简单地绘制边界框,而是围绕每个物体绘制详细的轮廓(多边形),以标记其精确形状。这些轮廓将成为模型学习预测的掩码(masks)。
有几种开源标注工具可供您使用来创建这些标签。其中许多工具都提供用户友好的界面,您可以在其中上传图像并直接在图像上绘制物体轮廓。
一旦您的图像和标注准备就绪,您就可以将它们组织到训练和验证文件夹中。典型的划分是80%的图像用于训练,20%用于验证,尽管70%用于训练和30%用于验证也很常见,具体取决于数据集的大小。训练集用于教导模型,而验证集则用于衡量模型在未见过图像上的表现。
保持这种划分的平衡,并确保两个文件夹都包含各种示例,这一点很重要。一个干净、标注良好且具有适当训练和验证划分的数据集,是构建强大实例segment模型的基础。
准备好图像和标注后,下一步是创建一个数据集yaml文件。此文件指明了数据集的位置以及模型在训练期间应学习哪些物体类别。
在此文件中,您可以定义数据集根目录、训练和验证图像文件夹的路径以及类别名称列表。类别名称必须与标注文件中使用的类别编号顺序一致,以确保所有内容正确匹配。
如果您对具体格式有任何疑问,您可以查阅Ultralytics官方文档了解更多详情。
既然您的数据集和yaml文件已准备就绪,下一步是安装Ultralytics python包。
该软件包包含了训练、验证、运行推理和导出 YOLO26 模型所需的工具。它提供了一种简化方式来使用 YOLO 模型,而无需从头构建复杂的训练管道。
在安装Ultralytics python包之前,选择您希望运行代码的环境也很重要。您可以在多种不同的开发环境中与Ultralytics包协同工作,例如:
一旦您选择了环境,您就可以安装Ultralytics python包。要安装它,请运行以下命令:
pip install ultralytics
如果您使用的是基于notebook的环境,例如Google Colab或Jupyter Notebook,请在命令开头添加一个感叹号。如果您遇到任何安装问题,您可以查阅Ultralytics文档或故障排除指南,获取常见修复方法和环境设置技巧。
安装完成后,您就可以加载预训练的 YOLO26 分割模型并开始训练了。
在开始训练之前,您需要选择一个模型尺寸。YOLO26模型有多种尺寸可供选择:Nano (n)、Small (s)、Medium (m)、Large (l) 和 Extra Large (x)。
较小的模型训练速度更快,在中央处理器 (CPU) 或边缘设备上运行效率更高,而较大的模型通常提供更高的准确性,但需要更多内存并受益于 GPU 加速。如果您刚开始使用或硬件资源有限,Nano 版本 (YOLO26n) 是一个实用的选择。
选择模型尺寸后,下一步是加载预训练的分割模型,并在您的自定义数据集上开始训练。为此,您需要指定预训练模型文件、数据集 yaml 文件的路径、训练轮数(epochs)和图像尺寸,如下所示。
from ultralytics import YOLO
model = YOLO(""yolo26n-seg.pt")
results = model.train(data="path/to/file.yaml", epochs=100, imgsz=640)训练轮数(epochs)决定了模型遍历整个训练数据集的次数。每次迭代,模型都会进行预测,将其与正确的标注进行比较,计算误差,并更新其内部参数以提高性能。
如果训练正确启动,您将在终端或笔记本中看到模型配置、数据集扫描和训练进度。随着训练的进行,损失值和评估指标将在每个 epoch 后更新,显示模型如何随时间改进。
训练过程完成后,您可以审查和验证模型的性能指标。在 Google Colab 中,您可以导航到“runs”文件夹,然后到“segment”文件夹,最后到“train”文件夹,在那里您会找到显示关键性能指标的日志。
对于在 python 环境中工作的用户,训练结果默认保存在当前工作目录下的“runs/train/”目录中。每次训练运行都会创建一个新的子目录,例如 runs/train/exp 或 runs/train/exp2,您可以在其中找到与该实验相关的日志、保存的权重和其他输出。
如果您使用 CLI,您可以使用“yolo settings”命令访问和管理这些结果。此命令允许您查看或修改与训练日志和实验详情相关的路径和配置。
在保存的输出中,您还会找到训练期间生成的图表。这些图表显示了模型随时间推移的改进情况。例如,它们显示了模型学习时损失值如何下降,以及精确率 (precision)、召回率 (recall) 和平均精度 (mean average precision) 等评估指标在各个 epoch 中如何增加。

这些视觉趋势可以帮助您了解模型是否成功训练以及从训练开始到结束的改进程度。审查数值指标和图表可以更清晰地了解您的实例分割模型在用新图像进行测试之前的表现如何。
验证模型后,最后一步是在新图像上进行测试。这个过程称为推理,它简单地意味着使用您训练好的模型对未见过的数据进行预测。
您可以在 Python 中运行推理,如下所示:
results = model.predict("path/to/image.jpg", save=True, conf=0.3)在此示例中,“path/to/image.jpg”可以替换为您要测试的图像路径。
“save=True”设置告诉模型生成并存储一张新图像,其中包含在原始图像上绘制的预测分割掩码。
“conf=0.3”设置控制置信度阈值,这意味着模型将只显示其至少有 30% 把握认为是正确的预测。降低此值可能会显示更多 detect,而提高此值将使模型更具选择性。
运行命令后,模型会在 runs 目录中创建一个新文件夹,并在其中保存输出图像。您可以打开该保存的图像,直观检查分割掩码是否准确地遵循了对象边界,以及重叠对象是否正确分离。
在不同的图像、背景和光照条件下测试模型,可以更清晰地了解其在训练数据集之外的表现。一旦结果看起来一致且准确,模型就可以导出和部署了。
测试您的模型并确认其性能良好后,最后一步是导出和部署它。导出操作将您训练好的 YOLO26 模型转换为可在不同环境中运行的格式,例如生产服务器、边缘设备或移动应用程序。
Ultralytics 支持多种导出格式,让您能够选择最适合您部署设置的格式。例如,您可以导出为 ONNX 以实现跨平台的广泛兼容性,导出为 TensorRT 以在 NVIDIA 硬件上优化 GPU 性能,或导出为 OpenVINO 以在 Intel 设备上进行高效的 CPU 部署。这些集成使得在训练环境之外运行模型并获得强大的实时性能变得更加容易。
您可以使用以下命令在 Python 中导出模型:
model.export(format="onnx")
此命令将您训练好的模型转换为 ONNX 格式。您可以根据部署需求将“onnx”替换为其他支持的格式。
导出后,您的模型可以集成到网络服务、嵌入式视觉系统、机器人平台或工业检测系统等应用程序中。在此阶段,您的自定义训练 YOLO26 实例分割模型可以从实验阶段进入实际部署。
自定义训练 Ultralytics YOLO26 进行实例分割,让您能够灵活地构建一个真正适合您特定用例的模型。通过准备清晰的数据集、设置您的 yaml 文件、使用预训练的分割权重进行训练并审查结果,您可以教导模型在像素级别准确地勾勒出每个对象。一旦经过测试和导出,您的 YOLO26 模型就可以从开发阶段进入多尺度的实际应用。
加入我们的社区并查看我们的GitHub 仓库,了解更多关于 AI 的信息。如果您正在寻求构建自己的视觉 AI 项目,请查看我们的许可选项。通过访问我们的解决方案页面,探索更多关于医疗保健中的 AI 和零售中的视觉 AI 等应用。
开启您的机器学习未来之旅