Projet Orion

previous up next contents
Précédent : Présentation générale et objectifs Remonter : Projet ORION, Environnements de résolution Suivant : Grands domaines d'application



Fondements scientifiques

Introduction

Afin de faciliter la construction de systèmes à base de connaissances (SBC), nous développons des moteurs indépendants d'une expertise particulière, mais cependant dédiés à une classe de problèmes. Les classes de problèmes étudiées sont le pilotage automatique de programmes et l'interprétation d'images. Le développement d'outils dédiés fournit des systèmes bien adaptés à l'expression des connaissances et largement utilisables dans différents domaines d'applications.

Pour construire de tels moteurs il est nécessaire de se baser sur une modélisation des connaissances et des méthodes de résolution de problèmes qui interviennent dans les classes de problèmes étudiées.

Pilotage de programmes

 

Participants : Monica Crubézy , Frank [ van]Harmelen, Mar Marcos , Sabine Moisan , Jean-Paul Rigault , Monique Thonnat , Régis Vincent


Mots-clés : pilotage de programmes, planification, réutilisation de programmes, génie logiciel


Résumé : Nous proposons une approche basée sur les techniques des systèmes à base de connaissances pour automatiser l'utilisation de logiciels complexes. Nous étudions le problème de la modélisation des connaissances spécifiques au pilotage de programmes. Cette modélisation sert à définir d'une part des méthodes de vérification de bases de connaissances et d'autre part des moteurs dédiés au pilotage de programmes. Enfin nous réalisons des prototypes développés grâce à une plate-forme logicielle dont le but est de fournir un environnement commun à différents systèmes de pilotage.

