Cléopatre: Real-Time Vision

Overview

Real-Time Vision
  1. Overview
  2. Shelves
  3. Detailed content
  4. Publications

This page is a global and synthetic view of the Real-Time Vision shelf of the Cléopatre project. It contains the latest version of each package with its documentation, and related publications.

The purpose of Vision COTS is to provided software components to enable a mobile robot in a cooperative industrial environment to localize itself and to detect and avoid obstacles. It should also provide software elements to do video streaming through the Internet with a dynamic control of quality, to allow a human superviser to check or command it remotely.

The Vision shelf is composed of five packages which detailed description is given further.

  • cleo.visionAlgorithms package is a collection of temporally-optimized vision processing algorithms, dedicated for very constrained robotic applications where the size of the generated code must be reduced as much as possible. For this, each algorithm is provided in an independant file that can be compiled separately.
  • cleo.visionToolkit is an integrated version of these. It contains all previous vision algorithms in two libraries, the first one for user space applications and the other for kernel space. It also includes several tools for grabbing frames from a video source, sending them through network sockets, FIFO, or storing them into files or shared memory area. Also, a graphical debugging tool is provided to inspect a running real-time vision processing chain.
  • cleo.simulator is a 3D simulator of a mobile robot equipped with a robotic head and several cameras, evolving in an industrial environment. It has been designed in order to be substituted to a real robot without modification of the vision part, and the simulated robot can be commanded in close loop through fifos and odometry. Several options allow the user to personnalize environment: lighting conditions, static or mobile obstacles, landmarks, etc.
  • PredN allows to manage softwares applications that are described as objects linked to generic scheduling classes, and to separate real time components from other elements of a complex robotic appication.
  • Quality is an experimental platform for the measure of the quality of video streams for teleoperation.
    The purpose of this platform is to control the quality of a video stream transmitted by a mobile robot to a human operator.
    Implementation uses 3 measurements of the quality of a H263+ stream transmitted on a local network.

Shelves

Cléopatre Vision Components
Algorithms Toolkit Simulator PredN Vision Quality
User's Guide
ps pdf
User's Guide
ps pdf
User's Guide
pdf
Technical Report
pdf
Reference
ps html.bz2 pdf
Reference
html.bz2
Reference
html.bz2

Publications
Cléopatre Vision: Technical Report 2005 Technical Report for the Real-Time Vision part of Cléopatre project.
PhD Thesis 2005 Dynamically Reconfigurable Robust Real-Time Vision System for Mobile Robotics
RoboCup 2005 New Video Rate Region Color Segmentation and Classification for Sony Legged RoboCup Application
ISSPA 2005 Clear Box Evaluation of Vision Algorithms Application to the Design of a new Color Region Growing Segmentation for Robotics
SPIE 2005 Video Rate Color Region Segmentation for Mobile Robotic Applications
SPIE 2005 Temporally Optimized Edge Segmentation for Mobile Robotics Applications
MVA 2005 Fast Quality Measurement of a H263+ Video Stream for Teleoperating a HRP-2 Humanoid Robot
JFAAA 2004 Algorithme d'ordonnancement de la bibliothèque open-source Cléopatre : application à la réalisation d'un système de vision temps-réel dynamiquement reconfigurable.
RSJ 2004 New Image Quality Measurement of a H263+ Video Stream for Teleoperation
ISSPA 2003 Towards a Method to Compare and to Evaluate Fast Pixel Gathering Mechanisms for Real Time Robotic Vision Systems
GRETSI 2003 Vers une Méthode d'Evaluation Comparée de Mécanismes de Regroupements de Pixels : Application à la Décomposition en Composantes Connexes et à la Croissance de Régions pour l'utilisation dans un Système de Vision Robotique Temps Réel

