Ultralytics YOLO27:

使用 Ultralytics YOLO26 进行分析#

借助 Ultralytics YOLO26 进行分析,可以将目标检测和跟踪结果转换为实时图表,让你逐帧查看视频中目标数量的变化。本指南涵盖四种数据可视化类型——折线图、柱状图、饼图和面积图,并展示如何通过共享的 Python 和 CLI 示例在它们之间切换。



Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts

可视化示例#

折线图柱状图饼图
用于目标跟踪的 YOLO 分析折线图用于检测计数的 YOLO 分析柱状图用于类别分布的 YOLO 分析饼图

为什么要将检测数据可视化?#

  • 折线图非常适合跟踪短期和长期变化,以及比较同一时期内多个组的变化。
  • 柱状图适合比较不同类别之间的数量,并展示类别与其数值之间的关系。
  • 饼图适合说明各类别之间的比例,以及展示整体的组成部分。
  • 面积图会填充折线图区域,使每个类别的目标数量随时间的变化更易于一眼看清。

生成分析图表#

将视频传递给 Analytics 解决方案,并使用 analytics_type 选择图表。该解决方案会对每一帧执行检测和跟踪,并渲染出一张 1280×720 的图表(默认),你可以直接将其写入输出视频。只需一个参数,即可在 "line""bar""pie""area" 之间切换。

使用 Ultralytics YOLO 进行分析
yolo solutions analytics show=True

# Pass the source
yolo solutions analytics source="path/to/video.mp4"

# Generate the pie chart
yolo solutions analytics analytics_type="pie" show=True

# Generate the bar plots
yolo solutions analytics analytics_type="bar" show=True

# Generate the area plots
yolo solutions analytics analytics_type="area" show=True

Analytics 参数#

下面的表格列出了分析参数:

参数类型默认值描述
modelstrNoneUltralytics YOLO 模型文件的路径。
analytics_typestr'line'图表类型,即 linebarareapie
line_widthint2解决方案绘制的框、关键点和计数的线条粗细。
verboseboolTrue启用解决方案逐帧记录输入形状、类别计数和处理速度的日志。跟踪调用本身始终保持静默。

你还可以在 Analytics 解决方案中使用不同的 track 参数。

参数类型默认值描述
trackerstr'botsort.yaml'指定要使用的跟踪算法。内置选项:botsort.yamlbytetrack.yamlocsort.yamldeepocsort.yamlfasttrack.yamltracktrack.yaml
conffloat0.25设置检测的置信度阈值;较低的值允许跟踪更多对象,但可能包含误报。
ioufloat0.7设置用于过滤重叠检测结果的交并比(IoU)阈值。
classeslistNone按类别索引过滤结果。例如,classes=[0, 2, 3] 仅跟踪指定类别。
devicestrNone指定推理设备(例如 cpucuda:00)。允许用户在 CPU、特定 GPU 或其他计算设备之间进行选择,以执行模型。
imgszint or tuple640目标推理图像大小:用于正方形的整数或 (height, width) 对。形状会根据模型步长进行调整。
max_detint300在跟踪前每帧保留的最大检测数,用于限制解决方案在密集场景中处理的对象数量。
quantizeint or strNone推理精度:针对 PyTorch 和 TorchScript 模型,使用 16 (FP16) 或 32/不设置 (FP32);其他格式则在其工件和运行时选择的精度下进行计算。它替代了已弃用的 half 标志。

此外,还支持以下可视化参数:

参数类型默认值描述
showboolFalse如果为 True,则会在窗口中显示带标注的图像或视频。适用于开发或测试期间获取即时视觉反馈。

结论#

了解不同可视化类型的使用时机和方法,对于有效的数据分析至关重要。折线图、柱状图和饼图是基础工具,可以帮助你更清晰、更有效地讲述数据背后的故事。Ultralytics YOLO26 分析解决方案提供了一种简便方式,可根据目标检测和跟踪结果生成这些可视化图表,从而更轻松地从视觉数据中提取有意义的洞察。

常见问题#

  • 要使用 Ultralytics YOLO26 Analytics 创建折线图,请按以下步骤操作:

    1. 加载 YOLO26 模型并打开视频文件。
    2. 使用 analytics_type="line" 初始化 Analytics 类。
    3. 遍历视频帧,在每一帧调用该解决方案,以使用目标数量等数据更新折线图。
    4. results.plot_im 写入输出视频以保存图表。

    将上面的 Python 示例作为起点——它已经运行了完整的帧循环,而折线图是默认的 analytics_type

  • 使用 Ultralytics YOLO26 创建柱状图具有以下多项优势:

    1. 实时数据可视化:将目标检测结果无缝集成到柱状图中,实现动态更新。
    2. 易于使用:简单的 API 和函数让数据的实现与可视化变得直接明了。
    3. 可自定义:可根据你的具体需求自定义标题、标签、颜色等内容。
    4. 高效:高效处理大量数据,并在视频处理期间实时更新图表。

    要生成柱状图,请在上面的 Python 示例中设置 analytics_type="bar"——其余帧循环完全相同。请参阅可视化示例部分了解预览。

  • Ultralytics YOLO26 非常适合创建饼图,原因如下:

    1. 与目标检测集成:将目标检测结果直接集成到饼图中,立即获得洞察。
    2. 用户友好的 API:只需少量代码即可轻松设置和使用。
    3. 可自定义:提供颜色、标签等多种自定义选项。
    4. 实时更新:实时处理和可视化数据,非常适合视频分析项目。

    要生成饼图,请在上面的 Python 示例中设置 analytics_type="pie"。如需更多信息,请参阅指南中的可视化示例部分。

  • 可以。跟踪功能已内置于 Analytics 解决方案中:它会实时跟踪多个目标,并在每一帧根据跟踪目标的数据更新图表,因此折线图、柱状图、饼图和面积图都能反映实时计数。上面的 Python 示例中的帧循环正是这样实现的。要了解底层跟踪功能,请参阅跟踪部分。

  • Ultralytics YOLO26 与 OpenCV 和 TensorFlow 等其他目标检测解决方案相比,在多个方面表现突出:

    1. 先进的准确率:YOLO26 在目标检测实例分割语义分割分类任务中提供更高的准确率。
    2. 易于使用:用户友好的 API 支持快速实现和集成,无需编写大量代码。
    3. 实时性能:针对高速推理进行了优化,适用于实时应用。
    4. 应用广泛:支持多目标跟踪、自定义模型训练,以及导出为 ONNX、TensorRT 和 CoreML 等不同格式。
    5. 完善的文档:提供丰富的文档博客资源,指导用户完成每个步骤。

    如需更详细的比较和使用案例,请浏览我们的 Ultralytics Blog

评论