{'fraction_non_alphanumeric': 0.03760119940029985, 'fraction_numerical': 0.016791604197901048, 'mean_word_length': 4.484459792797237, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 3, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 12, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
What Matters for 3D Scene Flow Network

3D scene flow estimation from point clouds is a low-level 3D motion perception task in computer vision. Flow embedding is a commonly used technique in scene flow estimation, and it encodes the point motion between two consecutive frames. Thus, it is critical for the flow embeddings to capture the correct overall direction of the motion. However, previous works only search locally to determine a soft correspondence, ignoring the distant points that turn out to be the actual matching ones. In addition, the estimated correspondence is usually from the forward direction of the adjacent point clouds, and may not be consistent with the estimated correspondence acquired from the backward direction. To tackle these problems, we propose a novel all-to-all flow embedding layer with backward reliability validation during the initial scene flow estimation. Besides, we investigate and compare several design choices in key components of the 3D scene flow network, including the point similarity calculation, input elements of predictor, and predictor&refinement level design. After carefully choosing the most effective designs, we are able to present a model that achieves the state-of-the-art performance on FlyingThings3D and KITTI Scene Flow datasets. Our proposed model surpasses all existing methods by at least 38.2% on FlyingThings3D dataset and 24.7% on KITTI Scene Flow dataset for EPE3D metric. We release our codes at https://github.com/IRMVLab/3DFlow.


Introduction
As a fundamental task in computer vision, scene flow estimation aims to estimate a 3D motion field consisting of point-wise or pixel-wise 3D displacement vectors between two consecutive frames of point clouds or images. It provides a low-level representation and understanding of the motion of dynamic objects in the scene. Many applications directly benefit from the techniques used in scene flow estimation, such as semantic segmentation [20], multi-object tracking [48,41], point cloud registration [19,45,43], etc. The performance of scene flow estimation algorithms on point clouds has been greatly improved since deep learning was first applied in [19]. Recent studies [19,4,50,28,16,17,44,39] focus more on estimating scene flow in an end-to-end fashion from two consecutive frames of raw 3D point clouds. These approaches predict scene flow with only 3D coordinates of point clouds as inputs with no need for any prior knowledge of the scene structure. This paper also focuses on such a research topic.
Previous learning-based methods [19,50,44] adopt flow embedding to correlate adjacent frames of point clouds and to encode point motion. Their models then propagate the flow embedding through set upconv layers [19] or coarse-to-fine warping [50,44] to regress the scene flow. FlowNet3D [19], for example, introduces the flow embedding in a point-to-patch manner, which means that a specific point in the first point cloud P C 1 merely uses several neighbouring points in the second point cloud P C 2 to learn the correlation. PointPWC-Net [50] further improves it and proposes to learn a patch-topatch flow embedding, which adds a second point-to-patch embedding process in P C 1 itself after the first point-to-patch embedding between two point clouds. In addition, Pyramid, Warping, and Cost volume (PWC) structure [32] is introduced to refine the scene flow for several times. HALFlow [44] also follows this PWC structure [32] but improves by introducing the attention mechanism in both embedding processes. However, during the first embedding process between two point clouds, these methods only search for K Nearest Neighbours (KNN) in P C 2 to aggregate correspondence information. Practically, K is substantially smaller than the total number of points in the second frame, making it possible for a point in P C 1 to miss the correct yet distant matching point in P C 2 . Moreover, it is extremely important to obtain a reliable correlation when calculating it for the first time because it encodes the overall direction of the flow. The scene flow will be eventually misguided if this issue is ignored. To tackle this problem, we introduce a novel all-to-all flow embedding layer based on the double attentive flow embedding layer in HALFlow [44]. With all-to-all embedding, each point in P C 1 will use all points in P C 2 for correlation during the first embedding process, and each point in P C 2 can therefore obtain the correlation with all points in P C 1 too. This mechanism allows that the feature correlation of all points can be exhaustively utilized from both sides and reliable correspondence estimation can be further achieved.
This all-to-all mechanism, however, cannot guarantee that the reliable correlation is bi-directional. That is, the estimated match pair for a specific point in P C 1 in the forward direction may not be consistent with the match for the corresponding matched point in P C 2 in the backward direction. Therefore, we need another constraint on the backward match to validate its consistency with the forward pass. Mittal et al. [26] utilize a similar mechanism by designing a cycle-consistency loss to achieve selfsupervising the scene flow estimation. However, we expect to directly incorporate this constraint of backward validation into our network to allow the network to learn this ability in forward reasoning. To this end, we propose backward reliability validation, a joint learning method of backward constraint in the all-to-all flow embedding layer.
Furthermore, there are several components of our network with alternative designs either from themselves or from other works that could affect the performance. Therefore, we conduct a series of ablation studies to compare different designs and to explore which elements are important and which designs are suitable for 3D scene flow network, including the point similarity calculation, predictor elements choice, and predictor & refinement level design. Our key contributions are as follows: 1. A novel all-to-all point mixture module with backward reliability validation is proposed for reliable correlation between point clouds. The all-to-all mechanism is adopted to capture reliable match candidates from the distance, and backward information is integrated in the inference process to validate the matching consistency.

Related Work
The concept of scene flow is first introduced by Vedula et al. [36] as the 3D motion field in real-world scenarios. Many previous works estimate scene flow by recovering the 3D motion from optical flow and depth information on 2D image pairs, either using RGBstereo [7,27,35,24,37,38,23,22] or RGB-D [5,6,11] data. There has also been some recent works focusing on recovering scene flow from monocular camera [52,8,53,9,42]. However, since scene flow indicates the 3D motion, directly estimating scene flow from 3D data input can enable direct optimization and higher accuracy. The applications of LiDARs in recent years have created more available raw data of point cloud, and pointcloud-based scene flow estimation approaches [2,34] are rapidly emerging.
Since deep learning has shown excellent performance for raw point-cloud-based tasks [40,46,21,51] with the proposal of PointNet [29] and PointNet++ [30], many works estimate scene flow directly from raw point clouds in an end-to-end fashion. FlowNet3D [19] presents the first end-to-end scene flow estimation framework on point clouds. It uses PointNet++ [30] to extract local point features and introduces a flow embedding layer to encode the point motions. HPLFlow-Net [4] leverages the idea from Bilateral Convolutional Layers (BCL) [14,12] and proposes DownBCL, UpBCL, and CorrBCL designs to restore structural information of large-scale point clouds.
More recent works focus on improving the network performance through introducing new techniques or incorporating new components. FLOT [28] proposes to find the correspondences from an optimal transport module by graph matching. PointPWC-Net [50] follows a coarse-to-fine fashion for scene flow estimation on point clouds. It extends the important component of cost volume in optical flow network [32] and proposes a novel point-based patch-to-patch cost volume. HALFlow [44] improves the aforementioned cost volume by a novel double attentive flow embedding method that distributes more weights on task-related regions. HCRF-Flow [17] focuses on maintaining the local geometric smoothness with the help of Conditional Random Fields (CRFs) in deep neural networks and proposes a high-order CRFs module as the formulations of spatial smoothness and rigid motion constraints. FESTA [47]   Point Sampling (FPS) by proposing a trainable Aggregate Pooling (AP) to adaptively shift points to invariant positions. Inspired by [28], FlowStep3D [16] designs a Global Correlation Unit that computes a soft correlation matrix to guide the initially estimated scene flow and adopts Gated Recurrent Unit (GRU) for local flow update. PV-RAFT [49] leverages point-based and voxel-based features and presents point-voxel correlation fields to capture both local and long-range dependencies for point pairs.
In [50,16], different information is utilized for updating local scene flow but they do not show which information is more important for the input of the updating unit. In [16,49], GRU is used for iterative flow update inspired by RAFT [33] and claimed to be more effective than a fully-connected layer. Since RAFT [33] has shown a promising performance on optical flow, we also want to know whether the use of GRU will improve the performance in other scene flow network structures. In [28,16], element-wise product and cosine similarity are used to represent correlation between points while concatenation of point feature is implemented for learning correlation in [44], but none of them gives evaluation about which one is better. This paper will discuss the above issues and compare what matters for 3D scene flow network based on PWC structure.

Network Architecture
Our proposed network, illustrated in Fig. 1, takes in two frames of point clouds with 4N points in each, which are P C 1 and P C 2 , and estimates N points' scene flow from coarse to fine. Our network is comprised of three modules: 1) Hierarchical Point Feature Abstraction, 2) All-to-All Point Mixture, and 3) Hierarchical Flow Refinement.
The hierarchical point feature abstraction module has three set conv layers from [19] for P C 1 and four set conv layers for P C 2 . Each set conv layer performs down-sampling operation on the input points and extracts local features of the down-sampled points. The same level of the set conv layers shares the same weights. Then, the proposed all-toall flow embedding layer correlates two point clouds and learns the flow embedding. We then use two set conv layers after the flow embedding layer for smoothness. Next, the output of the all-to-all point mixture module is up-sampled by the set upconv layer from [19] to generate the initial flow embedding. A Fully-Connected (FC) layer is thereafter applied on the initial flow embedding to produce the initial scene flow. Finally, the initial scene flow and flow embedding are both fed into the hierarchical flow refinement module and refined iteratively to derive the final scene flow using the information from specific level. The skip connections indicate which level of information is utilized.

Hierarchical Point Feature Abstraction
In the hierarchical point feature abstraction module, two consecutive point clouds are down-sampled and encoded through a series of set conv layers respectively. We adopt the set conv layer in PointNet++ [30] to perform point feature abstraction.
Each set conv layer consumes n points {(x i , p i ) | i = 1, . . . , n}, where x i ∈ R 3 and p i ∈ R c represent 3D coordinate and the point feature. The output of each layer are denoting the 3D coordinate and extracted local feature. All of the output n ′ (n ′ < n) are sampled from the input n points using Farthest Point Sampling (FPS) [30].
For each of the n ′ sampled point, its . . , K} are selected from the input n points. Then, a learnable shared Multi-Layer Perceptron (MLP) and max-pooling operation are adopted to extract the point feature p ′ j of each sampled point from the K neighbouring points. The point feature p ′ j is formulated as: where ⊕ indicates concatenation operation. maxpool means max-pooling operation.

