GithubHelp home page GithubHelp logo

igilitschenski / deep_bingham Goto Github PK

View Code? Open in Web Editor NEW
30.0 3.0 9.0 60 KB

Code for "Deep Orientaton Uncertainty Learning based on a Bingham Loss" (ICLR2020)

License: MIT License

Python 98.55% Shell 1.45%
computer-vision deep-learning directional-statistics geometry machine-learning iclr2020

deep_bingham's Introduction

Deep Orientaton Uncertainty Learning based on a Bingham Loss

deep_bingham_teaser

Installation

For a quick conda install simply run

conda env create --file=environment.yaml
conda activate deep_orientation

Datasets

For the paper, we make use of the following datasets (some of them require a registration for downloading).

  1. UPNA Head Pose Dataset.
    The dataset needs to be extracted into the folder datasets/upna.
  2. IDIAP Head Pose Dataset
    The dataset needs to be extracted into the folder datasets/IDIAPHeadPose.
  3. T-Less Dataset
    We use all objects from the kinect training set for our experiments on t-less. To simplify downloading, we provide the convenience script datasets/download_tless.sh.

Training

Run the following command to generate the lookup table for Bingham Loss training.

$ python generate_lookup_table.py

Before starting training, we need to generate a lookup table for the Bingham loss. This can be done by running the following script.

$ python generate_lookup_table.py

You can perform training by selecting a configuration YAML file (or writing a new YAML file). Follow the structure in the example UPNA training file. After that, run python train.py --config [config file].

In the training portion of the config file, specify the device/gpu number that you would like to use. Also, be sure to name the model you are training! For example if save_as = practice, then the save_dir = /models/practice/ for consistency.

To run all the experiments in our paper,

$ ./run_training.sh

Tensorboard

A tensorboard providing training information can be started via

$ python -m tensorboard.main --logdir=runs/

Evaluation

To run all the evaluations in our paper,

$./run_evaluations.py

Citing

If you found this repository useful, please cite our paper presented at ICLR 2020.

@inproceedings{Gilitschenski2020,
    title={Deep Orientation Uncertainty Learning based on a Bingham Loss},
    author={Igor Gilitschenski and Roshni Sahoo and Wilko Schwarting and Alexander Amini and Sertac Karaman and Daniela Rus},
    booktitle={International Conference on Learning Representations},
    year={2020}
}

Acknowledgment

This work was supported in part by NSF Grant 1723943, the Office of Naval Research (ONR) Grant N00014-18-1-2830, and Toyota Research Institute (TRI). The work solely reflects the opinions and conclusions of its authors and not TRI, Toyota, or any other Toyota entity. Their support is gratefully acknowledged. The structure of the directories and the code is partially based on the Pytorch Template by Victor Huang.

deep_bingham's People

Contributors

igilitschenski 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

Watchers

 avatar  avatar  avatar

deep_bingham's Issues

scipy.interpolate.rbf MemoryError

Hi there,

First of all, thank you for sharing this awesome work!

I can successfully generate lookup_-500_0_40.dill file but had problems creating *.rbf file due to memory issue. I have tried using a very beefy computer (50+ CPU cores and 100+Gb memory) but the problem persists. I understand this is more a scipy.interpolate.rbf issue but can you share how you were able to generate the *.rbf file?

More specifically, the error I got is pretty standard:

...
    self.interp_options["interp_data"]
  File "/usr/lib/python3/dist-packages/scipy/interpolate/rbf.py", line 200, in __init__
    r = self._call_norm(self.xi, self.xi)
  File "/usr/lib/python3/dist-packages/scipy/interpolate/rbf.py", line 231, in _call_norm
    return self.norm(x1, x2)
  File "/usr/lib/python3/dist-packages/scipy/interpolate/rbf.py", line 118, in _euclidean_norm
    return np.sqrt(((x1 - x2)**2).sum(axis=0))
  File "/usr/lib/python3/dist-packages/numpy/core/_methods.py", line 32, in _sum
    return umr_sum(a, axis, dtype, out, keepdims)
MemoryError

Also, I believe there is an extra trailing ) in this line https://github.com/igilitschenski/deep_bingham/blob/master/generate_lookup_table.py#L16.

Thank you!

generate_lookup_table.py running

 Recently reading your paper about bingham loss, I have a question about why generate_lookup_table.py running for nearly a day is not over, and how long this lookup table will take to generate

Code Release

what time to release the code and experiment data?

Run Bingham_Distribution

I found a fantastic bingham_distribution file in your repo. But I didn't find the guidance to run it, especially bingham.fit part. I will occur to the error of when run bingham.fit.

  1. AssertionError: param_m is not orthogonal.

and
2.
image

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.