OpenVIDIA : Parallel GPU Computer Vision




Home

Features

Screenshots & Videos

Installation
Instructions


Quickstart

Programming
Example v0-0.07x


Programming
Example v0.8


Computer Vision with CUDA (new 1May08)

Framebuffer Objects

Download

Papers

Contributing

Project
sf.net project page
Tracker Tracker

 - Bugs ( 0 open / 0 total )
Bug Tracking System

 - Support Requests ( 1 open / 1 total )
Tech Support Tracking System

 - Patches ( 1 open / 1 total )
Patch Tracking System

 - Feature Requests ( 0 open / 1 total )
Feature Request Tracking System


Forums Forums ( 246 messages in 2 forums )
Docs Doc Manager
Mail Lists Mailing Lists ( 0 mailing lists )
Screenshots Screenshots
Tasks Task Manager
There are no public subprojects available
CVS CVS Tree ( commits, adds ) known bug
FTP Released Files

Related Projects

Comparametric Toolkit

Reference Links

Open GL Reference

nVIDIA cg homepage

GeForce FX Overclocking

GPGPU

gpu's arent just good for vision and computation - some clever folks have started using them for games as well. ;) har har linux-games.net

7 Years of Graphics Card History

SourceForge.net Logo

Page design based on Blosxom (which was used originally before the move to sourceforge).

This page best viewed with Dillo, Lynx, w3m, Mozilla-Firefox, Galeon, Epiphany, konqueror . . .

   

The FLfeature program : Feature based Scene Recognition/Management



Screenshot of the FLfeature program

What are we looking at?

The above pic is a screenshot from the FLfeature program. It is running at the framerate of the camera. In this case it is 10fps for the $20 USB camera used since thats as fast as it can supply images, but it does run 30 fps or higher if the camera can support it. On the left is the video image is of a bunch of bins holding coffee beans in a coffee shop. On the right is the "Scene Manager" GUI (in openvidia-0.8.1).

What does it do?

In a nutshell FLfeature is a program that uses the camera to recognize a known scene. This is achieved by first asking the program to record a scene's features as a reference. Then, in each frame of video, the current features are matched to this saved reference. If its looking at the same scene, it should find a number of feature matches and output that it has detected the recorded reference.

How to use it?

Here's a few simple steps to get started:
  1. Point your camera at the scene you want to recognize. Then press the "Take New Reference" Button. This stores the current scene features in memory.
  2. Type in a file name and save it to a file by clicking the "Save" button.
  3. To track/recognize it again, enter the filename you saved and click the "Load" button. The program will start comparing the curent video frame to your saved reference.
In the image below, we've saved the scene and loaded it to be recognized. Then, the camera was moved. The yellow lines in the video image show the correspondences between features linkin their current position to their position in the reference image.

Screenshot of the FLfeature program after the camera has moved

The "Remove" Button can be used to remove a scene from the list of loaded scenes.

At the top, there are two statistics. In the screenshot above it has matched 44 features to the reference, out of a total of 93 features detected in the current video image.

At the bottom of the Scene Manager window, the "Matched Scene" box displays which scene has been recognized, and the framerate of the program. The bottom line is a status line which shows some feedback from the program as you click on things.

Going further

Currently we hope to allow recognized scenes to trigger events such as overlaying a registered graphic onto the video. For those familiar with C/C++ this should be straightforward to customize by lookin at the code. Currently it recovers a projective coordinate transformation suitable to for 3D-projection of a plane onto the scene.

The algorithm searches for groups of features that move with a planar projection. So, it works best on planes, or near planar static scenes.