DN-DETR(CVPR 2022)
クエリノイズ除去の導入により DETR トレーニングを加速する
ハンガリー語マッチングの不安定性により、トレーニングの初期段階で一貫性のない最適化目標が発生する
同じ画像に対して、クエリは異なる時点で異なるオブジェクトに一致します。
DN-DETR は実際の GT にノイズを追加します: xywh、label
ノイズ除去テクノロジーはネットワーク トレーニングを高速化するために使用され、detr トレーニングは 2 つのプロセスとして見なされます。
- 良いアンカーを学ぶ
- 相対オフセットの学習
モデル
DN:ノイズ除去
ノイズ除去は単なるトレーニング方法であり、モデルの構造を変更することはなく、入力中にいくつかの変更を加えるだけです。
デコーダの埋め込みはノイズが追加されたラベルとして表され、アンカーはノイズが追加された bbox として表されます。
DETR の元の一致部分については、[Unknown] ラベルを追加して区別できますが、アンカー部分は DETR と同じままです。
このインジケーターは、埋め込みが元の 300quey 内にあるのか、追加されたノイズの多い GT であるのかを識別します。
学習可能なアンカー: 通常の 300query の場合、埋め込みパラメーターがここに渡されます。GT のノイズを除去している場合は、ノイズのある GT の値です。
o = ( D ) ( q , F ∣ A ) ( クロス − アテンション − DAB − DETR ) o=(\mathbf{D})(\mathbf{q}, F \mid A)(クロスアテンション-DAB-DETR )ああ=( D ) ( q 、F∣A ) (クロス−注意_ _ _ _ _ _ _−D A B−D ETR )
o:デコーダ出力,D:デコーダ,q:クエリ,F:エンコーダ出力,A:アテンションマスク
デコーダ クエリには 2 つの部分があります。一つはマッチング部分です。この部分への入力は学習可能なアンカーであり、DETR と同じ方法で処理されます。つまり、マッチング部分は 2 部グラフ マッチングを採用し、マッチング デコーダー出力を使用して GT ボックスとラベルのペアを近似することを学習します。もう 1 つの部分はノイズ除去部分です。この部分への入力は、ノイズのある GT ボックスとラベルのペアであり、この文書の残りの部分では GT オブジェクトと呼ばれます。ノイズ除去部分の出力は、GT オブジェクト
o = D ( q , Q , F ∣ A ) \mathbf{o}=D(\mathbf{q}, \mathbf{Q}, F \mid A) を再構築することを目的としています。ああ=D ( q ,質問、F∣A )
o: デコーダ出力、D: デコーダ、q: ノイズ付き GT、Q: 300query、F: エンコーダ出力、A: アテンション マスク
ノイズ除去
ノイズ除去はトレーニング時にのみ考慮され、推論中にノイズ除去部分が削除され、一致する部分のみが残ることに注意してください。
ノイズの種類:
-
参加方法は?
-
いつカウントされますか?
-
画像ごとに、すべての GT オブジェクトを収集し、その境界ボックスとクラス ラベルの両方にランダム ノイズを追加します。
-
**ボックス ノイズ:** 中心座標オフセット (元の GT の範囲を超えない)、高さと幅の座標スケーリング (同期してスケーリングできない場合があります)
損失: L1 損失、GIOU 損失 (追加されたノイズ除去フレームと 300 個のクエリは、損失を計算するためにハンガリアン マッチングを必要としません。ノイズ除去鉱体に対応する GT は既知 (?))
-
**ラベル ノイズ:** ラベルのランダムな変化、
損失:焦点損失
アテンションマスク
Denoisingを追加すると、モデルの入力は以下のようになります。元の DETR のマッチング部分を「マッチング部分」、新しく追加したノイズ除去部分を「ノイズ除去部分」と名付けます。なお、ノイズ除去部分はトレーニング時に追加するだけでよく、元のモデルと同様に推論時に直接削除されるため、推論時の計算量は増加せず、わずかな量で済みます。トレーニング中に追加する必要があるデータの量
したがって、ノイズ除去部分の各クエリは、 qk = δ ( tm ) qk = δ(t_m)として表すことができます。q k=d ( tメートル)ここで、tm はm − m 番目メートル−th GT オブジェクトq = { g 0 , g 1 , . . . , g P − 1 } ここで、gp は p 番目のグループ denoisinggroupgp = { q 0 p , q 1 p , . . . , q M −
1 p } M = bs\begin{aligned}\mathbf{q}&=\{\mathbf{g_0},\mathbf{g_1},....,\mathbf{g_{P-1} の GT の合計}\ } ここで、g_p は p 番目のノイズ除去グループ \\\mathbf{g_p}&=\begin{Bmatrix}q_0^p,q_1^p,....,q_{M-1}^p\end{ Bmatrix}M =bs\end{aligned} の GT の合計qgp={
g0、g1、.... 、gP − 1ここでg _ _pggグループ内に存在するpグループは何ですか_ _ _={
q0p、q1p、.... 、qM − 1p}M=GTの合計( b s)
aij = { 1、j < P × M および ⌊ i M ⌋ ≠ ⌊ j M ⌋ の場合。1、 j < P × M および i ≥ P × M の場合。それ以外の場合は 0 。\left.a_{ij}=\left\{\begin{array}{ll}1,&\text{if }j<P\times M\text{ and }\lfloor\frac{i}{M}\ rfloor\neq\lfloor\frac{j}{M}\rfloor;\\1,&\text{if }j<P\times M\text{ and }i\ge P\times M;\\0,& \text{そうでない場合。}\end{配列}\right.\right.あるイジ=⎩ ⎨ ⎧1 、1 、0、もし jなら<P×M と ⌊M私は⌋=⌊Mj⌋ ;もし jなら<P×M と 私≥P×M ;それ以外の場合。
情報漏洩を防ぐために、ノイズを追加することに加えて、デコーダのセルフ アテンションに追加のアテンション マスクを追加する必要があります。デノイズ部には実箱や実ラベルの情報が含まれているため、デノイズ部を直接照合部に見せると情報漏洩につながります。したがって、マッチング部分はトレーニング中にノイズ除去部分を見ることができず、元のモデルと同様にトレーニングされます。追加のノイズ除去部分が表示されるか、一致する部分が表示されないかは、結果にはほとんど影響しません。これは、ノイズ除去部分には最も実際のボックスとラベルが含まれるためです。
左側は再構築に使用され、右側の 300 クエリはハンガリー語のマッチングに使用されます。
情報漏洩:
1.グループを参照する部分を一致させます
2.グループ間
アテンションマスクがグループとマッチングを妨げないのはなぜですか?
ラベル埋め込み(デコーダ埋め込み)
レーベルとは関係ありません、名前の違いです
デコーダーの埋め込みは、ボックスのノイズ除去とラベルのノイズ除去をサポートするために、モデル内のラベルの埋め込みとして指定され、
インジケーターもラベルの埋め込み (テンソルの最後の次元と単位) に追加されます。このインジケーターは、クエリがノイズ除去部分に属している場合は 1、それ以外の場合は 0 です。
アブレーション実験
アテンションマスクがないと、結果は非常に低くなります。