All-to-All Point Mixture
The inputs of the all-to-all embedding layer are two consecutive frames of point clouds: . . , n 1 } and P C 2 = {(y j , q j ) | j = 1, . . . , n 2 }, sampled in the hierarchical point feature abstraction module. x i , y j ∈ R 3 indicate 3D coordinates and p i , q j ∈ R c indicate the point feature. The output of the layer will be the flow embedding E = {e i | e i ∈ R c , i = 1 . . . , n 1 }, which utilizes exhaustive information in two point clouds and encodes motion for points in P C 1 . Our all-to-all embedding includes a two-stage attention-based embedding process with an improved first embedding stage. For the first embedding process, we correlate points in two point clouds by incorporating the all-to-all mechanism with backward reliability validation as shown in Fig. 2. Instead of choosing only K(K < n 2 ) nearest points, each point in P C 1 selects all n 2 points Q i = {(y k i , q k i ) | k = 1, . . . , n 2 } from P C 2 . In this process, all n 2 points Q i from P C 2 are utilized to embed point motion into points in P C 1 . The motion embeddings will then be updated by carefully designed  Fig. 2. The detailed calculation of the first flow embedding between P C1 and P C2.
attentive weighting to derive the first flow embedding F E = {f e i | i = 1, . . . , n 1 }. The calculation details are elaborated as below.
A 10-dimensional vector capturing the 3D Euclidean space information is first calculated as follows: where ∥·∥ 2 indicates the L 2 norm. Then, to realize backward reliability validation, we first formulate a vector that represents a form of similarity between two point clouds by applying element-wise product of P C 1 point feature p i and P C 2 point feature q k i . Maxpooling operation is then performed over n 1 candidate backward embedding features, selecting the most potential and reliable matching candidates in P C 1 for each point of P C 2 . An FC layer is then adopted to encode the backward reliability information. The calculation of backward validation vector is as follows: where ⊙ denotes dot product. The first flow embedding before attentive weighting is then formulated as: Specifically, p i and q k i are normalized on the feature channel before concatenation. Given the 10-dimensional vector d k i , the first attentive weights for soft aggregation of the queried points can be written as: The first flow embedding F E = {f e i | i = 1, . . . , n 1 } corresponding to points with x i coordinates is calculated as: For the second flow embedding process, we follow the same process as [44], which is an aggregation process within the P C 1 self with attention. Each point in P C 1 selects several nearest neighbours in P C 1 self, and the neighbourhood flow embeddings in F E will be aggregated into each point in P C 1 to obtain the second flow embedding E = {e i | i = 1, . . . , n 1 }, which is the output of the all-to-all flow embedding layer.
Calculation of Point Similarity In formula (4), point feature p i of P C 1 and q k i of P C 2 are concatenated to learn the similarity between points from two point clouds. However, there are other ways [28,16,13] to calculate and represent the point similarity: 1) product similarity: the direct dot product of p i and q k i as sim(p i , q k i ) =< p i , q k i >, 2) cosine product similarity: the dot product of p i and q k i divided by their respective L 2 norm as sim(p i , q k i ) =< pi ∥pi∥2 , q k i ∥q k i ∥2 >, and 3) normalized product similarity: the dot product of p i and q k i normalized by their respective mean value µ and standard deviation σ over each feature dimension as sim( We intend to explore whether the concatenation of point feature is more suitable to represent similarity in our network compared with the product similarity presented above. By replacing the concatenation of feature with different forms of product of feature in formula (4), the effectiveness of our design is demonstrated in experiments.

Hierarchical Flow Refinement
The hierarchical flow refinement module consists of four flow refinement layers. The layer takes coarse sparse flow and coarse sparse flow embedding as inputs with information of P C 1 and P C 2 from the previous level while producing refined flow and refined flow embedding as outputs, as illustrated in Fig. 3. It contains four main components: 1) Set Upconv Layer, 2) Position Warping Layer, 3) Attentive Flow Re-embedding Layer, and 4) Scene Flow Predictor. For the first flow refinement layer, the set upconv layer is eliminated to keep the point number unchanged for suitable multi-scale supervision.
Set Upconv Layer In order to up-sample the coarse sparse flow embedding, the set upconv layer in [19] is adopted here to propagate flow embedding from sparse level to dense level. The inputs of this layer are n points with coarse sparse flow embedding {(x i , se i ) | se i ∈ R dsparse , i = 1, . . . , n} and n ′ (n ′ > n) points with feature {(x ′ j , p ′ j ) | j = 1, . . . , n ′ } from the previous dense level. The outputs are n ′ points with dense flow embedding {(x ′ j , de j ) | de j ∈ R d dense , j = 1, . . . , n ′ }. Specifically, each of the n ′ dense points will select its KNN from the sparse n points, and the coarse sparse flow embedding will be aggregated to learn the coarse dense flow embedding by MLP.
Position Warping Layer As a coarse-to-fine style, coarse dense flow {f dense i | i = 1, . . . , n 1 } is first obtained from coarse sparse flow through Three-Nearest Neighbours (Three-NN) interpolation. Next, the coordinates of the first point cloud P C 1 = {(x i , p i ) | i =, . . . , n 1 } are updated by warping P C 1 with coarse dense flow. The warped P C 1 is signified as Attentive Flow Re-embedding Layer The attentive flow embedding layer proposed in [44] is applied to derive a new flow re-embedding {re i | re i ∈ R dre , i = 1, . . . , = n 1 } between P C ′ 1 and P C 2 . Here, the flow re-embedding contains the flow encoding from each point in P C ′ 1 toward P C 2 , which is essential in the subsequent refinement.

