FlowNet3D

Liu 2019 · Paper

One-line summary — First end-to-end deep network for 3D scene flow on point clouds, using a PointNet++ backbone with novel flow embedding and set upconv layers to predict a 3D motion vector for every point.

Problem

Robotics and human-computer interaction need to understand the 3D motion of points in a dynamic environment — scene flow — but most prior methods estimated it from stereo or RGB-D images, with few attempts to work directly on point clouds. LiDAR point clouds are sparse, unordered, and grid-free, so standard CNNs (and image-space optical flow architectures) do not apply; prior point-cloud pipelines used hand-crafted features with rigidity or correspondence assumptions. FlowNet3D asks how to learn per-point 3D motion end-to-end from raw pairs of point clouds.

Method & architecture

Given clouds P={xi}i=1n1\mathcal{P} = \{x_i\}_{i=1}^{n_1} and Q={yj}j=1n2\mathcal{Q} = \{y_j\}_{j=1}^{n_2} with xi,yjR3x_i, y_j \in \mathbb{R}^3 (no correspondences, possibly different sizes), predict the flow di=xixid_i = x_i' - x_i for every point of frame 1. The network has three modules — point feature learning, point mixture, flow refinement — built from three layers:

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\}

where hh is an MLP and MAX is element-wise max pooling — giving hierarchical, translation-invariant geometry features on irregular data.

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\}

Feeding both point features to hh (rather than a fixed feature-distance) lets the network learn how to weight the candidate displacements yjxiy_j - x_i. The embeddings are then mixed by further set conv layers for spatial smoothness (large receptive fields resolve ambiguous cases like points on a translating table).

The final architecture is 4 set conv layers, 1 flow embedding layer, 4 set upconv layers (with skip connections), and a linear layer regressing the R3\mathbb{R}^3 flow. Training uses smooth-L1L_1 flow supervision plus a cycle-consistency term on the backward flow did_i' predicted from the warped cloud:

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)

with λ=0.3\lambda = 0.3. At inference, the clouds are randomly re-sampled for multiple runs (10) and the predicted flows averaged to reduce sampling noise.

Results

Why it matters for SLAM

FlowNet3D founded deep scene-flow estimation on point clouds, which is how LiDAR SLAM systems can detect and handle dynamic objects — separating moving vehicles and pedestrians from the static structure that mapping should rely on. Its soft-correspondence layer for unordered point sets influenced a wave of successors (PointPWC-Net, FLOT, FastFlow3D) and complements image-based scene flow like RAFT-3D on the RGB-D side; its registration and motion-segmentation demos preview exactly how SLAM systems use scene flow.