1 Généralités Quelques problématiques associées à l’analyse de texte : – Rapidité – Fond complexe – Couleur – Qualité (compression) – Crénelage et anti-crénelage – Orientation des lignes – Manuscrit ou dactylographié – Alphabets / polices – Tailles – Exactitude Nous allons nous focaliser sur des algorithmes rapides qui permettent de détecter des lignes (orientation et épaisseur) d’un texte dactylographié. 2 Détection de l’orientation Les principales techniques de détection de l’orientation des lignes sont les suivantes : – Projections – Transformation de Hough – Transformation de Fourier – Regroupement des voisins – Corrélation des lignes de croisement (algorithme de Gatos [3]). 2.1 Méthodes de projection La méthode du profil de projection de Baird [1] utilise un ensemble de profils de projection à un certains nombre d’angles autour de l’angle attendu. L’angle choisit est celui dont le profil donne la plus grande variation. D’après [4], cette méthode demande beaucoup de temps de calcul et son efficacité diminue lorsque les document contiennent du bruit ou des fragments de caractères. Il existe aussi l’algorithme de Ciardello et al. [2] qui utilise une projection horizontale. Il devra être étudié afin de connaı̂tre sa rapidité. 2.2 Transformation de Hough Les transformations de Hough sont très communes en détection d’orientation. D’après [3] et [4], les transformations Hough sont très gourmandes en temps de calcul. 1 2.3 L’algorithme de Gatos et al. L’article [3] présente un algorithme capable de trouver l’orientation des lignes d’un texte ainsi que leur position (leur ligne centrale). 2.3.1 L’algorithme La première étape de l’algorithme consiste à lisser verticalement l’image en lui appliquant l’algorithme Run-length smoothing algorithm (RLSA) [6] : on fixe un certain seuil T , si le nombre de pixels de fond (les blancs) entre deux pixels de texte (les noirs) est inférieur ou égal au seuil T , alors ces pixels de fond sont convertis en pixel de texte. Ce faisant, on obtient des bandes horizontales noires plutôt que du texte. On sélectionne ensuite plusieurs lignes (deux au moins, plus améliore les résultats) verticales qui découpe l’image en portions de même dimension, on créé des tableaux qui contiennent soit 1 si des pixels sont présents autour, soit 0. Des matrices de corrélation sont ensuite calculées qui représentent les possibilités de lignes entre deux lignes verticales. Si plus de deux lignes verticales sont utilisées, on regroupe toutes les matrices dans une matrice globale. De celle-ci on cherche la possibilité (l’angle) ayant la plus forte chance d’être une ligne et on la choisit. À partir d’une matrice de cohérence, on peut aussi obtenir le centre des lignes en sélectionnant les points à plus forte concentration. 2.3.2 Analyse Les avantages de cet algorithme : – Beaucoup plus rapide que Hough, Hough+RLSA et ICC (Yan) (de 50 à 100 fois d’après les expériences de l’article). De l’ordre de 4 secondes sur un 486DX à 33MHz. – Seule une portion de l’image de départ est utilisée, celle autour des lignes (voire juste les lignes si on élimine RLSA). – Résiste à la présence d’images dans le texte. – Son exactitude est ajustable grâce au nombre de lignes verticales. Les limites de l’algorithme : – Dépendant de l’angle maximum d’orientation de l’algorithme. – Fonctionne uniquement sur des documents textuels (donc OK pour nous). On a N − 1 matrices de corrélation (où N est le nombre de lignes verticales) qui sont chacune de taille H × 2L où H est la hauteur de l’image en pixel et L la pente maximum d’une ligne avec L = D × tan(2πθm ax/360). L’algorithme devrait aussi être modifiable pour pouvoir donner l’épaisseur (moyenne au moins) des lignes. : 2 2.4 L’algorithme de Shivakumara et al. TODO 3 3.1 Segmentation de texte Algorithme de Tran, Lux, NGuyen et Boucher L’algorithme à arrête [5] permet de trouver du texte présent dans une image indépendamment de sa taille, de son orientation ou de ses couleurs. Il recherche, à un haut niveau, les arrêtes de texte puis, à un niveau plus bas, les arrêtes correspondants à la forme des caractères. Il est ainsi indépendant de l’alphabet utilisé et peut aussi bien reconnaı̂tre des caractères latins que chinois à la fois dactylographiés et manuscrits. Des contraintes sur les arrêtes sont utilisées afin de séparer les arrêtes de texte du non-texte par exemple sur la longueur des arrêtes de caractère ou sur leur orientation par rapport à l’arrête centrale. Références [1] H. Baird. The skew angle of printed documents. Proc. Soc. Photogr. Sci. Eng., pages 21–24, 1987. [2] G. Ciardello, G. Scafur, M. T. Degrandi, M. R. Spada, and M. P. Roccoteli. An experimental system for office document handling and text recognition. Proc. Ninth Conf. on Pattern Recognition, pages 739–743, 1988. [3] B. Gatos, N.Papamarkos, and C. Chamzas. Skew detection and text line position determination in digitized documents. Pattern Recognition, 30(9) :1505–1519, 1997. [4] P. Shivakumara, G. Hemantha Kumar, D. S. Guru, and P. Nagabhushan. A novel technique for estimation of skew in binary text document images based on linear regression analysis. Sadhana, 30 :69–85, 2005. [5] H. Tran, A. Lux, and A. Boucher H. L. Nguyen. A novel approach for text detection in images using structural features. 2005. [6] K. Y. Wong, R. G. Casey, and F. M. Wahl. Documents analysis system. IBM J. Res. Devel, pages 647–656, 1982. 3