FlowNet3D

Liu 2019 · 論文

一行要約 — 点群に対する3Dシーンフローを扱う初のエンドツーエンド深層ネットワーク。PointNet++バックボーンに、新規のフロー埋め込み層とset upconv層を組み合わせ、各点の3Dモーションベクトルを予測する。

問題

ロボティクスやヒューマン・コンピュータ・インタラクションでは、動的環境中の点の3Dモーション — シーンフロー — を理解する必要があるが、従来手法の多くはステレオやRGB-D画像からこれを推定しており、点群上で直接行う試みはほとんどなかった。LiDAR点群はスパースで順序を持たず、格子構造を持たないため、標準的なCNN(および画像空間の光学フローアーキテクチャ)は適用できない。従来の点群パイプラインは、剛体性や対応関係の仮定を伴う手作りの特徴量を用いていた。FlowNet3Dは、生の点群ペアから点ごとの3Dモーションをエンドツーエンドで学習する方法を問う。

手法とアーキテクチャ

クラウド P={xi}i=1n1\mathcal{P} = \{x_i\}_{i=1}^{n_1}Q={yj}j=1n2\mathcal{Q} = \{y_j\}_{j=1}^{n_2}(xi,yjR3x_i, y_j \in \mathbb{R}^3、対応関係なし、サイズが異なる場合もある)が与えられたとき、フレーム1の各点についてフロー di=xixid_i = x_i' - x_i を予測する。ネットワークは3つのモジュール — 点特徴学習、点混合、フロー精緻化 — から構成され、これらは3種類の層から構築される。

fj=MAX{i:xixjr}{h(fi, xixj)}f_j' = \underset{\{i \,:\, \lVert x_i - x_j' \rVert \le r\}}{\mathrm{MAX}} \big\{ h(f_i,\ x_i - x_j') \big\}

ここでhhはMLP、MAXは要素ごとの最大値プーリングであり、不規則データ上で階層的かつ並進不変な幾何特徴を与える。

ei=MAX{j:yjxir}{h(fi, gj, yjxi)}e_i = \underset{\{j \,:\, \lVert y_j - x_i \rVert \le r\}}{\mathrm{MAX}} \big\{ h(f_i,\ g_j,\ y_j - x_i) \big\}

両点の特徴量をhhに入力すること(固定の特徴距離ではなく)により、ネットワークが変位候補 yjxiy_j - x_i の重み付け方法を学習できるようになる。埋め込みはその後、さらにset convレイヤーで混合され、空間的滑らかさが得られる(大きな受容野は、並進しているテーブル上の点のような曖昧なケースを解決する)。

最終的なアーキテクチャは、4つのset convレイヤー、1つのフロー埋め込みレイヤー、4つのset upconvレイヤー(スキップ接続付き)、そしてR3\mathbb{R}^3のフローを回帰する線形層から構成される。学習にはスムーズL1L_1フロー教師信号に加え、ワープされたクラウドから予測される後方フローdid_i'に対するサイクル一貫性項を用いる。

L=1n1i=1n1(didi+λdi+di)L = \frac{1}{n_1} \sum_{i=1}^{n_1} \Big( \lVert d_i - d_i^* \rVert + \lambda \lVert d_i' + d_i \rVert \Big)

λ=0.3\lambda = 0.3とする。推論時には、サンプリングノイズを減らすため、クラウドをランダムに再サンプリングして複数回(10回)実行し、予測フローを平均化する。

実験結果

SLAMにおける意義

FlowNet3Dは点群上の深層シーンフロー推定の基礎を築いた。これはLiDAR SLAMシステムが動的物体を検出・処理する方法であり、マッピングが依拠すべき静的構造から移動する車両や歩行者を分離する。その順序のない点集合に対するソフト対応関係レイヤーは、後続の一群の手法(PointPWC-Net、FLOT、FastFlow3D)に影響を与え、RGB-D側の画像ベースシーンフロー(RAFT-3Dなど)を補完するものである。その位置合わせとモーションセグメンテーションのデモは、SLAMシステムがシーンフローをどう使うかをまさに先取りしている。

関連ノート