e4exp / paper_manager_abstract

0 stars 0 forks source link

Zero-Shot Detection via Vision and Language Knowledge Distillation #436

Open e4exp opened 3 years ago

e4exp commented 3 years ago

ゼロショット画像分類は、整列した画像とテキストのエンコーダーを学習することで、有望な進歩を遂げている。 本研究の目的は、バウンディングボックスやマスクアノテーションのない新規オブジェクトを検出することを目的としたゼロショットオブジェクト検出を進化させることである。 本研究では、Vision and Language knowledge Distillationを用いた学習手法であるViLDを提案する。 事前に学習したゼロショット画像分類モデル(CLIPなど)の知識を、2段階の検出器(Mask R-CNNなど)に蒸留します。 本手法では、検出器の領域埋め込みを、事前に学習されたモデルによって推測されたテキストおよび画像の埋め込みに合わせます。 また,学習済みのテキストエンコーダにカテゴリ名を入力して得られたテキスト埋め込みを,検出用の分類器として使用します. 次に,領域提案を学習済みの画像エンコーダに入力して得られる領域埋め込みと画像埋め込みの間の距離を最小化します. 推論の際には,ゼロショット検出のために,新規カテゴリーのテキストエンベッディングを検出分類器に含める. LVISデータセットを用いて,希少なカテゴリを新規カテゴリとして提示し,性能を評価した. ViLDは、マスクR-CNN (ResNet-50 FPN)を用いたゼロショット検出において、16.1のマスクAPrを得て、教師ありのモデルよりも3.8倍優れている。 このモデルは他のデータセットにも直接適用することができ,PASCAL VOC,COCO,Objects365において,それぞれ72.2 AP50,36.6 AP,11.8 APを達成した.

e4exp commented 3 years ago
  1. はじめに

image

図1の画像を考えると,学習ラベルに存在する基本的なカテゴリ(例:おもちゃ)だけを認識することを超えて,語彙を拡張して新しいカテゴリ(例:おもちゃの象)を検出する物体検出器を設計することができるでしょうか? 既存のオブジェクト検出アルゴリズムは,学習データに存在するカテゴリのみを検出するように学習することが多い. 検出語彙を増やすための一般的なアプローチは,より多くのカテゴリがラベル付けされた画像を収集することである. 最近,研究者たちは,大きな語彙を持つ新しい物体検出データセットを集めている[15, 25]. LVIS [15]は、1203のカテゴリを持つデータセットを構築することで、これらの努力のマイルストーンとなっている。 このように語彙が豊富な場合、すべてのカテゴリについて十分な学習例を集めることは非常に困難である。 Zipfの法則により,対象物のカテゴリは自然とロングテールの分布になります. 希少なカテゴリに対して十分な学習例を見つけるためには,指数関数的に多くのデータが必要となる[15]. このことは,大規模な語彙検出データセットの作成は,スケールアップにコストがかかることを意味する. 一方で,ペアとなる画像やテキストはインターネット上に豊富に存在する. 最近、Radfordら[33]は、4億個の画像とテキストのペアを用いて、ビジョンと言語の共同モデルを学習し、30以上のコンピュータビジョンデータセットで見事なゼロショット認識能力を実証した。 ゼロショット分類のための画像レベルの表現の学習には大きな成功を収めているが、ゼロショット物体検出のための物体レベルの表現の学習はまだ困難である。 本研究では、事前に学習したゼロショット画像分類モデルから知識を借りて、ゼロショット物体検出を可能にするというアイデアを検討する。

まず、ゼロショット画像分類モデルを使用するための簡単なアプローチを行います。 ゼロショット検出を, 1)一般化されたオブジェクトの提案と, 2)ゼロショット画像の分類という2つのサブ問題に変えます.

