跳至内容

高级数据可视化:使用Ultralytics YOLO11 绘制热图 🚀

热图简介

生成的热图 Ultralytics YOLO11将复杂的数据转换成生动的彩色编码矩阵。这种可视化工具采用色谱来表示不同的数据值,暖色调表示较高的强度,冷色调表示较低的值。热图在可视化复杂的数据模式、相关性和异常情况方面表现出色,为不同领域的数据解读提供了一种易于理解且引人入胜的方法。



观看: 使用热图Ultralytics YOLO11

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

  • 直观的数据分布可视化:热图简化了对数据集中度和分布的理解,将复杂的数据集转换为易于理解的可视化格式。
  • 高效模式检测:通过热图格式的可视化数据,可以更容易地发现趋势、群组和异常值,从而有助于更快地进行分析并提出见解。
  • 增强空间分析和决策:热图有助于说明空间关系,帮助商业智能、环境研究和城市规划等领域的决策过程。

真实世界的应用

交通运输 零售
Ultralytics YOLO11 交通热图 Ultralytics YOLO11 零售业热图
Ultralytics YOLO11 交通热图 Ultralytics YOLO11 零售业热图

热图使用Ultralytics YOLO11 示例

# Run a heatmap example
yolo solutions heatmap show=True

# Pass a source video
yolo solutions heatmap source="path/to/video/file.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)]
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("Path/to/video/file.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))

# Video writer
video_writer = cv2.VideoWriter("heatmap_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# In case you want to apply object counting + heatmaps, you can pass region points.
# region_points = [(20, 400), (1080, 400)]  # Define line points
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]  # Define region points
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360), (20, 400)]  # Define polygon points

# Init heatmap
heatmap = solutions.Heatmap(
    show=True,  # Display the output
    model="yolo11n.pt",  # Path to the YOLO11 model file
    colormap=cv2.COLORMAP_PARULA,  # Colormap of heatmap
    # region=region_points,  # If you want to do object counting with heatmaps, you can pass region_points
    # classes=[0, 2],  # If you want to generate heatmap for specific classes i.e person and car.
    # show_in=True,  # Display in counts
    # show_out=True,  # Display out counts
    # line_width=2,  # Adjust the line width for bounding boxes and text display
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    im0 = heatmap.generate_heatmap(im0)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

论据 Heatmap()

名称 类型 默认值 说明
model str None Ultralytics YOLO 模型文件的路径
colormap int cv2.COLORMAP_JET 热图使用的颜色图。
show bool False 是否使用热图叠加显示图像。
show_in bool True 是否显示进入区域的对象计数。
show_out bool True 是否显示退出区域的对象计数。
region list None 定义计数区域的点(直线或多边形)。
line_width int 2 绘画线条的粗细。

论据 model.track

论据 类型 默认值 说明
source str None 指定图片或视频的源目录。支持文件路径和 URL。
persist bool False 可在帧间持续跟踪对象,在视频序列中保持 ID。
tracker str botsort.yaml 指定要使用的跟踪算法,例如 bytetrack.yamlbotsort.yaml.
conf float 0.3 设置检测的置信度阈值;数值越低,跟踪的物体越多,但可能会出现误报。
iou float 0.5 设置交叉重叠 (IoU) 阈值,用于过滤重叠检测。
classes list None 按类别索引筛选结果。例如 classes=[0, 2, 3] 只跟踪指定的类别。
verbose bool True 控制跟踪结果的显示,提供被跟踪物体的可视化输出。

热图 COLORMAPs

彩色地图名称 说明
cv::COLORMAP_AUTUMN 秋色地图
cv::COLORMAP_BONE 骨骼颜色图
cv::COLORMAP_JET 喷气彩图
cv::COLORMAP_WINTER 冬季彩色地图
cv::COLORMAP_RAINBOW 彩虹色地图
cv::COLORMAP_OCEAN 海洋颜色图
cv::COLORMAP_SUMMER 夏季彩色地图
cv::COLORMAP_SPRING 春色地图
cv::COLORMAP_COOL 酷炫的彩色地图
cv::COLORMAP_HSV HSV(色调、饱和度、值)色彩图
cv::COLORMAP_PINK 粉色地图
cv::COLORMAP_HOT 热门彩色地图
cv::COLORMAP_PARULA 帕鲁拉彩图
cv::COLORMAP_MAGMA 岩浆颜色图
cv::COLORMAP_INFERNO 地狱彩色地图
cv::COLORMAP_PLASMA 等离子彩图
cv::COLORMAP_VIRIDIS Viridis 彩色地图
cv::COLORMAP_CIVIDIS Cividis 彩色地图
cv::COLORMAP_TWILIGHT 黄昏彩色地图
cv::COLORMAP_TWILIGHT_SHIFTED 偏移的曙光色彩图
cv::COLORMAP_TURBO 涡轮颜色图
cv::COLORMAP_DEEPGREEN 深绿色彩图

这些颜色图通常用于用不同的颜色表示可视化数据。

常见问题

Ultralytics YOLO11 如何生成热图及其优势是什么?

Ultralytics YOLO11 通过将复杂数据转换为彩色编码矩阵,不同色调代表数据强度,从而生成热图。热图更容易直观地显示数据中的模式、相关性和异常情况。较暖的色调表示较高的数值,而较冷的色调表示较低的数值。其主要优点包括直观可视化数据分布、高效模式检测和增强决策空间分析。有关详细信息和配置选项,请参阅热图配置部分。

能否使用Ultralytics YOLO11 同时执行对象跟踪和生成热图?

是的,Ultralytics YOLO11 支持同时进行对象跟踪和热图生成。这可以通过其 Heatmap 解决方案集成了对象跟踪模型。为此,您需要初始化热图对象并使用YOLO11 的跟踪功能。下面是一个简单的示例:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video/file.mp4")
heatmap = solutions.Heatmap(colormap=cv2.COLORMAP_PARULA, show=True, model="yolo11n.pt")

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    im0 = heatmap.generate_heatmap(im0)
    cv2.imshow("Heatmap", im0)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

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

Ultralytics YOLO11 热图与OpenCV或 Matplotlib 等其他数据可视化工具有何不同?

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

如何使用Ultralytics YOLO11 在热图中只显示特定对象类别?

您可以通过在 track() YOLO 方法。例如,如果您只想可视化汽车和人(假设它们的类指数分别为 0 和 2),您可以设置 classes 参数。

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video/file.mp4")
heatmap = solutions.Heatmap(show=True, model="yolo11n.pt", classes=[0, 2])

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    im0 = heatmap.generate_heatmap(im0)
    cv2.imshow("Heatmap", im0)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

企业为什么要选择Ultralytics YOLO11 在数据分析中生成热图?

Ultralytics YOLO11 高级对象检测和实时热图生成的无缝集成,使其成为希望更有效地实现数据可视化的企业的理想选择。其主要优势包括直观的数据分布可视化、高效的模式检测和增强的空间分析,从而更好地做出决策。此外,YOLO11 的尖端功能,如持续跟踪、可定制的颜色图和对各种导出格式的支持,使其在综合数据分析方面优于其他工具,如 TensorFlow和 OpenCV 等其他工具更胜一筹。了解有关商业应用的更多信息,请访问Ultralytics Plans

📅创建于 1 年前 ✏️已更新 17 天前

评论