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

Computer vision

ViSP provides computer vision algorithms.

3D Model-based tracker

The 3D model-based tracker consists in computing the pose of a 2D or 3D object in an image sequence. The tracked object is described thanks to a 3D model in which are stored its edges.

The tracking method is divided in two steps. The first one consists in tracking the edges of the object. For this, the same principle as for the moving edges tracker is used. It means that at each iterations samples along the edges are tracked along the normal to the lines. Then, the second step consists in determining the pose in order to match the tracked samples with the projection of the 3D model. To compute the pose, a robust virtual visual servoing method is used.

The tracker is implemented in ViSP in a class named vpMbEdgeTracker. To be used, it requires two files : a 3D model and a configuration file. If you initialise the tracking thanks to mouse clicks, you will need another initialisation file.

The following video illustrates the capabilities of the model-based tracker.

description
Object tracking using the 3D model-based tracker.
[source code]
3D model and configuration file

Pose computation

In ViSP, there are several methods which enable to compute the pose of the camera. The first one consists in using the vpPose class. It allows pose computation using classical Dementhon, Lagrange and Lowe methods, but also virtual visual servoing. Thus, it is possible to get the desired pose thanks to points in the image whose 3D coordinates in the object frame are known. The other way to compute a pose in ViSP is to use the model-based tracker previously described.

The two following videos illustrate the capabilities of those technics.

This video shows an example of pose computation thanks to the vpPose class. The four corners of the postcard are used as the reference points for the pose computation. In order to compute their coordinates in the image, the borders of the postcard are tracked thanks to four vpMeLine. Their intersections give the required 2D coordinates. The postcard frame is displayed in the image in order to check if the computed pose is correct. [source code] This video shows an example of pose computation thanks to the model-based tracker. The post card frame is displayed in the image in order to check if the computed pose is correct. [source code]

Point matching

The point matching algorithms are used to detect a registered object in an image. It enables for example to initialise the tracking.

ViSP has been interfaced with OpenCV to provide point matching algorithms. SURF key points and the FERNS classifiers are provided.

The point matching algorithms can be useful to initialise the tracking step during a visual servoing experiment. Compared to the tracking methods, they are quite slow. That's why we recommand them for initialisation. If you need a documentation about the ViSP classes, you should check the ViSP API documentation.

The two next videos illustrate the capabilities of those technics.

Example of point matching using the SURF keypoints. [source code]

Example of point matching using the FERNS classifiers. [source code]


Camera parameters calibration tool

This video shows how the camera calibration tool provided with ViSP works to compute the intrinsic camera parameters from four images of a 2D grid provided by a webcam. The [source code] used here comes from ViSP examples. ViSP provides also tools perform the hand-eye calibration.
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