トランスフォーマーによるエンドツーエンドの物体検出 (DETR) の論文を読んで理解する

論文タイトル: Transformers を使用したエンドツーエンドの物体検出 論文
リンク: DETR

まとめ:

  ターゲットの検出をセットの予測問題として直接考慮する新しい方法が提案されます (実際、提案に関係なく、アンカー、ウィンドウ中心法は本質的にセットの予測方法であり、手動で介入するために大量の事前知識を使用します。 NMS)、DETR は純粋なエンドツーエンドであり、トレーニング全体で事前の手動介入は必要ありません。DETR トレーニング ステップには次のものが含まれます: (1) CNN がバックボーンの特徴を抽出する (2) Transformer エンコーダーがグローバル特徴を学習する (3) Transformer デコーダーが予測ボックス (100) を生成する (4) 予測ボックスを GT と照合する(4)は推論時には必要なく、予測フレーム生成後に閾値で判定して出力します。
ここに画像の説明を挿入

序章

  DETR は、トランスフォーマーベースのエンコーダー - デコーダー構造を採用しており、セルフ アテンション メカニズムを使用して、エンコード シーケンス内のすべての要素間の相互作用を表示します。この利点は、ターゲット検出で生成される冗長ボックスを削除できることです。, DETR はすべてのオブジェクトを一度に予測し、予測とグラウンド トゥルースの間で 2 部グラフ マッチングを実行するアンサンブル損失関数を使用してエンドツーエンドでトレーニングされます。(たとえば、100 フレームが生成され、GT が 10 で、予測と GT が最もよく一致する 10 フレームが計算されます。これらをポジティブ サンプルとみなします。残りの 90 はネガティブ サンプルであるため、NMS は必要ありません。 )

関連作業

DETR の作業は、(1) アンサンブル予測のための二部グラフ マッチング損失 (2) トランスフォーマー エンコーダー/デコーダー (3) 並列デコーディングとオブジェクト検出に基づいて構築されています。

(1) アンサンブル予測

現在、ほとんどの検出器は、後処理 NMS を使用して冗長ボックスを削除する必要があります。ただし、直接アンサンブル予測には後処理が必要なく、すべての予測要素間の相互作用をシミュレートするグローバル推論モードにより冗長性を回避できます。定数集合の集合予測については、MLP でも問題ありません (暴力: それぞれが一致度として考慮されます) が、コストが高くなります。通常の解決策は、ハンガリーのアルゴリズムに基づいて損失を考案し、真の値と予測値の間の 2 部一致を見つけることです。

(2) トランスの構造

アテンション メカニズムは、入力シーケンス全体から情報を集約できます。自己注意ベースのモデルの主な利点の 1 つは、グローバルな計算と完全な記憶です。(ワイルドな感じ!)

(3) ターゲットの検出

ほとんどのターゲット検出は主にプロポーザル、アンカー、および予測のウィンドウ中心に基づいていますが、多くの冗長なフレームが生成されるため、ここでは NMS を使用する必要があります。また、DETR は NMS を削除してエンドツーエンドを実現できます。

DETRモデル

物体検出モデルでは、直接アンサンブル予測には 2 つの要素が重要です。
(1) アンサンブル予測の損失。予測と GT 間の保証された一意の一致を強制します。
(2) オブジェクトのセットを一度に予測し、リレーショナル モデリングを実行します。

アンサンブル予測損失

