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
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