Brevet FR2990786A1 — publié le 20131122

La présente invention concerne un procédé de détermination de l'orientation d'une page numérisée comprenant au moins une ligne de texte formée de caractères. La présente invention trouve son application dans le domaine du traitement d'images et, notamment, dans celui de l'analyse et de l'amélioration des images issues de la numérisation de pages de document. En effet, lors de l'acquisition numérique d'une page d'un document par un scanner, il est fréquent que cette page soit numérisée en biais. Cette inclinaison a pour effet de réduire la qualité visuelle de cette page et limite ainsi les performances des algorithmes d'analyse, notamment ceux de reconnaissance de caractères. Il est classique d'utiliser alors une méthode de redressement de l'image numérisée pour retrouver une orientation correcte de la page. Cette méthode de redressement consiste à estimer le biais et à appliquer ce biais pour que la page numérisée apparaisse redressée. Ces méthodes de redressement, bien qu'elles proposent de corriger l'inclinaison d'une page, ne permettent pas de déterminer l'orientation de la page c'est-à-dire de savoir si la page a été numérisée à l'endroit ou si la page a été numérisée à l'envers. Autrement dit, ces méthodes ne permettent pas de déterminer si la page originale a été placée correctement sur le scanner ou si elle a été placée à l'envers c'est-à-dire que le haut de la page originale correspond au bas de la page numérisée. Ceci a son importance pour corriger l'inclinaison de la page car il convient de détecter l'orientation de la page numérisée afin de savoir si il faut l'inverser, c'est-à-dire la tourner de 180° selon un axe perpendiculaire au plan de cette page, en complément de la correction de l'inclinaison par application du biais. Il est connu deux approches dans l'état de la technique pour déterminer l'orientation d'une page numérisée. La première approche consiste à appliquer une méthode de reconnaissance de caractères sur la page numérisée, à inverser cette page numérisée (rotation de 180° selon un axe perpendiculaire au plan de cette page), et à appliquer une nouvelle fois la méthode de reconnaissance de caractères. La décision de l'orientation est alors basée sur les résultats de reconnaissance de caractères obtenus. Cette approche présente l'inconvénient de devoir appliquer deux fois une méthode de reconnaissance de caractères ce qui est lourd en termes de temps de calcul et coûteux en termes de ressources. De plus, cette approche ne peut être mise en oeuvre lorsqu'elle est embarquée dans un appareil mobile du fait des ressources limitées de ce type d'appareil tant en termes de mémoires que de puissance de calcul. Une deuxième approche est basée sur le fait que les caractères latins comportent généralement plus de lettres « montantes » (b, d, f, h, k, 1...) que descendantes (g, j, p...). En effet, cette deuxième approche consiste, pour une ligne de texte, à déterminer une ligne haute et une ligne basse et à compter les pixels relatifs aux caractères qui se trouvent au-dessus de la ligne haute et ceux qui se trouvent en-dessous de la ligne basse. Un exemple de ce type d'approche est donné dans l'article de R.S. Caprari, intitulé "Algorithm for text page up/down orientation determination" (Pattern Recognition Letter, N° 21, 2000, pp. 311-317). Cette approche requiert l'application d'opérations morphologiques sur une image, application qui est largement connue de l'état de la technique pour être coûteuse en termes de ressources. Cette approche ne peut donc être mise en oeuvre lorsqu'elle est embarquée dans un appareil mobile du fait des ressources limitées de ce type d'appareil tant en termes de mémoires que de puissance de calcul. Le problème résolu par la présente invention est de définir un procédé de détermination de l'orientation d'une page numérisée qui ne requiert pas d'importantes ressources pour être mis en oeuvre. A cet effet, la présente invention concerne un procédé de détermination de l'orientation d'une page numérisée comprenant au moins une ligne de texte. Le procédé est caractérisé en ce qu'il comporte : - une étape de calcul d'une fonction de signe par ligne de texte, et - une étape de décision de l'orientation de la page numérisée selon le résultat d'un vote basé sur la ou les fonction(s) de signe ainsi calculée(s). L'utilisation d'une fonction de signe par ligne de texte permet d'obtenir une indication de l'orientation de cette ligne de texte sans pour autant consommer des ressources de calcul importantes. Ce procédé peut ainsi être embarqué dans des appareils à faibles ressources mémoire, de calcul et énergétiques. Selon un mode de réalisation, la fonction de signe pour une ligne de texte est calculée à partir d'un moment d'ordre impair et supérieur à 1 des valeurs des pixels qui correspondent à des caractères de cette ligne de texte. Selon un mode de réalisation, la fonction de signe pour une ligne de texte est calculée en considérant une ligne médiane de cette ligne de texte et en considérant une valeur entière nulle à laquelle il est ajouté la valeur entière 1 si un pixel qui correspond à un caractère de cette ligne de texte se situe au-dessus de cette ligne médiane et à lui retrancher la valeur entière 1 si un pixel qui correspond à un caractère de cette ligne de texte se situe au-dessous de cette ligne médiane. Selon un mode de réalisation, le vote consiste à considérer une valeur entière nulle à laquelle il est ajouté la valeur entière 1 si la fonction de signe calculée est positive et à lui retrancher la valeur entière 1 si cette fonction de signe est négative. Selon un mode de réalisation, au moins un bloc de caractère étant extrait à partir de la page numérisée, le procédé comporte alors une étape d'extraction de lignes de texte à partir de chaque bloc de caractère extrait. Selon un mode de réalisation, au cours de l'étape d'extraction de ligne de texte, une image binaire est obtenue à partir de la page numérisée et pour chaque bloc de caractère, les lignes de pixels de cette image binaire qui sont consécutives et qui contiennent chacune au moins un pixel qui correspond à un caractère sont regroupées entre elles pour former une ligne de texte. Selon un mode de réalisation, au cours de l'étape de décision, le vôtre est tel qu'il est considéré que la page numérisée est orientée à l'envers si, parmi les lignes de texte de l'ensemble des blocs de caractère extraits de la page numérisée, le nombre de lignes de texte ayant une fonction de signe positive est supérieur au nombre de lignes de texte qui ont une fonction de signe négative, et sinon il est considéré que cette page numérisée est orientée à l'endroit. Ce mode de réalisation est particulièrement avantageux car la prise en compte des lignes de texte de tous les blocs de caractère de la page numérisée augmente significativement la fiabilité de la détermination de l'orientation de la page numérisée comparée au cas où seule une partie de ces lignes de texte est considérée. Selon l'un de ses aspects matériels, la présente invention concerne également un dispositif comportant des moyens pour mettre en oeuvre le procédé ci-dessus. Elle concerne également un programme d'ordinateur dont les instructions mettent en oeuvre au moins partiellement le procédé ci-dessus. Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels: La Fig. 1 représente un diagramme des étapes d'un procédé de détermination de l'orientation d'une page numérisée selon la présente invention ; La Fig. 2 représente une illustration d'un exemple d'un bloc de caractères ; La Fig. 3 représente un exemple d'une ligne de texte ; La Fig. 4 représente une illustration d'un mode de réalisation pour calculer la fonction de signe ; La Fig. 5 représente un exemple d'une architecture interne d'un dispositif prévu pour mettre en oeuvre le procédé de la Fig. 1. De manière générale, tel que illustré à la Fig. 1, la présente invention concerne un procédé de détermination de l'orientation d'une page numérisée comprenant au moins une ligne de texte, caractérisé en ce qu'il comporte : - une étape 2 de calcul d'une fonction de signe par ligne de texte, et - une étape 3 de décision de l'orientation de la page numérisée selon le résultat d'un vote basé sur la ou les fonction(s) de signe ainsi calculée(s). Selon un mode de réalisation, la fonction de signe pour une ligne de texte Lj est calculée à partir d'un moment d'ordre impair et supérieur à 1 des valeurs des pixels relatifs aux caractères de cette ligne de texte. En termes mathématiques, la fonction de signe d'une ligne de texte, ici notée 1 un avec n impair et supérieur à 1, est donnée par : - mir dans laquelle I i=1 est l'ensemble des pixels de la ligne de texte qui correspondent à un caractère de cette 1 ligne de texte, et i=1 La Fig. 2 représente un exemple d'une ligne de texte Lj qui comporte trois caractères (a,b et g). Cette ligne de texte Lj est formée de Yj lignes de pixels de l'image binaire, chaque ligne de pixels comportant un nombre de pixels (xi,yi) égal au nombre de colonnes d'un bloc de caractères. Selon cet exemple, les caractères sont écrits en blanc sur fond noir pour indiquer que l'image dont cette ligne de texte est issue est une image binaire. Certains de ces pixels correspondent à un caractère, tel que les pixels (xl,y1) et (x2, y2), et certains autres correspondent au fond. Selon un mode de réalisation, illustré à la Fig. 2, la fonction de signe pour une ligne de texte est calculée en considérant une ligne médiane AX de cette ligne de texte. Cette ligne médiane AX est positionnée, par exemple, à une ordonnée Yj/2, c'est-à-dire au milieu de la ligne de texte. Une valeur entière N initialement nulle est alors considérée et il est ajouté la valeur entière 1 si un pixel (xl, yl) qui correspond à un caractère se situe au-dessus de cette ligne médiane et à lui retrancher la valeur entière 1 si un pixel (x2, y2) qui correspond à un caractère se situe au-dessus de cette ligne médiane. Selon un mode de réalisation, le vote consiste à considérer une valeur entière nulle à laquelle il est ajouté la valeur entière 1 si la fonction de signe calculée est positive et à lui retrancher la valeur entière 1 si cette fonction de signe est négative. Selon un mode de réalisation, au moins un bloc de caractère étant extrait à partir de la page numérisée, le procédé comporte alors une étape 1 d'extraction de lignes de texte à partir de chaque bloc de caractère extrait. Dans le domaine du traitement d'images, il est connu des méthodes de segmentation d'une page numérisée qui sont prévues pour extraire de cette page des blocs de caractères. Chacun de ces blocs de caractères correspond à une partie d'un texte de la page numérisée. La portée du procédé revendiqué n'est pas limitée à l'une de ces méthodes de segmentation de la page numérisée en blocs de caractères. On peut citer, à titre d'exemple, la méthode de segmentation d'une page numérisée en blocs de caractères qui est décrite dans l'article de Weijuan W. et al. Intitulé "An Efficient Method for Text Location and Segmentation", Proceeding WCSE '09 Proceedings of the 2009 WRI World Congress on Software Engineering - Volume 03 IEEE Computer Society. En résumé, cette méthode commence par déterminer une image de niveaux de gris à partir de la page numérisée. Une transformée en ondelettes de cette image est alors calculée (par exemple selon l'article de Mallat S., "A theory for multi-resolution signal decomposition: the wavelet representation", IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 11, No. 7, 1993, pp. 674-693), suivie d'une sommation de trois des quatre sous-bandes caractérisant les discontinuités de cette image. Une binarisation de l'image est alors appliquée par un seuillage simple et un opérateur morphologique de fermeture est alors appliqué. Un algorithme connu sous l'abréviation CRLA est alors utilisé pour extraire les blocs de caractères de la page numérisée (F.M. Wahl, K.Y. Wong, and R.G. Casey, "Block segmentation and text extraction in mixed text/image documents", Computer Graphics and Image Processing, Vol.20, 1982, pp, 375-390). Selon un mode de réalisation, au cours de l'étape 1 d'extraction de lignes de texte, une image binaire est obtenue à partir de la page numérisée et pour chaque bloc de caractères, les lignes de pixels qui sont consécutives et qui contiennent chacune au moins un pixel qui correspond à un caractère de ce bloc de caractères sont regroupées entre elles pour former une ligne de texte. La Fig. 4 représente une illustration d'un exemple d'un bloc de caractère B à partir duquel plusieurs lignes de texte Lj ont été formées. Chaque ligne de texte Lj comporte plusieurs lignes de pixels consécutives. Selon un mode de réalisation, au cours de l'étape 3 de décision, le vote est tel qu'il est considéré que la page numérisée est orientée à l'envers si, parmi les lignes de texte de l'ensemble des blocs de caractères extraits de la page numérisée, le nombre de lignes de texte ayant une fonction de signe positive est supérieur au nombre de lignes de texte qui ont une fonction de signe négative, et sinon il est considéré que cette page numérisée est orientée à l'endroit. A la Fig. 5 est représentée l'architecture d'un dispositif 500 mettant en oeuvre le procédé de la Fig. 1. Le dispositif 500 comporte, reliés par un bus de communication 501, des ressources matérielles qui sont: - un processeur, micro-processeur ou microcontrôleur 502; - une mémoire vive (Random Access Memory en anglais ou Mémoire à Accès Aléatoire en français) 503 ; - une mémoire 504 (Read Only Memory en anglais ou Mémoire à Lecture Seule en français) ou encore flash ou réinscriptible mais rémanente (telles que dans une clé USB) ; Le microcontrôleur 502 est capable d'exécuter des instructions chargées dans la mémoire 503 à partir de la mémoire 504. Lorsque le dispositif 500 est mis sous tension, le microcontrôleur 502 est capable de lire de la mémoire 503 des instructions et de les exécuter. Ces instructions forment un programme d'ordinateur qui cause la mise en oeuvre, par le microcontrôleur 502, de tout ou partie des procédés décrits ci- dessus en relation avec la Fig. 1. Tout ou partie des procédés décrits ci-dessus en relation avec la Fig. 1 peut être implémenté sous forme logicielle par exécution d'un ensemble d'instructions par une machine programmable, tel qu'un DSP (Digital Signal Processor en anglais ou Unité de Traitement de Signal Numérique en français) ou un microcontrôleur, tel que le microcontrôleur 502, ou être implémenté sous forme matérielle par une machine ou un composant dédié, tel qu'un FPGA (Field-Programmable Gate Array en anglais ou Matrice de Portes Programmable sur Champ en français) ou un ASIC (ApplicationSpecific Integrated Circuit en anglais ou Circuit Intégré Spécifique à une Application en français).35 REVENDICATIONS1) Procédé de détermination de l'orientation d'une page numérisée comprenant au moins une ligne de texte, caractérisé en ce qu'il comporte : - une étape (2) de calcul d'une fonction de signe par ligne de texte, et - une étape (3) de décision de l'orientation de la page numérisée selon le résultat d'un vote basé sur la ou les fonction(s) de signe ainsi calculée(s). 2) Procédé selon la revendication 1, dans lequel la fonction de signe pour une ligne de texte est calculée à partir d'un moment d'ordre impair et supérieur à 1 des valeurs des pixels qui correspondent à des caractères de cette ligne de texte. 3) Procédé selon la revendication 1, dans lequel la fonction de signe pour une ligne de texte est calculée en considérant une ligne médiane (AX) de cette ligne de texte et en considérant une valeur entière nulle à laquelle il est ajouté la valeur entière 1 si un pixel qui correspond à un caractère de cette ligne de texte se situe au-dessus de cette ligne médiane et à lui retrancher la valeur entière 1 si un pixel qui correspond à un caractère de cette ligne de texte se situe au-dessous de cette ligne médiane. 4) Procédé selon l'une des revendicationsl à 3, dans lequel le vote consiste à considérer une valeur entière nulle à laquelle il est ajouté la valeur entière 1 si la fonction de signe calculée est positive et à lui retrancher la valeur entière 1 si cette fonction de signe est négative. 5) Procédé selon l'une des revendications 1 à 4, dans lequel au moins un bloc de caractère étant extrait à partir de la page numérisée, le procédé comporte alors une étape (1) d'extraction de lignes de texte à partir de chaque bloc de caractères extrait. 6) Procédé selon la revendication 5, dans lequel au cours de l'étape d'extraction de lignes de texte, une image binaire est obtenue à partir de la page numérisée et pour chaque bloc de caractères, les lignes de pixels qui sont consécutives et qui contiennent chacune au moins un pixel qui correspond à un caractère de ce bloc de caractères sont regroupées entre elles pour former une ligne de texte. 7) Procédé selon la revendication 5 ou 6, dans lequel au cours de l'étape de décision, le vote est tel qu'il est considéré que la page numérisée est orientée à l'envers si, parmi les lignes de texte de l'ensemble des blocs de caractères extraits de la page numérisée, le nombre de lignes de texte ayant une fonction de signe positive est supérieur au nombre de lignes de texte qui ont une fonction de signe négative, et sinon il est considéré que cette page numérisée est orientée à l'endroit. 8) Dispositif de détermination de l'orientation d'une page numérisée comprenant au moins un bloc de caractères, caractérisé en ce qu'il comporte des moyens pour : - extraire une ligne de texte à partir d'un bloc de caractère, - calculer une fonction de signe par ligne de texte extraite, et - décider de l'orientation de la page numérisée selon le résultat d'un vote basé sur la ou les fonction(s) de signe ainsi calculée(s). 9) Produit programme d'ordinateur, caractérisé en ce qu'il comprend des instructions pour mettre en oeuvre, par un dispositif conforme à la revendication 8, le procédé selon l'une des revendications 1 à 7 lorsque ledit programme est exécuté par un processeur du dispositif 10) Moyens de stockage lisibles par ordinateur, caractérisés en ce qu'ils stockent un programme d'ordinateur comprenant des instructions pour mettre en oeuvre, par un dispositif adapté, le procédé selon l'une des revendications 1 à 7, lorsque ledit programme est exécuté par un processeur du dispositif et conforme à la revendication 8.