Scene Flow Predictor
The scene flow predictor aims to refine coarse dense flow embedding for the input of later flow refinement layer. It takes five elements as inputs: 1) the up-sampled coarse dense flow embedding de i ∈ R d dense , 2) the flow re-embedding re i ∈ R dre , 3) the point feature of the first point cloud p i ∈ R dpc 1 , 4) the coarse dense flow f dense i ∈ R 3 , and 5) the dense flow feature f enc. i ∈ R denc. . Specifically, the coarse dense flow is encoded by two set conv layers [19] to derive the dense flow feature f enc.
i , but the number of points remain unchanged instead of being down-sampled. The refined dense flow embedding is formulated as: Finally, we adopt a residual flow learning structure to estimate the refined scene flow. To be specific, an FC layer is first applied on the refined flow embedding to produce the residual flow f res i . Next, the refined scene flow is generated by adding f res i to f dense i . The calculation of refined scene flow is as follows: Designs of Scene Flow Predictor: The scene flow predictor corrects the coarse scene flow by regressing residual flow from the refined flow embedding. In this paper, we adopt the concatenation of all five inputs of scene flow predictor and directly feed it into shared MLP to derive the refined flow embedding. On the other hand, FlowStep3D [16] and PV-RAFT [49] propose to use a GRU-based gated activation unit on point clouds, inspired by RAFT [33], for updating a hidden state. Given a hidden state h l−1 ∈ R c from previous iteration and a current iteration vector x l , h l−1 is updated as follows: where σ(·) represents sigmoid activation function. In particular, x l ∈ R dre+dpc 1 +denc.+3 is defined as the concatenation of flow reembedding, the point feature of P C 1 , the coarse dense flow, and the dense flow feature. We refer to the dense flow embedding as the hidden state that will be refined iteratively. Then, we can consider replacing our scene flow predictor with this newly designed GRU-based updating unit. Since FlowStep3D [16] and PV-RAFT [49] claim that this GRU-based updating mechanism outperforms the fully-connected structure which is implemented in MLP, we will validate the performance of our scene flow predictor in our network architecture compared with this GRU-based method in the experiment.
Input of Scene Flow Predictor: Another issue we want to investigate is what information is needed to predict the finer flow embedding. i.e. what information is needed in the input of the scene flow predictor. PointPWC-Net [50] uses the flow re-embedding, the point feature of P C 1 , the coarse dense flow, and the up-sampled coarse dense flow embedding as inputs. FlowStep3D [16] additionally includes the dense flow feature but do not add the up-sampled flow embedding. PV-RAFT [49], HCRF-Flow [17], and FESTA [47] all only use the flow re-embedding, the point feature of P C 1 , and the coarse flow. HALFlow [44] does not add the dense flow feature. In this sense, we explore whether removing certain elements from the input will degrade the performance and the extent to which those information contributes to the performance. We consider the flow re-embedding as an indispensable element because it encodes the motion between warped P C 1 and P C 2 in the current level.
Level of Flow Refinement Layer: In [44], three flow refinement layers are applied for a more-for-less network architecture, which estimates N points' scene flow from 4N points of raw input. Only Three-NN interpolation is used for up-sampling in the finest level of flow estimation. Apparently, this structure does not exhaustively leverage the functionality of the whole components in the flow refinement layer. Therefore, we choose to employ an additional flow refinement layer on the finest level to estimate the final scene flow. The above consideration raises another question: Can the performance be further improved if more information from denser level is taken into account? Here we consider using raw point cloud with 4N points to estimate the 4N points' scene flow.
The best choice will be demonstrated in the experiment.

