Link to this section高级 数据可视化:使用 Ultralytics YOLO26 进行热图绘制 🚀#
Link to this section热图简介#
使用 Ultralytics YOLO26 生成的热图可以将复杂数据转换为生动、色彩编码的矩阵。此可视化工具利用色谱来表示不同的数据值,其中暖色调表示更高的强度,冷色调表示更低的值。热图在可视化复杂的数据模式、相关性和异常情况方面表现出色,为跨领域的数据解读提供了一种易于理解且引人入胜的方法。
Watch: Heatmaps using Ultralytics YOLO26
Link to this section为什么选择热图进行数据分析?#
- 直观的数据分布可视化: 热图简化了对数据集中和分布的理解,将复杂的数据集转化为易于理解的视觉格式。
- 高效的模式检测: 通过以热图格式可视化数据,可以更轻松地发现趋势、聚类和异常值,从而促进更快速的分析和洞察。
- 增强的空间分析和决策: 热图在阐明空间关系方面发挥着重要作用,有助于商业智能、环境研究和城市规划等领域的决策过程。
Link to this section现实世界应用#
| 交通运输 | 零售 |
|---|---|
![]() | ![]() |
| Ultralytics YOLO26 交通热图 | Ultralytics YOLO26 零售热图 |
# Run a heatmap example
yolo solutions heatmap show=True
# Pass a source video
yolo solutions heatmap source="path/to/video.mp4"
# Pass a custom colormap
yolo solutions heatmap colormap=cv2.COLORMAP_INFERNO
# Heatmaps + object counting
yolo solutions heatmap region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"Link to this sectionHeatmap() 参数#
这是一个包含 Heatmap 参数的表格:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 模型文件的路径。 |
colormap | int | cv2.COLORMAP_DEEPGREEN | 用于热力图的颜色映射。 |
show_in | bool | True | 控制是否在视频流上显示进入计数的标志。 |
show_out | bool | True | 控制是否在视频流上显示离开计数的标志。 |
region | list | '[(20, 400), (1260, 400)]' | 定义计数区域的点列表。 |
You can also apply different track arguments in the Heatmap 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,则线条宽度会根据图像尺寸自动调整。提供用于清晰度的视觉自定义功能。 |
show_conf | bool | True | 在标签旁显示每次检测的置信度得分。让你深入了解模型对每次检测的确定性。 |
show_labels | bool | True | 在视觉输出中显示每次检测的标签。提供对检测到对象的即时理解。 |
Link to this section热图色彩映射 (COLORMAPs)#
| 色彩映射名称 | 描述 |
|---|---|
cv::COLORMAP_AUTUMN | Autumn 色彩映射 |
cv::COLORMAP_BONE | Bone 色彩映射 |
cv::COLORMAP_JET | Jet 色彩映射 |
cv::COLORMAP_WINTER | Winter 色彩映射 |
cv::COLORMAP_RAINBOW | Rainbow 色彩映射 |
cv::COLORMAP_OCEAN | Ocean 色彩映射 |
cv::COLORMAP_SUMMER | Summer 色彩映射 |
cv::COLORMAP_SPRING | Spring 色彩映射 |
cv::COLORMAP_COOL | Cool 色彩映射 |
cv::COLORMAP_HSV | HSV (色相、饱和度、明度) 色彩映射 |
cv::COLORMAP_PINK | Pink 色彩映射 |
cv::COLORMAP_HOT | Hot 色彩映射 |
cv::COLORMAP_PARULA | Parula 色彩映射 |
cv::COLORMAP_MAGMA | Magma 色彩映射 |
cv::COLORMAP_INFERNO | Inferno 色彩映射 |
cv::COLORMAP_PLASMA | Plasma 色彩映射 |
cv::COLORMAP_VIRIDIS | Viridis 色彩映射 |
cv::COLORMAP_CIVIDIS | Cividis 色彩映射 |
cv::COLORMAP_TWILIGHT | Twilight 色彩映射 |
cv::COLORMAP_TWILIGHT_SHIFTED | Shifted Twilight 色彩映射 |
cv::COLORMAP_TURBO | Turbo 色彩映射 |
cv::COLORMAP_DEEPGREEN | Deep Green 色彩映射 |
这些色彩映射通常用于以不同的颜色表现形式来可视化数据。
Link to this sectionUltralytics YOLO26 中的热图是如何工作的#
Ultralytics YOLO26 中的 热图解决方案 扩展了 ObjectCounter 类,以在视频流中生成和可视化移动模式。初始化时,该解决方案会创建一个空白的热图层,并随着物体在画面中的移动而更新。
对于每个检测到的物体,该解决方案会:
- 使用 YOLO26 的追踪功能跨帧追踪物体
- 更新物体所在位置的热图强度
- 应用选定的色彩映射来可视化强度值
- 将彩色热图叠加在原始帧上
最终呈现为一个随时间积累的动态可视化效果,揭示了你视频数据中的交通模式、人群流动或其他空间行为。
Link to this section常见问题解答#
Link to this sectionUltralytics YOLO26 如何生成热图,其优点是什么?#
Ultralytics YOLO26 通过将复杂数据转换为色彩编码矩阵来生成热图,其中不同的色调代表数据强度。热图使可视化数据中的模式、相关性和异常情况变得更加容易。暖色调表示更高的数值,而冷色调表示更低的值。其主要优点包括直观的数据分布可视化、高效的模式检测以及增强的空间分析以辅助决策。有关详细信息和配置选项,请参阅 热图配置 部分。
Link to this section我可以使用 Ultralytics YOLO26 同时进行物体追踪和生成热图吗?#
可以,Ultralytics YOLO26 支持同时进行物体追踪和热图生成。这可以通过其与物体追踪模型集成的 Heatmap 解决方案来实现。要做到这一点,你需要初始化热图对象并使用 YOLO26 的追踪功能。这里有一个简单的示例:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(colormap=cv2.COLORMAP_PARULA, show=True, model="yolo26n.pt")
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()如需进一步指导,请查看 追踪模式 页面。
Link to this section是什么让 Ultralytics YOLO26 的热图有别于 OpenCV 或 Matplotlib 等其他数据可视化工具?#
Ultralytics YOLO26 的热图专为与其 物体检测 和追踪模型集成而设计,为实时数据分析提供了端到端的解决方案。与 OpenCV 或 Matplotlib 等通用可视化工具不同,YOLO26 的热图针对性能和自动化处理进行了优化,支持诸如持久追踪、衰减因子调整和实时视频叠加等功能。有关 YOLO26 独特功能的更多信息,请访问 Ultralytics YOLO26 简介。
Link to this section如何使用 Ultralytics YOLO26 在热图中仅可视化特定的物体类别?#
你可以通过在 YOLO 模型的 track() 方法中指定所需的类别来可视化特定的物体类别。例如,如果你只想可视化汽车和行人(假设它们的类别索引分别为 0 和 2),你可以相应地设置 classes 参数。
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(show=True, model="yolo26n.pt", classes=[0, 2])
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()Link to this section为什么企业应该选择 Ultralytics YOLO26 进行数据分析中的热图生成?#
Ultralytics YOLO26 提供了高级物体检测和实时热图生成的无缝集成,使其成为希望更有效地可视化数据的企业的理想选择。主要优势包括直观的数据分布可视化、高效的模式检测以及增强的空间分析以实现更好的决策。此外,YOLO26 的尖端功能(如持久追踪、可自定义的色彩映射以及对各种导出格式的支持)使其在进行综合数据分析时优于 TensorFlow 和 OpenCV 等其他工具。在 Ultralytics 定价 页面了解更多关于商业应用的信息。

