• Aucun résultat trouvé

Extraction d’invariants dans des documents textuels par clustering interactif

2.3.1 Positionnement de l’étude

Dans le cadre de travaux en cours, nous nous intéressons au cas d’images de documents textuels (imprimés ou manuscrits) appartenant à des collections anciennes (typiquement datant du Moyen-Âge). Étant donné qu’un ouvrage ancien est généralement écrit en utilisant une unique police (cas imprimé) ou en respectant un style d’écriture très standardisé (cas manuscrit), le texte extrait d’une collection donnée est caractérisé par une variabilité intra-catégorie limitée, et ce, quel que soit le niveau auquel on place la catégorie (graphème, caractère ou mot). De plus, leur structure est généralement assez stéréotypée. Une grande part des difficultés rencontrées lorsque l’on cherche à analyser ce type de documents provient plutôt des dégradations liées à leur âge ou à leurs conditions de conservation, ou bien de l’usage fréquent d’un vocabulaire non standardisé. Dans notre contexte applicatif, ces difficultés sont largement majorées par le fait que nous ne disposons d’aucune information a priori sur le script ou le langage utilisé.

2.3.1.1 Objectif visé

L’objectif visé est de pouvoir extraire, à partir d’une collection de documents donnée, des « invariants ». Ces invariants sont définis comme des formes revenant de manière récurrente dans la collection (il peut s’agir par exemple de graphèmes, de caractères ou de bouts de mots) et peuvent être vus comme des primitives constituant l’écriture. Ils devront pouvoir être extraits même en présence d’un langage ancien ou rare, à propos duquel nous n’avons aucune information a priori, et pour lequel aucun moteur de reconnaissance d’écriture n’existe.

Les invariants seront par la suite utilisés pour décrire l’apparence visuelle du texte. Ils pour-ront par exemple être réutilisés par des moteurs de navigation dans la collection de documents. Cette navigation pourra se baser entre autres sur la détection (spotting) de mots ou de bouts de mots dans des documents textuels en provenance d’une même collection et décrits à l’aide des invariants. C’est le sujet de la thèse de Bui Quang Anh13, commencée en 2011. Les travaux présentés ci-après ont été menés essentiellement dans le contexte de cette thèse.

L’une des applications visées est qu’un humain puisse se servir des invariants pour générer lui-même ses propres requêtes dans une application de recherche de mots, comme expliqué dans [Bui 2012]. Pour cela, on peut envisager que chaque invariant soit associé à un code ASCII et que l’utilisateur compose le mot qu’il recherche de manière textuelle, ou bien que les invariants soient présentés à l’utilisateur au travers d’une interface tactile et qu’il compose lui-même son image de requête grâce aux imagettes d’invariants. Il est donc primordial que les invariants soient en nombre limité, mais suffisamment exhaustifs pour permettre à l’utilisateur final du système de composer facilement ses requêtes.

Nous avons donc choisi de faire intervenir l’humain pour raffiner les invariants automati-quement découverts par la machine. Cette interaction se fait de manière personnalisée avec un expert du domaine (archiviste par exemple), qui connaît suffisamment le script utilisé pour aider le système à corriger les invariants.

Notre proposition est de mettre en œuvre un clustering interactif de formes élémen-taires segmentées dans l’image, pour découvrir les invariants composant le texte.

2.3.1.2 Travaux existants connexes

Si l’apparence du texte à l’intérieur de la collection de documents considérée est suffisam-ment homogène (ce qui est généralesuffisam-ment le cas à l’intérieur d’un ouvrage ancien), alors les invariants peuvent être considérés comme des primitives de l’image, en nombre fini.

À la différence du cas des symboles traité en annexeAcependant, on ne connaît pas la liste des invariants possibles, puisque l’on ne dispose d’aucune information a priori concernant le script utilisé. Cela rend bien évidemment plus complexe leur extraction depuis l’image.

