# DM-SLAM: Monocular SLAM in Dynamic Environments
## 1 Introduction  
The main task of visual SLAM (simultaneous localization and mapping) is to estimate the pose of the camera and reconstruct the three-dimensional structure of the environments in the field of view of continuous frames. Visual-based autonomous robots are able to acquire camera poses and environmental information to perform complex tasks such as robot navigation, human-robot interaction, and path planning. Monocular, binocular, and RGB-D cameras can be used to implement visual SLAM. Due to their acquisition of depth of environments directly, binocular-based and RGB-D-based SLAM are more robust than monocular SLAM. Although monocular cameras have their own inherent limitations (such as inability to observe scale and state initialization), with respect to size, power, and cost [1], monocular cameras have broad application scenarios. However, despite some remarkable results such as ORB-SLAM2 [2], LSD [3], DSO [4] in visual SLAM, most approaches, whether feature-based, direct or semi-dense [5, 6], assume that static targets or backgrounds occupy the majority in the scene [1]. For feature-based SLAM, this assumption can be interpreted as that the feature points of the static scene occupy the majority in all feature points in the image. These systems generally adopt RANSAC [7] and robust kernel algorithms that perform well when the dynamic feature points are relatively few, but as the proportion of static feature points gradually decreases, the computation required for obtaining camera poses with higher confidence increases dramatically. Such assumptions greatly limit possible applications of visual SLAM in actual scenarios. The existence of dynamic objects not only affects the tracking accuracy if the matches belonged to dynamic objects are used in tracking algorithms, but also causes the system to establish an imprecise map including dynamic objects and reduces the accuracy of loop closure detection, which is used to reduce cumulative error. For many long-term applications such as virtual reality, augmented reality or medical imaging, retaining precise and stable maps from previous runs which can be reused is significant, especially if dynamic objects can be detected and processed appropriately [8]. The premise of solving the camera pose is to get the static feature set, and the camera pose is required to filter the static features from the image features of the noise features, mismatches and dynamic features. When the scene does not satisfy the main assumption of static scene as assumed by typical SLAM system, how to get an accurate camera pose seems to be a problem with \"chicken-and-egg\" characteristics [8]. There are currently three main ideas for solving this chicken-egg problem. We will review these ideas and introduce the main methods in detail in subsequent context. The first method is reconstruction before motion segmentation. [PERSON] et al. [9] propose a prior-based adaptive RANSAC algorithm called PARSAC to establish a camera motion model, which will estimate the probability that current model is a camera motion model by the degree of distribution of points within the model for each iteration. [PERSON] et al. [10] warp the last frame with the perspective matrix and subtract the current frame from the warped frame to distinguish dynamic areas. The perspective matrix is constructed by computing the optimal homography with the RANSAC algorithm, wherein camera ego-motions are represented as 2-D perspective matrices. The above methods carry out reconstruction before motion segmentation, but their results are greatly affected by the initial reconstruction result. There also exist some methods of reconstruction after motion segmentation. [PERSON] et al. [11] used a classifier trained in advance to classify the feature points as dynamic or static, but it cannot be used to explore an unknown environment because it is limited by training data. [PERSON] [1] et al.