Question: I would like to track humans' path with an (later with many) Asus Xtion looking down from the ceiling.

OpenNI's sample program called UserTracker (which uses the `User Generator` node) would be perfect, if it recognized bodies from top view, but it can't. Because I don't need exact skeleton tracking, just to track basically any moving objects on the screen, I guess there's an easier way for this than rewrite the User Generator's recognition, as I saw it would be tough.  

Maybe the `Scene Analyzer` node would be good for this, but I don't know how.

So anybody have an idea where should I start, which OpenNI classes should I use and how?  
I searched a lot about this and got into OpenNI as I can, but I'm kinda new to it and it's so deep.

Thanks, Ts.

Answer: 
**OpenNI:** For learning how to use OpenNI, take a look at [OpenNI Cookbook](https://www.packtpub.com/application-development/openni-cookbook), and if you don't want to buy the book, you still can use the source codes implemented in the book [here](https://www.packtpub.com/books/content/support/10884).

**OpenNI + OpenCV:** If you want to use OpenNi and OpenCV together, you can follow [this documentation](http://docs.opencv.org/doc/user_guide/ug_kinect.html). If you want a sample code, you can use [this source code](http://seevisionc.blogspot.com/2013/12/opencvkinect-acquiring-kinect-data.html).

**Labeling + Tracking:** For labeling and tracking the objects (in your case bodies), there are lots of implementations available online. As an example, for labeling, take a look at [this thread](https://stackoverflow.com/questions/12688524/connected-components-in-opencv). 
For tracking, you can use [this example](https://www.youtube.com/watch?v=X6rPdRZzgjg). 

For both labeling and tracking together, you can use [this one](https://code.google.com/p/cvblob/).
OpenNI UserTracker is not designed to detect bodies from top view. It detects movement and then based on setting a threshold on depth value of "moving blob" and some internal algorithms classifies the moving object as body, but not from top view. 

You can simply develop similar algorithm if you sure the objects moving beneath the camera are all human bodies. You can set a threshold on depth image and label different blobs as different human bodies, and track them. As an example, the problem could be solved as described [here](http://blogs.mathworks.com/steve/2006/06/02/cell-segmentation/).