En termes d’exploitation, si les primitives à rechercher sont connues, alors il suffit de conce-voir ou d’utiliser un détecteur/moteur de reconnaissance adapté à ces primitives pour les ex-ploiter. On peut citer par exemple les approches de word spotting permettant de générer des images de requêtes à partir d’un texte tapé au clavier et d’un alphabet codant des primitives prédéfinies. Les images ainsi obtenues sont utilisées pour la recherche par le contenu de mots similaires dans la collection. L’avantage de ces approches est que l’utilisateur n’a pas besoin de repérer dans le document une occurrence du mot qu’il recherche ; il lui suffit de le taper au cla-vier. Parmi ces dernières approches, on peut citer celle proposée dans [Marinai 2006], qui génère une image de requête à partir d’une requête textuelle, en utilisant une police spécifique. On peut également citer l’approche introduite dans [Konidaris 2007], où chaque caractère textuel (code ASCII) est associé manuellement à une image de caractère et où une procédure d’alignement des caractères est utilisée. Ces deux méthodes ne sont applicables qu’aux documents imprimés. L’approche proposée dans [Leydier 2009], qui consiste à construire semi-automatiquement un dictionnaire de glyphes et une grammaire contenant l’ensemble des règles d’édition dirigeant le positionnement spatial des glyphes, est applicable aux documents imprimés comme aux docu-ments manuscrits.

Néanmoins, toutes ces méthodes nécessitent des informations a priori sur le script (voire la police) utilisé(e), passant par une phase d’annotation préalable. Cette phase d’annotation peut être manuelle ou semi-automatique. Dans le cas semi-automatique, l’annotation repose typiquement sur un OCR ou un moteur de reconnaissance d’écriture manuscrite dédié au langage considéré. Cela suppose l’existence d’un tel OCR ou moteur de reconnaissance, ce qui n’est pas acquis dans le cas d’un langage ancien ou rare. Or, dans notre contexte applicatif, nous ne disposons d’aucune information a priori sur le script ou le langage utilisé, ni a fortiori d’annotations (manuelles ou semi-automatiques) du texte présent dans les documents de la collection. Ce type d’approches est donc inapplicable dans notre contexte.

Dans notre contexte où nous n’avons aucune information a priori concernant les primitives (invariants) composant le texte, nous cherchons à les découvrir automatiquement. L’usage ultérieur qui pourra être fait, à terme, des invariants découverts, est similaire aux exemples ci-dessus. Pour extraire les invariants, nous avons choisi de nous baser sur l’analyse des formes élémentaires revenant fréquemment dans la collection de documents. Plus précisément, les formes auxquelles nous nous intéressons plus particulièrement sont les « strokes ». Le terme stroke est emprunté au vocabulaire de l’analyse d’écriture manuscrite en-ligne (voir section3.3), où il s’agit d’un trait d’écriture. Dans le contexte hors-ligne, il peut être étendu au cas imprimé pour désigner un motif élémentaire du texte, indivisible et fréquent.

Plusieurs méthodes visent à extraire des strokes à partir du signal hors-ligne, le plus souvent dans le but de reconstruire le signal en-ligne à partir du signal hors-ligne afin d’améliorer la reconnaissance d’écriture [Lallican 2000]. Certaines de ces méthodes sont basées sur une squelettisation des composantes connexes de l’image binarisée (et, le plus souvent, sur une recherche des points d’extrémité ou de jonction entre différentes branches du squelette) ; d’autres sont basées sur une analyse des contours des composantes connexes (passant généralement par une recherche des « points dominants » qui correspondent à des changements brusques de la courbure du contour). Pour un état de l’art plus exhaustif des mé-thodes d’extraction de strokes depuis des documents hors-ligne, merci de se référer à [Bui 2013]. Maintenant que nous avons défini les objectifs de nos travaux et que nous les avons situés dans leur contexte scientifique, nous allons les replacer dans le cadre des questions abordées dans ce manuscrit et vis-à-vis de l’étude précédente, avant de décrire plus précisément leurs principales originalités.

2.3.2 Fil conducteur des questions abordées

