## 2 Bullet Low-Overlap Point Cloud Registration Based on Line Feature Detection
### Improved Cuckoo Algorithm to Find the Best Rotation Angle  
Point cloud registration methods usually find local descriptors that match in two global scans for the registration. In this paper, a good initial position is found by fitting the registration axis, and the parameter space is simplified to reduce the computational complexity. After fitting the central axis of registration, it is sufficient to consider only the rotation of the central axis [29]. In order to determine the rotation relationship between the two point clouds, the Improved Cuckoo Search (ICS) algorithm [30] was adopted in this paper to find the optimal rotation angle in the parameter space to achieve the purpose of fine registration (see Algorithm 2). The Cuckoo Search Algorithm is a heuristic optimization algorithm that mimics the parasitic breeding behavior of cuckoo birds. The core of improving the Cuckoo Search Algorithm is to increase the diversity of the population by exchanging information about different members within the group. The periodic and oscillation characteristics of sine and cosine functions are used to optimize the convergence to the global optimal solution, which mainly includes the following aspects:  
1. Parasitic breeding: Cuckoos place their eggs in the nests of other birds. In the algorithm, this is simulated as finding new solutions in the solution space. The basic principle of this mechanism is to increase the diversity of the population by exchanging information about different members within the population, and to use the periodic and oscillatory properties of the sine and cosine functions to optimize the convergence to the global optimal solution. First, 3 individuals are randomly selected from the entire nest x and then passed as follows: \[b=2-2\times\frac{t}{maxiter}\] (9) \[x_{i}^{t}=x_{q_{3}}^{t}+b\cdot sin(2\pi r)\cdot a_{0}\cdot Lvy\cdot(best-x_{q_ {1}}^{t}),r<0.5,\] (10) \[x_{i}^{t+1}=x_{q_{1}}^{t}+b\cdot cos(2\pi r)\cdot(best-a_{0}\cdot Lvy\cdot x _{q_{2}}^{t}),r\geq 0.5,\] (11)  
Figure 4: Extraction of bullet marks by the discrete Hough transform: (**a**) linear feature information of bullet marks based on icosahedral fitting (**b**) raw input data of bullet marks. Three of them are x(q\({}_{1}\)), x(q\({}_{2}\)), and x(q\({}_{3}\)), where n is the number of population sizes, usually a constant value of 0.01, and Levy is [PERSON]'s flight, the current optimal nest location; maxiter is the maximum number of iterations, and r \(\in\{0,1\}\) is a random number. 2. Egg discovery and discarding: If other birds find foreign eggs, they discard the nest with the probability of pa \(\in[0,1]\), and then rebuild the nest in the following way: \[\mathrm{x}_{i}^{t+1}=\mathrm{x}_{i}^{t}+\mathrm{r}_{1}(\mathrm{x}_{g}^{t}- \mathrm{x}_{k}^{t})+\mathrm{r}_{2}(\mathrm{best}-\mathrm{x}_{i}^{t}),\] (12) where x\({}_{i}^{t}\) and x\({}_{g}^{t}\) are two random locations of the nth generation population. 3. Levy flight: Cuckoo's movement follows Levy flight, a random walk with a small step aggregation and an occasional long leap. Although this method is conducive to jumping out of a local optimal, the accuracy of the search is entirely determined by the small step aggregation [30]. To solve this problem, the improved algorithm uses the random iteration number change formula, so that the search range is wide in the initial iteration, and narrow in the later iteration, and then searches around the optimal value.