## 4 Results
### Features Matching Results  
We compared the feature detection and matching using multiple methods. Table 3 shows the number of feature matches found with each method in descending order as well as the running time. We use MATLAB 2019b built-in functions for all the methods except SIFT, DeepMatching, and SuperGlue. For SIFT, we use the Machine Vision Toolbox from [54], and for DeepMatching and SuperGlue we use the original implementations [55; 56]. For these last two methods, we report the inference time on a CPU Intel Xeon ES-1630 at 3.7 GHz and on a GPU GTX1080. Although these two methods are slow on CPU due to the computationally expensive nature of deep neural networks, the parallel GPU implementation can achieve running times comparable to the other CPU-based methods.  
Figures 6 and 7 show the feature matches for the first six methods shown in Table 3. From these images, we can see that DeepMatching has a significantly broader coverage and density at the expense of higher computational cost. The second best feature detector in terms of the number of features was the Harris corner detector; however, we can see that the features cover only the trees' borders but not the entire image. KAZE and SuperGlue matches have more image coverage than Harris, but the features are sparse compared to DeepMatching.  
\begin{table}
\begin{tabular}{l c} \hline \hline  & **Error [Pixels]** \\ \hline Upper camera & 0.86 \\ Lower camera & 0.52 \\ \hline \hline \end{tabular}
\end{table}
Table 2: Calibration error on the catadioptric camera.  
\begin{table}
\begin{tabular}{l c c} \hline \hline
**Method** & **Number of Matches** & **Time (Msec)** \\  & & **CPU/GPU** \\ \hline DeepMatching (\(d=20\)) & 1114 & 3400/210 \\ Harris corner detector & 845 & 100 \\ KAZE & 463 & 125 \\ SuperGlue & 200 & 900/70 \\ SURF & 105 & 150 \\ SIFT & 76 & 350 \\ MIN-EIGEN & 62 & 120 \\ BRISK & 52 & 110 \\ FAST & 36 & 80 \\ \hline \hline \end{tabular}
\end{table}
Table 3: Number of matches and running times obtained with each method. For the Deep learning-based methods, we also report the running times obtained in a GTX 1080.  
Figure 6: Feature matching points on the upper and lower cameras and 3D reconstruction for each comparing method.  
As described in Section 3.3.1, we filtered the DeepMatching results using epipolar constraints by keeping the matches whose distance from the epipolar curve is less than a defined threshold \(d\). Figure 8 shows the number of DeepMatching features obtained with different filtering levels. The more we increase \(d\), the more matches we get, but also, the more error we are allowing in the reconstruction. Empirically, we found that a value of \(d\) between 20 and 30 pixels from the epipolar curve gives the best compromise between features and features' quantity and quality. The effects of \(d\) in the reconstruction are described in the next section.  
Figure 8: Amount of DeepMatching features obtained with different levels of filtering. The more we increase the distance threshold, the more matches we get, but also, the more error we are allowing in the reconstruction.  
Figure 7: DeepMatching features and reconstruction. (**a**,**b**) show the original DeepMatching on the upper and lower camera, respectively. (**c**) shows the 3D reconstruction using the original DeepMatching. (**d**,**e**) show the filtered DeepMatching using epipolar constraints with \(d=30\) on the upper and lower cameras. (**f**) shows the 3D reconstruction using filtered DeepMatching.