MLエンジニアへの道 #52 - DETR 続

Last Edited: 4/11/2025

このブログ記事では、コンピュータビジョンにおけるDETRの改良点について紹介します。

ML

前回の記事では、NMSを二部マッチングで置き換えたDETRと、Deformable DETRやDAB DETRによるトランスフォーマーエンコーダーとデコーダーの改良について説明しました。 これらの改良にもかかわらず、DETRは最近の追加改良がなされるまで、性能とスピードの両面でYOLOモデルと競争できるものではありませんでした。 この記事では、DETRが競争力のある性能を達成するに至った改良点について説明します。

DN DETR

二部マッチングはNMSを排除しますが、同じ予測が同じ正解ボックスにマッチングされる保証がないという本質的な難しさがあります。 特に、予測が重複を避けるために予期せず遠くのボックスにマッチングされると、トランスフォーマーに混乱を招きかねない信号を与え、収束を遅らせます。 Li, F.ら(2022)は論文中でこれを視覚化して強調しています(記事の最後に引用)。

二部マッチングを単純に取り除くことはできませんが、学習を助けるためにより安定した信号を生成することは可能です。 DN DETRはこれに対処するために、追加のノイズ除去タスクを導入しています。ノイズが追加された正解ボックスの小さなセットと、 それに対応するクラス埋め込み(その20%はランダムに選択される)がデコーダーに渡され、デコーダーはそれらを単純にノイズ除去するよう促されます。 ノイズのある正解ボックスの順序は同じままであり、これによりデコーダーがアンカーを反復的に改善するための安定した信号が提供されます。 ノイズ除去損失は、前回の記事で説明したバウンディングボックス損失を使用して計算できます。

補助的なノイズ除去タスクを導入する際、デコーダーがノイズのある正解ボックスを元のオブジェクト検出タスクに使用することを防ぐためにアテンションマスクを適用する必要があります。 DN DETRはこのアテンションマスクを自己アテンションに適用し、通常のクエリを分離しながら、ノイズのあるクエリが自分自身と通常のクエリにアテンドできるようにします。 ノイズ除去タスクの導入は推論コストを増加させず、より良い信号を持つトレーニングサンプルの数を増やし、収束と性能をある程度向上させることができます。

DINO

ノイズ除去タスクはデコーダー埋め込みとアンカーボックスを洗練するというデコーダーの元のタスクに似ていますが、 近くのアンカーを背景として拒否することを含まないという点で異なります。これをより類似させ、信号を改善するために、 DINO(DETR with improved denoising anchor boxes)は対照的なノイズ除去アプローチを使用します。 このアプローチでは、損失を計算する際に元のオブジェクトクラスではなく「オブジェクトなし」クラスにマッチングされる、 強いノイズが加えられた正解ボックスを、元のノイズ除去サンプルに加え追加します。

DINO

DINOはDAB Deformable DETRに対して、混合クエリ選択(Mixed query selection)と「二度先を見る」(look forward twice)アプローチという2つの追加のアーキテクチャ修正を実装しています。 混合クエリ選択では、モデルがエンコーダーとそれに接続されたヘッドによって生成された最も高いクラススコアを持つK個のアンカーを選択します。 クエリ選択のアイデアはDeformable DETR論文で登場し、エンコーダーの予測をデコーダー埋め込みとオブジェクトクエリの両方に使用する二段階アプローチについて議論されていました。 DETRのエンコーダー自己アテンションの視覚化により、個々のオブジェクトにアテンドする能力がすでに示されていたため、これは理にかなっています。 しかし、DINOはエンコーダーからのクラス埋め込みが曖昧で十分に洗練されていない可能性があると考えました。 そのため、DINOはクラス埋め込みを破棄し、Faster R-CNNに似た様に、エンコーダーからのアンカーを使用しながら静的なデコーダー埋め込みを使用することを選択しました。

Deformable DETRは「一度先を見る」(Look forward once)アプローチを使用しており、各デコーダー層で前の層から予測されたオブジェクトクエリが切り離されます。 これにより、バウンディングボックス予測の勾配が各層で直接バックプロパゲートするだけに制限され、勾配を安定させ、 各デコーダー層での調整の質の向上に焦点を当てることで学習を安定させることを目指しています。 しかし、DINOはアンカーボックス予測の質が「二度先を見る」アプローチによって改善できると考えました。 これは混合クエリ選択とともに上の図に示されているように、前のアンカーボックスへの勾配フローを追加します。

