summary

Background

Method

1. Sensor Fusion

  • input
    • $ ^{2d} D _ t $: 2d detection
    • Option: $ ^{2d} D ^ i _ t $ : 2d Instance segmentation
    • $ ^{3d} D _ t $: 3d detection
  • output
    • $ ^{2d} I _ t $: 2d Instance
    • $ ^{3d} I _ t $: 3d Instance
  • 3d detector -> 2d化
    • 2d空間内でハンガリアンの計算して Instance $ I _ t = \lbrace I ^ 0 _ t, .., I ^ i _ t \ \rbrace $
      • cost matrixはIoU in 2dのIoU
        • comment: ここは2d使っている場合は2d内のIoU、3dのみの場合は3dにおける重心の距離とかで良い気がする
    • その後 3D 2Dに復元する = Instance
    • ハンガリアンを使って2Dと3Dをmatchingする
  • Option:MOTS
    • Instance Segmentaionを使ってのIoU計算も可能

2. Joint Instance/Track

  • Trackingしていた $T _ {t - 1} $てものとdetectionで取れたInstanceを結合するレイヤ
    • 3dのみ $ ^{3d} T _ {t - 1} \subseteq T _ {t - 1} $
    • 2dのみ $ ^{2d} T _ {t - 1} \subseteq T _ {t - 1} $
    • both $ ^{both} T _ {t - 1} \subseteq T _ {t - 1} $
    • それぞれありうる

1st data association

  • AB3DMOTと同様

  • input

    • $ ^{3d} I _ t $: 3d instance
    • $ ^{3d} T _ {t - 1} $: 3d tracked object
  • output

    • updateに突っ込む
      • $ ^{1m} IT _ {t} $: t-1 frameまでtrackedしており、t frameでも検知できたinstance
      • $ ^{1u} I _ t $: t-1 frameまでtrackしていない新しいinstance
    • $ ^{1u} T _ t $: t-1 frameまでTrackingできていたが、t frameで検知できなかったinstance
  • Hungarianを用いて $ ^{3d} I _ t $ + $ ^{3d} T _ t $

    • 正確には$ \hat{ ^{3d} T _ t} $という表記が良い気がする
    • KF baseで $ ^{3d} T _ {t - 1} $から$ \hat{ ^{3d} T _ t} $を推定する
  • matchしたペア $^{1m} IT _ {t} = \lbrace (I ^ i _ t, T ^ j _ t), .. \rbrace $

  • distanceの定義
    • $ B ^ i _ ρ = (x, y, z, h, w, l) $

2nd data association

  • 2 stage目は3dから落ちるようなobject、画像だけでtrackingできているものを拾うためのmodule
  • input
    • $ ^{1u} T _ t $: t-1 frameまでTrackingできていたが、t frameで検知できなかったinstance
  • t-1 frameまでTrackingできていた3d objectを2dへ投影、2dの中でIoU取って

  • 特徴としては
    • Occulusionがあって点群では見えにくいものが拾える
    • lidarの死角もtrackingに追加できる
    • 画像だけで捉えられている遠距離もtrackingできる

3. tracking update

  • Track lifecycle

  • (i) All tracks erase their 2D information;
  • (ii) Matched instances update their states: new measurements for 3D Kalman filters and new 2D states;
  • (iii) Unmatched instances start new tracks.

Experiment

  • nuscenes, kittiで評価
    • CVPRWorkshopの時はkittiのみ
    • この2つで評価されているそこそこきれいなコードがある
  • 使ったモデル
    • 3D detection
      • CenterPoint for nuscenes
      • PointGNN for kitti
    • 2D detection
      • Cascade RCNN for nuscenes
      • RRC for kitti kitti car
      • Track R-CNN for kitti pedestraion
    • datasetによってモデルが違うのは少し気になるな・・・
  • 90 FPS on a commodity CPU
  • 2d / 3d MOTでSOTA
  • 様々な比較
    • 2dobject detectionの情報を入れているのが大きい
    • 2D distanceはdetectionの情報をいれずに画像空間内のdistanceを用いるということ
    • 3d detectionや 2d detectionは大体一緒

Discussion

  • simple, multi-modalをsimpleに扱えている
    • Lidarのみ/Cameraのみ/Fusionそれぞれで動きそうなFramework
    • 拡張性高いフレームワーク + OSS化されている
  • 評価のところは参考にできそう
    • 読めるコードでnuscenesで評価されているので非常に参考になるはず