SparseBEV: 高性能、完全にスパースな純粋ビジョン 3D オブジェクト検出器

著者: 王立民 | 出典: CVHub 

導入

このペーパーでは、3D オブジェクト検出の分野における私たちの新しい取り組みを紹介しますSparseBEV私たちが住んでいる 3D 世界はまばらであるため、まばらな 3D オブジェクトの検出は重要な開発の方向性です。ただし、既存のスパース 3D ターゲット検出モデル (DETR3D[1]、PETR[2] など) と高密度 3D 検出モデル (BEVFormer[3]、BEVDet[8] など) との間には、パフォーマンスにまだ差があります。 。この現象に対応して、BEV 空間および 2D 空間における検出器の適応性を高める必要があると考えられます。これに基づいて、高性能で完全にスパースな SparseBEV モデルを提案します。nuScenes 検証セットでは、SparseBEV は 55.8 の NDS パフォーマンスを達成しながら、23.5 FPS のリアルタイム推論速度を維持できます。nuScenes テスト セットでは、SparseBEV は軽量バックボーン V2-99 のみを使用して 67.5 NDS というスーパー パフォーマンスを達成しました。HoP[5] や StreamPETR-large[6] などのメソッドで ViT-large をバックボーンとして使用すると、70 以上に到達することは容易になります。

私たちの研究は ICCV 2023 に受理され、論文、コード、重量 (リストに 67.5 NDS を含むモデルを含む) が公開されました。

論文: https://arxiv.org/abs/2308.09244
コード: https://github.com/MCG-NJU/SparseBEV

導入

既存の 3D オブジェクト検出方法は、高密度 BEV 特徴に基づく方法とスパース クエリに基づく方法の 2 つのタイプに分類できます。前者は、高密度の BEV 空間特徴の構築を必要とします。パフォーマンスは優れていますが、計算の複雑さは大きくなります。スパース クエリベースの方法は、このプロセスを回避し、より単純な構造を持ち、より高速ですが、パフォーマンスは依然として BEV に劣ります。ベースのメソッド。したがって、当然のことながら、「スパース クエリに基づく方法は、デンス BEV に基づく方法に近い、またはそれよりも優れたパフォーマンスを達成できるでしょうか?」という疑問が生じます。

私たちの実験分析に基づいて、この目標を達成するための鍵は、BEV 空間と 2D 空間における検出器の適応性を向上させることであると考えています。この適応性はクエリ固有です。つまり、さまざまなクエリに対して、検出器はさまざまな方法で特徴をエンコードおよびデコードできなければなりません。この機能は、まさに以前の完全にスパースな 3D 検出器 DETR3D に欠けていたものです。そこで、主に 3 つの改良を加えた SparseBEV を提案しました。まず、スケール適応型セルフアテンション モジュール (スケール適応型セルフアテンション、SASA) は、BEV 空間で適応型受容野を実現するように設計されています。第二に、スパースサンプリングの適応性を実現し、長い時系列の利点を最大限に活用するために、適応時空間サンプリングモジュールを設計しました。最後に、動的ミキシングを使用して、キャプチャされた特徴を適応的にデコードします。

ICCV 提出直前の今年 2 月 9 日には、当社の SparseBEV (V2-99 バックボーン) は nuScenes テスト セットで 65.6 NDS のスコアを達成し、BEVFormerV2 [7] などの方法を上回っていました。以下の図に示すように、ソリューションの名前は SparseBEV-Beta です。詳細については、eval.ai リストを参照してください。

8616432a72cd108a34a2ef71a45cc166.png

最近、bbox 損失の X と Y の重みを 2.0 に調整したり、トレーニングを安定させるためにクエリのノイズ除去を使用したりするなど、StreamPETR の最新の設定をいくつか採用しました。現在、バックボーンとして軽量の V2-99 のみを使用する SparseBEV は、テスト セットで 67.5 NDS というスーパー パフォーマンスを達成し、純粋なビジュアル 3D 検出ランキングで 4 位にランクされています (上位 3 つはすべて、バックボーンとして重量のある ViT-large を使用しています)。

a8a0ac9a4a4428d9c8c54a52fe33341e.png

