Coder Social home page Coder Social logo

aaltovision / deep-speed-constrained-ins Goto Github PK

View Code? Open in Web Editor NEW
54.0 9.0 29.0 18.99 MB

Codes for Deep Learning Based Speed Estimation for Constraining Strapdown Inertial Navigation on Smartphones

Home Page: https://aaltovision.github.io/deep-speed-constrained-ins/

License: GNU General Public License v3.0

Python 100.00%
deep-learning imu-data inertial-odometry

deep-speed-constrained-ins's Introduction

Deep Learning Based Speed Estimation for Constraining Strapdown Inertial Navigation on Smartphones

Santiago Cortés · Arno Solin · Juho Kannala

Summary

Strapdown inertial navigation systems are sensitive to the quality of the data provided by the accelerometer and gyroscope. Low-grade IMUs in handheld smart-devices pose a problem for inertial odometry on these devices. We propose a scheme for constraining the inertial odometry problem by complementing non-linear state estimation by a CNN-based deep-learning model for inferring the momentary speed based on a window of IMU samples.

This repository provides the codes for replicationg the speed regression setup in [1]. Please, if you use this code/data, please cite the original paper presenting it.

Dependencies:

Ubuntu 16.04 and python 2.7 (including numpy and matplotlib) were used in all the tests.

The following Python packages were also used

Download and prepare training data

Download and unzip ADVIO dataset files (see ADVIO).

cd data
for i in $(seq -f "%02g" 1 23);
do
  wget -O advio-$i.zip https://zenodo.org/record/1321157/files/advio-$i.zip
  unzip advio-$i.zip
  rm advio-$i.zip	
done
cd ..

Synchronize the accelerometer and gyroscope in the ADVIO data.

cd python
python sync-data.py

Produce results

cd python
python DCI-training-0.0.2.py

References

[1] Santiago Cortés, Arno Solin, and Juho Kannala, “Deep Learning Based Speed Estimation for Constraining Strapdown Inertial Navigation on Smartphones”, IEEE International Workshop on Machine Learning for Signal Processing (MLSP), Aalborg, Denmark, 2018. [arXiv]

License

This software is distributed under the GNU General Public License (version 3 or later); please refer to the file LICENSE.txt, included with the software, for details.

deep-speed-constrained-ins's People

Contributors

asolin avatar scortes48 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

deep-speed-constrained-ins's Issues

what the mean of column lthe labels csv ?

0,0,0,0.05
0,0,1,0.48
0,0,2,1.04
0,0,1,2.05
0,0,2,2.22
0,0,0,-1
0,1,0,-2
0,2,0,0.05
0,2,1,0.49
0,2,0,-1
0,3,0,0.03
0,3,1,1.1
0,3,2,1.25
0,3,1,1.35
0,3,2,1.51
0,3,1,-1
0,4,0,0.03
0,4,1,1.52
0,4,2,2.08
0,4,1,2.18
0,4,2,2.31
0,4,0,-1
1,0,0,0.17
1,0,3,0.46
1,0,1,1.21
1,0,3,1.43
1,0,1,2.18
1,0,3,2.38
1,0,1,3.16
1,0,3,3.36
1,0,1,4.13
1,0,0,-1
1,1,0,0.07
1,1,1,-1
1,2,0,0.05
1,2,1,-1
1,3,0,-2
1,4,0,0.15
1,4,2,0.35
1,4,1,-1
1,5,0,0.08
1,5,1,-1
1,6,0,-2
1,7,0,0.13
1,7,1,0.35
1,7,3,0.5
1,7,1,1.22
1,7,3,1.4
1,7,0,-1
1,8,0,0.06
1,8,1,0.28
1,8,3,0.45
1,8,1,1.11
1,8,3,1.28
1,8,0,-1
1,9,0,0.05
1,9,1,-1
1,10,1,-1
1,11,1,-1
2,0,0,0.04
2,0,1,0.26
2,0,0,1.03
2,0,4,1.23
2,0,1,1.51
2,0,2,2.1
2,0,1,2.31
2,0,2,2.46
2,0,1,-1
2,1,1,0.42
2,1,2,0.57
2,1,1,1.58
2,1,2,-1
3,0,1,-1
3,1,1,-1
4,0,1,-1
4,0,1,-2
5,0,0,-1
5,1,0,-1
5,2,0,-1
6,0,1,-1

Could not reproduce pretrained model

I have followed the instructions for downloading and preparing training data and tried to train a model by changing load_model to False and both save_model and train_model to True in DCI-training-0.0.2.py. I also needed to change two lines because I am using pytorch 1.0.0.

I have changed this line:
acc_loss +=np.sum(loss.data[0])

to this:
acc_loss +=np.sum(loss.item())

And I have changed this line:
val_loss +=np.sum(loss.data[0])

to this:
val_loss +=np.sum(loss.item())

However, I am getting the following results:

figure_1
figure_2
figure_3
figure_4
figure_6
figure_7
figure_8

The final values for loss and validation loss were 2.2964887819458952 and 2.3019133200951383, respectively. Is this expected? Should I change any other parameter (like number of epochs) in order to reproduce the pretrained model?

I am using Ubuntu 18.04.1 LTS, Python 2.7.15rc1 and pandas 0.23.4.

Best regards.

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.