[論文閲覧] DiffusionDet: 物体検出用の拡散モデル

元のリンク: https://arxiv.org/abs/2211.09788

1 はじめに

  これまでのオブジェクト検出方法は、手動で設計された候補オブジェクト (スライディング ウィンドウ、領域提案、アンカー ボックス、参照ポイントなど)、または学習可能なオブジェクト クエリに依存していました。
  この論文では、より単純な方法を使用し、バウンディング ボックスをランダムに初期化し (学習可能なパラメータやヒューリスティック事前分布を使用せず)、ノイズ ボックスから直接位置とサイズを調整します。ノイズから境界ボックスを生成するこの方法は、ノイズ除去拡散モデルを使用して画像を生成するプロセスに似ています。
  DiffusionDet は、オブジェクト検出タスクを境界ボックスの中心と寸法の生成タスクとして扱います。トレーニング フェーズでは、ガウス ノイズが実際の境界ボックスに追加されて、ノイズの多い境界ボックスが取得されます。その後、ノイズの多い境界ボックスを使用して、RoI 内の画像エンコーダーによって出力された特徴が切り取られ、さらに検出ヘッドに入力されます。バウンディングボックス予測用。推論フェーズでは、DifffusionDet はノイズ事前分布を学習された分布に調整することで境界ボックスを生成します。
  DiffusionDet は一度トレーニングすると、さまざまな推論設定で使用できます。たとえば、推論中に使用されるランダム バウンディング ボックスの数はトレーニング中と同じである必要はなく、ノイズ除去サンプリング ステップの数は、パフォーマンスと推論時間のバランスを取るために推論中に任意に調整できます。

3. 方法

