GithubHelp home page GithubHelp logo

mees / generalize_spatial_relations Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 1.0 2.23 MB

[IROS 2017] Code for the paper "Metric Learning for Generalizing Spatial Relations to New Objects"

Home Page: http://spatialrelations.cs.uni-freiburg.de/

License: GNU General Public License v3.0

CMake 13.86% C++ 86.14%
spatial spatial-relationships spatial-relation-recognition metric-learning robotics object-manipulation

generalize_spatial_relations's Introduction

Metric Learning for Generalizing Spatial Relations to New Objects

Language grade: C/C++ Total alerts License: GPL v3

This repository implements the code for describing and generalizing spatial relations of our paper published at IROS 2017. More information at our project page.

Reference

If you find the code helpful please consider citing our work

@INPROCEEDINGS{mees17iros,
  author = {Oier Mees and Nichola Abdo and Mladen Mazuran and Wolfram Burgard},
  title = {Metric Learning for Generalizing Spatial Relations to New Objects},
  booktitle = {Proceedings of the International Conference on Intelligent Robots and Systems (IROS)},
  year = 2017,
  address = {Vancouver, Canada},
  url = {http://ais.informatik.uni-freiburg.de/publications/papers/mees17iros.pdf},
}

Dataset

The Freiburg Spatial Relations dataset features 546 scenes each containing two out of 25 household objects. The depicted spatial relations can roughly be described as on top, on top on the corner, inside, inside and inclined, next to, and inclined. The dataset contains the 25 object models as textured .obj and .dae files, a low resolution .dae version for visualization in rviz, a scene description file containing the translation and rotation of the objects for each scene, a file with labels for each scene, the 15 splits used for cross validation, and a bash script to convert the models to pointclouds.

Installation

Install Glog, PCL, Eigen3 and OctoMap.

  • Download the dataset and extract it such that the structure looks like generalize_spatial_relations/data/object_models/

  • Navigate to the relations dataset and create the point clouds from the .obj files (needs pcl): cd scripts; ./create_uniform_pcd.sh

  • Put your directories path here.

  • Compile the c++ code:

    mkdir build
    cd build
    cmake ..
    make -j4
    

Experiments

To generalize relation from one or multiple scenes to another, take a look at imitateRelationsFast.cpp. It uses a precomputed LMNN embedding to compute distances between spatial relations. For example to generalize the scenes spearmint_salz_2662 and pot4_milkCarton_6394 with a box object as base and a cereal box as the relative object:

./imitateRelationFast -b SmallBoxBase -o muesli2 -i 8868 -1 spearmint_salz_2662 -2 pot4_milkCarton_6394

If you are just interested in computing our spatial relation feature descriptor given two object clouds, take a look here.

Notes

If you want to learn the features describing pairwise object relations with deep learning and optimize the generalization experiments on a continuous level check out the repo of our follow-up work here.

License

For academic usage, the code is released under the GPLv3 license. For any commercial purpose, please contact the authors.

generalize_spatial_relations's People

Contributors

mees avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

aisrobots

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.