Section: New Software and Platforms


Keywords: Computer vision - Robotics - Augmented reality - Visual servoing

Scientific Description

Since 2005, we have been developing and releasing ViSP [5], an open source library available from http://visp.inria.fr. ViSP standing for Visual Servoing Platform allows prototyping and developing applications using visual tracking and visual servoing techniques at the heart of the Lagadic research. ViSP was designed to be independent from the hardware, to be simple to use, expandable and cross-platform. ViSP allows to design vision-based tasks for eye-in-hand and eye-to-hand visual servoing that contains the most classical visual features that are used in practice. It involves a large set of elementary positioning tasks with respect to various visual features (points, segments, straight lines, circles, spheres, cylinders, image moments, pose...) that can be combined together, and image processing algorithms that allow tracking of visual cues (dots, segments, ellipses...) or 3D model-based tracking of known objects or template tracking. Simulation capabilities are also available.

Functional Description

ViSP provides simple ways to integrate and validate new algorithms with already existing tools. It follows a module-based software engineering design where data types, algorithms, sensors, viewers and user interaction are made available. Written in C++, ViSP is based on open-source cross-platform libraries (such as OpenCV) and builds with CMake. Several platforms are supported, including OSX, Windows and Linux. ViSP online documentation allows to ease learning. More than 250 fully documented classes organized in 16 different modules, with more than 200 examples and 35 tutorials are proposed to the user. ViSP is released under a dual licensing model. It is open-source with a GNU GPLv2 license. A professional edition license that replaces GNU GPLv2 is also available.

  • Participants: François Chaumette, Eric Marchand, Fabien Spindler, Aurélien Yol and Souriya Trinh

  • Partner: Inria, Université de Rennes 1

  • Contact: Fabien Spindler

  • URL: http://visp.inria.fr

Figure 1. This figure highlights ViSP main capabilities for visual tracking, visual servoing, and augmented reality that may benefit from computer vision algorithms. ViSP allows controlling specific platforms through hardware abstraction or in simulation. ViSP provides also bridges over other frameworks such as OpenCV and ROS. All these capabilities are cross-platform. Moreover, for easing the prototyping of applications, ViSP provides tools for image manipulation, mathematics, data plotting, camera calibration, and many other features. ViSP powerful API is fully documented and available on Github as an open source software under GPLv2 license.

In December 2015, ViSP 3.0.0 new modular architecture was released. The corresponding source code tarball was downloaded 2138 times, much more than the previous 2.10.0 release that was downloaded 1412 times. This confirms that ViSP popularity is increasing and motivates the efforts we are doing since more than 10 years to improve the software. ViSP 3.0.0 last release was packaged for Debian, Ubuntu 16.04 LTS, Arch Linux, OSX and ROS. ViSP 3.0.1 next release is in preparation and should be released at the beginning of 2017. This release will be also packaged for iOS devices. In this new version we introduced new wrapper for USB-3 or GigE PointGrey cameras, Haption haptic device, ATI force/torque sensors, Intel RealSense RGB-D devices. We also make an effort to optimize some critical code sections using SSE and make possible cross-compilation for Raspberry PI and iOS targets, and also Nao, Romeo and Pepper robots from SoftBank Robotics. We also introduce a new version of the 3D model-based tracker dedicated to stereo tracking, fixed some issues, improved the documentation by providing new tutorials and by updating the existing ones.

Concerning ROS community, all the existing packages in “vision_visp ” ROS stack (see http://wiki.ros.org/vision_visp) were updated and ported to kinetic build system. To ease ViSP usage in the ROS framework, the releases of the year were packaged for ROS.

ViSP is used in research labs in France, USA, Canada, Japan, Korea, India, China, Italy, Spain, Portugal, etc. For instance, it is used as a support in graduate courses at IFMA Clermont-Ferrand, University of Picardie in Amiens, Télécom Physique in Strasbourg and ESIR in Rennes. Last August, during the Intel Developer Forum opening keynote, Intel CEO Brian Krzanich introduced the Intel Joule compute module. Using an Intel Joule with glasses from French company PivotHead, Intel demonstrated an augmented reality application that was using ViSP (https://www.youtube.com/watch?v=QRBofzL4MDY).