ViSP
Home
General overview
Download
Install from source
Install SDK
Documentation
FAQ
News
Overview
Visual servoing
Image processing
Computer vision
Simulation
Tools
Development
Third-party libraries
InriaGForge
SVN repository
Testing dashboard
Bug tracker
Support
Forum
Mailing lists
Contact us

Image processing

ViSP provides image processing algorithms mainly dedicated to visual tracking. The tracking methods enable to track basic image shapes like points, lines or ellipses. Moreover it is possible to track complex shapes described by a 3D model. 3D tracking methods are also provided here.


Tracking

The tracking algorithms are decomposed in several classes:

  1. Dot tracker
  2. KLT tracker
  3. Moving edges tracker

These technics are presented below. If you need a technical help, please check first ViSP API documentation.

Dot tracker

ViSP provides algorithm to track white dots on a black background, or black dots on a white background. A dot is a part of image where the connected pixels have the same level. In ViSP, it exists two classes which implement this kind of tracker. They are vpDot and vpDot2. The second one is more efficient and more robust than the first one. When a dot is tracked it is possible to get the value of its zero, first and second order moments.

Tracking of four points using the dot tracker.
[source code]
Tracking of an non ellipsoïdal shape using the dot tracker. [source code]

KLT tracker

ViSP has also been interfaced with the OpenCV library to provide a KLT (for Kanade - Lucas -Tomasi) tracker. The goal is to align a template to an input image. Typically, points of interest can be tracked thanks to this method. In ViSP, Harris points are used to detect the points which are relevant to follow. The class which implements the tracker is named vpKltOpencv. It requires the installation of the OpenCV library.

The following video is an example of use. The points are automatically detected during the initialisation step.

Example of points tracking using the KLT tracker. [source code]

Moving edges tracker

The moving edges tracker is based on matching through convolution masks. There are three classes in ViSP using this method : vpMeLine, vpMeEllipse and vpMeNurbs. The method is quite simple. The edge is sampled. And at each iteration the samples are tracked along the normal to the edge. The equation of the edge is computed at each iteration. It enables to find the normal to the edge at each sample and detect the outliers. The following picture illustrates the edge detection for one sample.

The following videos show different features that can be handled by this tracker.

Tracking a straight line with the moving edges tracker.
[source code]
Tracking two straight lines with the moving edges tracker.
[source code]
Tracking an ellipse with the moving edges tracker.
[source code]
Tracking a CD with the moving edges tracker.
[source code]
Tracking a nurbs curve with the moving edges tracker.
[source code]
ViSP 2.6.1 latest release
Download
API documentation
Resources
Getting started
ViSP data set


| Lagadic | Map | Team | Publications | Demonstrations |
Irisa - Inria - Copyright 2012 © Lagadic Project