検証セット (ResNet50、704x256) の小規模設定では、SparseBEV は、Sparse 設計を最大限に活用して、23.5 FPS のリアルタイム推論速度を維持しながら、55.8 NDS のパフォーマンスを達成できます。

b35958eed5a196ca3ed960c302e545ed.png

方法

モデルアーキテクチャ

408a355406c5d79ad60cb47b9fdc848e.png

SparseBEV のモデル アーキテクチャは上図に示されており、そのコア モジュールには、スケール適応型自己注意、適応型時空間サンプリング、および適応型融合が含まれます。

クエリの初期化

既存のクエリベースの方法では、参照点をクエリとして使用します。SparseBEV では、クエリには、3D 座標、サイズ、回転角度、速度、対応する次元特徴など、より豊富な情報が含まれています。各クエリは、柱の形状 (0 および約 4) に初期化されます。これは、自動運転シナリオでは通常、複数のオブジェクトが Z 軸上に表示されないためです。

スケール適応型セルフアテンション

BEV 空間におけるマルチスケールの特徴抽出は重要です。Dense BEV に基づくメソッドは、多くの場合、BEV エンコーダーを通じてマルチスケール特徴を明示的に集約します (たとえば、BEVDet[8] は ResNet+FPN を使用して BEV エンコーダーを形成し、マルチスケール BEV 特徴を抽出し、BEVFormer はマルチスケール Deformable Attender を使用して実装します) BEV スペース、マルチスケール)、スパース クエリに基づくメソッドではこれを実行できません。

スパース クエリ間のセルフ アテンションが BEV エンコーダの役割を果たすことができると考えていますが、DETR3D で使用される標準のマルチヘッド セルフ アテンション (MHSA) にはマルチスケール機能がありません。したがって、モデルが適切な受容野を自ら決定できるようにするスケール適応型セルフアテンション モジュール (スケール適応型セルフアテンション、SASA) を提案しました。

このうち、クエリ中心点2点間のユークリッド距離を表し、受容野の制御係数を表し、これが大きくなるにつれて、離れたクエリの注意重みが減少し、それに応じて受容野が縮小する。その時点で、SASA は全体的な受容野を備えた標準的な自己注意モジュールに退化しました。ここでは、クエリ特徴ごとに線形の層を適応的に使用することによって生成され、各ヘッドは異なる方法で生成されます。

これはクエリ機能の次元を表し、ヘッドの数を表します。

実験では、次の 2 つの興味深い現象を発見しました。

  1. 各ヘッドが生成する値は一定の範囲内で均一に分布しており、この現象は初期化とは関係ありません。この現象は、SASA が FPN の処理方法と同様に、異なるヘッドで異なるスケールでの特徴集約を実行できることを示しており、データ駆動型の観点から BEV 空間におけるマルチスケールの特徴集約の必要性をさらに証明しています。また、SASAの受容野はFPNに比べて柔軟であり、データに基づいて自由に学習することができます。

dc3c2ce907871b4d7fc3df13aa15898a.png
  1. 異なるカテゴリのオブジェクトに対応するクエリによって生成される値には明らかな違いがあります。大きな物体(バスなど)のクエリに対応する受容野は、小さな物体(歩行者など)のクエリに対応する受容野よりも大幅に大きいことがわかりました。(下の図のように。注: 値が大きいほど、受容野は小さくなります)

cbb05dc7aafd84036971ece21022b07f.png

標準の MHSA と比較して、SASA は追加のオーバーヘッドをほとんど発生させず、シンプルかつ効果的です。アブレーション実験では、MHSA の代わりに SASA を使用すると、4.0 mAP と 2.2 NDS を直接増加させることができます。

72cfa8e40db62f334b7588f5f709552c.png

適応型時空間サンプリング

クエリごとに、線形レイヤーを使用して一連の 3D オフセットを生成します。次に、これらのオフセットをクエリピラーに対して座標変換して、3D サンプリング ポイントを取得します。サンプリング ポイントの生成プロセスは次のとおりです。

ac6f07775dce83b4da597aff0872ecf5.png

このようにして、生成したサンプリング ポイントを特定のクエリに適合させることができ、さまざまなサイズや距離のオブジェクトをより適切に処理できるようになります。同時に、これらのサンプリング ポイントは、指定されたクエリ bbox の内側に限定されず、モデル自体によって決定されるボックスの外側に散在することもあります。

