Techniques in Computer Vision

When building an interactive system it’s important to look at the technologies available. What would be a perfect setup to build a prototype for an interactive system. What are the advantages and disadvantage of the different solutions? In this chapter I explain the technologies I used and why. I explain the basic functions of the prototype and the technology behind it.

Before building my prototype I decided to do some tests in different programming languages and techniques. I did tests three different environments:

  • Processing and OpenCV
  • Processing with SimpleOpenNI
  • Actionscript 3 with Kinect, OpenNi and NodeJS.

In the following videos I have some thoughts about each technology with its advantage and disadvantage

OpenCV in Processing
OpenCV is an open source computer vision library developed by Intel. I used the processing edition from http://ubaa.net/shared/processing/opencv/
OpenCV for Processing is a good tool develop a working prototype in a short time. The problem with Processing edition from OpenCV is, that it needs a lot of performance. In the next two videos we can see the difference with different resolution.

OpenCV and Processing 320 x 240
This resolution works quite good and the performance of the program works fine.


OpenCV and Processing 640 x 480
If we double the resolution the framerate drops rapidly and developing of a smooth program is hardly possible.

Advantage:
– no special gesture needs to be performed in order to get control over to program.
– Tracking starts very fast
– easy to use

Disadvantage:
– performance is not very good

SimpleOpenNI in Processing
Using SimpleOpenNI is a rapid way to access most OpenNI und NITE features.
As soon as the detection is done the program will run smooth and will not require to much performance. There are two different solutions to work with SimpleOpenNI. One is using the NITE function. Usually activated by waving, the other is the Skeleton provided with OpenNI.

Kinect Handtracking using SimpleOpenNI and Processing
Advantage:
– very accurate

Disadvantage
– needs a special calibration wave gesture to get control


Facetracking using Kinect and SimpleOpenNI – NITE.

OpenNI
Advantage:
– very stable in position tracking
– different points of interest easily trackable (head, arms, hands…)

Disadvantage
– needs a special and strange calibration gesture to get control

Actionscript 3 with Kinect, OpenNi and NodeJS.
As seen in my previous example Actionscript 3 and Kinect works quite fast.
Advantage:
– very accurate
Disadvantage
– needs a special and strange calibration gesture to get control
– currently only one trackpoint working very well.