使用 Ultralytics YOLO26 进行分析#
使用 Ultralytics YOLO26 进行分析,可将对象检测和跟踪结果转换为实时图表,让你逐帧查看视频中对象数量的变化。本指南介绍四种数据可视化类型——折线图、条形图、饼图和面积图,并通过通用的 Python 和 CLI 示例演示如何切换图表类型。
观看: 如何使用 Ultralytics 生成分析图表 | 折线图、条形图、面积图和饼图
可视化示例#
| 折线图 | 条形图 | 饼图 |
|---|---|---|
![]() | ![]() | ![]() |
为什么要将检测数据可视化?#
- 折线图非常适合跟踪短期和长期变化,也适合比较多个组在同一时期内的变化。
- 条形图适合比较不同类别的数量,以及展示类别与其数值之间的关系。
- 饼图适用于呈现各类别所占比例,以及展示整体中的各个部分。
- 面积图会填充折线图下方的区域,让你一目了然地查看各类别对象数量随时间的变化。
生成分析图表#
将视频传递给 Analytics 解决方案,并使用 analytics_type 选择图表。该解决方案会对每一帧执行检测和跟踪,并渲染默认大小为 1280×720 的图表,你可以直接将图表写入输出视频。只需一个参数,即可在 "line"、"bar"、"pie" 和 "area" 之间切换。
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=TrueAnalytics 参数#
以下表格列出了 Analytics 的参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 模型文件的路径。 |
analytics_type | str | 'line' | 图表类型,即 line、bar、area 或 pie。 |
figsize | tuple[float, float] | (12.8, 7.2) | Analytics 图表的图幅尺寸(英寸);(12.8, 7.2) 会渲染 1280×720 的帧。 |
line_width | int | 2 | 解决方案绘制的框、关键点和计数的线条粗细。 |
verbose | bool | True | 启用逐帧日志,记录输入形状、类别计数和处理速度。跟踪调用本身始终不会输出日志。 |
你还可以在 Analytics 解决方案中使用不同的 track 参数。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tracker | str | 'tracktrack.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 | 推理精度:对于非 CPU 上运行的 PyTorch 和 TorchScript 模型,使用 16 (FP16) 或 32/unset (FP32) 进行选择;其他格式使用其模型文件和运行时所选的精度。此参数替代已弃用的 half 参数。 |
此外,还支持以下可视化参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
show | bool | False | 如果 True,则在窗口中显示带标注的图像或视频。适用于在开发或测试期间即时查看结果。 |
结论#
了解何时以及如何使用不同类型的可视化,对于有效的数据分析至关重要。折线图、条形图和饼图是基础工具,可以帮助你更清晰、更有效地讲述数据所呈现的情况。Ultralytics YOLO26 Analytics 解决方案提供了简化的方式,可根据对象检测和跟踪结果生成这些可视化图表,帮助你更轻松地从视觉数据中提取有意义的见解。
常见问题#
要使用 Ultralytics YOLO26 Analytics 创建折线图,请按以下步骤操作:
- 加载 YOLO26 模型并打开视频文件。
- 使用
analytics_type="line"初始化Analytics类。 - 遍历视频帧,并在每一帧调用解决方案,用对象数量等数据更新折线图。
- 将
results.plot_im写入输出视频,以保存图表。
你可以从上面的 Python 示例开始着手——该示例已包含完整的帧循环,而折线图是默认的
analytics_type。使用 Ultralytics YOLO26 创建条形图有以下好处:
- 实时数据可视化:将对象检测结果无缝整合到条形图中,实现动态更新。
- 易于使用:简单的 API 和函数让数据实现和可视化变得轻松直接。
- 可定制:自定义标题、标签、颜色等,以满足你的具体需求。
- 高效:高效处理大量数据,并在视频处理期间实时更新图表。
要生成条形图,请在上面的 Python 示例中设置
analytics_type="bar"——其余帧循环保持不变。有关预览,请参阅可视化示例部分。Ultralytics YOLO26 非常适合创建饼图,原因如下:
- 与对象检测集成:将对象检测结果直接整合到饼图中,快速获取见解。
- 易用的 API:只需少量代码即可轻松设置和使用。
- 可定制:提供多种自定义选项,可调整颜色、标签等。
- 实时更新:实时处理和可视化数据,非常适合视频分析项目。
要生成饼图,请在上面的 Python 示例中设置
analytics_type="pie"。如需了解更多信息,请参阅指南中的可视化示例部分。可以。
Analytics解决方案内置跟踪功能:它可以实时跟踪多个对象,并每 30 帧根据跟踪对象的数据刷新图表,因此折线图、条形图、饼图和面积图都会显示实时统计数据。上面的 Python 示例中的帧循环正是这样实现的。如需了解底层跟踪功能,请参阅跟踪部分。


