BE1022630A1 - Procédé et système pour déterminer des candidats points de fuite pour la correction projective - Google Patents
Procédé et système pour déterminer des candidats points de fuite pour la correction projective Download PDFInfo
- Publication number
- BE1022630A1 BE1022630A1 BE20145135A BE201405135A BE1022630A1 BE 1022630 A1 BE1022630 A1 BE 1022630A1 BE 20145135 A BE20145135 A BE 20145135A BE 201405135 A BE201405135 A BE 201405135A BE 1022630 A1 BE1022630 A1 BE 1022630A1
- Authority
- BE
- Belgium
- Prior art keywords
- text
- points
- pixel
- image
- point
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 155
- 238000012937 correction Methods 0.000 title claims description 58
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 72
- 238000004458 analytical method Methods 0.000 claims abstract description 24
- 239000011159 matrix material Substances 0.000 claims description 24
- 238000001914 filtration Methods 0.000 claims description 17
- 230000003044 adaptive effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 7
- 238000010295 mobile communication Methods 0.000 claims description 7
- 230000001131 transforming effect Effects 0.000 claims description 7
- 230000000873 masking effect Effects 0.000 claims 1
- 230000009466 transformation Effects 0.000 abstract description 12
- 230000008030 elimination Effects 0.000 description 12
- 238000003379 elimination reaction Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000002457 bidirectional effect Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000002844 melting Methods 0.000 description 1
- 230000008018 melting Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 238000010899 nucleation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/80—Geometric correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/02—Affine transformations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/146—Aligning or centring of the image pick-up or image-field
- G06V30/1475—Inclination or skew detection or correction of characters or of image to be recognised
- G06V30/1478—Inclination or skew detection or correction of characters or of image to be recognised of characters or characters lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
- G06T2207/10008—Still image; Photographic image from scanner, fax or copier
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20076—Probabilistic image processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30176—Document
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
- G06V10/247—Aligning, centring, orientation detection or correction of the image by affine transforms, e.g. correction due to perspective effects; Quadrilaterals, e.g. trapezoids
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
Procédé comprenant les étapes de binarisation d'image, d'analyse en composantes connexes, d'estimation d'un nombre de lignes de texte dans un système de coordonnées cartésiennes, de transformation des lignes de texte en points de données dans un système de coordonnées homogènes, d'attribution d'un niveau de confiance aux points de données, de groupement d'un nombre de points de données dans une matrice d'échantillons prioritaire, de mise en grappe des points de données dans la matrice d'échantillons prioritaire en un nombre de groupes échantillons et d'attribution d'une valeur de confiance de groupe à chaque groupe échantillon. Un algorithme RANSAC est appliqué pour déterminer parmi les points de données un ensemble d'inliers,
lancé avec le groupe échantillon ayant la valeur de FIG. 12 confiance de groupe la plus élevée. Un candidat point de fuite est déterminé à partir des lignes de texte correspondant à l'ensemble d'inliers.
Description
« Procédé et système pour déterminer des candidats points de fuite pour la correction projective »
Domaine technique
La présente invention concerne un procédé, un système, un dispositif et un produit de programme informatique, pour corriger une distorsion projective.
Art antérieur
Des caméras numériques (dénommées ci-après caméras) peuvent être utilisées pour capturer des images. Avec les progrès de la technologie, des caméras numériques sont mises en œuvre dans presque tous les types de dispositifs numériques. Des exemples de tels dispositifs numériques comprennent, sans toutefois y être limités, un dispositif de communication mobile, une tablette, un ordinateur portable et un assistant personnel numérique (PDA). Dans de nombreux cas, les caméras peuvent servir de solution de remplacement pour un numériseur à balayage de document, étant donné que les caméras peuvent être utilisées pour capturer des images d'un document. Il se peut que les images du document doivent être traitées avant la reconnaissance de texte et/ou l'extraction de texte. Le traitement des images du document impose deux grands défis: la mauvaise qualité des images capturées due à des conditions d'imagerie défavorables et la distorsion dans les images capturées. La distorsion peut être due à la caméra et/ou à un angle et des positions de la caméra par rapport au plan du document pendant la capture des images. La distorsion due au point cité en dernier est connue comme distorsion projective. Dans la distorsion projective, les symptômes ou caractères de texte apparaissent plus grands quand ils sont plus proches du plan de la caméra et semblent diminuer de taille quand ils sont plus loin. Il existe des techniques connues pour améliorer la qualité des images. Cependant, l'amélioration de la qualité des images n'aide pas à la reconnaissance et/ou à l'extraction de texte quand les images des documents sont, en particulier, déformées par projection. La distorsion projective ne perturbe pas seulement l'interprétation visuelle du texte mais affecte également la précision des algorithmes de reconnaissance de texte.
Il existe des techniques pour corriger la distorsion projective. Une des techniques actuellement connues pour effectuer une correction de la distorsion projective a recours à des données auxiliaires. Les données auxiliaires peuvent comprendre une combinaison de données de mesure d'orientation, des données d'accéléromètre et des données de mesure de distance. Cependant, de telles données auxiliaires peuvent ne pas être disponibles dans tous les dispositifs électroniques du fait de l'absence de divers capteurs et/ou du manque de capacités de traitement. Certaines autres techniques discutent de la correction manuelle de la distorsion projective. Une telle technique requiert d'un utilisateur qu'il identifie et marque manuellement quatre coins d'un quadrilatère qui était habituellement un rectangle formulé par deux segments de droite horizontaux et deux segments de droite verticaux avant la distorsion. Une autre technique requiert de l'utilisateur qu'il identifie et marque des lignes parallèles qui correspondent aux lignes horizontales ou lignes verticales avant la distorsion. La correction de la distorsion projective est effectuée en se basant sur les coins ou lignes parallèles. Cependant, la correction manuelle de la distorsion projective demande du temps, est inefficace et sujette aux erreurs.
Il existe également des techniques de correction automatique de distorsions projectives. Ces techniques sont axées sur l'identification de points de fuite horizontaux et verticaux. Les points de fuite peuvent se référer à des points où des contours (par exemples, des contours horizontaux ou des contours verticaux) du document dans l'image convergent vers un point. Les techniques utilisent les points de fuite horizontaux et verticaux pour effectuer la correction de la distorsion projective. Cependant, la plupart des techniques requièrent de fixer des paramètres manuels compliqués pour la correction. Si le contenu de l'image change, les paramètres doivent être changés manuellement. Cela limite la capacité des techniques. En outre, les techniques existantes coûtent cher en termes de calcul, ce qui rend leur mise en œuvre difficile dans de petits dispositifs tels que des dispositifs de communication mobiles. De surcroît, la plupart des techniques fonctionnent en se fondant sur la présomption que les images du document ne comprennent que du texte. Dans le cas où les images du document comprennent une combinaison de texte et de photos, les techniques peuvent ne pas produire de résultats utiles ou ne produire aucun résultat. Des nombreuses techniques fonctionnent également en partant de l'hypothèse que le texte dans les images du document est formaté et/ou positionné d'une façon particulière. Donc quand le texte dans les images n'est pas formaté et/ou positionné de la façon particulière, les techniques échouent.
Divulgation de l'invention
Un but de cette invention est de fournir un procédé, un système, un dispositif et/ou un produit de programme informatique pour effectuer une correction projective d'une image déformée, lesquels ne présentent pas au moins un des inconvénients mentionnés ci-dessus.
Ce but est atteint selon l'invention telle que définie dans les revendications indépendantes.
Selon un premier aspect de la présente invention, qui peut être combiné avec les autres aspects décrits dans le présent document, divulgation est faite d'un procédé de correction projective d'une image contenant au moins une partie texte qui est distordue par la perspective. Le procédé comprend une étape de binarisation d'image où ladite image est binarisée. Ensuite, le procédé comprend une étape d'exécution d'une analyse en composantes connexes. L'analyse en composantes connexes implique la détection de blobs de pixels dans ladite au moins une partie texte de ladite image binarisée. Ensuite, le procédé comprend une étape de détermination des points de fuite horizontaux. La détermination des points de fuite horizontaux comprend l'estimation de lignes de base de texte au moyen de points propres desdits blobs de pixels et la détermination d'un point de fuite horizontal de ladite au moins une partie texte au moyen desdites lignes de base de texte. Le procédé comprend en outre une étape de détermination de points de fuite verticaux pour ladite au moins une partie texte sur la base de caractéristiques verticales de celle-ci. Le procédé comprend en outre une étape de correction projective, laquelle comporte la correction de ladite perspective dans ladite image sur la base desdits points de fuite horizontaux et verticaux.
Dans des modes de réalisation selon le premier aspect, une étape de séparation du texte et des photos est accomplie après ladite binarisation d'image et avant lesdites analyses en composantes connexes, et seule l'information textuelle est gardée.
Dans des formes de réalisation selon le premier aspect, chaque point propre peut être le centre du bas d'une boite englobante du blob de pixels concerné. L'étape d'estimation de lignes de base de texte peut comprendre l'étape d'élimination de points propres prêtant à confusion. Il est possible de détecter les points propres prêtant à confusion qui sont désalignés par rapport à des points propres à proximité du point propre pris en considération. Les points propres prêtant à confusion peuvent être négligés pour ladite estimation de lignes de base de texte.
Dans des modes de réalisation selon le premier aspect, l'étape d'élimination des points propres prêtant à confusion peut comprendre la détermination de la largeur et de la hauteur des blobs de pixels, la détermination de valeurs moyennes pour la largeur et la hauteur des blobs de pixels et la détection desdits points propres prêtant à confusion comme points propres appartenant à des blobs de pixels dont au moins une de la largeur et de la hauteur du blob de pixels considéré diffère dans une mesure prédéterminée desdites valeurs moyennes calculées.
Dans des modes de réalisation selon le premier aspect, ladite étape d'estimation de lignes de basé de texte peut comprendre une étape de mise en grappe de points propres en groupes de points propres. Lesdits groupes de points propres peuvent remplir au moins une des conditions suivantes: - une distance de point à point entre les points propres du groupe est inférieure à un premier seuil de distance, - une distance de point à ligne entre chaque point propre du groupe et une ligne formée par les points propres du groupe est inférieure à un deuxième seuil de distance, - un angle de la ligne formée par les points propres du groupe par rapport à l'horizontale est inférieur à un angle maximum, et - le groupe des points propres contient un nombre minimum de points propres.
Lesdites lignes de base de texte peuvent être estimées en se basant sur lesdits groupes de points propres.
Dans des modes de réalisation selon le premier aspect, ledit premier seuil de distance, ledit deuxième seuil de distance, ledit angle maximum et ledit nombre minimum de points propres peuvent être établis de manière adaptative sur la base du contenu de l'image. Ladite étape d'estimation de lignes de base de texte peut en outre comprendre une étape de fusion de groupes de points propres. Les groupes de points propres des deux côtés d'un point propre laissé de côté peuvent être fusionnés en un groupe de points propres plus grand.
Dans des modes de réalisation selon le premier aspect, ladite étape de détermination du point de fuite horizontal peut comprendre les étapes de définition de chacune desdites lignes de base de texte estimées comme lignes dans un système de coordonnées cartésiennes, de transformation de chacune desdites lignes de base de texte définies dans le système de coordonnées cartésiennes en un point de données dans un système de coordonnées homogènes, et d'attribution d'un niveau de confiance à chacun des points de données. Ledit niveau de confiance peut être basé sur au moins la longueur de la ligne de base de texte concernée et la proximité du groupe de points propres utilisés pour estimer la ligne de base de texte et la ligne de base de texte qui en résulte.
Dans des modes de réalisation selon le premier aspect, ladite étape de détermination du point de fuite horizontal comprend en outre les étapes de groupement d'un nombre de points de données ayant un niveau de confiance au-dessus d’un seuil prédéterminé dans une matrice d'échantillons prioritaire, de mise en grappe des points de données dans la matrice d'échantillons prioritaire en un nombre de groupes échantillons, d'attribution d'une valeur de confiance de groupe à chaque groupe échantillon sur la base d’au moins le niveau de confiance attribué à chaque point de données dans le groupe échantillon et de sélection itérative de groupes échantillons de points de données dans la matrice d'échantillons prioritaire à des fins d'ajustement de ligne. Chaque groupe échantillon peut comprendre deux ou plus de deux points de données. Ladite itération peut commencer avec le groupe échantillon ayant la valeur de confiance la plus élevée dans la matrice d'échantillons prioritaire.
Dans des modes de réalisation selon le premier aspect, ladite étape de détermination du point de fuite horizontal peut comprendre les étapes d'exécution de l'ajustement de ligne pour le premier groupe échantillon ayant pour résultat une première ligne ajustée et puis d'exécution de l'ajustement de ligne pour chaque autre groupe échantillon ayant pour résultat d’autres lignes ajustées, de détermination sur la base de la première et des autres lignes ajustées d'un ensemble de points de données qui sont positionnés en dessous d’un seuil de distance prédéterminé par rapport à la première ligne ajustée et d'estimation d’au moins un premier et un deuxième candidat point de fuite horizontal à partir des lignes de base de texte horizontales correspondant à l'ensemble de points de données déterminé.
Dans des modes de réalisation selon le premier aspect, ladite étape de détermination du point de fuite horizontal peut comprendre les étapes d'exécution d'une correction projective sur la base de chaque candidat point de fuite horizontal estimé, de comparaison de la proximité de chaque candidat point de fuite horizontal à la direction horizontale de texte résultante après correction projective et de sélection du candidat point de fuite horizontal qui est le plus proche de la direction horizontale de texte du document image après correction projective.
Dans des modes de réalisation selon le premier aspect, ladite étape de détermination du point de fuite vertical peut comprendre les étapes d'estimation d'une pluralité de lignes de texte verticales, chacune correspondant à la direction d'un desdits blobs de pixels sélectionné par un algorithme de filtrage de blob sur la partie texte de l'image, de définition de chacune desdites lignes de texte verticales estimées comme lignes dans un système de coordonnées cartésiennes, de transformation de chacune desdites lignes de texte verticales estimées dans le système de coordonnées cartésiennes en un point de données dans un système de coordonnées homogènes et d'attribution d'un niveau de confiance à chacun des points de données. Ledit niveau de confiance peut être basé sur au moins l'excentricité de la forme du blob de pixels utilisé pour estimer la ligne de texte verticale concernée.
Dans des modes de réalisation selon le premier aspect, ladite étape de détermination du point de fuite vertical peut comprendre les étapes de: groupement d'un nombre de points de données ayant un niveau de confiance au-dessus d'un seuil prédéterminé dans la matrice d'échantillons prioritaire et de mise en grappe des points de données dans la matrice d'échantillons prioritaire en un nombre de groupes échantillons. Chaque groupe échantillon peut comprendre au moins deux points de données. Ladite étape de détermination du point de fuite vertical comprend les étapes d'attribution d'une valeur de confiance de groupe à chaque groupe échantillon sur la base du niveau de confiance attribué à chaque point de données dans le groupe échantillon et de sélection itérative de groupes échantillons de points de données dans la matrice d'échantillons prioritaire à des fins d'ajustement de ligne. Ladite itération peut commencer avec le groupe échantillon ayant la valeur de confiance la plus élevée dans la matrice d'échantillons prioritaire.
Dans des modes de réalisation selon le premier aspect, ladite étape de détermination du point de fuite vertical peut comprendre les étapes d'exécution de l'ajustement de ligne pour le premier groupe échantillon ayant pour résultat une première ligne ajustée et puis d'exécution de l'ajustement de ligne pour chaque autre groupe échantillon ayant pour résultat d'autres lignes ajustées, de détermination sur la base de la première et des autres lignes ajustées d'un ensemble de points de données qui sont positionnés en dessous d'un seuil de distance prédéterminé par rapport à la première ligne ajustée et d'estimation d'au moins un premier et un deuxième candidat point de fuite vertical à partir des lignes de base de texte verticales correspondant à l'ensemble de points de données déterminé.
Dans des modes de réalisation selon le premier aspect, ladite étape de détermination du point de fuite vertical peut comprendre les étapes d'exécution d'une correction projective sur la base de chaque candidat point de fuite vertical estimé, de comparaison de la proximité de chaque candidat point de fuite vertical de la direction verticale de texte résultante après correction projective et de sélection du candidat point de fuite vertical qui est le plus proche de la direction verticale de texte du document image.
Dans des modes de réalisation selon le premier aspect, ledit algorithme de filtrage de blobs peut sélectionner des blobs de pixels sur la base d'une ou plusieurs des conditions suivantes: l'excentricité de la forme du blob de pixels considéré, qui représente la mesure dans laquelle il est allongé (la valeur est entre 0 et 1 ; 0 et 1 sont des extrêmes: un blob dont l'excentricité est 0 est en fait un objet circulaire, tandis qu'un blob dont l'excentricité est 1 est un segment de droite), est au-dessus d'un seuil prédéterminé, la proximité de chaque blob de pixels du bord de l'image est au-dessus d'un seuil de distance prédéterminé, l'angle de la ligne verticale résultante par rapport à la direction verticale est inférieur à un seuil d'angle maximum, et l'aire de chaque blob de pixels défini par le nombre de pixels est inférieur à un seuil d'aire maximum mais supérieur à un seuil d'aire minimum.
Dans des modes de réalisation selon le premier aspect, lesdits premier et deuxième candidats points de fuite peuvent être estimés en utilisant différentes méthodes d'approximation choisies dans le groupe consistant en une méthode des moindres carrés, une méthode des moindres carrés pondérés et une méthode des moindres carrés adaptatifs.
Selon une variante du premier aspect de l'invention, qui peut être combinée avec les autres aspects décrits dans le présent document, divulgation est faite d’un procédé de correction projective d'une image contenant au moins une partie texte qui est distordue par la perspective. Le procédé comprend une étape de binarisation d’image où ladite image est binarisée et une étape d’analyse en composantes connexes. L'analyse en composantes connexes implique la détection de blobs de pixels dans ladite au moins une partie texte de ladite image binarisée. Pour chacun desdits blobs de pixels, un pixel déterminateur de position peut être sélectionné sur une ligne de base du blob de pixels. Ledit pixel déterminateur de position peut définir la position du blob de pixels dans l'image binarisée. Le procédé comprend en outre une étape de détermination de points de fuite horizontaux. La détermination de points de fuite horizontaux comprend l'estimation de lignes de base de texte au moyen de points propres desdits blobs de pixels et la détermination d’un point de fuite horizontal de ladite au moins une partie texte au moyen desdites lignes de base de texte. Le procédé comprend en outre une détermination de points de fuite verticaux. Le point de fuite vertical est déterminé pour ladite au moins une partie texte sur la base de caractéristiques verticales de celle-ci. Le procédé comprend en outre une étape de correction projective, dans laquelle ladite distorsion de perspective dans ladite image est corrigée sur la base desdits points de fuite horizontaux et verticaux.
Dans des modes de réalisation selon la variante du premier aspect, une étape de séparation du texte et des photos est accomplie après ladite binarisation d’image et avant lesdites analyses en composantes connexes, et seule l'information textuelle est gardée.
Dans des modes de réalisation de la variante du premier aspect, ledit pixel déterminateur de position comme décrit peut être le centre du bas d’une boite englobante du blob de pixels. Ledit pixel déterminateur de position peut, dans des variantes de mode de réalisation, être un coin du bas (c'est-à-dire coin gauche ou droit inférieur) d'une boite englobante du blob de pixels, ou un autre pixel qui détermine la position du blob de pixels ou d'un rectangle englobant sur celui-ci.
Dans des modes de réalisation du premier aspect ou de la variante du premier aspect, il peut être prévu des systèmes ou dispositifs comprenant un ou plusieurs processeurs et parties de code de logiciel compatibles configurées pour effectuer les procédés ou étapes décrits ci-dessus.
Dans des modes de réalisation du premier aspect ou de la variante du premier aspect, il peut être prévu des supports de stockage non temporaires sur lesquels est stocké un produit de programme informatique comprenant des parties de code de logiciel dans un format exécutable sur un dispositif informatique et configurées pour effectuer les procédés ou étapes décrits ci-dessus quand elles sont exécutées sur ledit dispositif informatique. Ledit dispositif informatique peut être un quelconque des dispositifs suivants: un ordinateur personnel, un ordinateur portable, un ordinateur portatif, un miniordinateur portable, un ordinateur tablette, un téléphone intelligent (smartphone), un appareil photo numérique, une caméra vidéo, un appareil de communication mobile, un assistant numérique personnel, un numériseur à balayage, un dispositif multifonction ou un quelconque autre dispositif informatique similaire.
Dans un deuxième aspect selon l'invention, qui peut être combiné avec les autres aspects décrits dans le présent document, un procédé de détermination de candidats points de fuite d’une partie texte dans un document image qui est distordu par la perspective est décrit. Le procédé comprend une étape de binarisation d'image où ladite image est binarisée. Puis, le procédé comprend l'accomplissement d’une analyse en composantes connexes, dans laquelle des blobs de pixels sont détectés dans ladite au moins une partie texte de ladite image binarisée. Un pixel déterminateur de position est sélectionné par chacun des blobs de pixels sur une ligne de base du blob de pixels, ledit pixel déterminateur de position définissant la position du blob de pixels dans l’image binarisée. Le procédé comprend également l'estimation d'un nombre de lignes de texte dans un système de coordonnées cartésiennes, chaque ligne de texte représentant une approximation d'une direction de texte horizontale ou verticale de ladite partie texte, sur la base des pixels déterminateurs de position. Le procédé comprend aussi la transformation de chacune desdites lignes de texte en un point de données dans un système de coordonnées homogènes. Le procédé comprend en outre l'attribution d'un niveau de confiance à chacun des points de données. Le procédé comprend le groupement d'un nombre de points de données ayant un niveau de confiance supérieur à un seuil prédéterminé dans une matrice d'échantillons prioritaire. Le procédé comprend la mise en grappe des points de données dans la matrice d'échantillons prioritaire en un nombre de groupes échantillons. Chaque groupe échantillon peut comprendre deux ou plus de deux points de données. Le procédé comprend en outre une étape d'attribution d'une valeur de confiance de groupe à chaque groupe échantillon sur la base d'au moins le niveau de confiance attribué à chaque point de données dans ie groupe échantillon. De plus, le procédé comprend l'application d’un algorithme RANSAC pour déterminer parmi lesdits points de données un ensemble d’inliers (données valides) par rapport à une première ligne ajustée. L'algorithme RANSAC est lancé avec le groupe échantillon ayant la valeur de confiance de groupe la plus élevée dans la matrice d'échantillons prioritaire. Le procédé comprend en outre une étape d'estimation d’au moins un candidat point de fuite des lignes de texte correspondant audit ensemble de inliers.
Dans des modes de réalisation selon le deuxième aspect, une étape de séparation du texte et des photos est accomplie après ladite binarisation d'image et avant lesdites analyses en composantes connexes, et seule l'information textuelle est gardée.
Dans des modes de réalisation selon le deuxième aspect, le niveau de confiance qui est attribué audits points de données peut être basé sur au moins la longueur de la ligne de texte concernée et la proximité des pixels déterminateurs de position de la ligne de texte concernée.
Dans des modes de réalisation selon deuxième aspect, l'algorithme RANSAC peut comprendre les étapes suivantes. Premièrement, sélection itérative de groupes échantillons de points de données dans ia matrice d'échantillons prioritaire pour l'ajustement de ligne. L'itération commence avec le groupe échantillon ayant ia valeur de confiance de groupe la plus élevée dans la matrice d'échantillons prioritaire. Puis, exécution de l'ajustement de ligne pour le premier groupe échantillon avec pour résultat une première ligne ajustée et ensuite exécution de l'ajustement de ligne pour chaque autre groupe échantillon avec pour résultat d'autres lignes ajustées. Puis, détermination sur la base de la première et des autres lignes ajustées d'un ensemble de points de données qui sont positionnés en dessous d'un seuil de distance prédéterminé à partir de la première ligne ajustée, ledit ensemble de points de données formant ledit ensemble d'inliers.
Dans des modes de réalisation selon le deuxième aspect, le seuil de distance prédéterminé à partir de la première ligne ajustée peut être un paramètre fixe. Le seuil de distance prédéterminé à partir de la première ligne ajustée peut, en variante, être adaptable sur la base du contenu du document image.
Dans des modes de réalisation selon le deuxième aspect, au moins un premier et un deuxième candidat point de fuite peuvent être estimés à partir des lignes de texte correspondant audit ensemble d'inliers. Les premier et deuxième candidats points de fuite peuvent être estimés en utilisant différents méthodes d'approximation choisies dans le groupe consistant en: une méthode des moindres carrés, une méthode des moindres carrés pondérés et une méthode des moindres carrés adaptatifs. Le procédé peut alors comprendre en outre une étape de sélection d'un point de fuite parmi les candidats points de fuite estimés. La sélection peut comprendre les étapes de: exécution d'une correction projective sur le document image sur la base de chaque candidat point de fuite estimé, comparaison de la proximité de chaque candidat point de fuite de la direction de texte horizontale ou verticale résultante après correction projective et sélection du candidat point de fuite qui est le plus proche de la direction de texte horizontale ou verticale du document image après correction projective.
Dans des modes de réalisation selon le deuxième aspect, la valeur de confiance de groupe pour chaque groupe échantillon peut en outre être basée sur les distances entre les lignes de texte estimées respectives correspondant aux points de données dans le groupe échantillon. Le niveau de confiance de chacun des points de données peut en outre être basé sur une direction dominante des blobs de pixels pour estimer chaque ligne de texte concernée. La direction dominante peut être définie par l'excentricité de la forme de chaque blob de pixels. Le nombre maximum de points de données groupé dans la matrice d'échantillons prioritaire peut être entre 2 et 20 et mieux encore 5 et 10.
Dans des modes de réalisation selon le deuxième aspect, les lignes de texte estimées peuvent être des lignes de blob de texte verticales qui correspondent chacune à la direction d'un desdits blobs de pixels sélectionné par un algorithme de filtrage de blob sur la partie texte de l'image.
Dans des modes de réalisation du deuxième aspect, il peut être prévu des systèmes ou dispositifs comprenant un ou plusieurs processeurs et parties de code de logiciel compatibles configurées pour effectuer les procédés ou étapes décrits ci-dessus.
Dans des modes de réalisation du deuxième aspect, il peut être prévu des supports de stockage non temporaires sur lesquels est stocké un produit de programme informatique comprenant des parties de code de logiciel dans un format exécutable sur un dispositif informatique et configurées pour effectuer les procédés ou étapes décrits ci-dessus quand elles sont exécutées sur ledit dispositif informatique. Ledit dispositif informatique peut être un quelconque des dispositifs suivants: un ordinateur personnel, un ordinateur portable, un ordinateur portatif, un mini-ordinateur portable, un ordinateur tablette, un téléphone intelligent (smartphone), un appareil photo numérique, une caméra vidéo, un appareil de communication mobile, un assistant numérique personnel, un numériseur à balayage, un dispositif multifonction ou un quelconque autre dispositif informatique similaire.
Dans un troisième aspect de l'invention, qui peut être combiné avec les autres aspects décrits dans le présent document, divulgation est faite d'un procédé de correction projective d'une image contenant au moins une partie texte qui est distordue par la perspective. Le procédé comprend une étape de binarisation d'image où ladite image est binarisée. Ensuite, le procédé comprend une étape d'exécution d'une analyse en composantes connexes. L'analyse en composantes connexes implique la détection de blobs de pixels dans ladite au moins une partie texte de ladite image binarisée. A pixel déterminateur de position est sélectionné pour chacun desdits blobs de pixels sur une ligne de base du blob de pixels. Ledit pixel déterminateur de position définit la position du blob de pixels dans l'image binarisée. Le procédé comprend une étape de détermination de points de fuite horizontaux. La détermination de points de fuite horizontaux comprend l'estimation de lignes de base de texte au moyen de pixels déterminateurs de position desdits blobs de pixels, l'identification de candidats points de fuite horizontaux desdites lignes de base de texte estimées et la détermination d'un point de fuite horizontal de ladite au moins une partie texte au moyen desdits candidats points de fuite horizontaux. Le procédé comprend également une étape de détermination de points de fuite verticaux pour ladite au moins une partie texte sur la base de caractéristiques verticales de celle-ci. Le procédé comprend en outre une étape de correction projective. La correction projective comporte la correction de ladite perspective dans ladite image sur la base desdits points de fuite horizontaux et verticaux. La détermination de points de fuite horizontaux peut comprendre une première étape d'élimination au niveau des points propres, une deuxième étape d'élimination au niveau des lignes de base de texte et une troisième étape d'élimination au niveau des candidats points de fuite horizontaux.
Dans des modes de réalisation selon le troisième aspect, une étape de séparation du texte et des photos est accomplie après ladite binarisation d'image et avant lesdites analyses en composantes connexes, et seule l'information textuelle est gardée.
Dans des modes de réalisation selon le troisième aspect, la première étape d'élimination comprend une étape de détection de points propres prêtant à confusion qui sont désalignés par rapport aux points propres points dans le voisinage du point propre pris en considération. Lesdits points propres prêtant à confusion peuvent être négligés pour ladite estimation de lignes de base de texte. ·
Dans des modes de réalisation selon le troisième aspect, l'étape d'élimination des points propres prêtant à confusion peut comprendre la détermination de la largeur et de la hauteur des blobs de pixels, la détermination de valeurs moyennes pour la largeur et la hauteur des blobs de pixels et la détection desdits points propres prêtant à confusion comme points propres appartenant à des blobs de pixels dont au moins une de la largeur et de la hauteur du blob de pixels considéré diffère dans une mesure prédéterminée desdites valeurs moyennes calculées.
Dans des modes de réalisation selon le troisième aspect, ladite étape d'estimation de lignes de base de texte peut comprendre une étape de mise en grappe de points propres en groupes de points propres. Lesdits groupes de points propres peuvent remplir au moins une des conditions suivantes: - une distance de point à point entre les points propres du groupe est inférieure à un premier seuil de distance, - une distance de point à ligne entre chaque point propre du groupe et une ligne formée par les points propres du groupe est inférieure à un deuxième seuil de distance, - un angle de la ligne formée par les points propres du groupe par rapport à l'horizontale est inférieur à un angle maximal, et - le groupe des points propres contient un nombre minimum de points propres.
Lesdites lignes de base de texte peuvent alors être estimées en se basant sur lesdits groupes de points propres.
Dans des modes de réalisation selon le troisième aspect, ledit premier seuil de distance, ledit deuxième seuil de distance, ledit angle maximum et ledit nombre minimum de points propres peuvent être établis de manière adaptative sur la base du contenu de l'image. Ladite étape d'estimation de lignes de base de texte peut en outre comprendre une étape de fusion de groupes de points propres dans laquelle les groupes de points propres des deux côtés d'un point propre négligé sont fusionnés en un groupe de points propres plus grand.
Dans des modes de réalisation selon le troisième aspect, la deuxième étape d'élimination comprend les étapes de: attribution de niveaux de confiance auxdites lignes de base de texte et élimination de lignes de base de texte sur la base desdits niveaux de confiance. Lesdits niveaux de confiance peuvent être basés sur au moins la longueur de la ligne de base de texte concernée et la proximité du groupe de points propres utilisés pour estimer la ligne de base de texte et la ligne de base de texte qui en résulte. L'élimination de lignes de base de texte peut être effectuée au moyen d'un algorithme RANSAC dans lequel lesdits niveaux de confiance sont pris en compte.
Dans des modes de réalisation selon le troisième aspect, la troisième étape d'élimination comprend l'exécution d'une correction projective sur la base de chaque candidat point de fuite horizontal identifié, la comparaison de la proximité de chaque candidat point de fuite horizontal de la direction horizontale de texte résultante après correction projective et la sélection du candidat point de fuite horizontal qui est le plus proche de la direction horizontale de texte du document image après correction projective.
Dans des modes de réalisation selon le troisième aspect, un premier et un deuxième candidat point de fuite peuvent être estimés à partir desdites lignes de base de texte après ladite deuxième étape d'élimination. Pour ladite estimation desdits premier et deuxième points de fuite horizontaux, différentes méthodes d'approximation peuvent être utilisées, les méthodes étant choisies dans le groupe consistant en: une méthode des moindres carrés, une méthode des moindres carrés pondérés et une méthode des moindres carrés adaptatifs.
Dans des modes de réalisation du troisième aspect, il peut être prévu des systèmes ou dispositifs comprenant un ou plusieurs processeurs et parties de code de logiciel compatibles configurées pour exécuter les procédés ou étapes décrits ci-dessus.
Dans des modes de réalisation du troisième aspect, il peut être prévu des supports de stockage non temporaires sur lesquels est stocké un produit de programme informatique comprenant des parties de code de logiciel dans un format exécutable sur un dispositif informatique et configurées pour effectuer les procédés ou étapes décrits ci-dessus quand elles sont exécutées sur ledit dispositif informatique. Ledit dispositif informatique peut être un quelconque des dispositifs suivants: un ordinateur personnel, un ordinateur portable, un ordinateur portatif, un mini-ordinateur portable, un ordinateur tablette, un téléphone intelligent (smartphone), un appareil photo numérique, une caméra vidéo, un appareil de communication mobile, un assistant numérique personnel, un numériseur à balayage, un dispositif multifonction ou un quelconque autre dispositif informatique similaire.
Brève description des dessins L'invention sera expliquée de manière plus détaillée au moyen de la description suivante et des dessins annexés.
La figure 1 montre un organigramme pour la correction projective d'une image distordue, selon un mode de réalisation de la présente divulgation.
La figure 2 montre un organigramme pour identifier un point de fuite horizontal, selon un mode de réalisation de la présente divulgation.
La figure 3A et la figure 3B auxquelles il peut être fait référence conjointement comme à la figure 3 dans le texte montre un algorithme de mise en grappe de points propres, selon un mode de réalisation de la présente divulgation.
La figure 4 montre un organigramme pour identifier un point de fuite vertical en utilisant des pixels déterminateurs de position, selon un mode de réalisation de la présente divulgation.
La figure 5 montre un organigramme pour identifier le point de fuite vertical en utilisant des caractéristiques de trait de texte, selon un mode de réalisation de la présente divulgation.
La figure 6A monte un exemple d'image binarisée ayant une photo ainsi que le texte, selon un mode de réalisation de la présente divulgation.
La figure 6B montre une image résultante après filtrage de la photo du texte, selon un mode de réalisation de la présente divulgation.
La figure 7 montre un exemple de blob de pixels, selon un mode de réalisation de la présente divulgation.
La figure 8 montre une grille de présentation pour un utilisateur afin d'ajuster les coins de l'image, selon un mode de réalisation de la présente divulgation.
La figure 9A montre une image capturée, selon un mode de réalisation de la présente divulgation.
La figure 9B montre une image améliorée résultant d'une correction projective, selon un mode de réalisation de la présente divulgation.
La figure 10A montre un exemple d'image pour laquelle des points propres pour du texte sont identifiés, selon un mode de réalisation de la présente divulgation.
La figure 10B montre un exemple d'image ayant des groupes de points propres surclassifiés, selon un mode de réalisation de la présente divulgation.
La figure 10C montre un exemple d'image ayant des groupes de points propres consolidés, selon un mode de réalisation de la présente divulgation.
La figure 11 montre un exemple de partie texte pour laquelle des lignes de base sont estimées, selon un mode de réalisation de la présente divulgation.
La figure 12 montre un exemple d'image avec des points caractéristiques de marge identifiés dans la marge, selon un mode de réalisation de la présente divulgation.
La figure 13 montre un exemple d'image ayant deux lignes verticales estimées le long d'une même marge, selon un mode de réalisation de la présente divulgation.
La figure 14 montre un exemple d'image illustrant la fusion de lignes verticales estimées, selon un mode de réalisation de la présente divulgation.
La figure 15 montre un exemple d'image illustrant une caractéristique de trait de texte d'un caractère, selon un mode de réalisation de la présente divulgation.
La figure 16 montre un exemple d'image illustrant des blobs extraits sélectivement après identification de caractéristiques de trait de texte, selon un mode de réalisation de la présente divulgation.
La figure 17 montre un exemple d'image montrant des lignes de blob de texte verticales estimées pour les blobs de pixels sélectionnés, selon un mode de réalisation de la présente divulgation.
La figure 18 montre un exemple d'image montrant des lignes de blob de texte verticales qui sont sélectionnées pour le point de fuite vertical, selon un mode de réalisation de la présente divulgation.
Modes de mise en œuvre de l'invention
La présente invention sera décrite en rapport avec des modes de réalisation particuliers et en référence à certains dessins mais l'invention n'y est toutefois pas limitée, n'étant limitée que par les revendications. Les dessins décrits ne sont que schématiques et sont non limitatifs. Dans les dessins, la taille de certains des éléments peut être exagérée et non dessinée à l'échelle à des fins illustratives. Les dimensions et les dimensions relatives ne correspondent pas nécessairement aux réalisations fonctionnelles (réductions to practice) effectives de l'invention.
En outre, les termes premier, deuxième, troisième et similaire dans la description et dans les revendications sont utilisés pour faire la distinction entre éléments similaires et pas nécessairement pour décrire un ordre séquentiel ou chronologique. Les termes sont interchangeables dans les circonstances appropriées et les modes de réalisation de l'invention peuvent fonctionner dans d'autres séquences que celles décrites ou illustrées dans le présent document.
De plus, les termes haut, bas, au-dessus, en dessous et similaire dans la description et les revendications sont utilisés à des fins descriptives et pas nécessairement pour décrire des positions relatives. Les termes ainsi utilisés sont interchangeables dans les circonstances appropriées et les modes de réalisation décrits dans le présent document peuvent fonctionner dans d'autres orientations que celles décrites ou illustrées dans le présent document.
Le terme "comprenant", utilisé dans les revendications, ne doit pas être interprété comme étant limité aux moyens énumérés ci-dessous; il n'exclut pas d'autres éléments ou étapes. Il doit être interprété comme spécifiant la présence des éléments, nombres entiers, étapes ou composants cités auxquels il est fait référence mais n'exclut pas la présence ou l'ajout d'un ou plusieurs autres éléments, nombres entiers, étapes ou composants ou groupes de ceux-ci. Donc, la portée de l'expression "un dispositif comprenant les moyens A et B" ne doit pas être limitée à des dispositifs constitués uniquement des composants A et B. Il signifie, en ce qui concerne la présente invention, que les seuls composants pertinents du dispositif sont A et B.
Nous référant à la figure 1, celle-ci montre un organigramme 100 pour correction projective d'une image distordue. L'image peut être reçue pour correction projective. L'image peut être examinée optiquement pour déterminer la qualité de l'image. L'examen de l'image peut comprendre le contrôle de la présence de bruit, l'état d'illumination, la clarté des caractères, la résolution et similaire. Si la qualité de l'image est supérieure à un seuil prédéterminé, l'image peut être traitée à l'étape 102. Si la qualité de l'image est inférieure au seuil prédéterminé, l'image peut être prétraitée pour améliorer la qualité de l'image. Le prétraitement peut impliquer de modifier la nuance de couleur, de corriger les déséquilibres de luminosité, les ajustements de netteté, d'éliminer le bruit, d'éliminer/corriger le flou de mouvement, de compenser des erreurs de focalisation de la caméra et similaire, pour restaurer et améliorer la résolution de l'image. Dans un exemple de mise en œuvre, le prétraitement peut être effectué automatiquement. Dans un autre exemple de mise en œuvre, des options de boîte à outils peuvent être fournies à un utilisateur pour choisir un type de prétraitement pour l'image. Dans un mode de réalisation, le prétraitement peut être mis en œuvre en utilisant des techniques connues qui comprennent, sans toutefois y être limitées, diverses méthodes de filtrage d'image telles que le filtrage gaussien et le filtrage médian, le filtrage de Wiener, le filtrage bilatéral, la déconvolution de Wiener, la déconvolution basée sur la variation totale, l'égalisation d'histogramme adaptatif avec limitation de contraste et similaire. À l'étape 102, la binarisation d'image est effectuée. La binarisation d'image peut inclure la conversion des valeurs de pixels de l'image reçue soit en un (1) logique soit en zéro (0) logique. Ces valeurs peuvent être représentées par un seul bit ou par plus d'un bit, par exemple, comme des nombres entiers sans signe de 8 bits. Les pixels de l'image reçue peuvent est des pixels de niveaux de gris ou des pixels de couleur ou des pixels représentés dans une quelconque autre forme. Les valeurs peuvent être représentées par la couleur noire ou la couleur blanche correspondante. Dans un mode de réalisation, la binarisation peut être effectuée en utilisant une quelconque des techniques connues qui peuvent être largement classifiées en approches globales, approches par régions, approches locales, approches hybrides ou des variations de celles-ci. Dans un exemple de mise en oeuvre, la binarisation d'image est effectuée en utilisant la binarisation de Sauvola. Dans cette technique, la binarisation est effectuée sur la base de petits morceaux d'image. Lors de l'analyse des statistiques du morceau d'image local, un seuil de binarisation est déterminé en utilisant la formule suivante:
où m et s sont respectivement des écarts moyen et type locaux, R est la valeur maximale de l'écart type; et k est le paramètre contrôlant la valeur seuil. Le paramètre k peut être choisi en fonction de l'image de document. Dans un mode de réalisation, k peut être réglé manuellement. Dans un autre mode de réalisation, le paramètre k peut être réglé automatiquement en fonction des caractéristiques du texte de l'image de document. À l'étape 104, il est déterminé si l'image binarisée (dénommée ci-après image) comprend des photos. Si l'image ne comprend pas de photos, le processus passe à l'étape 108. Si l'image comprend une ou plusieurs photos, la ou les plusieurs photos sont séparées du texte, à l'étape 106. L'une quelconque de techniques connues telles que les méthodes d'analyse de page, les méthodes d'emplacement de texte, les méthodes d'apprentissage automatique et/ou similaires peuvent être utilisées pour séparer la ou les plusieurs photos du texte.
Les techniques basées sur les méthodes d'analyse de page peuvent être utilisées pour des images qui sont créées à partir de documents numérisés par balayage ou qui semblent sensiblement similaires à des images de document numérisées par balayage. Les techniques basées sur les méthodes d'emplacement de texte peuvent être utilisées pour des images ayant un arrière-plan complexe, comme par exemple ayant une photo à l'arrière-plan. Les techniques basées sur les méthodes d'apprentissage automatique peuvent être utilisées pour tout type d'images. Les techniques basées sur les méthodes d'apprentissage automatique peuvent requérir des échantillons d'entraînement pour l'apprentissage. Dans un exemple de mise en œuvre pour séparer la ou les multiples photos du texte, un arrière-plan de l'image de document est extrait. L'image de document est normalisée, en utilisant l'arrière-plan, pour compenser les effets d'une illustration inégale. Ensuite, les objets non-texte sont retirés de l'image binaire en utilisant le filtrage heuristique dans lequel les règles heuristiques sont basées sur l'aire, la taille relative, la proximité du cadre d'image, la densité, le contraste moyen, le contraste des bords et similaire. La figure 6A illustre un exemple d'image binarisée comprenant une photo ainsi que du texte. La figure 6B illustre l’image résultante après avoir éliminé la photo. À l'étape 108, l'analyse en composantes connexes est effectuée sur l'image binarisée comprenant uniquement de l'information textuelle. L'analyse en composantes connexes peut comporter l'identification et l'étiquetage de composants pixels connectés dans l'image binaire. Des blobs de pixels peuvent être identifiés pendant l'analyse en composantes connexes. Un blob de pixels peut être une région ayant un ensemble de composantes connexes dans lequel certaines propriétés, telles que la couleur, sont constantes ou varient dans une plage prédéterminée. Par exemple, le mot 'Hello' a cinq ensembles de composantes connexes différents, c'est-à-dire que chaque caractère du mot est un composante connexe ou un blob de pixels. Un pixel déterminateur de position est identifié pour chacun des blobs de pixels. Un pixel déterminateur de position définit une position du blob de pixels dans l'image binaire. Dans un mode de réalisation, le pixel déterminateur de position peut être un point propre. Le point propre peut être un pixel au centre de la ligne de base de blob de pixels dans le blob de pixels. Dans un autre mode de réalisation, le pixel déterminateur de position peut être un pixel à l'extrémité gauche ou l'extrémité droite de la ligne de base de blob de pixels dans le blob de pixels. D'autres modes de réalisation ayant le pixel déterminateur de position à d'autres emplacements dans le blob de pixels ou un rectangle englobant dessiné sur le blob de pixels sont envisagés dans le cadre de cette divulgation. La figure 7 A illustre un exemple de blob de pixels 702. La boite englobanteLa boite englobante 704 est formé autour de la composante connexe ou du blob de pixels 702. Sur la figure 7A, la composante connexe identifiée est le caractère ‘A’ 702. La boite englobante 704 a un point propre 706 qui peut être défini comme le centre du bas du rectangle englobant 704. Le point propre 706 peut être un des pixels déterminateurs de position utilisés dans le présent document. D'autres pixels déterminateurs de position peuvent aussi être utilisés dans la correction projective. Par exemple, les pixels déterminateurs de position 708 et 710 représentent le pixel déterminateur de position à l'extrémité gauche inférieure et le pixel déterminateur de position à l'extrémité gauche supérieure. Les pixels déterminateurs de position peuvent être utilisés pour estimer une ou plusieurs lignes de texte horizontales et/ou verticales dans l'image binarisée. Chaque ligne de texte représente une approximation d'une direction de texte horizontale ou verticale de partie texte associée. À l'étape 110, un point de fuite horizontal est déterminé. Dans un mode de réalisation, le point de fuite horizontal peut être déterminé en utilisant des lignes de base de texte déterminées en utilisant les pixels déterminateurs de position. Divers modes de réalisation pour déterminer le point de fuite horizontal sont décrits en rapport avec la fig. 2. À l'étape 112, un point de fuite vertical est déterminé. Dans un mode de réalisation, le point de fuite vertical est déterminé en utilisant des lignes de marge identifiées en utilisant les pixels déterminateurs de position. Dans un autre mode de réalisation, le point de fuite vertical peut être déterminé en utilisant des caractéristiques de trait vertical des composantes connexes. Dans encore un autre mode de réalisation, le point de fuite vertical est identifié en utilisant les lignes de marge et les caractéristiques de trait vertical. Divers modes de réalisation pour déterminer le point de fuite vertical sont décrits en rapport avec les fig. 3 et 4. À l'étape 114, la correction projective de l'image est effectuée en utilisant le point de fuite horizontal et le point de fuite vertical. La correction projective est effectuée sur la base de l'estimation de huit paramètres inconnus d'un modèle de transformation projective. Un modèle de transformation projective exemplaire est fourni ci-dessous
Dans un mode de réalisation, une matrice de transformation projective horizontale et une matrice de transformation projective verticale sont construites pour estimer des paramètres de modèle de transformation projective. La matrice de transformation projective horizontale et la matrice de transformation projective verticale sont construites en utilisant une équation fournie ci-dessous.
où (vx, vy) est le point de fuite, (w, h) est la largeur et hauteur de l'image de document,
La correction projective de l'image est effectuée en utilisant la matrice projective.
Dans un autre mode de réalisation, le point de fuite vertical et le point de fuite horizontal peuvent être utilisés pour identifier des coins de l'image distordue originale
et leurs emplacements correspondants dans l'image de document sans distorsion ou enregistrée
Un modèle de transformation projective peut être estimé sur la base des quatre paires de coins correspondants. Le modèle de transformation projective peut être estimé en utilisant une équation
Huit paramètres peuvent être obtenus en utilisant (4), après avoir identifié les quatre coins dans l'image corrigée par projection. Après avoir construit le modèle de transformation projective, une tendance générale de correction projective peut être générée et affichée pour être revue par l'utilisateur comme illustré sur la figure 8. L'utilisateur peut se voir fournir une option d'accepter la tendance générale ou des outils pour ajuster les quatre coins. Par exemple, comme illustré sur la figure 8, un élément d'interface utilisateur graphique 804 peut être fourni avec la possibilité pour l'utilisateur d'ajuster les coins. En réponse au changement dans les coins dû à l'intervention de l'utilisateur, le modèle de transformation projective peut être modifié et la correction projective correspondante peut être effectuée. En réponse à l'acceptation sans changement, la correction projective peut être effectuée. L'image résultante peut être présentée comme illustré dans l'élément 806 sur la figure 8. Une personne de métier se rendra compte que des options additionnelles appropriées peuvent aussi être fournies à l'utilisateur. Un exemple de résultat de correction projective est illustré sur les figures 9A et 9B. La figure 9A illustre une image capturée. La figure 9B illustre une image après correction projective. . La figure 2 discute un exemple de procédé 200 pour identifier le point de fuite horizontal, selon un mode de réalisation. À l'étape 202, les points propres peuvent être identifiés. Les points propres peuvent être identifiés par l'intermédiaire de l'analyse en composantes connexes de l'image. Les points propres sont définis pour tous les blobs de pixels. À l'étape 204, les points propres sont mis en grappe et groupés. Dans un mode de réalisation, les points propres peuvent être traités avant d'être mis en grappe. Le traitement de points propres peut comprendre l'élimination de points propres prêtant à confusion. Les points propres prêtant à confusion peuvent être des points propres qui sont soit au-dessus soit en dessous d'une ligne de base de texte. Les points propres prêtant à confusion peuvent provenir principalement de trois ensembles de caractères: le premier ensemble comprend des caractères qui peuvent être composés de deux blobs, le plus petit blob étant au-dessus de la ligne de base de texte, comme “j”, “i” et similaire; le deuxième ensemble comprend des caractères qui s'étendent en dessous des lignes de base de texte quand ils ont imprimés, comme “p”, “q” et “g”; et le troisième comprend des caractères comme virgule (,), tiret (-) et similaire. Les points propres prêtant à confusion associés au premier et au troisième ensemble de caractères peuvent être identifiés sur la base de la taille des blobs de pixels. La taille des blobs de pixels associés au premier ensemble et au troisième ensemble de caractères peut être nettement plus petite, soit horizontalement soit verticalement, par comparaison avec d'autres caractères. Donc, les points propres prêtant à confusion peuvent être identifiés en comparant la taille des blobs de pixels avec les valeurs moyennes pour tous les blobs de pixels. Dans un exemple de mise en œuvre, la largeur et la hauteur de tous les blobs de pixels sont calculées. En outre, des valeurs moyennes pour la largeur (mw) et la hauteur (mh) de tous les blobs de pixels sont calculées. Des points propres appartenant aux blobs de pixels dont la largeur et/ou la hauteur s'écarte desdites valeurs moyennes calculées dans une mesure prédéterminée sont marqués comme points propres prêtant à confusion. Dans un exemple d'occurrence, les points propres prêtant à confusion ayant une largeur au-delà de la plage de [0,3, 5]*mw et/ou une hauteur au-delà de la plage de [0,3, 5]*mh sont identifiés comme les points propres prêtant à confusion. Des tels points propres prêtant à confusion peuvent être éliminés sans autre traitement.
Les points propres restants sont classifiés et mis en grappe dans différents groupes de points propres de manière que chaque groupe de points propres comprenne des points propres de la même ligne de texte. Un exemple d'algorithme de mise en grappe de points propres est décrit sur la fig. 3. L'algorithme de mise en grappe de points propres est basé sur l'hypothèse que des points propres du même groupe remplissent typiquement une ou plusieurs des conditions suivantes: (1) ces points propres sont proches les uns des autres; (2) ces points propres forment une ligne pratiquement droite; et (3) la direction de la ligne construite est proche de la direction horizontale. Dans un mode de réalisation, ces conditions sont traduites en contraintes respectives dans l'algorithme de mise en grappe de points propres de manière qu'un point propre soit attribué à un groupe de points propres spécifique si au moins un des conditions suivantes est satisfaite: une distance de point à point entre ce point propre et les autres points propres du groupe est inférieure à un premier seuil de distance Td; une distance de point à ligne entre ce point propre et une ligne formée par les points propres du groupe est inférieure à un deuxième seuil de distance 7}; et un angle de la ligne formée par les points propres du groupe par rapport à l'horizontale est inférieur à un angle maximum Ta. En outre, pour rendre l'algorithme de mise en grappe des points propres plus robuste, une contrainte additionnelle peut être ajoutée de manière que le groupe de points propres comprenne au moins un nombre minimum de points propres Tm.
Dans un mode de réalisation, les contraintes de l'algorithme de mise en grappe de points propres, c'est-à-dire le seuil de distance de point à point Td, le seuil de distance de point à ligne Th le seuil d'angle maximum par rapport à l'horizontale Ta et le nombre minimum de points propres Tm dans un groupe de points propres, peuvent être réglées de manière adaptative sur la base d'une analyse de l'image, par exemple l'analyse des images de document de la caméra. Dans une variante de réalisation, les paramètres peuvent être réglés manuellement. Le Ta par rapport à la direction horizontale peut être décalé d'environ 20 degrés; Tm peut être d'environ 10 en supposant qu'il y a au moins 2 ou 3 mots dans le texte. Il doit être entendu que d'autres valeurs peuvent être sélectionnées pour Ta et Tm. Les valeurs de Td et T, peuvent dépendre de la teneur du texte dans l’image de document. Par exemple, si la taille de caractère est grande Td alors T peut être gardé plus grand et vice-versa. Dans une mode de réalisation, Td et 7) peuvent être calculés de manière adaptative comme suit. Une distance médiane Dc basée sur toutes les distances les plus courtes entre caractères voisins dans un mot est calculée. T, peut être réglé sur Dc et Td peut être réglé pour être 3* Dc. Ces valeurs sont choisies de manière que Td soit suffisamment grand pour chercher des lettres et mots voisins dans le même paragraphe, tout en évitant que des mots appartenant à des paragraphes voisins dans la direction horizontale soient considérés comme étant dans le même groupe de points propres. Le fait de régler Td assez grand pour chercher des lettres et mots voisins dans le même paragraphe permettrait l'identification de la ligne de marge de paragraphe entre le paragraphe et le paragraphe horizontal voisin. Dans certains exemples d’occurrence, l'espace entre les mots dans une seule ligne peut causer une surclassification de points propres dans une ligne dans plus d'un groupe de points propres. La surclassification peut être due à certains petites ou grandes composantes connexes qui peuvent avoir été éliminés pendant la procédure d’élimination de points propres provoquant un grand écart entre les mots. À l'étape 206, les groupes de points propres surclassifiés sont consolidés en fusionnant en groupes correspondants. Un algorithme exemplaire de fusion de points propres peut être décrit comme suit. Pour chaque groupe de points propres {C,} (n>=i>=1), les points propres finaux gauche et droite /,· et η (n>=i>=1 ) peuvent être respectivement identifiés. Le blob de pixels qui peut correspondre au point propre le plus à droite du groupe de points propres est identifié. Les blobs de pixels de droite voisins du point propre le plus à droite sont cherchés parmi les blobs de pixels éliminés (par exemple, des blobs de pixels correspondant aux points propres prêtant à confusion). En réponse à l'identification du blob de droite voisin, le blob de droite voisin peut être établi comme étant le nouveau point final droit r„ L'étape de recherche d'un autre blob de pixels de droite voisin du nouveau point final droit comme décrit dans l'étape précédente peut être répétée jusqu'à ce qu'aucun autre blob de droite voisin ne soit trouvé. En réponse à l'absence de blob de droite voisin, la coordonnée de point propre du blob en tant que r_new, est enregistrée. Avec une nouvelle matrice de points finaux droits r_newt (n>=i>=1), un index de recherche k est initialisé sur zéro (0). L'index de recherche peut être augmenté de 1 : k=k+1, et la distance entre lk et rjrtew, (n>=i>=1) peut être calculée. Les groupes de points propres correspondant à la paire de points k et r_new-t ({Ck} et {C/}) peuvent être fusionnés s'ils satisfont au moins à une des conditions suivantes: la distance entre les groupes de points propres est dans les limites d'une distance prédéterminée (dans un exemple de mise en œuvre, la distance peut être inférieure à 0,5* (7c/)); et les lignes correspondant aux groupes de points propres sont proches les unes des autres (par exemple, la distance des lignes est inférieure à (7))). Si les groupes de points propres sont fusionnés, le nombre de groupes de points propres peut être réduit de un: n=n-1. Un contrôle peut être effectué pour déterminer si l'index de recherche est égal au nombre de groupes de points (k==n). Si l'index de recherche n'est pas égal, alors l'index de recherche est augmenté, et les étapes précédentes de calcul de la distance, de la fusion des groupes de points propres sont effectuées si elles remplissent la condition définie susmentionnée. La figure 10A illustre un exemple d'image avant classification de points propres. La figure 10A illustre des points propres pour les blobs de pixels au niveau de la ligne de base de texte. La figure 10B illustre un exemple d'image après classification de points propres en groupes. La figure illustre une image ayant des groupes dans chacune des lignes de texte. Par exemple, la première ligne de texte illustre un groupe de points propres 1002. La deuxième ligne de texte illustrée dans l'image montre des groupes de points propres surclassifiés 1004 et 1006. On peut voir les groupes surclassifiés 1004 et 1006 (deux groupes) dans la deuxième ligne du texte de la figure 10B (indiqués par des symboles carrés et ronds pour des groupes de points propres correspondants). La figure 10C illustre un exemple d'image ayant des groupes de points propres consolidés. Les groupes surclassifiés 1004 et 1006 de la deuxième ligne tels qu'illustrés sur la figure 10B sont consolidés en un groupe de points propres 1008 (indiqué par des marques plus). À l'étape 208, des lignes de base de texte sont estimées en utilisant les points propres groupés résultants après les étapes de mise en grappe et de fusion. Dans un mode de réalisation, les lignes de base de texte sont estimées en utilisant une méthode (dénommée ci-après estimation de ligne a priori) basée sur l'estimation de ligne pondérée adaptative. L'estimation de ligne a priori peut attribuer des facteurs de pondération à chacun des points propres impliqués dans l'estimation de ligne. Considérons un scénario où n points propres: p1, p2, ... pn sont utilisés pour l'estimation de ligne ax+by+c=0 (ou y=kx+t). Un facteur de pondération w1, w2, ... wn peut être attribué à chacun des points propres. Dans ce cas, l'estimation de ligne peut être considérée comme équivalant à un problème de minimisation qui est défini par:
Le minimum de la somme des carrés dans l'équation [5] peut être trouvé en réglant le gradient sur zéro. Étant donné que le modèle contient deux (2) paramètres, il y a deux (2) équations de gradient. La minimisation de l'équation ci-dessus peut être effectuée en utilisant les exemples de pseudo-codes suivants: function line = weighted_least_squre_for_line(x,y,weighting); parti = sum(weighting.*x.*y)*sum(weighting(:)); part2 = sum((weighting.*x))*sum((weighting.*y)); part3 = sum( x.A2.*weighting)*sum(weighting(:)); part4 = sum(weighting.*x).A2; beta = (parti-part2)/(part3-part4); alpha = (sum(weighting. *y)-beta*sum(weighting.*x))/sum(weighting); a = beta; c = alpha; b = -1; line =[ab c];
Un facteur de pondération peut être attribué à chaque point propre en utilisant une fonction de pondération:
où disi est défini comme la distance entre le point propre et une ligne de base escomptée. Donc, un facteur de pondération plus élevé peut être attribué au point propre, si le point propre est lus proche de la ligne de base de texte escomptée et vice-versa. Une procédure itérative peut être utilisée pour approcher de plus près la ligne de base de texte escomptée. Dans un exemple de mise en œuvre, les itérations peuvent être effectuées pour un nombre prédéterminé de cycles (par exemple, environ 10-70 cycles) ou jusqu'à ce que la différence entre deux angles de ligne successifs soit inférieure à un petit seuil (par exemple, environ 0,01 degré).
Les lignes estimées peuvent en outre être affinées en éliminant des outliers (données aberrantes) dans le groupe de points propres. Les outliers peuvent être identifiés, par exemple, en utilisant un modèle gaussien. Selon le modèle gaussien, la plupart des points propres (par exemple, environ 99,7 %) peuvent être situés dans les limites de trois écarts types. Par conséquent, si un point propre est situé au-delà des trois écarts types, le point propre peut être considéré comme un outlier. Les points propres restants dans le groupe de points peuvent alors être utilisés pour l'estimation de ligne avec la méthode conventionnelle des moindres carrés. L'estimation de ligne a priori susmentionnée peut alors être effectuée pour tous les groupes de points propres. La figure 11 illustre un exemple de partie de texte pour laquelle les lignes de base sont estimées. On peut voir que les groupes de points propres sont illustrés comme étant connectés à une ligne. Un exemple de ligne est mis en évidence dans 1102. À l'étape 210, le point de fuite horizontal peut être identifié en utilisant les lignes de base de texte estimées. Selon la théorie des coordonnées homogènes, chaque ligne horizontale dans le système de coordonnées cartésiennes peut être considérée comme un point de données dans l'espace homogène et une ligne qui passe par ces points de données correspond à un point de fuite. Donc, l'identification du point de fuite horizontal peut être considérée comme un problème d'ajustement de ligne dans le système de coordonnées homogènes.
Bien que les lignes de base de texte estimées soient soigneusement estimées, certaines lignes de base de texte peuvent contribuer aux outliers du point de vue de l'estimation du point de fuite. Certains points de données d'outlier peuvent être éliminés pour améliorer l'estimation du point de fuite horizontal. Les outliers peuvent être obtenus en raison de l'estimation imprécise de ligne, de composants non texte (par exemple, dans les cas où la séparation du texte et des photos échoue), de distorsions et similaire. Pour surmonter ce problème, selon un mode de réalisation, une méthode basée sur l'algorithme RANSAC (Random Sample Consensus) telle que est décrite dans Martin A. Fischler and Robert C. Bolles "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography". Comm. of the ACM 24 (6): 381-395, June 1981, est utilisée pour l'identification du point de fuite horizontal. L'algorithme basé sur RANSAC est sélectionné en raison de sa robustesse à éliminer les outliers lors de l'estimation de paramètres de modèle. L'algorithme proposé basé sur RANSAC diffère de l'algorithme RANSAC conventionnel en ce sens que des points de données initiaux sont sélectionnés pour l'estimation de paramètres de modèle et que des niveaux de confiance peuvent être pris de concert avec ceux-ci. Contrairement à la sélection aléatoire des points de données initiaux dans l'algorithme RANSAC conventionnel, l'algorithme proposé basé sur RANSAC sélectionne des échantillons initiaux qui ont la plus grande confiance.
Un exemple de mise en oeuvre de l'algorithme proposé basé sur RANSAC sera à présent décrit ci-dessous.
Dans un mode de réalisation, chacune des lignes de base de texte estimées peut être définie dans un système de coordonnées cartésiennes. Chacune des lignes de base de texte définies dans le système de coordonnées cartésiennes peut être transformée en un point de données dans un système de coordonnées homogènes.
Des niveaux de confiance peuvent être attribués à chacun des points de données. Les niveaux de confiance pour les points de données peuvent être déterminés en se basant sur la proximité des points propres utilisés pour estimer la ligne de base de texte de la ligne de base de texte résultante et la longueur de la ligne de base de texte concerné. Le niveau de confiance pour chaque ligne de base de texte horizontale peut être défini comme:
où smax et smin représentent l'écart type maximum et minimum de tous les segments de n lignes; lmax représente le plus long segment de ligne parmi toutes les n lignes. Donc, un niveau de confiance plus élevé est attribué à une plus longue ligne de base de texte horizontale. Ce qui se base sur la supposition que plus longue est la ligne de base de texte, meilleure est l'estimation de la ligne de base de texte horizontale. De manière similaire, plus faible est l'écart type (indicateur de la proximité des points propres de la ligne de base de texte estimée correspondante), meilleure est l'estimation de la ligne de base de texte. En conséquence, des niveaux de confiance élevés sont attribués à de telles lignes de base de texte. Les points de données dans les points échantillons ayant des niveaux de confiance au-dessus d'un seuil prédéterminé peuvent être groupés dans une matrice d'échantillons prioritaire. Les points de données dans la matrice d'échantillons prioritaire peuvent être mis en grappe dans un nombre de groupes échantillons. Dans un mode de réalisation, chaque groupe échantillon peut comprendre deux ou plus de deux points de données. Pour l'estimation de lignes, l'exactitude peut aussi être déterminée par la distance des points de données qui sont utilisés pour estimer la ligne. Si deux points de données sont éloignés l'un de l'autre, alors il y a une plus grande confiance que l'estimation de ligne soit correcte. Par conséquent, un deuxième indicateur de niveau de confiance peut être attribué à la paire de points dans le groupe échantillon;
où DiSj,k est la distance entre la ligne j et la ligne k dans la direction verticale et Dismaxest la distance maximale parmi les m* (m-1) paires de lignes. Une sélection de m (m«n) lignes peut être prise en considération pour formuler les groupes échantillons prioritaires pour sélectionner les premières m lignes qui ont les meilleurs niveaux de confiance. Une valeur de confiance de groupe peut être attribuée à chaque groupe échantillon sur la base au moins du niveau de confiance attribué à chaque point de données dans le groupe échantillon. À l'étape A, les groupes échantillons de points de données peuvent être sélectionnés itérativement dans la matrice d'échantillons prioritaire pour l'ajustement de ligne. L'itération peut commencer avec le groupe échantillon ayant la valeur de confiance la plus élevée dans la matrice d'échantillons prioritaire. (Si le temps d'itération dépasse un certain seuil, alors elle peut être stoppée et l'algorithme passe à l'étape F). À l'étape B, l'ajustement de ligne peut être effectué pour le premier groupe échantillon avec pour résultat une première ligne ajustée et ensuite l’ajustement de ligne peut être effectué pour chaque autre groupe échantillon avec pour résultat d'autres lignes ajustées. À l'étape C, un ensemble de points de données qui sont positionnés en dessous d'un seuil de distance prédéterminé à partir de la première ligne ajustée peut être déterminé sur la base de la première et des autres lignes ajustées. Ces points de données sont appelés "inliers" (données valides). Le seuil de distance prédéterminé à partir de la première ligne ajustée peut être un paramètre fixe ou peut être réglé de manière adaptative sur la base du contenu de l'image de document. À l'étape D, le compte des points de données qui sont positionnés en dessous d'un seuil de distance prédéterminé à partir de la première ligne ajustée est calculé. Le nombre maximum d'inliers déterminé est enregistré. À l’étape E, un contrôle peut être effectué pour déterminer si le nombre maximum d’inliers est égal au nombre de points de données. Si le nombre maximum d'inliers n'est pas égal au nombre de points de données, le temps d'itération peut être recalculé et l'étape A peut être relancée. Si le nombre maximum d'inliers est égal au nombre de points de données, l'étape F peut être lancée. À l’étape F, le maximum d'inliers peut être utilisé pour estimer les points de fuite. Dans un mode de réalisation, un premier et un deuxième candidat point de fuite horizontal peuvent être estimés en utilisant différentes méthodes d'approximation choisies dans le groupe consistant en une méthode des moindres carrés, une méthode des moindres carrés pondérés et une méthode des moindres carrés adaptatifs. L'utilisation d’autres méthodes d'approximation est également envisagée dans le présent document. À l'étape G, le candidat point de fuite horizontal qui est le plus proche de la direction de texte horizontale dans le document image après correction projective peut être sélectionné. La proximité de la direction de texte horizontale peut être mesurée par:
où n est le nombre de lignes horizontales dans l'image de document, ai est défini comme étant l'angle de la /ième ligne par rapport à la direction horizontale (180°>a; â0°) après que la correction projective a été effectuée, et p est l'indice du pième point de fuite horizontal candidat sélectionné parmi les m points de fuite candidats. L'algorithme RANSAC conventionnel utilise de manière aléatoire les points sélectionnés pour l'estimation de ligne initiale. En conséquence, il peut y avoir des résultats différents chaque fois que l'algorithme RANSAC conventionnel est exécuté. De plus, il peut être difficile de juger les résultats de l'algorithme RANSAC conventionnel. L'algorithme proposé basé sur RANSAC remédie à ce problème en incorporant une certaine connaissance a priori à propos de ces points. Dans l'algorithme proposé basé sur RANSAC, des points qui ont de bons niveaux de confiance sont sélectionnés en premier pour estimer les inliers. En conséquence, l'algorithme proposé basé sur RANSAC fournit des résultats plus cohérents.
Bien que la divulgation décrive l'utilisation de points propres pour la détermination de points de fuite horizontaux, il faut savoir que d'autres pixels déterminateurs de position du blob de pixels peuvent aussi être utilisés pour la détermination de points de fuite horizontaux.
La figure 3 décrit un exemple d'algorithme de mise en grappe de points propres 300, selon un mode de réalisation. À l'étape 302, un ensemble de points propres 7” peut être identifié. À l'étape 304, les points propres peuvent être comptés pour déterminer si le nombre est suffisant pour créer un groupe de points propres. Si le nombre est supérieur à suffisant (au moins au-dessus d'un nombre seuil (TM)), l'ensemble de points propres 7” peut être traité. Le nombre seuil peut être établi comme une contrainte pour la création du groupe de points propres. Si le nombre de points propres est inférieur à un seuil, alors l'étape 324 peut être effectuée. Dans un exemple de mise en œuvre, le nombre seuil de points propres peut être 10 suggérant la présence d'au moins 2 ou 3 mots dans une seule ligne. Le seuil peut être établi pour empêcher une possibilité d'attribuer des points propres sans aucun rapport au groupe de points propres. À l'étape 306, un point propre (par exemple, p0) est sélectionné de manière aléatoire dans ('ensemble de points propres /. Le point propre p0 peut être entré comme un premier point propre dans un groupe de lignes candidat ‘C’. Dans un mode de réalisation, le groupe de lignes candidat C peut être une file bidirectionnelle. Ensuite, le point propre p0 est éliminé de l'ensemble de points propres /. Les points propres provenant d'un côté du p0 sont entrés dans le groupe de lignes candidat C. À l'étape 308, le point propre nouvellement joint p, en provenance du groupe de points propres C est sélectionné d'un côté de la file bidirectionnelle (par exemple, la file dans la direction non négative i>=0). Un point propre p* de l’ensemble de points propres / qui est le plus proche du point propre pi est identifié. À l’étape 310, la distance entre le point propre p, et p* est calculée. Si la distance est inférieure à la distance seuil (Td), l’étape 312 est effectuée. Si la distance est supérieure à la distance seuil (Td), l’étape 314 est effectuée. La distance seuil peut se référer à une distance maximale entre les points propres qui seront dans un groupe. Dans un exemple de mise en œuvre, la distance seuil entre les points propres du groupe est inférieure à un premier seuil de distance qui peut être égal à 3 fois la distance médiane de l'ensemble le plus proche de points propres voisins. À l'étape 312, il est déterminé si le point propre p* sélectionné satisfait aux contraintes imposées par le seuil de distance de point à ligne {Ti) et la proximité du seuil de direction horizontale (Ta). Le seuil de distance de point à ligne (7)) peut définir le seuil de distance maximale du point par rapport à la ligne de base de texte pour un point propre à sélectionner pour le groupe de points propres. Le seuil de distance de point à ligne (T,) est utilisé pour sélectionner les points propres qui contribuent à formuler une ligne droite. La proximité du seuil de direction horizontale (Ta) peut définir l'angle maximum du point propre de la ligne par rapport à la direction horizontale pour le point propre à sélectionner pour le groupe de points propres. La proximité du seuil de direction horizontale (Ta) est utilisée pour sélectionner les points propres qui contribuent à la formulation de la direction de la ligne proche d'une direction horizontale. Dans un exemple de mise en œuvre, le Ta peut être de vingt (20) degrés. En réponse à la détermination que le point propre p* sélectionné satisfait aux contraintes, le point propre p* peut être sélectionné pour le groupe de lignes candidat C comme le point pM dans la file bidirectionnelle (dans la direction non négative) et i=i+1 entre-temps. En réponse à la détermination que le point propre p* sélectionné ne satisfait pas aux contraintes, il peut être placé dans un groupe de lignes spécial “L”.
Les étapes du processus 308 à 312 sont effectuées jusqu'à ce que tous les points propres provenant dudit un côté (la direction non négative dans la file bidirectionnelle) soient évalués. En réponse à l'achèvement de l'évaluation dudit un côté des points propres, les points propres restants provenant de l’autre côté du po sont pris en considération (la direction non positive de la file bidirectionnelle). Les points propres restants provenant de l'autre côté du p0 sont entrés dans le groupe de lignes candidat C. À l'étape 314, un point propre pj (la direction non positive de la file bidirectionnelle, j<=0) du groupe de lignes candidat C est sélectionné en provenance d'un autre côté. Un point propre p* provenant de l'ensemble de points propres /, qui est le plus proche du point propre ps provenant de l'autre côté dans le groupe de points propres C est identifié. À l'étape 316, la distance entre les points propres p, et p est calculée. Si la distance est inférieure à Td, l'étape 618 est effectuée. Si la distance est supérieure à Td, l’étape 320 est effectuée. À l'étape 318, le point propre pj est contrôlé pour déterminer si le point propre p* sélectionné satisfait aux contraintes par rapport à T, et Ta. En réponse à la détermination que le point propre pj sélectionné satisfait aux contraintes, le point propre p* peut être sélectionné pour le groupe de lignes candidat C comme le point pj-1 dans la file bidirectionnelle (dans la direction non positive) et j=j-1 entre-temps. En réponse à la détermination que le point propre ne satisfait pas aux contraintes, le point propre p} peut être placé dans un groupe de lignes spécial “L”.
Les étapes du processus 316 à 318 sont effectuées jusqu'à ce que tous les points propres provenant de l'autre côté soient évalués. À l'étape 320, les points propres dans le groupe de lignes candidat C peuvent être comptés pour déterminer si le nombre est supérieur à un nombre seuil Tm. Si le nombre est supérieur à Tm, l'étape 322 est effectuée. Si le nombre est inférieur Tm, le processus est renvoyé à l'étape 304 pour déterminer s'il y a d'autres points propres à traiter. À l'étape 322, un numéro d'index est attribué au groupe de lignes candidat C de sorte que le groupe de lignes candidat C devient une matrice de points propres pour une ligne indexée par le numéro d'index. À l'étape 324, pour chaque point propre dans le groupe de lignes spécial L, il est contrôlé si le point propre est dans les limites des contraintes de Tm, T) et
Ta pour un quelconque des groupes de lignes. En réponse à la détermination que le point propre est dans les limites des contraintes Tm, T-, et Ta, le point propre est fondu dans le groupe de lignes correspondant.
Le processus est répété pour chaque ligne de base de texte jusqu'à ce que toutes les lignes dans l'image de document soient traitées.
Un avantage de l'algorithme de mise en grappe de points propres tel que décrit dans le présent document est qu'il donne des résultats de mise en grappe cohérents quels que soit les points initiaux pour la mise en grappe. L'utilisation de la file bidirectionnelle permet l'usage de deux points finaux sur une ligne au lieu d'un point final dans une direction, réduisant ainsi la dépendance de l'algorithme vis-à-vis du point d'ensemencement pour formuler le groupe de points. L'algorithme de mise en grappe de points propres est flexible en ce sens que l'algorithme ne requiert pas que chaque point propre doive appartenir à l'un des groupes de points. Certains points propres qui ne rentrent dans aucun des groupes sont éliminés ou ignorés. Ce qui a pour résultat une convergence plus facile et rapide de l'algorithme proposé de mise en grappe de points propres que les algorithmes de mise en grappe conventionnels. Néanmoins, l'utilisation d'algorithmes conventionnels ou de tout autre algorithme de mise en grappe pour mettre en grappe les points propres dans différents groupes de lignes est également envisagée dans le présent document.
La figure 4 décrit un exemple d'organigramme 400 pour identifier le point de fuite vertical en utilisant des points caractéristiques de marge, selon un mode de réalisation. À l'étape 402, les points caractéristiques de marge peuvent être identifiés. Les points caractéristiques de marge peuvent être des pixels déterminateurs de position, selon un mode de réalisation. Les points caractéristiques de marge peuvent être identifiés comme décrit ci-dessous. Dans un mode de réalisation, les points caractéristiques de marge peuvent être un pixel final inférieur gauche des blobs de pixels pour la marge de gauche, et les points caractéristiques de marge peuvent être un pixel final inférieur droit du blob de pixels pour la marge de droite. Les points finaux inférieurs gauches peuvent être identifiés en trouvant un blob associé au point propre gauche dans des groupes de points propres (par exemple identifié pendant l'estimation de lignes horizontales). Les groupes de points propres déterminés après l'étape de fusion de points propres et avant l'usage des groupes de points pour des formulations de lignes horizontales peuvent être utilisés pour la détermination de points de marge. La raison étant qu'après la fusion de points propres, le point propre gauche ou droit peut correspondre au bloc de formation de marge. De plus, aucun point propre ne peut avoir été éliminé juste avant la formulation de lignes. Le point propre gauche peut être trouvé après comparaison de la coordonnée x des points propres dans le groupe. Le blob correspondant du point propre gauche peut être trouvé. Le point final inférieur gauche du blob peut être utilisé comme point caractéristique de marge de gauche. De manière similaire au point final inférieur gauche, des points finaux inférieurs droits peuvent être identifiés en trouvant un blob associé au point propre droit dans des groupes de points propres. Après avoir identifié le blob sur l'extrémité droite du groupe de points propres, on peut déterminer s’il y a des blobs voisins près du blob final droit identifié. Une recherche de blobs est alors effectuée en utilisant un processus similaire au processus utilisé dans l'algorithme de recherche de blobs voisins dans la procédure de fusion de points propres. Les points finaux inférieurs droits correspondant aux blobs trouvés sont alors utilisés pour formuler les points caractéristiques pour l'estimation de ligne de marge de droite. Dans des variantes de réalisation, d'autres variations des points caractéristiques de marge peuvent être utilisées. La figure 12 illustre un exemple d'image avec des points caractéristiques de marge identifiés au niveau de la marge. On peut voir que les points caractéristiques de marge sont marqués par des points au niveau de la marge comme illustré dans 1202. Les marges de paragraphe sont généralement verticales et parallèles, si aucune distorsion projective ne survient. À l’étape 404, des caractéristiques de point de marge sont mises en grappe dans différents groupes de marge. Les points caractéristiques de marge le long des lignes de marge du document dans l'image peuvent être utilisés pour estimer les marges. Dans un mode de réalisation, les points caractéristiques de marge peuvent être mis en grappe sur la base de la proximité des blobs de pixels dans les marges correspondantes. Dans un exemple de réalisation, un algorithme de mise en grappe similaire à l'algorithme de mise en grappe de points propres décrit en rapport avec la fig. 3 peut être utilisé pour mettre en grappe les points caractéristiques de marge. Dans une variante de réalisation, un algorithme différent de mise en grappe de points finaux peut être utilisé comme décrit ci-dessous. Étape 1: Régler le seuil de distance de caractéristique de point de marge TEndm, et tous les points de marge de gauche identifiés (à l'étape 402) sont indiqués comme {P,}; Étape 2: Initialiser le groupe de points de marge de gauche {CJ avec un point sélectionné de manière aléatoire dans {Pt}, éliminer ce point de {PJ, établir groupjndex = 1 ; Étape 3: Pour chaque point {P,}, calculer la distance minimum entre ce point et les points dans {Q (groupjndex âi>1). Si la distance est inférieure à TEndm, alors ce point sera attribué au groupe de points qui atteint la distance minimum; sinon l'index de groupe sera augmenté de 1: groupjndex = groupjndex +1, et ce point sera attribué au groupe de point de marge de gauche le plus récent: {Cgroupjndex}. TEndthQst réglé pour être égal à 6*(7ί#) ((Td) est la distance médiane entre points propres comme discuté précédemment en rapport avec la fig. 2), et cette valeur peut être sélectionnée de manière à être suffisante pour rechercher les caractéristiques de points de marge voisins qui devraient être dans la même ligne de marge. Le procédé de mise en grappe de points finaux gauches peut être différent du procédé de mise en grappe de points propres pour l'estimation de lignes horizontales, étant donné que le procédé de mise en grappe de points finaux gauches peut utiliser tous les points de marge, tandis que dans l’algorithme de mise en grappe de points propres, certains points propres peuvent être éliminés pendant le processus de mise en grappe.
Dans de variantes de réalisation, d'autres algorithmes de mise en grappe peuvent aussi être utilisés. Les pixels déterminateurs de position mis en grappe identifiés au niveau des marges peuvent être traités dans différents groupes de points de marge. Par exemple, s'il y a deux colonnes dans une image de document, les pixels déterminateurs de position pour les marges de gauche et les marges de droite des deux colonnes sont identifiés et groupés de manière correspondante. À l'étape 406, des lignes de marge surclassifiées peuvent être consolidées avec des lignes de marge correspondantes. Par exemple, deux ou plus de deux lignes le long de la même marge peuvent être consolidées en une seule marge. À l'étape 408, l'estimation de lignes verticales peut être effectuée en utilisant les groupes de points de marge. De manière similaire à l'algorithme de mise en grappe de points propres, tous les groupes de points de marge ne peuvent pas être utilisés pour l'estimation de lignes verticales. Il se peut que le pixel caractéristique de marge pour le groupe doive satisfaire à une ou plusieurs des conditions suivantes pour se qualifier pour l'estimation de lignes de marge: Un nombre minimum de points dans la ligne de marge Pth (par exemple, le seuil pour Pm peut être 3 points propres), un pourcentage minimum de points Pt sur la ligne de marge (par exemple, environ 50 %), un angle maximum d'une ligne par rapport à la direction verticale av (par exemple, l'angle maximum peut être d’environ 20°) et le niveau de confiance minimum Pb pour des points n'appartenant pas au bord (par exemple, le minimum pour les points n’appartenant pas au bord peut être d'environ 50 %).
La caractéristique des points de marge (qui contribue à Pth) peut être considérée comme étant dans la ligne de marge, si la distance entre le point déterminateur de pixel et la ligne de marge se situe dans les limites d'un seuil (Tl), qui est égal à la distance médiane des points propres (Td) dans un exemple de mise en œuvre. Le pourcentage de points sur la ligne de marge P, peut être défini comme le rapport entre le nombre de points propres dans la ligne de marge et le nombre de caractéristiques de point de marge dans le groupe de points propres mis en grappe. Dans certains modes de réalisation, il peut y avoir des points déterminateurs de pixel qui sont hors de portée. Par exemple, quand le contenu du document est capturé en partie, le bord de l'image peut avoir du contenu qui est à moitié capturé. Des points déterminateurs de pixel associés à de tels blobs au niveau des bords peuvent être définis comme points de bord. Les points de bord ne peuvent pas être utilisés dans l'estimation de ligne de marge, et le pourcentage de points n'appartenant pas au bord peut être défini comme le rapport entre le nombre de points n’appartenant pas au bord et le nombre de caractéristiques de point de marge dans le groupe de caractéristiques de points de marge mises en grappe. Le niveau de confiance minimum de points n'appartenant pas au bord Pb est défini comme la multiplication du pourcentage de points sur la ligne de marge et le pourcentage de points n'appartenant pas au bord.
Dans un mode de réalisation, l’estimation de lignes verticales peut être effectuée en utilisant la méthode des moindres carrés à déviation perpendiculaire, bien que des méthodes alternatives soient également envisagées ici. Supposons qu'une ligne potentielle presque verticale soit exprimée comme y = kx+t. Avec la méthode des moindres carrés à déviation perpendiculaire, les coefficients de ligne optimale correspondent à la fonction de minimisation d'objet suivante:
Basée sur la méthode des moindres carrés à déviation perpendiculaire, une robuste méthode itérative pour l'estimation de lignes presque verticales telle que décrite ci-dessous peut être employée selon un mode de réalisation. À l'étape 1, une ligne est initialisée en utilisant la méthode d'estimation de ligne à déviation perpendiculaire. À l'étape 2, la distance à partir de points échantillons est calculée. À l'étape 3, la fonction de ligne peut être recalculée en se basant sur la méthode à déviation perpendiculaire pondérée. À l'étape 4, la différence d'angle entre les lignes successives estimées peut être calculée. Si la différence d'angle est inférieure à un seuil prédéfini ou si le compte d'itérations dépasse les itérations maximales admissibles, la méthode passe à l'étape 5. Si la différence d'angle est supérieure au seuil prédéfini ou si le compte d'itérations se situe dans les limites des itérations maximales admissibles, l'itération suivante est effectuée en passant à l'étape 2. À l'étape 5, la fonction de ligne est calculée. Le seuil prédéfini et le temps d'itérations maximales admissibles sont les mêmes valeurs que les paramètres respectifs dans la méthode d'estimation de lignes horizontales, selon un mode de réalisation. En variante, des valeurs différentes sont utilisées pour le seuil prédéfini et les itérations maximales admissibles pour l'estimation de lignes verticales de celles utilisées pour l'estimation de lignes horizontales. La méthode à déviation perpendiculaire pondérée peut être mise en œuvre en utilisant les exemples de pseudo codes suivants: function line = estimatejine_ver_weighted(pt_x, pt_y,w); % pt_x x coordinate % pt_y y coordinate % w weighting factor pt_x = pt_x(:); pt_y = pt_y(0; w = w(:); % step 1: calculate n η = sum(w(:)); % step 2: calculate weighted Coordinates y_square = pt_y(:).*pt_y(:); x__square = pt_x(:). *pt_x(:); x_square_weighted = x_square. *w; y_square_weighted = y_square. *w; x_weighted = pt_x. *w; y_weighted = pt_y. *w; % step 3: calculate the formula B_upleft = sum(y_square_weighted)-sum(y_weighted).A2/n; B_upright = sum(x_square_weighted)-sum(x_weighted).A2/n; B_down = sum(x_weighted(:)) *sum(y_weighted(:))/n-sum(x_weighted. *pt_y); B = 0.5*(B_upleft-B_upright)/B_down; % step 4: calculate b If B<0 b = -B+sqrt(B.A2+1); else b = -B-sqrt(B.A2+1); end % Step 5: calculate a a = (sum(y_weighted)-b*sum(x_weighted))/n; % Step 6: the modelisy = a+ bx, andnow we transform the model to % a*x + b*y + c = 0; c_ = a; a_ = b; b_ = -1;
Dans un autre mode de réalisation, l'estimation de lignes verticales peut être effectuée en utilisant une méthode des moindres carrés pondérés à x-y changeables. Dans la méthode des moindres carrés à x-y changeables, la coordonnée de x et y peut être échangée avant estimation de la ligne verticale de sorte que le décalage vertical sera contraint pendant l'estimation de lignes verticales.
Une fois que les lignes verticales sont estimées, les lignes verticales peuvent être fusionnées. Par exemple, des multiples lignes de marge interrompues le long d'un espace de ligne peuvent être fusionnées pour former une seule marge. Les lignes verticales peuvent être fusionnées en recourant aux étapes suivantes. À l'étape 1, pour chaque ligne de marge, la coordonnée x peut être calculée en gardant la coordonnée verticale (coordonnée y) fixe. À l'étape 2, la distance de coordonnées x peut être calculée pour les lignes de marge. Si la distance des coordonnées x est inférieure à un seuil Tvtn, les lignes de marge peuvent être fusionnées. Tvth peut être choisi pour être 2*(Td), Td pouvant être la distance médiane entre points caractéristiques de marge. Dans des cas où il y a de multiples lignes verticales, les lignes verticales les plus proches peuvent être fusionnées avant d'être utilisées pour l'identification de points de fuite verticaux. La figure 13 illustre un exemple d'image montrant deux lignes verticales estimées 1302A et 1302B le long de la même marge. La figure 14 illustre un exemple d'image montrant la fusion des lignes verticales estimées en une seule marge 1402 de la figure 13. À l'étape 410, le point de fuite vertical peut être identifié en utilisant les lignes verticales estimées. Les lignes verticales estimées peuvent être traitées en utilisant un algorithme RANSAC modifié comme décrit ci-dessous, lequel est très similaire à la méthode utilisée pour l'identification de points de fuite horizontaux. Les lignes de marge verticales estimées résultant de l'étape de fusion peuvent être définies dans un système de coordonnées cartésiennes. En outre, chacune desdites lignes de marge verticales estimées sont transformées du système de coordonnées cartésiennes en un point de données dans un système de coordonnées homogènes. Un niveau de confiance peut être attribué à chacun des points de données en se basant sur la proximité des points de marge utilisés pour estimer les lignes de marge résultantes ainsi que la longueur des lignes de marge respectives comme cela a été fait avec l'identification de points de fuite horizontaux. Un ensemble de points de données parmi les points de données ayant un niveau de confiance supérieur à un seuil prédéterminé sont groupés dans une matrice d'échantillons prioritaire. En outre, les points de données dans la matrice d'échantillons prioritaire sont mis en grappe dans un nombre de groupes échantillons. Dans un mode de réalisation, chaque des groupes échantillons comprend deux ou plus de deux points de données. En outre, une valeur de confiance de groupe peut être attribuée à chaque groupe échantillon sur la base du niveau de confiance attribué à chaque point de données dans le groupe échantillon. Les groupes échantillons de points de données peuvent être sélectionnés itérativement dans la matrice d'échantillons prioritaire pour l'ajustement de ligne. Dans un mode de réalisation, l'itération peut commencer avec le groupe échantillon ayant la valeur de confiance la plus élevée dans la matrice d'échantillons prioritaire. L'ajustement de ligne peut être effectué pour le premier groupe échantillon avec un résultat une première ligne ajustée. L'ajustement de ligne peut ensuite être effectué pour chaque autre groupe échantillon avec pour résultat d'autres lignes ajustées. Un ensemble de points de données qui sont positionnés en dessous d'un seuil de distance prédéterminé à partir de la première ligne ajustée peut être déterminé sur la base de la première et des autres lignes ajustées. Un premier et un deuxième candidat point de fuite vertical peuvent être estimés à partir des lignes verticales correspondant à l'ensemble déterminé de points de données. Dans un mode de réalisation, les premier et deuxième candidats points de fuite horizontaux peuvent être estimés en utilisant différentes méthodes d'approximation telles qu'une méthode des moindres carrés, une méthode des moindres carrés pondérés et une méthode des moindres carrés adaptatifs. D'autres méthodes d'approximation peuvent également être utilisées. La proximité de chaque candidat point de fuite vertical peut être comparée à la direction de texte verticale résultante après correction projective. Le candidat point de fuite vertical qui est le plus proche de la direction de texte verticale du document image après correction projective peut être sélectionné.
Si le nombre de lignes de marge détectées est relativement petit (moins de 5, par exemple), il est également possible de calculer directement le point de fuite en utilisant la méthode d'identification de points de fuite verticaux pondérés. Avec cette méthode, chacune desdites lignes de marge verticales estimées est transformée du système de coordonnées cartésiennes en un point de données dans un système de coordonnées homogènes. Un niveau de confiance peut être attribué à chacun des points de données comme mentionné ci-dessus. Après cela, la méthode des moindres carrés pondérés peut être utilisée pour ajuster la ligne qui correspond au point de fuite vertical.
La figure 5 décrit un exemple de processus 500 pour identifier le point de fuite vertical en utilisant l'analyse en composantes connexes, selon un mode de réalisation. Le processus 500 peut être employé dans des cas où des lignes de marge verticales peuvent ne pas être disponibles en raison de l'absence de marges. Le point de fuite vertical peut être identifié en utilisant les caractéristiques de trait de texte de blobs de pixels, ce qui est l'unité de construction de caractères de texte. À l'étape 502, des caractéristiques de trait de texte de blobs de pixels peuvent être identifiées. La figure 15 illustre un exemple d’image montrant l'identification de caractéristiques de trait de texte d’un caractère. Une partie de texte identifiée par un cercle 1502 est montrée sur le côté droit de la figure. Les caractéristiques de trait de texte vertical 1504 des lettres “dans la” sont identifiées et montrées. À l’étape 504, un ensemble de blobs de pixels peut être identifié avec des caractéristiques de trait de texte se conformant à un ou plusieurs critères définis. Dans un mode de réalisation, un blob de pixels peut être sélectionné, si le blob de pixels satisfait à un ou plusieurs des critères: excentricité du blob de pixels 0,97, non proximal à la marge, angle du trait de texte entre 70° et 110° et aire du blob de pixel dans les limites de [0,3, 5]*aream. L'excentricité peut être utilisée pour indiquer à quel point le blob de pixels est proche d'une forme de cercle. Comme l'excentricité d'une forme de cercle est zéro, plus la valeur d'excentricité est petite, plus le blob de pixels serait circulaire. Si l'excentricité d'un blob de pixels est supérieure à 0,97, le blob de pixels peut être un blob distordu qui ressemble à un segment de ligne et donc peut indiquer la distorsion verticale. Dans un mode de réalisation, l’excentricité du blob de pixels peut être trouvée en identifiant l'ellipse environnante autour du blob de pixels et puis en la calculant selon la formule suivante:
où a et b représentent le demi grand axe et le demi petit axe de l'ellipse. Pour des langues telles que le chinois et le russe, une procédure de prétraitement optionnelle telle qu’une détection de bord ou un filtrage morphologique mathématique peut être utilisée pour accroître les caractéristiques d'excentricité du blob de pixels. Les blobs de pixels ayant 0,97 peuvent être filtrés en utilisant un filtre approprié. Le blob de pixels proche du bord de l'image ne peut pas être utilisé pour l'estimation. Dans un mode de réalisation, le filtrage de proximité peut être utilisé pour éliminer les blobs de pixels qui ont des intersections avec les bords d'image. De manière similaire, dans un mode de réalisation, un filtrage d'angle peut être effectué pour filtrer les blobs de pixels ayant des traits de texte ne se situant pas entre 70 degrés et 110 degrés. Les blobs de pixels ayant une aire dans la plage [0,3, 5]*aream peuvent être choisis. Pour identifier les blobs dans une telle plage, une méthode robuste peut être utilisée pour estimer les aires médianes des blobs de pixels qui sont sélectionnés après filtrage des critères susmentionnés. Des blobs de pixels dont les valeurs d'aire se situent dans la plage de [0,3, 5]*aream sont utilisés pour l'estimation de points de fuite verticaux. La figure 16 illustre un exemple d'image montrant des blobs extraits sélectivement après identification de caractéristiques de trait de texte.
Les blobs de pixels sélectionnés sont utilisés pour estimer des lignes de blob de texte verticales. Les lignes verticales sont estimées à l'étape 506. Les lignes verticales sont estimées en utilisant une fonction de ligne qui peut correspondre à la direction du blob de pixels. La figure 17 illustre un exemple d'image montrant des lignes de blob de texte verticales pour les blobs de pixels sélectionnés. À l'étape 508, le point de fuite vertical peut être identifié en utilisant les lignes verticales estimées. Dans un mode de réalisation, le point de fuite vertical peut être déterminé en utilisant l'algorithme RANSAC modifié comme décrit plus haut. La figure 18 illustre un exemple d'image montrant les lignes de blob de texte verticales sélectionnées à la suite de l'application de l'algorithme RANSAC modifié. Pour faire court, une brève explication résumant l'application de l'algorithme RANSAC modifié sur les lignes verticales est fournie ci-dessous. Chacune desdites lignes de blob de texte verticales estimées sont définies comme des lignes dans un système de coordonnées cartésiennes. En outre, chacune desdites lignes de blob de texte verticales estimées sont transformées dans le système de coordonnées cartésiennes en un point de données dans un système de coordonnées homogènes. Un niveau de confiance peut être attribué à chacun des points de données. Le niveau de confiance peut être basé sur au moins l'excentricité de la forme du blob de pixels utilisé pour estimer la ligne de texte verticale concernée. En outre, la méthode RANSAC modifiée est appliquée comme décrit ci-dessus en rapport avec les figures ci-dessus pour déterminer le point de fuite vertical. L'algorithme de correction projective peut être implémenté comme un ensemble d'instructions informatiques qui, quand elles sont chargées sur un dispositif informatique, donnent une machine pour implémenter les fonctions décrites dans celles-ci. Ces instructions de programme informatique peuvent aussi être stockées dans une mémoire non temporaire lisible par ordinateur qui peut ordonner à un ordinateur ou un autre appareil de traitement de données programmable de fonctionner d'une manière décrite. L'algorithme de correction projective peut aussi être implémenté comme un matériel ou comme une combinaison de matériel et logiciel qui peut être mise en œuvre dans ou avec des systèmes gérés par ordinateur. Les personnes de métier peuvent se rendre compte qu'un système géré par ordinateur comprend un système d'exploitation et divers logiciels de soutien associés à un serveur / ordinateur. L'algorithme de correction projective tel que décrit dans le présent document peut être déployé par une organisation et/ou un fournisseur indépendant associé à l'organisation. L'algorithme de correction projective peut être une application autonome résidant sur un dispositif d'utilisateur, ou une application modulaire (par exemple, un module d'extension (plugin) qui peut être intégré à d'autres applications telles que des applications de traitement d'image, des applications ROC et similaire. Par exemple, l'application autonome peut résider sur des dispositifs d'utilisateur tels qu'un ordinateur personnel, un ordinateur portable, un ordinateur portatif, un mini-ordinateur portatif, un ordinateur tablette, un téléphone intelligent (smartphone), un appareil photo numérique, une caméra vidéo, un appareil de communication mobile, un assistant numérique personnel, un numériseur à balayage, un dispositif multifonction ou un quelconque autre dispositif capable d'obtenir des images de document et ayant un processeur pour effectuer des opérations décrites dans le présent document. Dans une autre mise en œuvre, une partie de l'algorithme de correction projective peut être exécutée par un dispositif d'utilisateur (par exemple, la caméra de l'utilisateur) et l’autre partie de l'algorithme de correction projective peut être exécutée par un dispositif de traitement (par exemple, l'ordinateur personnel de l'utilisateur) couplé au dispositif d'utilisateur. Dans ce cas, le dispositif de traitement peut effectuer des tâches plus coûteuses en temps de calcul. L'algorithme de correction projective peut aussi être implémenté comme une application de serveur résidant sur un serveur (par exemple, un serveur ROC) accessible à partir de dispositifs d'utilisateur par l'intermédiaire d'un réseau. L'algorithme de correction projective peut également être implémenté comme une application de réseau ayant des modules implémentés dans des multiples dispositifs mis en réseau.
Pour résumer, cette divulgation fournit divers modes de réalisation de procédés de correction projective d'images déformées par la perspective, par exemple des images de document prises par caméra, qui ont au moins une des contributions techniques suivantes: - utilisation de points propres pour estimer le point de fuite horizontal. En général, on préfère utiliser un des pixels dans la ligne de base du rectangle englobant comme pixels déterminateurs de position, étant donné que ces lignes de base sont en majeure partie alignées pour de multiples caractères successifs dans une partie texte. Parmi ceux-ci, les points propres sont préférés, étant donné qu'ils sont un produit secondaire de l'analyse standard en composantes connexes et que, par conséquent, aucune étape de traitement additionnelle n'est nécessaire pour obtenir ceux-ci pour chaque blob de pixels. - Une procédure de sélection de points propres est proposée pour sélectionner des points propres qui peuvent être utilisés pour l'estimation de lignes de texte. Des modes de réalisation qui éliminent des points propres prêtant à confusion et groupent les points propres restants par mise en grappe ou fusion ont été divulgués. En outre, le résultat de la mise en grappe des points propres est déjà la ligne de base estimée. - Les point final gauche et point final droit des lignes de base de la partie texte sont utilisés comme points caractéristiques de marge pour l'estimation de lignes de marge. Un algorithme de mise en grappe de points finaux gauche et droit est proposé pour estimer les lignes de marge. - Une adaptation de l'algorithme de RANSAC conventionnel, qui pourrait être appelé RANSAC prioritaire, est proposée pour identifier des inliers dans l'estimation de points de fuite, l'algorithme conventionnel étant amélioré en tenant compte d’une connaissance a priori, par exemple des valeurs ou niveaux de confiance. - Un programme de sélection de points de fuite est adopté pour sélectionner parmi plusieurs points de fuite candidats qui peuvent être déterminés de différentes façons. - Une estimation de ligne pondérée est proposée pour l'estimation de points de fuite horizontaux utilisant des niveaux de confiance et une estimation de ligne pondérée adaptative est proposée pour l'estimation de points de fuite verticaux. - Une méthode des moindres carrés à déviation perpendiculaire et une méthode des moindres carrés pondérés avec x-y changeables sont proposées pour calculer les lignes de marge verticales. - Une estimation de points de fuite verticaux basée sur l'analyse de blob est proposée, en particulier en prenant en considération des caractéristiques de trait vertical de blobs de pixels. - Une analyse de page est incorporée dans la chaîne de processus et seule l'information textuelle est utilisée pour la correction projective. Des modes de réalisation dans lesquels des mesures sont prises pour éliminer ou séparer des photos avant d'effectuer la correction projective sont proposés. - Une chaîne de traitement complète pour résoudre le problème de la correction projective est proposée, dans laquelle l'intervention de l'utilisateur peut être évitée. - Un procédé de correction projective est proposé, lequel comprend des étapes d'élimination à différents niveaux, à savoir point propre, ligne de base et candidat point de fuite, pour améliorer collectivement les résultats de la correction projective.
Claims (18)
- Revendications1. Procédé pour déterminer des candidats points de fuite d'une partie texte dans un document image qui est déformé par la perspective, comprenant les étapes de: binarisation d'image, dans laquelle ladite image est binarisée; exécution d'une analyse en composantes connexes, dans laquelle des blobs de pixels sont détectés dans ladite au moins une partie texte de ladite image binarisée et dans laquelle pour chacun desdits blobs de pixels, un pixel déterminateur de position est sélectionné sur une ligne de base du blob de pixels, ledit pixel déterminateur de position définissant la position du blob de pixels dans l'image binarisée; estimation d'un nombre de lignes de texte dans un système de coordonnées cartésiennes, chaque ligne de texte représentant une approximation d'une direction de texte horizontale ou verticale de ladite partie texte, sur la base des pixels déterminateurs de position; transformation de chacune desdites lignes de texte en un point de données dans un système de coordonnées homogènes; attribution d'un niveau de confiance à chacun des points de données; groupement d'un nombre de points de données ayant un niveau de confiance supérieur à un seuil prédéterminé dans une matrice d'échantillons prioritaire; mise en grappe des points de données dans la matrice d'échantillons prioritaire en un nombre de groupes échantillons, dans laquelle chaque groupe échantillon comprend au moins deux points de données; attribution d'une valeur de confiance de groupe à chaque groupe échantillon sur la base d'au moins le niveau de confiance attribué à chaque point de données dans le groupe échantillon; application d'un algorithme RANSAC pour déterminer parmi lesdits points de données un ensemble d'inliers par rapport à la première ligne ajustée, dans laquelle l'algorithme RANSAC est initié avec le groupe échantillon ayant la valeur de confiance de groupe la plus élevée dans la matrice d'échantillons prioritaire; estimation d'au moins un candidat point de fuite à partir des lignes de texte correspondant audit ensemble d'inliers.
- 2. Procédé selon la revendication 1, dans lequel ledit niveau de confiance qui est attribué audits points de données est basé sur au moins la longueur de la ligne de texte concernée et la proximité des pixels déterminateurs de position de la ligne de texte concernée.
- 3. Procédé selon la revendication 1, dans lequel l'algorithme RANSAC comprend les étapes suivantes: sélection itérative de groupes échantillons de points de données dans la matrice d'échantillons prioritaire pour l'ajustement de ligne, dans laquelle ladite itération commence avec le groupe échantillon ayant la valeur de confiance de groupe la plus élevée dans la matrice d'échantillons prioritaire; exécution d’un ajustement de ligne pour le premier groupe échantillon avec pour résultat une première ligne ajustée et ensuite exécution d’un ajustement de ligne pour chaque autre groupe échantillon avec pour résultat d’autres lignes ajustées; et détermination sur la base de la première et des autres lignes ajustées d’un ensemble de points de données qui sont positionnés en dessous d'un seuil de distance prédéterminé à partir de la première ligne ajustée, ledit ensemble de points de données formant ledit ensemble d'inliers.
- 4. Procédé selon la revendication 3, dans lequel le seuil de distance prédéterminé à partir de la première ligne ajustée est un paramètre fixe.
- 5. Procédé selon la revendication 3, dans lequel le seuil de distance prédéterminé à partir de la première ligne ajustée est un paramètre adaptatif qui est adapté sur la base du contenu du document image.
- 6. Procédé selon la revendication 1, dans lequel au moins un premier et un deuxième candidats points de fuite sont estimés à partir des lignes de texte correspondant audit ensemble d'inliers.
- 7. Procédé selon la revendication 6, dans lequel les premier et deuxième candidats points de fuite sont estimés en utilisant des méthodes d'approximation choisies dans le groupe consistant en: une méthode des moindres carrés, une méthode des moindres carrés pondérés et une méthode des moindres carrés adaptatifs.
- 8. Procédé selon la revendication 1, comprenant en outre l'étape de sélection d'un point de fuite à partir des candidats points de fuite estimés, ladite sélection comprenant les étapes de: exécution d'une correction projective sur le document image sur la base de chaque candidat point de fuite estimé; comparaison de la proximité de chaque candidat point de fuite de la direction de texte horizontale ou verticale résultante après correction projective; et sélection du candidat point de fuite qui est le plus proche de la direction de texte horizontale ou verticale après correction projective.
- 9. Procédé selon la revendication 1, dans lequel la valeur de confiance de groupe pour chaque groupe échantillon est en outre basée sur les distances entre les lignes de texte estimées respectives correspondant aux points de données dans le groupe échantillon.
- 10. Procédé selon la revendication 1, dans lequel le niveau de confiance de chacun des points de données est en outre basé sur une direction dominante des blobs de pixels utilisés pour estimer chacune ligne de texte concernée, dans lequel ladite direction dominante est définie par l'excentricité de la forme de chaque blob de pixels.
- 11. Procédé selon la revendication 1, dans lequel le nombre maximum de points de données groupés dans la matrice d’échantillons prioritaire est entre 2 et 20, mieux encore entre 5 et 10.
- 12. Procédé selon la revendication 1, dans lequel chacun des au moins un candidats points de fuite est un candidat point de fuite horizontal et les pixels déterminateurs de position sont des points propres des blobs de pixels.
- 13. Procédé selon la revendication 1, dans lequel chacun des au moins un candidats points de fuite est un candidat point de fuite vertical et dans lequel les lignes de texte estimées sont des lignes de blob de texte verticales qui correspondent chacune à la direction d'un blob de pixels sélectionné parmi lesdits blobs de pixels sélectionnés par un algorithme de filtrage de blob sur la partie texte de l'image.
- 14. Procédé selon la revendication 1, dans lequel une étape de séparation du texte et des illustrations est accomplie après ladite binarisation d'image et avant lesdites analyses en composantes connexes, et seule l'information textuelle est gardée dans ladite image binarisée.
- 15. Procédé de correction projective d'une image contenant au moins une partie texte qui est déformée par la perspective, le procédé comprenant les étapes de: binarisation d'image, dans laquelle ladite image est binarisée; exécution d'une analyse en composantes connexes, dans laquelle des blobs de pixels sont détectés dans ladite au moins une partie texte de ladite image binarisée et dans laquelle pour chacun desdits blobs de pixels, un pixel déterminateur de position est sélectionné sur une ligne de base du blob de pixels, ledit pixel déterminateur de position définissant la position du blob de pixels dans l'image binarisée; détermination de points de fuite horizontaux comprenant l'estimation de lignes de base de texte au moyen desdits pixels déterminateurs de position desdits blobs de pixels et la détermination d'au moins un candidat point de fuite horizontal de ladite au moins une partie texte au moyen desdites lignes de base de texte; détermination de points de fuite verticaux, comprenant l'estimation de lignes de blob de texte verticales qui correspondent chacune à la direction d'un blob de pixel sélectionné parmi lesdits blobs de pixels sélectionnés par un algorithme de filtrage de blob sur la partie texte de l'image et la détermination d'au moins un candidat point de fuite vertical de ladite au moins une partie texte au moyen desdites lignes de blob de texte verticales; dans lequel au moins une de ladite détermination des points de fuites horizontaux et verticaux comprend les étapes de: transformation de chacune desdites lignes de texte estimées en un point de données dans un système de coordonnées homogènes; attribution d'un niveau de confiance à chacun des points de données; groupement d'un nombre de points de données ayant un niveau de confiance supérieur à un seuil prédéterminé dans une matrice d'échantillons prioritaire; mise en grappe des points de données dans la matrice d'échantillons prioritaire en un nombre de groupes échantillons, dans laquelle chaque groupe échantillon comprend au moins deux points de données; attribution d'une valeur de confiance de groupe à chaque groupe échantillon sur la base d'au moins le niveau de confiance attribué à chaque point de données dans le groupe échantillon; application d'un algorithme RANSAC pour déterminer parmi lesdits points de données un ensemble d'inliers par rapport à une première ligne ajustée, dans laquelle ledit algorithme RANSAC est initié avec le groupe échantillon ayant la valeur de confiance de groupe la plus élevée dans la matrice d'échantillons prioritaire; et estimation dudit au moins un candidat point de fuite à partir des lignes de texte correspondant audit ensemble d'inliers; et correction projective, où ladite perspective dans ladite image est corrigée sur la base d'un point de fuite horizontal sélectionné parmi lesdits au moins un candidat point de fuite horizontal et d'un point de fuite vertical sélectionné parmi lesdits au moins un candidat point de fuite vertical.
- 16. Système de correction projective d'une image contenant au moins une partie texte qui est déformée par la perspective, le système comprenant au moins un processeur et un stockage associé contenant un programme exécutable au moyen dudit au moins un processeur et comprenant: des premières parties de code de logiciel configurées pour une binarisation d'image, lesquelles binarisent, quand elles sont exécutées, ladite image; des deuxièmes parties de code de logiciel configurées pour l'analyse en composantes connexes, lesquelles détectent, quand elles sont exécutées, des blobs de pixels dans ladite au moins une partie texte de ladite image binarisée et sélectionnent pour chacun desdits blobs de pixels, un pixel déterminateur de position sur une ligne de base du blob de pixels, ledit pixel déterminateur de position définissant la position du blob de pixels dans l'image binarisée; des troisièmes parties de code de logiciel configurées pour la détermination de points de fuite horizontaux, lesquelles estiment, quand elles sont exécutées, des lignes de base de texte au moyen desdits pixels déterminateurs de position desdits blobs de pixels et déterminent au moins un candidat point de fuite horizontal de ladite au moins une partie texte au moyen desdites lignes de base de texte; des quatrièmes parties de code de logiciel configurées pour la détermination de points de fuite verticaux, lesquelles estiment, quand elles sont exécutées, des lignes de blob de texte verticales qui correspondent chacune à la direction d'un blob de pixels sélectionné par lesdits blobs de pixels sélectionnés par un algorithme de filtrage de blob sur la partie texte de l'image et déterminent au moins un candidat point de fuite vertical de ladite au moins une partie texte au moyen desdites lignes de blob de texte verticales; dans lequel au moins une desdites troisièmes et quatrièmes parties de code de logiciel est configurée pour effectuer les étapes de: transformation de chacune desdites lignes de texte estimées en un point de données dans un système de coordonnées homogènes; attribution d'un niveau de confiance à chacun des points de données; groupement d'un nombre de points de données ayant un niveau de confiance supérieur à un seuil prédéterminé dans une matrice d'échantillons prioritaire; mise en grappe des points de données dans la matrice d'échantillons prioritaire en un nombre de groupes échantillons, dans laquelle chaque groupe échantillon comprend au moins deux points de données; attribution d'une valeur de confiance de groupe à chaque groupe échantillon sur la base d'au moins le niveau de confiance attribué à chaque point de données dans le groupe échantillon; application d'un algorithme RANSAC pour déterminer parmi lesdits points de données un ensemble d'inliers par rapport à une première ligne ajustée, dans laquelle l'algorithme RANSAC est initié avec le groupe échantillon ayant la valeur de confiance de groupe la plus élevée dans la matrice d'échantillons prioritaire; et estimation dudit au moins un candidat point de fuite à partir des lignes de texte correspondant audit ensemble d'inliers; et des cinquièmes parties de code de logiciel configurées pour effectuer une correction projective, lesquelles corrigent, quand elles sont exécutées, ladite perspective dans ladite image sur la base d'un point de fuite horizontal sélectionné parmi lesdits au moins un candidat point de fuite horizontal et d'un point de fuite vertical sélectionné parmi lesdits au moins un candidat point de fuite vertical.
- 17. Système de la revendication 16, comprenant un de ce qui suit: un ordinateur personnel, un ordinateur portable, un ordinateur portatif, un miniordinateur portable, un ordinateur tablette, un téléphone intelligent (smartphone), un appareil photo numérique, une caméra vidéo, un appareil de communication mobile, un assistant numérique personnel, un scanner, un dispositif multifonction.
- 18. Support de stockage non temporaire sur lequel est stocké un produit de programme informatique comprenant des parties de code de logiciel dans un format exécutable sur un dispositif informatique et configurées pour effectuer les étapes suivantes quand elles sont exécutées sur ledit dispositif informatique: binarisation d’image, dans laquelle ladite image est binarisée; exécution d'une analyse en composantes connexes, dans laquelle des blobs de pixels sont détectés dans ladite au moins une partie texte de ladite image binarisée et dans laquelle pour chacun desdits blobs de pixels, un pixel déterminateur de position est sélectionné sur une ligne de base du blob de pixels, ledit pixel déterminateur de position définissant la position du blob de pixels dans l'image binarisée; estimation d'un nombre de lignes de texte dans un système de coordonnées cartésiennes, chaque ligne de texte représentant une approximation d'une direction de texte horizontale ou verticale de ladite partie texte, sur la base des pixels déterminateurs de position; transformation de chacune desdites lignes de texte en un point de données dans un système de coordonnées homogènes; attribution d'un niveau de confiance à chacun des points de données; groupement d'un nombre de points de données ayant un niveau de confiance supérieur à un seuil prédéterminé dans une matrice d'échantillons prioritaire; mise en grappe des points de données dans la matrice d'échantillons prioritaire en un nombre de groupes échantillons, dans laquelle chaque groupe échantillon comprend au moins deux points de données; attribution d'une valeur de confiance de groupe à chaque groupe échantillon sur la base d'au moins le niveau de confiance attribué à chaque point de données dans le groupe échantillon; application d'un algorithme RANSAC pour déterminer parmi lesdits points de données un ensemble d'inliers par rapport à une première ligne ajustée, dans laquelle l'algorithme RANSAC est initié avec le groupe échantillon ayant la valeur de confiance de groupe la plus élevée dans la matrice d'échantillons prioritaire; estimation d'au moins un candidat point de fuite à partir des lignes de texte correspondant audit ensemble d'inliers.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/136,585 | 2013-12-20 | ||
US14/136,585 US8897600B1 (en) | 2013-12-20 | 2013-12-20 | Method and system for determining vanishing point candidates for projective correction |
Publications (2)
Publication Number | Publication Date |
---|---|
BE1022630B1 BE1022630B1 (fr) | 2016-06-21 |
BE1022630A1 true BE1022630A1 (fr) | 2016-06-21 |
Family
ID=51901844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BE2014/5135A BE1022630B1 (fr) | 2013-12-20 | 2014-12-19 | Procédé et système pour déterminer des candidats points de fuite pour la correction projective |
Country Status (2)
Country | Link |
---|---|
US (1) | US8897600B1 (fr) |
BE (1) | BE1022630B1 (fr) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9111348B2 (en) * | 2013-03-15 | 2015-08-18 | Toyota Motor Engineering & Manufacturing North America, Inc. | Computer-based method and system of dynamic category object recognition |
US9171359B1 (en) * | 2013-09-11 | 2015-10-27 | Emc Corporation | Method and system for auto-correcting perspective distortion in document images |
US20170052683A1 (en) * | 2015-08-20 | 2017-02-23 | International Business Machines Corporation | Altering a display perspective to avoid scrolling |
CN107305688B (zh) * | 2016-04-15 | 2020-10-27 | 株式会社理光 | 检测道路消失点的方法、装置和系统 |
CN105913069B (zh) * | 2016-04-27 | 2019-05-31 | 南京维睛视空信息科技有限公司 | 一种图像识别方法 |
US10387744B2 (en) | 2016-06-22 | 2019-08-20 | Abbyy Production Llc | Method and system for identifying extended contours within digital images |
US10366469B2 (en) | 2016-06-28 | 2019-07-30 | Abbyy Production Llc | Method and system that efficiently prepares text images for optical-character recognition |
RU2628266C1 (ru) | 2016-07-15 | 2017-08-15 | Общество с ограниченной ответственностью "Аби Девелопмент" | Способ и система подготовки содержащих текст изображений к оптическому распознаванию символов |
CN111914764B (zh) * | 2020-08-05 | 2023-09-15 | 杭州睿琪软件有限公司 | 图像处理方法、图像处理装置、电子设备和存储介质 |
CN112150380B (zh) * | 2020-09-22 | 2024-04-16 | 北京百度网讯科技有限公司 | 校正图像的方法、装置、电子设备和可读存储介质 |
CN112614074B (zh) * | 2020-12-28 | 2022-11-11 | 自行科技(武汉)有限公司 | 一种基于响应图和聚类的鲁棒灭点检测方法及装置 |
CN112862710B (zh) * | 2021-01-28 | 2022-03-25 | 西南石油大学 | 一种基于Criminisi算法优化的电成像测井图像井壁复原方法 |
CN115190236B (zh) * | 2021-04-07 | 2024-05-28 | 深圳市万普拉斯科技有限公司 | 图像拍摄方法、装置、计算机设备和存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7738706B2 (en) * | 2000-09-22 | 2010-06-15 | Sri International | Method and apparatus for recognition of symbols in images of three-dimensional scenes |
US7031553B2 (en) * | 2000-09-22 | 2006-04-18 | Sri International | Method and apparatus for recognizing text in an image sequence of scene imagery |
US6873732B2 (en) * | 2001-07-09 | 2005-03-29 | Xerox Corporation | Method and apparatus for resolving perspective distortion in a document image and for calculating line sums in images |
JP3925521B2 (ja) * | 2004-08-19 | 2007-06-06 | セイコーエプソン株式会社 | スクリーンの一部の辺を用いたキーストーン補正 |
NO20052656D0 (no) * | 2005-06-02 | 2005-06-02 | Lumex As | Geometrisk bildetransformasjon basert pa tekstlinjesoking |
US7330604B2 (en) * | 2006-03-02 | 2008-02-12 | Compulink Management Center, Inc. | Model-based dewarping method and apparatus |
CN101192269B (zh) * | 2006-11-29 | 2012-05-02 | 佳能株式会社 | 从图像估计消失点的方法和装置、计算机程序及其存储介质 |
CN101267493B (zh) * | 2007-03-16 | 2011-01-19 | 富士通株式会社 | 透视变形文档图像的校正装置和校正方法 |
CN101520852B (zh) * | 2008-02-29 | 2011-09-07 | 富士通株式会社 | 消失点检测装置和检测方法 |
US8285077B2 (en) * | 2008-07-15 | 2012-10-09 | Nuance Communications, Inc. | Automatic correction of digital image distortion |
JP5178860B2 (ja) * | 2011-02-24 | 2013-04-10 | 任天堂株式会社 | 画像認識プログラム、画像認識装置、画像認識システム、および画像認識方法 |
WO2013163579A2 (fr) * | 2012-04-27 | 2013-10-31 | Adobe Systems Incorporated | Ajustement automatique d'images |
-
2013
- 2013-12-20 US US14/136,585 patent/US8897600B1/en active Active
-
2014
- 2014-12-19 BE BE2014/5135A patent/BE1022630B1/fr active
Also Published As
Publication number | Publication date |
---|---|
US8897600B1 (en) | 2014-11-25 |
BE1022630B1 (fr) | 2016-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BE1022630B1 (fr) | Procédé et système pour déterminer des candidats points de fuite pour la correction projective | |
BE1022636B1 (fr) | Procede et methode de correction de distorsions projectives avec des etapes d'elimination a des multiples niveaux | |
BE1022635B1 (fr) | Procede et systeme de correction de distorsions projectives utilisant des points propres | |
US9275281B2 (en) | Mobile image capture, processing, and electronic form generation | |
KR101333871B1 (ko) | 멀티-카메라 교정을 위한 방법 및 장치 | |
US8712188B2 (en) | System and method for document orientation detection | |
Toh et al. | Automated fish counting using image processing | |
US9576210B1 (en) | Sharpness-based frame selection for OCR | |
FR3009518A1 (fr) | ||
FR2951565A1 (fr) | Procede, programme d'ordinateur et dispositif de suivi hybride de representations d'objets, en temps reel, dans une sequence d'images | |
US9418316B1 (en) | Sharpness-based frame selection for OCR | |
BE1026159B1 (fr) | Système de traitement d’image et procede de traitement d’image | |
US8249377B1 (en) | Blurred digital image deblurring | |
US20140146999A1 (en) | Device, method and non-transitory computer readable storage medium for detecting object | |
JP6542230B2 (ja) | 投影ひずみを補正するための方法及びシステム | |
WO2021109656A1 (fr) | Procédé de détermination de taille de code bidimensionnel, procédé d'affichage de code bidimensionnel, appareils et dispositifs | |
Mannan et al. | What is a good model for depth from defocus? | |
US9094617B2 (en) | Methods and systems for real-time image-capture feedback | |
FR3109831A1 (fr) | Procédé pour la vérification d’un code-barre. | |
US20160266348A1 (en) | Method for creating a camera capture effect from user space in a camera capture system | |
BE1025502A1 (fr) | Système et procédé de reconnaissance de formes utilisant des fonctions de gabor | |
FR2946444A1 (fr) | Procede et dispositif de calibration d'un capteur d'images utilisant un systeme temps reel de suivi d'objets dans une sequence d'images | |
CN107085843A (zh) | 用于估计光学系统中的调制传递函数的系统和方法 | |
BE1023388B1 (fr) | Procédé et système pour corriger une image provenant d'un dispositif de numérisation à main | |
EP2546801B1 (fr) | Procédé de détection et de correction de l'orientation d'un document présent dans une image numérique |