如何用 Ultralytics YOLO26 的 Heatmap 方案为视频生成目标移动热力图

发布时间:2026/11/4 16:10:36

如何用 Ultralytics YOLO26 的 Heatmap 方案为视频生成目标移动热力图 如何用 Ultralytics YOLO26 的 Heatmap 方案为视频生成目标移动热力图【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics如果你有一段监控、交通或人流视频想在一张空间分布图上直观看出目标最常出现在哪里、在哪停留Ultralytics 的 Heatmap solution 可以直接完成这件事它基于 YOLO26 的目标跟踪在视频帧间追踪每个目标把每个目标停留位置上的强度持续累加再用 OpenCV colormap 把累加结果上色并叠回原帧。忙的区域呈暖色高亮冷清的区域保持冷色。整个流程只需要一个 Python 脚本或一条 CLI 命令无需自己搭建检测加跟踪的管线。本文的主路径是安装环境 → 用 Python 脚本把热力图叠加帧写入输出视频文件 → 验证结果CLI 和可选的计数区域、类别过滤作为分支给出。准备工作安装ultralytics包文档推荐 pip 方式# Install or upgrade the ultralytics package from PyPI pip install -U ultralytics准备一个输入视频文件脚本中所有示例的路径path/to/video.mp4都需要替换成你自己的视频路径这是读者必须提供的值。示例统一使用yolo26n.pt这个 YOLO26n 检测模型文件名文档中的所有 Heatmap 示例都直接传入该文件名。原理Heatmap 方案每帧做了什么Heatmap 实现继承自ObjectCounter处理流程是第一帧创建一块与帧尺寸相同的空白强度层initialized标志保证只创建一次之后每一帧先由 YOLO26 跟踪检测并跟随帧内所有目标对每个被跟踪目标以其边界框中心为圆心的圆形区域内强度增加每帧结束把累加的强度层归一化、按所选 colormap 上色再与原帧按 0.5/0.5 权重混合。由此产生两个行为特征读结果时要注意热力图是随时间逐步长出来的视频越靠后累计效果越明显当某帧没有跟踪到任何目标时该帧直接显示原图不带热力图叠加。主路径Python 脚本生成热力图视频下面代码来自官方 Heatmap 指南完整可运行。需要替换的只有视频路径path/to/video.mp4输出文件固定为当前目录下的heatmap_output.avi。import cv2 from ultralytics import solutions cap cv2.VideoCapture(path/to/video.mp4) # 替换为你的视频路径 assert cap.isOpened(), Error reading video file # Video writer 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 cv2.VideoWriter(heatmap_output.avi, cv2.VideoWriter_fourcc(*mp4v), fps, (w, h)) # Initialize heatmap object heatmap solutions.Heatmap( showTrue, # display the output modelyolo26n.pt, # path to the YOLO26 model file colormapcv2.COLORMAP_PARULA, # colormap of heatmap # regionregion_points, # object counting with heatmaps, you can pass region_points # classes[0, 2], # generate heatmap for specific classes, e.g., person and car. ) # Process video while cap.isOpened(): success, im0 cap.read() if not success: print(Video frame is empty or processing is complete.) break results heatmap(im0) # print(results) # access the output video_writer.write(results.plot_im) # write the processed frame. cap.release() video_writer.release() cv2.destroyAllWindows() # destroy all opened windows关键参数说明showTrue会弹出窗口实时显示处理后的帧默认值为False需要显示反馈时才传Trueresults.plot_im是已经叠加好热力图的帧逐帧写入video_writer后得到输出视频脚本跑完会在当前目录生成heatmap_output.avi。替代路径CLI 快速运行安装完成后可以直接用命令行跑yolo solutions heatmap是官方给出的入口语法为yolo SOLUTIONS SOLUTION_NAME ARGS# Run a heatmap example yolo solutions heatmap showTrue # Pass a source video yolo solutions heatmap sourcepath/to/video.mp4 # Pass a custom colormap yolo solutions heatmap colormapcv2.COLORMAP_INFERNO其中source参数仅 CLI 可用用来指定输入视频视频文件、RTSP 等。常用参数Heatmap()可传入以下三类参数默认值来自官方参数表参数类型默认值说明modelstrNoneUltralytics YOLO 模型文件路径colormapintcv2.COLORMAP_DEEPGREEN热力图所用 colormap可传任意cv2.COLORMAP_*常量regionlistordictNone兴趣区域点集None时不计数。传入后同时统计进出该区域的目标数line_widthint2方案绘制的框、关键点、计数的线宽verboseboolTrue开启后按帧输出输入尺寸、类别计数和处理速度的日志另外可透传track参数Heatmap把部分参数转发给跟踪调用参数类型默认值说明trackerstrbotsort.yaml跟踪算法内置选项botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yamlconffloat0.25检测置信度阈值调低会让更多目标被跟踪但可能混入误检ioufloat0.7过滤重叠检测的 IoU 阈值classeslistNone按类别索引过滤如classes[0, 2, 3]只跟踪指定类别devicestrNone推理设备如cpu、cuda:0或0colormap接受任意 OpenCV colormap 常量文档列出的选项包括cv2.COLORMAP_JET、cv2.COLORMAP_HOT、cv2.COLORMAP_INFERNO、cv2.COLORMAP_MAGMA、cv2.COLORMAP_PLASMA、cv2.COLORMAP_PARULA、cv2.COLORMAP_VIRIDIS、cv2.COLORMAP_TURBO等二十余种按需选择即可。可选分支只统计特定类别如果视频里人和车混在一起只想看人COCO 类别索引 0和车索引 2的热力图传入classesimport cv2 from ultralytics import solutions cap cv2.VideoCapture(path/to/video.mp4) # 替换为你的视频路径 heatmap solutions.Heatmap(showTrue, modelyolo26n.pt, classes[0, 2]) while cap.isOpened(): success, im0 cap.read() if not success: break results heatmap(im0) cap.release() cv2.destroyAllWindows()可选分支热力图 区域计数传入region后方案在生成热力图的同时统计进出该区域的目标数。region点集可以是两点一条计数线或三点以上多边形区域按连接顺序书写region_points [(20, 400), (1080, 400)] # line points region_points [(20, 400), (1080, 400), (1080, 360), (20, 360)] # rectangle region region_points [(20, 400), (1080, 400), (1080, 360), (20, 360), (20, 400)] # polygon points把region_points赋给主路径示例中注释掉的region参数即可对应的 CLI 写法是yolo solutions heatmap region[(20, 400), (1080, 400), (1080, 360), (20, 360)]。这些示例坐标按官方文档的 1080 宽画面给出实际使用时需要按你的视频分辨率自行确定。区域配置细节可参考 Object Counting 指南。如何验证结果输出文件脚本正常结束后当前目录应出现heatmap_output.avi。文档没有给出固定的像素级成功标准判断方式就是打开该视频确认目标密集区域随播放时间逐渐出现暖色叠加。返回值检查每次调用heatmap(im0)返回SolutionResults其属性包括plot_im叠加后的帧、in_count与out_count进出区域计数仅在设置region时有意义、classwise_count按类别的计数和total_tracks当前跟踪到的目标数。把示例中被注释的print(results)打开即可查看。逐帧日志verbose默认为True运行时控制台会输出每帧的输入尺寸、类别计数和处理速度可用于确认管线在正常推进。读取失败如果视频路径错误或文件损坏脚本会触发assert cap.isOpened(), Error reading video file直接报错视频读完最后一帧时进入break分支并打印Video frame is empty or processing is complete.。限制与注意点热力图强度是整段视频累计的中途重启脚本会重新从空白强度层开始同一视频想获得完整累计效果需要一次性跑完。未跟踪到目标的帧不带叠加层这是正常行为而非错误。classes使用的是 COCO 类别索引换用自训练模型时类别含义会随你的数据集变化。默认show为False无显示环境如服务器跑脚本时不要开showTrue。延伸阅读Heatmap 完整指南包含 FAQ 与更多 colormap 选项Object Counting 指南region配置与计数逻辑跟踪模式文档各 tracker 算法的对比Solutions 总览Heatmap之外的其他可视化方案【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/2 21:52:41

