ココアのお勉強ブログ

技術職の一般人です。趣味でコード書いたりソフト触ったり。

Erasing Integrated Learning : A Simple yet Effective Approach for Weakly Supervised Object Localization 自分用まとめ

論文リンク

http://openaccess.thecvf.com/content_CVPR_2020/html/Mai_Erasing_Integrated_Learning_A_Simple_Yet_Effective_Approach_for_Weakly_CVPR_2020_paper.html

どんな論文?

CVPR2020採択論文。Weakly supervised object localization (WSOL)をするための手法。WSOLとはセグメンターションラベルのようなラベルではなく、単純にクラスラベル程度の簡単なラベル情報だけで物体の位置、大きさ(要は簡単なセグメンテーションみたいなもの)を得ようというものである。

VGGみたいな一般的な分類モデルに基づいた方法は対象物全体ではなく、もっとも識別根拠の高い部分だけを強調してしまうという。逆に全体的な範囲に向けると今度は画像分類の精度が落ちるという。 この論文の結果を見れば分かるかもしれないが、要は下図の真ん中の行のように鳥の顔部分しか得られていない状態が「もっとも識別根拠の高い部分だけを強調してしまう」ということである。一番下のように鳥全体を覆うような感じにしたい。
そのため本手法ではErasing Integrated Learning「EIL」と呼ばれるシンプルでより良い手法を提案した。 CUB-200-2011とILSVRC 2016のベンチマークにおいて、ともに新たな大幅な改善を確認した。

関連論文、先行研究では得られたCAMや特徴マップの結果を、入力画像にマスクしたり、特徴マップにマスクしたりすることで重要な部分を順次隠しつつ、重要だと思われる他の部分どんどん追っていこうみたいなアプローチ。 当然のことながら、入力画像をマスクしたりすれば、重要な部分が隠されるわけなので精度は下がるという事態が起きかねない(というか起きると考えるのが当然)。

手法のキモ

全体図

EILの全体図を以下に示す。 ここでは論文のように、VGG16が以下の図のように使われてるとします。
f:id:hotcocoastudy:20200619121304p:plain
下の部分だけだと一般の学習法であることが分かります。

学習手順

まずはconv11~pool4まで通します。 チャンネルごとの平均プーリングを用いて平均マップM_{avg}を得ます。 適当な閾値γ用いて2値画像M_eにします。 得られた2値画像とconv11~pool4から出力される特徴マップをかけ合わします。 conv51~conv53→GAP(Global Average Pooling)を通します。
それぞれCrossEntorpyを計算し、L=L_u+σL_eを全体の損失関数とします。
以上のアルゴリズムをまとめると以下のようになります。
実際にこの設定で学習を進めてめると以下の図のようになるらしい。
また分岐する地点を増やしたMultiple EIL(MEIL)を使うとより効果的であった。

結果

感想

シンプルな方法なので、試すのはそこまで難しくないかも。
何か間違ってたら教えてください。マジでお願いします。