跳到主要內容
支援知識庫

如何使用 OpenVINO™ 產生熱力圖

內容類型: 疑難排解   |   文章 ID: 000056835   |   最近查看日期: 2026 year 03 month 05 day

環境

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

說明

像是層 層相關性傳播或 Grad-CAM 這類熱圖產生技術,能否使用 OpenVINO™ 實作?

解決方法

熱力圖可用來視覺化神經網路的決策過程。

為了在 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 個產品。

免責聲明

這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。