即插即用 | YOLOv8热力图可视化方法详解

YOLOv8___0">高级数据可视化:使用Ultralytics YOLOv8 绘制热图 🚀

在这里插入图片描述

热图简介

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

YOLOv8_7">观看: 使用热图Ultralytics YOLOv8

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

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

真实世界的应用

  • 交通运输
    • Ultralytics YOLOv8 交通热图
  • 零售
    • Ultralytics YOLOv8 零售业热图

热图配置

  • heatmap_alpha:确保该值在 (0.0 - 1.0) 范围内。
  • decay_factor:用于在帧中不再存在对象后删除热图,其值也应在 (0.0 - 1.0) 范围内。

YOLOv8__28">热图使用Ultralytics YOLOv8 示例

热图

import cv2
from ultralytics import YOLO, solutions

model = YOLO("yolov8n.pt")
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))

# Define polygon points
region_points = [(20, 400), (1080, 404), (1080, 360), (20, 360), (20, 400)]

# Init heatmap
heatmap_obj = solutions(
    colormap=cv2.COLORMAP_PARULA,
    view_img=True,
    shape="circle",
    count_reg_pts=region_points,
    names=model.names,
)

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

    tracks = model.track(im0, persist=True, show=False)
    im0 = heatmap_obj.generate_heatmap(im0, tracks)
    video_writer.write(im0)

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

论据 Heatmap()

名称类型默认值说明
nameslistNone类名词典
imwint0图像宽度
imhint0图像高度
colormapintcv2.COLORMAP_JET热图使用的颜色图
heatmap_alphafloat0.5热图叠加的 Alpha 混合值
view_imgboolFalse是否使用热图叠加显示图像
view_in_countsboolTrue是否显示进入区域的对象计数
view_out_countsboolTrue是否显示退出区域的对象计数
count_reg_ptslistNoneNone定义计数区域的点(直线或多边形)
count_txt_colortuple(0, 0, 0)显示计数的文本颜色
count_bg_colortuple(255, 255, 255)显示计数的背景颜色
count_reg_colortuple(255, 0, 255)计数区域的颜色
region_thicknessint5区域线的厚度
line_dist_threshint15线性计数的距离阈值
line_thicknessint2绘画线条的粗细
decay_factorfloat0.99热图的衰减系数,用于降低随时间变化的强度
shapestr"circle"热图 Blobs 的形状("圆形"或 “矩形”)

论据 model.track

名称类型默认值说明
sourcestrNone指定图像或视频的源目录。支持文件路径和 URL
persistboolFalse启用跨帧持久跟踪对象,维护视频序列中的 ID
trackerstrbotsort.yaml指定要使用的跟踪算法,例如 bytetrack.yamlbotsort.yaml
conffloat0.3设置检测的置信度阈值;较低的值允许跟踪更多对象,但可能包括误报
ioufloat0.5设置过滤重叠检测的交并比(IoU)阈值
classeslistNone按类索引过滤结果。例如,classes=[0, 2, 3] 只跟踪指定的类
verboseboolTrue控制跟踪结果的显示,提供跟踪对象的视觉输出

热图 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_HSVHSV(色调、饱和度、值)色彩图
cv::COLORMAP_PINK粉色地图
cv::COLORMAP_HOT热门彩色地图
cv::COLORMAP_PARULA帕鲁拉彩图
cv::COLORMAP_MAGMA岩浆颜色图
cv::COLORMAP_INFERNO地狱彩色地图
cv::COLORMAP_PLASMA等离子彩图
cv::COLORMAP_VIRIDISViridis 彩色地图
cv::COLORMAP_CIVIDISCividis 彩色地图
cv::COLORMAP_TWILIGHT黄昏彩色地图
cv::COLORMAP_TWILIGHT_SHIFTED偏移的曙光色彩图
cv::COLORMAP_TURBO涡轮颜色图
cv::COLORMAP_DEEPGREEN深绿色彩图

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

常见问题

YOLOv8__136">Ultralytics YOLOv8 如何生成热图及其优势是什么?

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

YOLOv8__140">能否使用Ultralytics YOLOv8 同时执行对象跟踪和生成热图?

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

import cv2
from ultralytics import YOLO, solutions