次に、長期情報をさらに取得するために、さまざまな時点でサンプリング ポイントを座標系にワープして、フレーム間の位置合わせを実現します。自動運転シナリオでは、2 種類のモーションが存在します。1 つは車自体のモーション (自我モーション)、もう 1 つは他のオブジェクトのモーション (オブジェクト モーション) です。エゴの動きの場合は、データセットによって提供されるエゴのポーズを使用して位置合わせを行います。オブジェクトの動きの場合は、クエリで定義された瞬間速度ベクトルを使用し、単純な等速運動モデルと連携して、移動するオブジェクトを適応的に位置合わせします。どちらの位置合わせ操作でもポイントを追加できます。

58dc7ebe3b63004fe42a938b663ce5cb.png

次に、3D サンプリング ポイントを 2D 画像に投影し、双一次補間を通じて対応する位置の 2D 特徴を取得します。これは 6 つの画像のサラウンド入力であるため、DETR3D は各サンプリング ポイントをそれぞれ 6 つのビューに投影し、正しい投影ポイントから抽出された特徴を平均します。ほとんどの場合、正しい投影点は 1 つだけですが、場合によっては 2 つであることがわかりました (つまり、サンプル ポイントが隣接するビューの重複領域にある)。したがって、投影点の 1 つだけを (場合によっては 2 つある場合でも) 取得し、それに対応するビュー ID を新しい座標軸として使用するだけで、Pytorch の組み込みグリッドの 3D バージョンを使用して 1 ステップで実行できます。サンプルオペレーター。これにより、速度が大幅に向上し、ポイントを落とすことはありません(私の印象では、NDS 0.1 ~ 0.2 を落としただけです)。詳細については、コードを参照してください: https://github.com/MCG-NJU/SparseBEV/blob/main/models/sparsebev_sampling.py

スパース サンプリングについては、後で Deformable DETR に基づいた CUDA 最適化を作成しました。ただし、純粋な PyTorch 実装は実際には非常に高速であり、CUDA の最適化により速度がさらに約 15% 向上します。

また、サンプリング ポイントの視覚化も提供します (最初の行は現在のフレーム、2 行目と 3 行目は履歴における前の 2 つのフレームです)。SparseBEV のサンプリング ポイントは、さまざまなスケールのオブジェクトを正確にキャプチャしていることがわかります。また、異なる速度で移動するオブジェクトに対しても適切に位置合わせすることができます (つまり、時間的に適応できます)。

f36562a24ea76673d76429a8b29e58c5.png

アダプティブミキシング

次に、収集された特徴のチャネルとポイントの次元に対して混合 [9] を実行します。フレームとフレームごとのサンプル ポイントの合計を想定して、まずそれらをサンプル ポイントにスタックします。したがって、SparseBEV は、将来のフレームからの情報を簡単に融合できるスタックされたタイミング スキームです。

次に、これらのサンプリング ポイントから取得した特徴に対してチャネル ミキシングを実行します。ミキシングの重みはクエリ特徴に基づいて動的に生成されます。

次に、点次元に対して同じ混合操作を実行します。

ここで、 と はそれぞれチャネル ミキシングとポイント ミキシングの動的重みを表し、前者はすべてのフレームとサンプリング ポイントで共有され、後者はすべての機能チャネルで共有されます。

デュアルブランチ SparseBEV

実験では、入力マルチフレーム画像を Fast と Slow の 2 つのブランチに分割すると、パフォーマンスがさらに向上することがわかりました [10]。具体的には、入力を高解像度、低フレームレートの Slow ブランチと、低解像度、高フレームレートの Fast ブランチに分割します。したがって、Slow ブランチは高解像度の静的詳細の抽出に重点を置き、Fast ブランチはモーション情報のキャプチャに重点を置きます。Dual-branchに追加されたSparseBEVの構成図は以下のとおりです。

deebda0bb1ad97cc5c545917d6910f0b.png

