论文:視覚と言語知識の蒸留によるオープンボキャブラリーオブジェクト検出
コード: https://github.com/tensorflow/tpu/tree/master/models/official/detection/projects/vild
効果:
- ゼロショット テストでは、coco は 36.6 AP、PASCAL VOC は 72.2 AP、Object365 は 11.8 AP に達しました。
この論文では、視覚と言語の知識の蒸留 (ViLD) を提案します。
- 事前トレーニングされた開集合分類モデルを教師モデルとして使用して、2 段階のターゲット検出器の学生モデルを抽出します。
- つまり、教師モデルを使用してカテゴリテキストと提案領域をエンコードします。
- 次に、学生検出器をトレーニングしてテキストと領域の埋め込みを調整します。
1. 背景
図 1 に示すように、ターゲット検出器は基本カテゴリ以外のカテゴリを認識できるのではないかと著者は考えています。
したがって、この記事の著者は、テキストから入力されたあらゆるカテゴリのターゲットを検出するためのオープンボキャブラリーのターゲット検出器を構築しました。
既存のターゲット検出方法は、データセットに出現するカテゴリのみを学習し、検出カテゴリを拡張する方法は、より多くのカテゴリラベリングデータを収集することです。たとえば、LVIS には 1203 のカテゴリが含まれており、比較的豊富な語彙がありますが、そうではありません。十分に強力です。
一方、インターネット上には画像とテキストのペアが豊富に存在するため、CLIP は 4 億個の画像とテキストのペアを使用してモデルを共同トレーニングすることを試み、30 のデータセットで良好な結果を示しました。
ゼロショット マイグレーションの効果は主に、あらゆる種類のテキストをエンコードする事前トレーニング済みテキスト エンコーダーの能力によってもたらされます。画像レベルの特徴表現のエンコード能力は非常に優れていることが証明されていますが、依然としてオブジェクト レベルです。特徴量のエンコードは依然として課題が多い
したがって、この記事の著者は、開集合検出のために開集合分類モデルからいくつかの機能を取得できるかどうかを考えています
著者はまず R-CNN クラスのメソッドから開始し、開集合ターゲット検出を 2 つのサブ問題に構築します。
- オブジェクト提案の生成
- オープンボキャブラリー画像分類
R-CNN クラスのモデルを操作する方法:
- まず、基本カテゴリに基づいて地域提案モデルをトレーニングします。
- 次に、事前トレーニングされた画像分類子を使用して、新しいクラスと基本クラスを含めることができる切り取られたオブジェクトの提案を分類します。
- 著者は LVIS をベンチマークとして使用し、レア カテゴリを新規カテゴリとして使用し、他のカテゴリを基本カテゴリとして使用します。
- 欠点: 各オブジェクトの提案が分類器に 1 つずつ入力されて分類されるため、非常に時間がかかります。
これに基づいて、著者は、オープンセットターゲット分類モデルの出力からテキスト埋め込みと画像埋め込みを学習する 2 段階のオープン語彙ターゲット検出器を訓練するための ViLD を提案します。
- ViLD-text: 基本クラスからのみ抽出されます
- まず、事前トレーニングされたテキスト エンコーダーにカテゴリ名を入力して、テキスト埋め込みを取得します。
- 次に、推定されたテキスト埋め込み結果を使用して、検出された領域を分類します。
- ViLD イメージ: プロポーザル ネットワークが新しいクラスを含む領域を検出する可能性があるため、基本クラスと新しいクラスの両方から抽出されます。
- まず、オブジェクトの提案を事前トレーニングされた画像エンコーダーに入力して、画像の埋め込みを取得します。
- 次に、領域の埋め込みと画像の埋め込みを調整するためにマスク R-CNN をトレーニングします。
2.方法
著者は、データセット内のカテゴリ分類ベースと新規を検出します。
- ベース:CB C_BCB、トレーニングに参加する
- 小説:CN C_NCN
エンコーダ記号:
- T ( . ) T( .)T ( . ):テキストエンコーダ
- V ( . ) V( .)V ( . ):画像エンコーダ
2.1 新しいカテゴリのローカリゼーション
オープンボキャブラリオブジェクト検出の最初の課題は、オブジェクトの新しいカテゴリの位置を特定することです。
著者はマスク RCNN を例として取り上げます. 著者はクラス固有の測位モジュールをクラスに依存しないモジュールに置き換えます. 各 RoI について、モデルはカテゴリごとに 1 つを予測するのではなく、すべてのカテゴリに対して 1 つの bbox と 1 つのマスクのみを予測しますしたがって、クラスに依存しないモジュールを使用して、新しいクラスをターゲットにするように拡張できます。
2.2 トリミング領域を使用したオープンボキャブラリーの検出
ターゲット候補領域が正常に特定されると、事前トレーニングされた分類器を使用して領域を分類できます。
画像埋め込み:
- 著者基本クラスCB C_BCB関心のある領域を抽出するために提案ネットワークをトレーニングしました
- 最初に提案をトリミングしてサイズ変更し、次に画像エンコーダーを入力して画像の埋め込みを計算します。
- 著者はクロップ領域の 2 つのサイズ変更方法 (1x と 1.5x) を使用しています。1.5x はより多くのコンテキスト情報を提供するために使用され、統合された埋め込みが正規化されます。
テキスト埋め込み:
- 作成者は、プロンプト テンプレート (「シーン内の {} の写真」など) を使用してテキスト エンコーダーに送信し、テキストの埋め込みを取得します。
類似性:
- 2 つの埋め込みを計算した後、作成者はコサイン類似度を使用して画像埋め込みとテキスト埋め込みの類似性を計算し、クラス内でソフトマックス アクティベーションと NMS を使用して最終的な検出結果を取得します。
効率:
- 切り取られた各領域は画像エンコーダに送信されて画像の埋め込みが抽出されるため、効率は非常に低くなります。
2.3 ウイルス
著者らは、上記の非効率性を軽減するために ViLD を提案しています。
分類子の代わりにテキスト埋め込みを使用します。
- まず、ViLD-text が導入されます。目標は、テキスト埋め込みを使用して分類できる領域埋め込みをトレーニングすることです。
- 図 3b は、図 3a に示す分類器の代わりにテキスト埋め込みを使用したトレーニング目的関数を示しています。トレーニングにはテキスト埋め込みのみが使用されます。
- どの gt にも一致しないプロポーザルの場合、そのプロポーザルはバックグラウンド カテゴリに割り当てられ、独自のエンコーディングebg e_{bg}を学習できます。eb g、
- すべてのカテゴリ エンコーディングについて、前景と背景のebg e_{bg}を含め、領域の埋め込みとカテゴリの埋め込みのコサイン類似度が計算されます。eb g、
- 次に、温度パラメータを使用してソフトマックス活性化後の分布を計算し、クロスエントロピー損失を計算します
- 最初の段階、つまり領域提案ネットワークをトレーニングするために、著者はオンラインで領域提案 r を抽出し、ViLD-text を使用して最初からトレーニングします。
ViLD テキストの損失は次のとおりです。
抽出された画像の埋め込み:
ViLD-image をトレーニングする場合、主に教師モデルから生徒モデルへの抽出、つまり領域の埋め込みと画像の埋め込みを調整することです。
トレーニング速度を向上させるために、まずトレーニング画像ごとに M 個の提案をオフラインで抽出し、対応する画像の埋め込みを計算します。
これらの提案には基本クラスと新しいクラスが含まれているため、ネットワークは拡張可能です
ただし、ViLD-text は基本クラスからのみ学習できます
ViLD 画像損失は、領域埋め込みと画像埋め込みの L1 損失です。
ViLD のトレーニング損失全体は次のとおりです。 w はハイパーパラメータです。