跳转至主要内容
支持知识库

如何使用 OpenVINO™ 生成热图

内容类型: 故障排除   |   文章 ID: 000056835   |   上次审核日期: 2026 年 03 月 05 日

环境

OpenVINO™ 2022.1 或更高版本 Python 3.8+ OpenCV NumPy C++ PackageCNN

说明

是否可以使用 OpenVINO™ 实现热图生成技术,例如 逐层相关性传播或 Grad-CAM

解决方法

热图可用于可视化神经网络的决策过程。

为了在OpenVINO™中生成热图,有必要:

  1. 访问 目标卷积层的输出特征图和相应的权重。

    注意在 OpenVINO™ 2.0+ API 中初始化网络时,可以通过 model.add_outputs() 函数调用来完成(替换已弃用的 CNNNetwork: addOutput())。
  2. 运行推理 后,使用 特征映射计算权重的加权和,以生成类激活映射。

  3. 对于 Grad-CAM 实现, 计算 目标类相对于特征图的梯度,然后将梯度 乘以 特征图。

  4. 应用 ReLU 激活以删除负值并将生成的热图 规范化

  5. 调整 热图大小以匹配输入图像尺寸,并将其 叠加 在原始图像上以进行可视化。

附加步骤:

  • 使用 model.get_ops() 标识可用的图层名称。
  • 应用 颜色映射(例如, cv2.COLORMAP_JET)以获得更好的可视化。
  • 在可视化之前规范化 0-1 之间的热图值。

相关信息

OpenVINO™ Python* API 文档、模型优化指南

相关产品

本文适用于 1 产品。

免责声明

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。