補足資料で詳しく説明されているように、デュアル ブランチ設計はトレーニング コストを削減するだけでなく、パフォーマンスも大幅に向上します。その上昇点は、自動運転車の長期系列における静的な詳細と動きの情報を分離する必要があることを示しています。ただし、モデル全体が複雑になりすぎるため、デフォルトでは使用しません (この記事では、テスト セット内の NDS=63.6 の結果の行のみがこれを使用します)。

実験結果

b0dde46bcc425da8fd33d8d7356dc4fb.png

上の表は、SparseBEV の結果と、nuScenes の検証セットでの既存の手法の結果を比較しています。表現手法ではパースペクティブの事前トレーニングが使用されています。バックボーンとして ResNet-50 を使用し、900 クエリを使用し、入力画像解像度が 704x256 の場合、SparseBEV は既存の最適な手法 SOLOFusion[4] を 0.5 mAP および 1.1 NDS 上回ります。nuImages を使用して事前トレーニングし、クエリ数を 400 に減らした後でも、SparseBEV は 55.8 の NDS に達しながら、23.5 FPS の推論速度を維持できます。バックボーンを ResNet-101 にアップグレードし、入力画像サイズを 1408x512 に増加した後、SparseBEV は SOLOFusion を 1.8 mAP および 1.0 NDS 上回りました。

nuScenes テスト分割
db4b6739f0f0234300196481f9c2cf2c.png

上の表は、SparseBEV の結果とテスト セットの既存のメソッドを比較しています。これは、このメソッドが将来のフレームを使用していることを示しています。将来のフレームを使用せずに、SparseBEV は 62.7 NDS と 54.3 mAP を達成し、デュアル ブランチ バージョンはさらに 63.6 NDS と 55.6 mAP に向上しました。将来のフレームを追加した後、SparseBEV は BEVFormer V2 を最大 2.8 mAP および 2.2 NDS 上回りましたが、使用している V2-99 のパラメータは約 70M のみで、BEVFormer V2 で使用されている InternImage-XL (300M パラメータ以上) よりもはるかに少ないです。 。

制限

SparseBEV には多くの弱点があります。

  1. SparseBEV は、フレーム間の位置合わせを達成するためにエゴポーズに大きく依存しています。論文の表 5 では、エゴベースのワーピングを使用しない場合、NDS は約 10 ポイント低下する可能性があり、これはタイミングを追加しないのとほぼ同じです。

  2. SparseBEV で使用されるタイミング モデリングはスタック タイミングであり、その時間消費は入力フレームの数に比例します。入力フレーム数が多すぎる場合(16 フレームなど)、推論速度が遅くなります。

  3. 現在、SparseBEV で使用されているトレーニング方法は依然として従来のソリューションです。1 回のトレーニング反復で、DataLoader はすべてのフレームをロードします。これにより、マシンの CPU 能力に対する要求が高くなるため、TurboJPEG や Pillow-SIMD などのライブラリを使用して読み込みプロセスを高速化します。その後、すべてのフレームがバックボーンを通過しますが、バックボーンには GPU メモリに対する特定の要件もあります。ResNet50 および 8 フレーム 704x256 入力の場合、2080Ti-11G はまだ適合しますが、解像度、将来のフレームなどがすべて埋まっている場合は、A100-80G のみが実行できます。オープン ソース コードで使用されているトレーニング構成は、実行可能な最小構成です。現在、次の 2 つの解決策があります。

  • ビデオフレームの一部のグラデーションを切り詰めます。stop_prev_gradオープンソースの config には、モード内のすべての前のフレームを推論しno_grad、現在のフレームのみがグラデーション リターンを持つオプションがあります。

  • もう 1 つの解決策は、SOLOFusion、StreamPETR、およびその他の方法で使用されるシーケンス トレーニング スキームを使用して、ビデオ メモリと時間を節約することです。

結論は

この論文では、完全にスパースの単一ステージ 3D オブジェクト検出器である SparseBEV を提案します。SparseBEV は、スケール適応セルフアテンション、適応時空間サンプリング、適応フュージョンという 3 つのコア モジュールを通じてスパース クエリ モデルの適応性を向上させ、高密度 BEV ベースの手法に近い、またはそれ以上のパフォーマンスを実現します。さらに、長時間処理をより効率的に行うためのデュアルブランチ構造も提案しました。SparseBEVはnuScenesにおける高精度と高速性を両立します。私たちは、この研究がスパース 3D 検出パラダイムに光を当てることができることを願っています。

[1] Wang Y、Guizilini VC、Zhang T、他。Detr3d: 3d-to-2d クエリによるマルチビュー画像からの 3d オブジェクト検出[C]//ロボット学習に関するカンファレンス。PMLR、2022: 180-191。

[2] Liu Y、Wang T、Zhang X、他。Petr: マルチビュー 3D オブジェクト検出のための位置埋め込み変換[C]//コンピューター ビジョンに関する欧州会議。チャム: Springer Nature Switzerland、2022: 531-548。

[3] Li Z、Wang W、Li H 他。Bevformer: 時空間トランスフォーマーを介したマルチカメラ画像からの鳥瞰図表現の学習[C]//コンピューター ビジョンに関する欧州会議。チャム: Springer Nature Switzerland、2022: 1-18。

[4] Park J、Xu C、Yang S、他。時間が経てばわかるでしょう: 新しい見通しと時間的マルチビュー 3D オブジェクト検出のベースライン[J]。arXiv プレプリント arXiv:2210.02443、2022。

[5] Zong Z、Jiang D、Song G、他。歴史的物体予測によるマルチビュー 3D 物体検出器の時間的強化トレーニング [J]。arXiv プレプリント arXiv:2304.00967、2023。

[6] Wang S、Liu Y、Wang T、他。効率的なマルチビュー 3D オブジェクト検出のためのオブジェクト中心の時間モデリングの探求[J]。arXiv プレプリント arXiv:2303.11926、2023。

[7] Yang C、Chen Y、Tian H、他。BEVFormer v2: 遠近法監視による鳥瞰図認識への最新の画像バックボーンの適応[C]//コンピュータ ビジョンとパターン認識に関する IEEE/CVF 会議の議事録。2023: 17830-17839。

[8] Huang J、Huang G、Zhu Z、他。Bevdet: 鳥瞰図での高性能マルチカメラ 3D オブジェクト検出[J]。arXiv プレプリント arXiv:2112.11790、2021。

[9] Gao Z、Wang L、Han B、他。Adamixer: 高速収束クエリベースのオブジェクト検出器[C]//コンピューター ビジョンとパターン認識に関する IEEE/CVF 会議の議事録。2022: 5364-5373。

[10] Feichtenhofer C、Fan H、Malik J、他。ビデオ認識のための低速ネットワーク[C]//コンピュータ ビジョンに関する IEEE/CVF 国際会議の議事録。2019: 6202-6211。

-終わり-

3Dビジョン三部作を効率的に学ぶ

最初のステップは、業界交流グループに参加し、テクノロジーの進歩を維持することです。

現在、ワークショップは、SLAM、産業用 3D ビジョン、自動運転などの 3D ビジョンの方向に複数のコミュニティを確立しています。サブディビジョン グループには、次のものが含まれます: [ 産業方向 ] 3D 点群、構造化光、ロボット アーム、欠陥検出 3D計測、TOF、カメラキャリブレーション、総合グループ [ SLAM 方向] マルチセンサーフュージョン、ORB-SLAM、レーザー SLAM、ロボットナビゲーション、RTK|GPS|UWB およびその他センサー交換グループ、SLAM 総合ディスカッショングループ [自動運転方向]深度推定、トランスフォーマー、ミリ波|ライダー|視覚カメラセンサー座談会、マルチセンサーキャリブレーション、自動運転総合グループなど [ 3D再構築の方向性] NeRF、colmap、OpenMVSなど これらに加えて、就職活動、ハードウェアの選択、ビジュアル製品の実装のためのコミュニケーション グループもあります。WeChat でアシスタントを追加できます: dddvisiona、注: グループ + 方向 + 学校 | 会社を追加すると、アシスタントがあなたをグループに追加します。

1a586ad32c6aa962f43c72f24aa35d30.jpeg
アシスタント WeChat: cv3d007 を追加してグループに参加します
2 番目のステップは、Knowledge Planet に参加して、質問にタイムリーに回答してもらうことです。

3D ビジョン分野のビデオ コース (3D 再構成、3D 点群、構造化光、ハンドアイ キャリブレーション、カメラ キャリブレーション、レーザー/ビジュアル SLAM、自動運転など)、ソース コード共有、ナレッジ ポイントの概要、入門および上級学習ルート、最新論文の共有、質問回答など、大手メーカー各社のアルゴリズムエンジニアが技術指導を行います。同時に、Planet は有名企業と協力して 3D ビジョン関連のアルゴリズム開発ポジションやプロジェクト ドッキング情報を公開し、テクノロジー、雇用、プロジェクト ドッキングを統合した熱心なファンが集まるエリアを作成します。共に働き、より良い AI の世界を創造しましょう。プログレス、ナレッジ プラネット エントランス:「初心者からマスターまでの 3D ビジョン」

3D ビジョンのコア技術を学び、スキャンして表示し、3 日以内に無条件の返金を受けてください 907690a4d046f8eaa1287417a65a9996.jpeg
高品質のチュートリアル資料、質問への回答、問題の効率的な解決に役立ちます
3 番目のステップは、3D ビジョンを体系的に学習し、モジュール知識システムを深く理解して実行することです。

3D ビジョンの特定の分野 [理論、コードから実践まで] を体系的に学習したい場合は、3D ビジョン品質コース学習 Web サイトをお勧めします: www.3dcver.com

科学研究論文の執筆:

[1] 3D ビジョンに関する科学研究方法と学術論文執筆に関する中国初のチュートリアル

基礎課程:

[1]立体視アルゴリズムの重要なC++モジュールを基礎入門から応用まで徹底解説

[2] 3D ビジョンのための Linux 組み込みシステム チュートリアル [理論 + コード + 実践]

[3]カメラのモデルとキャリブレーションを学ぶにはどうすればよいですか? (コード+実戦)

[4] ROS2 の入門から習得まで: 理論と実践

[5] dToFレーダーシステム設計を徹底的に理解する[理論+コード+実践]

インダストリアル3Dビジョンディレクションコース:

[1] (第 2 回) ストラクチャード ライト 3D 再構築システムをゼロから構築する [理論 + ソース コード + 実践]

[2]ナニーレベルの線形構造光(単眼&双眼)3D再構成システムチュートリアル

【3】ロボットアーム掴み入門から実践編(理論+ソースコード)

[4] 3次元点群処理:アルゴリズムと実践概要

【5】Open3Dによる点群処理チュートリアルを徹底理解!

[6] 3D 視覚的欠陥検出チュートリアル: 理論と実践!

SLAMディレクションコース:

[1]ロボット分野における3DレーザーSLAM技術の原理、コード、実戦を徹底分析

[1]レーザー・ビジョン・IMU・GPS融合SLAMアルゴリズムを徹底解析:理論導出、コード解説、実戦

[2] (第2回)LOAMフレームワークによる3DレーザーSLAMを徹底理解:ソースコード解析からアルゴリズムの最適化まで

【3】視覚慣性SLAMを徹底理解:VINS-Fusionの原理とソースコード解析を徹底解説

[4]屋内外レーザーSLAMの主要アルゴリズムと実戦を徹底的に分析(地図製作者+LOAM+LIO-SAM)

[5] (第2回) ORB-SLAM3の理論解説とコード解析

視覚的な 3D 再構成

[1]パースペクティブ3D再構築を徹底:原理解析、コード解説、最適化改善

自動運転コース:

[1] 自動運転分野における車載センサーの空間同期(キャリブレーション)の徹底解析

[2] 中国初の自動運転目標検知分野におけるトランスフォーマーの原理と実践講座

[3]単眼の奥行き推定方法: アルゴリズムのレビューとコードの実装

【4】自動運転分野における3次元点群目標検出のフルスタック学習ルート!(シングルモーダル + マルチモーダル/データ + コード)

[5]ディープラーニングモデルを実際のプロジェクトに導入するにはどうすればよいですか? (分類 + 検出 + セグメンテーション)

やっと

1. 3Dビジュアル記事の執筆者募集

2. 3Dビジョン講座(自動運転、SLAM、産業用3Dビジョン)のメイン講師の募集

3.トップカンファレンスの論文共有と3Dビジョンセンサー業界のライブブロードキャストへの招待

おすすめ

転載: blog.csdn.net/Yong_Qi2015/article/details/132928988