Le pilotage de programmes a pour but d'automatiser l'utilisation de logiciels complexes (bibliothèques de traitement d'images par exemple), grâce à des systèmes capables de planifier des traitements et d'en contrôler l'exécution. Le pilotage de programmes est un domaine de recherches récent. Un nombre croissant de travaux sont issus de nombreux domaines techniques et applicatifs. Ces activités de recherche sont souvent motivées par un domaine d'application particulier (tel que le traitement d'images, le traitement du signal ou le calcul scientifique).

Nous proposons une approche basée sur les techniques des systèmes à base de connaissances (SBC).

Un système à base de connaissances pour le pilotage de programmes est généralement constitué :

Modélisation du pilotage

Afin de mieux comprendre la problématique du pilotage de programmes, d'améliorer la qualité de l'utilisation des programmes existants et d'élargir leurs domaines d'applications, les connaissances impliquées dans le processus de prise de décision de l'expert doivent être décrites de manière structurée et indépendante de l'implantation. Ceci peut être atteint en appliquant des techniques de modélisation des connaissances. Nous étudions dans quelle mesure les compétences sur le pilotage de programmes peuvent être représentées explicitement. Une description des connaissances de pilotage de programmes permet le transfert des compétences de l'expert qui a développé la bibliothèque vers des utilisateurs novices. Dans un premier temps, nous avons décrit la connaissance contenue dans les concepts et les mécanismes d'OCAPI [1] à un niveau conceptuel en utilisant le modèle d'expertise de KADS. La spécification fonctionnelle d'OCAPI a été ensuite améliorée et augmentée en se basant sur des techniques de réutilisation de composants logiciels (génie logiciel), des techniques de planification (intelligence artificielle), des systèmes existants de pilotage de programmes et sur notre expérience pratique sur des applications comme la détection d'obstacles dans des scènes routières, l'imagerie médicale et la classification de galaxies.

Vérification de bases de connaissances

Le problème de la vérification de systèmes à base de connaissances de pilotage de programmes est important pour assurer leur robustesse. Cette exigence de robustesse est encore plus cruciale pour des systèmes autonomes. Nous avons choisi de nous appuyer non seulement sur les propriétés des modes de représentation des connaissances utilisés dans les SBC (schémas et règles), mais aussi sur le modèle sur lequel ces systèmes sont basés. Nous étudions des systèmes à base de connaissances construits grâce à des environnements de développement dédiés au pilotage et intégrant donc une modélisation fine de cette classe de problèmes. Cette approche nous offre un cadre approprié pour définir des méthodes de vérification qui prennent en compte les différents types de connaissance impliqués. Notre but est de fournir aux experts une aide pendant la construction d'une base de connaissances, en intégrant la vérification dans la méthodologie de développement du système à base de connaissances. L'application de méthodes de vérification classiques, fortement basées sur la syntaxe des modes de représentation des connaissances, doit être précédée d'une étude détaillée du rôle que les différents types de connaissances jouent dans les systèmes de pilotage. Ainsi, l'utilisation et la représentation des connaissances sont prises en compte de façon complémentaire pour la vérification. Ceci implique des vérifications syntaxiques, structurelles, aussi bien que sémantiques (sur le rôle des objets, par exemple). Étant donné une base de connaissances et le modèle du moteur de pilotage qui va l'utiliser, notre but n'est pas seulement de vérifier la consistance et la complétude de la base, mais aussi de vérifier l'adéquation de la connaissance par rapport à la façon dont le moteur va l'utiliser. Pour cela, nous avons entrepris la modélisation de différents moteurs de pilotage.

Plate-forme de développement de systèmes de pilotage

La construction d'outils dédiés à une classe de problèmes particulière (ici le pilotage de programmes) offre deux avantages : tout d'abord focaliser les modèles de connaissances fournis par les outils sur les besoins de la classe de problèmes, et ensuite fournir des formalismes unifiés et communs aux bases de connaissances d'une même classe de problèmes. Nous souhaitons aller plus loin et faciliter aussi l'écriture des moteurs eux-mêmes, afin de pouvoir décrire une stratégie de pilotage à un niveau abstrait et de pouvoir facilement changer de stratégie selon les besoins. C'est dans ce but qu'a été développée la plate-forme LAMA, qui fournit un environnement commun à différents systèmes de pilotage, comportant un langage de description et des facilités de vérification de bases de connaissances, ou des interfaces graphiques. Grâce à une telle plate-forme, il est possible de concevoir facilement différents moteurs. Une même base de connaissances peut être utilisée par différents moteurs moyennant quelques modifications bien identifiées en fonction du moteur tout en gardant le même environnement de développement.


   Figure: L'architecture de LAMA. Le centre est constitué d'une bibliothèque de composants réutilisables pour construire des moteurs. La plate-forme comporte le langage de description de bases de connaissances YAKL, des outils de vérification (V&V), des modes de développement sous Emacs et des outils optionnels comme les interfaces graphiques ou un module d'apprentissage.

\begin{figure} \centerline{ \includegraphics [width=6.5cm]{Figures/architecture.id} }\end{figure}


La plate-forme (voir figure [*]) comprend principalement une bibliothèque de composants réutilisables pour construire des moteurs de pilotage de programmes, un langage de description de base de connaissances (YAKL), un serveur de messages (LAd), des interfaces graphiques, et des outils de vérification de base de connaissances.

Bibliothèque de composants. La bibliothèque de composants [6] comprend, d'une part, des structures représentant les concepts intervenant en pilotage de programmes et, d'autre part, des instructions nécessaires à la description des stratégies de raisonnement en pilotage. Elle facilite la construction de moteurs ou de variantes de moteurs en permettant de décrire leurs stratégies de raisonnement à un niveau abstrait, plus simplement et plus rapidement qu'avec un langage de programmation. De plus, les évolutions des moteurs sont simplifiées en cas d'évolution des spécifications, des besoins ou des contraintes. Cette approche permet une vision unifiée de différents moteurs et fournit une base commode de comparaison entre stratégies de pilotages.

Langage de description de bases de connaissances.  YAKL (Yet Another Knowledge base Language) permet de décrire le contenu d'une base de connaissances, sans préjuger du langage d'implémentation cible (Lisp ou C++). Ce langage sert à la fois de format de stockage commun à tous les moteurs de la plate-forme et de langage d'écriture ou de consultation de bases de connaissances. YAKL offre une syntaxe proche de la façon dont s'exprime l'expert pour décrire les opérateurs, les buts, les règles de production qui constituent une base de connaissances. Des outils de vérifications lui sont connectés et le code en langage d'implémentation cible est généré automatiquement.

Un mode Emacs associé a aussi été développé afin de fournir une aide syntaxique à l'écriture de bases de connaissances.

Serveur de messages LAd.  Un système de pilotage de programmes est un système réparti, constitué de plusieurs processus applicatifs communiquant entre eux (interface, moteur, bibliothèque de programmes, etc). En particulier les programmes préexistent souvent au système de pilotage et doivent pouvoir continuer à être utilisés de manière autonome. De plus, un système de pilotage peut être amené à fonctionner comme un sous-système spécialisé d'un système plus général. Par exemple, un système de classification d'objets à partir d'images peut déléguer des tâches de traitement d'images à un système de pilotage [Oss96].

C'est pourquoi nous avons mis en place un mécanisme de communications assez général (LAd : LAMA communicAtion daemon) sur le principe des bus logiciels, basé sur des communications par sockets Unix TCP. Son architecture, de type client/serveur centralise la gestion des communications grâce à un serveur de messages. Le serveur communique avec chaque processus client du système au moyen d'un module générique d'émission/réception de messages par client. LAd a été implanté sous forme d'un démon Unix intégrant le serveur de messages et un visualisateur World Wide Web.

Interprétation automatique d'images



Participants : François Brémond , Nicolas Chleq , Véronique Clément , Monique Thonnat


Mots-clés : interprétation d'images, reconnaissance de formes, reconnaissance de scénarios, séquences d'images


interprétation automatique d'images: consiste à attribuer une sémantique aux données en fonction de modèles prédéfinis. Correspond à un sous-problème de la perception, celui de l'interprétation automatique des résultats des traitements d'image ou de signal.

Résumé : L'interprétation automatique d'images est une problématique très difficile qui est la base de nombreux travaux en vision et aussi en intelligence artificielle. La difficulté dépend de la nature des entités à reconnaître et du type d'interprétation recherchée. Dans le projet Orion, nous nous intéressons à l'interprétation automatique d'images qui sont des entités numériques complexes spatiales et/ou temporelles (2D à 4D). Les résultats de l'interprétation peuvent être la reconnaissance d'objets physiques, d'événements, de situations ou de scénarios.

L'interprétation automatique d'images est une problématique très difficile qui est la base de nombreux travaux en vision et aussi en intelligence artificielle. La difficulté dépend en premier lieu de la nature des entités à reconnaître. Il est plus simple de reconnaître des objets statiques et rigides en environnement manufacturés, que des comportements dynamiques de plusieurs objets non-rigides en environnement naturel. La difficulté dépend également du type d'interprétation recherchée. Le problème peut être soit simplement d'étiqueter une entité bien déterminée que l'on peut mettre directement en correspondance avec des modèles, soit de détecter les entités, de les étiqueter et de vérifier leur cohérence (spatiale, temporelle, structurelle, etc).

Dans le projet Orion, nous nous intéressons à l'interprétation automatique d'images qui sont des entités numériques complexes spatiales et/ou temporelles (2D à 4D). Les résultats de l'interprétation peuvent être la reconnaissance d'objets physiques, d'événements, de situations ou de scénarios.

Ce problème d'interprétation se décompose en : une étape de traitement d'images qui permet la détection des entités d'intérêt, et une étape d'analyse de ces entités dépendante du but du système développé qui peut être la classification d'objet ou l'analyse de comportement. La résolution d'un tel problème se révèle complexe de par la double nature des connaissances requises : en effet, l'extraction, à partir d'images d'entrée, des paramètres et des primitives essentiels à l'interprétation nécessite des appels à des programmes de traitement d'images ; de plus, l'interprétation proprement dite ne peut s'accomplir qu'avec la connaissance du domaine que possède un expert sur les entités à reconnaître ou à analyser. L'automatisation des appels aux programmes de traitement d'images est un problème de pilotage de programmes ; il est donc traité dans l'axe de recherche correspondant (cf. module [*]). Les deux points présentés ici concernent les modèles proposés pour l'interprétation : d'une part, pour l'interprétation de séquences d'images allant jusqu'à la reconnaissance de scénarios, et d'autre part, pour la reconnaissance d'objets complexes.

Interprétation de séquences d'images : l'interprétation de séquences d'images a pour objectif, en ce qui nous concerne, de donner un sens à une scène décrivant des activités humaines, à partir d'images fournies par une caméra couleur, monoculaire et fixe. Cette interprétation de scène repose, en général, sur la coopération d'un module de traitement d'images, d'un module de suivi des objets mobiles et d'un module de reconnaissance du comportement des objets mobiles qui s'appuient sur une base de contexte (cf figure [*]). Il s'agit, pour le module de traitement d'images, de détecter les régions mobiles sur la séquence d'images. Le module de suivi associe les régions détectées afin de former et de suivre les objets mobiles. La tâche du module de reconnaissance des comportements consiste, à partir de techniques d'intelligence artificielle, à identifier les objets suivis et à reconnaître leur comportement comme constitutif d'un ou plusieurs scénarios prédéfinis.


   Figure: Architecture d'un système d'interprétation de séquences d'images.

\begin{figure*} \centering \includegraphics [width=14cm,height=6cm]{Figures/sys_archi_sys.id}\end{figure*}


Reconnaissance d'objets complexes : La reconnaissance d'objets complexes a pour objectif, à partir de modèles sémantiques abstraits, la reconnaissance d'un objet non géométrique. Dans une première phase, les traitements d'images sont effectués sur l'image à interpréter ; ils permettent de détecter, d'isoler et de décrire l'objet grâce à des mesures numériques. À partir de ces mesures numériques, le système d'interprétation va ensuite classer l'objet à reconnaître parmi des hiérarchies de classes prédéfinies et structurées qui représentent les modèles sémantiques ; trois étapes récursives essentielles sont impliquées dans cette phase de classement : abstraction des données, mise en correspondance avec une classe prédéfinie, raffinement de la reconnaissance. Pendant la phase de classement, de nouvelles informations peuvent devoir être recherchées à partir de l'image ; nous avons donc mis en place une architecture distribuée entre le système de traitement d'images et le système de classement ; un mécanisme de communications entre ces deux processus permet de gérer les retours bas niveau sur les images tout en conservant la séparation entre les différents domaines de compétence (traitement d'images, domaine d'application).

Notons que la réalisation de tels systèmes opérationnels requiert une somme considérable de travail pour le développement des bases de connaissances et des algorithmes de traitement d'images.



previous up next contents Précédent : Présentation générale et objectifs Remonter : Projet ORION, Environnements de résolution Suivant : Grands domaines d'application