# An Optical Remote Sensing Image Matching Method Based on the Simple and Stable Feature Database
## 2 Materials and Methods
### The Building Method of Simple Stable Feature Database
#### 2.2.2 Iterative Matching Strategy for Feature Database Methods
\(M_{i}=CM_{i}=UM_{i}=CUM_{i}=0\), \(i=0,1,2,\ldots,n_{0}\);
2 for\(k=1,2,\ldots,N\)do
3 get \(F_{k}=\{f_{1}^{k},f_{2}^{k},\ldots,f_{n_{t}}^{k}\}\) from the feature database;
4 extract \(T_{k}=\{t_{1}^{k},t_{2}^{k},\ldots,t_{n_{t}}^{k}\}\) from \(S_{k}\);
5 match \(F_{k}\) with \(T_{k}\);
6 for\(j\) in \(F_{k}\)do
7 if\(j\) is matchedthen
8\(M_{j}=M_{j}+1\); \(CM_{j}=CM_{j}+1\); \(UM_{j}=UM_{j}\); \(CUM_{j}=0\);
9
10 else
11 ifthe feature class \(f\) containing \(j\) is matchedthen
12\(M_{j}=M_{j}+1\); \(CM_{j}=CM_{j}+1\);
13\(UM_{j}=UM_{j}+1\); \(CUM_{j}=CUM_{j}+1\);
14
15 else
16\(M_{j}=M_{j}\); \(CM_{j}=0\); \(UM_{j}=UM_{j}+1\); \(CUM_{j}=CUM_{j}+1\);
17
18
19 end if
20
21 end for
22
23 end for
24 for\(j\) in \(T_{k}\)do
25 if\(j\) is matchedthen
26\(M_{j}=M_{j}+1\); \(CM_{j}=CM_{j}+1\); \(UM_{j}=0\); \(CUM_{j}=0\);
27
28 added \(j\) to \(F_{k}\) and assign \(j\) the same \(Index\) as the matched feature class;
29 // \(M_{j}\) and \(CM_{j}\) are consistent with the matched feature.This will not be repeatedly added here;
30
31 else
32\(M_{j}=0\); \(CM_{j}=0\); \(UM_{j}=1\); \(CUM_{j}=1\);
33
34 added \(j\) to \(F_{k}\) and assign \(j\) a new \(Index\);
35
36 end for
37
38 end for
39 for\(j\) in \(F_{k}\)do
40 if\(\frac{UM_{j}}{M_{j}+UM_{j}}>\mathit{thr2}\) or \(CUM_{j}>\mathit{thr2}\)then
41 remove \(j\) from \(F_{k}\);
42
43 end if
44
45 end for
56
67 rewrite the updated \(F_{k}\) to the feature database;
7
8 end for
```

**Algorithm 1**Feature Database Construction

The feature class that has more matches during the training process indicates that the local features of the scene do not change much in that period. Then, for the images in this period, the probability of the successful matching of feature classes with a higher matching time is greater than that of the successful matching of feature classes with a lower matching time. Figure 2 shows the flow chart of the proposed iterative matching method. The specific iterative matching process is as follows:

1. Training image feature set extraction: The training image set \(\{S_{1},S_{2},\ldots,S_{N}\}\) is input in temporal order to match the feature database, where \(N\) is the number of training images in the training set. When the \(k\)th training image \(S_{k}\) is input, the training image is first pre-processed with adaptive histogram equalization, then the feature set \(F_{k}=\{f_{1}^{k},f_{2}^{k},\ldots,f_{n_{f}}^{k}\}\) is read from the feature database according to the latitude and longitude of the training image, and then the feature set \(T_{k}=\{t_{1}^{k},t_{2}^{k},\ldots,t_{n_{t}}^{k}\}\) is extracted from the training image \(S_{k}\) using the same feature extraction method as the extraction of the reference image features, where \(n_{f}\) is the number of feature classes in \(F_{k}\) and \(n_{t}\) is the number of feature classes in \(T_{k}\). B. Feature database feature set update: Feature matching is performed in the feature database set \(F_{k}=\{f_{1}^{k},f_{2}^{k},\ldots,f_{n_{f}}^{k}\}\) and the training image set \(T_{k}=\{t_{1}^{k},t_{2}^{k},\ldots,t_{n_{t}}^{k}\}\). We use the nearest-neighbor distance ratio (NNDR) [14] method based on descriptor distance to select the correspondence, and then the fast sample consensus (FSC) [33] technique is used to filter error matching [34]. Different distance matching methods are used for different feature algorithms, such as KAZE, SIFT, and SURF, which use Euclidean distance matching, and ORB, FREAK, and AKAZE, which use Hamming distance matching. In this paper, image blocks are matched with the feature database and then the number of matched feature points or feature classes exceeds 10 after FSC filtering is considered stable matching, and the matching results are regarded valid. The following step is a modification of \(F_{k}=\{f_{1}^{k},f_{2}^{k},\ldots,f_{n_{f}}^{k}\}\) based on the matching results of \(F_{k}=\{f_{1}^{k},f_{2}^{k},\ldots,f_{n_{f}}^{k}\}\) and \(T_{k}=\{t_{1}^{k},t_{2}^{k},\ldots,t_{n_{t}}^{k}\}\) on the basis of valid matching.