roft

Real-time Optical Flow-aided 6D Object Pose and Velocity Tracking

https://github.com/hsp-iit/roft

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, ieee.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.6%) to scientific vocabulary

Keywords

fast-motions kalman-filtering kf optical-flow pose-estimation real-time segmentation tracking ukf
Last synced: 6 months ago · JSON representation ·

Repository

Real-time Optical Flow-aided 6D Object Pose and Velocity Tracking

Basic Info
  • Host: GitHub
  • Owner: hsp-iit
  • License: gpl-2.0
  • Language: C++
  • Default Branch: main
  • Homepage:
  • Size: 5.8 MB
Statistics
  • Stars: 34
  • Watchers: 10
  • Forks: 4
  • Open Issues: 0
  • Releases: 7
Topics
fast-motions kalman-filtering kf optical-flow pose-estimation real-time segmentation tracking ukf
Created over 5 years ago · Last pushed almost 3 years ago
Metadata Files
Readme License Citation

README.md

ROFT

ROFT: Real-Time Optical Flow-Aided 6D Object Pose and Velocity Tracking

IEEE Robotics and Automation Letters, vol. 7, no. 1, pp. 159-166, Jan. 2022
Paper | arXiv | Video

DOI CI badge

Reproducing the experiments

We support running the experiments on the Fast-YCB dataset via the provided Docker image.

If you want to install the repository manually, please refer to the recipe contained in the Dockerfile.

  1. Pull the docker image: console docker pull ghcr.io/hsp-iit/roft:latest
  2. Launch the container: console docker run -it --rm --user user --env="DISPLAY" --net=host --device /dev/dri/ ghcr.io/hsp-iit/roft:latest If an NVIDIA GPU is adopted, please use instead: console docker run -it --rm --user user --env="DISPLAY" --net=host -e NVIDIA_DRIVER_CAPABILITIES=all -v /tmp/.X11-unix:/tmp/.X11-unix --gpus all --runtime=nvidia ghcr.io/hsp-iit/roft:latest
  3. Update and build the project: console cd /home/user/roft git pull cd build make install
  4. Download and extract the accompanying data (Fast-YCB dataset and pre-evaluated results) and the YCB-Video model set: console cd /home/user/roft bash tools/download/download_results.sh bash tools/download/download_fastycb.sh bash tools/download/download_ycb_models.sh
  5. Initialize the datasets: console cd /home/user/roft bash test/init.sh
  6. Run the experiments (optional): console cd /home/user/roft bash test/run_paper_experiments > The accompanying data contains the pre-evaluated results. If desired, the results can be re-evaluated using the above command.
  7. Run the evaluation: console cd /home/user/roft bash evaluation/run_paper_evaluation
  8. Visualize the results: The results on the Fast-YCB dataset (Table I, II, IV and Figure 3) can be found in /home/user/roft/evaluation_output:

    • tableI.pdf
    • tableII.pdf
    • tableIV.pdf
    • Fig3_*.png

    The docker image provides evince and eog in order open pdf and png files, respectively.

In order to run part of the provided software it could be required to temporarily execute xhost + in a console outside of Docker in order to allow the container accessing the X server facilities. The command can be run even after the container has been already launched.

Support for reproducing the experiments on the HO-3D dataset will be added in the near future.

Instructions on how to use the ROFT library in external C++ projects and how to execute ROFT on custom datasets will be added in the near future.

Citing ROFT

If you find the ROFT code useful, please consider citing the associated publication:

bibtex @ARTICLE{9568706, author={Piga, Nicola A. and Onyshchuk, Yuriy and Pasquale, Giulia and Pattacini, Ugo and Natale, Lorenzo}, journal={IEEE Robotics and Automation Letters}, title={ROFT: Real-Time Optical Flow-Aided 6D Object Pose and Velocity Tracking}, year={2022}, volume={7}, number={1}, pages={159-166}, doi={10.1109/LRA.2021.3119379} }

and/or the repository itself by pressing on the Cite this respository button in the About section.

The pre-evaluated results on the Fast-YCB dataset are stored within the IIT Dataverse and identified by the following DOI:10.48557/9FJW42.

Generate optical flow frames for a custom dataset

If a custom dataset, using the same format as Fast-YCB, is available, the optical flow frames can be generated by: 1. Enabling the option BUILD_NVOF when building using CMake 2. Using the ROFT-of-dumper executable (synopsis available via CLI)

Note: a system with a optical flow-enabled NVIDIA GPU is required. Moreover, OpenCV should be compiled with the cudaoptflow contribution module.

Maintainer

This repository is maintained by:

| | | |:---:|:---:| | | @xenvre |

Owner

  • Name: Humanoid Sensing and Perception
  • Login: hsp-iit
  • Kind: organization
  • Location: Istituto Italiano di Tecnologia

Humanoid Sensing and Perception research group within IIT.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Piga"
  given-names: "Nicola Agostino"
  orcid: "https://orcid.org/0000-0003-3183-8108"
- family-names: "Onyshchuk"
  given-names: "Yuriy"
  orcid: "https://orcid.org/0000-0003-1676-1261"
- family-names: "Pasquale"
  given-names: "Giulia"
  orcid: "https://orcid.org/0000-0002-7221-3553"
- family-names: "Pattacini"
  given-names: "Ugo"
  orcid: "https://orcid.org/0000-0001-8754-1632"
- family-names: "Natale"
  given-names: "Lorenzo"
  orcid: "https://orcid.org/0000-0002-8777-5233"
title: "roft"
version: v1.2.1
doi: 10.5281/zenodo.6396283
date-released: 2022-11-21
url: "https://github.com/hsp-iit/roft"

GitHub Events

Total
  • Watch event: 2
Last Year
  • Watch event: 2

Dependencies

docs/detectron2_requirements.txt pypi
  • imgaug ==0.4.0
  • torch ==1.6.0
  • torchvision ==0.7.0
docs/detectron2_requirements_cuda11.txt pypi
  • imgaug ==0.4.0
  • torch ==1.8.0
  • torchvision ==0.9.0
docs/dope_requirements.txt pypi
  • Pillow ==7.2.0
  • configparser ==5.0.0
  • numpy ==1.17.4
  • opencv_python ==4.4.0.44
  • pyrr ==0.10.3
  • pyyaml *
  • scipy ==1.5.2
  • torch ==1.6.0
  • torchvision ==0.7.0
requirements.txt pypi
  • ffmpeg-python *
  • markdown-table *
  • matplotlib *
  • numpy *
  • opencv-python *
  • pybind11 *
  • pyquaternion *
  • pyrender *
  • pytransform3d *
  • tqdm *