# 3-D Point Cloud Registration Using Convolutional Neural Networks
## 3 Problem Formulation  
Given the model point cloud \(\mathbf{P}\) and a data point cloud \(\mathbf{Q}\), point cloud registration is to estimate the transformation including the rotation matrix \(\mathbf{R}\) and the translation vector \(\mathbf{t}\) between these two point clouds. \[\mathbf{P}=\{\mathbf{p}_{1},\mathbf{p}_{2},\ldots,\mathbf{p}_{n}\}, \tag{1}\] \[\mathbf{Q}=\{\mathbf{q}_{1},\mathbf{q}_{2},\ldots,\mathbf{q}_{m}\}\]  
where \(\mathbf{p}_{i}\) and \(\mathbf{q}_{j}\) stand for the \(i^{th}\) point and \(j^{th}\) point in the model and data point cloud, respectively. To fulfill this task, ICP-based approaches minimize an objective function, the mean squared error, based on corresponding closest point pairs \((\mathbf{p}_{i},\mathbf{q}_{j})\) in two point clouds as follows. \[\xi(\mathbf{R},\mathbf{t})=\frac{1}{m}\sum_{j=1}^{m}||\mathbf{p}_{i}-\mathbf{R}\mathbf{q}_{j}-\mathbf{ t}||^{2} \tag{2}\]  
where \(m\) is the number of points in the data point cloud. Because the ICP algorithm can only successfully match if the uncertainty between two point clouds is small enough, an initial registration stage is necessary to address a large uncertainty problem based on the well-known RANSAC approach. Thus, inspired by this two-stage registration process, we propose a deep CNN framework with two consecutive CNN models including the first model for the rough registration and the second model for the precise registration. In the proposed architecture, only rotation angles are estimated instead of estimating both rotation and translation because the translation can be computed by subtracting coordinate values of two corresponding center points of two point clouds. In addition, because of arbitrary translations between two point clouds in 3-D space, it is not reasonable to use the translation vector as ground truth for the purpose of training. Moreover, the limitation of rotations is confined in the range from \(-180^{\circ}\) to \(+180^{\circ}\) that make rotation angles potential ground truths for the convergence of the learning process. Figure 1 shows a block diagram of the proposed architecture for 3-D point cloud registration. Hence, point clouds of an object with different rotation angles in the \(xyz\) coordinate system and these corresponding rotation angles are collected with the aim of creating a data set. As regards the CNN architecture, the first CNN model in the rough registration stage is to cover an arbitrary initial rotation in a full range of uncertainty from \(-180^{\circ}\) to \(180^{\circ}\) whilst the second CNN model is used in order to refine the rotation estimation in covering a smaller range with a higher angular resolution in the precise registration stage. In particular, in this precise registration stage, a trade-off about selecting the range of the uncertainty of the data set should be satisfied in a such way that this uncertainty is small enough to make the CNN model learn deep characteristics and large enough to cover errors existing after the rough registration stage. In this research, the range of this uncertainty is selected from \(-15^{\circ}\) to \(15^{\circ}\) based on experiments. Ideally, only one CNN model can be considered to handle the registration problem if the number of samples for training is large enough to cover the full range of uncertainty with a high resolution of rotation angles. Nonetheless, it is impossible to realize this idea as a huge data set is required in this case that leads to a difficulty in the convergence of solutions and the time-consuming problem during the training process due to using too much training data. Thus, the precision of the rotation estimation is reasonably guaranteed by using this two-stage CNN model. To demonstrate this estimation process, a simple representation of the model and data point cloud in a plane is visualized in Figure 2. Initially, the arbitrarily angular disparity \(\alpha\) is witnessed between _model_ and _data_ which is covered in the full range of uncertainty from \(-180^{\circ}\) to \(180^{\circ}\).