3.1 準備知識

  ターゲット検出のタスクは画像xxから開始することですx推定境界ボックス セットb ∈ RN × 4 b\in\mathbb{R}^{N\times4}bRN × 4とカテゴリラベルcc
  拡散モデルは、サンプル データにノイズを徐々に追加することによって、順拡散プロセスのマルコフ連鎖を定義します。順方向プロセスは次のとおりです。 q ( zt ∣ z 0 ) = N ( zt ∣ α ˉ tz 0 , ( 1 − α ˉ t ) I ) , t ∈ { 1 , 2 , ⋯ , T } q(z_t|z_0 )= \mathcal{N}(z_t|\sqrt{\bar{\alpha}_t}z_0,(1-\bar{\alpha}_t)I),t\in\{1,2,\cdots,T \}q ( z∣z _0)=N ( zあるˉ z0( 1あるˉ)) t{ 1 2 T }其中α ˉ t : = ∏ s = 0 t α s = ∏ s = 0 t ( 1 − β s ) \bar{\alpha}_t:=\prod_{s=0}^t\alpha_s=\prod_ {s=0}^t(1-\beta_s)あるˉ:=s = 0あるs=s = 0( 1bs)β s \beta_sbsはノイズの分散を表します。ニューラル ネットワークf θ ( zt , t ) f_\theta(z_t,t)f( zt ) は、次のトレーニング目標を最小化することでzt z_tzz 0 z_0を予測しますz0L train = 1 2 ∥ f θ ( zt , t ) − z 0 ∥ 2 \mathcal{L}_\text{train}=\frac{1}{2}\|f_\theta(z_t,t)- z_0\|^2L電車=21f( zt z02  推論時、データサンプルx 0 x_0バツ0モデルf θ f_\thetaを使用しますfノイズサンプルからz T z_TzT繰り返し再構築します。
  この記事のデータ サンプルはz 0 = b z_0=bです。z0=b与えられた条件xxx、ニューラル ネットワークf θ (zt, t, x) f_\theta(z_t,t,x)f( zx )はノイズの多い境界ボックスから変化しますzt z_tzz 0 z_0を予測しますz0、それに応じてカテゴリ ラベルccを生成しますc

3.2 構造

ここに画像の説明を挿入します
各反復ステップでf θ f_\theta   を直接変換しますfRAW 画像に適用することは、計算上許容できません。この記事では、モデル全体を画像エンコーダーと検出デコーダーの 2 つの部分に分割します。前者は、入力画像の深度特徴表現を取得するために 1 回だけ実行されますが、後者は、深度特徴を条件として使用して、ノイズの多いバウンディング ボックス zt z_t を徐々に調整しますz
  画像エンコーダは、CNN/Transformer バックボーン + FPN を含む画像の特徴を抽出します。
  検出デコーダは、提案ボックスのコレクションを入力し、画像特徴から RoI 特徴を取得し、それらを検出ヘッドに入力して回帰および分類の結果を取得します。デコーダは Sparse-CNN と同様の構造を持ち、6 つのカスケード ステージを使用します。違いは、この論文では学習された境界ボックスの代わりにランダムな境界ボックスを使用し、提案機能を必要としないことです。さらに、DiffusionDet は反復サンプリング段階で検出ヘッドを再利用し、各段階でステップ エンコーディングを追加します。

3.3 トレーニング

  トレーニングアルゴリズムは次のとおりです。

  1. 画像エンコーダは画像の特徴を抽出します。
  2. 真の境界ボックスをパディングしてスケールして、z 0 z_0を取得します。z0
  3. { 1 , 2 , ⋯ , T } \{1,2,\cdots,T\}{ 1 2 T内の均一なサンプリング時間tt }t 、標準正規分布からのϵ \epsilonϵ。calculatezt= α ˉ tz 0 + 1 − α ˉ t ϵ z_t=\sqrt{\bar{\alpha}_t}z_0+\sqrt{1-\bar{\alpha}_t}\epsilonz=あるˉ z0+1あるˉ ϵ
  4. 画像の特徴を変換します、zt z_tz_t は、予測された境界ボックスを取得するためにデコーダーに入力されます。
  5. 予測された境界ボックスとグラウンド トゥルース境界ボックスの間の損失を計算します。

  グラウンドトゥルース境界ボックスの塗りつぶし: 通常、インスタンスの数は画像ごとに異なります。この論文では、境界ボックスの総数が固定値N train N_\text{train}になるように、実際の境界ボックスのセットに追加の境界ボックスを追加 (充填) します。N電車塗りつぶし方法には、既存の境界ボックスを繰り返す、ランダムな境界ボックスを追加する、または画像サイズの境界ボックスを追加するなどが含まれます。実験によると、ランダムな境界ボックスを追加することが最も効果的であることがわかりました。
  境界ボックスの破壊: 塗りつぶされた境界ボックス セットにノイズを追加します。ノイズ スケールはα t \alpha_tです。あるコントロール。α t \alpha_tある単調減少コサイン スケジューリングに従います。さらに、実際の境界ボックスは、信号対雑音比を確保するためにスケーリングする必要があります。
  トレーニング損失: 検出ヘッド入力N train N_\text{train}N電車破損した境界ボックス、予測N train N_\text{train}N電車カテゴリと候補ボックス。アンサンブルを使用して損失を予測し、最小コストのkkを選択することで最適な送信割り当て方法に従います。k 個の予測では、複数の予測を各グラウンドトゥルース境界ボックスに割り当てます。

3.4 推論

  推論プロセスでは、ガウス ノイズからサンプリングされた境界ボックスのコレクションから予測結果を徐々に絞り込みます。そのアルゴリズムを以下に示します。

  1. 画像エンコーダは画像の特徴を抽出します。
  2. 標準正規分布からのサンプル境界ボックス提案z T z_TzT
  3. t = Tからt=Tt=Tから開始して、 t = 0 t=0になるまで次のプロセスを続行します。t=0 :
      画像の特徴を変更します、zt z_tz_t はデコーダを入力して、zt z_t
      に従ってz、予測された境界ボックス、tttt − Δ t-\DeltatΔ、DDIM を使用して、前のステップの境界ボックス提案 zt を予測します− Δ z_{t-\Delta}zt D; (DDIM はサンプリング中にステップをスキップできる拡散モデルです)
      境界ボックスの提案を更新zt − Δ z_{t-\Delta}zt D

  サンプリングプロセス:各ステップで得られたバウンディングボックス提案をデコーダに入力して予測バウンディングボックスを取得した後、DDIMを使用して前のステップのバウンディングボックス提案を推定します。DDIM を削除すると、パフォーマンスが大幅に低下します。
  境界ボックスの更新: 各サンプリング ステップの後、予測された境界ボックスを、望ましい予測 (対応するターゲットに配置) と望ましくない予測 (ランダムに分散) に分割できます。望ましくない予測の場合、その分布は学習されないため、新しいランダムな境界ボックス (ガウス分布からサンプリングされた) に置き換えられます。実際には、スコアが特定のしきい値を下回る予測は、望ましくない予測とみなされます。
  1 つのトレーニングは複数のテスト設定に適しています。ランダムな境界ボックスの設計により、推論フェーズで使用されるランダムな境界ボックスとサンプリング ステージの数はトレーニング フェーズと一致している必要はありません。

4. 実験

4.1 実装の詳細

  テストの詳細: 各サンプリング ステップの予測結果は NMS を通じて統合され、最終的な予測が得られます。

4.2 主な特徴

  DeffusionDet の主な特徴は、「複数のテスト設定を 1 つのトレーニングで対応できる」ということです。したがって、必要に応じて境界ボックスの数とサンプリング ステップの数を調整して、速度と精度のバランスを取ることができます。
  動的バウンディング ボックス: DiffusionDet を DETR と比較し、トレーニング中にバウンディング ボックスまたはオブジェクト クエリの数を修正しますN train N_\text{train}N電車、テスト中に境界ボックスまたはオブジェクト クエリの数を変更しますN eval N_\text{eval}N評価DETR の場合、テスト中のクエリの数はトレーニング中の数と等しくなければならないため、N eval < N train N_\text{eval}<​​N_\text{train} の場合、N評価<N電車N列車N_\text{train}からの場合N電車クエリからN eval N_\text{eval}を選択しますN評価クエリ、N eval > N train N_\text{eval}>N_\text{train}N評価>N電車N eval − N train N_\text{eval}-N_\text{train}をランダムに追加しますN評価N電車クエリ。パフォーマンスの変化を観察すると、DETR のパフォーマンスは N eval = N train N_\text{eval}=N_\text{train}であることがわかります。N評価=N電車ピーク値に達すると、N eval N_\text{eval} が増加または減少しますN評価すべてはパフォーマンスの低下につながりますが、DifffusionDet のパフォーマンスはN eval N_\text{eval}とともに向上します。N評価増加率は着実に改善しています。
  DETR がN eval > N train N_\text{eval}>N_\text{train}の場合N評価>N電車既存のクエリをコピーする方法を使用すると、パフォーマンスの低下がさらに深刻になります。これは、クエリをランダムに追加するとクエリの多様性が高まる可能性があるためです。
  段階的なリファインメント: ランダムな境界ボックスの数を修正し、リファインメント ステップの数を増やしても、パフォーマンスは着実に向上します。ランダムなバウンディング ボックスの数が少ないほど、リファインメント ステップの数を増やすことによってもたらされる改善は大きくなります。
  残りの方法では、検出ヘッドは 1 回しか使用できず、繰り返し使用すると性能が低下します (付録を参照)。

4.3 検出データセットのパフォーマンス分析

  MS-COCO : 改良を行わなければ、DiffusionDet はすでにいくつかの完璧なメソッドのパフォーマンスを超える可能性があります。精製すると差はさらに広がります。
  DiffusionDet は、大規模なバックボーン ネットワークを使用する場合にも安定したパフォーマンスの向上をもたらします。
  LIVS v1.0 : MS-COCO と比較して、DiffusionDet の改良により、LIVS のパフォーマンスが大幅に向上しました。これは、より困難なベンチマークでは改良戦略がより効果的であることを示しています。

4.4 アブレーション研究

  信号スケーリング: 信号スケーリング係数は、拡散プロセスの信号対ノイズ比を制御します。画像生成やパノラマ セグメンテーションと比較して、この論文で使用されるスケーリング係数は大きくなります。これは、境界ボックスの表現が密な表現よりも「脆弱」であり、信号対雑音比が高いためトレーニングが容易になるためです。
  GT 境界ボックス充填戦略: 実験により、ガウス分布に従ってランダムな境界ボックスを充填する方が、他の充填方法 (既存の境界ボックスをコピーする、画像サイズの境界ボックスを充填する、一様分布に従ってランダムな境界ボックスを充填する) よりも優れたパフォーマンスを示すことが示されています。
  サンプリング戦略: DDIM とバウンディング ボックスの更新を使用しないと、ステップ数が増加するにつれてパフォーマンスが低下します。そのうちの 1 つを使用すると、限られたステップ数内でパフォーマンスがわずかに向上するだけですが、ステップ数を増やしてもパフォーマンスは向上しません。両方を一緒に使用すると、パフォーマンスが最適になります。
  N 列車 N_\text{列車}N電車 N eval N_\text{eval} N評価間の一致: 任意のN train N_\text{train}N電車N eval N_\text{eval}のときの値は何ですかN評価増加させると着実にパフォーマンスが向上します。また、N eval N_\text{eval}は固定されますN評価N列車の場合N_\text{train}N電車 N eval N_\text{eval} N評価マッチング時に最適なパフォーマンスが得られます。
  精度と速度: N train = N eval N_\text{train}=N_\text{eval} と設定します。N電車=N評価テストした結果、N が N_\text{train} を訓練すると、N電車増加すると、速度のわずかな低下が大幅なパフォーマンスの向上と引き換えに得られます。ステップ数を増やすとパフォーマンスはある程度向上しますが、速度は大幅に低下します。同じ数の提案では、DiffusionDet の速度は Sparse-CNN の速度に近くなります。
  ランダム シード: 実験を行うために異なるランダム シードを使用します。DiffusionDet のパフォーマンスは安定しています。

付録

A. 拡散モデルの表現

  関連する紹介については、拡散モデル入門を参照してください(記号がこの記事とは異なることに注意してください)。
  ネットワークf θ ( zt , t ) f_\theta(z_t,t) の使用に加えて、f( zt ) はϵ \epsilonを直接予測しますϵに加えて、 z 0 z_0も予測できますz0この記事では、z 0 z_0を予測することを選択します。z0

B. 動的境界ボックス

  実験により、スパース R-CNN も変形可能 DETR も固定N train N_\text{train}では動作できないことが示されました。N電車N eval N_\text{eval}は自由に変更してくださいN評価これは、DiffusionDet のユニークな動的性質を示しています。

C. 徐々に改良する

  DETR、Sparse R-CNN、および Deformable DETR はすべて、段階的なリファインメントを実行するときにパフォーマンスの低下を引き起こします。各ステップからの予測結果を統合する場合、Sparse R-CNN と Deformable DETR はパフォーマンスの低下を軽減できます。ただし、DiffusionDet の場合、統合を実行しない場合のパフォーマンスの低下は無視できる程度であり、統合によってパフォーマンスが向上します。

E. トレーニングの損失

  アンサンブル予測損失はN train N_\text{train}に使用されますN電車予測上で。アンサンブル予測の損失には、予測とグランド トゥルースの間のペアごとのマッチング コストが必要です (カテゴリと境界ボックスの両方を考慮に入れる): C = λ cls C cls + λ L 1 CL 1 + λ giou C giou \mathcal{C}=\lambda_ { cls}\mathcal{C}_{cls}+\lambda_{L1}\mathcal{C}_{L1}+\lambda_{giou}\mathcal{C}_{giou}C=クラス_ _Cクラス_ _+L1 _CL1 _+・オーユーC・オーユーここでC cls \mathcal{C}_{cls}Cクラス_ _分類のための焦点損失、CL 1 \mathcal{C}_{L1}CL1 _C giou \mathcal{C}_{giou}C・オーユーは、それぞれバウンディング ボックス予測の L1 損失と GioU 損失です。
  この論文では、各真値に対する複数の予測結果を照合するために最適な送信方法を使用します。つまり、コストが最小のkkを選択します。k 個の予測は特定の真の値の正のサンプルとして使用され、残りは負のサンプルとして使用されます。損失関数は前のコスト式と同じですが、一致するペア間でのみ計算されます。

おすすめ

転載: blog.csdn.net/weixin_45657478/article/details/133239711