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 . . .

   

Installation Instructions:

Hardware Compatility:

See the Hardware Compability Matrix (wiki)

Version 0.8.0 and later

Linux:

What you'll need:
  • nvidia drivers (7664 and later)
  • glut
  • imlib11-dev Imlib development libraries
  • libdc1394-dev (and 1394 support (raw1394 or video1394))
  • Cg Compiler (cgc) (from nvidia.com website)
  • libcommoncpp2-1.0-0c102 (available as apt package for easier install)
  • libcommoncpp2-dev
For example the following line installs the necessary packages on a Debian/Ubuntu System:
apt-get install freeglut3-dev libimlib2-dev libcommoncpp2-dev libdc1394-dev libfltk1.1-dev libxml2-dev imlib11-dev libxml-dev

Basic Installation:
  1. Make libopenvidia.a library. type:
    make
  2. Make some example programs. go into the directory "examples" and type "make", i.e.:
    cd examples
    make
    this will make 3 executables: cgExample, Dc1394example, and featureExample
See the README.TXT file for more information.

Also make sure you are running at 24 bpp bit depth or it may report "framebuffer unsupported".

Windows:

What you'll need:
  • Only cameras supported are Firewire webcams
  • CMU 1394 Drivers installed from http://www.cs.cmu.edu/~iwan/1394/ (version 6.3)
  • glew, glut, Cg (dlls included in OpenVIDIADemo.zip)
Basic Installation:
  • The Demo zip contains a .h, .lib, and .dll which are precompiled binaries from the 0.8.3 version source. These precompiled binaries and the header can be used to start using OpenVIDIA. Otherwise, compile the source in the 0.8.3 package as a DLL. (Note: be sure to use 'release' compiler profile when timing as the 'debug' profile generates slow STL code).

Versions up to 0.72

Plain text version of this page

What do you need?

  • A graphics card, with any of the GeForce FX series or later GPUs.
  • nvidia drivers
  • glut
  • imlib-dev Imlib development libraries
  • libxml-dev
  • libdc1394-dev (and 1394 support (raw1394 or video1394))
    (note: firewire hardware is supported for video input, but it is not required. You can run many programs using image files). Currently we support 1394 devices using the raw1394 and video1394 interfaces (typically webcam-like devices).
  • jpeg (or jpeg-mmx better)
  • fltk (fast,light toolkit)(optional)

  • videorbits (version later or equal to 2.204)
  • Cg Compiler (cgc)
  • Cg development kit
  • xnee and libxnee
  • libcommoncpp2-1.0-0c102 (available as apt package)
  • libcommoncpp2-dev

Basic Installation:

First, compile VideoOrbits-2.204 (from comparametric.sf.net), using : "./configure; make"

Assuming you have all the packages listed below, type:

make VO_DIR=[path_of_videoorbits-2.204] CG_DIR=[path_of_SDK]

where [path_of_videorbits-2.204] is where videorbits-2.204 (or greater is) and [path_of_SDK] is the Cg SDK path

example:

make VO_DIR=~/videorbits-2.204 CG_DIR=~/SDK

by default, the above options are assumed. So if you download the Cg SDK to your home directory, and untar videorbits-2.204 from your home directory, all you'll have to do is type: 'make'

However, you first need to following packages. Typically, if there's a compilation error, it is because the following libraries are not present:



Installation instructions for Red Hat:

Contributed by Alvin Chin

  1. VideoOrbits-2.204 - installed
  2. Download Cg_Linux.rpm from developer.nvidia.com/object/cg_toolkit.html
  3. For installing Cg compiler, for Red Hat need to install glibc-common-2.3.2-11.9.i386.rpm from RedHat Linux 9.0 CDs Disk 1. If install as development workstation then no need to install anything, it should work.
  4. Install latest NVIDIA drivers from http://developer.nvidia.com/object/linux_cg_toolkit.html and follow the LinuxSDK.html file.
  5. For compiling the CG toolkit samples, may need to edit the Makefile to include the following:
    ifeq ($(OS), "Linux")
      CFLAGS += -DUNIX
      LFLAGS += -L/usr/X11R6/lib -lglut -lXi -lXmu -lXext -lX11 -lGLU -lGL
    endif
    
  6. Total packages I had to install (some from Internet):

    Cg-1.2.1-Linux.rpm
    commoncpp2-1.0.12-0.i686.rpm
    commoncpp2-devel-1.0.12-0.i686.rpm
    glut-3.7-12.i386.rpm
    glut-devel-3.7-12.i386.rpm
    jpeg-mmx-0.1.4-1.i386.rpm
    libdc1394-0.8.1-1cl.i386.rpm
    libdc1394-0.8.1-1cl.src.rpm
    libdc1394-devel-0.8.1-1cl.i386.rpm
    libraw1394-0.9.0-1.i386.rpm
    libraw1394-0.9.0-1.src.rpm
    xnee-1.0.2-1.i386.rpm
    NVIDIA-Linux-x86-1.0-5336-pkg1.run

Video4Linux support

Video4Linux support is included. See simple-v4l1.cc for usage. It is currently configured for the popular Phillips Webcam. If you have another camera, try uncommenting #define HAVE_PWC_DRIVER in V4L1.cc

Compiling Trouble with libdc1394 libraries

Some versions of the ieee1394 camera control library called libdc1394 have a different interface. On Debian, libdc1394-10-dev has an extra argument to the dc1394_dma_setup_capture() function, different from the other libraries. OpenVIDIA [0.04-0.07] uses this extra argument. If you have a different library version, take out the extra argument in the function calls. The extra argument is commented as "extra buffers" in Dc1394.cc and Dc1394Capture.cc.

Removing the argument completely by commenting out the line should resolve the problem. This patch (Dc1394-patch.patch) does exactly that, and will make OpenVIDIA work with libdc1394 libraries without this argument. Apply it using
patch -p0 Dc1394.cc < Dc1934-patch.patch
Do the same with Dc1394Capture-patch.patch to Dc1394Capture.cc.

Openvidia-0.71 and onwards will not use the extra argument.

Compiling Problems with the NVIDIA SDK

Firstly, you need to make sure you have the SDK downloaded from the NVIDIA CVS repository. The .zip file from developer.nvidia.com does not work with OpenVIDIA. Follow the CVS download instructions from the developer.nvidia.com site to get their CVS version.

Then, compile it. You might get an error regarding libnvparse.a and something about "INITIAL" undefined. If this happens, what seems to work is adding the line "#define INITIAL 0" to the file that the compile fails on.

g++ version

There can be problems compiling on g++ version 3.4. Previous versions seem to work ok, and can usually be found at /usr/bin/g++-3.3 or /usr/bin/g++-3.2 and so on...

A note on shared memory areas:

A number of the programs use shared memory areas for communication between graphics cards running in parallel. These memory areas are sometimes incorrectly created. If you have this problem, try 'make glestpchirp2m' then running it first. It will create the shared memory areas.

Additional Help

Feel free to post in the forums, or email the 'make' output which failed.