# Point Cloud Registration Algorithm Based on Adaptive Neighborhood Eigenvalue Loading Ratio
## 2 Methods
### Point Cloud Registration Algorithm Based on Feature Point Similarity Formula  
The source and target point clouds are preprocessed with feature extraction to obtain the contour feature point sets \(P_{gi}\) and \(Q_{gi}\), respectively. The point set \(P_{gi}\) and the point set \(Q_{gi}\) contain the index of the point number in the original point cloud where the feature point is located, as well as the three eigenvalues of the covariance matrix of that point, with other points in the spherical domain. Now, consider point \(P_{gm}\) in the point set \(P_{gi}\) and point \(Q_{gn}\) in the point set \(Q_{gi}\), two different sets of eigenvalue triplets, i.e., (\(\lambda_{1i}\), \(\lambda_{2i}\), and \(\lambda_{3i}\)) and (\(\lambda_{1j}\), \(\lambda_{2j}\), and \(\lambda_{3j}\)) can be obtained. Firstly, the eigenvalues are normalized, and the corresponding contour eigenvalue loading ratios \(\lambda_{1i}/\lambda_{2i}/\lambda_{3i}\) and \(\lambda_{1j}/\lambda_{2j}/\lambda_{3j}\) are determined to assess the similarity between the two sets of feature points. The proposed contour eigenvalue loading ratio similarity calculation formula in this study is as shown in Formula (9):  
\[\alpha=1-\left|e^{\frac{\lambda_{1i}\lambda_{2i}}{\lambda_{1i}/\lambda_{2j}}- \frac{\lambda_{2i}^{2}}{\lambda_{2j}^{2}}}-1\right| \tag{9}\]  
where \(\lambda_{1i}/\lambda_{2i}/\lambda_{3i}\) and \(\lambda_{1j}/\lambda_{2j}/\lambda_{3j}\) are two sets of eigenvalues, and the feature similarity formula is derived based on the calculation of the (A/B) fraction similarity, which extends to the calculation of the (A/B/C) fraction similarity using cross-multiplication and subtraction, and \(\alpha\) represents the degree of similarity. The value of \(\alpha\) is 1 in the case of an ideal pairing. Since the feature point sets derived from screening the two-part point cloud often vary in the number of points they contain, it is necessary to use the smaller point set as the base for performing the computation of Formula (9) and then use the other point set. Based on a one-to-many comparison, the matching pair corresponding to the highest value among all \(\alpha\)-values is considered as the best match. Consequently, this process establishes a preliminary matching group, denoted as \(G_{P}\). In the preliminary matching group \(G_{P}\), a feature point from the source point cloud, \(P_{gm}\), may correspond to multiple matches in the target point cloud, \(Q_{gn}\). Therefore, constraints need to be applied to remove duplicate and incorrectly matched pairs before performing the coarse registration in the following four steps:  
1. One-to-many matching pairs are identified and removed from the previously obtained match group \(G_{P}\) based on the existing matching index pairs. A pairing is considered  
Figure 3: Comparison of feature point extraction: primordial point cloud, hybrid point cloud, feature point cloud. unique and added to the result only if neither of the two elements of the pairing has appeared previously. 2. The direction vectors is calculated for each matching pair within the matching group \(G_{P}\). This process involves the computation of vectors from the source to the target point cloud, as well as generating a direction vector for each matching pair and unitizing it. 3. A KD-tree is constructed to identify representative vectors, such as the mean or median of these direction vectors, that is, the principal directions common to most matching pairs. 4. An angle threshold \(\theta\) is defined, the direction vectors of each matching pair are iterated over, and the angular difference between these vectors and the representative vectors identified in Step (3) is calculated. The angle is derived using the dot product calculation. If this angular difference is less than or equal to the threshold \(\theta\), the matching pair is deemed as valid and added to the preprocessed matching group \(G_{P}\); if not, it is removed from \(G_{P}\).