# 3-D Point Cloud Registration Using Convolutional Neural Networks
## 5 The Proposed CNN Architectures
### 2-D CNN Architecture for Precise Registration  
With the explanations in the previous section, because the 8 CBCP descriptor collects \(d\) closest points according to each corner of AABB to generate one sample, there are totally 8 closest point groups that play an equal role in describing the orientation of a 3-D point cloud. Inspired by this idea, the proposed architecture of the 2-D CNN model employs 8 sub-models in parallel in order to independently estimate Euler angles, followed by an average computation of these estimated Euler angles. As shown in Figure 9, as regards the first sub-model, the first part with the size of \(d\times 3\) of 8 CBCP extracted from an input point cloud is convoluted with each of 8 kernels with the size of \(5\times 1\) that results in 8 feature maps in the layer C1. Then, the quantity of feature maps is continuously grown in the sequential layers by applying 2-D convolutional operations with a kernel size of \(5\times 1\) similar to the previous layer C1. As a result, the layer C2 and C3 have 16 feature maps and 32 feature maps, respectively. Similar to 3-D CNN architecture used in the rough registration, zero padding is applied in convolutional operations so as to make no modification about the size of the output of feature maps compared with the original input. Additionally, before being connected to the next layers, the output of the convolutional operation is added by a bias and then delivered to the activation function \(tanh(.)\) to create the output of feature maps. Next, the output of feature maps in the layer C3 is passed through the 2-D max-pooling layer S1 with a window size of \(2\times 1\) that leads to a reduced spatial dimension, which is two times smaller but the same number of feature maps. Then, the output of the max-pooling layer S1 is flattened as a feature vector and elements in this vector is fully connected to each of 1024 neurons in the layer H1. In the same way, the output of the layer H1 is fully connected to 512 neurons in the layer H2 and the outputs of the layer H2 are fully connected to the layer H3 with 256 neurons. Eventually, neurons in the layer H3 are connected to 3 neurons in the output layer \(Output1\) which figures out a more precise estimation of Euler angles \(\psi_{1},\theta_{1},\phi_{1}\) in comparison with the estimation in the rough registration stage. Besides, the activation function applied for neurons in fully connected layers is \(tanh(.)\) function. Similar to the first sub-model, 7 sub-models left from the second sub-model to the eighth sub-model possess the same 2-D CNN architecture with the output from \(\psi_{2},\theta_{2},\phi_{2}\) to \(\psi_{8},\theta_{8},\phi_{8}\), respectively. After all estimations of 8 sub-models, an average computation of these Euler angles is required to obtain the mean estimation of the orientation of a data point cloud as the output of the whole 2-D CNN model as follows.  
\[\left[\begin{array}{ccc}\psi&\theta&\phi\end{array}\right]^{T}=\frac{1}{8} \left[\begin{array}{ccc}\sum_{k=1}^{8}\psi_{k}&\sum_{k=1}^{8}\theta_{k}& \sum_{k=1}^{8}\phi_{k}\end{array}\right]^{T} \tag{7}\]