• Aucun résultat trouvé

7.2 DMOS-PI : une extension de l’approche DMOS-P

7.2.1 À propos de l’approche DMOS-P

DMOS-P, que nous avons déjà présenté superficiellement dans lasous-section 2.3.3, est un ensemble d’outils, dont un framework et des librairies de base, un compilateurs, et des extracteurs de primitives visuelles, réalisés autour d’une méthode d’interprétation d’image de documents. Un des principes fondateurs de cette approche est qu’il faut être capable de générer automatiquement un programme d’interprétation dédié à un type de document précis à partir d’une description spécifique des contenus à extraire, reconnaître et structurer. L’ensemble des outils génériques qui peuvent être utilisés pour fabriquer un module d’interprétation spécifique et permettent son exécution forment un écosystème dont on pré- sente ici les principaux éléments.

Langage de description La description du contenu de la page est réalisée à l’aide d’un langage grammatical déclaratif appelé EPF (pour Enhanced Position Formalism). Facilement extensible, il permet la génération d’un programme capable de prédire la position des éléments à interpréter, et doté de mécanismes facilitant la gestion des éléments parasites dans le signal de l’image, comme nous le verrons en sous- section 7.2.1.2.

Compilateur Un compilateur permet de générer automatiquement, à partir d’une descrip- tion spécifique des contenus d’un type de document, un programme capable d’inter- préter une image et de produire une représentation informatique des contenus. Moteur d’interprétation Un ensemble de librairies et un moteur d’interprétation sont à

la base du programme généré, et en forment la partie générique. Un module d’in- terprétation de page construit avec la méthode DMOS-P gère automatiquement une recherche guidée par le but, en profondeur d’abord (par défaut) d’un ensemble de contenus conformes à la description fournie. Une représentation avec plusieurs ni- veaux de résolution permet une meilleure extraction des informations contenues dans l’image.

Extracteur de primitives Afin de permettre au moteur d’interprétation (symbolique) de l’image de fonctionner, il est nécessaire de détecter dans l’image des éléments visuels primitifs qui deviennent les terminaux de la description grammaticale utilisée. Ces terminaux peuvent être, en pratique, des segments (à tendance horizontale, verticale, ou autre), des composantes connexes, des lignes. . .

L’ensemble de ces éléments ressemble fortement, à un niveau macroscopique, au mo- dule d’interprétation de page à titre indicatif ensous-section 6.2.2. Cependant, il faut préci- ser que DMOS-P permet la génération de programme d’interprétation utilisés en production pour le traitement de fonds de plusieurs dizaines de milliers de pages. La méthode de po- sitionnement, les techniques de gestion du bruit et de l’incertitude en général font de ce système un objet beaucoup plus complexe que celui qui nous a servi de référence, même si nos propositions ont bien pu être intégrées avec la méthode décrite dans lechapitre 6.

Ce qui suit instancie quelques-uns des éléments que nous venons de présenter. 7.2.1.1 Moteur d’interprétation

Le moteur d’interprétation est au cœur des programmes construits avec la méthode DMOS-P. Il est basé sur un mécanisme d’interprétation de l’image à partir d’une descrip-

tion grammaticale conçu à l’aide d’une variante de Prolog, à savoir une implémentation λProlog [102,13]. Ce langage propose des constructions d’ordre supérieur, permettant l’in- tégration de contexte dans la preuve de buts et la contruction rapide de nouveaux éléments de langages6. À l’instar des DCG (Definite Clause Grammars), les grammaires logiques

proposées par les implémentations Prolog classiques, PROLOG/MALI(l’implémentation de

λProlog utilisée) dispose d’une variante (plus puissante) appelée λHHG, pour Higher-order Hereditary Harrop Grammar(grammaire en formules héréditaires de Harrop d’ordre supé- rieur) [51].

7.2.1.2 Langage de description

Afin d’intégrer les constructions spécifiques à l’organisation bidimensionnelle des ob- jets graphiques des images de documents, DMOS-P propose le langageEPFqui sert de base

à la spécification du problème, en décrivant en particulier : – l’organisation des contenus d’un document ;

– les contraintes sémantiques entre ces derniers ;

