Brevet FR3131792A1 — publié le 20230714

L’invention concerne un procédé d’analyse d’au moins une image (1) contenant des données textuelles, comportant les étapes consistant à : détecter et lister des blocs (2) de données pour chaque bloc (2), calculer les coordonnées d’une boîte englobante de dimensions minimales, déterminer, au moins en partie, les paires de boîtes englobantes minimales qui se chevauchent, de façon à obtenir un ensemble de paires, pour chacune des paires dudit ensemble, déterminer la boîte englobante minimale du bloc le plus pertinent. Figure à publier avec l’abrégé : [Fig. 3] Procédé d’analyse d’au moins une image contenant des données textuelles Domaine technique de l’invention L’invention concerne un procédé d’analyse d’au moins une image contenant des données textuelles. Etat de la technique antérieure Il est connu d’utiliser des logiciels capables d’analyser et de traiter des documents contenant des données textuelles, tels que des documents de type PDF (ou Portable Document Format) par exemple, afin d’identifier des blocs de données textuelles et/ou de pouvoir en extraire du texte. L’inconvénient des logiciels existants est que l’extraction des données textuelles ne permet pas de conserver avec précision l’information relative à la structure hiérarchique du document original. Une telle structure hiérarchique peut présenter un intérêt majeur lorsque l’on souhaite analyser le contenu du document et les relations entre les différentes données textuelles. En effet, il est utile de pouvoir déterminer à quel titre ou sous-titre est rattaché un paragraphe par exemple. Une telle information hiérarchique peut notamment être déduite des positions relatives des objets textuels au sein d’une page du document, tels que les positions des titres ou des paragraphes par exemple. Cependant, les logiciels actuels ne permettent pas de localiser efficacement et avec précision les différents objets textuels dans le document. L’invention vise à remédier à cet inconvénient, de façon simple et fiable. Présentation de l’invention A cet effet, l’invention concerne un procédé d’analyse d’au moins une image contenant des données textuelles, comportant les étapes consistant à : (a) détecter et lister des blocs de données textuelles à l’aide d’un modèle d’analyse de mise en page, chaque bloc étant identifié par des coordonnées d’une boîte englobante d’origine du bloc, un score de confiance et optionnellement une catégorie de données, (b) pour chaque bloc, calculer les coordonnées d’une boîte englobante de dimensions minimales définie comme une boîte englobante de dimension réduite par rapport à la boîte englobante d’origine du bloc et comportant les données textuelles, (c) déterminer, au moins en partie, les paires de boîtes englobantes minimales qui se chevauchent, par exemple toutes les paires desdites boîtes englobantes minimales qui se chevauchent, de façon à obtenir un ensemble de paires, (d) pour chacune des paires dudit ensemble, (d1) déterminer si l’intersection entre les aires des deux boîtes englobantes de ladite paire est ou non supérieure à une valeur déterminée et, si elle est supérieure uniquement, procéder à l’étape (d2). (d2) déterminer si la majeure partie, par exemple au moins 70%, de l’aire de l’une des boîtes englobantes de ladite paire est comprise dans l’autre boîte englobante de ladite paire et, dans l’affirmative, supprimer de la liste de blocs le bloc correspondant à la boîte englobante qui est majoritairement incluse dans l’autre boîte englobante, et dans la négative, procéder à l’étape (d3) , (d3) supprimer de la liste de blocs le bloc de ladite paire dont le score de confiance est le plus faible. Ainsi, le procédé est capable d’analyser, en entrée, une ou plusieurs images contenant des données textuelles et de fournir, en sortie, des blocs de données textuelles permettant d’identifier de façon fiable les différentes informations textuelles séparées dans l’image. L’identification de ces blocs peut ensuite être utilisée pour localiser et extraire le texte contenu dans ces blocs, par exemple par des techniques de reconnaissance de caractères. On notera que, à l’étape (d3), si les deux blocs ont exactement le même score de confiance, alors l’un des deux blocs de ladite paire, par exemple le premier bloc ou le second bloc, peut être supprimé. L’image peut être générée à partir de ou extraite d’un fichier, par exemple de type PDF (ou Portable Document Format), Powerpoint® ou Word®. Chaque image peut par exemple représenter une page d’un document. Une boîte englobante est de préférence définie par une forme carrée ou rectangulaire dont les côtés sont orientés horizontalement et verticalement. Une boîte englobante peut alors être définie par les coordonnées de deux sommets diagonalement opposés de ladite boîte. En variante, une boîte englobante peut être définie par les coordonnées de l’un des sommets, par la largeur et par la hauteur de ladite boîte. La largeur et la hauteur de la boîte englobante sont respectivement les dimensions de ladite boîte dans la direction horizontale et dans la direction verticale. Le score de confiance peut être un nombre compris entre 0 et 1 et représentant la probabilité que le bloc représente correctement la donnée textuelle concernée. Un score de confiance élevé indique donc une haute probabilité que le bloc représente de façon fiable ladite donnée textuelle. La catégorie de données peut par exemple être une information quant au fait que la donnée textuelle représente un titre, un sous-titre, une formule, un paragraphe de texte, etc… Le procédé peut être défini de façon à ce que, lors de l’étape (d1), il est déterminé si la condition AoI(b1, b2)/min(Area(b1), Area(b2)) est remplie, où : b1 et b2 sont les premier et second blocs de la paire concernée AoI(b1, b2) est l’aire de l’intersection des boîtes englobantes minimales de la paire concernée Area(b1) est l’aire de la boîte englobante minimale du premier bloc, Area(b2) est l’aire de la boîte englobante minimale du second bloc, min(Area(b1), Area(b2)) est le minimum des deux aires Area(b1) et Area(b2), et eta est un seuil constant déterminé, par exemple compris entre 0,02 et 0,2, par exemple de l’ordre de 0,1. et, si ladite condition est remplie, alors il est procédé à l’étape (d2). A l’inverse, dans le cas où la condition n’est pas remplie, alors aucune des étapes (d2) et (d3) n’est réalisée et la paire suivante de la liste est analysée. Le procédé peut être défini de façon à ce que, lors de l’étape (d2), il est déterminé si la première condition AoI(b1, b2)/Area(b1) ≥ s est remplie, où b1 et b2 sont les premier et second blocs de la paire concernée AoI(b1, b2) est l’aire de l’intersection des boîtes englobantes minimales de la paire concernée, Area(b1) est l’aire de la boîte englobante minimale du premier bloc, s est un premier seuil constant déterminée, où s1 est par exemple compris entre 0,7 et 0,95, par exemple de l’ordre de 0,85, et, si la première condition est remplie, supprimer le premier bloc b1 de la liste et, si la première condition n’est pas remplie, déterminer si la seconde condition AoI(b1, b2)/Area(b2) ≥ s est remplie, où Area(b2) est l’aire de la boîte englobante minimale du second bloc, et, si la seconde condition est remplie, supprimer le second bloc b2 de la liste et, si la seconde condition n’est pas remplie, procéder à l’étape (d3). Le procédé peut être défini de façon à ce que, dans lequel l’étape (b), on réalise les étapes successives suivantes : (b1) étendre verticalement et/ou horizontalement la boîte englobante d’origine du bloc, (b2) définir par rognage une sous-image sur la base des coordonnées de la boîte englobante étendue lors de l’étape (b1), (b3) optionnellement, transformer la sous-image en niveau de gris (b4) appliquer un flou à la sous-image, (b5) seuiller la sous-image de façon à appliquer une valeur minimale à l’ensemble des pixels dont la valeur est inférieure à un seuil déterminé et de façon à appliquer une valeur maximale à l’ensemble des pixels dont la valeur est supérieure audit seuil, (b6) optionnellement, appliquer un traitement de réduction du bruit à la sous-image, (b7) définir comme boîte englobante minimale la boîte englobante de plus petite dimension contenant l’ensemble des pixels n’ayant pas une valeur égale à la valeur de pixel associée à un fond de la sous-image. Le fond de la sous-image est par exemple défini par la couleur blanche, dans un contexte classique, le texte apparaissant généralement en noir sur le fond blanc. Bien entendu, il est également possible d’inverser les couleurs du fond et du texte. Lors du seuillage, la valeur minimale est par exemple égale à 0 et correspond à la couleur noire et la valeur maximale est par exemple égale à 255 et correspond à la couleur blanche, pour une image en niveau de gris en 8 bits. Les zones contenant du texte sont théoriquement les zones dont les valeurs sont égales à 0 après seuillage, dans le cas conventionnel où le texte apparaît en noir sur un fond blanc. Le procédé peut être défini de façon à ce que, lors de l’étape (b5), le seuil est déterminé par l’algorithme de Otsu. Le procédé peut être défini de façon à ce que, lors de l’étape (b4), le flou est réalisé par application d’un noyau de convolution permettant de réaliser un flou plus important dans la direction horizontale que dans la direction verticale. On définit la direction horizontale comme la direction d’écriture standard d’un document de texte. On définit la direction verticale comme la direction perpendiculaire à la direction horizontale. On suppose que l’image est correctement orientée de façon à ce que les lignes de texte soient orientées dans la direction horizontale. Une telle caractéristique permet d’éviter le phénomène d’étalement des lignes dans la direction verticale, de façon à éviter de confondre des lignes appartenant à deux objets textuels différents, superposés l’un par rapport à l’autre, c’est-à-dire l’un au-dessus de l’autre. Les objets textuels sont par exemple des paragraphes. Le noyau de convolution a par exemple une dimension de l’ordre de 11x11 ou de 13x13. Le procédé peut être défini de façon à ce que, lors de l’étape (b6), le traitement de réduction du bruit est effectué par un traitement morphologique de la sous-image. Le procédé peut être défini de façon à ce que, lors de l’étape (b6), on applique d'abord une transformation morphologique d'ouverture, puis une transformation morphologique de fermeture. La transformation d’ouverture permet de supprimer les bruits, en particulier les bruits dans le fond blanc de la sous-image. La transformation de fermeture permet de supprimer les trous dans les blocs de pixels de valeurs non nulles. Le modèle d’analyse de mise en page peut être un réseau de neurones profond de type Mask R-CNN. Il est par exemple possible d’utiliser le réseau de neurones pré-entrainé décrit dans l’article « A Unified Toolkit for Deep Learning Based Document Image Analysis », Shen, Zejiang and Zhang, Ruochen and Dell, Melissa and Lee, Benjamin Charles Germain and Carlson, Jacob and Li, Weining, arXiv preprint arXiv:2103.15348, 2021 et disponible à l’adresse suivante : https://github.com/Layout-Parser/layout-parser dans sa version 0.3.2. L’invention concerne également un programme d'ordinateur comprenant un code configuré pour, lorsqu'il est exécuté par un processeur ou une unité de commande électronique, exécuter le procédé du type précité. L’invention concerne également un dispositif informatique comprenant : - une interface d'entrée pour recevoir au moins une image contenant au moins une donnée textuelle, - une mémoire pour stocker au moins des instructions d'un programme d’ordinateur du type précité, - un processeur accédant à la mémoire pour lire lesdites instructions et exécuter alors le procédé du type précité, - une interface de sortie pour fournir la liste des blocs identifiés. L’invention concerne également un support d'enregistrement non transitoire lisible par ordinateur sur lequel est enregistré un logiciel informatique pour mettre en œuvre le procédé du type précité, lorsque le logiciel informatique est exécuté par un processeur.   Brève description des figures est un ordinogramme illustrant de façon schématique le procédé selon le présent document, est un ordinogramme illustrant de façon schématique l’étape (b) du procédé, , , , , , , illustrent différentes étapes du procédé. Procédé d’analyse d’au moins une image (1) contenant des données textuelles, comportant les étapes consistant à : détecter et lister des blocs (2) de données textuelles à l’aide d’un modèle d’analyse de mise en page, chaque bloc (2) étant identifié par des coordonnées d’une boîte englobante d’origine (3) du bloc (2), un score de confiance et optionnellement une catégorie de données, pour chaque bloc (2), calculer les coordonnées d’une boîte englobante de dimensions minimales (7) définie comme une boîte englobante de dimension réduite par rapport à la boîte englobante d’origine (3) du bloc (2) et comportant les données textuelles, déterminer, au moins en partie, les paires de boîtes englobantes minimales (7) qui se chevauchent, par exemple toutes les paires desdites boîtes englobantes minimales (7) qui se chevauchent, de façon à obtenir un ensemble de paires, pour chacune des paires dudit ensemble, (d1) déterminer si l’intersection entre les aires des deux boîtes englobantes (7) de ladite paire est ou non supérieure à une valeur déterminée et, si elle est supérieure uniquement, procéder à l’étape (d2). (d2) déterminer si la majeure partie, par exemple au moins 70%, de l’aire de l’une des boîtes englobantes (7) de ladite paire est comprise dans l’autre boîte englobante de ladite paire et, dans l’affirmative, supprimer de la liste de blocs le bloc (2) correspondant à la boîte englobante (7) qui est majoritairement incluse dans l’autre boîte englobante (7), et dans la négative, procéder à l’étape (d3), (d3) supprimer de la liste de blocs le bloc (2) de ladite paire dont le score de confiance est le plus faible. Procédé selon la revendication précédente, dans lequel, lors de l’étape (d1), il est déterminé si la condition AoI(b1, b2)/min(Area(b1), Area(b2)) est remplie, où : b1 et b2 sont les premier et second blocs de la paire concernée, AoI(b1, b2) est l’aire de l’intersection des boîtes englobantes minimales de la paire concernée, Area(b1) est l’aire de la boîte englobante minimale du premier bloc, Area(b2) est l’aire de la boîte englobante minimale du second bloc, min(Area(b1), Area(b2)) est le minimum des deux aires Area(b1) et Area(b2), et eta est un seuil constant déterminé, par exemple compris entre 0,02 et 0,2, par exemple de l’ordre de 0,1. et, si ladite condition est remplie, alors il est procédé à l’étape (d2). Procédé selon l’une des revendications précédentes, dans lequel, lors de l’étape (d2), il est déterminé si la première condition AoI(b1, b2)/Area(b1) ≥ s est remplie, où : b1 et b2 sont les premier et second blocs de la paire concernée, AoI(b1, b2) est l’aire de l’intersection des boîtes englobantes minimales de la paire concernée, Area(b1) est l’aire de la boîte englobante minimale du premier bloc, s est un premier seuil constant déterminée, par exemple compris entre 0,7 et 0,95, par exemple de l’ordre de 0,85, et, si la première condition est remplie, supprimer le premier bloc b1 de la liste et, si la première condition n’est pas remplie, déterminer si la seconde condition AoI(b1, b2)/Area(b2) ≥ s est remplie, où : Area(b2) est l’aire de la boîte englobante minimale du second bloc, et, si la seconde condition est remplie, supprimer le second bloc b2 de la liste et, si la seconde condition n’est pas remplie, procéder à l’étape (d3). Procédé selon l’une des revendications précédentes, dans lequel l’étape (b), on réalise les étapes successives suivantes : (b1) étendre verticalement et/ou horizontalement la boîte englobante d’origine du bloc, (b2) définir par rognage une sous-image (10) sur la base des coordonnées de la boîte englobante étendue (3’) lors de l’étape (b1), (b3) optionnellement, transformer la sous-image (10) en niveau de gris (b4) appliquer un flou à la sous-image (10), (b5) seuiller la sous-image (10) de façon à appliquer une valeur minimale à l’ensemble des pixels dont la valeur est inférieure à un seuil déterminé et de façon à appliquer une valeur maximale à l’ensemble des pixels dont la valeur est supérieure audit seuil, (b6) optionnellement, appliquer un traitement de réduction du bruit à la sous-image (10), (b7) définir comme boîte englobante minimale (7) la boîte englobante de plus petite dimension contenant l’ensemble des pixels n’ayant pas une valeur égale à la valeur de pixel associée à un fond (12) de la sous-image (10). Procédé selon la revendication précédente, dans lequel, lors de l’étape (b5), le seuil est déterminé par l’algorithme de Otsu. Procédé selon la revendication 4 ou 5, dans lequel, lors de l’étape (b4), le flou est réalisé par application d’un noyau de convolution permettant de réaliser un flou plus important dans la direction horizontale que dans la direction verticale. Procédé selon l’une des revendications 4 à 6, dans lequel, lors de l’étape (b6), le traitement de réduction du bruit est effectué par un traitement morphologique de la sous-image (10). Procédé selon la revendication précédente, dans lequel, lors de l’étape (b6), on applique d'abord une transformation morphologique d'ouverture, puis une transformation morphologique de fermeture. Procédé selon l’une des revendications précédentes, dans lequel le modèle d’analyse de mise en page est un réseau de neurones profond de type Mask R-CNN. Programme d'ordinateur comprenant un code configuré pour, lorsqu'il est exécuté par un processeur ou une unité de commande électronique, exécuter le procédé selon l'une quelconque des revendications 1 à 9. Dispositif informatique comprenant : - une interface d'entrée pour recevoir au moins une image contenant au moins une donnée textuelle, - une mémoire pour stocker au moins des instructions d'un programme d’ordinateurselon la revendication précédente, - un processeur accédant à la mémoire pour lire lesdites instructions et exécuter alors le procédé selon l'une quelconque des revendications 1 à 9, - une interface de sortie pour fournir la liste des blocs identifiés. Support d'enregistrement non transitoire lisible par ordinateur sur lequel est enregistré un logiciel informatique pour mettre en œuvre le procédé selon l'une quelconque des revendications 1 à 9, lorsque le logiciel informatique est exécuté par un processeur.