Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Saliency Maps

顕著性マップは、各ピクセルがモデルの予測にどの程度影響したかを示すヒートマップです。勾配、CAM、摂動を使った手法、その限界、用途を紹介します。

顕著性マップとは、入力画像の各ピクセルがニューラルネットワークの出力、通常は予測された1つのクラスのスコアにどれだけ影響したかを示すヒートマップです。コンピュータービジョンにおける説明可能なAI(XAI)の最も一般的なツールの1つです。物体上を明るく示すマップは予測を裏付けますが、透かし、背景、画像の境界を明るく示すマップはショートカットを明らかにします。顕著性マップは出力を入力ピクセルに結び付ける点で、ネットワーク内部の特徴マップや、レイヤーがどこから情報を集めるかを示すビジョントランスフォーマーのアテンション重みとは異なります。知覚研究では、シーン内で人間の目が引き付けられる場所を示す関連概念にもこの用語を使います。Itti-Kochモデルは、視覚的注意をこのようにモデル化しています。

勾配顕著性の仕組み#

Simonyan、Vedaldi、Zissermanによる勾配顕著性マップ(2013年)では、バックプロパゲーションを用いて、モデルの重みではなく、1つのクラススコアに対する入力画像の勾配を計算します。ピクセルにおける勾配の大きさは、その箇所をわずかに変化させたときにスコアがどれほど変わるかを示します。3つのカラーチャンネルの絶対値の最大値を取ると、ピクセルごとに1つの値が得られます。ImageNet分類器の場合、PyTorchでフォワードパスとバックワードパスを1回ずつ実行すればよいため、計算コストは低く抑えられます。

import urllib.request

from PIL import Image
from torchvision.models import ResNet50_Weights, resnet50
from torchvision.utils import save_image

# Load an ImageNet classifier and track gradients on the input pixels
weights = ResNet50_Weights.DEFAULT
model = resnet50(weights=weights).eval()
image = Image.open(urllib.request.urlopen("https://ultralytics.com/images/bus.jpg"))
x = weights.transforms()(image).unsqueeze(0).requires_grad_()

# Backpropagate the top class score to the pixels
scores = model(x)
top = scores.argmax().item()
scores[0, top].backward()

# Saliency: largest absolute gradient across the color channels, scaled for display
saliency = x.grad.abs().amax(dim=1)
save_image((saliency / saliency.quantile(0.99)).clamp(max=1), "saliency.png")
print(f"Explained class: {weights.meta['categories'][top]}")

Explained class: minibusを出力し、分類器が認識した中央クロップの、粒状感のある224 × 224のマップを保存します。生の勾配はピクセルごとにばらつきますが、後続の手法では平均化するか特徴マップ上で処理することでノイズを低減します。

顕著性手法#

  • SmoothGrad: ノイズを加えた画像の複製を多数作り、それぞれの勾配マップを平均すると、斑点状のノイズの多くを取り除けます。
  • 統合勾配: 黒い画像などのベースラインから入力までの経路に沿って勾配を累積すると、ピクセルスコアの合計が2つのクラススコアの差と一致します。
  • Grad-CAM: 最後の畳み込みレイヤーの特徴マップを平均勾配で重み付けしてからアップサンプリングすると、粗いながらもクラス固有の領域が得られます。LayerCAM(2021年)では各位置を個別に重み付けするため、より前段の高解像度レイヤーからも有用なマップを得られます。
  • オクルージョンなどの摂動手法: 画像のパッチを隠してスコアの低下量を測定します。勾配は不要ですが、パッチごとにフォワードパスが1回必要です。

Ultralytics YOLOは物体検出などのタスクでLayerCAMマップを計算します。予測モードでvisualize=Trueを使用すると、検出ヘッドに入力される特徴マップの各位置を、信頼度の高い各予測のクラススコアに対する正の勾配で重み付けし、画像ごとに統合ヒートマップを1つ保存します。

from ultralytics import YOLO

# YOLO26の検出根拠を示すLayerCAMヒートマップを保存します
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg", visualize=True)

実行時の保存ディレクトリにbus_cam.jpgを書き込みます。NMSで重複が除去される前に、信頼度しきい値を超えるYOLO26の生の予測から、スコアが最も高い最大16件を説明します。また、classes=[0]を追加すると、人だけのマップが出力されます。

顕著性マップの限界#

顕著性マップが示すのは出力が影響を受けやすい領域であり、モデルがどのように推論するかではありません。後者はメカニスティック解釈可能性の目標です。Adebayoらが2018年に行った健全性チェックでは、誘導付きバックプロパゲーションなどの一般的な手法の一部が、モデルの重みをランダム化した後もほぼ同じマップを生成することが示されました。そのため、これらのマップが反映しているのは学習済みモデルよりも画像のエッジです。また、予測を変えない小さな入力摂動で、マップが大きく変化することもあります。

実際のアプリケーション#

  • ショートカットの発見: ヒートマップから、PASCAL VOCデータセットで学習した分類器が、多くの馬の写真に付いていた著作権表示を手掛かりの一部として馬を認識していたことが明らかになりました。この「クレバー・ハンス」的な振る舞いは、精度からは分かりませんでした。
  • 医用画像: 胸部X線分類器の開発者は、根拠がスキャナーの文字や胸腔ドレーンなどの治療器具ではなく、肺にあることを確認します。気胸分類器がそうした要素に依存することが示されているためです。
  • 画像クロップ: Twitterは、人間の注意を予測する顕著性モデルが視聴者の最初の注目先と予測した位置を中心に、画像プレビューをクロップしていました。同社の研究者による2021年の監査では、クロップが一部の人々を他の人々より体系的に優遇していたことが分かりました。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう