# A Survey of Visual SLAM Based on RGB-D Images Using Deep Learning and Comparative Study for VOE
## 3 Visual SLAM and Visual Odometry Using Deep Learning: Survey
### Deep Learning-Based Module for Visual SLAM and Visual Odometry
#### 3.1.3 Keypoint Detection and Feature Matching  
a. Methods for keypoint detection and feature matching  
Regarding the keypoint detection and feature matching categories, [PERSON] et al. [89] proposed a method to detect keypoints and feature matching by finding a description prediction model before performing matching. The points were well-located and repeatable, which also reduced the number of points of interest and the time needed to consider points for the matching process. [PERSON] et al. [90] proposed a method that allows detecting keypoints and feature matching based on a training method to identify potentially stable points on the training image by creating a regression set of points of a score map whose values are local maxima at these locations. [PERSON] et al. [91] proposed an end-to-end matching network based on improving LF-Net; the proposed method proposes a scale space structure with the corresponding map for keypoint detection. Second, the training patch is selected based on the general loss function and neighbor mask. Recently, [PERSON] et al. [92] tested SuperPoint and SuperGlue into the OpenVINS framework for keypoint detection and feature matching. The results showed that using SuperPoint and SuperGlue in the VO system was not optimal when experimenting on the EuRoC dataset. [PERSON] et al. [93] proposed OFPoint, which is a self-supervised detector based on transfer learning to perform optical flow tracking in a VOE system. The fine-tuning of SiLK as the pre-trained network is used to avoid relearning high-dimensional point features. Multi-scale attention mechanism that captures salient point features at different scales is used. [PERSON] et al. [94] proposed a data-driven SuperEvent method to predict stable keypoints. Due to the lack of ground truth keypoint labels, the authors proposed A to leverage existing frame-based keypoint detectors on available event-aligned and synchronized grayscale frames for self-supervision. [PERSON] et al. [95] proposed D2-Net for determining a dense feature descriptor and a feature detector between two frames. D2-Net includes a two-stage detect-then-describe function for correspondings to different variants and uses a single CNN to extracts dense features. [PERSON] et al. [96] proposed DXSLAM for feature extraction in the loop closure, global optimization, and relocalization steps of a Visual SLAM model. This feature extractor is integrated in Intel OpenVINO toolkit. b. Datasets for keypoint detection and feature matching evaluation  
To evaluate the results of keypoint detection and feature matching, [PERSON] et al. [90] used the following datasets. Webcam dataset [90]: This is a dataset consisting of six scenes, of which five scenes (St. Louis, Mexico, Chamonix, Courbevoie, and Frankfurt) were selected from the AMOS [97] dataset, and the Panorama scene was collected from the roof with a 360 degrees view. Oxford dataset [98]: This is a small dataset consisting of eight scenes (viewpoint changes (1) and (2); scale changes (3) and (4); image blur (5) and (6); JPEG compression (7); and illumination (8)). On the data, there are two types of changes: scene type and image condition. In a scene, there are two types of variable regions: one (a) containing uniform regions with distinctive edge boundaries and (b) the other containing repeating motifs in different forms. EF dataset [99]: This is a small dataset consisting of five sequences of 38 images which contain drastic illumination and background clutter changes. HPatches(HP) dataset [100]: This is a database consisting of 116 sequences built from six images with known patterns in nature and man-made scenes; it is divided into two parts: (1) HP-viewpoint includes 59 sequences with significant viewpoint changes; (2) HP-illumination includes 57 sequences with significant illumination changes. The data of these two sets are divided into 90% for training and validation and 10% for testing. During the training process, the data are standardized to a size of \(320\times 240\).