Jusqu’à présent, dans ce chapitre dédié à la description d’images, nous avons brièvement évoqué l’extraction de descripteurs visuels depuis les images, avant de nous focaliser sur l’orga-nisation de collections d’images par clustering interactif.

Les travaux présentés dans cette section font le lien entre ces deux types d’approches. En effet, nous cherchons ici à décrire les motifs présents dans une image donnée de manière individuelle, à partir d’éléments d’intérêt découverts par clustering interactif à l’échelle de la collection entière.

Comme dans les travaux évoqués ci-avant, nous avons fait le choix de l’interaction avec l’utilisateur dans le but de rapprocher la description retournée par la machine des concepts de plus haut niveau manipulés par un humain. Mais, l’expérience acquise au travers de ces travaux précédents nous a montré que l’utilisateur humain a généralement tendance à donner plus de retours négatifs que positifs. Autrement dit, un humain a naturellement tendance à s’intéresser en priorité au fait de corriger les résultats renvoyés par la machine. Nous nous sommes donc focalisés ici sur la manière de le faire interagir cet humain de manière à lui permettre de corriger le plus efficacement possible les résultats retournés par la machine. De manière plus générale, les spécificités du problème traité nous ont poussé à définir des modes d’interaction différents du cas précédent de l’organisation de collections d’images tout-venant.

Tout d’abord, nous avons choisi de faire interagir l’utilisateur au niveau plus global des clus-ters de strokes (à la différence du cas précédent où l’interaction se faisait au niveau individuel des images). À cela, deux raisons. Premièrement, d’un point de vue très pratique, les éléments que nous cherchons à regrouper ici ne sont que des strokes, c’est-à-dire des traits d’écriture, avec lesquels il est fastidieux pour l’utilisateur d’interagir de manière individuelle. Deuxième-ment, le fait de mettre en œuvre l’interaction au niveau des clusters nous permet d’imaginer diverses solutions pour répercuter chacune des interventions de l’utilisateur de la manière la plus collective possible dans les clusters concernés.

Nous cherchons en outre ici à concevoir un système qui soit le plus générique possible (omni-script, omni-langage). Le cas échéant, nous cherchons donc à faire en sorte que les interventions de l’utilisateur permettent au système d’ajuster automatiquement les paramètres du système proposé vis-à-vis du script/langage courant.

La section suivante décrit le système que nous avons conçu pour apporter des éléments de réponse à ces questions.

2.3.3 Aperçu du système proposé

Le système d’extraction interactive d’invariants que nous proposons, dont un aperçu est donné en Figure 2.4, repose sur trois phases : extraction des strokes, clustering de ces strokes afin d’obtenir des invariants (définis comme les clusters de strokes), et raffinement des invariants lors d’une phase d’interaction avec l’expert. Ces trois phases sont détaillées dans les paragraphes ci-après.

Figure 2.4 – Vue globale du système d’extraction interactive d’invariants.

Extraction de strokes. À partir des composantes connexes extraites depuis le texte, on extrait les strokes. Cette extraction se fait en deux étapes menées séquentiellement :

1. À l’intérieur de chaque composante connexe extraite du document, on détecte les « zones ambiguës » de l’écriture avec la méthode proposée dans [Su 2009] et basée sur l’analyse des points de jonction dans les squelettes des composantes connexes. Chaque fragment d’une composante connexe relié à une zone ambiguë constitue un « stroke primaire » (c’est-à-dire une partie de stroke), tandis que chaque composante connexe ne présentant pas de zone ambiguë est directement considérée comme un stroke ;

