This project is based on the ORB-SLAM3 framework and NGD-SLAM, Thanks to the authors of the above projects,This project merged the main branch code of the NGD-SLAM project based on the master branch of ORB_SLAM3 to facilitate finding the modifications and subsequent annotations and understanding.
- Paper: arXiv:2405.07392
- Code: https://github.com/yuhaozhang7/NGD-SLAM
Use the previous segmentation results to quickly generate a mask for the dynamic object in the current frame, so that the tracking thread does not have to wait for the output of the neural network. Mix optical flow and ORB features for static key point tracking. The deep model is directly read and inferred using OpenCV, and the environment configuration is exactly the same as ORB-SLAM3 (tested on Ubuntu20.04 and 22.04).
This is a visual SLAM system designed for dynamic environments, based on the ORB-SLAM3 framework. It runs in real-time on a single laptop CPU without compromising tracking accuracy [Demo] [Paper].
The system is tested on Ubuntu 20.04 and 22.04, and it should be easy to compile in other platforms. A powerful computer will provide more stable and accurate results.
It uses the new thread and chrono functionalities of C++11.
It uses Pangolin for visualization and user interface. Dowload and install instructions can be found at: https://github.com/stevenlovegrove/Pangolin.
It uses OpenCV to manipulate images and features. Dowload and install instructions can be found at: http://opencv.org. Required at leat 4.4.
Required by g2o (see below). Download and install instructions can be found at: http://eigen.tuxfamily.org. Required at least 3.1.0.
It uses the C++ version of the YOLO-fastest model. The model configuration and pre-trained weights are included in the Thirdparty folder and are loaded using OpenCV.
It uses modified versions of the DBoW2 library to perform place recognition and g2o library to perform non-linear optimizations. Both modified libraries (which are BSD) are included in the Thirdparty folder.
Required to calculate the alignment of the trajectory with the ground truth. Required Numpy module.
- (win) http://www.python.org/downloads/windows
- (deb)
sudo apt install libpython2.7-dev - (mac) preinstalled with osx
Clone the repository:
git clone https://github.com/yuhaozhang7/NGD-SLAM.git NGD-SLAM
It provides a script build.sh to build the libraries. Please make sure you have installed all required dependencies. Execute:
cd NGD-SLAM_NOTED
chmod +x build.sh
./build.sh
TUM dataset includes sequences that are captured using an RGB-D camera in dynamic environments. Download the desired sequence and uncompress it. Below is an example command for the freiburg3_walking_xyz sequence:
./Examples/RGB-D/rgbd_tum ./Vocabulary/ORBvoc.txt ./Examples/RGB-D/TUM3.yaml ./path/to/TUM/rgbd_dataset_freiburg3_walking_xyz ./Examples/RGB-D/associations/fr3_walk_xyz.txt