STM32F0x标准库使用指南:从解压到GPIO点灯跑通

简介:STM32F0x.zip 是一套面向 STM32F0 系列微控制器(ARM Cortex-M0)的嵌入式开发资料包,适合正在学习或实际开发 STM32F0 的软硬件工程师。压缩包内除 IAR 工程文件与链接/调试配置外,还包含 stm32f0xx_tim.c、stm32f…

2026/11/4 16:07:54

signature_pad 签名图片压缩避坑全解

signature_pad 签名图片压缩避坑全解 【免费下载链接】signature_pad HTML5 canvas based smooth signature drawing 项目地址: https://gitcode.com/gh_mirrors/si/signature_pad 上线第一个月,订单系统里用户提交的签名图片平均 200KB,CDN 带宽…

2026/11/4 16:07:54

Linux 进程、线程与进程通信核心知识笔记

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 16:07:54

前端路在何方?看比特鹰如何培养AI时代的全栈工程师

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 15:57:52

从零开始学AI22——集成学习

集成学习核心思想是“三个臭皮匠,顶个诸葛亮”,通过组合多个弱模型提升整体性能。三大流派:Bagging(如随机森林)并行训练、投票降方差,适合抗噪稳定场景;Boosting(如XGBoost&#xf…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 0:03:20

AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年…

2026/11/4 0:03:20

从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你…

2026/11/4 0:03:20

32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