Source: https://www.groundai.com/project/splatnet-sparse-lattice-networks-for-point-cloud-processing/
Timestamp: 2019-04-25 22:14:18+00:00

Document:
We present a network architecture for processing point clouds that directly operates on the collection of points represented as a sparse set of samples in a high-dimensional lattice. Naïvely applying convolutions on this lattice scales poorly, both in terms of memory and computational cost, as the size of the lattice increases. Instead, our network uses sparse bilateral convolutional layers as building blocks. These layers maintain efficiency by using indexing structures to apply convolutions only on occupied parts of the lattice, and allow flexible specification of the lattice structure enabling hierarchical and spatially-aware feature learning, as well as joint 2D-3D reasoning. Both point-based and image-based representations can be easily incorporated in a network with such layers and the resulting model can be trained in an end-to-end manner. We present results on 3D segmentation tasks where our approach outperforms existing state-of-the-art techniques.
Data obtained with modern 3D sensors such as laser scanners is predominantly in the irregular format of point clouds or meshes. Analysis of point cloud data has several useful applications such as robot manipulation and autonomous driving. In this work, we aim to develop a new neural network architecture for point cloud processing.
A point cloud consists of a sparse and unordered set of 3D points. These properties of point clouds make it difficult to use traditional convolutional neural network (CNN) architectures for point cloud processing. As a result, existing approaches that directly operate on point clouds are dominated by hand-crafted features. One way to use CNNs for point clouds is by first pre-processing a given point cloud in a form that is amenable to standard spatial convolutions. Following this route, most deep architectures for 3D point cloud analysis require pre-processing of irregular point clouds into either voxel representations (\eg, [44, 36, 43] ) or 2D images by view projection (\eg, [40, 33, 24, 9] ). This is due to the ease of implementing convolution operations on regular 2D or 3D lattices. However, transforming point cloud representation to either 2D images or 3D voxels would often result in artifacts and more importantly, a loss in some natural invariances present in point clouds.
Recently, a few network architectures [32, 34] have been developed to directly work on point clouds. One of the main drawbacks of these architectures is that they do not allow a flexible specification of the extent of spatial connectivity across points (filter neighborhood). Both  and  use max-pooling to aggregate information across points either globally  or in a hierarchical manner  . This pooling aggregation may lose surface information because the spatial layouts of points are not explicitly considered. It is desirable to capture spatial relationships in input point clouds through more general convolution operations while being able to specify filter extents in a flexible manner.
Figure 1: From point clouds and images to semantics. SPLATNet3D directly takes point cloud as input and predicts labels for each point. SPLATNet2D-3D, on the other hand, jointly processes both point cloud and the corresponding multi-view images for better 2D and 3D predictions.
SPLATNet takes the point cloud as input and does not require any pre-processing to voxels or images.
SPLATNet allows for easy specification of filter neighborhood as in standard CNN architectures.
With the use of hash table, our network can efficiently deal with sparsity in the input point cloud by convolving only at locations where the data is present.
SPLATNet computes hierarchical and spatially aware features of an input point cloud with sparse and efficient lattice filters.
In addition, our network architecture allows an easy mapping of 2D points into 3D space and vice-versa. Following this, we propose a joint 2D-3D deep architecture that processes both the multi-view 2D images and the corresponding 3D point cloud in a single forward pass while being end-to-end learnable.
The inputs and outputs of two different proposed SPLATNet3D and SPLATNet2D-3D networks are depicted in Figure 1. We demonstrate the above advantages of our approach with experiments on point cloud segmentation. Experiments on two different benchmark datasets of RueMonge2014  for facade segmentation and ShapeNet  for part segmentation demonstrate the superior performance of our technique compared to state-of-the-art techniques, while being computationally efficient. Specifically, in the case of facade segmentation, SPLATNet significantly outperforms prior state-of-the-art on both multi-view image labeling and point cloud labeling. In addition, in the case of ShapeNet part segmentation, SPLATNet outperforms existing state-of-the-art techniques.
Below we briefly review existing deep learning approaches for 3D shape processing and explain differences with our work.
Multi-view networks pre-process shapes into a set of 2D rendered images encoding surface depth and normals under various 2D projections [40, 33, 3, 24, 9, 20] . These networks take advantage of high resolution in the input rendered images and transfer learning through fine-tuning of 2D pre-trained image-based architectures. On the other hand, 2D projections can cause surface information loss due to self-occlusions, while viewpoint selection is often performed through heuristics that are not necessarily optimal for a given task.
Voxel-based methods convert the input 3D shape representation into a 3D volumetric grid. Early voxel-based architectures executed convolution in regular, fixed voxel grids, and were limited to low shape resolutions due to high memory and computation costs [44, 29, 33, 6, 15, 38] . Instead of using fixed grids, more recent approaches pre-process the input shapes into adaptively subdivided, hierarchical grids with denser cells placed near the surface [36, 35, 26, 43, 41] . As a result, they have much lower computational and memory overhead. On the other hand, convolutions are often still executed away from the surface, where most of the shape information exists. An alternative approach is to constrain the execution of volumetric convolutions only along the input sparse set of active voxels of the grid  . Our approach can be seen as a generalization of sparse grid convolutions to more general ones (permutohedral lattice convolutions). In contrast to previous work, we do not require pre-processing points into voxels that may cause discretization artifacts and surface information loss. We smoothly map the input surface signal to our sparse lattice, perform convolutions over this lattice, and smoothly interpolate the filter responses back to the input surface. In addition, our architecture can easily incorporate feature representations originating from both 3D point clouds and rendered surface images within the same lattice, getting the best of both worlds.
Qi \etal  pioneered another type of deep networks having the advantage of directly operating on point clouds. The networks learn spatial feature representations for each input point, then the point features are aggregated across the whole point set  , or hierarchical surface regions  through max-pooling. This aggregation may lose surface information since the spatial layout of points is not explicitly considered. In our case, the input points are mapped to a sparse lattice where convolution can be efficiently formulated and spatial relationships in the input data can be effectively captured through flexible filters.
An alternative approach is to represent the input surface as a graph (\eg, a polygon mesh or point-based connectivity graph), convert the graph into its spectral representation, then perform convolution in the spectral domain [8, 19, 11, 4] . Shapes with different graph structure tend to have largely different spectral bases, thus these networks do not generalize well across structurally different shapes. The shape basis functions can be aligned through a spectral transformer  , however, this requires a robust initialization scheme. Another class of methods embeds the input shapes into 2D parametric domains, then execute convolutions within these domains [39, 27, 13] . However, these embeddings can suffer from spatial distortions or require topologically consistent input shapes. Other methods parameterize the surface into local patches, and execute surface-based convolution within these patches [28, 5, 30] . Such non-Euclidean networks have the advantage of being invariant to surface deformations, yet this invariance might not be always desirable in man-made object segmentation and classification tasks where large deformations may change the underlying shape or part functionalities and semantics. We refer to Bronstein \etal  for an excellent review of spectral, patch- and graph-based networks.
FusionNet  combines shape classification scores from a volumetric and a multi-view network, yet this fusion happens at a late stage, after the final fully connected layer of these networks, and does not jointly consider their intermediate local and global feature representations. In our case, the 2D and 3D feature representations are mapped into the same lattice, enabling end-to-end learning from both input types of representations.
In this section, we briefly review the Bilateral Convolution Layer (BCL) that forms the basic building block of our SPLATNet architecture for point clouds. BCL, proposed in  , provides a way to incorporate sparse high-dimensional filtering inside neural networks. In  , BCL was used as a learnable generalization of bilateral filtering [42, 2] , hence the name ‘Bilateral Convolution Layer’. Bilateral filtering involves a projection of a given 2D image into higher-dimensional space (\ie, space defined by position and color features) and is traditionally limited to hand-designed filter kernels. BCL provides a way to learn filter kernels in high-dimensional spaces for bilateral filtering. BCL is also shown to be useful for information propagation across video frames  . We observe that BCL has several favourable properties to filter data that is inherently sparse and high-dimensional, like point clouds. Here, we briefly describe how a BCL works and then discuss its properties.
Figure 2: Bilateral Convolution Layer. Splat: BCL first interpolates input features P onto a s-dimensional permutohedral lattice defined by the lattice features L at input points. Convolve: BCL then does s-dimensional convolution over this sparsely populated lattice. Slice: The filtered signal is then interpolated back onto the input signal. For illustration, input and output are shown as point cloud and the corresponding segmentation.
Let P∈Rn×d be the given input features to a BCL, where n denotes the number of input points and d denotes the dimensionality of input features at each point. For point clouds, n denotes the number of points and k denotes the features at each point. Input features to BCL can be low-level features such as color, position etc., and can also be high-level features generated by a neural network or some other feature learning technique.
One of the interesting characteristics of BCL is that it allows a flexible specification of the lattice space in which the convolution operates. This is specified as lattice features at each input point. Let L∈Rn×s denote lattice features at input points with s denoting the dimensionality of the feature space in which convolution operates. For instance, the lattice features can be position and color features (XYZRGB) that defines 6-dimensional filtering space for BCL. For standard 3D spatial filtering of point clouds, L is given as positional features (XYZ) at each point. Thus BCL takes input features P and lattice features L of input points and does s-dimensional filtering of the points.
Figure 3: SPLATNet. Illustration of inputs, outputs and network architecture for SPLATNet3D and SPLATNet2D-3D.
As illustrated in Figure 2, BCL has three processing steps of splat, convolve and slice that work as follows.
BCL first projects the input features P onto the s-dimensional grid defined by the lattice features L, via barycentric interpolation. Following  , BCL uses a permutohedral lattice instead of a standard Euclidean grid for efficiency purposes. The size of lattice simplices or space between the grid points is controlled by scaling the lattice features ΛL, where Λ is a diagonal s×s scaling matrix.
Once the input points are projected onto s-dimensional lattice, BCL performs s-dimensional convolution on the splatted signal with learnable filter kernels. Just like in standard spatial CNNs, BCL allows for easy specification of filter neighborhood in s-dimensional space.
The filtered signal is then mapped back to the input points via barycentric interpolation. The resulting signal can be passed on to other BCLs for further processing. This step is called ‘slicing’. BCL allows to slice the filtered signal onto a different set of points other than the input points. This is achieved by a specification of different set of lattice features Lout∈Rm×s at m output points of interest.
where Pc denotes the cth column/channel of the input P and ^Pc denotes the corresponding filtered signal.
The input to BCL need not be ordered or lie on a grid as the input points are projected onto s-dimensional grid defined by lattice features Lin.
The input and output points can be different for BCL with the specification of different input and output lattice features Lin and Lout.
Since BCL allows for separate specification of input and lattice features, a given input signal can be projected into different dimensional space for filtering. For instance, a 2D image can be projected onto 3D space for filtering.
Just like in standard spatial convolutions, BCL allows for easy specification of filter neighborhood. This allows for flexible neural network architectures.
Since a signal is usually sparse in high-dimensions, BCL uses hash table to memorize the populated lattice points and does convolution only at those locations. This helps in efficient processing of sparse inputs.
Refer to  for more information about sparse high-dimensional Gaussian filtering on a permutohedral lattice and refer to  for more information on BCL.
We first introduce SPLATNet3D, an instantiation of our proposed network architecture which operates directly on 3D point clouds and is readily applicable to many important 3D tasks. The input to SPLATNet3D is a 3D point cloud F∈Rn×d, where n denotes the number of points and d≥3 denotes the number of feature dimensions including XYZ point locations. Additional features are often available either directly from 3D sensors or through pre-processing. These can be RGB colors, surface normal directions, curvature, \etc. at the input points.
As output, SPLATNet3D produces per-point predictions. Tasks like 3D semantic segmentation and 3D object part labeling fit naturally under this framework. With simple techniques such as global pooling  , SPLATNet3D can be modified to produce a single vector as output and thus can be extended to other tasks such as classification.
The architecture of SPLATNet3D is depicted in Figure 3. The network starts with a single 1×1 CONV layer followed by a series of BCLs. The 1×1 CONV layer processes each input point separately without any data aggregation. The functionality of BCLs is already explained in Section 3. For SPLATNet3D, we use T BCLs each operating on a 3D lattice (s=3) constructed using 3D positional features XYZ at input points, Lin=Lout∈Rn×3. We note that different BCLs use different lattice feature scales Λ. Recall from Section 3 that lattice features scaling Λ is a diagonal matrix that controls the spacing between the grid points in the lattice. For BCLs in SPLATNet3D, we use same lattice scales along each of the X, Y and Z directions, i.e., Λ=λI3, where λ is a scalar and I3 denotes a 3×3 identity matrix. We start with an initial lattice scale λ0 for the first BCL and subsequently divide the lattice scale by a factor of 2 (λt=λt−1/2) for the next T−1 BCLs. In other words, SPLATNet3D with T BCLs use the following lattice feature scales: (Λ0,Λ0/2,…,Λ0/2T−1). Lower lattice feature scales implies coarser lattices and larger receptive fields for the filters. Thus, in SPLATNet3D, deeper BCLs have longer-range connectivity between input points compared to earlier layers. We will discuss more about the effect of lattice spaces and their scales later. Like in standard CNNs, SPLATNet allows for easy specification of filter neighborhoods. For all the BCLs, we use filters operating on 1-neighborhoods (\ie, one-ring) and refer to the supp. material for details on the number of filters per layer.
The responses of the T BCLs are concatenated and then passed through two additional 1×1 CONV layers. Then the output of the final layer passes through a SoftMax layer, which produces point-wise class label probabilities. The concatenation operation aggregates information from different BCLs operating at different lattice scales. Similar techniques of concatenation from network layers at different depths have been useful in 2D CNNs  . All the network layers, except for the last CONV layer, are followed by ReLU and BatchNorm layers. More details about the network architecture are given in the supp. material.
Lattice spaces and their scales.
One of the main distinguishing features of SPLATNet compared to existing 3D networks is its use of convolutions on sparse lattices while still taking unordered point clouds as input. The use of BCLs in SPLATNet allows for easy specification of lattice spaces via input lattice features and also the lattice scale via a scaling matrix.
Changing the lattice feature scales Λ directly affects the resolution of the signal on which the convolution operates. This gives us direct control over the receptive fields of network layers. Figure 7 shows lattice cell visualizations for different lattice spaces and scales, with points falling in the same lattice cell shown with the same color. Using coarser lattice would increase the effective receptive field of the filter. Another way to increase the receptive field of a filter is by increasing its neighborhood size. But, in high-dimensions, this will exponentially increase the number of filter weights. For instance, a standard Euclidean filter with 1-neighborhood in 3D space has 33=27 parameters, whereas a filter with 7-neighborhood has 73=343 parameters. On the other hand, increasing the receptive field of a filter by making the lattice coarser would not increase the number of filter parameters leading to more computationally efficient network architectures.
We observe that it is beneficial to use finer lattices (larger lattice feature scales) earlier in the network, then coarser lattices (smaller lattice feature scales) going deeper. This is consistent with the common knowledge in 2D CNNs: increasing receptive field gradually through the network can help build hierarchical representations with varying spatial extents and abstraction levels. Although we mainly experiment with XYZ lattices in this work, BCL allows for other lattice spaces such as position and color space (XYZRGB) or normal space. Using different lattice spaces enforces different connectivity across input points that may be beneficial to the task. In one of the experiments, we experimented with a variant of SPLATNet3D, where we add an extra BCL with position and normal lattice features (XYZnxnynz) and observed minor performance improvements.
Figure 7: Effect of different lattices and their scales. Lattice visualizations for different feature spaces L=(x,y,z),(x,y,z),(nx,ny,nz) along with different lattice scales Λ=I3,8I3,I3. (nx,ny,nz) refers to normal features. All points falling in the same lattice cell are shown with the same color.
Oftentimes, 3D point clouds are accompanied by 2D images of the same scene. For instance, many modern 3D sensors capture RGBD video streams and perform 3D reconstruction to obtain 3D point clouds, resulting in both 2D images and point clouds of a scene together with point correspondences between 2D and 3D. One could also easily sample point clouds along with 2D renderings from a given 3D mesh. When such aligned 2D-3D data is present, SPLATNet provides an extremely flexible framework for joint processing. We propose SPLATNet2D-3D, another SPLATNet instantiation designed for such joint processing.
The network architecture of the SPLATNet2D-3D is depicted in the green box of Figure 3. SPLATNet2D-3D encompasses SPLATNet3D as one of its components and adds extra computational modules for joint 2D-3D processing. Next, we explain each of these extra components of SPLATNet2D-3D, in the order of their computation.
First, we process the given multi-view 2D images using a standard 2D segmentation CNN architecture, which we refer to as CNN1. In our experiments, we use DeepLab  segmentation architecture for CNN1 and initialize the network weights with those pre-trained on Pascal VOC segmentation dataset  .
Once the output of CNN1 is computed for given multi-view 2D images, we project them onto 3D point cloud using a BCL with only splat and slice operations. As mentioned in Section 3, one of the interesting properties of BCL is that it allows for different input and output points by separate specification of input and output lattice features, Lin and Lout. Using this property, we use BCL to splat 2D features onto 3D lattice space and then slice the 3D splatted signal on the point cloud. We refer to this BCL, without convolution operation, as BCL2D→3D and is illustrated in Figure 8. Specifically, we use 3D locations of input image pixels as input lattice features, Lin=L2D∈Rk×3, where k denotes the number of input image pixels. In addition, we use the 3D locations of points in the point cloud as output lattice features, Lout=L3D∈Rm×3, which are the same lattice features used in SPLATNet3D. The lattice feature scale, Λa, controls the smoothness of the projection and can be adjusted according to the sparsity of the point cloud.
Figure 8: 2D to 3D projection. Illustration of 2D to 3D projection using splat and slice operations. Given input features of 2D image pixels are projected onto 3D permutohedral lattice defined by 3D positional lattice features. The splatted signal is then sliced onto the points of interest in a 3D point cloud.
At this point, we have the result of CNN1 projected onto 3D points and also the intermediate features from SPLATNet3D that exclusively operates on input point cloud. Since both of these signals are embedded in the same 3D space, we concatenate these two signals and then use a series of 1×1 CONV layers for further processing. The output of ‘2D-3D Fusion’ module is passed onto a SoftMax layer to compute class probabilities at each input point of the point cloud.
Sometimes, we are also interested in segmenting 2D images and want to leverage relevant 3D information for better 2D segmentation. For this purpose, we back-project the 3D features computed by the ‘2D-3D Fusion’ module onto the 2D images by a BCL2D→3D module. This is the reverse operation of BCL2D→3D, where the input and output lattice features are swapped. Similarly, a hyper-parameter Λb controls the smoothness of the projection.
We then concatenate the output from CNN1, input images and the output of BCL3D→2D, and pass them through another 2D CNN (CNN2) to obtain refined 2D semantic predictions. In our experiments, we find that a simple 2-layered network is good enough for this purpose.
All components in this 2D-3D joint processing framework are differentiable, and can be trained end-to-end. Depending on the availability of 2D or 3D ground-truth labels, loss functions can be defined on either one of the two domains, or on both domains in a multi-task learning setting. More details of the network architecture are provided in the supp. material. We believe that this joint processing offered by SPLATNet2D-3D results in better predictions for both 2D images and 3D point clouds. For 2D images, leveraging 3D features helps in view-consistent predictions across multi-view images. For point clouds, augmenting 2D CNNs help leverage powerful 2D deep CNN features computed on high-resolution 2D images.
We evaluate SPLATNet on tasks on two different benchmark datasets of RueMonge2014  and ShapeNet  . On RueMonge dataset, we conducted experiments on the tasks of 3D point cloud labeling and multi-view image labeling. On ShapeNet, we evaluated SPLATNet on 3D part segmentation task. We use Caffe  neural network framework for all the experiments and use Adam stochastic optimization  for training the networks.
Table 1: Results on facade segmentation. Average IoU scores and approximate runtimes for point cloud labeling and 2D image labeling using different techniques. Runtimes indicate the time taken to segment the entire test data (202 images sequentially for 2D and a point cloud for 3D).
Figure 13: Facade point cloud labeling. Sample visual results of SPLATNet3D and SPLATNet2D-3D.
Here, the task is to assign semantic label to every point in a point cloud and/or corresponding multi-view 2D images.
RueMonge2014 dataset  provides a standard benchmark for 2D and 3D facade segmentation and also inverse procedural modeling. The dataset consists of 428 high-resolution and multi-view images obtained from a street in Paris. A point cloud with approximately 1M points is reconstructed using the multi-view images. A ground-truth labeling with seven semantic classes of door, shop, balcony, window, wall, sky and roof are provided for both 2D images and 3D point cloud. Sample 2D images and point cloud with their corresponding ground truths are shown in Figure 17 and 13 respectively. For evaluation, Intersection over Union (IoU) score is computed for each of the seven classes and then averaged to get a single overall IoU.
We use our SPLATNet3D architecture for the task of point cloud labeling on this dataset. We use 5 BCLs followed by a couple of 1×1 CONV layers in SPLATNet3D network. Input features to the network comprise of a 7 dimensional vector at each point representing RGB color, normals and height above the ground. For all the BCLs, we use XYZ lattice space (L3D) with Λ0=64I3. Experimental results with average IoU and runtime are shown in Table 1. Results show that, with only using 3D data, our method achieves an IoU of 65.4 which is considerable improvement (6.2 IoU) over the state-of-the-art deep network, OctNet  .
Since this dataset comes with multi-view 2D images, one could leverage the information present in 2D data for better point cloud labeling. We use SPLATNet2D-3D to leverage 2D information and obtain better 3D segmentations. Table 1 shows the experimental results when using both the 2D and 3D data as input. SPLATNet2D-3D obtains an average IoU of 69.8 outperforming the previous state-of-the-art by a large margin (6.9 IoU), thereby setting up a new state-of-the-art on this dataset. This is also a significant improvement from the IoU obtained with SPLATNet3D demonstrating the benefit of leveraging 2D and 3D information in a joint framework. Runtimes in Table 1 also indicate that our SPLATNet approach is much faster compared to traditional Autocontext techniques. A visual result for 3D facade labeling is shown in Figure 13.
As illustrated in Section 5, we extend the 2D CNN1 with CNN2 to obtain better multi-view image segmentation. Table 1 shows the results of multi-view image labeling on this dataset using different techniques. Using DeepLab (CNN1) already outperforms existing state-of-the-art by a large margin. Leveraging 3D information via SPLATNet2D-3D boosts the performance to 70.6 IoU. An increase of 1.3 IoU from only using CNN1 demonstrates the potential of our joint 2D-3D framework in leveraging 3D information for better 2D segmentations.
Figure 17: 2D facade segmentation. Sample visual results of SPLATNet2D-3D.
Table 2: Results on ShapeNet part segmentation. Class average mIoU, instance average mIoU and mIoU scores for all the categories on the task of point cloud labeling using different techniques.
The task of part segmentation is to assign a part category label to each point in a point cloud representing a 3D object.
The ShapeNet Part dataset  is a subset of ShapeNet, which contains 16681 objects from 16 categories, each with 2-6 part labels. The objects are consistently aligned and scaled to fit into a unit cube, and the ground-truth annotations are provided on sampled points on the shape surfaces. It is common to assume that the category of the input 3D object is known, narrowing the possible part labels to the ones specific to the given object category. We report standard Intersection over Union (IoU) scores for evaluation of part segmentation. An IoU score is computed for each object and then averaged within the objects in a category to compute mean IoU (mIoU) for each object category. In addition to reporting mIoU score for each object category, we also report ‘class average mIoU’ which is the average mIoU across all object categories, and also ‘instance average mIoU’, which is the average mIoU across all objects.
Figure 18: ShapeNet part segmentation. Sample visual results of SPLATNet3D and SPLATNet2D-3D.
We use both SPLATNet3D and SPLATNet2D-3D for this task. First, we discuss the architecture and results with SPLATNet3D that uses only 3D point clouds as input. Since the category of the object is assumed to be known, we train separate segmentation models for each object category. SPLATNet3D network architecture for this taks is also composed of 5 BCLs. Point locations XYZ are used as input features as well as the lattice features L for all the BCLs and the lattice feature scale for the first BCL layer Λ0=64I3. Experimental results are shown in Table 2. SPLATNet3D obtains a class average mIoU of 82.0 and instance average mIoU of 84.6, which is on-par with the best networks that only takes point clouds as input (PointNet++  uses surface normals as additional inputs).
We also adopt our SPLATNet2D-3D network, which operates on both 2D and 3D data, for this task. For the joint framework to work, we need rendered 2D views and corresponding 3D locations for each pixel in the renderings. We first render 3-channel images: Phong shading  , depth, and height from the ground plane. Cameras are placed on the 20 vertices of a dodecahedron from a fixed distance, pointing towards the object’s center. The 2D-3D correspondences can be generated by carrying the XYZ coordinates of 3D points into the rendering rasterization pipeline so that each pixel also acquires coordinate values from the surface point projected into it. Results in Table 2 show that incorporating 2D information allows SPLATNet2D-3D to improve noticeably from SPLATNet3D with 1.3 and 0.5 increase in class and instance average mIoU respectively. SPLATNet2D-3D obtains class average IoU of 82.3 outperforming existing state-of-the-art approaches, while performing on par with state-of-the-art in terms of instance average IoU score (85.1).
We experiment with a variant of SPLATNet3D where an additional BCL with 6-dimensional position and normal lattice features (XYZnxnynz) is added between the last two 1×1 CONV layers. This modification gave only a marginal improvement of 0.2 IoU over standard SPLATNet3D, in terms of both class and instance average mIoU scores.
In this work, we propose a new SPLATNet architecture for point cloud processing. SPLATNet directly takes point clouds as input and computes hierarchical and spatially-aware features with sparse and efficient lattice filters. In addition, SPLATNet allows for an easy mapping of 2D information into 3D and vice-versa, resulting in a novel network architecture for joint processing of point clouds and the corresponding multi-view images. Experiments on two different benchmark datasets shows that the proposed networks compare favourably against state-of-the-art approaches for scene labeling tasks. In future, we would like to explore the use of additional input features (\eg, texture) and also the use of other high dimensional lattice spaces in our network.
In this supplementary material, we provide additional details and explanations to help readers gain a better understanding of our techniques.
CL: (32I3,16I3,8I3,4I3,2I3). The unit of raw input features XYZ is meter, with Y (aligned with gravity axis) having a range of 7.1 meters. For all the BCLs, we use filters operating on 1-neighborhoods (\ie, one-ring neighborhoods).
We use SPLATNet3D as described above as the 3D component of the 2D-3D joint model. The ‘2D-3D Fusion’ component has 2 1×1 CONV layers: 64-7 . DeepLab  segmentation architecture is used as CNN1. CNN2 is a small network with 2 CONV layers: 32-7 , where the first layer has 3×3 filters and 32 output channels, and the second one has 1×1 filters and 7 output channels. We use Λa=64 and Λb=1000 for 2D↔3D interpolation with BCLs. Note that the dataset provides one-to-many mappings from 3D points to pixels. By using a very large scale (\ie, Λb=1000), 3D unaries are directly mapped to the corresponding 2D pixel locations without interpolation.
We randomly sample facade segments of 60k points and use a batch size of 4 when training SPLATNet3D. CNN1 is initialized with Pascal VOC  pre-trained weights and fine-tuned for 2D facade segmentation. Adam optimizer  with an initial learning rate of 0.0001 is used for training both SPLATNet3D and SPLATNet2D-3D. Since the training data is small, we augment point cloud training data with random rotations, translations, and small color perturbations. We also augment 2D image data with small color perturbations during training.
Figure 23: Labeling issues in ShapeNet part dataset. Four types of labeling issues are shown here. Two examples from the test set are given for each type, where the first row shows the ground-truth labels and the second row shows our predictions (SPLATNet2D-3D). Our predictions seem to be more accurate than the ground truth in some cases (see 23 and 23).
We use a 1×1 CONV layer in the beginning, followed by 5 BCLs (T=5), and then 2 1×1 CONV layers in SPLATNet3D for the ShapeNet part segmentation task. The number of output channels in each layer are: 32-B64-B128-B256-B256-B256-128-Cx . ‘x’ in the last CONV layer denotes the number of part categories, and ranges from 2-6 for different object categories. We use an initial scale Λ0=64I3 for scaling lattice features XYZ, and divide the scale by half after each BCL: (64I3,32I3,16I3,8I3,4I3).
We use SPLATNet3D as described above as the 3D component of the joint model. The ‘2D-3D Fusion’ component has 2 1×1 CONV layers: 128-x . The same DeepLab architecture is used for CNN1. We use Λa=32 in BCL2D→3D. Since 2D prediction is not needed, CNN2 and BCL3D→2D are omitted.
We train separate models for each object category. CNN1 is initialized the same way as in the facade experiment. Adam optimizer  with an initial learning rate of 0.0001 is used. We augment point cloud data with random rotations, translations, and scalings during training.
Some object part categories are frequently labeled incorrectly. \Eg, skateboard trucks are often mistakenly labeled as ‘deck’ or ‘wheel’ (Figure 23).
Some object parts, \eg‘fin’ of some rockets, have incomplete range or coverage (Figure 23).
Some object part categories are labeled inconsistently between shapes. \Eg, airplane landing gears are seen labeled as ‘body’, ‘engine’, or ‘wings’ (Figure 23).
Some categories have parts that are labeled as ‘other’, which can be confusing for the classifier as these parts do not have clear semantic meanings or structures. \Eg, in the case of earphones, anything that is not ‘headband’ or ‘earphone’ are given the same label (‘other’) (Figure 23).
The first two issues make evaluations and comparisons on the benchmark less reliable, while the other two make learning ill-posed or unnecessarily hard for the networks.
A. Adams, J. Baek, and M. A. Davis. Fast high-dimensional filtering using the permutohedral lattice. In Computer Graphics Forum, volume 29, pages 753–762. Wiley Online Library, 2010.
V. Aurich and J. Weule. Non-linear Gaussian filters performing edge preserving diffusion. In DAGM, pages 538–545. Springer, 1995.
S. Bai, X. Bai, Z. Zhou, Z. Zhang, and L. J. Latecki. GIFT: A real-time and scalable 3d shape search engine. In 2016 IEEE Conference on Computer Vision and Pattern Recognition, CVPR 2016, pages 5023–5032, 2016.
D. Boscaini, J. Masci, S. Melzi, M. M. Bronstein, U. Castellani, and P. Vandergheynst. Learning class-specific descriptors for deformable shapes using localized spectral convolutional networks. In Proceedings of the Symposium on Geometry Processing, 2015.
D. Boscaini, J. Masci, E. RodolÃ , and M. M. Bronstein. Learning shape correspondence with anisotropic convolutional neural networks. In The Conference and Workshop on Neural Information Processing Systems (NIPS 16), 2016.
A. Brock, T. Lim, J. M. Ritchie, and N. Weston. Generative and discriminative voxel modeling with convolutional neural networks. CoRR, 2016.
M. M. Bronstein, J. Bruna, Y. LeCun, A. Szlam, and P. Vandergheynst. Geometric deep learning: Going beyond euclidean data. IEEE Signal Processing Magazine, 34(4):18–42, 2017.
J. Bruna, W. Zaremba, A. Szlam, and Y. LeCun. Spectral networks and locally connected networks on graphs. CoRR, abs/1312.6203, 2013.
Z. Cao, Q. Huang, and K. Ramani. 3d object classification via spherical projections. In 3DV, 2017.
L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy, and A. L. Yuille. Semantic image segmentation with deep convolutional nets and fully connected CRFs. In International Conference on Learning Representations (ICLR), 2015.
M. Defferrard, X. Bresson, and P. Vandergheynst. Convolutional neural networks on graphs with fast localized spectral filtering. CoRR, abs/1606.09375, 2016.
M. Everingham, S. M. A. Eslami, L. Van Gool, C. K. I. Williams, J. Winn, and A. Zisserman. The pascal visual object classes challenge: A retrospective. International Journal of Computer Vision, 111(1):98–136, Jan. 2015.
D. Ezuz, J. Solomon, V. G. Kim, and M. Ben-Chen. Gwcnn: A metric alignment layer for deep shape analysis. Computer Graphics Forum, 36(5), 2017.
R. Gadde, V. Jampani, R. Marlet, and P. Gehler. Efficient 2d and 3d facade segmentation using auto-context. IEEE Trans. PAMI, 2017.
A. Garcia-Garcia, F. Gomez-Donoso, J. G. Rodríguez, S. Orts, M. Cazorla, and J. A. López. Pointnet: A 3d convolutional neural network for real-time object class recognition. 2016 International Joint Conference on Neural Networks (IJCNN), pages 1578–1584, 2016.
B. Graham and L. van der Maaten. Submanifold sparse convolutional networks. arXiv preprint arXiv:1706.01307, 2017.
B. Hariharan, P. Arbeláez, R. Girshick, and J. Malik. Hypercolumns for object segmentation and fine-grained localization. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 447–456, 2015.
V. Hegde and R. Zadeh. Fusionnet: 3d object classification using multiple data representations. CoRR, abs/1607.05695, 2016.
M. Henaff, J. Bruna, and Y. LeCun. Deep convolutional networks on graph-structured data. CoRR, abs/1506.05163, 2015.
H. Huang, E. Kalegorakis, S. Chaudhuri, D. Ceylan, V. Kim, and E. Yumer. Learning local shape descriptors with view-based convolutional neural networks. ACM Transactions on Graphics, 2018.
V. Jampani, R. Gadde, and P. V. Gehler. Video propagation networks. In Proc. CVPR, 2017.
V. Jampani, M. Kiefel, and P. V. Gehler. Learning sparse high dimensional filters: Image filtering, dense crfs and bilateral neural networks. In Proc. CVPR, 2016.
Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick, S. Guadarrama, and T. Darrell. Caffe: Convolutional architecture for fast feature embedding. In Proceedings of the 22nd ACM international conference on Multimedia, pages 675–678. ACM, 2014.
E. Kalogerakis, M. Averkiou, S. Maji, and S. Chaudhuri. 3D shape segmentation with projective convolutional networks. In Proc. CVPR, 2017.
D. Kingma and J. Ba. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980, 2014.
R. Klokov and V. Lempitsky. Escape from cells: Deep kd-networks for the recognition of 3D point cloud models. In Proc. ICCV, 2017.
H. Maron, M. Galun, N. Aigerman, M. Trope, N. Dym, E. Yumer, V. G. Kim, and Y. Lipman. Convolutional neural networks on surfaces via seamless toric covers. ACM Trans. Graph., 36(4), 2017.
J. Masci, D. Boscaini, M. Bronstein, and P. Vandergheynst. Geodesic convolutional neural networks on riemannian manifolds. In Proceedings of the IEEE International Conference on Computer Vision Workshops, 2015.
D. Maturana and S. Scherer. 3D convolutional neural networks for landing zone detection from lidar. In IEEE International Conference on Robotics and Automation (ICRA 15), 2015.
F. Monti, D. Boscaini, J. Masci, E. Rodola, J. Svoboda, and M. M. Bronstein. Geometric deep learning on graphs and manifolds using mixture model cnns. In IEEE Conference on Computer Vision and Pattern Recognition(CVPR 17), 2017.
B. T. Phong. Illumination for computer generated pictures. Commun. ACM, 18(6), 1975.
C. R. Qi, H. Su, K. Mo, and L. J. Guibas. Pointnet: Deep learning on point sets for 3d classification and segmentation. In CVPR, 2017.
C. R. Qi, H. Su, M. NieÃner, A. Dai, M. Yan, and L. J. Guibas. Volumetric and multi-view cnns for object classification on 3D data. In IEEE Conference on Computer Vision and Pattern Recognition(CVPR 16), 2016.
C. R. Qi, L. Yi, H. Su, and L. Guibas. Pointnet++: Deep hierarchical feature learning on point sets in a metric space. In NIPS, 2017.
G. Riegler, A. O. Ulusoy, H. Bischof, and A. Geiger. Octnetfusion: Learning depth fusion from data. In Proceedings of the International Conference on 3D Vision, 2017.
G. Riegler, A. O. Ulusoys, and A. Geiger. Octnet: Learning deep 3D representations at high resolutions. In Proc. CVPR, 2017.
H. Riemenschneider, A. Bódis-Szomorú, J. Weissenberg, and L. Van Gool. Learning where to classify in multi-view semantic segmentation. In Proc. ECCV, 2014.
N. Sedaghat, M. Zolfaghari, E. Amiri, and T. Brox. Orientation-boosted voxel nets for 3d object recognition. In British Machine Vision Conference (BMVC), 2017.
A. Sinha, J. Bai, and K. Ramani. Deep learning 3D shape surfaces using geometry images. In European Conference on Computer Vision (ECCV 16), 2016.
H. Su, S. Maji, E. Kalogerakis, and E. G. Learned-Miller. Multi-view convolutional neural networks for 3D shape recognition. In Proc. ICCV, 2015.
M. Tatarchenko, A. Dosovitskiy, and T. Brox. Octree generating networks: Efficient convolutional architectures for high-resolution 3d outputs. In IEEE International Conference on Computer Vision (ICCV), 2017.
C. Tomasi and R. Manduchi. Bilateral filtering for gray and color images. In Computer Vision, 1998. Sixth International Conference on, pages 839–846. IEEE, 1998.
P.-S. Wang, Y. Liu, Y.-X. Guo, C.-Y. Sun, and X. Tong. O-cnn: Octree-based convolutional neural networks for 3d shape analysis. ACM Trans. Graph., 36(4), 2017.
Z. Wu, S. Song, A. Khosla, F. Yu, L. Zhang, X. Tang, and J. Xiao. 3D shapenets: A deep representation for volumetric shapes. In IEEE Conference on Computer Vision and Pattern Recognition(CVPR 15), 2015.
L. Yi, V. G. Kim, D. Ceylan, I. Shen, M. Yan, H. Su, A. Lu, Q. Huang, A. Sheffer, L. Guibas, et al. A scalable active framework for region annotation in 3D shape collections. ACM Trans. Graph., 35(6):210, 2016.
L. Yi, H. Su, X. Guo, and L. Guibas. Syncspeccnn: Synchronized spectral cnn for 3D shape segmentation. In Proc. CVPR, 2017.

References: V. 
 V. 
 V. 

V. 
 V. 

V. 
 V. 

V. 
 V. 
 V. 
 V. 
 V.