Datasets and Data Preprocess
Because of the inherent difficulty in acquiring large-scale ground-truth scene flow of the real world, we resort to the common synthetic FlyingThings3D dataset [23] for training and evaluation. We first train our network on FlyingThings3D dataset [23], and then directly test our trained model on real-world LiDAR scans from KITTI scene flow dataset [25] without any fine-tuning to demonstrate the generalization capability.
There are two common versions of preparing point clouds from FlyingThings3D dataset [23] and KITTI scene flow dataset [25]. The first version of data preprocessing is proposed by HPLFlowNet [4] and adopted in [4,50,44,17,16]. It does not contain occlusion for input point clouds, which means each point in P C 1 has its corresponding point in P C 2 when warped by its ground-truth scene flow. The second version is proposed by FlowNet3D [19]. This version provides occluded point clouds as inputs and masks that indicate the invalid points without corresponding ones in the adjacent frame. These masks are also used in computing training loss and evaluation metrics. To compare with all 3D scene flow estimation methods to our knowledge, we follow two versions of data preprocessing and conduct experiments on both versions of datasets. More details about datasets and preprocessing is in the supplementary material.

Training and Evaluation Details
Training Loss We train our network in a supervised manner at different levels, similar to [32,50]. Suppose the predicted scene flow of each point at level l is {f l i ∈ R 3 | i = 1, . . . , N l } and the ground-truth scene flow is Here, N l denotes the number of points at level l. Our training loss can be therefore written as: where ψ l indicates the weight at level l. We define the finest level, which is also the level with the densest points, as level l = 1. Implementation Details For the training and evaluation process of our network, 8,192 points are randomly sampled as inputs from the raw points clouds of two consecutive frames. Only 3D XYZ coordinates of the point clouds are fed into our network, like [4,50,44,17,16]. For fair comparison with previous methods, on FlyingThings3D prepared by [4], we first train our network on one quarter of the training set (4,910 pairs) and then fine-tune our model on the complete training set to speed up the training process. On FlyingThings3D prepared by [19], we train our model without fine-tuning. We conduct all the experiments on a single Titan RTX GPU. Pre-training is done for 800 epochs, and fine-tuning lasts for 200 epochs after loading the pre-trained weights. Batch size is 14. Adam optimizer [15] is used in training, and β 1 = 0.9, β 2 = 0.99. The initial learning rate is 0.001 and decays for every 80 epochs exponentially with decay rate γ = 0.5. Our supplementary material provides all details of network parameters.
Evaluation Metrics We adopt the same evaluation metrics used in [4,50,44,17] to evaluate our model for fair comparison, including EPE3D(m), Acc3D Strict, Acc3D Relax, Outliers3D, EPE2D(px), and Acc2D. The detailed description of the metrics is shown in the supplementary material. Table 1 shows the quantitative comparison between previous state-of-the-arts and our approach on FlyingThings3D dataset [23] and KITTI scene flow dataset [25] prepared Table 1. The quantitative comparison between recent state-of-the-art methods and ours on Fly-ingThings3D and KITTI scene flow datasets prepared by Gu et al. [4] without occlusion. All listed approaches are only trained on FlyingThings3D dataset. The best results are in bold. "Full" means fully-supervised training.

