Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング Ma...

abemii_
November 15, 2024

[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)

2024/11/16 に開催された CV勉強会@関東 ECCV2024 読み会の資料です。

紹介する論文:

Jiacheng Chen, Yuefan Wu, Jiaqi Tan, Hang Ma, Yasutaka Furukawa. MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping. In ECCV, 2024.

arXiv:
https://arxiv.org/abs/2403.15951

project page:
https://map-tracker.github.io/

abemii_

November 15, 2024
Tweet

More Decks by abemii_

Other Decks in Technology

Transcript

  1. オンラインマッピング x トラッキング 紹介する論⽂: MapTracker: Tracking with Strided Memory Fusion

    for Consistent Vector HD Mapping (Chen+, ECCV24) Michiya Abe @abemii_ Nov. 16, 2024. コンピュータビジョン勉強会@関東 ECCV2024 読み会 ※資料中の図表等は特に記載 のない限り上記論⽂から引⽤
  2. 2 • 経歴 • 2019 :修⼠(情報理⼯学) • 2019 ~ :⾃動運転向け画像認識の研究開発

    @ SenseTime • 興味 • 物体検出‧⾛路認識の DNN モデルの開発 • モデルの量⼦化,エッジでの⾼速化 ⾃⼰紹介 Michiya Abe Twitter: @abemii_ Blog: https://abemii.hatenablog.com/ ※ 発表内容は所属機関と一切関係しません
  3. 3 ⾞載センサの⼊⼒を(いい感じに)処理して,⾃⾞の経路計画‧制御を⾏う 背景 | ⾃律⾛⾏システム いろいろな処理 車に取り付けた色々なセンサからの入力 t=1 t=2 t=3

    経路計画 将来の自車両の経路を決める https://www.nuscenes.org/nuscenes 入力 出力 t=1 アクセル・ブレーキ ステアリング 制御 アクセル・ブレーキ・ ステアリングの制御を行う • 知覚 ◦ 物体検出/トラッキング ◦ オンラインマッピング • モーション予測 • 経路計画 • 制御 今日はこれの話
  4. 5 背景 | 典型的なオンラインマッピングのモデル(セグメンテーションベース) X Y https://www.nuscenes.org/nuscenes マルチビューカメラ (6 ~

    7 個くらい) の画像から それぞれ画像特徴を抽出 鳥瞰図 (BEV) グリッド上の 密な特徴マップをエンコード (代表的手法: BEVFormer, Lift-Splat) Segment ation Head BEV 特徴上で Segmentation Post- Process NMS, インスタンス分割, ベクトル化などのポスト 処理 各地図要素の 位置・形状(点列) クラス を出力 クラス: 道路境界 点列: [(x1, y1), …, (xN, yN)] (ポリライン) クラス: 横断歩道 点列: [(x1, y1), …, (xN, yN)] (ポリゴン) HDMapNet (Li +, ICRA2022) など • ⼿作りのポスト処理が必要(時間がかかる) • Segmentation マスクのピクセル間の関係性がモデル化できない → ベクトル化された地図を直接予測! 課題 ※ BEV 特徴マップの可視化画像は,UniAD の bev embedding (256 dim) のうち,最初の 3 channels をRGB で可視化したもの
  5. 6 背景 | 典型的なオンラインマッピングのモデル(セグメンテーションベース) X Y https://www.nuscenes.org/nuscenes マルチビューカメラ (6 ~

    7 個くらい) の画像から それぞれ画像特徴を抽出 鳥瞰図 (BEV) グリッド上の 密な特徴マップをエンコード (代表的手法: BEVFormer, Lift-Splat) Segment ation Head BEV 特徴上で Segmentation Post- Process NMS, インスタンス分割, ベクトル化などのポスト 処理 各地図要素の 位置・形状(点列) クラス を出力 クラス: 道路境界 点列: [(x1, y1), …, (xN, yN)] (ポリライン) クラス: 横断歩道 点列: [(x1, y1), …, (xN, yN)] (ポリゴン) HDMapNet (Li +, ICRA2022) など • ⼿作りのポスト処理が必要(時間がかかる) • Segmentation マスクのピクセル間の関係性がモデル化できない → ベクトル化された地図を直接予測! 課題 ※ BEV 特徴マップの可視化画像は,UniAD の bev embedding (256 dim) のうち,最初の 3 channels をRGB で可視化したもの 自動運転のためのビジョン技術 (p.29) 佐藤育郎先生 (MIRU2024, チュートリアル ) BEV 特徴 = ⾃⾞を中⼼とするグリッド上の特徴マップ 代表的⼿法 Lift-Splat (Philion+, ECCV20) 各カメラのピクセルの奥⾏き ⽅向の深度分布にしたがって ,特徴をBEVに落とす BEVFormer (Li+, ECCV22) Transformer ベース BEV グリッド上のクエリから 各カメラの情報を取り寄せる ※このチュートリアルが とてもわかりやすいので おすすめです
  6. 7 背景 | 典型的なオンラインマッピングのモデル(セグメンテーションベース) X Y https://www.nuscenes.org/nuscenes マルチビューカメラ (6 ~

    7 個くらい) の画像から それぞれ画像特徴を抽出 鳥瞰図 (BEV) グリッド上の 密な特徴マップをエンコード (代表的手法: BEVFormer, Lift-Splat) Segment ation Head BEV 特徴上で Segmentation Post- Process NMS, インスタンス分割, ベクトル化などのポスト 処理 各地図要素の 位置・形状(点列) クラス を出力 クラス: 道路境界 点列: [(x1, y1), …, (xN, yN)] (ポリライン) クラス: 横断歩道 点列: [(x1, y1), …, (xN, yN)] (ポリゴン) HDMapNet (Li +, ICRA2022) など • ⼿作りのポスト処理が必要(時間がかかる) • Segmentation マスクのピクセル間の関係性がモデル化できない → ベクトル化された地図を直接予測! 課題 ※ BEV 特徴マップの可視化画像は,UniAD の bev embedding (256 dim) のうち,最初の 3 channels をRGB で可視化したもの
  7. 8 背景 | 典型的なオンラインマッピングのモデル(ベクトルベース) https://www.nuscenes.org/nuscenes BEV 特徴をデコードし, ベクトル化された 地図要素を直接推定 MapTR

    (Liao +, ICLR2023) など X Y マルチビューカメラ (6 ~ 7 個くらい) の画像から それぞれ画像特徴を抽出 鳥瞰図 (BEV) グリッド上の 密な特徴マップをエンコード (代表的手法: BEVFormer, Lift-Splat) ※ BEV 特徴マップの可視化画像は,UniAD の bev embedding (256 dim) のうち,最初の 3 channels をRGB で可視化したもの Decoder (Deformable DETR ベース) 各地図要素の 位置・形状(点列) クラス を出力 クラス: 道路境界 点列: [(x1, y1), …, (xN, yN)] (ポリライン) クラス: 横断歩道 点列: [(x1, y1), …, (xN, yN)] (ポリゴン) • 単フレームモデルの場合,現時刻でカメラから⾒えない部分の推定が難しい → マルチフレームモデルで過去の情報も利⽤する! 課題
  8. 9 背景 | 典型的なオンラインマッピングのモデル(ベクトルベース) BEVFormer で エンコード 画像上の特徴を トークン化 BEV

    特徴との Cross-Attn は Deformable Attn. を採⽤ (Deformable DETR と同じ) DETR の構造 (Carion +, ECCV 2020) 典型的なオンラインマッピングモデルの構造 MapTR (Liao +, ICLR2023) など 点列の座標を逐次的に洗練 させていく (Deformable DETR と同じ) 各物体のインスタンスを表す ⾼次元ベクトルの集合 各地図要素の1点1点を表す ⾼次元ベクトルの集合
  9. 10 背景 | 典型的なオンラインマッピングのモデル(ベクトルベース) https://www.nuscenes.org/nuscenes BEV 特徴をデコードし, ベクトル化された 地図要素を直接推定 MapTR

    (Liao +, ICLR2023) など X Y マルチビューカメラ (6 ~ 7 個くらい) の画像から それぞれ画像特徴を抽出 鳥瞰図 (BEV) グリッド上の 密な特徴マップをエンコード (代表的手法: BEVFormer, Lift-Splat) ※ BEV 特徴マップの可視化画像は,UniAD の bev embedding (256 dim) のうち,最初の 3 channels をRGB で可視化したもの Decoder (Deformable DETR ベース) 各地図要素の 位置・形状(点列) クラス を出力 クラス: 道路境界 点列: [(x1, y1), …, (xN, yN)] (ポリライン) クラス: 横断歩道 点列: [(x1, y1), …, (xN, yN)] (ポリゴン) • 単フレームモデルの場合,現時刻でカメラから⾒えない部分の推定が難しい → マルチフレームモデルで過去の情報も利⽤する! 課題
  10. 11 地図要素のトラッキング 航空写真: https://www.openstreetmap.org/edit#map=19/40.445290/-79.976280 ⾃⾞ □ 横断歩道 (ped. crossing) —

    道路境界 (road boundary) — ⾞線分割線 (lane divider) X Y O ⾃⾞の 移動 (R, t) X Y O 過去の検出と 今の検出を統合 • 地図要素は⾃⾞や他⾞の動きに依らず,同位置‧ 同形状であり続ける • 遮蔽などで現時刻で検出できなかった地図要素を, 過去の情報から推定できる X Y O ⾃⾞の移動分 (R, t) をキャンセル = 今の座標系 に変換
  11. 12 MapTracker: Tracking with Strided Memory Fusion for Consistent Vector

    HD Mapping Jiacheng Chen 1*, Yuefan Wu 1*, Jiaqi Tan 1*, Hang Ma 1, and Yasutaka Furukawa 1,2 1 Simon Fraser University 2 Wayve (* equal contribution) ECCV 2024 (Oral) 今回紹介する論⽂ • 地図要素のトラッキング ◦ 時系列で⼀貫した形状‧IDが付与された地図要素を予測 • メモリバッファを⽤いた過去の情報の保持‧抽出 ◦ 過去のフレームのBEV 特徴と Vector 特徴をそれぞれメモリに保持して貯めておく. ◦ ⾃⾞の動きに応じて必要なフレームの情報をサンプルして統合 • ベンチマークに関する改善 ◦ 既存データセットの処理⽅法の改善し,時系列的に⼀貫性のある GT を⽣成 ◦ 時系列的⼀貫性を考慮した評価指標である C-mAP を提案 Paper: https://arxiv.org/pdf/2403.15951 / Project page: https://map-tracker.github.io/ / Code: https://github.com/woodfrog/maptracker
  12. 13 モデルの構造の話 • 典型的なマッピングモデルの BEV エンコーダと Vector デコーダに, メモリバッファへの保存と抽出して統合する機構を導⼊ 学習の話

    • トラッキングの学習 • フレーム間の⾃⾞姿勢の変化に応じてクエリを変換するモジュールの学習 ⼿法
  13. 14 モデルの構造の話 • 典型的なマッピングモデルの BEV エンコーダと Vector デコーダに, メモリバッファへの保存と抽出して統合する機構を導⼊ 学習の話

    • トラッキングの学習 • フレーム間の⾃⾞姿勢の変化に応じてクエリを変換するモジュールの学習 ⼿法
  14. 16 ⼿法 | 全体構造 単フレームのマッピングモデルと同じ BEV と Vector のメモリ バッファの仕組み

    BEV/Vector メモリを 時間伝播し,現時刻の BEV/Vector 初期クエリ と統合 サンプルしたフレームの メモリと統合する仕組 み BEV 特徴をつくる BEV Encoder パート 地図要素を検出する Vector Decoder パート
  15. 17 ⼿法 | (1) メモリバッファ BEV と Vector のメモリ バッファの仕組み

    BEV 特徴をつくる BEV Encoder パート 地図要素を検出する Vector Decoder パート
  16. 18 過去の情報を保持する⽅法 ⼿法 | (1) メモリバッファ t - 3 t

    - 2 t - 1 メモリ 現在の 結果 t - 2 t - 1 t t - 3 t - 2 メモリ バッファ 現在の 結果 t t - 1 抽出 更新 単⼀のメモリを使⽤ メモリバッファを使⽤ • 逐次的にメモリを更新していく • 複雑な道路状況により,メモリがロスする 可能性がある (StreamMapNet はこちらの⽅法) • 過去の数フレーム分のメモリを溜め込む ◦ 現時刻で更新された BEV 特徴と Vector 特徴をメモリバッファに追加していく → MapTracker はこの⽅法を採⽤
  17. 19 ⼿法 | (2) BEV / Vector 特徴の時間伝播 BEV/Vector メモリを

    時間伝播し,現時刻の BEV/Vector 初期クエリ と統合 BEV 特徴をつくる BEV Encoder パート 地図要素を検出する Vector Decoder パート
  18. 20 前の時刻で更新された BEV / Vector 特徴を,⾃⾞の動きに応じて変換し, BEV / Vector 特徴の初期クエリと統合

    ⼿法 | (2) BEV / Vector 特徴の時間伝播 BEV 特徴をつくる BEV Encoder パート 地図要素を検出する Vector Decoder パート Affine 変換で ⾃⾞の動きの分を キャンセル ⾃⾞の動き情報を⼊⼒した MLP でクエリを暗黙的に変換し, ⾃⾞の動きの分をキャンセル
  19. 21 ⼿法 | (3) Self-Attention, Cross-Attention (Deformable Attention) BEV 特徴をつくる

    BEV Encoder パート 地図要素を検出する Vector Decoder パート
  20. 22 ⼿法 | (4) メモリ情報と更新した BEV / Vector クエリの統合 BEV

    特徴をつくる BEV Encoder パート 地図要素を検出する Vector Decoder パート サンプルしたフレームの メモリと統合する仕組 み
  21. 23 メモリバッファから数フレーム分の BEV/Vector メモリをサンプルして ⾃⾞姿勢に応じて変換し,現時刻の BEV/Vector クエリと相互作⽤ ⼿法 | (4)

    メモリ情報と更新した BEV / Vector クエリの統合 (1/3) BEV 特徴をつくる BEV Encoder パート 地図要素を検出する Vector Decoder パート ⾃⾞の移動量に基づいて サンプルするフレームを決定 メモリ バッファ サンプルした メモリ 時刻 - 1 - T … 移動量 1 m 15 m 10 m 5 m - 2
  22. 24 メモリバッファから数フレーム分の BEV/Vector メモリをサンプルして ⾃⾞姿勢に応じて変換し,現時刻の BEV/Vector クエリと相互作⽤ ⼿法 | (4)

    メモリ情報と更新した BEV / Vector クエリの統合 (2/3) BEV 特徴をつくる BEV Encoder パート 地図要素を検出する Vector Decoder パート BEV メモリ: アフィン変換, Vector メモリ:MLP で現時刻の⾃⾞姿勢に合わせて変換 ( (2) とおなじ)
  23. 25 メモリバッファから数フレーム分の BEV/Vector メモリをサンプルして ⾃⾞姿勢に応じて変換し,現時刻の BEV/Vector クエリと相互作⽤ ⼿法 | (4)

    メモリ情報と更新した BEV / Vector クエリの統合 (3/3) BEV 特徴をつくる BEV Encoder パート 地図要素を検出する Vector Decoder パート 変換された BEV メモリのセットと 現時刻の BEV クエリを結合し, CNN で処理 現時刻の Vector クエリを query, 変換された Vector メモリのセットを key, value として Cross-Attn. で相互作⽤
  24. 27 モデルの構造の話 • 典型的なマッピングモデルの BEV エンコーダと Vector デコーダに, メモリバッファへの保存と抽出して統合する機構を導⼊ 学習の話

    • トラッキングの学習 • フレーム間の⾃⾞姿勢の変化に応じてクエリを変換するモジュールの学習 ⼿法
  25. 28 3 種類の損失関数の合計 • BEV セグメンテーションの損失 ◦ 各クラスについて,前景か背景かの⼆値分類を⾏う ⼿法 |

    学習時の損失関数 (1/3) BEV 特徴 予測マスク 予測マスク GTマスク GTマスク lane divider ped. crossing mask head …
  26. 29 3 種類の損失関数の合計 • トラッキングの損失 ◦ デコーダから出⼒された各地図要素のクラス‧点列について, GTとのマッチング結果に基づき,分類‧回帰の損失を計算(DETR と同じ) ◦

    MOTR (Zeng+, ECCV22) と同様,トラッキングを考慮した割り当てが⾏われる ⼿法 | 学習時の損失関数 (2/3) 時刻 0 時刻 1 トラックされている予測と GTの割り当ては,前の時刻 のものを利⽤
  27. 30 3 種類の損失関数の合計 • 時間伝播に関する損失 ◦ Vector メモリの変換のために使わる MLP モジュール

    (PropMLP) の学習のため ◦ 現在のクエリを前の時刻に変換したクエリに対する検出と, それをさらに現在のフレームに逆変換したクエリに対する検出の損失を計算 ⼿法 | 学習時の損失関数 (3/3) クエリを前の時刻 に変換して検出 逆に今の時刻に変 換して検出 現在時刻 現在時刻
  28. 31 実験 | nuScenes, Argoverse2 で実験 → SOTA(⼤幅に良い) nuScenes Argoverse2

    ※ GT の作り⽅が論⽂によって微妙に異なる 形状‧ID が⼀貫するように改めて作成した GT データ Train/Val/Test をリークがないように分割しなおした場合でも, ベースラインの StreamMapNet を⼤きく上回った 時系列での⼀貫性を評価できるように提案された指標
  29. 33 • ⾃動運転におけるオンラインマッピングのタスクと典型的な⼿法 について紹介 ◦ MapTR (Liao+, ICRA23) など •

    オンラインマッピングにトラッキングの機構をつけた MapTracker ◦ 時系列で⼀貫した形状‧IDが付与された地図要素を予測 ◦ メモリバッファを⽤いた過去の情報の保持‧抽出 まとめ
  30. 34 • Papers • Jiacheng Chen, Yuefan Wu, Jiaqi Tan,

    Hang Ma, Yasutaka Furukawa. MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping. In ECCV, 2024. • Jonah Philion, Sanja Fidler. Lift, Splat, Shoot: Encoding Images From Arbitrary Camera Rigs by Implicitly Unprojecting to 3D. In ECCV, 2020. • Zhiqi Li, Wenhai Wang, Hongyang Li, Enze Xie, Chonghao Sima, Tong Lu, Qiao Yu, Jifeng Dai. BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers. In ECCV, 2022. • Qi Li, Yue Wang, Yilun Wang, Hang Zhao. HDMapNet: An Online HD Map Construction and Evaluation Framework. In ICRA, 2022 • Bencheng Liao, Shaoyu Chen, Xinggang Wang, Tianheng Cheng, Qian Zhang, Wenyu Liu, Chang Huang. MapTR: Structured Modeling and Learning for Online Vectorized HD Map Construction. In ICRA, 2023. • Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, Sergey Zagoruyko. End-to-End Object Detection with Transformers. In ECCV, 2020. • Xizhou Zhu, Weijie Su, Lewei Lu, Bin Li, Xiaogang Wang, Jifeng Dai. Deformable DETR: Deformable Transformers for End-to-End Object Detection. In ICLR, 2021. • Tianyuan Yuan, Yicheng Liu, Yue Wang, Yilun Wang, Hang Zhao. StreamMapNet: Streaming Mapping Network for Vectorized Online HD Map Construction. In WACV, 2023. • Fangao Zeng, Bin Dong, Yuang Zhang, Tiancai Wang, Xiangyu Zhang, Yichen Wei. MOTR: End-to-End Multiple-Object Tracking with Transformer. In ECCV, 2022. • 講演資料 • 佐藤. ⾃動運転のためのビジョン技術 (MIRU2024, チュートリアル) References
  31. 35 • Query の粒度は? • インスタンス単位 (VectorMapNet, TopoNet, LaneSegNet) •

    点単位 (StreamMapNet, MapTracker) • ハイブリッド (MapTR, MapTRv2 など) • Self-Attention 部分の⼯夫はある? • Decoupled SA (インスタンス間,インスタンス内) (MapTRv2) など • BEV 特徴との Cross-Attention 部分の⼯夫はある? • Multi-Point Attention (StreamMapNet) • Lane Attention (LaneSegNet) など • 点列の回帰⽅法は? • relative, absolute おまけ | Online Mapping モデルの鑑賞ポイント
  32. 36 おまけ | Deform. Attn. とその発展形 MapTR など StreamMapNet, MapTracker

    クエリの作り⽅ インスタンスクエリと点クエリ のハイブリッド(加算) (回帰時は点クエリとみなせる) 点クエリ 参照点の更新 前の層の予測結果 前の層の予測結果 点の回帰の⽅法 参照点からのオフセットを出⼒ (relative) 原点からの絶対的位置を出⼒ (absolute) これの紹介は省いたが, MapTracker の Cross-Attention モ ジュールは StreamMapNet で提案された Multi-Point Attention を採⽤している. Vanilla な Deform. Attn. (VectorMapNet, TopoNet) インスタンスクエリ (物体検出と同じ) 初期化したもの(更新しない) 参照点からのオフセットを 出⼒ (relative)