YOLO Vision 2026:

使用 Ultralytics YOLO26 进行实例分割与追踪 🚀#

什么是实例分割?#

Instance segmentation 是一个计算机视觉任务,涉及在像素级别识别和勾勒图像中的单个对象。与仅按类别对像素进行分类的 semantic segmentation 不同,实例分割能够唯一标记并精确描绘每个对象实例,这对于需要详细空间理解的应用(如医学影像、自动驾驶和工业自动化)至关重要。

Ultralytics YOLO26 提供了强大的实例分割功能,能够在保持 YOLO 模型闻名的速度和效率的同时,实现精确的对象边界检测。

Ultralytics 软件包中提供两种类型的实例分割追踪:

  • 基于类对象的实例分割: 每个类对象被分配一种独特的颜色,以便清晰地进行视觉区分。

  • 基于对象追踪的实例分割: 每个追踪路径由一种独特的颜色表示,从而便于在视频帧中进行识别和追踪。



Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26

样本#

实例分割实例分割 + 对象追踪
Ultralytics Instance SegmentationUltralytics Instance Segmentation with Object Tracking
Ultralytics 实例分割 😍结合对象追踪的 Ultralytics 实例分割 🔥

使用 YOLO26 进行分割与跟踪#

InstanceSegmentation 解决方案在每一帧上运行 YOLO26 分割模型,绘制每个对象的掩码,并为每个实例单独着色,以便你可以在视频中跟踪各个对象。加载一个 -seg 模型,然后使用 Python API 或 CLI 在你的源上运行它。

使用 Ultralytics YOLO 进行实例分割
# 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 参数的表格:

参数类型默认值描述
modelstrNoneUltralytics YOLO 模型文件的路径。

你还可以在 InstanceSegmentation 方案中使用 track 参数:

参数类型默认值描述
trackerstr'tracktrack.yaml'指定要使用的跟踪算法。内置选项:botsort.yamlbytetrack.yamlocsort.yamldeepocsort.yamlfasttrack.yamltracktrack.yaml
conffloat0.1设置检测的置信度阈值;较低的值允许跟踪更多的对象,但也可能包含误报。
ioufloat0.7设置用于过滤重叠检测结果的交并比 (IoU) 阈值。
classeslistNone按类别索引过滤结果。例如,classes=[0, 2, 3] 仅跟踪指定的类别。
verboseboolTrue控制跟踪结果的显示,提供被跟踪对象的视觉输出。
devicestrNone指定用于推理的设备(例如 cpucuda:00)。允许用户在 CPU、特定的 GPU 或用于模型执行的其他计算设备之间进行选择。

此外,还提供了以下可视化参数:

参数类型默认值描述
showboolFalse如果为 True,则在窗口中显示带注释的图像或视频。对于开发或测试期间的即时视觉反馈非常有用。
line_widthint or NoneNone指定边界框的线条宽度。如果为 None,则线条宽度会根据图像大小自动调整。提供视觉定制以提高清晰度。
show_confboolTrue在标签旁显示每次检测的置信度得分。让你深入了解模型对每次检测的确定性。
show_labelsboolTrue在视觉输出中显示每次检测的标签。提供对检测到对象的即时理解。
show_boxesboolTrue在检测到的对象周围绘制边界框。对于图像或视频帧中对象的视觉识别和定位至关重要。

实例分割的应用#

YOLO26 的实例分割在各行各业有着众多的实际应用:

废物管理与回收#

YOLO26 可用于垃圾处理设施中,以识别和分类不同类型的材料。该模型能够以高精度分割塑料垃圾、纸板、金属和其他可回收物,使自动化分拣系统能够更高效地处理垃圾。考虑到全球产生的 70 亿吨塑料垃圾中只有大约 10% 被回收,这一点尤其有价值。

自动驾驶汽车#

自动驾驶汽车中,实例分割有助于在像素级别识别和跟踪行人、车辆、交通标志和其他道路元素。这种对环境的精确理解对于导航和安全决策至关重要。YOLO26 的实时性能使其非常适合这些对时间敏感的应用。

医学影像#

实例分割可以识别并勾勒出医疗扫描中的肿瘤、器官或细胞结构。YOLO26 精确描绘对象边界的能力使其对于医学诊断和治疗规划非常有价值。

施工现场监控#

在施工现场,实例分割可以追踪重型机械、工人和材料。这有助于通过监控设备位置并检测工人在何时进入危险区域来确保安全,同时还能优化工作流程和资源分配。

常见问题解答#

我该如何使用 Ultralytics YOLO26 进行实例分割?#

要使用 Ultralytics YOLO26 进行实例分割,请初始化 YOLO 模型并使用 YOLO26 的分割版本,然后通过它处理视频帧。以下是一个简化的代码示例:

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 guide 中了解有关实例分割的更多信息。

在 Ultralytics YOLO26 中,实例分割和对象追踪有什么区别?#

实例分割识别并勾勒图像内的各个对象,为每个对象提供唯一的标签和掩码。对象追踪则在此基础上进一步扩展,通过在视频帧之间为对象分配一致的 ID,从而实现随时间对同一对象的持续追踪。当两者结合使用(如在 YOLO26 的实现中)时,你可以在保持精确边界信息的同时,获得分析视频中对象运动和行为的强大功能。

为什么我应该使用 Ultralytics YOLO26 进行实例分割和追踪,而不是其他模型(如 Mask R-CNN 或 Faster R-CNN)?#

与其他诸如 Mask R-CNN 或 Faster R-CNN 等模型相比,Ultralytics YOLO26 提供了实时性能、卓越的精度以及易用性。YOLO26 在单次传递中处理图像(单阶段检测),在保持高精度的同时显著提高了速度。它还提供与 Ultralytics Platform 的无缝集成,允许用户高效管理模型、数据集和训练流程。对于同时需要速度和精度的应用,YOLO26 提供了最佳平衡。

Ultralytics 是否提供了适合训练 YOLO26 实例分割和追踪模型的数据集?#

是的,Ultralytics 提供了几个适合训练用于实例分割的 YOLO26 模型的数据集,包括 COCO-SegCOCO8-Seg(用于快速测试的较小子集)、Package-SegCrack-Seg。这些数据集带有实例分割任务所需的像素级标注。对于更专用的应用,你还可以遵循 Ultralytics 格式创建自定义数据集。完整的数据集信息和使用说明可以在 Ultralytics Datasets documentation 中找到。

评论