これらの小さな修正を組み合わせ、COCOよりも多くの画像、より多くのボックス、より多くのクラスを含むObject365データセットでモデルをトレーニングすることで、 DINOは当時で最先端のオブジェクト検出性能を達成した最初のDETRとなり、比較的少ないパラメータで実現しました。 最近の最先端モデルのほとんどはDINO Deformable DETRを基盤として使用しています。 例えば、Zong, Z.ら(2023)による現在の最先端モデルCoDETRは、対照的なノイズ除去を、 エンコーダーからの特徴に基づく学習可能な補助ヘッド(R-CNNヘッドおよび他の変種)からのアンカーボックス予測の洗練に置き換え、 デコーダーにより現実的な信号を提供し、エンコーダーにより良い勾配フローを提供しています。

RT-DETR

これまでに導入されたさまざまな技術によってDETRモデルのパフォーマンスは十分に向上しましたが、 それらは主にリアルタイムオブジェクト検出(実際によく行われる防犯監視、自動運転車、自動製造など)に必要なスピードを考慮して設計されておらず、その点で不足していました。 つまり、DETRはより高速な推論のためにNMSの必要性を排除する二部マッチングの利点を十分に活用していませんでした。 リアルタイム運用に適したスピードを向上させながら精度を維持するために、RT-DETRはDINO Deformable DETRを修正し、 最も低い解像度の特徴マップにのみ注意を適用するスケール内特徴相互作用(AIFI)と、それを他の特徴マップと組み合わせるクロススケール特徴融合(CCFF)を用いたハイブリットエンコーダーを導入しました。

RT DETR

またRT-DETRは、従来のクエリ選択が分類における高い信頼度のみを反映し、必ずしも位置特定の品質を反映していない最適とは言えないオブジェクトクエリを生成する可能性があることを特定しました。 エンコーダーは選択されたオブジェクトを位置特定するように訓練されていますが、推論時に位置特定のみが上手くいかない可能性があり、位置特定の品質に関する不確実性が残ります。 そこでスコアに不確実性を反映させるために、RT-DETRは最小不確実性クエリ選択を使用しています。 ここでは、エンコーダーが分類損失に不確実性(U(X)=P(X)C(X)U(X) = ||P(X) - C(X)||)を追加することによって、位置特定の品質も反映させたより良い信頼度スコアを生成するように訓練されます。

ここで、XXはエンコードされた特徴を表し、P(X)P(X)XXの位置特定分布(IoUスコアの分布)、C(X)C(X)XXの分類分布です。 不確実性の導入により、高いIoUスコアを持つオブジェクトクエリの数が増加し、スピードを妨げることなくより高いパフォーマンスにつながりました。 DETRのほぼすべての側面(エンコーダーブロック、デコーダーブロック、損失)を改善するためのすべての技術を組み合わせることで、 RT-DETRはDETR系モデルとして初めて、一般的にYOLOv8よりも高速かつ高性能であることを実証しました。

しかし、RT-DETRは元のDETRと同様に小さなオブジェクトに苦戦しています。これは元のDETRと同様に、最も小さい解像度の特徴マップにのみアテンションを適用していることが原因かもしれません。 また、パフォーマンスは最新のYOLOv11モデル(以前に議論したもの)に追い越されつつあります。 YOLOv11も最も小さい解像度の特徴マップに注意を適用する類似の構造を使用していますが、CCFFの代わりにネックを利用し、 デコーダーとの二部マッチングの代わりに複数の検出ヘッドとNMSを使用しています。YOLOv11はGFLOPsにおいてもRT-DETRを上回っていますが、 NMSの有無や測定の欠如により、それらのFPSとレイテンシについては定かではありません。

したがって、YOLOがもはやオブジェクト検出においてSOTAではないという私の以前の主張は少し誤解を招くものでした。 なぜなら、リアルタイム オブジェクト検出においては依然としてベストなモデルかもしれないからです。 しかしYOLOとRT-DETRのどちらが最良かに関わらず、少なくとも私の意見では、2つの異なるアプローチがかなり類似した全体構造に落ち着いたことは非常に興味深い事象です。 (これらのアプローチの違いは依然として無視できませんが)。

結論

この記事では、ノイズ除去を導入したDN DETR、対照的なノイズ除去、混合クエリ選択、先読み二回(+Object365)で当時のSOTAを達成したDINO(CoDETR)、 そしてリアルタイム検出のためのスピードを向上させ(AIFIとCCFF)、精度を維持した(不確実性最小クエリ選択)RT-DETRについて取り上げました。 それらの実装の詳細については、以下に引用されている原論文をチェックすることをお勧めします。

リソース