Evaluation Dataset Method
Training Data Input Sup. EPE3D Acc3D Strict Acc3D Relax Outliers3D EPE2D Acc2D by [4]. It is demonstrated that our approach outperforms all other methods by a large margin for both 3D and 2D metrics on FlyingThings3D dataset [23]. Meanwhile, our method also achieves the best generalization results on KITTI scene flow [25]. Specifically, we surpasses the SOTA method, FlowStep3D [16], by 38.2% for EPE3D metric on FlyingThings3D dataset [23], and 43.4% on KITTI scene flow [25] dataset. The recent work, FESTA [47], is only tested on the datasets prepared by [19]. To compare with all the methods to our knowledge, we also present the evaluation results on FlyingThings3D dataset [23] and KITTI scene flow dataset [25] prepared by [19] in Table 2. It can be demonstrated that our approach still outperforms previous methods substantially for all 3D metrics on both datasets. Specifically, we surpasses the SOTA method, FESTA [47], by 43.2% with respect to EPE3D metric on FlyingThings3D dataset [23], and 24.7% on KITTI scene flow [25] dataset. We believe the superior performance of our method on the datasets with occlusion partly from our backward validation, which can be aware of the occlusion in the network inference.
We also present detailed visualization of the accuracy of the estimated scene flow by our approach in Fig. 4, compared with methods in [19,44]. It can be seen that our method can better handle the structures with repetitive patterns and large motions. Table 2. Evaluation results on FlyingThings3D and KITTI Scene Flow datasets prepared by Liu et al. [19] with occlusion. The best results are in bold. "Self" means self-supervised training. "Full" means fully-supervised training. All fully-supervised approaches are trained on FlyingThings3D dataset. Self-Point-Flow [18] is trained on raw LiDAR data from KITTI dataset [3].

