Brevet FR2910670A1 — publié le 20080627

Procédé et système de binarisation d'une image comprenant un texte La présente invention concerne un procédé et un système de binarisation d'une image comprenant un texte. L'invention s'applique notamment à des images naturelles comportant un texte incrusté. La reconnaissance de textes incrustés dans des images permet d'obtenir des indices de haut niveau sémantique qui caractérisent le contenu des images et en facilitent par exemple une indexation automatique. Des systèmes de reconnaissance optique de caractères, nommés OCR, ont atteint un haut niveau de maturité et sont largement commercialisés. Les systèmes OCR permettent de faire de la reconnaissance de caractères dans des documents textuels par exemple scannés. Cependant les systèmes OCR existants sont peu performants dans le domaine de la reconnaissance de caractères dans des images dites naturelles, qui peuvent être des photos ou des vidéos contenant des textes de scène ou des textes incrustés en postproduction comme des sous-titres. Les systèmes de reconnaissance de caractères de documents textuels actuels nécessitent donc une phase de pré-traitement indispensable. La phase de pré- traitement consiste à séparer les pixels, appartenant au texte à reconnaître, des pixels du fond de l'image. La phase de pré-traitement est nommée phase de binarisation. Au cours de la phase de binarisation, l'image couleur à traiter est transformée en une image en noir et blanc, les pixels blancs correspondant par exemple à la valeur zéro et les pixels noirs correspondant par exemple à la valeur un. L'image une fois traitée comporte donc uniquement des informations de type binaires. Les pixels noirs de l'image en noir et blanc correspondent à des pixels de texte et les pixels blancs correspondent à des pixels du fond de l'image. Les différents caractères du texte sont ensuite isolés et reconnus par un système de reconnaissance de caractère OCR. La plupart des méthodes de binarisation automatique d'une image contenant du texte reposent sur le choix d'un seuil de séparation global ou 2910670 2 de plusieurs seuils de séparation locaux, déterminés par une simple analyse statistique de la distribution de la luminance et de la chrominance de l'image. La luminance est le quotient de l'intensité lumineuse d'une surface d'une image par l'aire apparente de la surface de l'image pour un observateur 5 lointain. La chrominance regroupe les informations de couleur d'une image. Les pixels dont la valeur de luminance et de chrominance dépassent un des seuils fixés sont classifiés comme blancs, les autres pixels étant classifiés comme noirs. L'analyse statistique s'effectue en général à partir d'histogrammes et ne prend pas en compte la forme des caractères. Ce type 1 o de méthode s'avère peu robuste dans le cas de texte incrusté dans des images naturelles. Les principales raisons à ce manque de robustesse sont notamment : • le bruit de codage des images qui rend difficile la séparation des caractères de texte du fond de l'image ; 15 • la variation possible de luminance et de la chrominance des caractères de texte dans l'image ; • les effets de transparence des caractères du texte ; • la complexité du fond de l'image. 20 La majorité des techniques existantes de binarisation élaborent un certain nombre d'hypothèses notamment concernant la luminance du texte par rapport à la luminance du fond de l'image. Des différences sur ces hypothèses permettent notamment de regrouper des techniques existantes 25 en deux catégories principales : les méthodes globales et les méthodes locales. Les méthodes globales sont utilisées lorsque l'on peut émettre l'hypothèse que le texte et le fond de l'image possèdent chacun une 30 luminance différente mais homogène. Il s'agit alors de rechercher une valeur seuil unique de luminance pour différentier la luminance des pixels du texte et la luminance des pixels du fond de l'image. Plusieurs de ces méthodes sont notamment décrites dans les documents suivants : • "Localizing and Segmenting Text in Images and Videos", dans l'IEEE 35 Transactions on circuits and systems for video technology, volume 12, numéro 4, avril 2002, écrit par R. Lienhart et A. Wernicke ; 2910670 3 • "Goal-directed evaluation of binarization methods", IEEE Transactions on Pattern Analysis and Machine Intelligence, dans le volume 17, Issue 12, décembre 1995, pages 1191 à1201, de O.D Trier et A.K. Jain 5 • "A Fast Algorithm for Multilevel Thresholding" du Journal of information science and engineering, volume 17, pages 713 à 727, publié en 2001, rédigé par P-S. Liao, T-S. Chen et P-C. Chung ; • "Adaptive Document Binarization" In International Conference on Document Analysis and Recognition, volume 1, pages 147-152, 1 o publié en 1997, rédigé par J. Sauvola, T. Seppânen, S. Haapakoski, et M. Pietikàinen. Les approches utilisées pour mettre au point les méthodes globales découlent des techniques employées pour des documents textuels scannés dans lesquels le texte apparaît de manière sombre sur un fond 15 d'image clair et uniforme. Pour trouver un seuil de luminance optimal, la plupart des méthodes se basent sur un calcul d'histogramme, l'histogramme caractérisant la distribution de la luminance des différents pixels de l'image. La méthode décrite dans le document "Adaptive Document 20 Binarization" détermine un seuil séparant les luminances des pixels de l'image en deux classes de telle sorte que la variance entre les deux classes soit maximale. On suppose donc qu'il existe une majorité de pixels appartenant au fond de l'image afin de décider laquelle des deux classes regroupe les pixels du fond de l'image et laquelle des deux 25 classes regroupe les pixels du texte. Cette hypothèse n'est cependant pas toujours vérifiée. Dans le document "Localizing and Segmenting Text in Images and Videos", on considère un premier histogramme de la luminance des quatre lignes centrales de la zone de texte, qui sont supposées contenir 30 une majorité de pixels de texte, et un deuxième histogramme de la luminance de quatre lignes des bords de la zone de texte, par exemple deux lignes en haut et deux lignes en bas de la zone de texte, qui sont supposées contenir une majorité de pixels du fond de l'image. Une valeur maximale d'un troisième histogramme, résultant de la différence entre le premier et le deuxième histogramme, donne directement une luminance moyenne du texte. Une valeur minimale du troisième histogramme donne 2910670 4 une luminance moyenne du fond de l'image. Un seuil de luminance est alors la valeur moyenne entre la luminance moyenne du texte et la luminance moyenne du fond de l'image. Le choix empirique d'un seuil unique suppose que le texte et le 5 fond possèdent des luminances homogènes et séparables par une valeur seuil. Ceci n'est généralement pas le cas notamment lorsque le texte mais surtout le fond de l'image possèdent une luminance variable, par exemple dans des parties d'image présentant des scènes naturelles ou dans des vidéos. Plus particulièrement, les méthodes globales ne 1 o peuvent pas traiter les textes dont les lettres présentent des différences de couleur ou d'intensité entre elles. Ce type de texte peut apparaître lorsqu'il a été créé avec des différences de couleur ou d'intensité ou bien lorsqu'il s'agit de textes de scène, qui sont des textes faisant partie de la scène observée : un panneau indicateur ou un texte incrusté par 15 transparence, une date par exemple. Des différences de couleur ou d'intensité peuvent également apparaître suite à un codage de l'image. Dans les méthodes locales, on suppose que le texte et le fond de l'image peuvent avoir des luminances variables dans une zone de texte. 20 Certaines méthodes locales, connues sous le nom de méthodes de seuillage adaptatif, cherchent, comme les méthodes globales précédemment citées, à réaliser une estimation des seuils de luminance pour chacune des différentes parties de l'image. L'image est donc découpée en un ensemble de fenêtres rectangulaires dans lesquelles des 25 binarisations indépendantes sont réalisées. La plupart des méthodes locales sont basées sur un calcul de moyenne de la luminance ainsi que sur une minimisation de l'écart type entre les différentes classes de luminance des pixels de l'image. Les méthodes locales ont donc pour objectif de s'adapter à des 30 variations de luminance locales dans une image. La taille des fenêtres rectangulaire de traitement est fixée a priori, ce qui suppose une connaissance a priori de la taille des caractères de texte et de leur apparence : comme le type de police, le style gras ou italique par exemple. Si la taille de la fenêtre est trop grande, les détails de la 35 structure des caractères sont dégradés. Si la taille de la fenêtre est trop petite par rapport à l'épaisseur des caractères alors la fenêtre peut ne 2910670 5 contenir que des pixels de texte et ainsi ne pas permettre de déterminer un seuil de binarisation. En effet, la détermination du seuil de binarisation repose sur une analyse des histogrammes de la luminance des pixels du fond de l'image et du texte. De plus la taille des fenêtres n'est pas, pour 5 les méthodes locales, le seul paramètre à déterminer. Comme pour les méthodes globales, de nombreux paramètres doivent être ajustés 1 empiriquement, ce qui nuit à la robustesse de ces méthodes. La plupart des méthodes précédemment citées ne prennent pas 10 directement en compte la couleur de l'image. En effet, la plupart de ces méthodes reposent sur une analyse de la seule luminance : l'image couleur est classiquement transformée en une image en niveaux de gris. Ceci suppose que la luminance permet une séparation entre le texte et le fond, ce qui n'est pas toujours le cas, notamment avec un texte incrusté 15 dans une image. Il est connu que deux couleurs différentes mais de luminance identique ne peuvent être distinguées après transformation de l'image couleur en image de niveaux de gris. D'autres méthodes utilisent des informations sur la chrominance 20 des images à binariser. Parmi ces méthodes, la plupart appliquent les techniques globales et locales sur un ou plusieurs canaux de couleur indépendamment comme les canaux rouge, vert, bleu. Ensuite ces méthodes utilisent une fusion des résultats afin de réaliser la binarisation. C'est le cas de la méthode décrite dans le document écrit par Du, 25 E.Y., Chein-1 Chang, Thouin, P.D. : "An unsupervised approach to color video thresholding", International Conference on Multimedia and Expo, Volume 3, 6-9 juillet 2003, pages: 337-340. Cette méthode calcule un seuil pour chaque canal de couleur de l'espace de couleur rouge, vert et bleu autrement nommé RVB. Ce seuil est calculé en utilisant une 30 méthode de seuillage globale de la luminance de chaque canal, par exemple la méthode Otsu bien connue par l'homme du métier. Chaque canal de couleur est ensuite binarisé. Ainsi chaque pixel de l'image couleur est représenté par un code comportant trois composantes (ci, c2, c3), où c, est la valeur du pixel dans le canal a binarisé, a pouvant 35 prendre dans l'exemple les valeurs un, deux ou trois. Les pixels peuvent alors être regroupés en huit ensembles. Chaque ensemble correspond à 2910670 6 une valeur donnée parmi les huit valeurs possibles du triplet (c,, c2, c3) par exemple (0, 1, 0). Ces ensembles sont ensuite fusionnés et marqués comme appartenant au fond de l'image ou au texte en fonction des variances intra et interclasse des valeurs de la luminance des pixels 5 assignés à la classe de texte ou à la classe de fond de l'image, chaque classe correspondant à un niveau de luminance dans chacun des canaux. Ces types de méthodes appliquent pour la plupart les méthodes globales ou locales, développées pour la luminance, aux différents 1 o canaux de couleur. Ces méthodes se heurtent donc aux même inconvénients que ceux cités pour les méthodes globales et les méthodes locales. D'autres techniques, utilisant un principe similaire, quantifient les 15 couleurs d'une image en un nombre réduit de couleurs dominantes afin d'obtenir une image codée sur un petit nombre de niveaux de couleur. Cette technique de quantification est décrite, dans le document "Text detection and segmentation in complex color images", IEEE International Conference on Acoustics, Speech, and Signal Processing, Volume 6 , 5-9 20 juin 2000, pages : 2326 - 2329, rédigé par C. Garcia et X. Apostolidis. La technique de quantification consiste donc à quantifier les couleurs d'une image en un nombre fixé par exemple à quatre couleurs dominantes obtenues par l'algorithme des K-moyennes couramment utilisé en analyse numérique. Les deux couleurs les plus représentées sur les bords de 25 l'image sont assignées au fond de l'image. Les couleurs restantes peuvent être assignées soit au fond, soit au texte. Toutes les combinaisons possibles d'assignation d'une couleur, soit au fond, soit au texte, sont alors considérées. Pour chaque combinaison possible, une analyse de la périodicité horizontale des pixels assignés à la classe texte est réalisée 30 grâce à un ensemble de mesures qui permettent de sélectionner la combinaison la plus plausible. Ces méthodes dépendent de très nombreux paramètres fixés de manière empirique : un nombre de niveaux de quantification, une taille de la zone du bord de l'image, des valeurs seuils pour les mesures de 35 périodicité par exemple. Ces paramètres empiriques sont difficiles à déterminer. De plus, les méthodes de quantification supposent que 2910670 7 l'image possède un nombre de couleurs réduit, ainsi que des couleurs homogènes ou peu variables. Ces méthodes ne permettent donc pas de prendre en compte des images naturelles dans lesquelles la couleur de fond peut notamment être très variable. 5 Le principal inconvénient des techniques existantes réside donc dans leur faible robustesse aux variations de luminance et surtout de chrominance dans une image contenant du texte. Les techniques existantes sont également peu robustes aux bruits de codage de l'image 10 lorsque ce codage résulte par exemple d'une compression de l'image. En effet, une compression de l'image conduit à un manque d'homogénéité des pixels. La présence de fonds d'image complexes et les techniques d'incrustation de texte par transparence dans une image sont autant de difficultés qui rendent les méthodes de binarisation existantes peu 15 efficaces. Une limitation majeure des techniques de binarisation selon l'art antérieur, qu'elles utilisent la couleur ou la luminance, réside dans le fait qu'elles ne prennent pas en compte la distribution spatiale des pixels de l'image correspondants au texte, c'est à dire les formes possibles des 20 caractères. Le résultat de la binarisation est donc parfois inexploitable par des logiciels de reconnaissance de texte. Un but de l'invention est notamment de pallier les inconvénients 25 précités. A cet effet, l'invention a pour objet un procédé et un système de binarisation d'une image comprenant un texte. Le procédé de binarisation comporte : • une phase préliminaire d'apprentissage d'un procédé de construction d'une image de texte binaire par une architecture neuronale. 30 L'architecture neuronale comporte notamment des couches hétérogènes de neurones artificiels. L'image de texte binaire est composée de pixels du texte valant une première valeur et de pixels de fond de l'image comprenant le texte valant au moins une autre valeur ; 2910670 8 • une phase de binarisation de l'image comprenant le texte par le procédé de construction d'une image de texte binaire appris au cours de la phase préliminaire d'apprentissage. La phase préliminaire d'apprentissage est un processus itératif 5 comportant au moins les étapes suivantes : • construction d'un ensemble d'apprentissage composé d'images comportant du texte et des images de texte binaires correspondantes ; • initialisation de poids de connexions synaptiques entre les couches hétérogènes de neurones artificiels de l'architecture neuronale ; 10 • choix d'un couple, comprenant une image comportant du texte d'entrée et l'image de texte binaire correspondante, dans l'ensemble d'apprentissage ; • décomposition de l'image comportant du texte d'entrée en plusieurs canaux de codage d'image, fournis en entrée de l'architecture 15 neuronale ; • construction d'une image de sortie, à partir de l'image comportant du texte d'entrée, par l'architecture neuronale en évaluant une différence entre l'image de sortie et l'image de texte binaire correspondante ; • comparaison de l'image de sortie avec l'image de texte binaire 20 correspondante en évaluant une différence entre l'image de sortie et l'image de texte binaire correspondante ; si la différence entre l'image de texte binaire correspondante et l'image de sortie dépasse un seuil s, • mise à jour des poids de connexions synaptiques de l'architecture 25 neuronale en minimisant la différence entre l'image de sortie et l'image de texte binaire correspondante, le processus itératif recommençant alors à partir de l'étape de choix. La phase de binarisation comporte au moins les étapes suivantes : 30 • redimensionnement d'une image d'entrée comportant du texte en une image de dimension donnée ; • décomposition de l'image d'entrée en plusieurs canaux de codage d'image, fournis en entrée de l'architecture neuronale ; • construction d'une image de texte de sortie par l'architecture neuronale ; 35 • obtention de l'image de texte binaire. 2910670 9 La minimisation de la différence entre l'image de sortie et l'image de texte binaire correspondante est notamment effectuée par un algorithme de retro-propagation du gradient. La minimisation de la différence entre l'image de sortie et l'image 5 de texte binaire correspondante est effectuée en minimisant par exemple une fonction objectif O représentant une erreur quadratique moyenne : NT LxH 0= 1 1(Fh-Dh)2 NTxLxHkk=lh=i avec : ^ NT représentant le nombre d'images de l'ensemble d'apprentissage 1 o utilisées pendant la phase d'apprentissage ; ^ Fh représentant la valeur d'un pixel de l'image de sortie ; ^ Dh représentant la valeur d'un pixel de l'image de texte binaire correspondante. Le système de binarisation comprend une architecture neuronale 15 comportant plusieurs couches hétérogènes de neurones artificiels : • un premier ensemble d'une ou plusieurs couches de neurones effectuant une extraction de formes caractéristiques du texte de l'image comprenant le texte présentée en entrée de l'architecture neuronale ; • un deuxième ensemble d'une ou plusieurs couches de neurones 20 effectuant une construction fine des formes caractéristiques du texte en une image de sortie. Le premier ensemble de couches de neurones de l'architecture neuronale comporte notamment : • une couche d'entrée comportant un nombre NE de cartes Ec de pixels de 25 l'image comportant le texte d'entrée. Les cartes Ec sont de dimension donnée; • une couche de convolution comportant un nombre NC1 de cartes C1; de neurones. Les cartes C1; sont de dimension donnée. Chaque neurone de chaque carte C1; est par exemple connecté par un premier ensemble de 30 M1)(M1 connexions synaptiques à un ensemble de M1xM1 pixels de chaque carte Ec. Chaque pixel de chaque carte Ec est connecté à un ou plusieurs neurones de chaque carte C1; ; • une couche de sous-échantillonnage comportant un nombre NS2 de cartes Sei de dimension réduite par rapport à la dimension donnée. 35 Chaque neurone d'une carte Sei reçoit par exemple une moyenne de 2910670 10 M2xM2 sorties de M2xM2 neurones voisins d'une carte C1; . Chaque neurone de chaque carte C1; est connecté à un seul neurone d'une carte Sei par l'intermédiaire d'un deuxième ensemble de connexions synaptiques. 5 Le deuxième ensemble de couches de neurones de l'architecture neuronale comporte notamment : • une couche de sur-échantillonnage comportant un nombre NU3 de cartes U3k de dimension supérieure à la dimension des cartes Sei et inférieure à la dimension donnée. Chaque neurone de chaque carte U3k est par 1 o exemple connecté à un neurone d'une carte S4. Chaque neurone d'une carte Sei est par exemple connecté à un ensemble de M2xM2 neurones voisins d'une carte U3k par l'intermédiaire d'un troisième ensemble de M2xM2 connexions synaptiques ; • une couche de convolution-inverse étant une couche de sortie de 15 l'architecture neuronale. La couche de convolution-inverse comporte notamment une carte de neurones. Chaque neurone de chaque carte U3k est par exemple connecté à un ensemble de M1xM1 neurones voisins de la couche de sortie. Chaque neurone de la couche de sortie est par exemple connecté à un ou plusieurs neurones voisins de chaque carte 20 U3k par l'intermédiaire d'un quatrième ensemble de connexions synaptiques. Les neurones de la couche de convolution C1 utilisent une première fonction d'activation de type linéaire ; les neurones de la couche de sous-échantillonnage S2 utilisent une deuxième fonction d'activation de type 25 sigmoïde ; les neurones de la couche de sur-échantillonnage U3 utilisent une troisième fonction d'activation de type sigmoïde et les neurones de la couche de convolution-inverse F utilisent une quatrième fonction d'activation de type sigmoïde. Chaque connexion synaptique de l'architecture neuronale est 30 associée à un poids synaptique W3. Les poids de chaque ensemble de connexions synaptiques entre les neurones de chaque couche de l'architecture neuronale sont par exemple partagés par les neurones de chaque couche de l'architecture neuronale hormis la couche d'entrée. Un programme informatique comprend notamment des 35 instructions de code de programme pour l'exécution du procédé de 2910670 11 binarisation d'une image comprenant un texte. Le programme informatique est notamment exécuté par un ou plusieurs processeurs. 5 L'invention a notamment pour principal avantage de traiter de manière robuste des images au fond complexe, présentant des variations de chrominance, de faibles contrastes et un bruit élevé. L'invention possède également l'avantage de prendre en compte la forme des caractères de texte. 1 o Le système selon l'invention permet avantageusement de prendre en compte simultanément plusieurs canaux de couleurs. Un autre avantage du système selon l'invention est qu'il ne nécessite pas de paramétrage empirique. 15 D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit, donnée à titre illustratif et non limitatif, et faite en regard des dessins annexés qui représentent : • la figure 1 : un synoptique des différentes phases du procédé selon l'invention ; 20 • la figure 1 b : un exemple d'un ensemble d'apprentissage pour une phase d'apprentissage du procédé selon l'invention ; • la figure 2 : un schéma de principe d'une architecture d'un perceptron multicouches ; • la figure 3a : un schéma de principe du fonctionnement d'un 25 neurone artificiel ; • la figure 3b : une fonction d'activation d'un neurone artificiel ; • la figure 4a : un schéma fonctionnel d'une architecture neuronale selon l'invention ; • la figure 4b : un exemple de convolution entre deux couches 30 de l'architecture neuronale selon l'invention ; • la figure 4c : un exemple de sous-échantillonnage entre deux couches de l'architecture neuronale selon l'invention • la figure 4d : un exemple de sur-échantillonnage entre deux couches de l'architecture neuronale selon l'invention 35 • la figure 4e : un exemple de convolution-inverse entre deux couches de l'architecture neuronale selon l'invention 2910670 12 • la figure 5 : un synoptique de différentes étapes possibles de la phase d'apprentissage du procédé selon l'invention ; • la figure 6 : un synoptique de différentes étapes possibles d'une phase de binarisation du procédé selon l'invention ; 5 La figure 1 a représente deux phases 1,2 du procédé de binarisation selon l'invention. Le procédé selon l'invention repose notamment sur une 1 o architecture neuronale selon l'invention comportant plusieurs couches hétérogènes de neurones artificiels. Les couches hétérogènes de neurones artificiels permettent : • de développer automatiquement des extracteurs de caractéristiques de bas niveaux, comme des lignes ou des angles dans une image, 15 caractérisant des caractères de texte dans une image ; • d'apprendre des règles permettant de séparer les caractères de texte, du fond de l'image afin d'étiqueter automatiquement les pixels de l'image en pixels de texte ou en pixels de fond. 20 Une première phase 1 du procédé de binarisation automatique selon l'invention est une phase d'apprentissage 1 d'un procédé de construction d'une image de texte binaire. Cette phase d'apprentissage 1 permet de régler des poids de connexions synaptiques entre les neurones des différentes couches de l'architecture neuronale selon l'invention qui sera 25 décrite par la suite. Cette première phase d'apprentissage 1 s'effectue préalablement à une deuxième phase de binarisation automatique 2 d'un texte dans une image. Au cours de la première phase d'apprentissage 1 un ensemble d'apprentissage 3, représenté par exemple sur la figure 1 b, est construit. 30 L'ensemble d'apprentissage 3 comprend un ensemble d'images comportant du texte 4 produites artificiellement et présentant des variations importantes en terme de bruit de codage, de contraste et de couleur. L'ensemble d'apprentissage 3 comprend également des images de texte binaires 5 correspondant à chaque image couleur comportant du texte 4. Les images 35 comportant du texte 4 sont construites à partir d'un ensemble d'images de texte binaires 5 auxquelles sont appliqués : 2910670 13 • différents types de bruits comme des bruits suivant une loi uniforme ou une loi Gaussienne ; • des filtres de lissage afin d'obtenir des images artificielles comportant du texte 4 se rapprochant le plus possible d'image réelles. 5 Une fois l'ensemble d'apprentissage construit, chaque image comportant du texte 4 est présentée à une couche d'entrée de l'architecture neuronale selon l'invention. L'architecture neuronale comporte au moins une couche de neurone intermédiaire entre la couche d'entrée et une couche de sortie. Cette architecture neuronale apprend à construire, globalement et en un 10 passage, une image de texte binaire à partir d'une image comportant du texte 4. Une image de texte résultat est donc obtenue en sortie de l'architecture neuronale. Cette image de texte résultat est comparée, au cours de la phase d'apprentissage 1, à l'image de texte binaire 5 de la base d'apprentissage 3 correspondant à l'image comportant du texte 4 présentée 15 en entrée de l'architecture neuronale. Si une différence significative existe entre l'image de texte résultat et l'image de texte binaire désirée, les poids des connexions synaptiques de l'architecture neuronale sont mis à jour en fonction de la différence détectée, afin de minimiser cette dernière. Une fois la première phase d'apprentissage 1 accomplie, 20 l'architecture neuronale peut traiter des images couleur inconnues comportant du texte. L'architecture neuronal produit en sortie une image de texte résultat dont les éléments permettent d'étiqueter directement chaque pixel de l'image en pixel de fond de l'image ou en pixel de texte. 25 La figure 2 représente un schéma général d'un réseau de neurones artificiels 20 de type perceptron multicouches. Le système de binarisation selon l'invention met en oeuvre une architecture neuronale de type perceptron multicouches. Ce perceptron multicouches 20 permet au 30 système de binarisation selon l'invention d'apprendre un ensemble de poids de connexion entre les différents neurones du perceptron 20 afin de pouvoir construire une image de texte binaire. Le perceptron multicouches 20 est donc un réseau orienté de neurones artificiels organisés en plusieurs couches hétérogènes 21, 22,23, 35 24. L'information circule dans le perceptron 20 dans un seul sens, de la couche d'entrée 21 vers la couche de sortie 24. Le perceptron 20 est alors dit 2910670 14 orienté. Le réseau de neurones 20 représenté sur la figure 2 comporte une couche d'entrée 21, deux couches cachées 22, 23 et une couche de sortie 24. La couche d'entrée 21 est une couche de neurones virtuelle associée aux données d'entrées du système de binarisation par exemple, elle n'est 5 donc pas réellement composée de neurones artificiels. Les couches suivantes, 22, 23, 24 comportent chacune un ensemble de neurones artificiels. Dans le cas général, un perceptron multicouches peut comporter un nombre de couches de neurones quelconque et un nombre de neurones et d'entrées par couche de neurones également quelconque. Sur la figure 2, 10 le réseau de neurones 20 comporte trois entrées 21, quatre neurones sur la première couche cachée 22, trois neurones sur la deuxième couche cachée 23 et quatre neurones sur la couche de sortie 24. Les sorties 25 des neurones de la couche de sortie 24 correspondent à la sortie du système de binarisation par exemple. 15 Un neurone artificiel, comme celui représenté sur la figure 3a, est une unité de calcul qui reçoit en entrée un signal sous la forme d'un vecteur X de n valeurs réelles par exemple, n étant supérieur ou égal à un. Ce vecteur X arrive dans le neurone par l'intermédiaire de n connexions synaptiques qui portent chacune un poids pouvant prendre une valeur réelle 20 w;;, ii étant compris entre zéro et n. Un neurone artificiel délivre par exemple en sortie une valeur réelle y. Les différentes opérations réalisées par le neurone artificiel sont représentées sur la figure 3a décrite par la suite. Dans le perceptron multicouches 20 les neurones des différentes couches 21, 22, 23, 24 sont reliés entre eux par l'intermédiaire de 25 connexions synaptiques pondérées 26, 27, 28. Des premières connexions synaptiques 26 relient les neurones de la couche d'entrée 21 aux neurones de la première couche cachée 22, des deuxièmes connexions synaptiques 27 relient les neurones de la première couche cachée 22 aux neurones de la deuxième couche cachée 23 et des troisièmes connexions synaptiques 28 30 relient les neurones de la deuxième couche cachée 23 aux neurones de la couche de sortie 24. Le poids affecté à chaque connexion synaptique 26, 27, 28 permet de gouverner le fonctionnement du réseau de neurones 20 et donc de programmer une application de l'espace des entrées du réseau de neurones 20 vers l'espace des sorties du réseau de neurones 20 à l'aide 35 d'une transformation non linéaire. La création d'un perceptron multicouches afin de résoudre un problème donné passe donc par l'inférence de la 2910670 15 meilleure application possible telle que définie par un ensemble de données d'apprentissage constituées de paires (X, y) de vecteurs d'entrées X et de sorties désirées y. 5 La figure 3a représente un schéma fonctionnel d'un neurone artificiel 32. Le neurone artificiel 32 est donc une unité de calcul recevant en entrée un vecteur X de n valeurs réelles [xi, x2, ... , xn], n étant supérieur ou égal à un, plus une valeur fixe notée xo et valant xo=+1. Chacune des entrées 1 o x;;, ii valant zéro à n, excite une des connexions synaptiques 30 pondérée par un poids w;;. Le poids wo est le poids de la connexion synaptique associée à la valeur d'entrée xo. La quantité woxxo est appelée biais et correspond à une valeur seuil pour le neurone artificiel 32. Une fonction de sommation calcule ensuite un potentiel V à partir 15 des valeurs x; du vecteur X reçu en entrée : n V = 1 (wii x xii) (101) ii=o Après passage du potentiel V dans une fonction dite d'activation le neurone artificiel 32 délivre une sortie qui peut être une valeur réelle y telle que : ~Ti n y(V) =(t. ~jwüxxü (102) 20 \ ii=0 La fonction d'activation peut prendre différentes formes en fonction des applications voulues. Dans le cadre du système de binarisation selon l'invention, deux types de fonctions d'activation sont notamment utilisées : • une première fonction d'activation linéaire de type : 25 (1)(x)= x (103) • une deuxième fonction d'activation non-linéaire dite sigmoïde de type : (ex + ex) (104) La figure 3b représente un exemple de fonction sigmoïde : la fonction tanh(x) présentant l'avantage de produire des valeurs 31 bornées entre moins un et 30 plus un. (x) = tanh(x) _ (e ùe x) 2910670 16 La figure 4a représente une architecture 40 de réseaux de neurones de type perceptron multicouches utilisé par le système de binarisation selon l'invention. Cette architecture de réseau de neurones 40, ou architecture neuronale 40, comporte cinq couches de neurones 5 hétérogènes E, C,, S2, U3, F interconnectées. L'architecture neuronale 40 comporte : • un premier ensemble de couches de neurones 41, chaque couche de neurones comportant une série de cartes issues notamment d'opérations de convolution et de sous-échantillonnage ; 10 • un deuxième ensemble de couches de neurones 42, chaque couche de neurones comportant une série de cartes issues notamment d'opérations de sur-échantillonnage et de convolution-inverse. Le premier ensemble de couches de neurones 41 est chargé d'extraire des primitives caractéristiques en matière de forme et de couleur d'une image 15 d'entrée 43 comportant du texte. Le deuxième ensemble de couches de neurones 42 permet de construire à partir des primitives extraites une image de sortie 44. Une première couche de neurones E, est une couche d'entrée E 20 de l'architecture neuronale 40. La couche d'entrée E peut comporter un nombre NE de cartes Ec de neurones, avec c valant un à NE. Chacune des cartes Ec de neurones correspond à un canal de codage de l'image d'entrée 43 selon un espace de codage d'image choisi au préalable. Par exemple si l'on utilise un espace de couleurs RVB, signifiant rouge vert et bleu, chaque 25 carte correspondra à une couleur de l'espace de couleur RVB. Le nombre NE de cartes Ec est par exemple trois, comme représenté sur la figure 4a. Ainsi la première carte E, correspond par exemple au canal rouge de l'image d'entrée 43, la deuxième carte E2 correspond par exemple au canal vert de l'image d'entrée 43 et la troisième carte E3 correspond par exemple au canal 30 bleu de l'image d'entrée 43. D'autres espaces de codage de l'image peuvent être utilisés afin de décomposer l'image en canaux, par exemple un codage en luminance, teinte et saturation. Chaque carte Ec représente une matrice de pixels de l'image de taille HxL correspondant à la taille de l'image d'entrée 43. L'image d'entrée 35 43 peut par exemple avoir une taille de 24x48. Chaque pixel (P,m)c d'un canal de couleur c de l'image d'entrée 43 peut prendre les valeurs un à deux cent 2910670 17 cinquante-cinq. Les indices I et m représentent respectivement un indice de ligne et un indice de colonne dans la matrice de pixels représentant l'image d'entrée 43. Chaque élément (E,'m')c d'une carte Ec de la couche d'entrée E est obtenu en effectuant l'opération suivante : 5 (Erm,)c _ (Pim)c -128128 (105) avec 1'=1 et m'=m, I' et m' étant respectivement l'indice d'une ligne et l'indice d'une colonne d'une carte Ecde neurones. Chaque valeur (E,'m')c est alors comprise entre moins un et plus un. 1 o Une deuxième couche de neurones C1 est une couche de convolution C1. Cette couche de convolution C1 comporte un nombre NC1 de cartes C1;, i étant compris entre un et NC1. On peut prendre par exemple NC1=30. Chaque carte C1; est connectée à toutes les cartes Ec de la couche d'entrée E. Chaque neurone de chaque carte C1; utilise une fonction 15 d'activation de type linéaire (103). Chaque neurone de chaque carte C1; est connecté à un ensemble de M1xM1 éléments E,',' voisins de chaque carte Ec par un premier ensembles de M1xM1 connexions synaptiques 45. Chaque carte C1; est de taille H1xL1 avec HI =(H-MI)+1 et LI =(L-Ml)+1, par exemple : H1=20 et L1=44. La convolution utilisée pour passer de la couche 20 d'entrée E à la couche de convolution C1 est par exemple une convolution de taille NN1xNN1=5x5. La figure 4b représente un exemple de convolution entre une première portion 50 d'une carte Ec de la forme d'un premier rectangle 50 de dimension 7x12 et une deuxième portion 51 d'une carte C1; de la forme d'un 25 deuxième rectangle 51 de taille 5x10. Pour éviter, par un effet de bord de la convolution, d'utiliser des éléments de la carte Ec n'existant pas, on définit un troisième rectangle 53 de la taille du premier rectangle 50 moins une bande de taille (M1-1)/2 que l'on enlève de chaque côté du premier rectangle 50, M1 étant impair dans ce cas. Le troisième rectangle 53 a donc par exemple une 30 taille de 5x10 ce qui correspond à la taille d'une carte C1;. Un premier neurone 52 situé dans le troisième rectangle 53 est connecté avec un deuxième neurone 54 du deuxième rectangle 51. Le premier neurone 52 est à la même position dans le troisième rectangle 53 que le deuxième neurone 54 dans le deuxième rectangle 51, les deuxième et troisième rectangles 51, 35 53 ayant la même taille. Chaque neurone du premier rectangle 50, appartenant à un carré 55 de côté M1 dont le centre est le premier neurone 2910670 18 52, est connecté au deuxième neurone 54. Le deuxième neurone 54 est donc connecté de la même manière à un ensemble de M1xM1 éléments E,',' voisins des autres cartes Ec. Chaque neurone d'une carte C1; partage avec les autres neurones de l'ensemble des cartes C1; les poids des connexions 5 synaptiques ainsi que les poids associés au biais de chaque neurone des cartes C1;. Tous les neurones des cartes C1; utilisent donc un même ensemble W de mêmes valeurs W;v de poids des connexions synaptiques, avec iv compris entre zéro et M1xM1, Wo étant le poids synaptique relatif au biais. 1 o La convolution utilisée pour passer de la couche d'entrée E à la couche de convolution C1 permet de réaliser une détection de bas-niveau dans les cartes d'entrées Ec. Une détection de bas-niveau permet d'extraire des formes de base dans une image comme des coins ou des lignes de contraste orientées. 15 Une troisième couche de neurones S2 est une couche de sous-échantillonnage S2 comportant un nombre NS2 de cartes Sei de neurones, j étant compris entre un et NS2, avec notamment NS2=NC1. La couche de sous-échantillonnage S2 est connectée à la couche de convolution C1 par 20 l'intermédiaire d'un deuxième ensemble de connexions synaptiques 46. Chaque neurone de chaque carte Sei reçoit une moyenne de M2xM2 éléments voisins d'une carte C1; avec i=j par exemple. Chaque neurone de chaque carte Sei multiplie alors la moyenne reçue par un poids synaptique et y ajoute un biais comme représenté sur la figure 3a. L'ensemble des poids 25 synaptiques ainsi que le poids associé au biais de chaque neurone sont à apprendre et sont partagés par l'ensemble des neurones de chaque carte S2i. La figure 4c représente un exemple de sous-échantillonnage entre une troisième portion 56 d'une carte C1; et une quatrième portion 57 d'une 30 carte S2i. La troisième portion 56 de la carte C1; se présente sous la forme d'un quatrième rectangle 56 de taille 4x10. La quatrième portion 57 de la carte Sei se présente sous la forme d'un cinquième rectangle 57 de taille 2x5. Dans l'exemple représenté sur la figure 4c, le sous-échantillonnage est donc de taille 2x2. En effet, le quatrième rectangle 56 peut être décomposé en 35 carrés de taille M2xM2=2x2, comme un carré 58 représenté sur la figure 4c. L'ensemble des neurones de la carte C1; compris dans le carré 58 est 2910670 19 connecté à un même troisième neurone 59 de la carte S2i. Chaque neurone de chaque carte C,; est donc connecté à un seul neurone d'une carte S2i. L'ensemble des poids des connexions synaptiques entre les neurones de la carte C,; et le troisième neurone 59 de la carte Sei ainsi que le poids associé 5 au biais, sont les mêmes pour l'ensemble des neurones de la cartes S2i. La sortie de chaque neurone d'une carte Sei est obtenue par un passage dans une fonction d'activation de type sigmoïde (104). Chaque carte Sei est de taille H2xL2 avec H2 = H1/M2 et L2 = L1/M2. Par exemple on peut avoir H2=10 et L2=22. 1 o Au niveau de la sortie de la couche de sous-échantillonnage S2, les caractéristiques du texte de l'image d'entrée 43 sont extraites et condensées. Les couches suivantes U3, F de l'architecture neuronale 40 permettent de construire une image de sortie 44. 15 Une quatrième couche de neurones U3 de l'architecture neuronale 40 est une couche de sur-échantillonnage U3. La couche de suréchantillonnage U3 comporte un nombre NU3 de cartes de neurones U3k, k étant compris entre un et NU3. NU3 est notamment égal à NS2. Chaque carte U3k est connectée à une carte Sei correspondante par l'intermédiaire d'un 20 troisième ensemble de connexions synaptiques 47. Une carte Sei correspondant à une carte U3k est telle que j=k. Comme représenté sur la figure 4d, chaque neurone 60 d'une carte Sei est connecté à un ensemble de M2xM2 neurones voisins 61 de la carte U3k correspondant. Chaque neurone d'une carte U3k est connecté à un 25 neurone de la carte Sei correspondant. Sur la figure 4d, M2xM2 vaut 2x2. La taille d'une carte Sei étant H3xL3 avec H3 = H1 x M2 et L3 = L1 x M2 , H3xL3 vaut par exemple 20x44. Chaque neurone d'une carte U3k multiplie la sortie des neurones d'une carte Sei à laquelle il est connecté par un poids synaptique et y ajoute 30 un biais. La sortie de chaque neurone d'une carte U3k est obtenue après passage dans une fonction sigmoïde du type (104) comme représentée sur la figure 3b. Les M2xM2 poids synaptiques sont partagés par l'ensemble des neurones de chaque carte U3k. La couche de sur-échantillonnage U3 effectue une première 35 construction de l'image de sortie 44 en affinant les caractéristiques du texte 2910670 20 extraites par les couches précédentes E, C1, S2 de l'architecture neuronale 40. Une cinquième couche F de l'architecture neuronale 40 est une 5 couche de sortie F, comportant une carte de sortie F de neurones. La carte de sortie F est connectée à toutes les cartes U3k de la couche de sur-échantillonnage U3 par un quatrième ensemble de connexions synaptiques 48. Chaque neurone d'une carte U3k est connecté par un ensemble de M1xM1 connexions synaptiques 48 à un ensemble de M1xM1 neurones 1 o voisins de la carte de sortie F. Un exemple d'une connexion entre une carte U3k et la carte F est représentée sur la figure 4e. Il s'agit d'un schéma inverse par rapport à une convolution comme celle représentée figure 4b. Ce schéma est donc nommé convolution-inverse. Sur la figure 4e, seuls les neurones compris dans un sixième rectangle 62 comportent tous les 15 neurones d'une carte U3k à l'exception des neurones situés dans une bande de largeur (M1 -1)/2 située sur les bords de la cartes U3k. Ceci évite d'avoir, au cours de la convolution-inverse, des neurones de la carte U3k n'étant connectés avec aucun neurone de la carte de sortie F. Par exemple, un quatrième neurone 63 situé à l'intérieur du sixième rectangle 62 est connecté 20 avec un ensemble 64 de M1xM1 neurones, les M1xM1 neurones étant situés dans un carré 64 dont le centre est un cinquième neurone 65 dont la position dans la carte F correspond à la position du quatrième neurone 63 dans la carte U3k. Les M1xM1 poids synaptiques et le poids associé au biais d'un 25 neurone de la carte de sortie F, sont partagés par tous les neurones de la carte de sortie F. La sortie de chaque neurone est obtenue après passage dans une fonction de type sigmoïde comme la fonction (104) représentée sur la figure 3b. La convolution-inverse permet de construire la carte de sortie F à la taille de l'image d'entrée 43. La carte de sortie F est donc de taille H4xL4 30 avec H4=H et L4=L. Les sorties des neurones de la carte de sortie F se présentent donc sous la forme d'une matrice de valeurs de l'image de texte binaire construite. Etant donné que les valeurs de sortie des neurones de la carte de sortie F sont continues et qu'elles se situent entre les valeurs moins un et plus un, on évalue le signe de chaque élément de la matrice de valeurs 35 de l'image de sortie 44 afin de convertir la matrice obtenue en une image de texte binaire. Chaque sortie de neurone de la carte de sortie F possède une 2910670 21 valeur fik,Jk, ik correspondant à un indice de ligne et jk correspondant à un indice de colonne dans la carte de sortie F. ik est compris entre un et H4 et jk est compris entre un et L4. Un pixel P';k,jk situé sur la ligne ik et la colonne jk de l'image de texte binaire a pour valeurs : 0 Si fik, jk G 0 5 P ik,jk (106) 255 si f k,jk > p P'jk,jk vaut donc soit zéro dans pour un pixel de texte, c'est à dire un pixel noir, soit deux cent cinquante cinq pour un pixel de fond c'est à dire un pixel blanc dans l'image de texte binaire. La cinquième couche F permet donc de construire une image de 10 texte binaire de même dimension que l'image d'entrée 43 reçue par la couche d'entrée E de l'architecture neuronale 40. Cette construction permet également d'effectuer une fusion des caractéristiques du texte affinées par la couche de sur-échantillonnage U3. L'architecture neuronale 40 est mise au point dans un premier 15 temps au cours de la phase d'apprentissage 1 qui permet de régler les poids des différentes connexions synaptiques. Une fois mise au point, l'architecture neuronale 40 est utilisée au cours de la phase de binarisation 2 afin de produire une image de texte binaire à partir d'une image comportant du texte quelconque 43. 20 La figure 5 représente un ensemble d'étapes possibles de la phase d'apprentissage 1 selon l'invention. Cette phase d'apprentissage 1 permet donc une mise au point de l'architecture neuronale 40 afin que cette 25 architecture apprenne un procédé de construction d'une image de texte binaire. La phase d'apprentissage est un procédé itératif comportant notamment sept étapes 70, 71, 72, 73, 74, 75, 77. Une première étape 70 est la construction de l'ensemble d'apprentissage 3 représenté figure 1 b. L'ensemble d'apprentissage 3 30 comporte un premier ensemble de NT images comportant du texte 4 et un deuxième ensemble d'images de texte binaire 5 correspondant aux images comportant du texte 4. L'ensemble d'apprentissage 3 est construit à partir d'un premier ensemble d'images de texte binaire 5. Les images de texte binaire 5 présentent des textes de différentes tailles, avec des polices de 35 caractères différentes. A partir de chaque image de texte binaire 5, on 2910670 22 construit une nouvelle image 4 contenant le texte de l'image de texte binaire 5. Cette nouvelle image 4 est une image couleur : une ou plusieurs couleurs sont choisies pour le texte et une ou plusieurs couleurs sont choisies pour le fond. Ensuite on applique, à cette nouvelle image 4, différents type de bruits 5 comme des bruits uniformes ou des bruits Gaussiens. Des filtres de lissage sont également appliqués afin d'obtenir des images comportant du texte 4 de synthèse se rapprochant le plus possible d'images réelles comportant du texte et possédant une forte variabilité. Ainsi pour chaque nouvelle image 4 construite, on dispose de l'image de texte binaire correspondante 5 qui sera 10 utilisée comme image désirée en sortie de l'architecture neuronale 40. L'ensemble des images 4, 5 de l'ensemble d'apprentissage 3 sont dimensionnées afin de correspondre au format d'image traité par l'architecture neuronale 40. On obtient donc un ensemble d'apprentissage comportant des images de taille HxL. 15 Une deuxième étape 71 de la phase d'apprentissage 1 du procédé selon l'invention est une étape d'initialisation des poids synaptiques. Les poids synaptiques sont les différents poids associés aux connexions synaptiques 45, 46, 47, 48 entre les différentes couches de neurones E, C,, S2, U3, F de l'architecture neuronale 40. Les poids synaptiques sont 20 initialisés de manière aléatoire avec des petites valeurs. Une troisième étape 72 de la phase d'apprentissage 1 est le choix aléatoire d'un couple d'images comportant une première image comportant du texte 4 et une deuxième image de texte binaire 5 correspondant à la première image comportant du texte 4. La deuxième image de texte binaire 5 25 représente l'image que l'on attend en sortie de l'architecture neuronale 40. La première image comportant du texte 4 est l'image d'entrée 43 de l'architecture neuronale 40. Une quatrième étape 73 permet de décomposer l'image d'entrée 43 en NE cartes, chacune correspondant par exemple à l'image d'entrée 43 30 sur un canal de couleur suivant l'espace de couleur choisi. Si l'image d'entrée 43 est une image en niveaux de gris, les trois cartes sont alors identiques. Au cours d'une cinquième étape 74, l'image d'entrée 43 est traitée par l'architecture neuronale 40 en présentant à la couche d'entrée E de 35 l'architecture neuronale 40 la décomposition sur les différents canaux de couleurs de l'image d'entrée 43. La couche d'entrée E et les couches 2910670 23 suivantes C1, S2, U3, F sont activées l'une après l'autre. En couche de sortie F, on obtient une réponse de l'architecture neuronale 40 sous la forme d'une image de sortie 44. Au cours d'une sixième étape 75, l'image de sortie 44 est 5 comparée avec la deuxième image de texte binaire 5 correspondante à la première image comportant du texte 4 présentée en entrée de l'architecture neuronale 40. La deuxième image de texte binaire 5 est l'image désirée Id en sortie de l'architecture neuronale. La comparaison entre l'image de sortie 44 et l'image désirée Id est effectuée en normalisant dans un premier temps les 10 pixels de l'image désirée Id afin d'obtenir des valeurs de pixels Dh comprises entre moins un et plus un. La normalisation des pixels de l'image désirée Id est effectuée en utilisant la relation (105) par exemple. La valeur des pixels Fh de l'image de sortie 44 est comprise entre moins un et plus un. On définit alors une fonction objectif O telle que : NT LxH 15 0= 1 ~~(Fh -Dh)2 (107) NT xLxHkk=1h=1 L'objectif de la phase d'apprentissage 1 est de minimiser la fonction objectif O afin d'avoir une image de sortie 44 la plus proche possible de l'image désirée Id. La fonction objectif O est une erreur quadratique moyenne entre les valeurs des pixels de l'image désirée Id et les valeurs des pixels de 20 l'image de sortie 44. Afin de minimiser la fonction objectif O, on utilise par exemple un algorithme de rétro-propagation du gradient qui permet de calculer les poids synaptiques optimaux. De manière générale, on évalue la fonction objectif O au cours d'une septième étape 76. Si la valeur de la fonction objectif O est inférieure à 25 une valeur seuil fixée s par exemple alors les poids synaptiques de l'architecture neuronale 40 sont mis à jour au cours d'une huitième étape 77. Ensuite on repasse à la troisième étape 72 de choix d'une nouvelle image d'entrée et d'une image de texte binaire correspondant parmi les NT images de l'ensemble d'apprentissage 3. Puis la nouvelle image d'entrée est traitée 30 par l'architecture neuronale 40 au cours de la cinquième étape 74 et ainsi de suite jusqu'à ce que la valeur de la fonction objectif O soit inférieure à la valeur seuils ou qu'un nombre d'itérations fixé soit effectué. De façon générale, l'apprentissage à l'aide d'un réseau de 35 neurones revient à déterminer tous les poids des connexions synaptiques du 2910670 24 réseau de neurones de manière à obtenir un vecteur de sorties désirées D en fonction d'un vecteur d'entrées E. Dans l'architecture neuronale 40 selon l'invention le vecteur de sorties désirées est l'ensemble des valeurs Dh des pixels de l'image désirée Id et le vecteur d'entrées E est l'ensemble des 5 valeurs des pixels de l'image d'entrée 43. Pour cela une base d'apprentissage est constituée comme l'ensemble d'apprentissage 3. De manière générale, une base d'apprentissage quelconque comporte une liste de K paires de vecteurs (Er, Dr ). Y. représente les sorties d'un réseau de neurones à un instant t, 1 o pour une entrée Er. Y. correspond donc à l'ensemble des valeurs Fh à un instant donné. On vise donc à minimiser une erreur quadratique moyenne 9, sur la couche de sortie du réseau de neurones, donnée de manière générale par la relation suivante : e= -ter avec Or= D, ù YY 2 (108) K Y-1 15 Pour cela, une descente de gradient est réalisée à l'aide d'un algorithme itératif : e t~ = e(t-1) ù poe(t-l) (109) où ve(t-1) est le gradient de l'erreur quadratique moyenne 9 à l'instant t -1 par rapport à l'ensemble des P poids Wu des connexions synaptiques du 20 réseau de neurones et où p est un pas d'apprentissage. ve(t-1) est donné par la relation suivante : oe(") _ (et1> e(t-l) e(t l> awo aWu awP (110) avec u compris entre zéro et P. La mise en oeuvre de cette descente de gradient dans un réseau 25 de neurones utilise donc un algorithme itératif de retro-propagation du gradient. De manière générale, un réseau de neurones peut être défini par les paramètres suivants : • c , l'indice d'une couche du réseau de neurones, avec c = 0 pour la 30 couche d'entrée du réseau de neurones, c=l à c = C -1 pour les couches cachées du réseau de neurones et c = C pour la couche de sortie du réseau de neurones ; • ii =1 à ii = ne , l'indice des nneurones de la couche du réseau de neurones d'indice c ; 2910670 25 • Sii,, , l'ensemble des neurones de la couche d'indice c -1 du réseau de neurones connecté aux entrées du neurone ii de la couche d'indice c du réseau de neurones ; • W le poids de la connexion synaptique du neurone d'indice jj au 5 neurone d'indice ij . L'algorithme de rétro-propagation du gradient fonctionne en deux étapes principales : • une étape de propagation au cours de laquelle un signal, représenté par un vecteur d'entrée Er, traverse le réseau de neurones et produit 1 o une réponse en sortie sous la forme d'un vecteur YY ; • une étape de rétro-propagation au cours de laquelle un signal représentant l'erreur Or est rétro-propagé dans le réseau de neurones et permet de modifier les différents poids synaptiques afin de minimiser l'erreur Or. 15 L'algorithme de rétro-propagation du gradient utilise notamment deux paramètres p et y : • p est le pas d'apprentissage de l'algorithme de rétro-propagation du gradient, il est fixé à une valeur positive très petite, de l'ordre de 0,00001 ; 20 • y est le moment de l'algorithme de rétro-propagation du gradient, il est fixé à une valeur positive comprise entre zéro et un de l'ordre de 0,1. Dans un premier temps, les valeurs des poids synaptiques W3 u du réseau de neurones sont fixées à de petites valeurs. L'algorithme de rétro-propagation du gradient comporte les étapes 25 suivantes : • une première étape est le choix d'une paire de vecteurs (E,, D,) ; • une deuxième étape est l'étape de propagation, elle permet de calculer les sorties des couches de neurones successives du réseau de neurones : par exemple lorsque l'on présente un vecteur Er à la 30 couche d'entrée du réseau de neurones, on a alors Yo = E. et on assigne à D la valeur Dr = Ensuite pour chaque couche c du réseau de neurones de la couche 1 à la couche C, et pour chaque neurone ii de la couche c, on calcule : • le potentiel : VW, wü,hW yü,c-1 üES,,,~ 2910670 26 • la valeur de sortie : yiw,c = (Vi,j (112) avec yiw,c = I(Viw,c) (113) 1 représentant la fonction d'activation du neurone ii et ù Ly l C 9ù9 y lW C 9ù9 y n, i (114) 5 • une troisième étape de rétro-propagation au cours de laquelle les couches du réseau de neurones sont parcourues dans le sens inverse au sens de la propagation, ainsi : pour chaque couche de neurones c de la couche C à la couche 1, et pour chaque neurone ii de la couche c: 10 on calcule: (diw ù C (I)'(Viw si c = C Skk,c+1 `y'(Viw,c) si c ~ C (115) kk tels que iwES ,+1 • on met à jour les poids des connexions synaptiques arrivant au neurone ii de la manière suivante : à chaqueitération de l'algorithme de rétro propagation du gradient, on calcule : AW.. = P Uiw,c Y17,c-1 + y AW 1 pour tout jj E Siw,c (116) avec AW old = 0 lors de la première itération puis W = W + AW pour tout jj E Siw,c (117) JJ,iw JLiw D•"^' enfin, on met à jour zX !d JJ,iw AW = AW pour tout jj E Siw,c JJ=~w JJ=n^' et on met à jour W JJ,iw W = W " pour tout jj E Siw (119) • on calcule l'erreur quadratique moyenne 9 à l'aide de la relation (108). 25 Ces étapes sont répétées jusqu'à ce que l'erreur quadratique moyenne 9 soit suffisamment petite pour être négligeable ou qu'un nombre maximum d'itérations ait été atteint. A cette fin, on peut fixer une erreur seuils en dessous duquel on considère que l'erreur quadratique moyenne 9 est négligeable. On peut également fixer un nombre Nb d'itérations maximums. 30 L'algorithme de retro-propagation du gradient appliqué à l'architecture neuronale 40 converge vers une solution stable après environ six-cent itérations. 15 20 old (118) 2910670 27 La figure 6 représente différentes étapes possibles 80, 81, 82, 83 de la phase de binarisation 2 du procédé selon l'invention. La phase de 5 binarisation 2 utilise l'architecture neuronale 40, une fois mise au point au cours de la phase d'apprentissage 1, afin de binariser une image quelconque comportant un texte. Une première étape 80 est une étape de redimensionnement de l'image d'entrée 43 inconnue à une taille HxL d'images prise en compte 10 par l'architecture neuronale 40. Une étape préliminaire peut permettre de détecter une zone de texte dans une image afin d'extraire de l'image uniquement la zone contenant le texte. Cette extraction de zone de texte peut être manuelle, ou automatique grâce à des logiciels d'extraction de texte dans une image. 15 Au cours de la deuxième étape 81, l'image d'entrée 43 est décomposée sous la forme de NE cartes correspondant aux NE canaux de l'espace de couleurs utilisé par l'architecture neuronale 40. Ces cartes sont ensuite présentées en entrée E de l'architecture neuronale 40. La troisième étape 82 permet de traiter l'image d'entrée 43 : les 20 couches successives C,, S2, U3, F de l'architecture neuronale 40 sont activées les unes après les autres afin de construire une image de sortie 44. Sur la couche de sortie F de l'architecture neuronale 40, on obtient donc la réponse de l'architecture neuronale 40 sous la forme d'une image de sortie 44. L'image de sortie se présente sous la forme d'une matrice de pixels de 25 taille HxL. Les valeurs des pixels de l'image de sortie 44 sont converties au cours d'une quatrième étape 83 d'obtention d'une image binarisée. La conversion permet d'obtenir des valeurs de pixels valant zéro ou deux cent cinquante-cinq afin de construire une image de texte binaire correspondant à 30 l'image d'entrée 43. La conversion s'effectue selon la formule (106). L'image de texte binaire ainsi obtenue peut alors être traitée par un logiciel de reconnaissance de caractères. 35 L'invention a été décrite pour une partition des pixels d'une image en deux jeux de pixels, un premier jeu de pixels comportant du texte et un deuxième jeux de pixels comportant le fond de l'image. La binarisation selon 2910670 28 l'invention peut s'appliquer à une partition en un nombre de jeux de pixels supérieur à deux. Dans le procédé selon l'invention, une image d'entrée 43 est décomposée en trois canaux selon une décomposition de l'image dans un 5 espace de couleurs RVB dans le procédé selon l'invention. Un autre espace de couleur ou un autre espace de codage de l'image peuvent être utilisés afin de décomposer l'image d'entrée sur une ou plusieurs cartes selon les canaux de l'espace de codage. 10 Le procédé et le système de binarisation selon l'invention permettent avantageusement de développer un système de binarisation d'image comportant du texte par un apprentissage supervisé sans aucun choix empirique de paramètre. 15 Un autre avantage de l'invention est de prendre en compte directement la forme des caractères du texte du fait de la classification automatique de chaque pixel de l'image d'entrée 43 en pixels de texte ou pixels de fond à partir d'extracteurs de caractéristiques locales et globales automatiques appris. 20 De plus, le système selon l'invention prend en compte directement et simultanément différents canaux de couleurs sans réduire les traitements à la seule luminance ou à un traitement indépendant par canal de couleur. Avantageusement, le procédé selon l'invention présente une forte robustesse aux bruits, aux faibles contrastes, aux variations de chrominance, 25 aux effets de transparence, et à la complexité du fond de l'image d'entrée 43. REVENDICATIONS 1. Procédé de binarisation d'une image comprenant un texte caractérisé en ce qu'il comporte : • une phase préliminaire d'apprentissage (1) d'un procédé de construction d'une image de texte binaire par une architecture neuronale (40) comportant des couches hétérogènes (E, C,, S2, U3, F) de neurones artificiels, ladite image de texte binaire étant composée de pixels du texte valant une première valeur et de pixels de fond de l'image comprenant le texte valant au moins une autre valeur ; • une phase de binarisation (2) de l'image comprenant le texte (43) par le procédé de construction d'une image de texte binaire appris au cours de la phase préliminaire d'apprentissage (1). 2. Procédé selon la revendication précédente, caractérisé en ce que la phase préliminaire d'apprentissage (1) est un processus itératif comportant les étapes suivantes : • construction (70) d'un ensemble d'apprentissage (3) composé d'images comportant du texte (4) et des images de texte binaires (5) correspondantes ; • initialisation (71) de poids de connexions synaptiques entre les couches hétérogènes (E, C,, S2, U3, F) de neurones artificiels de l'architecture neuronale (40) ; • choix (72) d'un couple, comprenant une image comportant du texte d'entrée (4) et l'image de texte binaire correspondante (5), dans l'ensemble d'apprentissage (3) ; • décomposition (73) de l'image comportant du texte d'entrée (4) en plusieurs canaux de codage d'image, fournis en entrée de l'architecture neuronale (40) ; • construction (74) d'une image de sortie (44), à partir de l'image comportant du texte d'entrée (4), par l'architecture neuronale (40) ; • comparaison (75) de l'image de sortie (44) avec l'image de texte 1 binaire correspondante (5) en évaluant une différence entre l'image de sortie (44) et l'image de texte binaire correspondante (5) ; 2910670 30 si la différence entre l'image de texte binaire correspondante (5) et l'image de sortie (44) dépasse un seuil c, • mise à jour (77) des poids de connexions synaptiques de l'architecture neuronale (40) en minimisant la différence entre l'image de sortie (44) 5 et l'image de texte binaire correspondante (5), 1 le processus itératif recommençant alors à partir de l'étape de choix (72). 3. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la phase de binarisation (2) comporte les étapes 10 suivantes : • redimensionnement (80) d'une image d'entrée (43) comportant du texte en une image de dimension donnée ; • décomposition (81) de l'image d'entrée (43) en plusieurs canaux de codage d'image, fournis en entrée de l'architecture neuronale (40) ; 15 • construction (82) d'une image de texte de sortie (44) par l'architecture neuronale (40) ; 1 • obtention (83) de l'image de texte binaire. 4. Procédé selon la revendication 2, caractérisé en ce que la minimisation de 20 la différence entre l'image de sortie (44) et l'image de texte binaire correspondante (5) est effectuée par un algorithme de retro-propagation du gradient. 5. Procédé selon la revendication 4, caractérisé en ce que la minimisation de 25 la différence entre l'image de sortie (44) et l'image de texte binaire correspondante (5) est effectuée en minimisant une fonction objectif O représentant une erreur quadratique moyenne : NT LxH 0= 1 1 (Fh -Dh)2 NT x L x H kk=1 h=1 avec : 30 ^ NT représentant le nombre d'images (4) de l'ensemble d'apprentissage (3) utilisées pendant la phase d'apprentissage (1) ; ^ Fh représentant la valeur d'un pixel de l'image de sortie (44) ; ^ Dh représentant la valeur d'un pixel de l'image de texte binaire correspondante (5). 2910670 31 6. Système de binarisation d'une image comportant un texte, caractérisé en ce qu'il comprend une architecture neuronale (40) comportant plusieurs couches hétérogènes (E, C1, S2, U3, F) de neurones artificiels : • un premier ensemble (41) d'une ou plusieurs couches de neurones 5 effectuant une extraction de formes caractéristiques du texte de l'image comprenant le texte présentée en entrée de l'architecture neuronale (40) ; • un deuxième ensemble (42) d'une ou plusieurs couches de neurones effectuant une construction fine des formes caractéristiques du texte 10 en une image de sortie (44). 7. Système selon la revendication 6, caractérisé en ce que le premier ensemble (41) de couches de neurones de l'architecture neuronale (40) comporte : 15 • une couche d'entrée (E) comportant un nombre NE de cartes Ec de pixels de l'image comportant le texte d'entrée (43), les cartes Ec étant de dimension donnée ; • une couche de convolution (C1) comportant un nombre NC1 de cartes C1; de neurones, les cartes C1; étant de dimension donnée, chaque 20 neurone de chaque carte C1; étant connecté par un premier ensemble de M1xM1 connexions synaptiques (45) à un ensemble de M1xM1 pixels de chaque carte Ec, chaque pixel de chaque carte Ec étant connecté à un ou plusieurs neurones de chaque carte C1; ; • une couche de sous-échantillonnage (S2) comportant un nombre NS2 25 de cartes Sei de dimension réduite par rapport à la dimension donnée, chaque neurone d'une carte Sei recevant une moyenne de M2xM2 sorties de M2xM2 neurones voisins d'une carte C1; , chaque neurone de chaque carte C1; étant connecté à un seul neurone d'une carte Sei par l'intermédiaire d'un deuxième ensemble de connexions 30 synaptiques (46). 8. Système selon l'une quelconque des revendications 6 et 7, caractérisé en ce que le deuxième ensemble (42) de couches de neurones de l'architecture neuronale (40) comporte : 35 • une couche de sur-échantillonnage (U3) comportant un nombre NU3 de cartes U3k de dimension supérieure à la dimension des cartes Sei et 2910670 32 inférieure à la dimension donnée, chaque neurone de chaque carte U3k étant connecté à un neurone d'une carte S2i, chaque neurone d'une carte Sei étant connecté à un ensemble de M2xM2 neurones voisins d'une carte U3k par l'intermédiaire d'un troisième ensemble de 5 M2xM2 connexions synaptiques (47) ; • une couche de convolution-inverse (F), étant une couche de sortie (F) de l'architecture neuronale (40), comportant une carte de neurones, chaque neurone de chaque carte U3k étant connecté à un ensemble de M1xM1 neurones voisins de la couche de sortie (F), chaque 1 o neurone de la couche de sortie (F) étant connecté à un ou plusieurs neurones voisins de chaque carte U3k par l'intermédiaire d'un quatrième ensemble de connexions synaptiques (48). 9. Système selon la revendication 8, caractérisé en ce que : 15 • les neurones de la couche de convolution (C1) utilisent une première fonction d'activation de type linéaire ; • les neurones de la couche de sous-échantillonnage (S2) utilisent une deuxième fonction d'activation de type sigmoïde ; • les neurones de la couche de sur-échantillonnage (U3) utilisent une 20 troisième fonction d'activation de type sigmoïde ; • les neurones de la couche de convolution-inverse (F) utilisent une quatrième fonction d'activation de type sigmoïde. 10. Système selon l'une quelconque des revendications 6 à 9, caractérisé en 25 ce que, chaque connexion synaptique (45, 46, 47, 48) de l'architecture neuronale (40) étant associée à un poids synaptique W3 tW , les poids de chaque ensemble de connexions synaptiques (45, 46, 47, 48) entre les neurones de chaque couches de l'architecture neuronale (40) sont partagés par les neurones de chaque couche (C1, S2, U3, F) de l'architecture 30 neuronale (40) hormis la couche d'entrée (F). 11. Programme informatique comprenant des instructions de code de programme pour l'exécution du procédé de binarisation d'une image comprenant un texte selon l'une quelconque des revendications 1 à 5, ledit 35 programme informatique étant exécuté par un ou plusieurs processeurs.