2. Afin de regrouper les strokes primaires en strokes, nous utilisons une méthode de seg-mentation que nous avons introduite dans [Bui 2013] et qui est basée sur l’étude de la continuité visuelle entre couples de strokes primaires reliés par une zone ambiguë. Extraction d’invariants par clustering des strokes. Une fois les strokes extraits, on constitue de manière complètement automatique des groupes de strokes semblables en taille et en forme. Plus précisément, l’étape d’extraction d’invariants prend en entrée des signatures décrivant la taille et la forme des strokes (nous utilisons pour cela des descripteurs classiques de la littérature). En sortie, nous obtenons un ensemble de clusters qui constituent les invariants. L’une des principales difficultés ici réside dans le choix de l’algorithme de clustering (et le cas échéant de son paramétrage), ainsi que du nombre k de clusters le mieux adapté au problème. En effet, on obtient une solution de clustering différente (avec le cas échéant un nombre k de clusters différent) pour chaque méthode de clustering et chaque paramétrage. Or, vu la nature du problème posé, nous ne disposons d’aucune vérité-terrain et ne pouvons donc avoir recours aux mesures externes14pour comparer la qualité des différentes solutions de clustering. Les mesures internes usuelles, elles, ne sont généralement pas normalisées vis-à-vis du nombre k de clusters et donnent parfois des résultats contradictoires. Enfin, les mesures de stabilité [Lange 2004], sont plutôt conçues pour fixer le nombre de clusters k et éventuellement les paramètres d’une méthode donnée, plutôt que pour sélectionner l’algorithme le mieux adapté. Nous avons donc choisi d’appliquer une approche de clustering par consensus [Strehl 2003], qui consiste à unifier un ensemble de solutions de clustering (possiblement obtenues par dif-férents algorithmes et/ou avec différentes valeurs de paramètres) en une unique solution. Ici nous appliquons le consensus à partir de solutions de clustering fournies par les algorithmes global k-means, DBSCAN, CAH et SOM, avec différents nombres de clusters k. La solution optimale de clustering (ainsi que son paramétrage optimal) sont déterminés automatiquement en utilisant la mesure basée sur la théorie de l’information NMImax [Kvalseth 1987], qui pré-sente les avantages d’être métrique et normalisée de manière à ne pas favoriser les solutions de clustering avec une grande valeur de k [Nguyen 2010]. Il est coûteux en temps d’appliquer un tel algorithme, mais ce n’est pas forcément gênant dans notre contexte, puisque cette phase est menée de manière complètement automatique (sans intervention de l’utilisateur), et donc hors-ligne.

Raffinement interactif des invariants. Une fois les clusters (invariants) calculés, ils sont présentés à l’utilisateur, qui peut les raffiner itérativement en interagissant (en-ligne) avec le système de deux manières :

– Par fusion/division des clusters dans l’espace de représentation (espace des signatures) ; – Par regroupement ou découpage spatial des invariants. Ces raffinements spatiaux peuvent

être automatiquement répercutés au niveau de l’ensemble des strokes du cluster. 2.3.4 Principales originalités du système proposé

Les principales originalités du système proposé reposent, d’une part, sur les modalités de l’interaction avec l’utilisateur humain (expert du domaine) pour raffiner les invariants et, d’autre part, sur le fait que notre approche puisse être déployée même en l’absence de toute information a priori concernant le script ou le langage utilisé. Cela lui confère en théorie une certaine généricité

qu’il convient de discuter en pratique. C’est donc sur ces deux points que je focaliserai mon propos dans les deux sections ci-après.

2.3.4.1 Raffinements interactifs des invariants

Comme illustré en Figure 2.5, l’interaction avec l’utilisateur pour raffiner les invariants se fait grâce à une interface très proche de celle que nous utilisions précédemment pour les images naturelles. Les prototypes des invariants sont présentés à l’utilisateur dans le plan des deux premières composantes principales calculées à partir des descripteurs de forme extraits des strokes. L’utilisateur peut cliquer sur un prototype d’invariant pour voir les strokes les plus représentatifs et les moins représentatifs du cluster correspondant apparaître dans deux cercles de la fenêtre 2 (en haut à droite de l’interface). En survolant l’un de ces strokes avec la souris, l’utilisateur peut le faire apparaître (en bleu) dans son contexte, dans la fenêtre juste en-dessous de la fenêtre 2.

Figure 2.5 – Interface permettant à l’humain d’interagir avec les invariants découverts par le système. Ici, les invariants sont ceux extraits complètement automatiquement (avant le raffi-nement interactif) sur dix pages de la base Saint Gall15 (extraite d’un ouvrage écrit par un unique scripteur au 9ème siècle, dans un script carolingien et un langage latin).