このアプローチは、R-CNN[13]の変形と見なすことができます。 基本カテゴリの例を用いて、領域提案モデルを学習します。 次に,事前に学習したゼロショット画像分類モデルを用いて,基本カテゴリと新規カテゴリの両方を含む,切り取られたオブジェクト提案を分類する. LVIS [15]では,すべての希少なカテゴリを新規カテゴリとし,それ以外のカテゴリをベースカテゴリとして扱うことで,性能をベンチマークした. 驚いたことに,新奇なカテゴリに対する性能は,すでに教師ありの場合と同等であった. しかし,この方法では,すべての物体提案を1つずつ分類モデルに入力する必要があるため,推論に非常に時間がかかる. さらに,基本カテゴリでの性能は非常に悪くなっている.

我々は,2段階のゼロショット検出器を学習するために,ViLD (Vision and Language knowledge Distillation) を提案する. ViLDは,テキストエンベッディングを用いた学習(ViLD-text)と,ゼロショット画像分類モデル(CLIP[33]など)によって推定された画像エンベッディング(ViLDimage)の2つのコンポーネントからなる. ViLD-textでは,事前に学習されたテキストエンコーダーにカテゴリのテキストプロンプトを入力することで,テキストエンベッディングを得る. そして,学習済みの検出分類器を,固定されたテキスト埋込 みに置き換える. 同様のアプローチは,以前のゼロショット検出の研究でも用いられている[3, 35]. しかし,これらの手法では,例えば[32]のように,言語コーパスから学習したテキスト埋め込みを用いているだけである. これに対して,我々は,例えば[33]のように,視覚データと一緒に学習されたテキスト埋め込みは,テキストプロンプト間の視覚的な類似性をよりよく表すことができると考えている. 例えば、「バケツ」と「ゴミ箱」は、GloVeでは遠くにありますが、CLIPでは形状の類似性から近くにあります。 LVISでは、CLIPのテキスト埋め込みを用いることで、新規カテゴリーの検索で10.1APを達成し、GloVeを用いた場合の3.0APを大幅に上回った。 ViLD-imageでは,事前に学習させた画像エンコーダに,カテゴリラベルの有無に関わらずオブジェクトを含むオブジェクトプロポーザルを与えることで,画像埋め込みを行う. そして,2段階のオブジェクト検出器の領域埋め込みを,この画像埋め込みに合わせる. ViLD-textとは異なり,ViLD-imageはカテゴリラベルを持たないオブジェクトプロポーザルを監視する.

テキストと画像の埋め込みを組み合わせて学習するViLDは,LVISの新規カテゴリに対して16.1APを達成し,教師あり学習のものを3.8上回ることができた. また,ViLD-textとCLIPの予測値をアンサンブルすることで,22.6APという最高の性能を得ることができた. さらに,LVIS上でViLDを用いて学習した検出器は,Objects365,COCO,PASCAL VOC Detectionなどの他のデータセットにも適用できることがわかった. 最後に、図1に示すように、このモデルが新しい細かいカテゴリーや属性を持つオブジェクトを検出できることを定性的に示します。 我々の貢献を以下のようにまとめる。

e4exp commented 3 years ago
  1. 結論

ゼロショット画像分類モデルの知識を抽出することで,ゼロショット検出を行うViLDを発表した. ViLDは,LVISの新規カテゴリで16.1APrを達成し,同じ推論速度であれば教師あり学習のモデルを上回る. さらに,CLIPを用いてモデルをアンサンブルすることで,この性能は22.6にまで向上し,我々のアプローチの可能性を示している. LVISから学んだ検出器は、他の3つの検出データセットに直接移植できることを実証しました。 さらに,ViLDは,自由記述のテキストを用いて,細かいカテゴリや属性を持つオブジェクトを検出することができる. 最後に,ViLDは,オブジェクト検出のために高価なアノテーションを収集する代わりに,ロングテールのカテゴリを検出するスケーラブルな代替アプローチを示している.

e4exp commented 3 years ago

