Meet YOLO26: next-gen vision AI.

Link to this section使用 Ultralytics YOLO26 进行实例分割与追踪 🚀#

Link to this section什么是实例分割?#

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

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

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

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

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



Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26

Link to this section样本#

实例分割实例分割 + 对象追踪
Ultralytics 实例分割结合对象追踪的 Ultralytics 实例分割
Ultralytics 实例分割 😍结合对象追踪的 Ultralytics 实例分割 🔥

Link to this section使用 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]"

Link to this sectionInstanceSegmentation 参数#

下表列出了 InstanceSegmentation 的参数:

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

You can also take advantage of track arguments within the InstanceSegmentation solution:

参数类型默认值描述
trackerstr'botsort.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在检测到的对象周围绘制边界框。对于图像或视频帧中对象的视觉识别和定位至关重要。

Link to this section实例分割的应用#

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

Link to this section废物管理与回收#

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

Link to this section自动驾驶汽车#

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

Link to this section医学影像#

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

Link to this section施工现场监控#

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

Link to this section常见问题解答#

Link to this section我该如何使用 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 指南 中了解更多关于实例分割的内容。

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

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

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

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

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

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

评论