Skip to content

3DINTACT: an open-source CXX_11 project for segmenting interaction regions on tabletop surfaces near real-time

License

Notifications You must be signed in to change notification settings

edisonslightbulbs/3DINTACToolkit

Repository files navigation

3DINTACT

An open-source CXX_11 project for segmenting interaction regions on tabletop surfaces near real-time

Overview:
Platform Hardware Dependencies
🔳 Linux 🔳 Azure Kinect 🔳 gflags
🔳 glog
🔳 Eigen 3.3
🔳 Azure Kinect SDK
🔳 opencv
🔳 Pangolin
🔳 pytorch
[1/3] Getting started

Clone this repository using --recurse-submodules flag.

If already cloned without the --recurse-submodules flag, use git submodule update --init --recursive to initialize the submodules.

[2/3] Installing the dependencies

Make sure to install all the dependencies listed in the table.

Caveat (for developers using the AzureKinect)

Microsoft's Azure Kinect has a ceremonious list dependencies. Be sure to install all those as well. Here are a few steps to give you a headstart.

1. The depth engine

A dated Depth Engine binary is provided and can be installed by running this install_depthengine.sh helper script. Please follow this hyperlink for the official step-by-step on how to get the most up-to-date depth engine.

2. The USB rules and shared system libraries

For convenience, the USB rules can be installed by running install_usb_rules.sh, and shared system libs using install_kinect_sdk_dependencies.sh. We recommend using the most up-to-date instructions.

[3/3] Building the project

  1. from the project directory
mkdir build && cd build || return
cmake ..
make
  1. see build/bin directory for built examples and applications
  • CAVEAT: use --logtostderr=1 to see output logs in STDOUT. E.g, run the chromakey example as follows.
cd build/bin
chromakey --logtostderr=1

Notes

This project uses Microsoft's Azure Kinect to form a concrete example. The point cloud can be adapted. The project documentation is underway. In the meantime, we offer support and welcome issues and feature requests. You can check out an illustration of segmenting a surface in real-time over on YouTube.

  • if the project is helpful with your work (or any part of it), citing is one way of letting us know we are doing something right.
@misc{3dintact-github-2021,
    author = {Mthunzi, Everett M.},
    title = {3DINTACT: an open-source CXX{\_}11 project for segmenting interaction regions on tabletop surfaces near real-time},
    url = {https://github.com/edisonslightbulbs/3DINTACToolkit},
    year = {2021}
}
  • You can take a closer look at each of the implemented pipeline modules here
@inproceedings{3dintact-manuscript-2021,
    author = {Mthunzi, Everett M. and Christopher Getschmann and Florian Echtler},
    title = {Fast 3D point-cloud segmentation for interactive surfaces},
    year = {2021},
    isbn = {978-1-4503-8340-0/21/11},
    publisher = {Association for Computing Machinery},
    address = {New York, NY, USA},
    url = {https://doi.org/10.1145/3447932.3491141},
    doi = {https://doi.org/10.1145/3447932.3491141},
    booktitle = {Interactive Surfaces and Spaces},
    pages = {},
    numpages = {5},
    keywords = {Interactive surface environments, interactive surface prototypes, UML-based framework},
    location = {Lodz, Poland},
    series = {ISS '21 Companion}
}