## 3 Improved Motion Model Based on PE-Match
### Specific Steps for PE-Match  
The previous sections have elaborated on the epipolar constraint principle and the improved mutation strategy. The specific steps of the feature matching method based on improved particle swarm and epipolar constraint (PE-match) are as follows:  
Step 1: Obtain a set of coarse matching point pairs through the traditional ORB algorithm. Figure 6: Improved mutation strategy for particle perturbation. Step 2: Initialize the particle population. Firstly, set the population number; after that, each particle reads randomly from the coarse matching without repeating eight pairs of matching point pairs of pixel coordinates and set the particle velocity to zero. Step 3: Design a fitness function based on the characteristics of correct matches having the same constraint properties in a photovoltaic station scene, while incorrect matches do not possess the same constraint properties and calculate the fitness of each particle. The number of matching point pairs satisfying the epipolar constraints is used as the fundamental for evaluating the quality of the fundamental matrix for the particle's fitness assessment. The specific calculation steps are as follows:  
1. The fundamental matrix \(\boldsymbol{F}\) is calculated from the coordinates of the eight pairs of pixels in the particle. 2. The epipolar line is calculated from the fundamental matrix \(\boldsymbol{F}\) and the pixel coordinates of the first point in the coarse matched point pair, and the distance \(d\) from this epipolar line is calculated using the second point in the matched point pair as in Equation (8). If the distance is less than a certain threshold, the matched pair is considered a correct match. \[d=\left|\frac{ax+by+c}{\sqrt{a^{2}+b^{2}}}\right|\] (8)
3. Using the set of \(\boldsymbol{F}\) and coarse matching point pairs, we complete step (b) with \(j\) random pairs and count the number of correct matches as the fitness value. Since the fitness calculation takes up a lot of time in the particle swarm algorithm, setting the number of coarse matching point pairs participating in fitness calculation as \(j\) ensures that the algorithm does not increase in time consumption as the number of coarse matching point pairs increases. Usually, \(j\) is set to 50 or 100. Step 4: Record and update \(Gbest_{t}\) and \(Pbest_{i}\). \(Gbest_{t}\) stores the position of the particle with the highest fitness found by the entire population, while \(Pbest_{i}\) stores the position of the particle with the highest fitness found by the individual particle itself. Step 5: Update the velocity and position of the particles. The particle swarm optimization algorithm during the optimization process, the velocity and position of the particles are updated by the search experience of the whole swarm and the search experience of the individual particles as shown in Figure 7.  
The velocity and position update rules are as shown in Equation (9). \[\left\{ \begin{aligned} & V_{i}(t+1)=\omega V_{i}(t)+c_{1}r_{4}(Pbest_{i}-X_{i}(t)) \\ &\qquad\qquad+c_{2}r_{5}(Gbest_{t}-X_{i}(t))\\ & X_{i}(t+1)=X_{i}(t)+V_{i}(t)\end{aligned} \right. \tag{9}\]  
Figure 7: Particle update schematic. In the formula, \(V_{i}(t)\) and \(X_{i}(t)\) are the velocity and position of the \(ith\) particle at iteration \(t\); \(r_{4}\) and \(r_{5}\) are two stochastic parameters uniformly distributed in [0, 1]; \(c_{1}\) and \(c_{2}\) are the learning weights for the individual particle extremes and the particle population extremes; and \(\omega\) is the inertia weight. Step 6: Perturb \(Pbest_{i}\). In this paper, \(Pbest_{i}\) is perturbed using improved mutation and crossover operations to prevent the algorithm from getting stuck in local optima. The mutation operation is represented by Formula (17). \[\left\{ \begin{aligned} & h_{i}=Pbest_{i}+\frac{Dimension}{1+\exp^{( \frac{1}{10.5D})}}-\frac{Dimension}{2}\\ & D=\frac{\sum\frac{Pbest_{i2}-Pbest_{i3}}{\max(Pbest_{i2}-Pbest_{ i4})}}{n}\end{aligned} \right.