/DynamicFeatureRemovalWithORBSLAM2

We eliminate features on dynamic objects based on input semantic segmantion images for SLAM. The program is developed based on ORB-SLAM2. This repo is created for 16-833 course project.

Primary LanguageC++

16-833 SLAM Project: Dynamic Object Removal With ORB_SLAM2

Group members: Di Deng, Radhika Mohanan, and Samiran Gode

Project Description

We integrate image segmentation result with ORB_SLAM2 to remove extracted ORB features on dynamic objects based on objects' category. In this project , walking people are used to illustrate the effectiveness of the proposed method.

Prerequisites

We have tested the code with Ubuntu 18.04.

Licence

The licence of this repo follows the licence of ORB_SLAM2.

Simulation Environment

  • The simulation environment is from UnrealEngine MarketPlace Modular School Pack
  • The walking character, Brian, is downloaded from Adobe mixamo.
simulation environment

Dynamic Object Extraction from Semantic Images

dynamic obstacle
     extraction

Feature Extraction with Dynamic Object Removal and Pure ORB Feature Extractor

Features obtained from ORB feature extractor:

ORB feature extractor
Remove features on dynamic object:
remove
     features on dynamic objects

Execution Steps

  1. Install ORB-SLAM2
  2. Replace src, include, Examples and CMakeLists.txt with the files in this repo.
  3. Download dataset and put it within the main directory.
  4. Run:
chmod +x build.sh
./build.sh
./Examples/Monocular/mono_dynamic_airsim Vocabulary/ORBvoc.txt Examples/Monocular/airsim.yaml dynamic_obstacle_dataset

You can find that all features on dynamic objects are removed using this code comparing to the features extracted directly using ORB-SLAM2.

Features obtained from ORB feature extractor:

Remove features on dynamic object:

Future Work

This dataset also contains depth images and the ground truth pose information. We want to integrate depth and semantic information with the estimated camera trajectory to reconstruct the voxel map of the environment without the dynamic objects.

Reconstructed pointcloud based on the ground truth pose information.

Reconstructed voxel map based on the semantic point-cloud of the environment.