– les propriétés utiles permettant la gestion automatique du bruit et des ambiguïtés ; – la construction de la structure résultant de l’interprétation de l’image.

Ce langage utilise intensivement les constructions d’ordre supérieur pour proposer des opé- rateursde description dont voici les principaux.

Opérateur de positionnement L’opérateur de positionnement permet de modifier la zone de recherche du prochain symbole (terminal ou non) à reconnaître. Il s’appuie sur une rela- tion spatiale qui peut être spécifiée par l’expert écrivant la description. Il permet également d’ordonner les éléments à l’intérieur de la zone de recherche pour identifier de façon unique le prochain terminal à considérer. Exemple :

bordureGauche BG && AT(enBas BG) && bordureBas BB où && est l’opérateur de concaténation.

Opérateur d’accès aux terminaux Le système propose par défaut deux types de termi- naux : les segments (objets linéaires) et les composantes connexes (objets bidimensionnels). Il est facile d’intégrer d’autres terminaux, comme des lignes de texte par exemple. Ces opé- rateurs sont les suivants :

TERM_SEG <PreCond> <PostCond> <Label> <Seg> TERM_CMP <PreCond> <PostCond> <Label> <Comp>

où <PreCond> (resp. <PostCond>) sont des conditions (géométriques ou sémantiques) tes- tées avant (resp. après) sélection d’un terminal (permettant un filtrage du bruit), et <Label> est un marqueur utilisé pour construire l’objet manipulé (<Seg> ou <Comp>).

Opérateur de recherche L’opérateur de recherche permet la gestion du bruit et des am- biguïtés au niveau des non-terminaux. Il indique la nécessité d’un élément. Au niveau de l’implémentation, ceci a pour effet de modifier ponctuellement la stratégie de recherche de solution : normalement en profondeur d’abord (depth-first search), celle-ci devient ponc- tuellement en largeur d’abord (breadth-first search) pour forcer la détection du symbole, en général structurant pour le reste de l’analyse.

FIND(Regle) UNTIL(ConditionArret)

Contraintes sémantiques Pour intégrer des contraintes sémantiques dans la description et permettre leur validation, il est possible d’ajouter des fragments de programmes Prolog dans les descriptions, travaillant sur les variables locales à une règle de description. Ces contraintes sont exprimées de la façon suivante :

{ code Prolog }

7.2.1.3 Exemple de description

Afin de mieux présenter le langage utilisé pour la description des documents dans les expériences duprochain chapitre, nous donnons ici un exemple de description écrite dans le langageEPF.

La description suivante est un exemple simple de règle permettant la détection d’un rectangle et le calcul de son aire. Les règles de description sont indiquées en minuscule, et les variables commencent par une majuscule. Les variables se comportent comme dans un programme Prolog habituel : elles sont instanciées grâce à un mécanisme d’unification.

rectangle Aire ::=

TERM_SEG vertical noCond "gauche" Seg1 --> bord_gauche && AT(haut Seg1) &&

TERM_SEG horizontal noCond "haut" Seg2 && AT(droite Seg2) &&

TERM_SEG vertical noCond "droit" Seg3 && AT(bas Seg3) &&

TERM_SEG horizontal noCond "bas" Seg4 && AT(gauche Seg4) &&

TERM_SEG vertical noCond _ _ <-- bord_gauche && { calculer_aire Seg1 Seg2 Seg3 Seg4 Aire }

Dans la règle de description précédente, vertical et horizontal sont des contraintes sur l’orientation des segments, et noCond indique une condition toujours vérifiée (absence de contrainte). On voit aussi l’utilisation d’opérateurs d’affectation (-->) et de lecture (<--) servant à vérifier que le bord gauche est correctement placé par rapport au dernier côté détecté. Le caractère spécial « _ » indique un élément non instancié.

L’appel à cette règlerectanglepeut être fait de la façon suivante : AT(Position) && FIND(rectangle Aire) UNTIL (noCond)

Les modules d’interprétation générés avec DMOS-P permettent donc un positionne- ment élaboré, une gestion du bruit, la recherche d’éléments structurants, et surtout bénéfi- cient d’un socle extensible permettant l’intégration de nouveaux mécanismes tels que ceux mentionnées ensous-section 2.3.3.