メインコンテンツへスキップ
サポート・ナレッジベース

OpenVINO™を使用してヒートマップを生成する方法

コンテンツタイプ: トラブルシューティング   |   記事 ID: 000056835   |   最終改訂日: 2026/03/05

環境

OpenVINO™ 2022.1 以降 Python 3.8+ OpenCV NumPy C++ パッケージCNN

詳細

レイヤーごとの関連性伝播や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 製品に適用します。

免責条項

このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。