You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效获取GradCAM激活热力图的多个轮廓中心点坐标

多热力图中心点高效提取方案

最优实现方案为阈值分割+轮廓检测+中心矩计算,该方案基于OpenCV底层优化算子实现,处理64x64规格的小图耗时在微秒级,效率远高于聚类、梯度计算类方案,实现逻辑也更简单。

实现思路

  • 第一步:对缩放后的激活图做阈值过滤,剔除低响应的背景点,仅保留高响应目标区域,阈值可根据GradCAM的实际输出范围调整,0-1区间的输出通常设置0.3~0.5即可
  • 第二步:对过滤后的二值图做轮廓检测,提取所有独立的高响应区域轮廓
  • 第三步:对每个符合面积要求的轮廓计算中心矩,直接得到对应轮廓的中心点坐标

完整实现代码

import numpy as np
import cv2
import matplotlib.pyplot as plt

# 原始激活图
activation_map = [[0.0724, 0.0615, 0.0607, 0.0710, 0.0000, 0.0000, 0.0154],
        [0.1111, 0.0835, 0.0923, 0.0409, 0.0000, 0.0000, 0.0000],
        [0.0986, 0.0860, 0.1138, 0.0706, 0.0144, 0.0000, 0.0000],
        [0.1134, 0.1109, 0.2244, 0.3414, 0.2652, 0.2708, 0.1664],
        [0.1165, 0.1620, 0.5605, 0.7064, 0.4593, 0.6628, 0.6103],
        [0.0852, 0.2324, 1.0000, 0.8605, 0.5095, 0.8457, 0.8332],
        [0.0349, 0.2422, 0.9287, 0.5717, 0.2054, 0.4749, 0.6983]]
# 缩放至64x64
activation_map_resized = cv2.resize(np.array(activation_map), (64, 64))

# ----------------- 多中心点提取核心逻辑 -----------------
# 1. 阈值分割过滤低响应区域,threshold可根据实际场景调整
threshold = 0.3
binary_map = (activation_map_resized > threshold).astype(np.uint8) * 255

# 2. 检测所有独立轮廓
contours, _ = cv2.findContours(binary_map, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

centers = []
min_area = 10  # 过滤面积小于10像素的噪点轮廓,可调整
for cnt in contours:
    area = cv2.contourArea(cnt)
    if area < min_area:
        continue
    # 3. 计算轮廓矩得到中心点坐标
    M = cv2.moments(cnt)
    if M["m00"] == 0:
        continue
    cX = int(M["m10"] / M["m00"])
    cY = int(M["m01"] / M["m00"])
    centers.append((cX, cY))

print("提取到的中心点坐标:", centers)

# 可视化验证结果
plt.imshow(activation_map_resized, cmap='jet')
for (x, y) in centers:
    plt.scatter(x, y, c='red', marker='+')
plt.show()

方案优势

  • 效率极高:所有运算逻辑都基于OpenCV底层C++优化实现,单帧64x64热力图处理耗时不到1ms,完全满足实时处理需求
  • 可调性强:仅需调整threshold和min_area两个参数即可适配不同强度的热力图输出,灵活过滤噪点
  • 准确率高:直接基于热力图高响应区域的轮廓计算中心,抗噪性优于聚类方法,也不会出现梯度计算易受局部极值干扰的问题

内容的提问来源于stack exchange,提问作者wanburana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:06:06