SPLATNet: Sparse Lattice Networks for Point Cloud Processing

Hang Su, Varun Jampani, Deqing Sun, Subhransu Maji, Evangelos Kalogerakis, Ming-Hsuan Yang, Jan Kautz

Introduction

Data obtained with modern 3D sensors such as laser scanners is predominantly in the irregular format of point clouds or meshes. Analysis of point clouds 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 (e.g., ) or 2D images by view projection (e.g., ). This is due to the ease of implementing convolution operations on regular 2D or 3D grids. 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 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 point clouds through more general convolution operations while being able to specify filter extents in a flexible manner.

In this work, we propose a generic and flexible neural network architecture for processing point clouds that alleviates some of the aforementioned issues with existing deep architectures. Our key observation is that the bilateral convolution layers (BCLs) proposed in have several favorable properties for point cloud processing. BCL provides a systematic way of filtering unordered points while enabling flexible specifications of the underlying lattice structure on which the convolution operates. BCL smoothly maps input points onto a sparse lattice, performs convolutions on the sparse lattice and then smoothly interpolates the filtered signal back onto the original input points. With BCLs as building blocks, we propose a new neural network architecture, which we refer to as SPLATNet (SParse LATtice Networks), that does hierarchical and spatially-aware feature learning for unordered points. SPLATNet has several advantages for point cloud processing:

SPLATNet takes the point cloud as input and does not require any pre-processing to voxels or images.

SPLATNet allows an 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 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 versions of the proposed network, SPLATNet3D{}_{\text{3D}} and SPLATNet2D-3D{}_{\text{2D-3D}}, are depicted in Figure 1. We demonstrate the above advantages with experiments on point cloud segmentation. Experiments on both RueMonge2014 facade segmentation and ShapeNet part segmentation demonstrate the superior performance of our technique compared to state-of-the-art techniques, while being computationally efficient.

Related Work

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 . 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 . 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 . 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 resides. 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 generalizes this idea to high-dimensional 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 images within the same lattice, getting the best of both worlds.

Point cloud networks.

Qi et al. 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.

Non-Euclidean networks.

An alternative approach is to represent the input surface as a graph (e.g., a polygon mesh or point-based connectivity graph), convert the graph into its spectral representation, then perform convolution in the spectral domain . However, structurally different shapes tend to have largely different spectral bases, and thus lead to poor generalization. Yi et al. proposed aligning shape basis functions through a spectral transformer, which, however, requires a robust initialization scheme. Another class of methods embeds the input shapes into 2D parametric domains and then execute convolutions within these domains . 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 . Such non-Euclidean networks have the advantage of being invariant to surface deformations, yet this invariance might not always be 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 et al. for an excellent review of spectral, patch- and graph-based methods.

Joint 2D-3D 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 onto the same lattice, enabling end-to-end learning from both types of input representations.

Bilateral Convolution Layer

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 provides a way to incorporate sparse high-dimensional filtering inside neural networks. In , BCL was proposed as a learnable generalization of bilateral filtering , hence the name ‘Bilateral Convolution Layer’. Bilateral filtering involves a projection of a given 2D image into a higher-dimensional space (e.g., space defined by position and color) 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 favorable 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.

2 Processing steps in BCL

As illustrated in Figure 2, BCL has three processing steps, splat, convolve and slice, that work as follows.

BCL first projects the input features FF onto the dld_{l}-dimensional lattice defined by the lattice features LL, 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\Lambda L, where Λ\Lambda is a diagonal dl×dld_{l}\times d_{l} scaling matrix.

Convolve.

Once the input points are projected onto the dld_{l}-dimensional lattice, BCL performs dld_{l}-dimensional convolution on the splatted signal with learnable filter kernels. Just like in standard spatial CNNs, BCL allows an easy specification of filter neighborhood in the dld_{l}-dimensional space.

Slice.

All the above three processing steps in BCL can be written as matrix multiplications:

where FcF_{c} denotes the cthc^{th} column/channel of the input feature FF and F^c\hat{F}_{c} denotes the corresponding filtered signal.

3 Properties of BCL

There are several properties of BCL that makes it particularly convenient for point cloud processing. Here, we mention some of those properties:

The input points to BCL need not be ordered or lie on a grid as they are projected onto a dld_{l}-dimensional grid defined by lattice features LinL^{in}.

The input and output points can be different for BCL with the specification of different input and output lattice features LinL^{in} and LoutL^{out}.

Since BCL allows separate specifications of input and lattice features, input signals can be projected into a different dimensional space for filtering. For instance, a 2D image can be projected into 3D space for filtering.

Just like in standard spatial convolutions, BCL allows an easy specification of filter neighborhood.

Since a signal is usually sparse in high-dimension, BCL uses hash tables to index the populated vertices and does convolutions 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 details on BCL.

