进阶数据可视化:使用 Ultralytics YOLO26 生成热力图 🚀

热力图简介

在 Colab 中打开热力图

使用Ultralytics YOLO26生成的热力图可以将复杂数据转化为充满活力的彩色矩阵。这种视觉工具采用一系列颜色来表示不同的数据值,其中暖色调表示高强度,冷色调表示低值。热力图擅长可视化复杂的数据模式、相关性和异常情况,为跨领域的数据解读提供了一种易于上手且引人入胜的方法。



Watch: Heatmaps using Ultralytics YOLO26

为什么选择热力图进行数据分析?

  • 直观的数据分布可视化: 热力图简化了对数据集中度和分布的理解,将复杂的数据集转换为易于理解的视觉格式。
  • 高效的模式检测: 通过以热力图格式可视化数据,可以更轻松地发现趋势、聚类和异常值,从而促进更快速的分析和洞察。
  • 增强空间分析与决策: 热力图有助于说明空间关系,为商业智能、环境研究和城市规划等领域的决策过程提供支持。

现实世界应用

交通运输零售
Ultralytics YOLO26 交通热力图Ultralytics YOLO26 零售热力图
Ultralytics YOLO26 交通热力图Ultralytics YOLO26 零售热力图
使用 Ultralytics YOLO 生成热力图
# 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)]"

Heatmap() 参数

下表列出了 Heatmap 参数:

参数类型默认值描述
modelstrNoneUltralytics YOLO 模型文件的路径。
colormapintcv2.COLORMAP_DEEPGREEN用于热图的配色方案。
show_inboolTrue用于控制是否在视频流中显示进入计数的标志。
show_outboolTrue用于控制是否在视频流中显示离开计数的标志。
regionlist'[(20, 400), (1260, 400)]'定义计数区域的点列表。

You can also apply different track arguments in the Heatmap solution.

参数类型默认值描述
trackerstr'botsort.yaml'指定使用的跟踪算法,例如 bytetrack.yamlbotsort.yaml
conffloat0.1设置检测的置信度阈值;较低的值允许跟踪更多对象,但可能会包含误报。
ioufloat0.7设置过滤重叠检测的 Intersection over Union (IoU) 阈值。
classeslistNone按类别索引过滤结果。例如,classes=[0, 2, 3] 将仅跟踪指定的类别。
verboseboolTrue控制跟踪结果的显示,提供跟踪对象的视觉输出。
devicestrNone指定推理设备(例如 cpucuda:00)。允许用户选择 CPU、特定的 GPU 或其他计算设备来执行模型。

此外,支持的可视化参数列表如下:

参数类型默认值描述
showboolFalse如果设为 True,则在一个窗口中显示标注后的图像或视频。这对于开发或测试期间的即时视觉反馈非常有用。
line_widthint or NoneNone指定边界框的线宽。如果为 None,线宽将根据图像大小自动调整。提供视觉自定义以提高清晰度。
show_confboolTrue在标签旁边显示每个检测结果的置信度分数。让你可以洞察模型对每个检测的确定性。
show_labelsboolTrue在可视化输出中显示每个检测结果的标签。提供对检测对象的即时了解。

热力图 COLORMAP(色彩映射)

色彩映射名称描述
cv::COLORMAP_AUTUMN秋季色彩映射
cv::COLORMAP_BONE骨骼色彩映射
cv::COLORMAP_JETJet 色彩映射
cv::COLORMAP_WINTER冬季色彩映射
cv::COLORMAP_RAINBOW彩虹色彩映射
cv::COLORMAP_OCEAN海洋色彩映射
cv::COLORMAP_SUMMER夏季色彩映射
cv::COLORMAP_SPRING春季色彩映射
cv::COLORMAP_COOL清凉色彩映射
cv::COLORMAP_HSVHSV(色相、饱和度、亮度)色彩映射
cv::COLORMAP_PINK粉色色彩映射
cv::COLORMAP_HOT热感色彩映射
cv::COLORMAP_PARULAParula 色彩映射
cv::COLORMAP_MAGMA岩浆色彩映射
cv::COLORMAP_INFERNO地狱色彩映射
cv::COLORMAP_PLASMA等离子色彩映射
cv::COLORMAP_VIRIDISViridis 色彩映射
cv::COLORMAP_CIVIDISCividis 色彩映射
cv::COLORMAP_TWILIGHT暮色色彩映射
cv::COLORMAP_TWILIGHT_SHIFTED平移暮色色彩映射
cv::COLORMAP_TURBOTurbo 色彩映射
cv::COLORMAP_DEEPGREEN深绿色彩映射

这些色彩映射通常用于通过不同的颜色表达来可视化数据。

热力图在 Ultralytics YOLO26 中是如何工作的

Ultralytics YOLO26 中的热力图解决方案扩展了 ObjectCounter 类,以生成并可视化视频流中的运动模式。初始化时,该解决方案会创建一个空白的热力图层,随着对象在帧中移动,该层会不断更新。

对于每个检测到的对象,该解决方案会:

  1. 利用 YOLO26 的跟踪能力跨帧跟踪对象
  2. 更新对象所在位置的热力图强度
  3. 应用选定的色彩映射来可视化强度值
  4. 将彩色热力图覆盖在原始帧上

结果是一个随时间累积的动态可视化图,揭示了视频数据中的交通模式、人群移动或其他空间行为。

常见问题 (FAQ)

Ultralytics YOLO26 如何生成热力图,其优势是什么?

Ultralytics YOLO26 通过将复杂数据转化为彩色矩阵来生成热力图,其中不同的色调代表数据强度。热力图使可视化数据模式、相关性和异常情况变得更加容易。暖色调表示高值,冷色调表示低值。主要优势包括直观的数据分布可视化、高效的模式检测以及用于决策的增强空间分析。更多详细信息和配置选项,请参考热力图配置部分。

我可以使用 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()

如需进一步指导,请查看跟踪模式页面。

Ultralytics YOLO26 热力图与其他数据可视化工具(如 OpenCV 或 Matplotlib)有什么不同?

Ultralytics YOLO26 热力图专为与其对象检测和跟踪模型集成而设计,为实时数据分析提供端到端的解决方案。与 OpenCV 或 Matplotlib 等通用可视化工具不同,YOLO26 热力图针对性能和自动化处理进行了优化,支持持续跟踪、衰减因子调整和实时视频叠加等功能。有关 YOLO26 独特功能的更多信息,请访问Ultralytics YOLO26 介绍

我该如何使用 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()

为什么企业应该选择 Ultralytics YOLO26 进行数据分析中的热力图生成?

Ultralytics YOLO26 提供了先进对象检测与实时热力图生成的无缝集成,是寻求更有效数据可视化企业的理想选择。主要优势包括直观的数据分布可视化、高效的模式检测以及用于更好决策的增强空间分析。此外,YOLO26 具备持续跟踪、可自定义色彩映射以及支持多种导出格式等尖端功能,使其在全面数据分析方面优于 TensorFlow 和 OpenCV 等其他工具。通过Ultralytics 定价了解更多关于商业应用的信息。

评论