Ablation Study
In this section, we demonstrate the effectiveness of the proposed all-to-all point mixture module and validate our network design choices compared with other discussed alternative structures through a series of ablation studies. All methods in the ablation studies are trained on 1 4 of the training set (4,910 pairs) of FlyingThings3D dataset [23] prepared by [4] and evaluated using the corresponding evaluation set.
All-to-all and Backward Information In order to demonstrate the effectiveness of both the all-to-all mechanism and the backward validation vector, we first remove the vector that stores the backward information in the all-to-all flow embedding layer, which means s k i is removed from formula (4). Then, the all-to-all mechanism is removed, which means points from P C 1 will only select K nearest neighbours instead. The results in Table 3(a) show that both the all-to-all mechanism and the backward validation vector contribute to the improvement of performance. In fact, the all-to-all mechanism enables the querying point in P C 1 to expand its searching range from K nearest neighbours to all points in P C 2 to determine its most reliable matching candidate. The backward validation vector acquired based on the all-to-all mechanism brings in the information that imposes bi-directional consensus from the backward direction. Therefore, the network can be guided by this backward validation information to better learn the correct matching and estimate more accurate scene flow.

Calculation of Point Similarity
Three different forms of similarity calculation are discussed in section 3.3. Since point similarity design can affect the correlation of adjacent point clouds to a large extent, we compare these product similarity methods with ours. The results in Table 3(b) demonstrate that the concatenation of point feature has the best performance than product forms of point similarity. Representing point similarity via concatenation is more suited in our network. We believe this is because the concatenation operation allows the network to fully exploit its self-learning ability. Designs of Scene Flow Predictor Since our scene flow predictor is only implemented with MLP, we want to know whether GRU in [16,49] can improve the performance. We consider the flow embedding as the hidden state to be updated and replace our MLP based scene flow predictor with GRU. Table 3(c) show that the performance actually degrades using GRU. For our coarse-to-fine network, GRU is less suitable for updating and refining the flow embedding. We believe this is due to the difference of the point number at different levels, which is different from FlowStep3D [16] and PV-RAFT [49].

