# denoise-imu-gyro **Repository Path**: xdqrshi/denoise-imu-gyro ## Basic Information - **Project Name**: denoise-imu-gyro - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-09 - **Last Updated**: 2025-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Denoising IMU Gyroscope with Deep Learning for Open-Loop Attitude Estimation ## Overview [[IEEE paper](https://ieeexplore.ieee.org/document/9119813), [preprint paper](https://hal.archives-ouvertes.fr/hal-02488923v4/document)] This repo contains a learning method for denoising gyroscopes of Inertial Measurement Units (IMUs) using ground truth data. In terms of attitude dead-reckoning estimation, the obtained algorithm is able to beat top-ranked visual-inertial odometry systems [3-5] in terms of attitude estimation although it only uses signals from a low-cost IMU. The obtained performances are achieved thanks to a well chosen model, and a proper loss function for orientation increments. Our approach builds upon a neural network based on dilated convolutions, without requiring any recurrent neural network. ## Code Our implementation is based on Python 3 and [Pytorch](https://pytorch.org/). We test the code under Ubuntu 16.04, Python 3.5, and Pytorch 1.5. The codebase is licensed under the MIT License. ### Installation & Prerequies 1. Install the correct version of [Pytorch](http://pytorch.org) ``` pip install --pre torch -f https://download.pytorch.org/whl/nightly/cu101/torch_nightly.html ``` 2. Clone this repo and create empty directories ``` git clone https://github.com/mbrossar/denoise-imu-gyro.git mkdir denoise-imu-gyro/data mkdir denoise-imu-gyro/results ``` 3. Install the following required Python packages, e.g. with the pip command ``` pip install -r denoise-imu-gyro/requirements.txt ``` ### Testing 1. Download reformated pickle format of the _EuRoC_ [1] and _TUM-VI_ [2] datasets at this [url](https://cloud.mines-paristech.fr/index.php/s/d2lHqzIk1PxzWmb/download), extract and copy then in the `data` folder. ``` wget "https://cloud.mines-paristech.fr/index.php/s/d2lHqzIk1PxzWmb/download" unzip download -d denoise-imu-gyro/data rm download ``` These file can alternatively be generated after downloading the _EuRoC_ and _TUM-VI_ datasets. They will be generated when lanching the main file after providing data paths. 2. Download optimized parameters at this [url](https://cloud.mines-paristech.fr/index.php/s/OLnj74YXtOLA7Hv/download), extract and copy in the `results` folder. ``` wget "https://cloud.mines-paristech.fr/index.php/s/OLnj74YXtOLA7Hv/download" unzip download -d denoise-imu-gyro/results rm download ``` 3. Test on the dataset on your choice ! ``` cd denoise-imu-gyro python3 main_EUROC.py # or alternatively # python3 main_TUMVI.py ``` You can then compare results with the evaluation [toolbox](https://github.com/rpng/open_vins/) of [3]. ### Training You can train the method by uncomment the two lines after # train in the main files. Edit then the configuration to obtain results with another sets of parameters. It roughly takes 5 minutes per dataset with a decent GPU. ## Schematic Illustration of the Proposed Method