Open yiskw713 opened 4 years ago
Haofan Wang, Mengnan Du, Fan Yang, Zijian Zhang
2019
pdf 解説 & keras実装
CNNの判断根拠を可視化する新しい手法(Score CAM)を提案している. 勾配ベースの可視化の手法は,ノイズが多かったり質が低かったりする.また,入力画像のわずかな変化に影響を受けやすい. 一方,Grad-CAM や Grad-CAM++ などの CAMベースの手法は,比較的綺麗な可視化が可能だが,対象の物体に無関係なノイズが乗りやすい.また特徴マップのチャネルごとの重みを算出し,これを重要度と見立ててヒートマップを作成するが,この重要度の正負とヒートマップの位置に相関がない事が問題である.
本研究では,勾配計算に依存しないCAMベースの可視化の手法である Score CAMを新たに提案している. これにより,ノイズの少ないより綺麗な可視化が可能になっている.
画像を入力し,最後の畳み込み層から得られるチャネル数Kの特徴マップ(K個のActivation Map)を保存する. この Activation Map を画像と同じサイズにアップサンプリングする. K個の Activation Map を,Activation Mapごとの最大値と最小値を用いて正規化する.
この正規化したK個の Activation Map を元の入力画像に掛け合わせ,K枚の画像を作成する. これらをそれぞれCNNに入力し,ターゲットのクラスの確率(スコアではなくソフトマックスを通した確率)を算出する.
K個の確率値を,それぞれK個の Activation Map の重要度とみなし, 重要度とActivation Map を乗算したのちに,足しあわせを行い Score CAM とする.
ネットワークの出力はそれぞれ独立なため,スケールが揃っていない. 確率値に直すことでスケールを揃えることができる. また,softmax を通すことで,ターゲットクラスではない物体に反応することを防げるらしい.
Grad-CAM++でも複数物体に反応しているが,Score CAMの方がよりノイズが少ない.
既存研究では,1) weakly-supervised localization での評価(bounding box の IoUでの評価),2) pointing accuracy による評価(saliency map の最大値がbounding box 内に存在するかどうか) の二つの方法で定量評価を行っていた. 前者の方法では,見た目と実際の性能が一致しない場合があり, 後者の方法では,saliency map全体を考慮していない(例えば,saliency map の最大値をとる点が画像内に均一に点在していた場合,saliency map の質は低いにもかかわらず,bounding box内に最大値は存在し正例となってしまう) ことが問題となっている.
そこで本研究では,pointing accuracy を energy based pointing game というエネルギーベースの評価指標に改良した. 具体的には,入力画像の,bounding box 内のsaliency mapの値の総和を,画像全体の saliency map の値の総和で割っている.
Jan 6th, 2020
pytorchで実装してみた https://github.com/yiskw713/ScoreCAM
INFO
author
Haofan Wang, Mengnan Du, Fan Yang, Zijian Zhang
affiliation
conference or year
2019
link
pdf 解説 & keras実装
概要
CNNの判断根拠を可視化する新しい手法(Score CAM)を提案している. 勾配ベースの可視化の手法は,ノイズが多かったり質が低かったりする.また,入力画像のわずかな変化に影響を受けやすい. 一方,Grad-CAM や Grad-CAM++ などの CAMベースの手法は,比較的綺麗な可視化が可能だが,対象の物体に無関係なノイズが乗りやすい.また特徴マップのチャネルごとの重みを算出し,これを重要度と見立ててヒートマップを作成するが,この重要度の正負とヒートマップの位置に相関がない事が問題である.
本研究では,勾配計算に依存しないCAMベースの可視化の手法である Score CAMを新たに提案している. これにより,ノイズの少ないより綺麗な可視化が可能になっている.
提案手法
Phase 1
画像を入力し,最後の畳み込み層から得られるチャネル数Kの特徴マップ(K個のActivation Map)を保存する. この Activation Map を画像と同じサイズにアップサンプリングする. K個の Activation Map を,Activation Mapごとの最大値と最小値を用いて正規化する.
Phase 2
この正規化したK個の Activation Map を元の入力画像に掛け合わせ,K枚の画像を作成する.
これらをそれぞれCNNに入力し,ターゲットのクラスの確率(スコアではなくソフトマックスを通した確率)を算出する.
Phase 3
K個の確率値を,それぞれK個の Activation Map の重要度とみなし, 重要度とActivation Map を乗算したのちに,足しあわせを行い Score CAM とする.
スコアではなく確率を用いる理由
ネットワークの出力はそれぞれ独立なため,スケールが揃っていない. 確率値に直すことでスケールを揃えることができる. また,softmax を通すことで,ターゲットクラスではない物体に反応することを防げるらしい.
検証
可視化の比較
同一クラスの物体が複数ある場合の可視化
Grad-CAM++でも複数物体に反応しているが,Score CAMの方がよりノイズが少ない.
定量評価
既存研究では,1) weakly-supervised localization での評価(bounding box の IoUでの評価),2) pointing accuracy による評価(saliency map の最大値がbounding box 内に存在するかどうか) の二つの方法で定量評価を行っていた. 前者の方法では,見た目と実際の性能が一致しない場合があり, 後者の方法では,saliency map全体を考慮していない(例えば,saliency map の最大値をとる点が画像内に均一に点在していた場合,saliency map の質は低いにもかかわらず,bounding box内に最大値は存在し正例となってしまう) ことが問題となっている.
そこで本研究では,pointing accuracy を energy based pointing game というエネルギーベースの評価指標に改良した. 具体的には,入力画像の,bounding box 内のsaliency mapの値の総和を,画像全体の saliency map の値の総和で割っている.
新規性
Comment
date
Jan 6th, 2020