# 3-D Point Cloud Registration Using Convolutional Neural Networks
## 4 The Proposed Descriptors for 3-D Point Clouds
### 8-Corner-Based Closest Points Descriptor  
In comparison with the SSPD descriptor for the rough registration, features employed for training a CNN model to precisely estimate the spatial orientation of a given 3-D point cloud should be able to thoroughly describe the characteristics of this point set in details. Thereby, 8-Corner-Based Closest Points (8 CBCP) descriptor is proposed in this paper for the purpose of extracting oriented characteristics of a 3-D point cloud in 3-D space. As shown in the name of this descriptor, the main point is to find \(d\) closest points according to each corner of the Axis-Aligned Bounding Box (AABB) [41] of a data point cloud. Based on considering each corner of AABB as a viewpoint when observing the point cloud, the 8 CBCP descriptor possesses the robustness in describing oriented features of this point cloud and a simple format because only key points can be collected. In addition, by numbering corners and arranging closest points with a suitably predetermined order, the problem without a specific order of a general point cloud can be effectively addressed. Moreover, to tackle the problem about the disparity in the point distribution among point clouds, the coordinate values of these closest pointsare normalized with the total number of points of the corresponding point cloud. Hence, the result of 8 CBCP is a 2-D matrix with the size of \(8d\times 3\) because \(8d\) corresponding closest points can be obtained based on 8 corners. In this research, \(d\) is selected based on a trade-off between the total number of points of a point cloud at approximately 1000 points after downsampling and the necessary number of points according to each corner for the purpose of describing orientation features of a point set. Thus, by testing in experiments, \(d\) is chosen at 40 points. Although this paper focuses on whole point cloud registration, 8 CBCP can be a potential descriptor when resolving partial point cloud registration problem due to multiple different observations applied for one object. Algorithm 3 shows computation procedures in details to generate 8 CBCP features of a given 3-D point cloud. ```
Input: Data point cloud \(\mathbf{Q}\);  1: Compute \(AABB\) and use these parameters to make a cube that bounds of the data point cloud;  \(w=\max\left\{x_{q_{i}}|i=1,2,...,m\right\}-\min\left\{x_{q_{i}}|i=1,2,...,m \right\}\) ;  \(d=\max\left\{y_{q_{i}}|i=1,2,...,m\right\}-\min\left\{y_{q_{i}}|i=1,2,...,m \right\}\) ;  \(h=\max\left\{z_{q_{i}}|i=1,2,...,m\right\}-\min\left\{z_{q_{i}}|i=1,2,...,m \right\}\) ;  2: Shift all points to the first quadrant;  \(x_{q_{i}}=x_{q_{i}}-\min\left\{x_{q_{i}}|i=1,2,...,m\right\}\);\(y_{q_{i}}=y_{q_{i}}-\min\left\{y_{q_{i}}|i=1,2,...,m\right\}\);  \(z_{q_{i}}=z_{q_{i}}-\min\left\{z_{q_{i}}|i=1,2,...,m\right\}\);  3: Divide the cube into 8 sub-cubes numbered from 1 to 8 and bin points into the according sub-cube as shown in Figure 5;  4: Based on 8 corner points, red points, of the cube, scan \(d\) closest points in the corresponding sub-cube of each corner as illustrated in Figure 6;  5: According to the closest points in terms of each corner in the corresponding sub-cube, consider each corner as a local origin \(O_{k}\left(k=1,2,...,8\right)\) and transfer coordinate values of these closest points with respect to the corresponding local frame (Figure 7), followed by a normalization by the total number of points \(m\) of the data point cloud;  \(\left[ \begin{array}{c}\{k\}\alpha_{i}\\ \{k\}\beta_{i}\\ \{k\}\gamma_{i}\end{array} \right]=\frac{1}{m}\left|\left[ \begin{array}{c}x _{q_{i}}\\ y_{q_{i}}\\ z_{q_{i}}\end{array} \right]-\left[ \begin{array}{c}x_{O_{k}}\\ y_{O_{k}}\\ z_{O_{k}}\end{array} \right]\right|\);  where \(\{k\}\alpha_{i}\), \(\{k\}\beta_{i}\), \(\{k\}\gamma_{i}\) stand for three coordinates according to three axes of point \(q_{i}\) with respect to the local frame \(\{k\}\);  6: Compute 8 CBCP, a 2-D matrix with the size of \(8d\times 3\);  8 CBCP = \(\left[