Input of Scene Flow Predictor
As the scene flow predictor serves to refine the flow embedding for regression of more accurate scene flow, we are interested in what matters in the input information of the scene flow predictor and to what extent each of the inputs contributes to the performance. Therefore, we respectively ablate each of the five inputs except the flow re-embedding in our scene flow predictor to demonstrate their importance. Table 3(d) show that the up-sampled flow embedding is the most important element of inputs, which is intuitive because the up-sampled flow embedding is refined in the previous layer and contains abundant motion information. The removal of the coarse flow and flow feature also causes a slight decline in quantitative performance, which demonstrates that they can also provide some instructions for the improvement of the refinement.
Level of Flow Refinement Layer In our hierarchical flow refinement module, four flow refinement layers exhaustively utilize all four levels of sampled point feature, in-  [44], we add an additional flow refinement layer on the finest level. In order to validate its effectiveness, we remove this flow refinement layer and instead use Three-NN interpolation to obtain the final N points' scene flow from 4N points' inputs, as [44]. In addition, we further apply the Three-NN interpolation to obtain 4N points' scene flow out of 4N points' inputs to see whether more information from raw input will result in an improvement. It turns out in Table 3(e) that both of these designs will degrade the network performance and our four layers of flow refinement that leverage all levels' sampled point feature prove the most suitable and effective structure design for our network.

Conclusion
In this paper, a novel all-to-all point mixture module with backward reliability validation is proposed for reliable correlation. In addition, different designs and techniques for key components of our network are thoroughly compared. We provide a series of ablation studies to show the contributions of each element in key components and to demonstrate what matters in scene flow network. Quantitative results on FlyingThings3D [23] and KITTI scene flow dataset [25] show that our method achieves SOTA performance. Our comparison and analysis on design choices of key components and structure are expected to facilitate the design of scene flow network in future research.