Nous avons choisi deux modes d’interaction de l’utilisateur avec les clusters. Le premier mode d’interaction se déroule dans l’espace de représentation et vise à permettre à l’utilisateur de

commander des opérations de division/fusion de certains clusters, en fonction de leur contenu visuel. Le second mode d’interaction se déroule dans le plan (x, y) de l’image et permet de répercuter les interventions de l’humain au plus bas niveau de l’extraction des strokes, en imposant le regroupement ou le découpage spatial de certains des strokes d’un cluster donné.

Ces interactions entre le système et l’utilisateur sont effectuées itérativement. À chaque itération interactive, l’interaction se fait d’abord dans l’espace de représentation, puis spatia-lement. Les itérations interactives sont répétées jusqu’à ce que l’utilisateur soit satisfait du résultat. Plus de détails sur ces deux modes d’interaction sont donnés ci-après.

La fusion ou la division de clusters se fait dans l’espace de représentation des strokes. Suivant les cas, le système pré-sélectionne les clusters à présenter à l’utilisateur, ou bien l’utilisateur les choisit directement depuis l’interface montrée en Figure 2.5.

La division de clusters consiste à découper un cluster trop hétérogène en k sous-clusters. Soit l’utilisateur choisit à l’aide de l’interface les clusters qu’il souhaite diviser, soit le système présente automatiquement à l’utilisateur les clusters avec la plus faible valeur de la mesure d’évaluation interne SW . L’utilisateur est alors libre de choisir de diviser ces clusters ou non, en précisant le cas échéant la valeur de k (par défaut fixée à 2). Le clustering des strokes de ce cluster initial en k sous-clusters est alors mené automatiquement avec la méthode des k-moyennes globale proposée dans [Likas 2003].

Dans le cas d’une fusion, l’utilisateur sélectionne directement depuis l’interface les invariants qui lui semblent très proches (par simple clic sur leurs images de prototypes), visualise les strokes composant les clusters correspondants, et le cas échéant peut commander au système de les fusionner en un seul cluster.

À la différence du cas des images naturelles traité précédemment, on peut également mettre en œuvre des opérations de découpage ou de regroupement de strokes dans l’espace spatial (c’est-à-dire dans le plan (x, y) de l’image). À chaque itération, ces opérations sont déclenchées lorsque l’utilisateur décide que ses interactions dans l’espace de représentation sont terminées.

En ce qui concerne le découpage spatial des strokes, notre système fonctionne de la manière suivante. Il propose à l’utilisateur, à l’aide de l’interface montrée en Figure 2.5, les clusters pour lesquels la taille des strokes qu’ils contiennent est en moyenne largement plus élevée que celle des autres clusters. L’utilisateur doit alors décider si les strokes de ce clusters mériteraient d’être découpés, ou non. Si c’est le cas, le système revient alors sur la phase d’extraction des strokes de ce cluster. Selon le cas considéré, cela peut se faire en modifiant les paramètres soit du module d’extraction de zones ambiguës, soit de regroupement des strokes primaires (le système détermine automatiquement le réglage le mieux adapté). Cela débouche sur le découpage spatial de certains des plus grands strokes du cluster courant, ces nouveaux strokes étant alors affectés au cluster existant le plus proche dans l’espace de représentation de bas niveau sémantique.

Intéressons-nous maintenant au regroupement spatial de strokes en provenance de deux clusters différents. Selon la configuration du système, soit ces regroupements se font de manière complètement automatique, soit en utilisant l’interface de la Figure 2.6. À chaque itération interactive, le système mène de manière automatique une étude de la distribution des position-nements relatifs des strokes des différents clusters. Pour chaque couple de clusters, le système recherche la configuration spatiale la plus fréquente : p. ex. les strokes du cluster Ki sont sou-vent localisés en haut à gauche des strokes du cluster Kj dans les images de documents de