pd-external: pix_openni 0.10

If you are working with Xbox Kinect Sensor here is another goodie for you – A pure data / Gem external to get Kinect rgb and depth streams as well as skeleton tracking and multiple hand tracking via OpenNI[ref name=”openni”]http://www.openni.org[/ref]

Download the packed Binaries for OSX and Windows pix_openni-0.10.zip .
Latest sourcecode available at github: http://github.com/kronihias/pix_openni

Look at this page if you don’t know how to install a Pd-External.

To control tilt, led and output accelerometer data you can use libfreenect based http://github.com/kronihias/freenect.
To get audio streams you can use libfreenect based http://github.com/kronihias/freenect_audio.

pix_openni (0.10 experimenting…)
======================================
pure data / Gem external to get Kinect rgb and depth streams, skeleton tracking, hand tracking

* depends on OpenNI, NITE, SensorKinect

2011/2012 by Matthias Kronlachner
__________________________________________________________

::INSTALL::
tested under Ubuntu, OSX 10.6.8 and Windows 7

OSX:
you don’t have to compile the external for yourself -> use included binaries from build folder (copy pix_openni.pd_darwin in pix_openni folder)
you still need OpenNI, NITE and SensorKinect!!
* download latest OpenNI and NITE unstable build for OSX from http://www.openni.org/Downloads/OpenNIModules.aspx,
sudo ./install.sh in the extracted folders
* install SensorKinect from https://github.com/avin2/SensorKinect

WINDOWS:
you don’t have to compile the external for yourself -> use included binaries from build folder (copy pix_openni.dll in pix_openni folder)
install OpenNI, NITE and SensorKinect

http://www.openni.org/openni-sdk/openni-sdk-history-2/
(OpenNI SDK v1.5.4.0)

Binary of NITE
http://www.openni.org/openni-sdk/openni-sdk-history-2/
(NiTE v1.5.2.21)

Binary of avin2 / SensorKinect
https://github.com/avin2/SensorKinect/downloads
SensorKinect093-Bin-Win32-v5.1.2.1.msi

Linux:
* get/install pd and Gem (http://puredata.info)

* get and install OpenNI, NITE and the hacked Primesense Kinect driver
–> instruction: https://github.com/avin2/SensorKinect
http://www.openni.org/openni-sdk/openni-sdk-history-2/

* edit Makefile for right path to Gem, pd and OpenNI sources

* #…/pix_openni> make

* have a look at the pix_openni-help.pd file!

:: Usage ::

* Have a look at my pd-kinect-examples at Github: http://github.com/kronihias/pd-kinect-examples

Hand Tracking:

to track multiple Hands edit following File:
/usr/etc/primesense/Hands_*/Nite.ini
and add or uncomment:

[HandTrackerManager]
AllowMultipleHands=1
TrackAdditionalHands=1

_________________
Changelog

0.10 * various bugfixes
* depth_output simplified – just rgba and yuv available ->
* ATTENTION INCOMPABILITY: “viewable” depth output outsourced into pix_depth2rgba
* record and playback functionality
* user coloring
* skeleton settable smoothing factor

0.03 * switchable OSC Style output of tracking data /skeleton/joint/r_hand id x y z, /hand/coords id x y z
* switchable real-world coordinate output in [mm]
* switchable registration between rgb image and depth image -> change point of view from depth camera to match with rgb image (overlay)
* improved help file

0.02
* OSX binaries
* output rgb and depth stream simultaneously
* hand tracking
* change image and depth modes
* init without .xml init file
* fixed depth to rgb conversion for output_mode 1 & 2

0.01
* skeleton and rgb or depth stream output

________________
:::THINGS TO DO:::

* support for multiple Kinect

* motor and led control as well as audio is currently not supported from SensorKinect
you can do that with pd external freenect: http://github.com/kronihias/freenect

* optimize record/playback functionality

questions: m.kronlachner@gmail.com

2 thoughts on “pd-external: pix_openni 0.10

  1. Hi,
    first of all thanks for your code! very usefull!
    I have compiled pix_openni successfully but I don’t get how to run hand tracking. I send value hand 1 and consolle tell me “OpenNI:: HandTracking started!”
    So it is supposed to go. There is some kind of pose to start?
    thanks for help
    cheers

    • hi!
      you’re welcome.
      for hand tracking you need to make a “waving gesture” so that nite starts tracking your hand.
      just wave your hand and it should recognize it after short time.
      you can also check the config files (somewhere like /usr/etc/primesense/Hands_*/Nite.ini) to enable multiple hands support.

      anyway i think that the hand tracking is not well done in nite. you can try to use opencv or threshold the depth image and use pix_multiblob.

      matthias

Leave a Reply

Your email address will not be published. Required fields are marked *