使用 Ultralytics YOLO26 进行实例分割与追踪#
什么是实例分割?#
实例分割是一项计算机视觉任务,旨在以像素级别识别并勾勒图像中的各个对象。不同于仅按类别对像素进行分类的语义分割,实例分割会为每个对象实例分配唯一标签并进行精确 delineation,因此对于需要详细空间理解的应用至关重要,例如医学影像、自动驾驶和工业自动化。
Ultralytics YOLO26 提供强大的实例分割能力,能够精确检测对象边界,同时保持 YOLO 模型一贯的速度和效率。
Ultralytics 软件包提供两种实例分割跟踪类型:
-
使用类别对象进行实例分割: 为每个类别对象分配一种独特颜色,以实现清晰的视觉区分。
-
使用对象轨迹进行实例分割: 每条轨迹都用不同颜色表示,便于在视频帧之间识别和跟踪对象。
Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26
样本数#
| 实例分割 | 实例分割 + 对象跟踪 |
|---|---|
![]() | ![]() |
| Ultralytics 实例分割 😍 | Ultralytics 使用对象跟踪进行实例分割 🔥 |
使用 YOLO26 进行分割和跟踪#
InstanceSegmentation 解决方案会在每一帧上运行 YOLO26 分割模型,绘制每个对象的掩码,并为每个实例分别着色,便于你在视频中跟踪单个对象。加载 -seg 模型,然后通过 Python API 或 CLI 在你的源数据上运行它。
# Instance segmentation using Ultralytics YOLO26
yolo solutions isegment show=True
# Pass a source video
yolo solutions isegment source="path/to/video.mp4"
# Monitor the specific classes
yolo solutions isegment classes="[0, 5]"InstanceSegmentation 参数#
下面是 InstanceSegmentation 参数表:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 模型文件的路径。 |
line_width | int | 2 | 解决方案绘制的框、关键点和计数的线条粗细。 |
verbose | bool | True | 启用解决方案逐帧记录输入形状、类别计数和处理速度的日志。跟踪调用本身始终保持静默。 |
你还可以在 InstanceSegmentation 解决方案中使用 track 参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 指定要使用的跟踪算法。内置选项:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。 |
conf | float | 0.25 | 设置检测的置信度阈值;较低的值允许跟踪更多对象,但可能包含误报。 |
iou | float | 0.7 | 设置用于过滤重叠检测结果的交并比(IoU)阈值。 |
classes | list | None | 按类别索引过滤结果。例如,classes=[0, 2, 3] 仅跟踪指定类别。 |
device | str | None | 指定推理设备(例如 cpu、cuda:0 或 0)。允许用户在 CPU、特定 GPU 或其他计算设备之间进行选择,以执行模型。 |
imgsz | int or tuple | 640 | 目标推理图像大小:用于正方形的整数或 (height, width) 对。形状会根据模型步长进行调整。 |
max_det | int | 300 | 在跟踪前每帧保留的最大检测数,用于限制解决方案在密集场景中处理的对象数量。 |
quantize | int or str | None | 推理精度:针对 PyTorch 和 TorchScript 模型,使用 16 (FP16) 或 32/不设置 (FP32);其他格式则在其工件和运行时选择的精度下进行计算。它替代了已弃用的 half 标志。 |
此外,还提供以下可视化参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
show | bool | False | 如果为 True,则会在窗口中显示带标注的图像或视频。适用于开发或测试期间获取即时视觉反馈。 |
show_conf | bool | True | 在每个检测结果旁显示其置信度分数,让你了解模型对每个检测结果的确定程度。 |
show_labels | bool | True | 在可视化输出中显示每个检测结果的标签,帮助你立即了解检测到的对象。 |
show_boxes | bool | True | 在检测到的对象周围绘制边界框。对于在图像或视频帧中直观识别和定位对象至关重要。 |
实例分割的应用#
YOLO26 实例分割在各行各业拥有众多现实应用:
废物管理与回收#
YOLO26 可用于废物管理设施,以识别和分拣不同类型的材料。该模型能够高精度地分割塑料废物、纸板、金属和其他可回收物,从而让自动分拣系统更高效地处理废物。考虑到全球产生的 70 亿吨塑料废物中只有约 10% 得到回收,这一点尤其有价值。
自动驾驶车辆#
在自动驾驶汽车中,实例分割有助于以像素级别识别和跟踪行人、车辆、交通标志及其他道路元素。这种对环境的精确理解对于导航和安全决策至关重要。YOLO26 的实时性能使其非常适合这些对时效性要求较高的应用。
医学影像#
实例分割可以在医学扫描图像中识别并勾勒肿瘤、器官或细胞结构。YOLO26 精确 delineate 对象边界的能力使其适用于医学诊断和治疗规划。
施工现场监控#
在施工现场,实例分割可以跟踪重型机械、工人和材料。通过监控设备位置并检测工人何时进入危险区域,它有助于确保安全,同时优化工作流程和资源分配。
常见问题#
要使用 Ultralytics YOLO26 执行实例分割,请使用 YOLO26 的分割版本初始化 YOLO 模型,并通过该模型处理视频帧。下面是一个简化的代码示例:
import cv2 from ultralytics import solutions cap = cv2.VideoCapture("path/to/video.mp4") assert cap.isOpened(), "Error reading video file" # Video writer w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) video_writer = cv2.VideoWriter("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) # Init InstanceSegmentation isegment = solutions.InstanceSegmentation( show=True, # display the output model="yolo26n-seg.pt", # model="yolo26n-seg.pt" for object segmentation using YOLO26. ) # Process video while cap.isOpened(): success, im0 = cap.read() if not success: print("Video frame is empty or processing is complete.") break results = isegment(im0) video_writer.write(results.plot_im) cap.release() video_writer.release() cv2.destroyAllWindows()在 Ultralytics YOLO26 指南中了解更多实例分割信息。
实例分割会识别并勾勒图像中的各个对象,为每个对象提供唯一标签和掩码。对象跟踪在此基础上为视频帧中的对象分配一致的 ID,从而持续跟踪一段时间内的同一对象。将二者结合起来(如 YOLO26 的实现),你就能在视频中分析对象的运动和行为,同时保留精确的边界信息。
与 Mask R-CNN 或 Faster R-CNN 等其他模型相比,Ultralytics YOLO26 具备实时性能、更高的准确率以及更易用的特点。YOLO26 通过单次前向处理图像(单阶段检测),在保持高精度的同时显著提升了速度。它还与 Ultralytics Platform 无缝集成,让你能够高效管理模型、数据集和训练流程。对于同时要求速度和准确率的应用,YOLO26 提供了理想的平衡。
是的,Ultralytics 提供多个适合训练 YOLO26 实例分割模型的数据集,包括 COCO-Seg、COCO8-Seg(用于快速测试的较小子集)、Package-Seg 和 Crack-Seg。这些数据集包含实例分割任务所需的像素级标注。对于更专业的应用,你还可以按照 Ultralytics 格式创建自定义数据集。完整的数据集信息和使用说明请参阅 Ultralytics 数据集文档。

