Publications

Olena: A component-based platform for image processing, mixing generic, generative and OO programming

Alexandre Duret-Lutz

This paper presents Olena, a toolkit for programming and designing image processing chains in which each processing is a component. But since there exist many image types (different structures such as 2D images, 3D images or graphs, as well as different value types) the platform has been designed with genericity and reusability in mind: each component is written as a generic C++ procedure, à la STL. Other libraries, such as Khoros have a different approach where a processing component contains an implementation for each type supported by the library. This makes code maintenance hard and prevents easy addition of new image types. Still, Olena is not only a generic component library, it shall contain additional tools such as a visual programming environment (VPE). Those tools may be programmed in a classical object-oriented fashion (using operation and inclusion polymorphism) which may seems antagonist with the generic programming paradigm used in the library. Section 2 outlines the architecture of Olena and elaborates more on the design problems resulting from the use of generic components. Section 3 presents the solution chosen to address these problems.

Urbi et Orbi: Unusual design and implementation choices for distributed virtual environments

Yoann Fabre · Guillaume Pitel · Didier Verna

This paper describes Urbi et Orbi, a distributed virtual environment (DVE) project that is being conducted in the Research and Development Laboratory at EPITA. Our ultimate goal is to provide support for large scale multi-user virtual worlds on end-user machines. The incremental development of this project led us to take unusual design and implementation decisions that we propose to relate in this paper. Firstly, a general overview of the project is given, along with the initial requirements we wanted to meet. Then, we go on with a description of the system’s architecture. Lastly, we describe and justify the unusual choices we have made in the project’s internals.

Action recognition: How intelligent virtual environments can ease human-machine interaction

Didier Verna

This paper describes a research that has been conducted in the field of cognitive assistance to human-machine interaction in virtual environments. The idea is to design a system which, bearing in mind the actions performed by the operator at present and the current state of the environment, attempts to determine the global operation that the user is in the process of executing, and eventually takes control of the same process in order to complete it automatically. This idea implies the conception of an action recognition mechanism based on a specific knowledge representation model. This mechanism is implemented in a computer demonstrator, known as the TOASt system, which is also presented.

Obtaining genericity for image processing and pattern recognition algorithms

Thierry Géraud · Yoann Fabre · Alexandre Duret-Lutz · Dimitri Papadopoulos-Orfanos · Jean-François Mangin

Algorithm libraries dedicated to image processing and pattern recognition are not reusable; to run an algorithm on particular data, one usually has either to rewrite the algorithm or to manually “copy, paste, and modify”. This is due to the lack of genericity of the programming paradigm used to implement the libraries. In this paper, we present a recent paradigm that allows algorithms to be written once and for all and to accept input of various types. Moreover, this total reusability can be obtained with a very comprehensive writing and without significant cost at execution, compared to a dedicated algorithm. This new paradigm is called “generic programming” and is fully supported by the C++ language. We show how this paradigm can be applied to image processing and pattern recognition routines. The perspective of our work is the creation of a generic library.

A framework to dynamically manage distributed virtual environments

Yoann Fabre · Guillaume Pitel · Laurent Soubrevilla · Emmanuel Marchand · Thierry Géraud · Akim Demaille

In this paper, we present the project urbi, a framework to dynamically manage distributed virtual environments (DVEs). This framework relies on a dedicated scripting language, goal, which is typed, object-oriented and dynamically bound. goal is interpreted by the application hosted by each machine and is designed to handle efficiently both network communications and interactivity. Finally, we have made an unusual design decision: our project is based on a functional programming language, ocaml.

Generic programming redesign of patterns

Thierry Géraud · Alexandre Duret-Lutz

This pattern faces the problem of improving the performances of design patterns when they are involved in intensive algorithms. Generic programming is a paradigm in which most classes and procedures are parameterized, thus leading to the construction of general and efficient software components. We demonstrate that some design patterns from Gamma et al. can be translated into this paradigm while handling operation polymorphism by parametric polymorphism. We thus preserve their modularity and reusability properties but we avoid the performance penalty due to their dynamic behavior, which is a critical issue in numerical computing.

An asynchronous architecture to manage communication, display, and user interaction in distributed virtual environments

Yoann Fabre · Guillaume Pitel · Laurent Soubrevilla · Emmanuel Marchand · Thierry Géraud · Akim Demaille

In Distributed Virtual Environments, each machine runs the same software, which is in charge of handling the communications over the network, providing the user with a view of the world, and processing his requests. A major issue in the design of such a software is to ensure that network communication does not degrade the interactivity between the machine and the user. In this paper, we present a software designed to achieve this goal, based on tools rarely used in this area.

Reconnaissance de structures cérébrales à l’aide d’un atlas et par fusion d’informations structurelles floues

Thierry Géraud · Isabelle Bloch · Henri Maı̂tre

Nous proposons une procédure automatique de reconnaissance progressive des structures internes du cerveau guidée par un atlas anatomique. L’originalité de notre procédure est multiple. D’une part, elle prend en compte des informations structurelles sous la forme de contraintes spatiales flexibles, en utilisant les formalismes de la théorie des ensembles flous et de la fusion d’informations. D’autre part, le calcul de la correspondance entre volume IRM et atlas que nous proposons permet d’inférer un champ de déformations discret, respectant des contraintes sur la surface des objets. Enfin, le caractère séquentiel de la procédure permet de s’appuyer sur la connaissance des objets déjà segmentés pour accéder à des objets dont l’obtention est a priori de plus en plus difficile.

Une bibliothèque et un environnement de programmation d’opérateurs de traitement d’images

Régis Clouard · Abderrahim Elmoataz · François Angot · Olivier Lezoray · Alexandre Duret-Lutz

Vers une réutilisabilité totale des algorithmes de traitement d’images

Thierry Géraud · Yoann Fabre · Dimitri Papadopoulos-Orfanos · Jean-François Mangin

Cet article présente l’évolution des techniques de programmation d’algorithmes de traitement d’images et discute des limites de la réutilisabilité de ces algorithmes. En particulier, nous montrons qu’en C++ un algorithme peut s’écrire sous une forme générale, indépendante aussi bien du type des données que du type des structures de données sur lesquelles il peut s’appliquer. Une réutilisabilité totale des algorithmes peut donc être obtenue ; mieux, leur écriture est plus naturelle et elle n’introduit pas de surcoût significatif en temps d’exécution.