Brevet FR2977963A1 — publié le 20130118

La présente invention concerne un procédé de détection et de correction de l'orientation d'un document présent dans une image numérique. Il est connu de numériser un document avec un scanner à défilement. Lors de cette numérisation, il arrive très souvent que le document soit posé en biais sur la table du scanner. I1 résulte alors de ce scanner une image numérique sur laquelle le document numérisé est en biais par rapport au bord de l'image générée par ce scanner. Ce type d'image numérique pose des problèmes de qualité visuelle car si le document est un texte, il est alors particulièrement pénible de lire la page imprimée avec un texte de travers. De plus, si l'image numérique est prévue pour subir un traitement de reconnaissance de caractères, le biais du document dans l'image induit alors le plus souvent un dysfonctionnement de ces algorithmes de reconnaissance. De nombreuses méthodes d'analyse et d'amélioration des images issues de la numérisation des documents ont été mises en place et le redressement des images numérisées pour corriger ce biais est l'un des traitements essentiels à la mise en oeuvre ultérieure de méthodes d'analyse de ces documents. La présente invention permet de détecter et de corriger l'orientation d'un document présent dans une telle image, c'est-à-dire de redresser automatiquement la représentation de ce document dans l'image numérique. A cet effet, il est connu des méthodes de détection et de correction d'une telle orientation qui utilisent le bord du document comme référence absolue. Toutefois ces méthodes présentent des inconvénients. L'un d'entre eux est qu'il n'est pas toujours possible ou facile de repérer le bord du document. De plus, le document à numériser peut être le résultat d'une mauvaise photocopie et le texte présent sur ce document peut être en biais par rapport au bord de ce document. D'autres méthodes analysent des profils de projection. L'idée est ici de calculer des profils de projection de l'image pour tous les angles de biais possibles et de les analyser. Ce type d'estimation implique un fort coût en temps de calcul car cela nécessite d'utiliser une résolution d'angle assez élevée pour obtenir une bonne précision de ce biais. D'autres méthodes sont basées sur la décomposition en composantes connexes. Ces méthodes supposent que les caractères du texte du document sont alignés et proches les uns des autres, et que leur relation spatiale peut être utilisée pour déterminer l'angle de rotation à appliquer à l'image. D'autres approches incluent l'analyse de la déviation verticale, la transformée de Fourier ou sont encore basées sur des opérations morphologiques. Une autre méthode est d'utiliser la transformée de Hough qui permet de détecter les lignes principales de l'image et de déterminer l'orientation du document comme étant l'orientation de ces lignes principales par rapport à un repère de l'image. Cette méthode part de l'hypothèse que les caractères d'une même ligne de texte sont alignés. La Fig. 1 représente une illustration de la détection de lignes d'une image numérique par transformée de Hough. Le principe de la transformée de Hough est de représenter une ligne d'image par son équation paramétrique r = x. cosO + y. sinO dans laquelle le couple (r , 0) sont les coordonnées polaires exprimées dans un espace bidimensionnel appelé espace de Hough. Le paramètre rreprésente la distance entre la ligne et l'origine d'un repère et le paramètre 0 est l'angle d'un vecteur partant de l'origine de ce repère et le point de la ligne le plus proche de cette origine. Par chaque pixel de l'image, passe un ensemble de lignes qui sont chacune définies par un couple de paramètres (r,0) particulier qui est unique si 0 E [0, 7) et r E R (espace des réels) ou si 0 E [0, 21r )et r0. En pratique, les paramètres r et 0 sont limités à quelques valeurs discrètes particulières obtenues en discrétisant les plages de valeurs de ces deux paramètres. Le paramètre r appartient à une plage de valeurs qui définit un voisinage autour d'un pixel de l'image tandis que le paramètre 0 appartient à une plage de valeurs, appelée par la suite plage angulaire. La transformée de Hough utilise un tableau bidimensionnel, appelé accumulateur, dont le nombre de lignes et de colonnes correspond au nombre des valeurs discrètes des paramètres r; et 0; . Pour chaque pixel de l'image, il suffit donc de considérer chaque pixel de son voisinage, de calculer les coordonnées polaires de la ligne qui relie le pixel à ce pixel voisin, et d'incrémenter de une unité la case de l'accumulateur qui correspond à un couple (r;,0;) le plus proche aux coordonnées polaires ainsi calculées. Les lignes principales de l'image sont alors celles qui correspondent aux couples (r;,0;) qui définissent des cases de l'accumulateur dont les scores sont les plus élevés. En effet, si chaque pixel de l'image appartient à des lignes, chacune définie chacune par un couple particulier de coordonnées polaires, en faisant varier ces coordonnées polaires pour un pixel donné, on obtient alors une courbe, en l'occurrence une sinusoïde, dans l'espace de Hough pour ce pixel. Un ensemble de pixels qui appartient à une même ligne dans l'espace image produit alors des sinusoïdes qui se coupent en un même point de l'espace de Hough. Il suffit alors de détecter les points de l'espace de Hough où un maximum de sinusoïdes se coupent pour extraire les lignes principales de l'image, ce qui revient à déterminer les cases de l'accumulateur qui ont les scores les plus élevés. A cet effet, des seuils de comparaison des scores sont parfois utilisés. A titre d'illustration de l'utilisation de la transformée de Hough pour l'extraction de lignes d'une image, considérons trois pixels du plan image, Pl, P2 et P3 et quatre lignes possibles L1, L2, L3, et L4 qui pourraient, potentiellement, relier ces pixels et qui forment des angles 0; différents par rapport à un repère donné. Selon cet exemple, la ligne L1 forme un angle de 0° par rapport à ce repère tandis que les lignes L2, L3, et L4 forment respectivement un angle de 45°(tel que illustré sur la Fig. 1), 90° et 135°. Ces angles sont calculés en tirant une ligne perpendiculaire à chaque ligne qui passe par l'origine du repère (un exemple est donné en pointillé). Les trois sinusoïdes, en partie basse de la Fig. 1, représentent ces sinusoïdes de l'espace de Houghqui sont relatives à ces trois pixels Pl, P2 et P3. Sur cet exemple, les trois sinusoïdes se coupent en un point I qui correspond à un couple de valeurs (r,0) particulier qui définit l'équation paramétrique d'une ligne(en l'occurrence L2) qui relie les trois points Pl, P2 et P3. Ainsi, des paramètres de cette transformée de Hough sont, d'une part, la définition d'une plage angulaire qui définit les valeurs limites du paramètre 0 et, d'autre part, la discrétisation de ce paramètre sur cette plage angulaire c'est-à-dire le nombre de valeurs 0; qui sont considérées dans l'accumulateur. La transformée de Hough n'est pas appliquée directement sur tous les points de l'image car cela impliquerait des temps de calcul exorbitants. En général, la transformée de Hough est appliquée sur un ensemble de points d'intérêts détectés préalablement dans l'image. Un filtre de Canny est très souvent utilisé pour détecter ces points d'intérêt (Canny, J. (1986). A computational approach to edge detection. In IEEE Transactions on Pattern Analysis and Machine Intelligence, volume 8, pages 679-714). Due aux imperfections des détecteurs de points d'intérêts (ou de contours), l'accumulateur comporte le plus souvent des points d'intérêts qui ne sont d'aucune utilité pour déterminer les lignes principales de l'image mais au contraire faussent les décisions à prendre en fonction des scores de cet accumulateur. Il est alors très souvent difficile, voire impossible, de s'assurer que les lignes principales indiquées par ces scores soient pertinentes. Le problème résolu par la présente invention est de remédier aux inconvénients suscités. A cet effet, la présente invention concerne un procédé de détection et de correction de l'orientation d'un document présent dans une image numérique. Ledit procédé comportant une étape d'extraction de lignes de l'image et de leurs angles exprimés par rapport à un repère du plan image, le procédé est caractérisé en ce qu'il comporte également les étapes suivantes : - déterminer la dispersion des angles associés aux lignes extraites, - si la dispersion des angles est inférieure à un seuil, rotation de l'image selon un angle de rotation calculé par la moyenne des angles associés à toutes les lignes extraites de l'image, - sinon - partitionner les lignes extraites selon leur angle associé pour former des classes, - sélectionner la classe dont la dispersion spatiale des lignes est 20 maximale, et - rotation de l'image selon un angle de rotation calculé par la moyenne des angles associés aux lignes qui appartiennent à cette classe ainsi sélectionnée. Le partitionnement des lignes (data clustering en anglais) en classe et la détermination de l'angle de rotation à partir des angles associés aux lignes qui 25 appartiennent à une même classe permettent d'augmenter la robustesse au bruit de la détermination de l'angle de rotation et ce par rapport aux méthodes de l'état de la technique qui basent la détermination de cet angle de rotation directement sur l'angle qui maximise le score établi par la transformée de Hough. Selon un mode de réalisation, les lignes sont partitionnées selon la méthode non 30 supervisée et exclusive. Selon un mode de réalisation, la méthode non supervisée et exclusive partitionne les lignes extraites en un nombre entier M de classes, fixé a priori, et comporte les étapes suivantes : 1. choisir a priori M centres de classe, chaque centre de classe étant un angle associé à l'une des lignes extraites, 2. créer une nouvelle partition des lignes extraites en affectant une ligne extraite à la classe lorsqu'un critère de distance entre l'angle associé à cette ligne extraite et le centre de cette classe est minimal, 3. calculer des centres de gravité de chaque classe ainsi créée, 4. répéter les étapes 2 et 3 jusqu'à obtenir un extremum pour un critère d'arrêt. Selon un mode de réalisation, les M centres de classe sont choisis aléatoirement parmi les angles associés aux lignes extraites. Ce mode de réalisation permet de minimiser le risque d'obtenir une partition finale qui ne corresponde pas à la partition optimale, c'est-à-dire d'obtenir un minimum local. Selon un mode de réalisation, le critère d'arrêt est un nombre prédéfini d'itérations ou un nombre qui quantifie une stationnarité de la partition. Selon un mode de réalisation, le critère de distance est une métrique de Minkowski. Selon un mode de réalisation, au cours de l'étape de sélection de la classe, une variance des distances entre lignes d'une même classe est calculée pour chaque classe et la classe sélectionnée est celle qui minimise cette valeur de variance. Ce mode de réalisation est avantageux car il permet de quantifier si les lignes d'une même classe Cj s'étalent sur l'ensemble du document ou si au contraire ces lignes sont regroupées autour d'une structure particulière de ce document. Selon un mode de réalisation, au cours de la sélection de la classe, - pour chaque ligne extraite d'une même classe, est calculée une distance entre une ligne de cette classe et chacune des autres lignes de cette classe, - une densité de lignes est ensuite calculée pour chaque classe par la somme des valeurs minimales des distances entre lignes ainsi calculées pour chaque ligne extraite de cette classe, et - la classe sélectionnée est celle qui maximise cette densité de lignes. Ce mode de réalisation est avantageux lorsque la plage angulaire utilisée par la transformée de Hough est restreinte à un secteur angulaire de quelques degrés car elle permet alors de quantifier plus finement la dispersion des lignes d'une même classe que ne le fait le mode de réalisation basé sur la variance des distances entre lignes. Selon un mode de réalisation, l'image est binarisée préalablement à l'étape d'extraction de lignes de l'image, ladite binarisation étant basée sur un seuillage adaptatif. Selon un mode de réalisation, les lignes sont extraites par la transformée de Hough paramétrée, entre autres, par les valeurs limites d'une plage angulaire. Selon un mode de réalisation, les scores inhérents à la transformée de Hough sont pondérés par les niveaux de gris des pixels de l'image. Selon un mode de réalisation, l'ensemble des étapes du procédé est réalisé deux fois, lors d'une première itération, la plage angulaire utilisée par la transformée de Hough est choisie pour couvrir l'ensemble des orientations possibles d'une ligne autour d'un pixel de l'image, la sélection de la classe C étant alors basée sur la variance des distances entre lignes et un angle de rotation est alors calculé par la moyenne des angles associés aux lignes de la classe sélectionnée, et lors de la seconde itération, la plage angulaire utilisée par la transformée de Hough est limitée à un secteur angulaire autour de l'angle de rotation calculé à l'itération précédente, la sélection de la classe C étant alors basée sur la densité des lignes de la classe ainsi sélectionnée, et un angle de rotation est alors calculé par la moyenne des angles associés aux lignes de la classe sélectionnée. Ce mode de réalisation permet de minimiser fortement le coût du calcul de la 20 transformée de Hough et l'espace mémoire facilitant ainsi l'intégration du procédé dans des systèmes embarqués. Selon une variante de ce mode de réalisation, la seconde étape est itérée, la plage angulaire utilisée par la transformée de Hough étant alors limitée à un secteur angulaire de plus en plus petit autour de l'angle de rotation calculé à l'itération 25 précédente, la sélection de la classe C étant alors basée sur la densité des lignes de la classe ainsi sélectionnée, et un angle de rotation est alors calculé par la moyenne des angles associés aux lignes de la classe sélectionnée. L'invention concerne également un programme d'ordinateur, qui peut être stocké sur un support et/ou téléchargé d'un réseau de communication, afin d'être lu 30 par un système informatique ou un processeur. Ce programme d'ordinateur comprend des instructions pour implémenter le procédé mentionné ci-dessus, lorsque ledit programme est exécuté par le système informatique ou le processeur. L'invention concerne également des moyens de stockage comprenant un tel programme d'ordinateur. 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 illustre le principe de la transformée de Hough pour extraire des lignes d'une image numérique. La Fig. 2 représente un diagramme des étapes du procédé de détection et de correction de l'orientation d'un document présent dans une image numérique. La Fig. 3 représente un mode de réalisation itératif du procédé pour extraire des lignes d'une image. La Fig. 4 représente une illustration d'un mode de réalisation du partitionnement de lignes en classes. La Fig. 5 illustre schématiquement l'architecture d'un dispositif de détection et de correction de l'orientation d'un document présent dans une image numérique. De manière générale, le procédé de détection et de correction de l'orientation d'un document présent dans une image comporte (Fig. 2) une étape d'extraction de lignes Li de l'image et de leurs anglesO. exprimés par rapport à un repère du plan image. Le procédé comporte également une étape pour déterminer la dispersion des angles 0/ associés aux lignes extraites Li. En termes mathématiques, la dispersion des angles est donnée par 1 N 2 1 N 6 2 = -1(6 . -g) avec 0 1' angle moyen calculé par 0 = -10. avec N le nombre N N i=l de lignes extraites de l'image. De plus, si la dispersion des angles est inférieure à un seuil, le procédé se poursuit par une étape de rotation de l'image suivant un angle de rotation 0 calculé par la moyenne des angles associés à toutes les lignes extraites de l'image, et si cette dispersion des angles est supérieure ou égale à ce seuil, le procédé se poursuit par une étape de partitionnement des lignes Li selon leur angle 0; associé pour former des classes Ci. Le procédé se poursuit par une étape de sélection de la classe C dont la dispersion spatiale des lignes est maximale, étape qui est suivie de l'étape de rotation de l'image suivant un angle de rotation calculé par la moyenne des angles associés aux lignes de cette classe C. Selon un mode de réalisation, les lignes sont partitionnées selon une méthode non supervisée, c'est-à-dire sans connaissance a priori qui permettrait de privilégier l'extraction de certains types de lignes (position dans l'image, nombre, orientation particulière les unes par rapport aux autres,...), et exclusive, c'est-à-dire que chaque ligne extraite appartient à une classe et une seule de la partition. Selon un mode de réalisation illustré à la Fig. 4, la méthode non supervisée et exclusive est une méthode connue sous le nom de K-means. Cette méthode partitionne les lignes extraites de l'image en un nombre entier M de classes à partir des angles 0; qui sont associés à ces lignes Li. M est fixé a priori. A cet effet, la méthode comporte une étape 1 de choix, a priori, de M centres de classe CGj, chaque centre de classe CGj étant un angle associé à l'une des lignes extraites Li. Selon l'exemple de la Fig. 4a), chaque angle 0; associé à une ligne extraite Li est représenté par un rond clair et ces angles 0; sont ordonnés selon un axe orienté en fonction de la valeur de ces angles qui s'étale sur une plage angulaire de 0 à 2n par exemple. De plus, chaque angle, qui est choisi comme centre de classe CGj est représenté par un rond noir. Selon cet exemple, M est égal à trois. Selon un mode de réalisation, les M centres de classe sont choisis aléatoirement parmi les angles associés aux lignes extraites. La méthode comporte également une étape 2 de création d'une nouvelle partition des lignes extraites Li en affectant une ligne extraite Li à une classe Cj lorsqu'un critère de distance d (0;, CG") entre l'angle 0; associé à cette ligne extraite et le centre CGj de cette classe Cj est minimal. Selon l'exemple de la Fig. 4b), trois classes sont ainsi obtenues : la classe Cl qui regroupe trois lignes, la classe C2 qui 25 regroupe deux lignes et la classe C3 qui regroupe sept lignes. Cette méthode comporte également une étape 3 de calcul des centres de gravité de chaque classe Cj ainsi créée. Par exemple, le centre de gravité d'une classe Cj comportant Nj lignes Li est un N, angle moyen 0i calculé par 0i = -10 . et illustré à la Fig. 4c) par un cercle en Ni i=i 30 pointillé. Les étapes 2 et 3 sont répétées jusqu'à obtenir un extremum pour un critère d'arrêt. Selon l'exemple de la Fig. 4, deux itérations ont été illustrées (Fig. 4b à e). Selon un mode de réalisation, le critère d'arrêt est un nombre prédéfini d'itérations ou un nombre qui quantifie une stationnarité de la partition. Cette stationnarité peut être quantifiée, par exemple, par une variation des centres de gravité entre deux itérations successives. Le procédé s'arrête alors lorsque cette variation est inférieure à un seuil. Selon un mode de réalisation, le critère de distance est une métrique de Minkowski. Dans le cas présent, cette métrique ne porte que sur une seule dimension et est t vt définie, entre termes mathématiques, par d(0i, CG]) = (IO. - CGJ I avec t 1. Selon 10 la valeur de t, plusieurs distances peuvent être définies dont la distance euclidienne (t=2), ou encore la distance de Manhattan (t=l). Selon un mode de réalisation, au cours de l'étape de sélection de la classe C, une variance des distances entre lignes d'une même classe est calculée pour chaque classe Cj et la classe sélectionnée C est celle qui minimise cette valeur de variance. En 15 termes mathématiques, dans le cas où à chaque ligne extraite Li est associée une distance r qui sépare cette ligne de l'origine du repère du plan image, la variance des 1 Nj 2 distances entre lignes d'une classe Cj est donnée par 6? = N ~(r -T.) avec Nj le J nombre de lignes Li dans la classe Cj, et i la distance moyenne calculée par la moyenne des distances r associées aux lignes Li de la classe Cj. 20 Selon un mode de réalisation, au cours de la sélection de la classe, pour chaque ligne extraite Li d'une même classe Cj, est calculée une distance Di kentre une ligne Li de cette classe Cj et chacune des autres lignes de cette classe Cj. Dans le cas où à chaque ligne extraite Li est associée une distance r qui sépare cette ligne de l'origine du repère du plan image, cette distance est donnée, par exemple, par une métrique de 25 Minkowski avec t=l : Di k = r - rk avec r la distance associée à la ligne Li de la classe Cj et rk la distance associée à la ligne Lk de cette classe Cj. Une densité de lignes DENj est ensuite calculée pour chaque classe Cj par la somme des valeurs minimales des distances entre lignes Di k ainsi calculées pour chaque ligne extraite de cette classe. En termes mathématiques, la densité de lignes Nj 30 DENj est donnée par DEN] =1min Di k . La classe sélectionnée C est alors celle des i=1 kzi classes Cj qui maximise cette densité de lignes. Selon un mode de réalisation, l'image est binarisée préalablement à l'étape d'extraction de lignes de l'image. Cette binarisation est basée sur un seuillage adaptatif telle que celle décrite par J. Sauvola et al. (Sauvola and T. Sappaànen and S. Haapakoski and M. Pietikàinen, Adaptive Document Binarization. Proceedingsof the Fourth International Conference on Document Analysis and Recognition (ICDAR), 1997.) Il existe de multiples approches dans l'état de la technique pour détecter les lignes principales d'une image. Le plus souvent ces approches utilisent les gradients de l'image qui sont issus, par exemple, d'un filtre de Canny (Canny, J. (1986). A computational approach to edge detection. In IEEE Transactions on Pattern Analysis and Machine Intelligence, volume 8, pages 679-714). Par exemple, l'approche de Etemadi (Etemadi, A. (1992). Robust segmentation of edge data. In Int. Conf. on Image Processing and its Applications, page 311-314) consiste à appliquer un seuil sur les gradients de l'image, à grouper les maximaux locaux des gradients d'un voisinage autour d'un pixel pour former des contours et d'utiliser un procédé de fusion/séparation pour obtenir des lignes à partir de ces contours. Selon un mode de réalisation préféré, les lignes sont extraites par la transformée de Hough telle que décrite dans la partie introductive et paramétrée, entre autres, par les valeurs limites d'une plage angulaire. Selon une variante de ce mode de réalisation préféré, les scores inhérents à la transformée de Hough sont pondérés par les niveaux de gris des pixels de l'image. En d'autres termes, une case de l'accumulateur, qui correspond à un couple de coordonnées polaires (r,0;) proche d'un couple de coordonnées polaires calculé, est incrémentée d'une valeur fonction des valeurs de niveaux de gris du pixel et de son voisin qui ont été considérés pour le calcul du couple de coordonnées polaires. Selon un mode de réalisation, illustré à la Fig. 3, l'ensemble des étapes du procédé est réalisé deux fois. Lors d'une première itération, la plage angulaire utilisée par la transformée de Hough est choisie pour couvrir l'ensemble des orientations possibles d'une ligne autour d'un pixel de l'image, la sélection de la classe C étant alors basée sur la variance des distances entre lignes et un angle de rotation est alors calculé par la moyenne des angles associés aux lignes de la classe sélectionnée. Lors de la seconde itération, la plage angulaire utilisée par la transformée de Hough est limitée à un secteur angulaire autour de l'angle de rotation calculé à l'itération précédente, la sélection de la classe C étant alors basée sur la densité des lignes de la classe ainsi sélectionnée, et un angle de rotation est alors calculé par la moyenne des angles associés aux lignes de la classe sélectionnée. Selon une variante de ce mode de réalisation, la seconde étape est itérée, la plage angulaire utilisée par la transformée de Hough étant alors limitée à un secteur angulaire de plus en plus petit autour de l'angle de rotation calculé à l'itération précédente, la sélection de la classe C étant alors basée sur la densité des lignes de la classe ainsi sélectionnée, et un angle de rotation est alors calculé par la moyenne des angles associés aux lignes de la classe sélectionnée. La Fig. 5 illustre schématiquement l'architecture d'un dispositif prévu pour 10 mettre en oeuvre le procédé décrit en relation avec les Figs. 2 à 4. Le dispositif500comporte, reliés par un bus de communication 501: - un processeur, micro-processeur, microcontrôleur (noté µc) ou CPU (Central Processing Unit en anglais ou Unité Centrale de Traitement en français) 502 ; - une mémoire vive RAM (Random Access Memory en anglais ou Mémoire à 15 Accès Aléatoire en français) 503 ; - une mémoire morte ROM (Read Only Memory en anglais ou Mémoire à Lecture Seule en français) 504; - un lecteur 505 de medium de stockage, tel qu'un lecteur de carte SD (Secure Digital Card en anglais ou Carte Numérique Sécurisée en français) ; 20 - des moyens d'interface 506 avec un réseau de communication, comme par exemple un réseau de radiotéléphonie cellulaire ; et - des moyens d'interface homme-machine 507, permettant, par exemple, gérer un écran tactile et/ou un ensemble de touches. Le microcontrôleur 502 est capable d'exécuter des instructions chargées dans la 25 RAM 503 à partir de la ROM 504, d'une mémoire externe (non représentée), d'un support de stockage, tel qu'une carte SD ou autre, ou d'un réseau de communication. Lorsque le dispositif 500 est mis sous tension, le microcontrôleur 502 est capable de lire de la RAM 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 30 tout ou partie des algorithmes décrits ci-après en relation avec les Figs. 2 à 5. Tout ou partie des algorithmes décrits ci-après en relation avec les Figs. 2 à 5 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 (Application-Specific Integrated Circuit en anglais ou Circuit Intégré Spécifique à une Application en français). Des modes de réalisation du procédé ont été décrits pour permettre au lecteur de mettre en oeuvre la présente invention. Toutefois, la portée de l'invention ne saurait être limitée à ces modes de réalisation. En particulier, l'extraction des lignes de l'image n'est pas limitée aux exemples cités mais étendue à toute méthode d'extraction de lignes qui permettent, au final, d'associer un angle à une ligne extraite de l'image. Il en est de même pour le partitionnement des lignes en classe qui peut être une méthode supervisée si une des indications sont connues a priori, telle que par exemple une plage angulaire particulière ou une longueur de ligne spécifique. La portée de l'invention n'est pas non plus limitée aux métriques citées mais s'étend à toute autre métrique qui permet de quantifier la distance entre deux angles ou entre deux distances associées aux lignes extraites de l'image. REVENDICATIONS1) Procédé de détection et de correction de l'orientation d'un document présent dans une image numérique, ledit procédé comportant une étape d'extraction de lignes (Li) de l'image et de leurs angles (9;) exprimés par rapport à un repère du plan image, caractérisé en ce qu'il comporte également les étapes suivantes : - déterminer la dispersion des angles associés aux lignes extraites (Li), - si la dispersion des angles est inférieure à un seuil, rotation de l'image selon un angle de rotation (9) calculé par la moyenne des angles associés à toutes les lignes extraites de l'image, - sinon - partitionner les lignes extraites (Li) selon leur angle associé pour former des classes (Cj), - sélectionner la classe (C) dont la dispersion spatiale des lignes est maximale, et - rotation de l'image selon un angle de rotation calculé par la moyenne des angles associés aux lignes qui appartiennent à cette classe ainsi sélectionnée. 2) Procédé selon la revendication 1, dans lequel les lignes sont partitionnées selon une méthode non supervisée et exclusive. 3) Procédé selon la revendication 2, dans lequel la méthode non supervisée et exclusive partitionne les lignes extraites en un nombre entier M de classes (Cj), fixé a priori, et comporte les étapes suivantes : 1. choisir a priori M centres de classe (CGj), chaque centre de classe (CGj) étant un angle associé à l'une des lignes extraites, 2. créer une nouvelle partition des lignes extraites en affectant une ligne extraite (Li) à une classe (Cj) lorsqu'un critère de distance (d(8, CGC )) entre l'angle (9r) associé à cette ligne extraite et le centre (CGj) de cette classe est minimal, 3. calculer des centres de gravité(CGj) de chaque classe ainsi créée, 4. répéter les étapes 2 et 3 jusqu'à obtenir un extremum pour un critère d'arrêt. 44) Procédé selon la revendication 3, dans lequel les M centres de classe (CGj) sont choisis aléatoirement parmi les angles associés aux lignes extraites. 5) Procédé selon la revendication 3 ou 4, dans lequel le critère d'arrêt est un 5 nombre prédéfini d'itérations ou un nombre qui quantifie une stationnarité de la partition. 6) Procédé selon l'une des revendications 3 à 5, dans lequel le critère de distance est une métrique de Minkowski. 7) Procédé selon l'une des revendications 1 à 6, dans lequel au cours de l'étape de sélection de la classe, une variance des distances entre lignes d'une même classe est calculée pour chaque classe (Cj) et la classe sélectionnée (C) est celle qui minimise cette valeur de variance. 15 8) Procédé selon l'une des revendications 1 à 6, dans lequel au cours de la sélection de la classe, - pour chaque ligne extraite (Li) d'une même classe (Cj), est calculée une distance (Di k) entre une ligne (Li) de cette classe (Cj) et chacune des autres 20 lignes (Lk) de cette classe (Cj), - une densité de lignes (DENj) est ensuite calculée pour chaque classe par la somme des valeurs minimales des distances entre lignes ainsi calculées pour chaque ligne extraite de cette classe, et - la classe sélectionnée (C) est celle qui maximise cette densité de lignes. 25 9) Procédé selon l'une des revendications précédentes, dans lequel l'image est binarisée préalablement à l'étape d'extraction de lignes de l'image, ladite binarisation étant basée sur un seuillage adaptatif. 30 10) Procédé selon l'une des revendications précédentes, dans lequel les lignes sont extraites par une transformée de Hough paramétrée, entre autres, par les valeurs limites d'une plage angulaire. 4 10 11) Procédé selon la revendication 10, dans lequel les scores inhérents à la transformée de Hough sont pondérés par les niveaux de gris des pixels de l'image. 12) Procédé selon l'une des revendications 10 ou 11, dans lequel l'ensemble des étapes du procédé est réalisé deux fois, lors d'une première itération, la plage angulaire utilisée par la transformée de Hough est choisie pour couvrir l'ensemble des orientations possibles d'une ligne autour d'un pixel de l'image, la sélection de la classe (C) étant alors basée sur la variance des distances entre lignes et un angle de rotation est alors calculé par la moyenne des angles associés aux lignes de la classe sélectionnée, et lors de la seconde itération, la plage angulaire utilisée par la transformée de Hough est limitée à un secteur angulaire autour de l'angle de rotation calculé à l'itération précédente, la sélection de la classe (C) étant alors basée sur la densité des lignes de la classe ainsi sélectionnée, et un angle de rotation est alors calculé par la moyenne des angles associés aux lignes de la classe sélectionnée. 13) Procédé selon la revendication 12, dans lequel la seconde étape est itérée, la plage angulaire utilisée par la transformée de Hough étant alors limitée à un secteur angulaire de plus en plus petit autour de l'angle de rotation calculé à l'itération précédente, la sélection de la classe C étant alors basée sur la densité des lignes de la classe ainsi sélectionnée, et un angle de rotation est alors calculé par la moyenne des angles associés aux lignes de la classe sélectionnée. 14) Programme d'ordinateur, caractérisé en ce qu'il comprend des instructions pour mettre en oeuvre, par un dispositif, le procédé selon l'une des revendications 1 à 13 lorsque ledit programme est exécuté par un processeur du dispositif. 15) Moyens de stockage, caractérisés en ce qu'ils stockent un programme d'ordinateur comprenant des instructions pour mettre en oeuvre, par un dispositif, le procédé selon l'une des revendications 1 à 13, lorsque ledit programme est exécuté par un processeur du dispositif. 4