Videos and Sequences
Pekee, straight to boxes: avi, mpeg4, sequence.
Pekee is running straightforward on a tiled floor in a place full of boxes, that are quite geometric shapes in background. The purpose of this sequence is to study the apparent optical flow measured on the floor, and to segment the view in order to localize the possible obstacles.
As this sequence has been recorded with a wireless video camera in a place with several magnetic disturbance sources, interferences can be seen at the top of the frames.
Pekee, straight to wall: avi , mpeg4 , sequence.
In this sequence, Pekee is running straightforward in to a wall. This wall is granulous and has apparent bricks. The purpose of this sequence is to see if optical flow or segmentation operators are able to detect that this type of surface is an obstacle coming closer.
Pekee, turning camera off: avi , mpeg4 , sequence.
In this sequence, the camera is suddenly unplugged. The pupose of such a sequence is to check that a vision system is able to detect an anomaly and to send warning messages to the higher level management operator. With such kind of noisy image, there should not be any regions or outlines detected.
Simulator, closed-loop commanded through FIFO: avi, mpeg4, sequence.
For this sequence, the simulated robot is commanded through FIFO by an external application, and sends back odometry measures to this controller. This sequence has been made to have a sequence representative of a robot evolving in an industrial environment and avoiding obstacles.
Simulator, closed-loop commanded with monospectral lights: avi, mpeg4, sequence.
This sequence is the same as the previous one, except that 2 monospectral (red and blue) and a white light have been set. It generates an inhomogeneous lighting that can be perceived by human eye (which is more difficult with three white lights).
Simulator, still robot with variable lighting: avi, mpeg4, sequence.
In this sequence, the robot does not move, and there is a single light commanded through FIFO by an external application, in order intensity to variate pseudo-sinusoidally. This allows to see results of various segmentation operators when lighting conditions are not constant.
Simulator, collision with variable lighting: avi, mpeg4, sequence.
For this sequence, the simulated robot is going straightforward and will collide a box. At the same time, light is decreasing. The purpose of this sequence is to check how much this hinders the collision detection.
Simulator, single attenuated light: avi, mpeg4, sequence.
In this sequence, the robot is going straightforward in a corridor without obstacles. The light is not commanded, but its attenuation parameter is set so intensity is decreasing when the robot is moving away the light source.
Mobile object commanded in open-loop, rotating.: avi, mpeg4, sequence.
In this sequence, a textured mobile octaedron is commanded in open-loop by an external application in order to have a rotative movement. Texture has been set by the user. The interest of this sequence is to display the optical flow generated by this particular texture for this particular movement.
Mobile object commanded in open-loop, translating.: avi, mpeg4, sequence.
In this sequence, a textured mobile cube is commanded in open-loop by an external application in order to be translated. The interest is the same as above: detect a mobile object and determine its movement.
Two mobiles objects, rear flares moving away: avi, mpeg4, sequence.
As up to four independent mobiles object can be used at the same time, this sequence shows two red cubes moving away. This is used to simulate rear flares of a vehicle (e.g. another robotic conveyor), and to determine its distance with a color region segmentation (knowning spacing between flares).

Detailed Content

cleo.visionAlgorithms

cleo.visionAlgorithms package is a collection of temporally-optimized vision processing algorithms, dedicated for very constrained robotic applications where the size of the generated code must be reduced as much as possible. For this, each algorithm is provided in an independant file that can be compiled separately.
This collection gathers several families of algorithms:

Each family is composed of temporally optimzed versions of each operator, for 1 Byte Per Pixel (bpp) grey scale, 3 bpp interlaced color images (YUV, RGB or BGR), and for 3 bpp planar color images. Some families have also unoptimized implementation of well-known algorithms to provide comparison elements to the user.
Each algorithm is provided with a test application and a benchmark application

cleo.visionToolkit

cleo.visionToolkit is an integrated version of cleo.visionAlgorithm package. It contains all previous vision algorithms in two libraries. A slight difference between these two packages is that the former one uses image light structure, which contains height, width, depth and pixel area. The latter uses instead a heavier frame structure which gathers much more informations in order to be usable by various types of algorithms.
The first library is for user space applications and contains operators for: The second library is for kernel space and has the same content than the user's space one, except that functions that were incompatible with real-time requirements ---as file I/O functions--- have been removed by conditional compilation.
This package also includes several other tools:

cleo.visionSimulator

cleo.simulator is a 3D simulator of a holonomic mobile robot evolving in an industrial environment. It fully depends on cleo.visionToolkit, therefore it must be installed after this package.
This application is highly configurable in order to be used to simulate several kinds of robots, for several kinds of scenarii. Its main features are. All this allows to reach a certain level of realism required to test and validate quantitatively several vision algorithms: Besides, depending of your computer, the simulator can consume a lot of CPU power available. That's why it sends frames through socket: for a nominal use in closed-loop, it is better if the simulator is running on a computer, and the real-time processing chain on another.

PredN

PredN package allows to manage softwares applications that are described as objects linked to generic scheduling classes. Derived from Olivier Stasse's thesis works, it allows to separate real time components from other elements of a complex robotic appication. This approach had been validated before by constructing a visual attention model with this software.

During Cléopatre Project, following developments have been done:

During tests, this package has been installed under several Linux ditributions (Fedora Core 1, Debian and Slackware) without any difficulty. Installation procedure is now the same as the one classically applied by the free software community.

quality

