tracking

OpenCV Blob Tracking (built for Kinect)

boumabouma's picture

Hi everyone,

I'm pretty new here, but this website/community has helped me a lot during my last project so I figured it's time to donate back :).

During this last project I was building an installation that used Kinect to detect your silhouette and hands, with which you could then control it. Like so: http://vimeo.com/31154077

The reason we used blob tracking is because Synapse was of no use to us due to the calibration every user has to go through. Please note that despite that, Synapse is more accurate and less heavy on your CPU :)

Long story short, I've built this plugin I wanted to share with you. It uses OpenCV and CvBlob to detect the blobs and outputs their position and size as a Structure. The minimum blob size and "movement threshold" (to smooth out glitchyness from the depth image) can be configured in QC.

However, I'm not very experienced with 'cmake', 'make' and install-name, so I've got some problems with including the openCV lib in the plugin. What still needs to be done is:

  • Build (cmake/make) the opencv and cvblob libraries for all required platforms (currently only Snow Leopard 64bits is included I think)
  • change the install-name of the libs so QC can find them from the plugin bundle.

I've been fiddling around with it, but no luck so far. If anyone could give me some pointers or help out that would be swell.

For now this means the plugin wont work without some extra work: placing the openCV and cvblob libraries in /usr/local/lib I've included the libs for 64bit Snow Leopard (in the zipfile in /usr-local/lib), simply copying them and the plugin to their designated place should do the trick. Obviously, building the libraries on your system will also work and you'll know for sure the libs are compatible.

Let me know what you think.

Bounding Box / Mask for PixelS (Composition by benoitlahoz)

Author: benoitlahoz
License: (unknown)
Date: 2011.02.03
Compatibility: 10.6
Categories:
Required plugins:
(none)

I needed to obtain the bounding box coordinates of the PixelS plugin (actually I used the OpenCL version) result to output a mask so...

With a very little work Kineme GL Quad can be replaced by a Kineme 3D plane or whatever...

Motion tracking through CCV, QC and Animata

AB's picture

Hi there,

I'm working on a motion tracking project and got into QC for that. Let me remind you that I'm a complete dummy in QC !

Let me explain where I'm to right now :

An actor wearing IR emiters ( ping-pong balls+IR lightspot ) is filmed with an IR cam (cam+ir filter), so that only blobs shows on the video. ( I tried using Wiimote, but it seems complicated since only 4 blobs are tracked... )

This input video goes through Community Core vision software, that allows me to send OSC signals. It's TUIO, wich means I'm able to grab that data in QC with the plugin available here. So far, I'v been able to track some blobs and have them rendered in QC.

I've also downloaded Mansteri's QC plugin, that allows me to send OSC messages to the software I'm planning to use to compose my puppets : Animata. Each blobs coordinates is to be sent to a precise joint or bone of my puppet, that I can target by using its name. The coordinates are separated. I have a node for X axis, and another one for Y axis...

My problem is that I successfully created a connection between CCV and QC on the one hand, and between QC and Animata, on the other hand, but I just can't figure out how to extract and separates blobs coordinates in QC !

With the TUIO plugin, I get blobs coordinates as a structure. In order to send it to Animata, I have to send x and y coordinates separately and I can't figure out how this can be done...

Knowing nearly nothing of qc language doesn't help... So I'm asking here, can this be done ?

Long story short : I have a structure input type, that contains blobs ids and their coordinates. How can I separate them by ID, then by axis X and Y ?

Hope I'm clear enough here... Dont hesitate to ask for further infos. If you know of a simple way to do what I'm trying to do I'd be glad to hear it !

Thanks for your interest and patience,

See you,

ABelliqueux

zxing qr code reader

Swiftlikeninja's picture

Hey, just wondering if anyone has messed with zxing (google) or any comparable qr code software. Ive seen a video of someone using zxing in windows w/ processing as a fiducial tracker with metadata built into the qr code. Zxing is written in the java environment and I don't know enough about it to really know if there are implementation possibilities, but was thinking that it would be cool to see a qr code tracker in Quartz or even a qr code decoder.

What are your all's thoughts?

Tuio client with reactivision

Swiftlikeninja's picture

Hello everybody, I have been messing with the TuioClient plugin with quartz running on leopard using the reactivision program for fiducial tracking and ran into a snag. If I have one tracker set up to use the xpos, it works without a hitch if I'm only using one tracker. How can I have certain symbols do different things, the reactivision comes with 200+ built in symbols but depending on the order presented then currently that dictates the function. I know the tuioclient has a structure for the c_id but how can I have it do a function based on that and not the initial structure order without having 200+ macro patches set to enable if c_id string matches. I am not a javascripter so if this is the route needed I will need some more assistant but any help world be greatly appreciated.

Forgive me if I'm not making any since just ask and I will clarify