model = YOLO("yolov8n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
heatmap_obj = solutions(colormap=cv2.COLORMAP_PARULA, view_img=True, shape="circle", names=model.names)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    tracks = model.track(im0, persist=True, show=False)
    im0 = heatmap_obj.generate_heatmap(im0, tracks)
    cv2.imshow("Heatmap", im0)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

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

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

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

YOLOv8__173">如何使用Ultralytics YOLOv8 在热图中只显示特定对象类别?

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

import cv2
from ultralytics import YOLO, solutions

model = YOLO("yolov8n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
heatmap_obj = solutions.(colormap=cv2.COLORMAP_PARULA, view_img=True, shape="circle", names=model.names)

classes_for_heatmap = [0, 2]  # Classes to visualize
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    tracks = model.track(im0, persist=True, show=False, classes=classes_for_heatmap)
    im0 = heatmap_obj.generate_heatmap(im0, tracks)
    cv2.imshow("Heatmap", im0)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

http://www.niftyadmin.cn/n/5672141.html

相关文章

全面详尽的 PHP 环境搭建教程

目录 目录 PHP 环境搭建概述 在 Windows 上搭建 PHP 环境 使用集成环境 XAMPP 安装步骤 配置和测试 常用配置 手动安装 Apache、PHP 和 MySQL 安装 Apache 安装 PHP 安装 MySQL 配置 PHP 连接 MySQL 在 Linux 上搭建 PHP 环境 使用 LAMP 方案 安装 Apache 安装 …

产品经理面试整理-练习常见面试问题

练习常见面试问题是准备产品经理面试的重要环节。掌握这些问题的回答思路,不仅能帮助你在面试中更加自信,还能展示你对产品管理的深入理解。以下是一些常见的产品经理面试问题,以及如何高效准备这些问题的指南。 1. 常见面试问题及回答思路 1.1 你如何定义产品成功? ●

【ArcGIS微课1000例】0123:数据库中要素类批量转为shapefile

除了ArcGIS之外的其他GIS平台,想要打开ArcGIS数据库,可能无法直接打开,为了便于使用shp,建议直接将数据库中要素类批量转为shapefile。 文章目录 一、连接至数据库二、要素批量转shp一、连接至数据库 打开ArcMap,或者打开ArcCatalog,找到数据库连接,如下图: 数据库为个…

VMware Fusion 虚拟机Mac版 安装CentOS8 系统教程

Mac分享吧 文章目录 CentOS 8 安装完成,软件打开效果一、Mac中使用虚拟机安装CentOS 8 系统1️⃣:下载镜像2️⃣:创建虚拟机3️⃣:设置虚拟机4️⃣:安装虚拟机5️⃣:设置成从磁盘启动 安装完成&#xff01…

【二等奖论文】2024年华为杯研赛D题成品论文(后续会更新)

您的点赞收藏是我继续更新的最大动力! 一定要点击如下的卡片,那是获取资料的入口! 点击链接获取【2024华为杯研赛资料汇总】: https://qm.qq.com/q/jTIeGzwkSchttps://qm.qq.com/q/jTIeGzwkSc 题 目: 大数据驱动的…

96. UE5 GAS RPG 实现闪电链技能(一)

闪电链有一个施法的过程,就是在按键按下的过程,会在按下的过程一直持续造成伤害,一直等到条件不满足(技能键位抬起,蓝量不足,被眩晕)时,将结束技能,并退出技能状态。 所以…

【网络安全】网络基础第一阶段——第一节:网络协议基础---- OSI与TCP/IP协议

从今天起,我们正式进入第二部分——网络基础。继续学习网络基础、网络协议等相关内容🌟🌟🌟 目录 一、OSI模型 1.1 分层思想 1.2 OSI参考模型 1.3 数据封装与解封装 1.3.1 数据的封装过程 1.3.2 数据的解封装过程 二、TCP/…

深入Match NFT拍卖:从玩法到优势,一篇文章带你全面了解

在迅猛扩张的数字资产领域,NFT 协议标准持续迭代,刷新了我们对于数字所有权和互动方式的认知。从艺术领域到游戏金融(Gamefi),NFT 已成为数字经济中不可或缺的一环。 近期,链上新兴生态——Match&#xff0…