GithubHelp home page GithubHelp logo

haithink / drt-vio-init Goto Github PK

View Code? Open in Web Editor NEW

This project forked from boxulibrary/drt-vio-init

0.0 0.0 0.0 2.94 MB

The official repository of our CVPR2023 paper "A Rotation-Translation-Decoupled Solution for Robust and Efficient Visual-Inertial Initialization".

License: GNU General Public License v3.0

C++ 96.22% CMake 3.78%

drt-vio-init's Introduction

drt-vio-initialization

Decoupled Rotation and Translation VIO initialization

An accurate and robust initialization is crucial for visual inertial odometry (VIO). Existing loosely-coupled VIO initialization methods suffer from poor stability from structure-from-motion (SfM). Whereas tightly-copupled methods often ignore the gyroscope bias in the closed-form solution, resulting in limited accuracy. Moreover, the aforementioned two classes of methods are computationally expensive, because 3D point clouds need to be reconstructed simultaneously. We propose a novel VIO initialization method, which decouples rotation and translation estimation, and achieves higher efficiency and better robustness. This code is the implementation of our proposed method, which runs on Linux. We also provide the code of loosely coupled method and tightly coupled method for comparision as described in the paper. Since I am still busy cleaning up the code, we released the drt-vio-initialization and other comparison algorithms will be released later.

pipeline

1. Prerequisites

1.1 Ubuntu

  • Ubuntu 16.04 or Ubuntu 18.04

1.2. Dependency

  • C++14 or C++17 Compiler
  • Eigen 3.3.7
  • OpenCV 3.4.9
  • Boost 1.58.0
  • Cere-solver 1.14.0: Ceres Installation, remember to sudo make install.

2. Build Project with Cmake

Clone the repository and compile the project:

git clone https://github.com/boxuLibrary/drt-vio-init.git
cd ~/drt-vio-init/
mkdir build
cd build
cmake ..
make -j4

3.Performance on EuRoC dataset

3.1 Download EuRoC MAV Dataset. Although it contains stereo cameras, we only use one camera and IMU data.

3.2 You can run different initialization method on the dataset via configuration parameter. The methods for comparision include:

  • Open-VINS initialization (preparing)
  • VINS-Mono initialization (preparing)
  • An improved work of ORB-SLAM3 initializaiton (preparing)
  • Our method in a tightly coupled manner (Released)
  • Our method in a loosely coupled manner (Released)

3.3 You can run the code with:

./executableFile codeType dataType

where codeType means the initialization method. You can set to be drtTightly or drtLoosely. And dataType means the name of save file, that is consistent with the running dataset.

4 Related Papers

  • A Rotation-Translation-Decoupled Solution for Robust and Efficient Visual-Inertial Initialization, Yijia He, Bo Xu, Zhanpeng Ouyang and Hongdong Li.
@InProceedings{He_2023_CVPR,
    author    = {He, Yijia and Xu, Bo and Ouyang, Zhanpeng and Li, Hongdong},
    title     = {A Rotation-Translation-Decoupled Solution for Robust and Efficient Visual-Inertial Initialization},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2023},
    pages     = {739-748}
}

If you use drt-vio-initialization for your academic research, please cite our related papers.

5. Licence

The source code is released under GPLv3 license.

drt-vio-init's People

Contributors

boxulibrary avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.