SPLATNet3D3D{}_{\text{3D}} for Point Cloud Processing

As output, SPLATNet3D{}_{\text{3D}} 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{}_{\text{3D}} can be modified to produce a single output vector and thus can be extended to other tasks such as classification.

The responses of the TT BCLs are concatenated and then passed through two additional 1×11\times 1 CONV layers. Finally, a softmax layer produces point-wise class label probabilities. The concatenation operation aggregates information from BCLs operating at different lattice scales. Similar techniques of concatenating outputs from network layers at different depths have been useful in 2D CNNs . All parameterized layers, except for the last CONV layer, are followed by ReLU and BatchNorm. More details about the network architecture are given in the supp. material.

Lattice spaces and their scales.

The use of BCLs in SPLATNet allows easy specifications of lattice spaces via lattice features and also lattice scales via a scaling matrix.

Changing the lattice scales Λ\Lambda 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 4 shows lattice cell visualizations for different lattice spaces and scales. Using coarser lattice can increase the effective receptive field of a filter. Another way to increase the receptive field of a filter is by increasing its neighborhood size. But, in high-dimensions, this will significantly increase the number of filter parameters. For instance, 3D filters of size 3,5,73,5,7 on a regular Euclidean grid have 33=27,53=125,73=3433^{3}=27,5^{3}=125,7^{3}=343 parameters respectively. On the other hand, 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 scales) earlier in the network, and then coarser lattices (smaller lattice 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 XYZXYZ lattices in this work, BCL allows for other lattice spaces such as position and color space (XYZRGBXYZRGB) 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{}_{\text{3D}}, where we add an extra BCL with position and normal lattice features (XYZnxnynzXYZn_{x}n_{y}n_{z}) and observed minor performance improvements.

Joint 2D-3D Processing with SPLATNet2D-3D2D-3D{}_{\text{2D-3D}}

Oftentimes, 3D point clouds are accompanied by 2D images of the same target. For instance, many modern 3D sensors capture RGBD 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{}_{\text{2D-3D}}, another SPLATNet instantiation designed for such joint processing.

The network architecture of the SPLATNet2D-3D{}_{\text{2D-3D}} is depicted in the green box of Figure 3. SPLATNet2D-3D{}_{\text{2D-3D}} encompasses SPLATNet3D{}_{\text{3D}} 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{}_{\text{2D-3D}}, in the order of their computations.

First, we process the given multi-view 2D images using a 2D segmentation CNN, which we refer to as CNN1. In our experiments, we use the DeepLab architecture for CNN1 and initialize the network weights with those pre-trained on PASCAL VOC segmentation .

BCL2D→3D→2D3D{}_{\text{2D}\rightarrow\text{3D}}.

D-3D Fusion.

At this point, we have the result of CNN1 projected onto 3D points and also the intermediate features from SPLATNet3D{}_{\text{3D}} that exclusively operates on the 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×11\times 1 CONV layers for further processing. The output of the ‘2D-3D Fusion’ module is passed on to a softmax layer to compute class probabilities at each input point of the point cloud.

BCL3D→2D→3D2D{}_{\text{3D}\rightarrow\text{2D}}.

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{}_{\text{2D}\rightarrow\text{3D}} module. This is the reverse operation of BCL2D→3D{}_{\text{2D}\rightarrow\text{3D}}, where the input and output lattice features are swapped. Similarly, a hyper-parameter Λb\Lambda_{b} controls the smoothness of the projection.

CNN2.

We then concatenate the output from CNN1, input images and the output of BCL3D→2D{}_{\text{3D}\rightarrow\text{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 capability offered by SPLATNet2D-3D{}_{\text{2D-3D}} can result in better predictions for both 2D images and 3D point clouds. For 2D images, leveraging 3D features helps in view-consistent predictions across multiple viewpoints. For point clouds, incorporating 2D CNNs help leverage powerful 2D deep CNN features computed on high-resolution images.

Experiments

We evaluate SPLATNet on tasks on two different benchmark datasets of RueMonge2014 and ShapeNet . On RueMonge2014, 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. We use Caffe neural network framework for all the experiments. Full code and trained models are publicly available on our project websitehttp://vis-www.cs.umass.edu/splatnet.

Here, the task is to assign semantic label to every point in a point cloud and/or corresponding multi-view 2D images.

RueMonge2014 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 the point cloud. Sample point cloud sections and 2D images with their corresponding ground truths are shown in Figure 6 and 7 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.

Point cloud labeling.

We use our SPLATNet3D{}_{\text{3D}} architecture for the task of point cloud labeling on this dataset. We use 5 BCLs followed by a couple of 1×11\times 1 CONV layers. Input features to the network comprise of a 7-dimensional vector at each point representing RGB color, normal and height above the ground. For all the BCLs, we use XYZXYZ lattice space (L3DL_{\text{3D}}) with Λ0=64I3\Lambda_{0}=64I_{3}. Experimental results with average IoU and runtime are shown in Table 1(b). Results show that, with only 3D data, our method achieves an IoU of 65.4 which is a considerable improvement (6.2 IoU ↑\uparrow) 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{}_{\text{2D-3D}} to leverage 2D information and obtain better 3D segmentations. Table 1(b) shows the experimental results when using both the 2D and 3D data as input. SPLATNet2D-3D{}_{\text{2D-3D}} obtains an average IoU of 69.8 outperforming the previous state-of-the-art by a large margin (6.9 IoU ↑\uparrow), thereby setting up a new state-of-the-art on this dataset. This is also a significant improvement from the IoU obtained with SPLATNet3D{}_{\text{3D}} demonstrating the benefit of leveraging 2D and 3D information in a joint framework. Runtimes in Table 1(b) also indicate that our SPLATNet approach is much faster compared to traditional Autocontext techniques. Sample visual results for 3D facade labeling are shown in Figure 6.

Multi-view image labeling.

As illustrated in Section 5, we extend 2D CNNs with SPLATNet2D-3D{}_{\text{2D-3D}} to obtain better multi-view image segmentation. Table 1(b) 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{}_{\text{2D-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 segmentation.

2 ShapeNet part segmentation

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 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.

D part segmentation.

We evaluate both SPLATNet3D{}_{\text{3D}} and SPLATNet2D-3D{}_{\text{2D-3D}} for this task. First, we discuss the architecture and results with SPLATNet3D{}_{\text{3D}} that uses only 3D point clouds as input. Since the category of the input object is assumed to be known, we train separate networks for each object category. SPLATNet3D{}_{\text{3D}} network architecture for this taks is also composed of 5 BCLs. Point locations XYZXYZ are used as input features as well as lattice features LL for all the BCLs and the lattice scale for the first BCL layer is Λ0=64I3\Lambda_{0}=64I_{3}. Experimental results are shown in Table 2. SPLATNet3D{}_{\text{3D}} obtains a class average mIoU of 82.0 and an instance average mIoU of 84.6, which is on-par with the best networks that only take point clouds as input (PointNet++ uses surface normals as additional inputs).

We also adopt our SPLATNet2D-3D{}_{\text{2D-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 ground. 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 XYZXYZ coordinates of 3D points into the rendering rasterization pipeline so that each pixel also acquires coordinate values from the surface point projected onto it. Results in Table 2 show that incorporating 2D information allows SPLATNet2D-3D{}_{\text{2D-3D}} to improve noticeably from SPLATNet3D{}_{\text{3D}} with 1.7 and 0.8 increase in class and instance average mIoU respectively. SPLATNet2D-3D{}_{\text{2D-3D}} obtains a class average IoU of 83.7 and an instance average IoU of 85.4, outperforming existing state-of-the-art approaches.

On one Nvidia GeForce GTX 1080 Ti, SPLATNet3D{}_{\text{3D}} runs at 9.49.4 shapes//sec, while SPLATNet2D-3D{}_{\text{2D-3D}} is slower at 0.40.4 shapes//sec due to a relatively large 2D network operating on 20 high-resolution (512×512512\times 512) views, which takes up more than 95%95\% of the computation time. In comparison, PointNet++ runs at 2.72.7 shapes//sec on the same hardwareWe use the public implementation released by the authors (https://github.com/charlesq34/pointnet2) with settings: model=‘pointnet2_part_seg_msg_one_hot’\text{model}=\text{`pointnet2\_part\_seg\_msg\_one\_hot'}, VOTE_NUM=12\text{VOTE\_NUM}=12, num_point=3000\text{num\_point}=3000 (in consistence with our experiments)..

Six-dimensional filtering.

We experiment with a variant of SPLATNet3D{}_{\text{3D}} where an additional BCL with 6-dimensional position and normal lattice features (XYZnxnynzXYZn_{x}n_{y}n_{z}) is added between the last two 1×11\times 1 CONV layers. This modification gave only a marginal improvement of 0.20.2 IoU over standard SPLATNet3D{}_{\text{3D}} in terms of both class and instance average mIoU scores.

Conclusion

In this work, we propose the 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 an easy mapping of 2D information into 3D and vice-versa, resulting in a novel network architecture for joint processing of point clouds and multi-view images. Experiments on two different benchmark datasets show that the proposed networks compare favorably against state-of-the-art approaches for segmentation tasks. In the future, we would like to explore the use of additional input features (e.g., texture) and also the use of other high-dimensional lattice spaces in our networks.

Maji acknowledges support from NSF (Grant No. 1617917). Kalogerakis acknowledges support from NSF (Grant No. 1422441 and 1617333). Yang acknowledges support from NSF (Grant No. 1149783). We acknowledge the MassTech Collaborative grant for funding the UMass GPU cluster.

References

Appendix A Point Cloud Density Normalization

BCL has a normalization scheme to deal with uneven point density, or more specifically, the fact that some lattice vertices are supported by more data points than others. Input signals are filtered directly with the learnable filter kernels, and are also filtered in a separate second round with their values replaced by 11s with a Gaussian kernel. The filter responses in the second round are then used for normalizing responses from the first round. This is similar to using homogeneous coordinates, which are widely adopted in bilateral filtering implementations such as .

Appendix B RueMonge2014 Facade Segmentation

We use 5 BCLs (T=5T=5) followed by 2 1×11\times 1 CONV layers in SPLATNet3D{}_{\text{3D}} for the facade segmentation task. We omit the initial 1×11\times 1 CONV layer since we find it has no effect on the overall performance. The number of output channels in each layer are: 64-128-B128-B128-B64-C64-C7 . Note that although written as a linear structure, the network has skip connections from all BCLs (layers start with ‘CL: (32I3,16I3,8I3,4I3,2I3)(32I_{3},16I_{3},8I_{3},4I_{3},2I_{3}). The unit of raw input features XYZXYZ is meter, with YY (aligned with gravity axis) having a range of 7.17.1 meters. For all the BCLs, we use filters operating on one-ring neighborhoods on the lattice.

Network architecture of SPLATNet2D-3D2D-3D{}_{\text{2D-3D}}.

We use SPLATNet3D{}_{\text{3D}} as described above as the 3D component of our 2D-3D joint model. The ‘2D-3D Fusion’ component has 2 1×11\times 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×33\times 3 filters and 32 output channels, and the second one has 1×11\times 1 filters and 7 output channels. We use Λa=64\Lambda_{a}=64 and Λb=1000\Lambda_{b}=1000 for 2D↔\leftrightarrow3D projections with BCLs. Note that the dataset provides one-to-many mappings from 3D points to pixels. By using a very large scale (i.e., Λb=1000\Lambda_{b}=1000), 3D unaries are directly mapped to the corresponding 2D pixel locations without any interpolation.

Training.

We randomly sample facade segments of 60k points and use a batch size of 4 when training SPLATNet3D{}_{\text{3D}}. 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.00010.0001 is used for training both SPLATNet3D{}_{\text{3D}} and SPLATNet2D-3D{}_{\text{2D-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.

Appendix C ShapeNet Part Segmentation

We use a 1×11\times 1 CONV layer in the beginning, followed by 5 BCLs (T=5T=5), and then 2 1×11\times 1 CONV layers in SPLATNet3D{}_{\text{3D}} 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\Lambda_{0}=64I_{3} for scaling lattice features XYZXYZ, and divide the scale in half after each BCL: (64I3,32I3,16I3,8I3,4I3)(64I_{3},32I_{3},16I_{3},8I_{3},4I_{3}).

Network architecture of SPLATNet2D-3D2D-3D{}_{\text{2D-3D}}.

We use SPLATNet3D{}_{\text{3D}} as described above as the 3D component of the joint model. The ‘2D-3D Fusion’ component has 2 1×11\times 1 CONV layers: 128-x . The same DeepLab architecture is used for CNN1. We use Λa=32\Lambda_{a}=32 in BCL2D→3D{}_{\text{2D}\rightarrow\text{3D}}. Since 2D prediction is not needed, CNN2 and BCL3D→2D{}_{\text{3D}\rightarrow\text{2D}} are omitted.

Training.

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.00010.0001 is used. We augment point cloud data with random rotations, translations, and scalings during training.

We train our networks until validation loss plateaus. Training SPLATNet3D{}_{\text{3D}} and SPLATNet2D-3D{}_{\text{2D-3D}} take about 2.52.5 and 33 days respectively. With default settings, training PointNet++ takes 3.53.5 days on the same hardware.

Dataset labeling issues.

We observed a few types of labeling issues in the ShapeNet Part dataset:

Some object part categories are frequently labeled incorrectly. E.g., skateboard axles are often mistakenly labeled as ‘deck’ or ‘wheel’ (Figure 9(a)).

Some object parts, e.g. ‘fin’ of some rockets, have incomplete range or coverage (Figure 9(b)).

Some object part categories are labeled inconsistently between shapes. E.g., airplane landing gears are seen labeled as ‘body’, ‘engine’, or ‘wings’ (Figure 9(c)).

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. E.g., in the case of earphones, anything that is not ‘headband’ or ‘earphone’ are given the same label (‘other’) (Figure 9(d)).

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.