image

  1. メソッド 本節では,我々の手法の3つの主要な構成要素,すなわち,新規物体のローカライズ,事前に学習されたテキスト埋め込みからの学習(ViLD-text),事前に学習された画像埋め込みからの学習(ViLD-image)について紹介する. 図2は、本手法の概要を示したものである。 また,検出性能を向上させるためのモデルアンサンブル手法についても検討している.

ゼロショット検出のための設定 モデルが学習できる基本カテゴリC_Bと,学習時には表示されない新規カテゴリC_Nのセットがある. ゼロショット検出の主な目的は、新規カテゴリーにおいて正確な物体検出を行うことです。

ゼロショット画像分類モデル。 ゼロショット検出は、既製の学習済みゼロショット画像分類モデル(CLIP[33]など)を活用して実現します。 このモデルは、テキストエンコーダーT(-)と画像エンコーダーV(-)を備えており、これらは画像とテキストの共同コントラスト学習によって事前に学習されています。 ViLDでは,図2に示すように,学習中にこれらのエンコーダーを更新しないようにしている.

3.1. 新規カテゴリーのオブジェクト提案 ゼロショット検出の最初の課題は、新規オブジェクトをローカライズすることです。 我々は、バウンディングボックスとマスクを持つオブジェクトプロポーザルを検出するために、2段階のオブジェクト検出器(例えば、Mask R-CNN [17])を変更する。 第2段階のバウンディングボックス回帰とマスク予測層のような、クラス固有の定位モジュールを、一般的なオブジェクトプロポーザルのためのクラス不問のモジュールに置き換える。 各関心領域に対して、これらのモジュールは、各カテゴリに対して1つの予測をする代わりに、可能なすべてのカテゴリに対して1つのバウンディングボックスと1つのマスクを予測するだけです。

3.2. クロップされた領域を用いたゼロショット検出 物体の候補がローカライズされたら、事前に学習されたゼロショット画像分類器を用いて各領域を分類するのが簡単なアプローチです。 特に、背景の確率が高いプロポーザルをフィルタリングし、非最大値抑圧(NMS)を適用して、トップk領域を取得します。 ここで,Iは画像,rはプロポーザルのバウンディングボックスである. 画像エンコーダによって推定された画像エンベッディングは,V(crop(I, r))である. 1.5×クロップはより多くのコンテキストキューを提供するため,各提案について1×クロップと1.5×クロップの画像エンベッディングをアンサンブルする. アンサンブルされたエンベッディングは,単位ノルムに再正規化される.

image

その後、クラスごとにNMSを適用し、上位K個の信頼度スコアを持つ領域を取り出します。 この方法では,切り取られた領域の提案がすべて画像分類モデルに入力されるため,推論時間が長くなります. また,検出データセットに含まれる基本カテゴリラベルを利用していないため,推論に時間がかかります.

3.3. 分類器をテキスト埋め込みに置き換える ViLDでは、各提案を表現するために、2段階の検出器で領域埋め込みを学習する。 ここで、φ(-)はバックボーンモデル、Rは各提案rの領域埋め込みを生成するための軽量モデルで、領域埋め込みをR(φ(I), r)と定義する。 具体的には、検出分類器の前の層の出力をリージョンエンベッディングとする。 我々の目的は、T (-)でエンコードされたテキストエンベッディングに分類できるように、リージョンエンベッディングを学習することである。

まず,ViLD-textを紹介する.図3(b)にモデルの構成と学習目標を示す. ViLD-textは,図3(a)の学習可能な分類器をテキストエンベッディングに置き換える. 学習のために,ベースカテゴリ(CB)のテキストプロンプト,例えば「a photo of {category} in the scene」をテキストエンコーダーに入力して,テキストエンベッディングT(CB)を生成します. ラベル付けされたベースカテゴリにマッチしないプロポーザルは、「背景」カテゴリに割り当てられます。 背景 "のテキストプロンプトは、これらのマッチしない提案をうまく表現できないので、"背景 "カテゴリに独自の埋め込み(ebg)を学習させます。 各領域の埋め込みR(φ(I), r)と、T(CB)とebgを含む全てのカテゴリの埋め込みとの間の余弦類似度を計算する。 そして、これらのコサイン類似度に温度τでソフトマックス活性化を適用して、クロスエントロピー損失を計算する。 sim(a, b) = a T b/ (||a||||b||), tiはT (CB)の要素、 yrは領域rのクラスラベル、LCEはクロスエントロピー損失を表す。ViLD-textの損失関数は次のように書ける。

