DETR、条件付きDETR、変形型DETR

DETR は、トランスフォーマーのメカニズムをターゲット検出の分野に適用するアルゴリズム モデルです。主なアイデアは、トランスフォーマーのエンコーダー/デコーダー アーキテクチャを使用し、アテンション メカニズムを使用してエンドツーエンドのオブジェクト検出結果を達成することです。

DETR

ここに画像の説明を挿入
図に示すように、DETR モデルの構造は主にバックボーン、トランスフォーマー ブロック、予測ヘッドで構成されます。
バックボーン
入力画像の予備的な特徴抽出として、バックボーンは主に (resnet50) などの畳み込みニューラル ネットワークによって完成されます。入力画像 (B×3×H×W) に対して、B はバッチ サイズ、H、W です。画像の幅と高さです。次に、攻撃的な CNN によって抽出された特徴は、全結合層を通過して特徴マップ (B×HW×D、D は隠れ層の次元を示すハイパーパラメータ) を取得します。
トランスフォーマー ブロック
DETR は、トランスフォーマーのエンコーダーとデコーダー、エンコーダー部分、バックボーンによって抽出された特徴とクエリとしての pos_embedding (B×HW×D)、値、エンコーダーのキー、ここではセルフ アテンション メカニズムを使用します。トランス内のエンコーダーも同様です。デコーダ モジュールには、セルフ アテンション メカニズムとクロス アテンション メカニズムの 2 つの部分が含まれます。ここで、DETR はオブジェクト クエリ (N*D、N はハイパーパラメータ、論文では 100 とします) の概念を提案しています。ここでのオブジェクト クエリとは、ある程度の度合いを持つ 検出対象を含む可能性のある N 個のボックスの幾何情報を表すアンカーの役割を果たします。セルフアテンション部分では、オブジェクトクエリがキーと値として同時に使用され、セルフアテンション部分の出力が Cq になります。デコーダのクロスアテンション モジュールは、エンコーダの出力 Ck と pos_embedding をキーと値として使用し、Cq とオブジェクト クエリをクエリとして使用し、クロスアテンション後にサイズ (B×N×D) のベクトルを出力します。
予測ヘッド
変換器の出力を予測ヘッドの入力としてターゲット検出結果を予測する. ここで, N個の予測ボックスとグランドトゥルースの情報を二部グラフの最大一致とみなす. ここで, Nは通常有意な値であるグラウンドトゥルースの数よりも大きい数値であり、一致しない予測フレームも「オブジェクトなし」として表現され、マッチング結果を使用してモデルの損失関数が計算されます。損失関数は主に次のもので構成されます。 2 つの部分: クラス損失とボックス損失 クラス損失はすべての予測フレームに適用されます 主にクロスエントロピー損失を使用してすべて計算する必要があります、ボックス損失は、正常に一致する予測ボックスの計算です。

DETR の実装プロセスは大まかに上記の通りですが、DETR は収束速度が遅く、学習速度も遅いため、この点を最適化するために条件付き DETR と Deformable DETR を導出します。

条件付きDETR

DETR の収束が遅い主な理由の 1 つは、DETR がコンテンツの埋め込みを表すクエリの部分に大きく依存していることです。
条件付き DETR のモデル構造は DETR とほぼ同じで、主な改良点はデコーダ部分にあります。
ここに画像の説明を挿入
条件付き DETR は情報を空間情報と内容情報の 2 つの部分に分離します。セルフ アテンション メカニズム モジュールでは、図に埋め込まれたデコーダは前の層のデコーダの出力として表され、それとオブジェクト クエリの合計は次のようになります。自己注意の鍵として使用されます。モデルの主な変更点はクロスアテンション部分で、まずセルフアテンション デコーダの出力がコンテキスト クエリ部分として使用されます。空間部分を取得するには、最初に参照が導入されます。つまり、図の s は予測フレームの中心座標情報を表し、s は学習可能なパラメータとして使用するか、オブジェクト クエリ マッピングを通じて取得できます。 。同時に、デコーダの前層の出力には、予測フレームの一部の位置情報が含まれます(この論文では主に、基準に対する幅と高さ、および位置座標のオフセット情報が取得できると考えています) ) なので、FFN 層 FFN(liner+relu+liner) を介して特徴情報を取得し、それに ps を乗算して最終的な空間クエリを取得します。コンテキスト クエリと空間クエリをクロスアテンション モジュールの最終クエリとして連結します。エンコーダーの出力 Ck はコンテキスト キーとして使用され、pos エンベディングは空間キーとして使用され、この 2 つは concat を通じてクロスアテンション メカニズムのキーと値として使用されます。残りの構造は DETR から変更されていません。

全体として、条件付き DETR の中心的なメカニズムは、デコーダーの埋め込みとオブジェクト クエリから空間クエリを学習することです。このクエリは、モデルが検出対象のターゲットの位置をより適切に特定するのに役立ち、それによって収束とトレーニング速度が大幅に向上します。

変形可能なDETR *

DETR トレーニングの収束が遅いもう 1 つの考えられる理由は、デコーダが検出フレームのクロスアテンション部分を予測するときに、特徴マップ全体のすべての要素を使用してアテンション係数を計算する必要があり、その結果、アテンション係数の量が増加することです。同時に、複雑な計算と低解像度の特徴マップを伴うため、多くの画像情報が失われ、小型ターゲット検出における DETR の性能が不十分になります。このことを考慮すると、Deformable DETR の提案は、上記 2 つの問題を大きく解決できるのではないかという疑問です。
ここに画像の説明を挿入
注意係数を計算する際の計算量を削減するために、モデルでは現在位置と K 位置の情報の注意係数のみを計算する K を導入しています (上図では K は 3)。1つ目は従来の多頭注意機構の計算式です。
ここに画像の説明を挿入

この式では、Wm' は特徴を値に変換するマッピング行列、Amqk はアテンション係数行列で、通常はクエリ行列とキー行列のドット積によって取得されます。このモデルの変形多頭注意機構の計算式は以下の通りです:
ここに画像の説明を挿入
通常の多頭注意計算式と比較して、変形可能 detr の主な変更点は 2 つあります。位置ですが、基準点、つまり k オフセット位置のピクセル特徴にのみ関係します (オフセット位置ベクトルはクエリ特徴をマッピングすることによって取得されます)。第 2 に、このモデルの Amqk はクエリとキーによって計算されず、クエリ機能によって直接マッピングされます。
実際の操作手順は、出力チャネルが 3MK、M が heads_numbers、最初の 2 つのチャネル 2MK がオフセット ベクトル offset の座標情報、残りの MK チャネルが Amqk である線形層にクエリ特徴を送信することです。

さらに、Deformable DETR ではマルチスケール フィーチャの操作も追加されており、l はフィーチャ マップのスケール レベルを表します。

ここに画像の説明を挿入
Deformable DETR の完全なプロセス図を以下に示します。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_45836365/article/details/127982053