Link to this section使用 Ultralytics YOLO26 进行分析#
Link to this section简介#
本指南全面概述了三种基本类型的 数据可视化:折线图、柱状图和饼图。每一部分都包含分步说明和代码片段,教你如何使用 Python 创建这些可视化图表。
Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts
Link to this section可视化示例#
| 折线图 | 柱状图 | 饼图 |
|---|---|---|
![]() | ![]() | ![]() |
Link to this section为什么图表很重要#
- 折线图非常适合追踪短期和长期内的变化,以及比较同一时期内多个组的变化。
- 另一方面,柱状图适合比较不同类别之间的数量,并展示类别与其数值之间的关系。
- 最后,饼图能有效地展示各类别之间的比例,并呈现整体的构成部分。
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=TrueLink to this sectionAnalytics 参数#
以下是概述 Analytics 参数的表格:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 模型文件的路径。 |
analytics_type | str | 'line' | 图表类型,例如 line(折线图)、bar(柱状图)、area(面积图)或 pie(饼图)。 |
You can also leverage different track arguments in the Analytics solution.
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 指定要使用的追踪算法。内置选项包括:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。 |
conf | float | 0.1 | 设置检测的置信度阈值;较低的值允许跟踪更多的对象,但也可能包含误报。 |
iou | float | 0.7 | 设置用于过滤重叠检测的 交并比 (IoU) 阈值。 |
classes | list | None | 按类别索引过滤结果。例如,classes=[0, 2, 3] 仅跟踪指定的类别。 |
verbose | bool | True | 控制跟踪结果的显示,提供被跟踪对象的视觉输出。 |
device | str | None | 指定推理设备(例如 cpu、cuda:0 或 0)。允许用户在 CPU、特定的 GPU 或其他计算设备之间进行选择以执行模型。 |
此外,还支持以下可视化参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
show | bool | False | 如果为 True,则在窗口中显示标注后的图像或视频。这对于开发或测试过程中的即时视觉反馈非常有用。 |
line_width | int or None | None | 指定边界框的线条宽度。如果为 None,则线条宽度会根据图像尺寸自动调整。提供用于清晰度的视觉自定义功能。 |
Link to this section结论#
了解何时以及如何使用不同类型的可视化对于有效的数据分析至关重要。折线图、柱状图和饼图是基础工具,可以帮助你更清晰、有效地传达数据背后的故事。Ultralytics YOLO26 Analytics 解决方案提供了一种简便的方法,从你的 目标检测 和追踪结果中生成这些可视化图表,从而更容易从你的视觉数据中提取有意义的洞察。
Link to this section常见问题解答#
Link to this section如何使用 Ultralytics YOLO26 Analytics 创建折线图?#
要使用 Ultralytics YOLO26 Analytics 创建折线图,请按照以下步骤操作:
- 加载一个 YOLO26 模型并打开你的视频文件。
- 初始化
Analytics类,并将类型设置为 "line"。 - 遍历视频帧,用相关数据更新折线图,例如每帧的目标计数。
- 保存显示折线图的输出视频。
示例:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720), # this is fixed
)
analytics = solutions.Analytics(
analytics_type="line",
show=True,
)
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count) # update analytics graph every frame
out.write(results.plot_im) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()有关配置 Analytics 类的更多详情,请访问 使用 Ultralytics YOLO26 进行分析 部分。
Link to this section使用 Ultralytics YOLO26 创建柱状图有什么好处?#
使用 Ultralytics YOLO26 创建柱状图有几个好处:
- 实时数据可视化:将 目标检测 结果无缝集成到柱状图中,实现动态更新。
- 易于使用:简单的 API 和函数使实现和可视化数据变得直接简单。
- 自定义:自定义标题、标签、颜色等,以符合你的特定需求。
- 高效:在视频处理过程中高效处理大量数据并实时更新图表。
使用以下示例生成柱状图:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720), # this is fixed
)
analytics = solutions.Analytics(
analytics_type="bar",
show=True,
)
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count) # update analytics graph every frame
out.write(results.plot_im) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()要了解更多信息,请访问本指南中的 柱状图 部分。
Link to this section为什么我在数据可视化项目中应该使用 Ultralytics YOLO26 来创建饼图?#
Ultralytics YOLO26 是创建饼图的绝佳选择,因为:
- 与目标检测集成:直接将目标检测结果集成到饼图中,以获取即时洞察。
- 用户友好的 API:设置简单,只需极少的代码即可使用。
- 可自定义:针对颜色、标签等有多种自定义选项。
- 实时更新:实时处理和可视化数据,这对于视频分析项目非常理想。
这是一个快速示例:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720), # this is fixed
)
analytics = solutions.Analytics(
analytics_type="pie",
show=True,
)
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count) # update analytics graph every frame
out.write(results.plot_im) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()欲了解更多信息,请参阅本指南中的 饼图 部分。
Link to this sectionUltralytics YOLO26 能否用于追踪目标并动态更新可视化?#
可以,Ultralytics YOLO26 可用于追踪目标并动态更新可视化。它支持实时追踪多个目标,并能根据所追踪目标的数据更新各种可视化图表,如折线图、柱状图和饼图。
用于追踪和更新折线图的示例:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720), # this is fixed
)
analytics = solutions.Analytics(
analytics_type="line",
show=True,
)
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count) # update analytics graph every frame
out.write(results.plot_im) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()要了解完整功能,请参阅 追踪 部分。
Link to this section是什么让 Ultralytics YOLO26 不同于 OpenCV 和 TensorFlow 等其他目标检测解决方案?#
Ultralytics YOLO26 在多个方面区别于 OpenCV 和 TensorFlow 等其他目标检测解决方案:
- 最先进的 准确性:YOLO26 在 目标检测、实例分割、语义分割 和 分类 任务中提供了卓越的准确性。
- 易于使用:用户友好的 API 允许在无需大量编码的情况下快速实现和集成。
- 实时性能:针对高速推理进行了优化,适合实时应用。
- 多样化的应用:支持包括多目标追踪、自定义模型训练以及导出为 ONNX、TensorRT 和 CoreML 等不同格式在内的多种任务。
- 全面的文档:丰富的 文档 和 博客资源,引导用户完成每一个步骤。
欲了解更详细的比较和用例,请探索我们的 Ultralytics 博客。