image

推論の際には、新規カテゴリー(CN )を含め、ゼロショットを検出するためのT(CB∪CN )を生成します(T(CN )のみの場合もあります)(図2)。 ラベル付けされたCBから学習したモデルが、新しいカテゴリーCNに一般化できることを期待しています。

image

3.4. 画像エンベッディングの抽出 次にViLD-imageを紹介します。ViLD-imageは、領域エンベッディングR(φ(I), r)を、3.2節で紹介した画像エンベッディングV(crop(I), r)に合わせることを目的としています。 その目的は、教師用画像エンコーダVにある知識を生徒用検出器に抽出することである。 提案r〜は、基本カテゴリで事前学習された領域提案ネットワークを用いて、学習画像からオフラインで抽出する。 これらの提案には,CBとCNの両方のオブジェクトが含まれている可能性がある. 一方,ViLD-textはCBからしか学習できません. 領域埋め込みと画像埋め込みの間にL1損失を適用し,両者の距離を最小化する(セクション3.2と同じアンサンブルされた画像埋め込みを用いる).

image

ViLDの学習損失は、単純に両方の目的のウェジットの合計です。

image

ここでwは,画像埋め込みを蒸留するためのハイパーパラメータの重みである. 図3(b)は,モデルのアーキテクチャと学習目的を示している. ViLD-textとViLD-imageの違いは学習時のみであり,ViLD-textとViLD-imageはそれぞれLViLD-textとLViLD-imageで学習される. 推論時には,ViLD-image,ViLD-text,ViLDはゼロショット検出のための同じモデルアーキテクチャを共有する

3.5. モデルのアンサンブル このセクションでは,基本カテゴリと新規カテゴリで最高の検出性能を得るために,モデルのアンサンブルを検討します. まず,「ViLD-text」検出器の予測値と,「ゼロショット画像」の分類モデルを組み合わせます. 直感的には,ViLD-image はゼロショット画像の教師モデルの予測を近似的に学習するので,教師モデルを直接使用すると性能が向上すると考えられます.

学習されたViLD-text検出器を用いて,候補領域とそのカテゴリ信頼度スコアを取得します. そして、背景領域をフィルタリングし、NMSを適用して上位k個の提案を得る。 ここでは,pi,ViLD-text を用いて,各提案 r の信頼度スコアを表す. 次に、信頼度スコアpi,clsを得るために、crop(I, r)をゼロショット分類モデルに与えます。 この2つのモデルは,基本カテゴリと新規カテゴリで異なる性能を持つことがわかっているので,アンサンブルに加重幾何平均を導入します.

image

λを2/3にすることで,ViLD-textの予測をベースカテゴリに対してより重くし,その逆も同様にします。 この方法は,セクション3.2の方法と同様に推論速度が遅いことに注意してください. さらに,上記の手法の推論速度の問題を軽減するために,異なるアンサンブル手法を導入します. ViLDでは,ViLD-textのクロスエントロピー損失とViLD-imageのL1ディストーション損失を同じ領域の埋め込みに適用しているため,競合が発生する可能性がある. ここではその代わりに,ViLD-textとViLD-imageに同じバックボーンアーキテクチャを持つ独立した2つのヘッドを用いて,同じ領域に対する2つの埋め込みを学習する. この2つの領域のエンベッディングにテキストエンベッディングを適用し、信頼度スコアpi,ViLD-textとpi,ViLD-imageを得て、pi,ViLD-imageをpi,clsに置き換えて、式5と同様の方法でアンサンブルを行う。この手法をViLD-ensembleと呼ぶ.