## 2 Methods
### Architecture and Implementation of the PointNet++ Model  
#### 2.2.1 PointNet++ Model Architecture  
PointNet [20] is a neural network developed by [PERSON], [PERSON], [PERSON], [PERSON], and others at Stanford University. It mainly uses the deep learning of point sets in three-dimensional classification and segmentation. But PointNet cannot obtain local features, so it is difficult to use when analyzing complex scenes. PointNet++ [21] is also a neural network developed by [PERSON], [PERSON], [PERSON], [PERSON], and others at Stanford University, which is used to measure the deep-level feature learning of point sets in space. PointNet++ applies PointNet in a local region to generate a point set and then continues to apply PointNet to obtain a point set, non-stop recursively. As a result, multi-level features can be understood, and because PointNet is applied internally, it inherits transformation invariance and rearrangement invariance. PointNet++ is an extension of PointNet, which is mainly improved and enhanced in the following two aspects. First, using metric space distances, PointNet is used to iteratively extract features from the local range of the point cloud so that it can learn the local features. The scale is growing. Second, because point clouds are often uneven, PointNet++ proposes an adaptive density feature extraction method (Figure 1), namely, multi-scale grouping (MSG) and multi-resolution grouping (MRG), for the input. When the sampling density is changed, \begin{table}
\begin{tabular}{c c c} \hline \hline
**Software Name** & **Version Number** & **Download Information** \\ \hline CUDA & 11.03\_win10 & [[https://developer.nvidia.com/cuda-11.0-update1](https://developer.nvidia.com/cuda-11.0-update1)]([https://developer.nvidia.com/cuda-11.0-update1](https://developer.nvidia.com/cuda-11.0-update1)) -download-archive (accessed on 6 June 2021) \\ cudnn & 8.0.3 & [[https://developer.nvidia.com/rdp/cudnn-archive](https://developer.nvidia.com/rdp/cudnn-archive)]([https://developer.nvidia.com/rdp/cudnn-archive](https://developer.nvidia.com/rdp/cudnn-archive)) (accessed on 6 June 2021) \\ Python & 3.7.9 & [[https://www.python.org/downloads/release/python-379/](https://www.python.org/downloads/release/python-379/)]([https://www.python.org/downloads/release/python-379/](https://www.python.org/downloads/release/python-379/)) (accessed on 7 June 2021) \\ Numpy & 1.19.0 & [[https://numpy.org/](https://numpy.org/)]([https://numpy.org/](https://numpy.org/)) (accessed on 12 June 2021) \\ Pytorch & 1.6.0 & [[https://Pytorch.org/get-started/locally/](https://Pytorch.org/get-started/locally/)]([https://Pytorch.org/get-started/locally/](https://Pytorch.org/get-started/locally/)) (accessed on 16 June 2021) \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Mainly used software with corresponding download addresses. it learns to combine features from regions at different scales. In this way, the prediction inaccuracy caused by the uneven point cloud is solved. This not only extracts features more efficiently but also improves robustness to a certain extent. An important contribution of PointNet++ is that PointNet++ makes use of multi-scale neighborhoods for robustness and detail capture. The network learns adaptively weighted features detected using different scales with the help of random input loss during training and combines multi-scale features based on input data. Experiments show that PointNet++ is able to process point sets efficiently and robustly. In particular, significantly better results than the state-of-the-art (SOTA) were obtained during a challenging 3D point cloud benchmark test [21]. As shown in Figure 1, the abstraction layer in each collection includes three parts, the sampling layer, grouping layer, and PointNet++ layer. The input for each extraction layer is (N, (d + C)), where N is the number of input points, d is the coordinate dimension, and C is the feature dimension.