Quality is an experimental platform for the measure of the quality of video streams for teleoperation.
The purpose of this platform is to control the quality of a video stream transmitted by a mobile robot to a human operator.
Implementation uses 3 measurements of the quality of a H263+ stream transmitted on a local network. One of these three measures has been proposed by Gabriel Dauphin (L2TI) to solve the problem of the reference to the original image, as for a network application this one is not available.
Implementation has been done by three Computer Science Master Degree students, and is based on two free softwares projects: ffmpeg and VLC.

Experimental platform has been tested with the HRP-2 humanoïd robot during a teleoperation experiment with two configurations: first one was a 100Mbit/s wired network connection, and the second one used a WiFi wireless link.
With the first configuration, the evaluation of quality measures has been completed successfully; with the second one, only one measurement has been made used of. This experiment has been accepted for an international conference (IAPR Cnference on Machine Vision Applications, 16-18 May 2005).

Publications

2005

Cléopatre Vision: Technical Report 2005 (pdf)

Technical Report for the Real-Time Vision part of Cléopatre project.

Patrick Bonnin

This document is the Technical Report that concludes the Real-Time Vision part of the Cléopatre project.

PhD Thesis (pdf, postscript)
2005/12/08 presentation (ppt, speech, slides)

Dynamically Reconfigurable Robust Real-Time Vision System for Mobile Robotics

A. de Cabrol

This thesis aims to design a quite generic vision system that can be used in robotics. Therefore, it has to meet requirements of embedded systems: robustness, reliability, safety and still a low cost.
So, such a system must be able to make the best use of its resource, and this is possible from now on owing to innovative mechanisms of the real-time layer of the RNTL Cléopatre project, lead by French Ministry of Science and Technologies.
To define precisely the generic skills we were looking for, we analyzed what kind of tasks that were required by the robotic system could only be accomplished by vision system, and what were the constraints imposed by this robotic context. Taking into account these needs with corresponding operators leads to following conclusion: both generic skills and robustness we are seeking need the most exhaustive information extraction in the image, as edges, color regions and optical flow features are complementary, and also perturbed to different kinds of disturbances. Therefore, we have designed and implemented new more efficient operators that fit with real-time processing requirement. Besides, integration of the vision subsystem into a whole robotic application has leaded to design new suitable means of validation and debugging.
When this base of low-level vision processing has been completed, we deigned a specific architecture, adapted to the topic of this thesis. As the system has to be embedded and must not have to get frozen, we have thought about how to use at best real time applicative layer of Cléopatre to obtain the best algorithm architecture adequation that, even if it has been designed to fit closely the constraints, ensure a safe functioning of the robot. Hence we implemented such a dynamically reconfigurable vision system. By that mean, our proposed architecture has been validated, and we set up a methodology to use efficiently fault tolerance mechanisms of Cléopatre for robotics vision.

Robocup Symposium (pdf)

A New Video Rate Region Color Segmentation and Classification for Sony Legged RoboCup Application

A. de Cabrol, P.J. Bonnin, T. Costis, V. Hugel, and P. Blazevic

Whereas numerous methods are used for vision systems embedded on robots, only a few use colored region segmentation mainly because of the processing time. In this paper, we propose a real-time (i.e. video rate) color region segmentation followed by a robust color classification and region merging dedicated to various applications such as RoboCup four-legged league or an industrial conveyor wheeled robot. Performances of this algorithm and confrontation with other existing methods are provided.

ISSPA (pdf)

Clear box evaluation of vision algorithms: application to the design of a new color region growing segmentation for robotics

Aymeric de Cabrol, Patrick J. Bonnin, Maryline Silly-Chetto, Vincent Hugel et Pierre Blazevic

We propose a Clear Box Evaluation Methodology. Its goal is to create new region segmentations from the principles of well known ones.
We illustrated this by an example of creation of a new color segmentation for robotic vision applications. First, we present the evaluation criteria used for these specific applications. For this purpose, four well known algorithms are evaluated. The results of this evaluation are the outlines of the new created segmentation. Then, the new created method is detailed and evaluated. The quality of the obtained segmentation is widely sufficient for robotic applications and its implementation satisfy the real time constraint (i.e. the video rate).

SPIE (pdf)
2005/08/04 San Diego presentation (zipped ppt)

Video Rate Color Region Segmentation for Mobile Robotic Applications

Aymeric de Cabrol, Patrick J. Bonnin, Vincent Hugel, Pierre Blazevic and Maryline Silly-Chetto

Color Region may be an interesting image feature to extract for visual tasks in robotics, such as navigation and obstacle avoidance. But, whereas numerous methods are used for vision systems embedded on robots, only a few use this segmentation mainly because of the processing duration.
In this paper, we propose a new real-time (ie. video rate) color region segmentation followed by a robust color classification and a merging of regions, dedicated to various applications such as RoboCup four-legged league or an industrial conveyor wheeled robot. Performances of this algorithm and confrontation with other methods, in terms of result quality and temporal performances are provided. For better quality results, the obtained speed up is between 2 and 4. For same quality results, the it is up to 10.
We present also the outlines of the Dynamic Vision System of the CLÉOPATRE Project for which this segmentation has been developed and the Clear Box Methodology which allowed us to create the new color region segmentation from the evaluation and the knowledge of other well known segmentations.

