In the paper, we propose a robust real-time visual odometry in dynamic environments via rigid-motion model updated by scene flow. The proposed algorithm consists of spatial motion segmentation and temporal motion tracking. The spatial segmentation first generates several motion hypotheses by using a grid-based scene flow and clusters the extracted motion hypotheses, separating objects that move independently of one another. Further, we use a dual-mode motion model to consistently distinguish between the static and dynamic parts in the temporal motion tracking stage. Finally, the proposed algorithm estimates the pose of a camera by taking advantage of the region classified as static parts. In order to evaluate the performance of visual odometry under the existence of dynamic rigid objects, we use self-collected dataset containing RGB-D images and motion capture data for ground-truth. We compare our algorithm with state-of-the-art visual odometry algorithms. The validation results suggest that the proposed algorithm can estimate the pose of a camera robustly and accurately in dynamic environments.
@cite_14: This paper proposes a robust background model-based dense-visual-odometry (BaMVO) algorithm that uses an RGB-D sensor in a dynamic environment. The proposed algorithm estimates the background model represented by the nonparametric model from depth scenes and then estimates the ego-motion of the sensor using the energy-based dense-visual-odometry approach based on the estimated background model in order to consider moving objects. Experimental results demonstrate that the ego-motion is robustly obtained by BaMVO in a dynamic environment.
@cite_1: In this paper we propose an efficient solution to jointly estimate the camera motion and a piecewise-rigid scene flow from an RGB-D sequence. The key idea is to perform a two-fold segmentation of the scene, dividing it into geometric clusters that are, in turn, classified as static or moving elements. Representing the dynamic scene as a set of rigid clusters drastically accelerates the motion estimation, while segmenting it into static and dynamic parts allows us to separate the camera motion (odometry) from the rest of motions observed in the scene. The resulting method robustly and accurately determines the motion of an RGB-D camera in dynamic environments with an average runtime of 80 milliseconds on a multi-core CPU. The code is available for public use test.
@cite_6: 
The second type of research has exploited statistical models to classify motions belonging to independent objects. BaMVO @cite_14 estimates background by choosing pixels whose depth does not change unusually. It is effective in situations where a dynamic object such as a pedestrian moves in parallel with the principal axis of a camera. However, the performance can degenerate when the dynamic object moves perpendicular to the principal axis while reducing the depth transition. Joint-VO-SF @cite_1 formulates a minimization problem with 3D points from RGB-D images. They estimate camera pose and scene flow accurately, but the average runtime is 80 ms on an i7 multi-core CPU at QVGA resolution, which is slightly slow for real-time implementation with current on-board computers. StaticFusion @cite_6 is the enhanced version of Joint-VO-SF. It adds dense 3D modeling of only the static parts of the environment and reduces the overall drift though frame-to-model alignment.