# Large-Scale Aircraft Pose Estimation System Based on Depth Cameras
## 2 Measurement Principles
### Registration  
Feature points are stable and differentiated point sets obtained by defining detection criteria. Since feature points are only a subset selected from the dataset, the number of key points is much smaller than that in the original point cloud. The key points are combined with feature descriptors to form feature point descriptors, which can form a compact representation of the original data, thus increasing the processing speed of subsequent algorithms. The ISS algorithm [22] must establish a local coordinate system in order to detect feature points. For any given point in the model point cloud, its neighborhood point set is taken, and the weight is calculated according to the distance between each nearest neighbor point and the given point:  
\[w_{ij}=\frac{1}{\big{|}\big{|}\rho_{i}-\rho_{j}\big{|}\big{|}}. \tag{9}\]  
The weighted covariance matrix is constructed according to the points to be detected and their nearest neighbors:  
\[Cov=\frac{\sum_{\left|\rho_{i}-\rho_{j}\right|<r}w_{ij}(\rho_{i}-\rho_{j}) \left(\rho_{i}-\rho_{j}\right)^{T}}{\sum_{\left|\rho_{i}-\rho_{j}\right|<r}w_{ ij}}. \tag{10}\]  
Figure 5: Depth camera calibration scenario. Figure 6: Calibration plate point clouds captured by different cameras. By eigenvalue decomposition, three eigenvalues of the covariance matrix are obtained, and the eigenvalues are arranged from large to small, as follows: \(\lambda_{1}>\lambda_{2}>\lambda_{3}\). Parameters \(Th_{12}\) and \(Th_{23}\) are set, and points satisfying the following formula are taken as candidate feature points:  
\[\frac{\lambda_{1}}{\lambda_{2}}<Th_{12}, \tag{11}\]  
\[\frac{\lambda_{2}}{\lambda_{3}}<Th_{23}. \tag{12}\]  
Subsequently, a candidate key point is randomly selected for \(k\)-nearest-neighbor search, \(k\) other-candidate key points in the neighborhood are obtained, and point group \(Q\) is obtained. The eigenvalue \(\lambda_{3}\) of all points in \(Q\) is compared, and the point corresponding to the largest \(\lambda_{3}\) is the final key point in \(Q\). This operation is repeated for the remaining candidate key points to complete ISS key point extraction. This key point extraction method, which uses the relationship between eigenvalues to describe the feature degree of the point, can greatly reduce the size of the point cloud and improve the computing efficiency of a high-point cloud. As displayed in Figure 7, the red point cloud represents the model point cloud, while the blue point cloud represents the feature points extracted by ISS. High-quality feature descriptors can improve the accuracy of feature matching, reduce mismatches, and improve the subsequent point cloud registration results. The construction process of a feature histogram is generally divided into two parts: feature signature and histogram statistics. The feature signature is more descriptive, while the feature histogram is more robust. SHOT [23] combines the two. The feature point \(p\) of the point cloud is taken as the center of the circle, and a neighborhood with a radius of \(R\) is obtained. Thereafter, the covariance matrix \(M\) is calculated with the distance from the neighborhood point to point \(p\) as the weight:  
\[M=\frac{1}{\sum_{i:d_{i}\leq R}{(R-d_{i})}}\sum_{i:d_{i}\leq R}{(R-d_{i})( \rho_{i}-\rho)(\rho_{i}-\rho)^{T}}. \tag{13}\]  
Eigenvalue decomposition of \(M\) is performed to determine the \(XYZ\) axes of the local reference frame with the eigenvalues and eigenvectors obtained from the decomposition. Subsequently, the spherical neighborhood is divided into meshes along the radial direction, azimuth direction, and pitch direction, in which radial 2, azimuth 8, and pitch 2 are equally divided into 32 spatial meshes. Taking the cosine value of the angle between the normal neighborhood point and the \(Z\) axis in the grid as the metric, the cosine value is divided into \(b\) intervals, and the number of points falling into the interval is counted to obtain a local histogram of each grid.