SPIE (pdf)
2005/08/04 San Diego presentation (zipped ppt)

Temporally Optimized Edge Segmentation for Mobile Robotics Applications

Aymeric de Cabrol, Patrick J. Bonnin, Vincent Hugel, Kamel Bouchefra and Pierre Blazevic

As an Edge may be an interesting image feature to extract for robotic visual tasks such as the 3D modelization of the environment of robots by stereovision, we propose in this paper a methodology to implement edge segmentation, then we apply it to design a Temporally Optimized Edge Segmentation for Mobile Robotics Applications.
Using our methodology, we show how it is possible to reduce the duration of an edge detection operator from 100.62ms for the slower case to 10.8 ms for the faster one. This represents a gain of nearly 90ms for the processing time, so nearly a factor of 10 for the speed up.

MVA (pdf)

Fast Quality Measurement of a H263+ Video Stream for Teleoperating a HRP-2 Humanoid Robot

O. Stasse, Neo Ee Sian, K. Yokoi, G. Dauphin and P. Bonnin

This paper describes an experimental software platform for measuring image quality on a H263+ video stream. The goal is evaluate the lost of quality induced by the compression scheme. This architecture has been used while teleoperating a humanoid robot. Among the three quality measurements presented, a new distance is proposed to tackle the reference problem.

2004

JFAAA (pdf)
2005/01/21 Dijon presentation (ppt) (pdf)

Algorithme d'ordonnancement de la bibliothèque open-source Cléopatre : application à la réalisation d'un système de vision temps-réel dynamiquement reconfigurable.

A. de Cabrol, P.J. Bonnin, M. Silly-Chetto and T. Garcia

Cet article décrit d'abord les principes d'un système d'exploitation temps réel modulable, ouvert et libre appelé Cléopatre et montre ensuite son utilité pour réaliser un système de vision temps-réel dynamiquement reconfigurable. Ce système d'exploitation temps-réel construit à partir de Linux se présente sous forme de composants logiciels sélectionnables dans une bibliothèque et chargeables dynamiquement. Les composants sont offerts sur quatre étagères : l'ordonnanceur à priorité fixe ou dynamique, la synchronisation par sémaphores avec des protocoles dits à priorité plafond, la gestion des tâches apériodiques avec des serveurs optimaux et la tolérance aux fautes avec le Mécanisme à Echéance ou le Calcul Imprécis. Finalement, nous décrivons comment ces mécanismes peuvent répondre aux exigences de la vision robotique.

RSJ (pdf)
2004/09/15 presentation (pdf)

New Image Quality Measurement of a H263+ Video Stream for Teleoperation

O. Stasse, G. Dauphin, and P. Bonnin

This paper describes an experimental software plateform to measure image quality on a H263+ video stream. The goal is to measure the lost of quality induced by the compression scheme. The possible application of this platform is to control the encoder according to the quality measurement while teleoperating a mobile robot. Among the three quality measurements presented, a new distance is proposed to tackle the reference problem.

2003

ISSPA (pdf)

Towards a Method to Compare and to Evaluate Fast Pixel Gathering Mechanisms for Real Time Robotic Vision Systems

P. Bonnin, O. Stasse, V. Hugel, P. Blazevic and G. Dauphin

Taking into account the constraints of mobile and autonomous robotics, and the tasks devoted to the vision system embedded on different robots for various applications, we propose a research in matter of fast pixel gathering mechanisms for the connected component extraction and the color region segmentation.
In this work, we studied three different mechanisms, and proposed a new method to compare and to evaluate the algorithms according to two criteria: the speed of processing and the quality of the results for robotic applications. This method allows to choose the most appropriate algorithm for a given robotic application, and to create new algorithms, by hybridizing older ones while keeping interesting properties.

GRETSI (pdf)

Vers une Méthode d'Evaluation Comparée de Mécanismes de Regroupements de Pixels : Application à la Décomposition en Composantes Connexes et à la Croissance de Régions pour l'utilisation dans un Système de Vision Robotique Temps Réel

P.J. Bonnin, O. Stasse, V. Hugel, P. Blazevic and M. Silly-Chetto

We propose a method to compare and to evaluate the algorithms of fast pixel gathering mechanisms for the connected component extraction and the color region segmentation. The evaluation is based on two criteria: the speed of processing and the quality of the results for robotic applications.