デコーダ プロセスでは、DETR は N 個の結果の予測セットを推奨します。N はピクチャに N フレームを割り当てるのと似ています。トレーニングにおける主な困難の 1 つは、予測されたオブジェクト (カテゴリ、位置、サイズ) をグラウンド トゥルースと照らし合わせてスコアリングすることです。この論文では、予測されたオブジェクトと GT の間の最適な 2 部マッチングを設定し、特定のオブジェクト境界ボックスの損失を最適化します。

  1. 最初のステップは、予測されたフレームと実際のフレームの間の 2 部一致を見つけるために、唯一の 2 部一致コストを取得することです (同様に、3 人のワーカー、A は 1 つのタスクに適しており、B は 2 つのタスクに適しており、C は適切です) 3 つのタスクの場合、最小コストを割り当てる方法)、オーバーヘッドを最小限に抑える N 個の要素の配置を探します。(つまり、最適な割り当て)
    前の研究、ハンガリーのアルゴリズム

    論文: 真理値集合の各要素 i は yi = (ci, bi) とみなすことができ、ci はターゲット クラス ラベル (∅ である可能性があることに注意してください)、bi はベクトルです[0, 1]^4 は、b ボックスの中心座標と、画像のサイズに対する相対的な高さと幅を定義します。
    ここに画像の説明を挿入
  2. 2 番目のステップでは、損失関数を計算します。これは、前のステップで得られたすべての一致するペアのハンガリー損失です。損失の定義は、一般的なオブジェクト検出器の損失、つまり、クラス予測の負の対数尤度および後で定義される検出ボックス損失 Lbox の線形結合に似ています。

ここに画像の説明を挿入
3. 境界ボックスの損失:
境界ボックスのスコアリング。初期推測に基づいてバウンディング ボックス予測を行う多くの検出器とは異なり、当社はバウンディング ボックス予測を直接実行します。このアプローチでは実装が簡素化されますが、相対的なスケーリング損失の問題が生じます。最も一般的に使用される L1 損失は、相対誤差が似ていても、小さな境界ボックスと大きな境界ボックスではスケールが異なります。この問題を軽減するために、L1 損失とスケール不変の一般化 IoU 損失の線形結合を使用します。
ここに画像の説明を挿入

DETR フレームワーク

ここに画像の説明を挿入

背骨:

初期画像: H * W * 3、低解像度の特徴マップは従来の CNN (H/32、W/32、2048) によって生成されます。

トランスエンコーダ:

まず、1*1 conv を使用して次元を (H/32, W/32, 256) に削減し、特徴マップをシーケンスにプルします。これは、トランスフォーマーの入力として便利です。各エンコーダーには標準的な構造があります。これは、マルチヘッド セルフ アテンション モジュールと FFN (MLP) で構成されます。トランスフォーマーのアーキテクチャは順序に依存しないため、各アテンション層の入力に追加される固定位置エンコーディングでそれを補完します。

トランスデコーダ:

デコーダはトランスフォーマーの標準アーキテクチャに従い、サイズ d の N 個の埋め込みに変換します。オリジナルの Transformer とは異なり、各デコーダは N 個のオブジェクトを並行してデコードします。デコーダは不変であるため、異なる結果を生成するには N 個の入力エンベディングが異なっている必要があり、これらの入力エンベディングは学習された位置コードであり、オブジェクト クエリになります。エンコーダーと同様に、デコーダーに追加します。次に、FFN を通じて、ボックス座標とクラス ラベルに独立してデコードされ、最終的に N 個の予測が取得されます。これらの埋め込みにセルフ アテンションとエンコーダ/デコーダを使用することで、モデルは、画像全体をコンテキストとして使用しながら、グローバル推論のためにすべてのオブジェクト間のペアの関係を利用します。

FFN:

最終的な予測は、ReLU、MLP の 3 層、および線形投影層によって計算されます。FFN は入力画像の正規化された中心座標、ボックスの高さと幅を予測し、線形層はソフトマックス関数を使用してクラス ラベルを予測します。固定サイズ N の境界ボックスのセットが予測されるため (通常、N は画像内の GT の数よりはるかに大きい)、追加の特別なクラス ラベルを使用して、この位置でオブジェクトが検出されないことを示します。
補助エンコード損失は、トレーニング中にデコーダで役立ち、特にモデルが各クラスの正しい数のオブジェクトを出力するのに役立ち、各エンコーダ層の後に予測 FFS とハンガリー損失を追加します。すべての予測 FFN はパラメータを共有します。

おすすめ

転載: blog.csdn.net/weixin_45074568/article/details/125542403