kinect openni and object tracking
Hey folks,
I have a kinect that I am using to get depth information using the openni external. I would like to detect points, like fingers, and keep track of these objects.
Does openni already do this? If not can someone give me some pointers on how I would track things like fingers, arms, and other body parts.
Thanks,
Anthony
jit.openni can track many joints and body parts. The wiki at https://github.com/diablodale/jit.openni/wiki#skeleton-joint-data describes the data and how to get it. You can additionally use the demo patch included with jit.openni to see the head and other joint data.
Hey Dale, I got side tracked from this by the annoying time sucker called "my job".
But I am back on it now...
I took a look at the demo patch that came with jit.openni, I am loading the file jit.openni_config.xml and it looks like I am getting data from the camera. I
have attached an image of what I am seeing.
In the config file, I don't see any settings for joint data in it. I don't think I am getting anything. Do you have some other example config files or patches I could look at? I am trying to track hands and head.
Also, I get a lot of output like this...
OSC: calibrating 3
OSC: calibration bad 3
OSC: calibrating 1
OSC: calibration bad 1
OSC: calibrating 3
OSC: calibration bad 3
OSC: calibrating 1
OSC: calibration bad 1
Does this mean something?
You have to stand up in front of the kinect. For starters try to pose yourself head to toe in front of it. You will know that something is going on if you will see your silhouette in the 4th jit.pwindow. And data will start coming out of the 5th jit.openni output (incl. head tracking data). Good luck!
All the thanks go to Dale!
If you are on Windows, I recommend you switch to dp.kinect. It has far more performance, features, and regular updates. A caution, OpenNI (the group that created it and the drivers/API itself) is dead and they are deleting their website this April 2014.
jit.openni and all the other applications will continue working with no problems as long as the operating systems (Windows, Osx) can continue to run the drivers and compiled binaries. No need to panic now. Yet, sometime in the unknown future, it is possible that the drivers for OpenNI will no longer run on your operating system.
What ygreq writes is correct. OpenNI needs to see more of your body to track it. It does not track well (calibrations are failing) when you are sitting. OpenNI does not track individual fingers.
dp.kinect uses the Microsoft Kinect SDK and *can* track sitting down. So far they have not enabled/released individual finger tracking.
Hey guys, thanks for the info. I am working in an OSX environment. I will try it again, this time with more of my body!
Hi I have a simple question... Is it possible to use the dp.kinect object with a xbox kinect or I absolutely need a Windows kinect? And if I can use the Xbox kinect does that mean that I have to remove all my openni drivers so I cannot use other softwares that use openni drivers. I am asking that because I saw in the wiki that dp.kinect does not support openni and the windows sdk.
You have a few questions wrapped in there.
* The low-level Kinect hardware drivers are incompatible between the Microsoft Kinect SDK and OpenNI. The Kinect is like any other hardware, you can have only one installed/active hardware driver for it.
* dp.kinect is based on the Microsoft Kinect SDK and Runtime. It will work with any sensor that SDK/Runtime supports (to date, the XBox Kinect and Kinect for Windows). Microsoft has licensing terms which I refer to in the wiki at https://github.com/diablodale/dp.kinect/wiki#wiki-setup and they currently enforce their licensing terms through their SDK/Runtime. Those terms could change at any time. And how they enforce those licensing terms through their SDK/Runtime could change on any new release of the SDK/Runtime. As of today 8 March 2014, their licensing terms state (summarized) you can use an XBox Kinect during your development and that you must use a Kinect for Windows for your release/product. There are some slight feature differences between the two sensors; the Kinect for Windows is more capable.
That answer your questions?
So in a nutshell, if I want to use dp.kinect I have to remove anything thats related to openni on my windows7 pc ? And if i want to use a software on my machine that only works with openni, I cant use the kinect with that software anymore or theres a workaround...
Thanx
Ben
What you write isn't correct. I'll write now a simplified statement which is partially incorrect; please reference my post above for details and more correctness.
[nutshell]You cannot make a Kinect work on OpenNI and on the Microsoft Kinect Runtime at the same time on the same PC. You get one...or the other...not both.[/nutshell]