## 2 Methods
### Architecture and Implementation of the PointNet++ Model
#### 2.2.2 PointNet++ Model Implementation  
PointNet [20] learns the corresponding spatial encoding for each point in the input point cloud and then uses the features of all points to obtain a global point cloud feature. In this process, the extraction and processing of local features are missing. For example, the features of adjacent points in the point cloud space are similar, which is the same as the pixel values of the same object in the bitmap being similar. The density of the point cloud in the real scene is often different, and PointNet is trained based on a uniformly sampled point cloud, which makes the accuracy of the point cloud drop. Since PointNet cannot solve the local frame problem caused by spatial metrics, it limits the network's ability to recognize fine scenes and generalize complex scenes. Thus, PointNet++ [21] was proposed to solve two problems. The first is how to locally divide the point cloud; the second is how to extract local features from the point cloud. PointNet++ is an advanced version of PointNet, which systematically supplements and improves the PointNet model. The model implementation mainly consists of the following important modules:  
1. Layer module: The feature extraction of point sets consists of three parts, namely, the sampling layer, grouping layer, and PointNet layer. Figure 1: (**a**) Multi-scale grouping (MSG) and (**b**) multi-resolution grouping (MRG) [21]. (a) Sampling layer:  
The sampling layer defines the center of the local region by selecting a series of points in the input point cloud. The sampling algorithm uses the iterative furthest point sampling (FPS) method. (b) Grouping layer:  
The goal is to construct local regions and extract features, and the idea is to utilize neighboring points. This article uses the neighborhood ball instead of KNN because it can guarantee a fixed area scale, and the main indicator is still the distance. * Robust feature learning when the point cloud density is uneven:  
Here, the problem of the uneven density of spatial point clouds in feature learning is solved, and two grouping methods are proposed. That is, local patterns of different sizes are extracted and combined according to the density of local points, which are called density adaptive layers. * Multi-scale grouping:  
This is a simple and effective method that directly combines point cloud features of different densities (extracted using PointNet++) and obtains point clouds of different densities by performing dropout on the input point cloud with different probabilities, but the problem is that it requires many calculations. * Multi-resolution grouping:  
This is divided into two parts: one part is the feature extracted directly from the original point using PointNet++, and the other part is the feature set obtained by abstracting the set on the sub-region. The first part is equivalent to the global area, and the second part is equivalent to the local area. The density of the local area can be controlled using two parts. When the density of the local area is relatively small, the local features are not as reliable as the global features, so the global weight can be increased, and vice versa, and weights can be understood from density changes. (c) PointNet++ layer:  
Regarding the issue of how to extract local features from the point cloud, the original PointNet can be used to extract the features of the point cloud very well. Therefore, in PointNet++, the original PointNet network is used as a sub-network of the PointNet++ network. In addition, the PointNet++ layer also includes common MLP, Conv_Layer, Pooling_layer, and other categories. (2) Network module:  
(a) Feature section: Feature extraction uses sample, grouping, and PointNet++ in the above-mentioned layers. (b) Segmentation part: The input in the network is continuously sampled, and the label in the segmentation is targeted at the original point, which is equivalent to an upsampling action. The authors concatenate the features in the set abstraction before using the interpolation method.