[go: nahoru, domu]

FR2910158A1 - Visual code e.g. bar code, reading method for e.g. phone-cam, involves iterating code identification, descriptor calculation and evaluation operations from subsequent image of sequence of images, when acceptable descriptor is defective - Google Patents

Visual code e.g. bar code, reading method for e.g. phone-cam, involves iterating code identification, descriptor calculation and evaluation operations from subsequent image of sequence of images, when acceptable descriptor is defective Download PDF

Info

Publication number
FR2910158A1
FR2910158A1 FR0611033A FR0611033A FR2910158A1 FR 2910158 A1 FR2910158 A1 FR 2910158A1 FR 0611033 A FR0611033 A FR 0611033A FR 0611033 A FR0611033 A FR 0611033A FR 2910158 A1 FR2910158 A1 FR 2910158A1
Authority
FR
France
Prior art keywords
descriptor
image
visual code
visual
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR0611033A
Other languages
French (fr)
Inventor
Christophe Edmond Mauric Papin
Eric Masera
Thierry Lebihen
Santie Valerie Lourde Adelbert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Eastman Kodak Co
Original Assignee
Eastman Kodak Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Eastman Kodak Co filed Critical Eastman Kodak Co
Priority to FR0611033A priority Critical patent/FR2910158A1/en
Publication of FR2910158A1 publication Critical patent/FR2910158A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/98Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
    • G06V10/993Evaluation of the quality of the acquired pattern
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

The method involves inputting a digital image, and identifying a visual code in the digital image. A descriptor of the visual code identified in the digital image is calculated, and the descriptor is evaluated. A visual code identified in the digital image is decoded, when the descriptor is acceptable during the identifying operation. Identifying, calculating and evaluating operations are iterated from a subsequent image of a sequence of images, when the acceptable descriptor is defective.

Description

1 PROCEDE DE LECTURE DE CODES VISUELS Domaine technique La présente1 METHOD OF READING VISUAL CODES Technical Field This

invention concerne un procédé de lecture de codes visuels. On entend par code visuel une représentation graphique et codée de données, susceptible d'être imprimée, affichée ou projetée sur un support ou un écran. La majeure partie des informations contenues dans un code visuel ne sont pas directement visibles ou interprétables. La restitution des informations requiert la lecture des codes, et leur décodage. L'invention trouve des applications dans des domaines très variés, tels que la communication, la publicité, la distribution, la logistique et l'industrie. Elle vise en particulier l'usage d'équipements mobiles largement diffusées tels que les téléphones portables, ou les appareils de prise de vue numériques, pour la lecture des codes visuels. Etat de la technique antérieure Une forme bien connue de codes visuels est celle des codes-barres imprimés sur les marchandises et biens de consommation offerts au public dans les centres de distribution. Le code-barre ne peut être directement interprété par l'utilisateur mais peut être lu par une caisse enregistreuse et décodé de manière à faire apparaître le prix et la désignation de l'objet portant le code-barre.  The invention relates to a method for reading visual codes. Visual code means a graphic and coded representation of data that can be printed, displayed or projected on a support or screen. Most of the information contained in a visual code is not directly visible or interpretable. The restitution of the information requires the reading of the codes, and their decoding. The invention has applications in a wide variety of fields, such as communication, advertising, distribution, logistics and industry. It aims in particular the use of widely distributed mobile devices such as mobile phones, or digital cameras, for reading visual codes. State of the Prior Art A well-known form of visual codes is that of barcodes printed on goods and consumer goods offered to the public in distribution centers. The barcode can not be directly interpreted by the user but can be read by a cash register and decoded so as to display the price and the designation of the object bearing the barcode.

D'autres applications des codes visuels existent dans des chaînes logistiques ou, plus simplement, pour identifier un article sur un catalogue. L'utilisation de codes visuels, tels que les codes-barres, connaît une expansion très importante en raison de deux évolutions importantes tenant à la fois au codage et à la lecture.  Other applications of visual codes exist in logistic chains or, more simply, to identify an article on a catalog. The use of visual codes, such as barcodes, is expanding dramatically because of two important developments in both coding and reading.

En ce qui concerne le codage, une plus grande sophistication du graphisme des codes visuels, ainsi que l'usage de codes visuels en couleur, permet d'augmenter le volume des données qu'ils véhiculent. A titre d'illustration, les codes barres à une dimension sont de plus en plus souvent remplacés par des graphismes à deux dimensions dans lesquels les barres cèdent leur place à des petits carrés ou à d'autres formes. En effet, et bien que par analogie avec les codes barres traditionnels les codes visuels soient parfois désignés par code barre à 2910158 2 deux dimensions , l'unité graphique servant au codage, encore appelée module, n'est généralement plus sous la forme d'une barre ou d'un bâtonnet. Les codes visuels peuvent ainsi être les vecteurs de données plus sophistiquées que le simple prix ou la référence d'un article. Les codes visuels 5 peuvent, par exemple, indiquer une adresse numérique de type URL (Uniform Ressource Locator ùadresse Internet). La seconde cause du développement des codes visuels est liée à la mise à disposition d'un public très large d'outils susceptibles de convenir à leur lecture. Des équipements tels que les téléphones portables ou les appareils 10 photographiques pourvus d'un capteur de prise de vue numérique peuvent en effet être aisément transformés en un outil de lecture des codes numériques. Un logiciel approprié, destiné à une unité de traitement interne de ces équipements, permet de reconnaître dans une image numérique un code visuel et de le décoder le cas échéant. L'usage d'équipements de lecture dédiés n'est plus requis. La simple mise 15 à disposition d'un logiciel de décodage suffit pour un grand nombre d'applications. Le téléphone portable à capteur de prise de vue intégré, encore désigné par phone-cam , peut ainsi servir à saisir des données par l'intermédiaire de codes visuels figurant sur des articles, sur des affiches, dans des journaux et dans des revues. Les codes visuels peuvent aussi être affichés temporairement sur un écran 20 d'un autre équipement multimédia, portable ou non. Les codes visuels apparaissent ainsi comme un moyen de communication et d'appariement d'équipements multimédia pourvus de moyens d'affichage et de prise de vue. La lecture de codes visuels, avec des équipements qui ne sont initialement pas dédiés à cet usage, pose cependant un certain nombre de difficultés. En effet, 25 avant de décoder un code visuel il faut saisir une ou plusieurs images du support portant le code visuel, il faut que l'appareil identifie l'existence d'un code visuel et qu'il corrige éventuellement des défauts de parallaxe ou d'autres défauts d'image susceptibles de nuire au décodage. Les codes visuels peuvent à cet effet être pourvus de signes ou de marques additionnels favorisant leur reconnaissance et 30 leur orientation dans une image saisie. 2910158 3 Une illustration de l'état de la technique peut être trouvée, par exemple, dans les documents (1) et (2) dont les références sont précisées à la fin de la description. Exposé de l'invention 5 Compte tenu des capacités de lecture, d'analyse et de calcul relativement limités des équipements non dédiés, utilisés pour la lecture de code visuels, l'opération de décodage est loin d'être instantanée. Ceci est le cas notamment pour les phone-cam . Les difficultés de lecture des codes visuels évoqués précédemment se 10 traduisent fréquemment par un échec du décodage des codes. L'usager d'un équipement portable capable de lire des codes visuels, a alors tendance a saisir une nouvelle image du code visuel lorsque la lecture précédente s'est soldée par un échec du décodage. La succession de plusieurs saisies d'images d'un code visuel et de plusieurs échecs de décodage, génère alors 15 une impression négative pour l'utilisateur. Cette impression est renforcée par la relative lenteur du calcul de décodage effectué à chaque nouvelle saisie d'image. L'utilisateur risque d'abandonner ses tentatives de lecture de codes visuels et risque également de douter du bon fonctionnement de son équipement. L'invention a pour but de proposer un procédé de lecture de codes visuels 20 ne présentant pas les difficultés mentionnées ci dessus. Un but est également de proposer un tel procédé permettant de guider l'utilisateur dans la lecture des codes visuels. Un but est de réduire le risque d'échec du décodage et de réduire la durée globale nécessaire à la lecture d'un code visuel. 25 Un but est encore de proposer un tel procédé permettant d'éviter une action répétée de l'utilisateur pour la lecture d'un code visuel. Pour atteindre ces buts l'invention a plus précisément pour objet un procédé de lecture de codes visuels comprenant : a) la saisie d'au moins une première image numérique 30 b) la recherche dans l'image numérique d'au moins un code visuel, et c) la préparation au décodage d'au moins un code visuel identifié lors de l'étape b). 2910158 4 Conformément à l'invention, ce procédé comprend une étape de calcul d'au moins un descripteur du code visuel identifié dans la première image numérique et par le conditionnement de l'étape de décodage à une évaluation du descripteur. On entend par descripteur une information qualitative obtenue à partir 5 du code visuel sans procéder à son décodage ou tout au moins sans effectuer de décodage complet du code. Le descripteur est une information distincte de l'information codée dont est porteur le code visuel. Le descripteur peut être différent pour différents équipements de lecture. Le descripteur est ainsi une information susceptible d'être obtenue sans avoir recours au logiciel de décodage. 10 Le descripteur peut être établi à partir de certains repères ou à partir de certaines marques accompagnant le code visuel. Il s'agit, par exemple, de marques destinées au repérage du code visuel ou à établir son orientation. Le descripteur est obtenu par l'analyse d'une image saisie pour la lecture du code visuel. Les descripteurs peuvent prendre en compte des défauts de géométrie, de 15 qualité d'image ou de structure de données. Le calcul du descripteur comprend, par exemple, un calcul des défauts de géométrie des contours et des modules de base constituant le code visuel. Ces défauts peuvent être dus à des erreurs de parallaxe, à des effets de perspective ou bien encore à des déformations ou aberrations géométriques dues au système imageur. Le descripteur ou les composants d'un 20 descripteur vectoriel peuvent également être calculés à partir d'une connaissance préalable de l'organisation structurelle des données du code visuel. Ainsi, dans le cas d'un code de type Datamatrix, il est connu que les bords haut et droit du code visuel sont alternativement représentés par des modules noir puis blanc. La prise en compte de cette connaissance permet de déduire la densité et la taille 25 élémentaire d'un module. Il est également possible de calculer une fonction déterminant le niveau de netteté ou de contraste de l'image source à l'aide par exemple du calcul d'une fonction de modulation de transfert. Le niveau de bruit électronique provenant du capteur CCD ou CMOS peut également être estimé. Dans le cas ou l'image source a été préalablement encodée, il est également 30 intéressant d'évaluer les dégâts causés par la compression, comme par exemple les effets de blocs ou d'anneaux autour des contours les plus contrastés. Un calcul 2910158 5 d'histogramme des intensités des contours du code visuel peut permettre de déterminer quelle canal chromatique (rouge, vert ou bleu par exemple) doit être utiliser préférentiellement pour le décodage. Cela peut également servir à déduire si la phase de quantification de l'image, i.e. le processus de réduction des données 5 de l'image source en un nombre limité de niveaux d'intensité, celui-ci correspondant au nombre de couleurs servant à coder le contenu du code visuel, permettra d'accéder à un niveau de détail suffisant pour le décodage. La prise en compte des ombres portées ou d'autres éléments susceptible d'altérer le décodage peut également faire l'objet d'un descripteur. Par exemple, il est possible de 10 distinguer l'intensité des pixels sombres correspondant aux structures du code-barre de l'intensité des pixels correspondant aux zones d'ombres, ces dernières étant des régions plus uniformes. Le descripteur peut également être calculé à partir des informations issues de plusieurs images capturés consécutivement. La prise en compte d'informations redondantes et complémentaires permet d'estimer 15 plus finement la probabilité d'obtenir un décodage correct. Le calcul d'un ou de plusieurs descripteurs d'un code visuel identifié conditionne l'étape de décodage. Si plusieurs descripteurs sont calculés, ils forment un vecteur de description donc chaque composant peut être testé individuellement ou en combinaison. Le décodage peut être conditionné à la 20 possibilité d'établir un certain type de descripteur, à une certaine valeur du descripteur ou au fait que le descripteur calculé est considéré comme acceptable. Le descripteur peut aussi être comparé à un descripteur de référence. La façon la plus simple de valider cette phase de test ou de pré-décodage est de comparer chacune des composantes du vecteur de description à un jeu de seuils spécifiques. 25 Si l'ensemble des valeurs des descripteurs est en accord avec l'ensemble des seuils préalablement définis, l'image initiale est considérée comme acceptable et le processus de décodage peut s'initier. Un raffinement de la méthode consiste à utiliser des seuils adaptatif, c'est-à-dire dont la valeur dépend elle-même du contenu de l'image. Les défauts de géométrie peuvent par exemple être calculé à 30 l'aide de modèles polynomiaux ou encore en estimant un. certain nombre de points de fuite dans un espace 2D ou 3D. Les valeurs de paramètres des modèles de 2910158 6 déformation polynomiaux peuvent être comparées à des valeurs de seuil ou de référence. La position des points de fuite peut également être comparée à une distance minimale en deça de laquelle les déformations seront jugées trop importantes. Si la régularité des modules représentants la structure fixe du code 5 visuel n'est pas respectée, c'est-à-dire si par exemple l'alternance régulière de modules blanc et noir n'est pas constatée, il est souhaitable de ne pas valider la phase de test. De même, si la taille des modules résultant d'une phase de quantification préalable est inférieure à un nombre de pixels donné, par exemple quatre pixels par module, il sera supposé que la probabilité de bonne détection est 10 trop faible. De manière générale, on considère que le descripteur d'un code visuel est acceptable si la possibilité de l'établir ou si la valeur du descripteur est telle qu'un décodage ultérieur du code visuel peut être réalisé avec des chances déterminées de succès. Le descripteur donne ainsi une indication qualitative relative au code visuel 15 identifié et permet de préjuger des chances de succès de son décodage ultérieur. Le calcul ou l'évaluation d'un descripteur est une opération qui nécessite peu de puissance de calcul par rapport au décodage et qui peut ainsi être effectuée à une vitesse très supérieure au décodage. Le calcul du descripteur permet ainsi d'éviter le décodage lorsque les 20 chances de succès du décodage sont trop faibles, et de multiplier la saisie d'images de lecture. Ceci peut avoir lieu dans un intervalle de temps très court en raison du calcul rapide du descripteur. La recherche d'une image de lecture conduisant à un décodage réussi passe ainsi quasi inaperçue pour l'utilisateur et ne génère pas une impression de dysfonctionnement. 25 Nombre d'appareils de prise de vue présentent à la fois la possibilité de saisie d'images instantanées fixes, et de séquences d'images. La lecture des codes visuels peut ainsi être envisagée selon ces deux modes de prise de vue. Dans un mode de saisie d'images fixes, la saisie d'une image peut être suivie du calcul d'un descripteur, et de l'évaluation, à partir du descripteur de la 30 possibilité d'extraire des données d'un code visuel présent dans l'image. Le calcul du descripteur et son évaluation permettent de procéder, de manière automatique 2910158 7 ou non, à la saisie d'une nouvelle image de lecture si le descripteur révèle une probable difficulté de décodage du code visuel. De préférence, on établit des descripteurs dont la durée de calcul est du même ordre que la durée séparant deux images successives d'une séquence 5 d'images saisies. Comme indiqué précédemment, la saisie et l'analyse d'une pluralité d'images de lecture peut avoir lieu sans générer un temps d'attente long pour l'utilisateur. Ceci augmente la probabilité de disposer d'une image exploitable pour le décodage du code visuel. 10 Dans un mode de saisie d'images sous la forme d'une séquence, le procédé peut comporter les étapes suivantes : a) la saisie d'une séquence formée d'une pluralité d'images successives susceptibles de contenir une image d'un code visuel, b) la recherche, dans une première image de la séquence, d'au moins un code 15 visuel, c) le calcul d'un descripteur du code visuel si un code visuel a été identifié, d) l'évaluation du descripteur e) le décodage du code visuel lorsque le descripteur de la première image est reconnu acceptable lors de l'évaluation, et 20 f) itération du procédé de l'étape b) lorsque la recherche d'un code visuel, le calcul du descripteur et ou l'évaluation du descripteur comme acceptable font défaut, l'itération étant effectuée respectivement à partir d'une image subséquente de la séquence d'images. L'itération consiste à répéter l'étape b) et, le cas échéant, les étapes 25 suivantes. L'itération peut comporter la capture automatique d'une nouvelle image dans un balayage de l'environnement proche du code barre. La succession de captures nécessaire avant le bon décodage des données contenu dans le code visuel forme par définition une séquence d'images acquise a une fréquence variable dans 30 le temps, celle-ci étant dépendante du temps mis pour calculer et analyser la valeur des descripteurs ainsi que pour initier une nouvelle capture. Il est possible que le 2910158 8 calcul et l'évaluation du vecteur de description puissent être effectué à une résolution ou à un niveau de détail inférieur à celui utilisé pour le décodage lui-même. De même, il est possible d'utiliser des techniques dites de fusion d'images permettant de combiner les informations de structure et d'intensité présentes dans 5 plusieurs images successives de la séquence préalablement ou continûment acquise. La redondance et la complémentarité des données présente dans une suite d'image permettent d'étendre et d'améliorer le processus de construction du vecteur de description, de validation ainsi que le processus de décodage des données proprement dite. L'utilisation de plusieurs images consécutive temporellement et 10 de faible résolution peut permettre d'obtenir une image de plus haute résolution, donc plus facile à décoder. Ces techniques sont regroupées sous le terme d'approches de "super-résolution". Il est également possible d'évaluer les descripteur à partir d'une information chromatique particulière, par exemple un sous-ensemble des données potentiellement accessible, comme l'utilisation du seul 15 canal vert du triplet rouge, vert, bleu. La saisie d'une séquence d'images peut être éventuellement poursuivie pendant les exécutions des étapes suivantes du procédé. Grâce au mode de saisie sous la ferme d'une séquence, et grâce au calcul relativement rapide des descripteurs, il est possible à l'utilisateur de balayer avec 20 son équipement mobile un support contenant un code visuel, jusqu'à ce qu'un descripteur acceptable soit établi et que le décodage ait lieu. Selon un perfectionnement possible du procédé, celui-ci peut comporter, en outre, postérieurement à l'étape de calcul du descripteur, l'émission visuelle ou sonore d'une information dépendant du descripteur. 25 L'information peut être, par exemple, un message ou un pictogramme affiché sur un écran d'affichage de l'équipement utilisé pour la lecture du code visuel. L'information émise peut être établie à partir du descripteur ou être sélectionnée en fonction d'une caractéristique du descripteur. A titre d'illustration, si le descripteur comprend le calcul de la taille relative 30 du code visuel dans l'image saisie et si cette taille relative est inférieure à une valeur prédéterminée, l'information affichée peut être une invitation pour 2910158 9 l'utilisateur à approcher son équipement de prise de vue du support présentant le code visuel. Cette information peut être préalablement enregistrée et simplement appelée en réponse au calcul du descripteur, ou en réponse à une évaluation du descripteur jugé non acceptable. De manière très simple, l'information affichée 5 peut renseigner l'utilisateur si un code visuel a été identifié et/ou s'il est possible de le décoder. Une tonalité sonore peut aussi être émise selon que le descripteur calculé est évalué comme étant acceptable ou non. Lorsque le descripteur permet, sans décoder le code visuel, de donner une information déduite du code visuel, cette donnée peut également être affichée. Une 10 telle donnée peut être, par exemple, une marque commerciale, un logo, ou une information non codée, ou une information avec un code sommaire associée au code visuel. De manière additionnelle, l'émission d'une information visuelle ou sonore peut être accompagnée d'une invitation de saisie d'une commande d'utilisateur. 15 La commande d'utilisateur, qui consiste, par exemple, à actionner un bouton, peut être utilisée comme une condition supplémentaire pour procéder au décodage. Cette possibilité est intéressante lorsque plusieurs codes visuels sont détectés, pour effectuer un choix entre les codes visuels (levant être décodés. Lorsque plusieurs codes visuels sont détectés, et dans le mode de saisie 20 d'une séquence d'images, les étapes de recherche d'un code visuel, de calcul d'un descripteur et/ou d'évaluation du descripteur peuvent aussi être itérées à partir d'une image subséquente de la séquence, en l'absence d'une commande de l'utilisateur. L'étape b) d'identification d'un code visuel peut comporter un certain 25 nombre de sous-étapes qui visent non seulement à la simple identification d'un code visuel mais également à la mise en forme des signaux relatifs au code en vue de son décodage. Plus précisément, le procédé peut comporter une pluralité de sous-étapes de mise en forme du code visuel dans lequel au moins une sous-étape de mise en forme est associée au calcul d'un descripteur et dans lequel l'exécution 30 d'une sous-étape subséquente est conditionnée par l'évaluation du descripteur associé à une sous-étape précédente. 2910158 10 Ainsi, et à titre d'exemple, l'étape b) peut comporter les sous-étapes d'identification d'une zone susceptible de contenir un code visuel, une étape de seuillage, une étape de détection de bords du code, une étape dite de maillage et enfin une étape de détection des modules du code visuel. 5 Chaque sous-étape peut faire l'objet du calcul d'un descripteur, et l'exécution de l'étape suivante peut être conditionnée par la validation du descripteur, c'est-à-dire son évaluation et la reconnaissance du descripteur comme étant acceptable. D'autres caractéristiques et avantages de l'invention ressortiront de la 10 description qui va suivre, en référence aux figures des dessins annexés. Cette description est donnée à titre purement illustratif et non limitatif. Brève description des figures La figure 1 est un diagramme illustrant un procédé de lecture de codes visuels conforme à l'invention utilisant un appareil de prise de vue fonctionnant 15 selon un mode de prise de vue fixe (still). La figure 2 est un diagramme illustrant un procédé de lecture de code visuels conforme à l'invention utilisant un appareil de prise de vue fonctionnant selon un mode de prise de vue en séquence. La figure 3 est un diagramme illustrant un procédé de lecture de codes 20 visuels conforme à l'invention et impliquant le calcul d'une pluralité de descripteurs. Description détaillée de modes de mise en oeuvre de l'invention Dans la description qui suit, des références identiques sont utilisées pour des parties identiques ou similaires des deux figures. 25 Une première étape 100 de la figure 1 comprend la saisie d'une image par un appareil de prise de vue numérique tel qu'une phone-cam ou d'un appareil photographique. La prise de vue est suivie d'une étape 102 d'identification dans l'image d'au moins un code visuel. L'étape 102 d'identification peut être assortie d'une ou 30 de plusieurs sous-étapes de mise en forme de l'image et, les cas échéant, du code visuel identifié. Ces sous-étapes visent à reconnaître dans l'image un code visuel et 2910158 11 de la mettre dans une forme adaptée au décodage ultérieur. La raison principale de l'étape 102 tient au fait que l'équipement de prise de vue utilisé pour la lecture des codes visuels n'est pas nécessairement un équipement dédié uniquement à cette tache, et que l'image saisie n'est pas nécessairement une image saisie avec 5 l'intention de décoder un code visuel. La recherche d'un code visuel est basée sur la reconnaissance graphique d'un certain nombre de structures considérées comme faisant partie des codes visuels. La reconnaissance des codes visuels peut être facilitée lorsque les codes visuels sont associés à des marques de reconnaissance telles que des contours ou 10 des repères de forme ou de couleur susceptibles d'être identifiées au terme d'une analyse sommaire de l'image saisie. Comme indiqué ci-dessus, l'étape d'identification dans l'image de codes visuels peut être complétée par un certain nombre de corrections d'image, ou de mise en forme, effectuées lorsqu'un code visuel est détecté. Les corrections 15 peuvent être des corrections géométriques, de contraste ou de grandissement et visent à améliorer la lecture du code visuel. A titre d'exemple, une déformation homothétique de l'image ou d'une partie de l'image contentant un code visuel peut être effectuée de manière à corriger des déformations de parallaxe lorsque l'axe de prise de vue n'est pas normal au plan du code visuel saisi. De telles corrections 20 peuvent aussi être facilitées en utilisant des cadres, des maillages graphiques ou des contours accompagnant les codes visuels. Une étape suivante 104 consiste à calculer un ou plusieurs descripteurs du code visuel. Un descripteur unique peut être associé au résultat global de l'étape d'identification. Une pluralité de descripteurs peuvent aussi être associés à une 25 pluralité de sous-étapes d'identification et de correction du code visuel. Comme évoqué précédemment, le descripteur vise à donner une information qualitative du code visuel susceptible d'être utilisée pour évaluer les chances de succès d'une étape de décodage ultérieure. Le descripteur peut rendre compte, par exemple, de la qualité du contraste, de la qualité graphique, et ou de la 30 qualité colorimétrique du code visuel. 2910158 12 Le calcul de descripteur peut être effectué après les corrections de l'image mentionnées en relation avec l'étape précédente 102, ou prendre en compte les défauts constatés, susceptibles d'être corrigés ou non. Le calcul du descripteur peut être un calcul portant sur tout ou partie du 5 code visuel. Il peut déterminer des contours, des contrastes, ou d'autres caractéristiques du code visuel telles que des fréquences spatiales de répétition d'un motif. Le calcul du descripteur peut aussi tirer avantage de la présence accessoire de marques au cotés du code visuel facilitant le calcul. Il s'agit de repères de position, de cadres et autres éléments graphiques ou de couleur tels que 1 o mentionnés précédemment. Le descripteur peut aussi fournir un renseignement ou être utilisé comme un pointeur vers un renseignement préenregistré qualifiant le code visuel ou permettant de classer le code visuel dans une catégorie préétablie. A titre d'illustration, le descripteur peut être mis à profit pour établir si un code visuel est 15 un code portant une information d'identification, une information d'authentification, une information de lien de communication, une information publicitaire, ou un lien commercial, sans que l'information elle même ne soit décodée. Si tel est le cas, une étape additionnelle 105 indiquée en trait discontinu 20 peut être prévue pour diffuser un message portant le renseignement ou l'information établie. Si l'équipement de lecture est pourvu d'un écran d'affichage, le message peut être diffusé par l'affichage d'une image, d'une icône ou d'un message écrit. Une diffusion sonore du message n'est bien sûr pas exclue. La diffusion du message peut aussi être postérieure à l'évaluation du descripteur et 25 conditionnée par cette évaluation. La référence 106 indique l'étape d'évaluation du descripteur. L'évaluation du descripteur peut prendre différentes formes. Elle peut être automatique ou faire appel à une commande de l'utilisateur. Une évaluation automatique peut comporter la comparaison du descripteur 30 à une valeur de consigne ou un descripteur de consigne. Il s'agit par exemple d'une valeur du descripteur, telle qu'une valeur de contraste, à partir de laquelle le 2910158 13 décodage peut être effectué avec des chances de succès raisonnables. De la même façon le descripteur de consigne peut être un descripteur préétabli correspondant à un code visuel pouvant être décodé. Les descripteurs peuvent prendre en compte des défauts de géométrie, de qualité d'image ou de structure de données. Le calcul 5 du descripteur comprend, par exemple, un calcul des défauts de géométrie des contours et des modules de base constituant le code visuel. Ces défauts peuvent être dus à des erreurs de parallaxe, à des effets de perspective ou bien encore à des déformations ou aberrations géométriques dues au système imageur. Le descripteur (ou une partie du vecteur de description) peut également être calculé à 10 partir d'une connaissance préalable de l'organisation structurelle des données du code visuel. Ainsi, dans le cas d'un code detype Datamatrix, il est connu que les bords haut et droit du code visuel sont alternativement représentés par des modules noir puis blanc. La prise en compte de cette connaissance permet de déduire la densité et la taille élémentaire d'un module. Il est également possible de calculer 15 une fonction déterminant le niveau de netteté ou de contraste de l'image source à l'aide par exemple du calcul d'une fonction de modulation de transfert. Le niveau de bruit électronique provenant du capteur CCD ou CMOS peut également être estimé. Dans le cas ou l'image source a été préalablement encodée, il est également intéressant d'évaluer les dégâts causés par la compression, comme par exemple les 20 effets de blocks ou de "ringing" autour des contours les plus contrastés. Un calcul d'histogramme des intensités des contours du code visuel peut permettre de déterminer quelle canal chromatique (rouge, vert ou bleu par exemple) doit être utiliser préférentiellement pour le décodage. Cela peut également servir à déduire si la phase de quantification de l'image, i.e. le processus de réduction des données 25 de l'image source en un nombre limité de niveaux d'intensité, celui-ci correspondant au nombre de couleurs servant à coder le contenu du code visuel, permettra d'accéder à un niveau de détail suffisant pour le décodage. La prise en compte des ombres portées ou d'autres éléments susceptibles d'altérer le décodage peut également faire l'objet d'un descripteur. Par exemple, il est possible de 30 distinguer l'intensité des pixels sombres correspondant aux structures du code-barre de l'intensité des pixels correspondant aux zones d'ombres, ces dernières 2910158 14 étant plus uniformes. Le descripteur peut également être calculé à partir des informations issues de plusieurs images capturés consécutivement. La prise en compte d'informations redondantes et complémentaires permet d'estimer plus finement la probabilité d'obtenir un décodage correct. 5 On considère que le descripteur est acceptable lorsqu'il correspond à la consigne ou est supérieur à la consigne selon un critère préétabli. Une évaluation peut aussi être effectuée en intégrant une commande de l'utilisateur. Elle comprend, par exemple, l'affichage d'une information telle qu'indiquée avec la référence 105 et l'attente d'une commande 108 de l'utilisateur, 10 telle que, par exemple, la dépression d'un bouton. Ceci permet notamment de présenter à un utilisateur différentes catégories de codes visuels identifiés par le calcul d'un ou de plusieurs descripteurs et de laisser l'utilisateur décider si un décodage doit avoir lieu.. L'évaluation automatique et l'évaluation faisant intervenir une commande 15 de l'utilisateur peuvent être cumulées ou non. Elles sont indiquées avec les références 106a et 106u. Une autre étape possible, indiquée en trait discontinu avec a référence 109 consiste à émettre un signal, par exemple un signal sonore indiquant qu'un code visuel a été identifié et qu'il peut être décodé. Ceci signifie que son descripteur est 20 reconnu acceptable lors de l'évaluation. Lorsque le descripteur a été évalué et reconnu acceptable au terme de l'évaluation 106a, 106u, l'étape de décodage du ou des codes visuels concernés est effectuée. Cette étape est indiquée avec la référence 110. L'étape de décodage des 25 codes visuels n'appelle pas de commentaires particuliers. Elle est réalisée selon des instructions logicielles propres aux codes. Eventuellement certains paramètres du décodage ou un choix du logiciel de décodage peut être effectué en fonction du ou des descripteurs précédemment établis. Par exemple, un ou des descripteurs mesurant des distorsions géométriques ou colorimétriques pourraient être 30 efficacement réutilisés lors de la phase de décodage. En effet il peut exister entre la phase de décodage elle même et la phase de test une phase de préparation de 2910158 15 l'image source à son décodage. C'est en particulier cette phase qui pourrait bénéficier des calculs de descripteurs. Enfin, une dernière étape 112 représente une action résultant du décodage. Il s'agit, par exemple, d'un affichage, d'une connexion, d'un appariement 5 d'équipements, d'un envoi et/ou d'une réception de données. L'action est dictée par l'information décodée. Cette dernière étape ne fait plus partie du procédé de lecture mais constitue sa suite logique. Lorsque le descripteur n' est pas reconnu acceptable, c'est-à-dire que les chances de succès d'un décodage ultérieur sont considérées comme trop faibles, le 10 procédé peut être poursuivi par la saisie d'une nouvelle image. Cette voie, indiquée par une flèche 107, répond aussi aux situations où l'image précédemment saisie ne contenait pas de code visuel, et où un code visuel existant n'a pas été reconnu. En effet, dans ces cas, également, aucun descripteur acceptable n'est établi et la saisie d'une nouvelle image peut suivre immédiatement l'étape 102 comme le montre 15 une flèche 113 en trait discontinu. La saisie d'une nouvelle image peut être précédée par l'affichage 114 d'un message déduit du descripteur précédemment établi. Il s'agit, par exemple, une invitation à destination de l'utilisateur de saisir une nouvelle image et /ou de modifier les conditions de prise de vue. 20 A titre d'exemple, un descripteur sous la forme d'une mesure de fréquence spatiale peut être utilisé pour inviter l'utilisateur à saisir une image plus rapprochée ou plus éloignée ou pour une commande de zoom. Un descripteur relatif au contraste peut être utilisé pour inviter l'utilisateur à modifier les conditions d'éclairage, par exemple, en déclenchant un flash. 25 La référence 116 indique une modification automatique des conditions de prise de vue, telles que le zoom ou l'éclairage, par exemple, lorsque un descripteur est établi. Le déclenchement de la saisie d'un nouvelle image pour l'identification de codes visuels et les éventuelles corrections apportées à cette nouvelle prise de vue peuvent en effet être automatiques ou non. 30 La figure 2 illustre une autre mise en oeuvre de l'invention dans laquelle la lecture de codes visuels est effectuée selon un mode de prise de vue en séquence. 2910158 16 La première étape 100 de prise de vue ne comprend pas la saisie d'une image unique mais d'une pluralité d'images. La saisie de la pluralité d'images est effectuée, par exemple, lorsque l'utilisateur tenant l'appareil de prise de vue en main, balaye un champ de prise de vue susceptible de contenir des codes visuels. 5 Le balayage fait que les images successives de la séquence saisie sont légèrement différentes de proche en proche. Les conditions de prise de vue et les conditions de saisie d'un éventuel code visuel sont ainsi variables dans la séquence. La saisie de la séquence est poursuivie par des étapes 102 d'identification/correction d'un code visuel et de calcul d'un descripteur 104. Ces Io étapes sont effectuées de la manière décrite précédemment en utilisant une image de la séquence. Elles sont effectuées, par exemple, en utilisant la première ou l'une des premières images de la séquence. Lors des calculs correspondant à la recherche d'éventuels codes visuels et lors des calculs d'éventuels descripteurs, la prise de vue 100 peut être interrompue ou poursuivie. 15 Si un descripteur est établi et si ce descripteur permet de fournir un renseignement sur un code visuel identifié, une information correspondante peut être affichée à l'étape 105. Cette information permet par exemple à l'utilisateur de choisir de poursuivre ou d'interrompre la séquence de prise de vue et/ou de confirmer un souhait de décodage d'un code visuel. 20 Comme précédemment, l'évaluation 106 du descripteur permet de déterminer si le décodage d'un code visuel identifié peut être réalisé ou non avec des chances raisonnables de succès. Dans l'affirmative, le procédé peut être poursuivi par le décodage 110 et d'éventuelles étapes subséquentes 112 utilisant les informations décodées. 25 L'évaluation 106 peut faire intervenir l'utilisateur en l'invitant à saisir une commande. Dans la négative, en revanche, ou en l'absence d'une commande de l'utilisateur, le cas échéant, une nouvelle recherche de code visuel et un nouveau calcul de descripteur est opéré. Ceci est illustré par une flèche 107. L'itération 30 consistant à rechercher un code visuel et calculer un descripteur ne comprend pas une nouvelle prise de vue mais est effectuée avec une image différente de la 2910158 17 séquence saisie à l'étape initiale 100. De préférence ces opérations sont effectuées avec une image subséquente de la séquence d'images. Il peut s'agir de l'image saisie immédiatement après celle qui a servi aux calculs précédents ou une image saisie postérieurement. 5 Il convient de souligner que lorsque la cadence de saisie des images de la séquence d'images est élevée, deux images qui se succèdent immédiatement présentent généralement un contenu d'image proche et conduisent, le cas échéant, au calcul de descripteurs également proches. Ainsi si le descripteur d'une image n'est pas considéré comme acceptable pour procéder à un décodage, il peut 10 s'avérer inutile d'itérer le procédé avec la ou les images plus proches voisines de l'image précédemment considérée. Au même titre si un descripteur est considéré comme acceptable il est possible dans ce cas de procéder au décodage du code visuel soit avec l'image qui a servi au calcul du descripteur soit à une image proche voisine de celle-ci, dans la 15 séquence. Comme indiqué précédemment, l'étape d'identification et de mise en forme d'un code visuel en vue de son décodage, peut comporter un certain nombre de sous-étapes, assorties ou non du calcul de descripteurs correspondants. Ces sous-étapes sont décrites plus en détail dans ce qui suit. 20 La première sous-étape suivant la saisie de l'image consiste à extraire au moins une zone candidate susceptible de contenir le ou les codes visuels. Le résultat de cette phase d'analyse peut être formulé sous forme d'un descripteur qui conditionne le déclenchement des phases suivantes. Si tel est le cas, une sous-étape ultérieure peut consister à seuiller, ou binariser, les zones candidates 25 précédemment identifiées. Le résultat de cette quantification permet d'identifier, le cas échéant, la structure du code visuel. Le résultat de cette étape peut encore être formulée sous forme d'un ou de plusieurs descripteurs. En cas de validation du ou des descripteurs, une phase d'analyse de la structure du code visuel permet de retenir ou non la zone précédemment isolée. Aussi, la sous-étape suivante peut 30 consister à calculer un maillage s'ajustant au mieux à la structure du code visuel. Dans le cas où un descripteur caractérisant le maillage ainsi estimé est validé, le 2910158 18 calcul de la valeur attribuée à chaque module, (par exemple blanc ou noir dans le cas d'un code visuel binaire), est effectué. Le résultat obtenu peut servir de signal d'entrée à un module de décodage du code visuel. Nous allons maintenant décrire plus précisément chacune de ces étapes et déterminer les descripteurs associés à 5 chacune de ces étapes. La première sous-étape suivant la capture d'une image consiste comme indiqué cidessus à trouver les zones candidates susceptibles de contenir un code visuel. Il est possible qu'on ne puisse pas identifier de zones candidates lorsque il n'y a pas assez de gradients spatiaux d'intensité dans un canal ou un espace de 10 couleur utilisé. Cela peu signifier que l'image ne contient que des zones uniformes (fond blanc par exemple) ou qu'elle est trop peu contrastée du fait d'une sur- ou d'une sous-exposition. Il est également possible que la réponse colorimétrique ne corresponde pas à l'espace de couleur utilisé. Nous décrivons maintenant deux méthodes permettant d'identifier la ou les zones candidates. La première méthode 15 suppose que l'environnement immédiat du code visuel est uniforme, ce qui veut dire que l'utilisateur s'est suffisamment rapproché ou a suffisamment zoomé pour ne capturer qu'une zone proche des bords du code visuel. Il est supposé ici que le code visuel est entouré d'une zone claire uniforme dont la valeur des pixels est identique à celle des modules clairs de la matrice à décoder. Cette zone entourant 20 le code est supposée représenter par exemple 50% de la largeur et/ou de la hauteur du motif Une deuxième possibilité de mise en oeuvre comprend l'extraction des zones candidates d'une image de contenu quelconque et dont la surface du ou des codes présents peut être très inférieure à la surface totale de l'image. Dans ce cas, il est nécessaire de caractériser plus précisément la signature caractéristique du code 25 visuel à localiser. Dans le premier cas, un calcul des gradients spatiaux d'intensité grad(Ip) pour chaque pixel p de l'image est d'abord effectué. Le gradient spatial d'intensité horizontal peut être calculé par la différence entre la valeur d'intensité du pixel courant diminuée de la valeur d'intensité du pixel situé immédiatement à gauche par exemple. Le gradient d'intensité vertical peut être calculé par la 30 différence entre la valeur d'intensité du pixel courant diminuée de la valeur d'intensité du pixel situé immédiatement au dessus. Une approximation du gradient 2910158 19 spatial d'intensité grad(I_p) pour le pixel p peut être représentée par la somme des gradients spatiaux horizontaux et verticaux tels que définis ci-dessus. Un premier seuillage empirique avec une valeur de seuil th] fixée est appliqué aux valeurs des gradients spatiaux d'intensité, et cela pour chaque pixel p de l'image, afin de 5 déterminer les régions de plus fort contraste. Une érosion mathématique, appliquée sur la carte issue de la binarisation des valeurs obtenues après seuillage, et utilisant par exemple un élément structurant de forme carré et de taille égale à 3 par 3 pixels peut permettre de réduire le nombre de pixels isolés et ainsi de ne garder que  As far as coding is concerned, a greater sophistication of visual code graphics, as well as the use of color-coded visual codes, makes it possible to increase the volume of data they convey.  By way of illustration, one-dimensional barcodes are increasingly being replaced by two-dimensional graphics in which the bars give way to small squares or other shapes.  Indeed, and although by analogy with the traditional barcodes the visual codes are sometimes designated by two-dimensional bar code, the graphic unit used for the coding, also called module, is generally no longer in the form of a bar or a stick.  Visual codes can thus be more sophisticated data vectors than the mere price or reference of an article.  The visual codes 5 may, for example, indicate a URL type address (Uniform Resource Locator Internet address).  The second cause of the development of visual codes is related to the provision of a very wide audience of tools likely to be suitable for their reading.  Equipment such as mobile phones or photographic devices equipped with a digital image sensor can indeed be easily transformed into a tool for reading digital codes.  Suitable software for an internal processing unit of these devices makes it possible to recognize a digital image in a digital image and to decode it if necessary.  The use of dedicated reading equipment is no longer required.  The simple provision of decoding software is sufficient for a large number of applications.  The built-in sensor cell phone, still referred to as a phone-cam, can be used to capture data via visual codes on articles, posters, newspapers and magazines.  The visual codes may also be temporarily displayed on a screen of other multimedia equipment, portable or not.  The visual codes thus appear as a means of communication and matching of multimedia equipment provided with display and shooting means.  Reading visual codes, with equipment that is not initially dedicated to this use, however, poses a number of difficulties.  Indeed, before decoding a visual code, it is necessary to enter one or more images of the medium bearing the visual code, the device must identify the existence of a visual code and possibly correct parallax defects or other image defects that may interfere with the decoding.  The visual codes may for this purpose be provided with additional signs or marks favoring their recognition and orientation in an image captured.  An illustration of the state of the art can be found, for example, in documents (1) and (2), the references of which are specified at the end of the description.  DISCUSSION OF THE INVENTION Given the relatively limited reading, analysis and calculation capabilities of non-dedicated equipment used for visual code reading, the decoding operation is far from instantaneous.  This is particularly the case for the phone-cam.  The difficulties of reading the visual codes mentioned above frequently result in failure of the decoding of the codes.  The user of portable equipment capable of reading visual codes, then tends to grab a new image of the visual code when the previous reading has failed decoding.  The succession of several image captures of a visual code and of several decoding failures then generates a negative impression for the user.  This impression is reinforced by the relative slowness of the decoding calculation performed at each new image capture.  The user may abandon his attempts to read visual codes and may also doubt the proper functioning of his equipment.  The object of the invention is to propose a method for reading visual codes that do not have the difficulties mentioned above.  A goal is also to provide such a method for guiding the user in reading the visual codes.  One goal is to reduce the risk of decoding failure and reduce the overall time required to read a visual code.  One aim is still to propose such a method making it possible to avoid repeated action by the user for reading a visual code.  To achieve these aims the invention more precisely relates to a method of reading visual codes comprising: a) the capture of at least a first digital image 30 b) the search in the digital image of at least one visual code and c) preparing to decode at least one visual code identified in step b).  According to the invention, this method comprises a step of calculating at least one descriptor of the visual code identified in the first digital image and by conditioning the decoding step to an evaluation of the descriptor.  By descriptor is meant qualitative information obtained from the visual code without decoding or at least without performing complete code decoding.  The descriptor is information distinct from the coded information carried by the visual code.  The descriptor may be different for different playback devices.  The descriptor is thus information that can be obtained without using the decoding software.  The descriptor can be established from certain markers or from certain marks accompanying the visual code.  These are, for example, marks for the identification of the visual code or to establish its orientation.  The descriptor is obtained by analyzing an image captured for reading the visual code.  The descriptors may take into account defects in geometry, image quality or data structure.  The calculation of the descriptor comprises, for example, a calculation of the geometry defects of the contours and basic modules constituting the visual code.  These defects may be due to parallax errors, perspective effects or even geometrical deformations or aberrations due to the imaging system.  The descriptor or components of a vector descriptor can also be calculated from prior knowledge of the structural organization of the visual code data.  Thus, in the case of a Datamatrix type code, it is known that the top and right edges of the visual code are alternately represented by black and then white modules.  Taking this knowledge into account makes it possible to deduce the density and the elementary size of a module.  It is also possible to calculate a function determining the level of sharpness or contrast of the source image using, for example, the calculation of a transfer modulation function.  The level of electronic noise from the CCD or CMOS sensor can also be estimated.  In the case where the source image has been previously encoded, it is also interesting to evaluate the damage caused by compression, such as the effects of blocks or rings around the most contrasting contours.  A histogram computation of the intensities of the contours of the visual code can make it possible to determine which chromatic channel (red, green or blue, for example) should be used preferentially for the decoding.  This can also be used to infer whether the quantization phase of the image, i. e.  the process of reducing the source image data to a limited number of intensity levels, which corresponds to the number of colors used to code the content of the visual code, will provide access to a level of detail sufficient to decoding.  The consideration of drop shadows or other elements that may affect the decoding can also be the subject of a descriptor.  For example, it is possible to distinguish the intensity of the dark pixels corresponding to the barcode structures of the intensity of the pixels corresponding to the shadows, the latter being more uniform regions.  The descriptor can also be calculated from the information from several images captured consecutively.  The taking into account of redundant and complementary information makes it possible to estimate more finely the probability of obtaining a correct decoding.  The calculation of one or more descriptors of a visual code identified conditions the decoding step.  If several descriptors are calculated, they form a description vector so each component can be tested individually or in combination.  Decoding can be conditioned upon the possibility of establishing a certain type of descriptor, a certain descriptor value or the fact that the calculated descriptor is considered acceptable.  The descriptor can also be compared to a reference descriptor.  The easiest way to validate this test or pre-decode phase is to compare each of the components of the description vector with a set of specific thresholds.  If all the values of the descriptors are in agreement with the set of previously defined thresholds, the initial image is considered as acceptable and the decoding process can be initiated.  A refinement of the method consists of using adaptive thresholds, that is to say the value of which itself depends on the content of the image.  For example, geometry defects can be calculated using polynomial models or by estimating one.  number of vanishing points in a 2D or 3D space.  The parameter values of the polynomial deformation models can be compared with threshold or reference values.  The position of the vanishing points can also be compared to a minimum distance below which the deformations will be considered too important.  If the regularity of the modules representing the fixed structure of the visual code is not respected, that is to say if for example the regular alternation of white and black modules is not observed, it is desirable not to validate the test phase.  Likewise, if the size of the modules resulting from a prior quantization phase is less than a given number of pixels, for example four pixels per module, it will be assumed that the probability of good detection is too low.  In general, it is considered that the descriptor of a visual code is acceptable if the possibility of establishing it or if the value of the descriptor is such that a subsequent decoding of the visual code can be achieved with a certain probability of success.  The descriptor thus gives a qualitative indication of the identified visual code and makes it possible to prejudge the chances of success of its subsequent decoding.  The calculation or evaluation of a descriptor is an operation that requires little computational power with respect to the decoding and can thus be performed at a speed much greater than the decoding.  The calculation of the descriptor thus makes it possible to avoid decoding when the chances of successful decoding are too low, and to multiply the capture of reading images.  This can take place in a very short time interval because of the quick calculation of the descriptor.  The search for a reading image leading to a successful decoding thus passes almost unnoticed by the user and does not generate an impression of malfunction.  Number of cameras has both the ability to capture still images, and image sequences.  The reading of the visual codes can thus be considered according to these two modes of shooting.  In a still image capture mode, the capture of an image can be followed by the calculation of a descriptor, and the evaluation, from the descriptor of the possibility of extracting data from a visual code. present in the picture.  The calculation of the descriptor and its evaluation make it possible, automatically or not, to enter a new reading image if the descriptor reveals a probable difficulty of decoding the visual code.  Preferably, descriptors are established whose computation duration is of the same order as the time separating two successive images of a sequence of captured images.  As indicated above, the capture and analysis of a plurality of read images can take place without generating a long waiting time for the user.  This increases the probability of having a usable image for decoding the visual code.  In an image capture mode in the form of a sequence, the method may comprise the following steps: a) the capture of a sequence formed of a plurality of successive images that may contain an image of a visual code, b) the search, in a first frame of the sequence, of at least one visual code, c) the calculation of a descriptor of the visual code if a visual code has been identified, d) the evaluation of the descriptor e) the decoding of the visual code when the descriptor of the first image is recognized as acceptable during the evaluation, and f) iteration of the method of step b) when the search for a visual code, the calculation of the descriptor and where the evaluation of the descriptor as acceptable is lacking, the iteration being performed respectively from a subsequent image of the image sequence.  The iteration consists of repeating step b) and, if appropriate, the following steps.  Iteration can include the automatic capture of a new image in a scan of the environment close to the barcode.  The sequence of captures necessary before the good decoding of the data contained in the visual code forms, by definition, a sequence of images acquired at a variable frequency in time, this being dependent on the time taken to calculate and analyze the value of the descriptors. as well as to initiate a new capture.  It is possible that the calculation and evaluation of the description vector may be performed at a lower resolution or level of detail than that used for the decoding itself.  Similarly, it is possible to use so-called image fusion techniques for combining the information of structure and intensity present in several successive images of the sequence previously or continuously acquired.  The redundancy and complementarity of the data present in an image sequence make it possible to extend and improve the process of constructing the description and validation vector as well as the process of decoding the data itself.  The use of several temporally consecutive images and of low resolution can make it possible to obtain a higher resolution image, thus easier to decode.  These techniques are grouped under the term of "super-resolution" approaches.  It is also possible to evaluate the descriptor from a particular color information, for example a subset of the potentially accessible data, such as the use of the only green channel of the red, green, blue triplet.  The capture of a sequence of images may be continued during the executions of the subsequent steps of the method.  Thanks to the mode of capturing under a sequence, and thanks to the relatively fast calculation of the descriptors, it is possible for the user to scan with his mobile equipment a medium containing a visual code, until a acceptable descriptor is established and decoding takes place.  According to a possible improvement of the method, it may further comprise, subsequent to the step of calculating the descriptor, the visual or audio transmission of information dependent on the descriptor.  The information may be, for example, a message or pictogram displayed on a display screen of the equipment used for reading the visual code.  The information transmitted can be established from the descriptor or selected according to a feature of the descriptor.  By way of illustration, if the descriptor comprises calculating the relative size of the visual code in the captured image and if this relative size is less than a predetermined value, the displayed information may be an invitation to the user. user to approach his shooting equipment of the medium presenting the visual code.  This information may be previously recorded and simply called in response to the calculation of the descriptor, or in response to an evaluation of the descriptor deemed unacceptable.  In a very simple way, the information displayed can inform the user if a visual code has been identified and / or it is possible to decode it.  A sound tone can also be emitted depending on whether the calculated descriptor is evaluated as acceptable or not.  When the descriptor allows, without decoding the visual code, to give information derived from the visual code, this data can also be displayed.  Such data may be, for example, a trademark, logo, or non-coded information, or information with a summary code associated with the visual code.  Additionally, the transmission of visual or sound information may be accompanied by an invitation to enter a user command.  The user command, which consists, for example, in operating a button, can be used as an additional condition for decoding.  This possibility is interesting when several visual codes are detected, to make a choice between the visual codes (rising to be decoded.  When several visual codes are detected, and in the mode of entering a sequence of images, the steps of searching for a visual code, calculating a descriptor and / or evaluating the descriptor can also be iterated. from a subsequent image of the sequence, in the absence of a user command.  The step b) of identifying a visual code may comprise a number of sub-steps which aim not only at the simple identification of a visual code but also at the formatting of the signals relating to the code in order to of his decoding.  More specifically, the method may comprise a plurality of visual code formatting substeps in which at least one formatting sub-step is associated with the calculation of a descriptor and wherein the execution of a Subsequent step is conditioned by the evaluation of the descriptor associated with a previous substep.  Thus, and by way of example, step b) may comprise the sub-steps of identifying an area likely to contain a visual code, a thresholding step, a code edge detection step, a so-called mesh step and finally a step of detection of the modules of the visual code.  Each sub-step can be the subject of the calculation of a descriptor, and the execution of the next step can be conditioned by the validation of the descriptor, that is to say its evaluation and the recognition of the descriptor as being acceptable.  Other features and advantages of the invention will emerge from the following description, with reference to the figures of the accompanying drawings.  This description is given for purely illustrative and non-limiting purposes.  BRIEF DESCRIPTION OF THE FIGURES FIG. 1 is a diagram illustrating a method of reading visual codes in accordance with the invention using a camera operating in a still mode of shooting.  FIG. 2 is a diagram illustrating a method for reading visual codes according to the invention using a camera operating in a sequential mode of shooting.  Fig. 3 is a diagram illustrating a method of reading visual codes according to the invention and involving the calculation of a plurality of descriptors.  DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION In the description which follows, identical references are used for identical or similar parts of the two figures.  A first step 100 of FIG. 1 includes capturing an image by a digital camera such as a phone-cam or a camera.  The shooting is followed by a step 102 of identification in the image of at least one visual code.  The identification step 102 may be accompanied by one or more image shaping substeps and, where appropriate, the identified visual code.  These substeps are intended to recognize in the image a visual code and to put it in a form suitable for subsequent decoding.  The main reason for step 102 is that the shooting equipment used for reading the visual codes is not necessarily dedicated equipment only to this task, and that the image captured is not necessarily an image captured with the intention of decoding a visual code.  The search for a visual code is based on the graphic recognition of a number of structures considered as part of the visual codes.  The recognition of visual codes can be facilitated when the visual codes are associated with recognition marks such as outlines or markers of shape or color that can be identified after a summary analysis of the captured image.  As indicated above, the identification step in the image code image can be supplemented by a number of image corrections, or formatting, performed when a visual code is detected.  The corrections may be geometric, contrast or magnification corrections and are intended to improve the reading of the visual code.  By way of example, a homothetic deformation of the image or of a part of the image that satisfies a visual code can be performed so as to correct parallax deformations when the axis of view is not normal. in terms of the visual code entered.  Such corrections can also be facilitated by using frames, graphic meshes, or outlines accompanying visual codes.  A next step 104 is to compute one or more descriptors of the visual code.  A unique descriptor can be associated with the overall result of the identification step.  A plurality of descriptors may also be associated with a plurality of visual code identification and correction sub-steps.  As mentioned above, the descriptor aims to provide qualitative information of the visual code that can be used to evaluate the chances of success of a subsequent decoding step.  The descriptor may reflect, for example, the quality of the contrast, the graphic quality, and or the colorimetric quality of the visual code.  The descriptor calculation may be performed after the image corrections mentioned in relation with the previous step 102, or take into account the defects noted, which may or may not be corrected.  The calculation of the descriptor may be a calculation of all or part of the visual code.  It can determine contours, contrasts, or other visual code features such as spatial repetition frequencies of a pattern.  The calculation of the descriptor can also take advantage of the accessory presence of marks alongside the visual code facilitating the calculation.  These are position marks, frames and other graphic or color elements such as 1 o mentioned above.  The descriptor may also provide information or be used as a pointer to pre-recorded information qualifying the visual code or to classify the visual code in a predetermined category.  By way of illustration, the descriptor can be used to establish whether a visual code is a code carrying identification information, authentication information, communication link information, advertising information, or a link without the information itself being decoded.  If this is the case, an additional step 105 indicated in broken lines 20 may be provided to broadcast a message carrying the information or information established.  If the reading equipment is provided with a display screen, the message may be broadcast by displaying an image, an icon or a written message.  A sound broadcast of the message is of course not excluded.  The broadcast of the message may also be subsequent to the evaluation of the descriptor and conditioned by this evaluation.  Reference 106 indicates the step of evaluating the descriptor.  The evaluation of the descriptor can take different forms.  It can be automatic or use a command from the user.  An automatic evaluation may include comparing the descriptor 30 to a setpoint or descriptor setpoint.  This is for example a descriptor value, such as a contrast value, from which the decoding can be performed with reasonable chances of success.  Similarly, the set descriptor may be a predetermined descriptor corresponding to a decodable visual code.  Descriptors can take into account geometry, image quality or data structure defects.  The calculation of the descriptor comprises, for example, a calculation of the geometry defects of the contours and the basic modules constituting the visual code.  These defects may be due to parallax errors, perspective effects or even geometrical deformations or aberrations due to the imaging system.  The descriptor (or part of the description vector) can also be calculated from prior knowledge of the structural organization of the visual code data.  Thus, in the case of a datamatrix type code, it is known that the top and right edges of the visual code are alternately represented by black then white modules.  Taking this knowledge into account makes it possible to deduce the density and the elementary size of a module.  It is also possible to calculate a function that determines the level of sharpness or contrast of the source image by, for example, calculating a transfer modulation function.  The level of electronic noise from the CCD or CMOS sensor can also be estimated.  In the case where the source image has been previously encoded, it is also interesting to evaluate the damage caused by the compression, such as the effects of blocks or "ringing" around the most contrasted contours.  A histogram calculation of the intensity of the contours of the visual code can make it possible to determine which chromatic channel (red, green or blue for example) should be used preferentially for the decoding.  This can also be used to infer whether the quantization phase of the image, i. e.  the process of reducing the source image data to a limited number of intensity levels, which corresponds to the number of colors used to code the content of the visual code, will provide access to a level of detail sufficient to decoding.  The consideration of drop shadows or other elements that may affect the decoding can also be the subject of a descriptor.  For example, it is possible to distinguish the intensity of the dark pixels corresponding to the barcode structures of the intensity of the pixels corresponding to the shadows, the latter being more uniform.  The descriptor can also be calculated from the information from several images captured consecutively.  Taking into account redundant and complementary information makes it possible to estimate more precisely the probability of obtaining a correct decoding.  It is considered that the descriptor is acceptable when it corresponds to the setpoint or is greater than the setpoint according to a predetermined criterion.  An evaluation can also be performed by integrating a command from the user.  It includes, for example, displaying information as indicated with reference 105 and waiting for a user command 108, such as, for example, the depression of a button.  This makes it possible, in particular, to present to a user different categories of visual codes identified by the calculation of one or more descriptors and to let the user decide whether a decoding should take place. .  The automatic evaluation and evaluation involving a user's command can be cumulated or not.  They are indicated with references 106a and 106u.  Another possible step indicated in broken lines with a reference 109 is to emit a signal, for example a sound signal indicating that a visual code has been identified and that it can be decoded.  This means that its descriptor is recognized as acceptable during the evaluation.  When the descriptor has been evaluated and recognized as acceptable after the evaluation 106a, 106u, the decoding step of the visual code (s) concerned is performed.  This step is indicated with reference 110.  The step of decoding the 25 visual codes does not call for particular comments.  It is performed according to code-specific software instructions.  Optionally some parameters of the decoding or decoding software choice can be made according to the previously established descriptor (s).  For example, one or more descriptors measuring geometric or colorimetric distortions could be effectively reused during the decoding phase.  Indeed, there may exist between the decoding phase itself and the test phase a phase of preparation of the source image at its decoding.  In particular, this phase could benefit from descriptor calculations.  Finally, a last step 112 represents an action resulting from the decoding.  This is, for example, display, connection, equipment pairing, sending and / or receiving data.  The action is dictated by the decoded information.  This last step is no longer part of the reading process but is its logical continuation.  When the descriptor is not recognized as acceptable, i.e., the chances of success of subsequent decoding are considered too low, the process can be continued by entering a new image.  This path, indicated by an arrow 107, also responds to situations where the image previously entered did not contain a visual code, and where an existing visual code was not recognized.  Indeed, in these cases, too, no acceptable descriptor is established and the seizure of a new image can immediately follow step 102 as shown by a broken line arrow 113.  The entry of a new image may be preceded by the display 114 of a message deduced from the previously established descriptor.  This is, for example, an invitation to the user to enter a new image and / or change the shooting conditions.  By way of example, a descriptor in the form of a spatial frequency measurement can be used to prompt the user for an image closer or farther away or for a zoom control.  A contrast descriptor can be used to prompt the user to change the lighting conditions, for example, by triggering a flash.  Reference 116 indicates an automatic modification of shooting conditions, such as zooming or lighting, for example, when a descriptor is set.  The triggering of the capture of a new image for the identification of visual codes and any corrections made to this new shot can indeed be automatic or not.  FIG. 2 illustrates another embodiment of the invention in which the reading of visual codes is performed in a sequential shooting mode.  The first step 100 of shooting does not include the capture of a single image but a plurality of images.  The capture of the plurality of images is performed, for example, when the user holding the camera, scans a field of view may contain visual codes.  The scanning makes the successive images of the seized sequence slightly different from one to another.  The shooting conditions and the conditions for entering a possible visual code are thus variable in the sequence.  The seizure of the sequence is continued by steps 102 of identification / correction of a visual code and calculation of a descriptor 104.  These steps are performed as previously described using an image of the sequence.  They are performed, for example, using the first or one of the first images of the sequence.  During the calculations corresponding to the search for possible visual codes and during the calculation of possible descriptors, the shooting 100 may be interrupted or continued.  If a descriptor is established and if this descriptor makes it possible to provide information on an identified visual code, corresponding information may be displayed in step 105.  This information allows for example the user to choose to continue or interrupt the shooting sequence and / or confirm a desire to decode a visual code.  As before, the descriptor evaluation 106 makes it possible to determine whether the decoding of an identified visual code may or may not be achieved with reasonable chances of success.  If so, the method can be continued by decoding 110 and any subsequent steps 112 using the decoded information.  The evaluation 106 may involve the user by inviting him to enter a command.  In the negative, on the other hand, or in the absence of a command from the user, if necessary, a new visual code search and a new descriptor calculation is made.  This is illustrated by an arrow 107.  The iteration of searching for a visual code and calculating a descriptor does not include a new shot but is performed with an image different from the sequence captured in the initial step 100.  Preferably these operations are performed with a subsequent image of the image sequence.  It can be the image captured immediately after the one used in previous calculations or an image captured later.  It should be emphasized that when the rate of capture of the images in the image sequence is high, two images which succeed one another immediately generally have a close image content and lead, if necessary, to the calculation of equally close descriptors.  Thus, if the descriptor of an image is not considered acceptable for decoding, it may be unnecessary to iterate the method with the nearer image or images adjacent to the image previously considered.  In the same way, if a descriptor is considered acceptable, it is possible in this case to decode the visual code either with the image that was used to calculate the descriptor or with a close image close to it, in the sequence. .  As indicated above, the step of identifying and formatting a visual code for its decoding may include a number of substeps, with or without the calculation of corresponding descriptors.  These substeps are described in more detail in the following.  The first substep following the capture of the image consists in extracting at least one candidate zone capable of containing the visual code (s).  The result of this analysis phase can be formulated as a descriptor which conditions the triggering of the following phases.  If this is the case, a subsequent sub-step may consist in thresholding, or binarizing, the previously identified candidate areas.  The result of this quantification makes it possible to identify, where appropriate, the structure of the visual code.  The result of this step can be further formulated as one or more descriptors.  In the event of validation of the descriptor (s), a phase of analysis of the structure of the visual code makes it possible to retain or not the zone previously isolated.  Also, the next sub-step may consist of calculating a mesh that best fits the structure of the visual code.  In the case where a descriptor characterizing the mesh thus estimated is validated, the calculation of the value assigned to each module, (for example white or black in the case of a binary visual code), is carried out.  The result obtained can serve as an input signal to a decoding module of the visual code.  We will now describe more precisely each of these steps and determine the descriptors associated with each of these steps.  The first substep following the capture of an image is as indicated above to find candidate areas that may contain a visual code.  It is possible that candidate areas can not be identified when there are not enough spatial intensity gradients in a channel or color space used.  This may mean that the image contains only uniform areas (white background for example) or that there is too little contrast due to over- or under-exposure.  It is also possible that the color response does not match the color space used.  We now describe two methods for identifying the candidate area (s).  The first method assumes that the immediate environment of the visual code is uniform, which means that the user has come close enough or zoomed enough to capture only a region near the edges of the visual code.  It is assumed here that the visual code is surrounded by a uniform bright area whose pixel value is identical to that of the clear modules of the matrix to be decoded.  This area surrounding the code is assumed to represent for example 50% of the width and / or the height of the pattern. A second possibility of implementation includes the extraction of the candidate areas of any image of any content and whose surface area or codes present may be much smaller than the total area of the image.  In this case, it is necessary to characterize more precisely the characteristic signature of the visual code to be located.  In the first case, a calculation of the gradual intensity gradients (Ip) for each pixel p of the image is first performed.  The spatial gradient of horizontal intensity can be calculated by the difference between the intensity value of the current pixel minus the intensity value of the pixel located immediately to the left, for example.  The vertical intensity gradient can be calculated by the difference between the intensity value of the current pixel minus the intensity value of the pixel immediately above.  An approximation of the gradient intensity gradient (I_p) for pixel p may be represented by the sum of the horizontal and vertical spatial gradients as defined above.  A first empirical thresholding with a fixed th th th threshold value is applied to the values of the spatial intensity gradients, for each pixel p of the image, in order to determine the regions of higher contrast.  A mathematical erosion, applied on the map resulting from the binarization of the values obtained after thresholding, and using, for example, a structuring element of square shape and of size equal to 3 by 3 pixels can make it possible to reduce the number of isolated pixels and thus not keep that

les zones connexes de plus fortes textures. Les histogrammes représentant le nombre 10 cumulé des pixels p ayant une valeur grad(Ij,) supérieure au seuil th1 sont calculés horizontalement et verticalement, c'est-à-dire pour chaque ligne et pour chaque colonne de la carte supposée rectangulaire. Par exemple, si la dixième valeur de l'histogramme dit vertical est égale à vingt, cela veut dire que la dixième ligne de la carte de données binarisées présente vingt pixels ayant une valeur de 15 gradient spatial d'intensité supérieure au seuil th]. De même, si la trentième valeur de l'histogramme dit horizontal est égale à cinq, cela veut dire que la trentième colonne de la carte de données binarisées présente seulement cinq pixels ayant une valeur de gradient spatial d'intensité supérieure au seuil th'. La zone susceptible de contenir le code visuel doit être représentée par des valeurs d'occurrences des 20 histogrammes plus élevées. Il est cependant possible que d'autres structures géométriques proches du code visuel aient été capturées dans le champ de la caméra. Les données de chacun des deux histogrammes peuvent ensuite être filtrées à l'aide d'un filtre Gaussien ou Médian par exemple. Cela permet de lisser les variabilités locales susceptibles d'altérer l'étape suivante. Un seuillage mono- 25 dimensionnel th2 est appliqué à chacun des deux histogrammes, ce qui permet d'identifier dans chacune des deux directions le segment de plus grande taille représentatif des dimensions du code visuel. Un segment est un intervalle correspondant à la différence entre les coordonnées maximale et minimale pour lesquelles toutes les valeurs de l'histogramme associé sont au dessus du seuil th2. A 30 titre d'illustration, on suppose que l'histogramme vertical présente des valeurs d'occurrences supérieures à th2 entre les coordonnées (en abscisses) vingt et 2910158 20 cinquante. Dans ce cas, un segment aura pour dimension cinquante moins vingt, c'est-à-dire trente. Il est possible que pour une direction donnée, par exemple la direction verticale, plusieurs segments soient extraits de la phase de seuillage. Dans ce cas, seul le segment présentant la plus grande valeur est conservé et jugé 5 représentatif de la dimension de la zone candidate dans la direction considérée. Une zone candidate est donc entièrement définie par le rectangle correspondant aux deux segments segmh et segmv obtenues dans les directions horizontale et verticale. Le premier jeu de descripteurs descl est représenté par les longueurs des deux segments ainsi que par la valeur absolue de leur différence de taille relative. 10 ( segmi, desc, = segmä (1) Jsegm,, û segmv l ) Si les dimensions de la zone candidate sont trop petites, ou si un des segments présente une différence de taille trop importante avec l'autre, le jeu de descripteurs 15 est invalidé et la phase de lecture des données s'arrête. Ceci initie alors, soit une nouvelle capture d'image, soit la prise en compte d'une nouvelle image d'une séquence jusque là temporairement stockée. Notons que le troisième argument du vecteur descl n'est utilisable que par la connaissance exacte de la forme ou du facteur d'aspect du code visuel à décoder.  related areas of stronger textures. Histograms representing the cumulative number of pixels p having a grad value (Ij,) greater than th1 are calculated horizontally and vertically, i.e., for each row and for each column of the supposed rectangular map. For example, if the tenth value of the so-called vertical histogram is equal to twenty, this means that the tenth line of the binarized data map has twenty pixels having a spatial gradient value of intensity greater than the th th threshold. Similarly, if the thirtieth value of the horizontal histogram is equal to five, this means that the thirtieth column of the binarized data map has only five pixels having a spatial gradient value of intensity greater than the threshold th '. The area likely to contain the visual code must be represented by occurrence values of the higher histograms. It is possible, however, that other geometric structures close to the visual code have been captured in the field of the camera. The data of each of the two histograms can then be filtered using a Gaussian or Median filter for example. This smoothes the local variability that may affect the next step. A one-dimensional thresholding th2 is applied to each of the two histograms, which makes it possible to identify in each of the two directions the segment of larger size representative of the dimensions of the visual code. A segment is an interval corresponding to the difference between the maximum and minimum coordinates for which all the values of the associated histogram are above th2. By way of illustration, it is assumed that the vertical histogram has occurrence values greater than th2 between the coordinates (in abscissa) of twenty and fifty-nine. In this case, a segment will have a dimension of fifty to twenty, that is, thirty. It is possible that for a given direction, for example the vertical direction, several segments are extracted from the thresholding phase. In this case, only the segment with the largest value is kept and judged to be representative of the size of the candidate area in the considered direction. A candidate zone is thus entirely defined by the rectangle corresponding to the two segments segmh and segmv obtained in the horizontal and vertical directions. The first descriptor set des1 is represented by the lengths of the two segments as well as by the absolute value of their relative size difference. 10 (segmi, desc, = segmä (1) Jsegm ,, û segmv l) If the dimensions of the candidate area are too small, or if one of the segments is too large in size with the other, the set of descriptors 15 is disabled and the data reading phase stops. This initiates then, either a new image capture, or the taking into account of a new image of a sequence hitherto temporarily stored. Note that the third argument of the vector descl is usable only by the exact knowledge of the shape or aspect factor of the visual code to be decoded.

20 Un autre mode de mise en oeuvre consiste à considérer que le code visuel peut avoir une taille quelconque dans l'image et peut être environné par un fond structuré ou texturé. Une recherche des zones à fort gradients spatiaux d'intensité n'est donc pas suffisante pour déterminer les zones candidates et il devient nécessaire de calculer une signature, c'est-à-dire une caractéristique propre de la 25 surface du code visuel. Dans ce cas, une première étape se base sur le calcul et le seuillage des gradients spatiaux d'intensité pour chaque pixel de l'image. Cette étape a déjà été introduite précédemment. Cela permet d'identifier les zones non uniformes susceptibles de contenir un code visuel. Ces zones sont ensuite partitionnées en un ensemble de sous-régions carrées ou non. Dans chacune de ces 2910158 21 sous-régions, par exemple un bloc de pixels, les histogrammes des valeurs des pixels dans chacun des canaux utilisés (par exemple le rouge, le vert et le bleu) sont calculés. Ces signatures d'un code matriciel binaire de type Datamatrix, QR code ou Aztec sont caractéristiques dans le sens ou la réponse des histogrammes 5 doivent être similaires dans les trois canaux spectraux. De plus, ces trois histogrammes doivent présenter 2 modes distincts, correspondant aux modules clairs et aux modules sombres caractérisant la structure du code visuel. L'extraction des modes principaux d'un histogramme peut, par exemple, être effectuée par une estimation des modes d'un mélange de lois gaussiennes. Cela 10 peut être implémenté en utilisant un algorithme EM (Expectation-Minimisation) où le nombre de lois est connu (2) et où l'initialisation se fait au premier tiers et au deux-tiers de l'histogramme. Pour limiter le risque d'avoir un code visuel "à cheval" sur plusieurs blocs, il est possible d'utiliser des blocs se chevauchant. Il est également possible de centrer les zones où seront calculés les histogrammes autour 15 des zones de plus fort contraste, et de déterminer leur taille respective. Un descripteur desc2 est dans ce cas constitué par les composantes suivantes: 255 E I histR (i) ù histG (i)I i-o 255 I I histR (i) ù histB (i)I r=o 255 E IhistB (i) ù histG (i)I I/1R2 - / G21 6R2 + 0 G2 IPR1 - PR1 I 0-R1 + CRI I/1R2 f1B2I 6R2 + 6B2 IPRI PB1 I 6R1 + B1 l,GI PB1 I 6G1 + 0-B1 I PG2 PB2I (2) 6G2 + 6B2 desc2 = 2910158 22 pour lequel les 3 premières composantes sont les sommes des valeurs absolues des différences point à point entre 2 des 3 histogrammes représentatifs des canaux rouge, vert et bleu. Il est également possible d'utiliser le carré des différences. Ici, chaque canal est supposé être codé sur 1 octet ou 8 bits. Dans tous les cas, chacune 5 des sommes est comparée à un seuil th3. Lorsque les valeurs de ces 3 composantes sont inférieures à th3, alors les histogrammes sont jugés similaires, et cela quels que soient les canaux de couleur. De même, les autres composantes du vecteur de description desc2 représentent la distance dite de Ficher, définie comme étant le quotient entre la différence de la valeur absolue des positions (ou abscisses) de 2 10 modes et la somme de leurs écarts types. En supposant que (URI, pR2) et (6RJ, 6R2) sont respectivement les moyennes et les écart-types des modes d'abscisse minimum (R1) et d'abscisse maximum (R2) de l'histogramme des valeurs du bloc dans le canal rouge (R), et en supposant de même pour les canaux vert (uyläuV2 et 6V1, (Ty2) et bleu (UBI, ,PB2 et 6BJ, oB2), la distance de Ficher est calculée entre, par exemple, 2 15 modes minimum ou 2 modes maximum appartenant à 2 histogrammes distincts. Cette distance est comparée à un seuil th4. Lorsque ces composantes sont inférieures à ce seuil, alors les 2 modes sont jugés proches. Finalement, une signature est jugée caractéristique d'une structure de code visuel 2D binaire lorsque l'ensemble des composantes du vecteur de description vérifie les inégalités définies 20 ci-dessus. Nous allons maintenant décrire la phase de binarisation et de recherche du contour, ou du bord du code visuel. Cette étape peut être conditionnée à la validation des descripteurs précédents, quel que soit le mode de mise en oeuvre choisi pour isoler les zones candidates. Nous proposons une méthode de seuillage 25 adaptatif, dont la valeur de seuillage varie spatialement en fonction du contenu présent dans la zone candidate. L'idée principale est de prendre en compte les variations locales d'intensité dans l'image. Elles peuvent être dues à des variations des conditions d'éclairement, par exemple à des ombres portées sur une partie de l'image, ou encore à des variations dues aux limitations du dispositif de prise de 30 vue. Par exemple, les coins de l'image peuvent être plus sombres en raison d'un vignetage. Le degré de piqué de l'image peut également dépendre de la position 2910158 23 dans le champ, ce qui aura pour effet de rendre certains modules plus clairs ou plus sombres que d'autres. Nous supposons par la suite qu'il existe autour du code visuel une zone uniforme et d'intensité lumineuse similaire à celle des motifs (ou modules) clairs qui le constituent. La largeur de cette zone uniforme peut par 5 exemple représenter 50% des dimensions caractéristiques (longueur/largeur) du code visuel. De préférence, un seul un canal de couleur est conservé pour analyser la zone candidate, ceci afin de diminuer le nombre de données à traiter. Le meilleur choix est dans ce cas le canal qui maximise le signal (la structure du code visuel) 10 tout en minimisant le niveau de bruit dans l'image. Maximiser le signal revient à dire que le canal de couleur utilisé, ou la combinaison de canaux, doit pouvoir produire le plus haut contraste possible entre les modules et le fond. De même, les canaux spectraux choisis maximisent de préférence la résolution des données sources. Par exemple, lorsqu'on utilise un dispositif de prise de vue de type CCD 15 associé à un filtre de Bayer, le canal vert peut être avantageusement choisi car il bénéficie d'une meilleure résolution spatiale que le bleu et le rouge. De même, dans le cas d'un codage en luminance-chrominance (YCbCr par exemple), le canal de la luminance peut être privilégié si l'on choisi de favoriser ce même critère de résolution. Dans le cas ou le code visuel est lu et décodé à partir d'un téléphone 20 portable équipé d'un capteur CMOS, le canal bleu est évité car il est plus sensible au bruit. La zone candidate est partitionnée en blocs disjoints B; de taille égale à 8x8 pixels, par exemple. Le gradient spatial d'intensité grad(I p) est calculé pour chacun des pixels p appartenant à un bloc. L'histogramme histi associé au bloc Bi 25 représente le nombre d'occurrences des pixels ayant une valeur de gradient grad(Ip) donnée. On peut noter que cette valeur est quantifiée de préférence par pas de un, ceci afin d'avoir un nombre d'occurrences suffisant. Le seuil Ms correspond à la valeur la plus grande des gradients spatiaux d'intensité vérifiant l'équation: 30 2910158 24 N E th5 x hist(th5) grad _total x perc (3) fils =1 où grad total représente la somme des gradients spatiaux d'intensité dans le bloc Bi. N est la valeur de gradient spatial d'intensité la plus grande pour laquelle l'histogramme histi à une valeur non nulle. Cependant ths est la plupart du temps 5 plus petit que N. Le pourcentage perc peut être fixé à 50%, (ou 0,5), dans l'équation précédente. Les gradients les plus faibles ne sont pas considérés. En effet, ils peuvent par exemple être dus à du bruit dans l'image ou à des structures étrangères à celle du code matriciel situées dans son environnement proche. Il est à noter que dans des zones moins contrastées de l'image, les valeurs de seuil sont de 10 préférence calculées à partir de contours moins contrastés et sont donc plus faibles, cela pour mieux prendre en compte les variabilités spatiales locales de l'image saisie. Le seuil th5 est comparé à une valeur de gradient spatial d'intensité minimale, fixé empiriquement à 5 par exemple. Si th5 est inférieur à cette valeur, alors le bloc est jugé uniforme et un traitement particulier est effectué. Sinon, le 15 bloc est jugé avoir suffisamment de contour pour représenter les structures d'un code visuel. Dans ce dernier cas, l'histogramme histl i est calculé. Celui-ci est formé par le nombre d'occurrences des intensités I des pixels appartenant à des zones dont la valeur des gradients spatiaux d'intensité est supérieure au seuil ths. Pour chaque pixel p dont la valeur grad(I_p) est supérieure à ths, la valeur 20 d'intensité minimale entre les pixels voisins (4-connexité) en haut et à droite est utilisée pour calculer l'histogramme hist.l i. L'histogramme histl i est utilisé pour déterminer la valeur moyenne des pixels ayant été considérés lors de sa construction. Cette moyenne représente une première approximation de la valeur de seuil thi utilisée pour la binarisation de la zone candidate dans la région 25 délimitée par le bloc Bi. La valeur finale est calculée en prenant en compte les valeurs des seuils th] des blocs j voisins. Dans le cas où le bloc Bi a été jugé uniforme, un procédé différent est utilisé. Une première étape non encore décrite de cette phase de binarisation consiste à diviser la zone candidate en 4 "grandes" régions de taille équivalente. Pour chacune de ces quatre zones R, la valeur 30 moyenne des intensités des pixels est calculée et mémorisée. Dans le cas où la 2910158 25 méthode est appliquée à traiter un bloc uniforme, la position de celui-ci est d'abord déterminée en comparant la position de son centre de gravité avec les frontières des 4 zones précédemment décrites. Une fois que le bloc en question a été associé à l'une des 4 zones, c'est-à-dire une fois que le bloc a été jugé appartenir à une des 5 4 régions, la valeur moyenne des intensités du bloc Bi est comparée à la valeur moyenne des intensités des pixels de la région Rk la contenant. Si le bloc est plus clair, le bloc est supposé uniforme et représentatif d'une zone claire. Aussi, le seuil thi est égal à la valeur d'intensité minimale précédemment calculée et stockée. Si le bloc est plus sombre, le bloc est supposé uniforme et représentatif d'une zone 10 sombre. Aussi, le seuil thi est égal à la valeur d'intensité maximale précédemment calculée et stockée. A ce stade du procédé, chacune des zones candidates est caractérisée par un ensemble de valeurs de seuil thi associé à une partition spatiale constituée des bloc Bi. Afin de limiter les effets inhérents à ce type de méthode de calcul par bloc, 15 autrement appelés "effet de blocs", il est possible d'appliquer un filtrage spatial directement aux valeurs de seuil. Aussi, la valeur de seuil finale THiassociée au bloc Bi sera obtenue par convolution des valeurs de seuil dans son voisinage (supposé en 8-connexité) par un noyau discret de type Laplacien. A titre d'exemple, les valeurs fû) du noyau de convolution f (carré de taille 3x3 éléments, 20 l'indice j ci-dessous est donc compris entre 0 et 8) sont par ligne: (1, 2, 1), (2, 4, 2) et (1, 2, 1). Aussi, la valeur de seuil finale THi associée au bloc Bi sera telle que: THi = 1 E [thi . f (j) . u(j)] (4) (f (J) • u(j)) JE[O,8] 25 où le coefficient fû) est une valeur binaire (0 ou 1) traduisant le fait que le bloc Bi considéré est uniforme ou non au sens de la description précédente. Aussi, si un des blocs voisins est jugé uniforme, alors la valeur associée fû) est égale à 0, ce qui veut dire que la contribution de ce bloc est nulle dans le calcul du seuil THi. De même, si un des blocs voisins est jugé non uniforme, la valeur associée fû) est 2910158 26 alors égale à 1, ce qui veut dire que la contribution de ce bloc est non nulle dans le calcul du seuil THE. Cette phase de binarisation adaptative des zones candidates produit un ensemble de valeurs de seuil THi associée à une partition spatiale constituée des 5 bloc Bi. Le nombre et l'organisation de ces valeurs permets de dériver un nouveau vecteur de description desc3 susceptible d'être validé ou non afin de poursuivre la phase de lecture des données image. Plus précisément, le descripteur peut être validé si le nombre nbB de blocs uniformes n'est pas trop grand par rapport au nombre total de blocs NB constituant la partition de la zone candidate, et s'il 10 n'apparaît pas trop de blocs uniformes au milieu de la structure supposée du code visuel. Par exemple, au moins 50% des blocs doivent être jugés comme étant non-uniformes et il ne faut pas plus de 2 blocs uniformes "au milieu" de la structure supposée du code visuel. La seconde composante comp2 du vecteur de description desc3 (la première composante étant le nombre nbB) est la somme d'une fonction de 15 coût'', définie comme étant une fonction linéaire de la distance entre le centre de la zone candidate et le centre de gravité du bloc considéré, soit: NB-1 comp2 = E f,(B) (5) i=o Plus cette fonction somme a une valeur importante et plus le nombre de 20 blocs uniformes proches du centre est important. L'exploitation de cette composante n'a toutefois de sens que dans le cas où l'on suppose que le code visuel est relativement centré dans la zone candidate. Lorsque le descripteur précédemment décrit est validé et la binarisation effectuée, une étape suivante peut consister à déterminer de façon plus précise les 25 contours du code visuel. Le seuillage produit une image imB de la zone candidate pour laquelle les pixels contenus dans un bloc Bi ayant une valeur inférieure au seuil THi sont affectés de la valeur 0 tandis que ceux dont la valeur sera supérieure à ce seuil sont mis à 1 ou 255 par exemple. Les histogrammes représentant le nombre cumulé des pixels p ayant une valeur nulle (au sens de la binarisation 30 précédemment décrite) sont calculés horizontalement et verticalement, c'est-à-dire 2910158 27 pour chaque ligne et pour chaque colonne dans le cas d'un code visuel rectangulaire. Par exemple, si la dixième valeur de l'histogramme dit vertical est égale à vingt, cela veut dire que la dixième ligne de la carte de données binarisées présente vingt pixels ayant une valeur nulle. De même, si la trentième valeur de 5 l'histogramme dit horizontal est égale à cinq, cela veut dire que la trentième colonne de la carte de données binarisées présente seulement cinq pixels ayant une valeur nulle. La zone susceptible de contenir le code visuel doit être représentée par des valeurs d'occurrences des histogrammes plus élevées. Il est cependant possible que d'autres structures géométriques proches du code visuel aient été 10 capturées dans le champ de prise de vue lors de la saisie de l'image. Les données de chacun des deux histogrammes peuvent ensuite être filtrées à l'aide d'un filtre Gaussien ou Médian par exemple. Cela permet de lisser les variabilités locales susceptibles d'altérer l'étape suivante. Un seuillage mono-dimensionnel th6 est appliqué à chacun des deux histogrammes, ce qui permet d'identifier dans chacune 15 des deux directions le segment de plus grande taille représentatif des dimensions du code visuel. Un segment est un intervalle correspondant à la différence entre les coordonnées maximale et minimale pour lesquelles toutes les valeurs de l'histogramme associé sont au dessus du seuil th6. Par exemple, en supposant que l'histogramme vertical présente des valeurs d'occurrences supérieures à th6 entre les 20 coordonnées (abscisses) dix et cinquante, un segment aura pour dimension cinquante moins vingt, c'est-à-dire trente. Il est possible que pour une direction donnée, par exemple la verticale, plusieurs segments soient extraits de la phase de seuillage. Dans ce cas, seul le segment présentant la plus grande valeur est conservé et jugé représentatif de la dimension de la zone candidate dans la 25 direction considérée. Une zone candidate est donc entièrement définie par le rectangle dont les dimensions caractéristiques sont égales à la taille des deux segments obtenus dans les directions horizontale et verticale. Particulièrement, il est possible de définir les coins (ou angles) du rectangle (dit rectangle englobant) formé par les 2 segments précédemment calculés. Si l'étape précédente n'a pas 30 permis d'obtenir de segment, ou si un seul a été détecté, alors le calcul des coordonnées des coins n'est toutefois pas possible. Le descripteur desc4 contient 2910158 28 les coordonnées des 4 coins. Leurs valeurs sont comparées aux dimensions de la zone candidate. Le processus de lecture des données est stoppé si au moins une des coordonnées d'un des coins n'est pas renseignée. L'étape suivante consiste à estimer très précisément les contours du code 5 visuel. Dans un premier temps, une table dite de décalage est calculée en haut, en bas, à droite et à gauche du code visuel identifié. Dans un deuxième temps, ces informations sont utilisées pour décrire analytiquement chacun des 4 côtés du code visuel (et non pas du rectangle englobant). Une table de décalage correspond au nombre de pixels par ligne ou par colonne nécessaire pour trouver le premier pixel 10 noir (valeur à 0) à partir d'un des bords du rectangle englobant. Aussi, lorsque l'on souhaite, par exemple, établir la table de décalage correspondant au côté gauche du rectangle englobant, il convient de calculer et de stocker pour chaque ligne le nombre de pixels nécessaire pour trouver le premier pixel noir (valeur à 0) à partir du bord gauche du rectangle englobant. La taille de la table de décalage est dans ce 15 cas égale à la taille du segment vertical précédemment calculé. On obtient ainsi 4 tables qui peuvent servir à dériver une forme analytique des "vrais" contours du code visuel. Pour ce faire, il suffit de choisir 2 points situés sur le segment de droite et d'en déduire une équation de droite. Le rectangle englobant englobe par définition la structure du code visuel, ce qui implique qu'une zone "blanche" (à 255 20 ou à 1 après binarisation) existe potentiellement autour du code visuel. Cela se traduit par le fait que les tables de décalage peuvent présenter des valeurs plus importantes à leurs extrémités. Ils n'est donc pas souhaitable de choisir n'importe quel point de la table de décalage. Il est cependant utile de maximiser la distance entre les 2 points pour permettre une estimation analytique plus précise du contour.Another embodiment is to consider that the visual code may be of any size in the image and may be surrounded by a structured or textured background. A search for zones with high intensity spatial gradients is therefore not sufficient to determine the candidate areas and it becomes necessary to calculate a signature, that is, a characteristic characteristic of the surface of the visual code. In this case, a first step is based on the calculation and the thresholding of the spatial intensity gradients for each pixel of the image. This step has already been introduced previously. This helps identify non-uniform areas that may contain a visual code. These areas are then partitioned into a set of square or non-square subregions. In each of these subregions, for example a block of pixels, the histograms of pixel values in each of the channels used (for example, red, green, and blue) are calculated. These bitmap code signatures of Datamatrix, QR code or Aztec type are characteristic in the sense that the response of the histograms must be similar in the three spectral channels. In addition, these three histograms must have two distinct modes, corresponding to the clear modules and the dark modules characterizing the structure of the visual code. The extraction of the main modes of a histogram can, for example, be carried out by estimating the modes of a mixture of Gaussian laws. This can be implemented using an EM (Expectation-Minimization) algorithm where the number of laws is known (2) and where the initialization is done in the first third and two-thirds of the histogram. To limit the risk of having a "horseback" visual code on multiple blocks, it is possible to use overlapping blocks. It is also possible to center the areas where the histograms will be calculated around the areas of higher contrast, and to determine their respective sizes. A descriptor desc2 is in this case constituted by the following components: 255 EI histR (i) ù histG (i) I io 255 II histR (i) ù histB (i) I r = o 255 E IhistB (i) ù histG ( i) II / 1R2 - / G21 6R2 + 0 G2 IPR1 - PR1 I 0 -R1 + CRI I / 1R2 f1B2I 6R2 + 6B2 IPRI PB1 I 6R1 + B1 I, GI PB1 I 6G1 + O-B1 I PG2 PB2I (2) 6G2 + 6B2 desc2 = 2910158 22 for which the first 3 components are the sums of the absolute values of the point-to-point differences between 2 of the 3 representative histograms of the red, green and blue channels. It is also possible to use the square of differences. Here, each channel is assumed to be 1-byte or 8-bit coded. In all cases, each of the sums is compared with a threshold th3. When the values of these 3 components are lower than th3, then the histograms are considered similar, regardless of the color channels. Similarly, the other components of the description vector desc2 represent the so-called Ficher distance, defined as the quotient between the difference of the absolute value of the positions (or abscissas) of 2 10 modes and the sum of their standard deviations. Assuming that (URI, pR2) and (6RJ, 6R2) are respectively the means and the standard deviations of the minimum abscissa (R1) and the maximum abscissa (R2) modes of the histogram of the values of the block in the red channel (R), and assuming the same for the green channels (uyläuV2 and 6V1, (Ty2) and blue (UBI,, PB2 and 6BJ, oB2), the distance of Ficher is calculated between, for example, 2 15 modes minimum or 2 maximum modes belonging to 2 distinct histograms This distance is compared to a th4 threshold When these components are below this threshold, then the 2 modes are considered close Finally, a signature is considered characteristic of a code structure visual 2D binary when the set of components of the vector of description checks the inequalities defined above.We will now describe the phase of binarization and search of the contour, or the edge of the visual code.This step may be conditioned to the validation of previous descriptors, whatever the mode of implementation chosen to isolate the candidate areas. We propose an adaptive thresholding method whose threshold value varies spatially as a function of the content present in the candidate zone. The main idea is to take into account the local variations of intensity in the image. They may be due to variations in illumination conditions, for example to shadows on part of the image, or to variations due to the limitations of the camera. For example, the corners of the image may be darker due to vignetting. The degree of sharpness of the image may also depend on the position in the field, which will have the effect of making some modules lighter or darker than others. We next suppose that there exists around the visual code a uniform zone of luminous intensity similar to that of the clear patterns (or modules) which constitute it. The width of this uniform area may, for example, be 50% of the characteristic dimensions (length / width) of the visual code. Preferably, only one color channel is retained to analyze the candidate area, in order to reduce the number of data to be processed. The best choice is in this case the channel that maximizes the signal (the structure of the visual code) while minimizing the noise level in the image. Maximizing the signal means that the color channel used, or the combination of channels, must be able to produce the highest possible contrast between the modules and the background. Likewise, the spectral channels chosen preferably maximize the resolution of the source data. For example, when using a CCD type camera associated with a Bayer filter, the green channel may be advantageously chosen because it has a better spatial resolution than blue and red. Similarly, in the case of luminance-chrominance coding (YCbCr for example), the luminance channel may be preferred if the same resolution criterion is favored. In the case where the visual code is read and decoded from a portable telephone equipped with a CMOS sensor, the blue channel is avoided because it is more sensitive to noise. The candidate area is partitioned into disjoint blocks B; of size equal to 8x8 pixels, for example. The grad intensity intensity gradient (I p) is calculated for each of the p pixels belonging to a block. The histi histogram associated with the block Bi represents the number of occurrences of the pixels having a given grad gradient value (Ip). It may be noted that this value is preferably quantized in steps of one, in order to have a sufficient number of occurrences. The threshold Ms corresponds to the largest value of the spatial intensity gradients satisfying the equation: ## EQU1 ## where the total grad represents the sum of the spatial gradients of intensity in the block Bi. N is the largest intensity gradient value for which the histogram hist is at a non-zero value. However ths is mostly smaller than N. Perc percentage can be set at 50%, (or 0.5), in the previous equation. The weakest gradients are not considered. Indeed, they may for example be due to noise in the image or structures foreign to that of the matrix code located in its immediate environment. It should be noted that in less contrasted areas of the image, the threshold values are preferably calculated from less contrasted contours and are therefore lower, to better take into account the local spatial variability of the image. capture. The th5 threshold is compared with a minimum intensity spatial gradient value, empirically set at 5 for example. If th5 is less than this value, then the block is considered uniform and a particular treatment is performed. Otherwise, the block is judged to have enough contour to represent the structures of a visual code. In the latter case, the histogram hist i i is calculated. This is formed by the number of occurrences of the intensities I of the pixels belonging to zones whose value of the spatial gradients of intensity is greater than ths threshold. For each pixel p whose grad value (I_p) is greater than ths, the minimum intensity value between the neighboring pixels (4-connexity) at the top right is used to calculate the histogram hist.l i. The histogram hist is used to determine the average value of the pixels that were considered during its construction. This average represents a first approximation of the thi threshold value used for the binarization of the candidate zone in the region delimited by the block Bi. The final value is calculated taking into account th th threshold values of neighboring j blocks. In the case where the block Bi has been found to be uniform, a different method is used. A first step not yet described in this binarization phase consists of dividing the candidate zone into 4 "large" regions of equivalent size. For each of these four R areas, the average value of pixel intensities is calculated and stored. In the case where the method is applied to process a uniform block, the position thereof is first determined by comparing the position of its center of gravity with the boundaries of the 4 previously described areas. Once the block in question has been associated with one of the four zones, that is, once the block has been deemed to belong to one of the four regions, the average value of the intensities of the block Bi is compared with the average value of the intensities of the pixels of the region Rk containing it. If the block is clearer, the block is assumed to be uniform and representative of a clear area. Also, the threshold thi is equal to the minimum intensity value previously calculated and stored. If the block is darker, the block is assumed to be uniform and representative of a dark area. Also, thi threshold is equal to the maximum intensity value previously calculated and stored. At this stage of the method, each of the candidate zones is characterized by a set of threshold values thi associated with a spatial partition consisting of the blocks Bi. In order to limit the effects inherent in this type of block computing method, otherwise known as "block effect", it is possible to apply spatial filtering directly to the threshold values. Also, the final threshold value THi associated with the block Bi will be obtained by convolution of the threshold values in its neighborhood (assumed in 8-connexity) by a discrete Laplacian type core. By way of example, the values f 0) of the convolution core f (square of size 3 × 3 elements, the index j below is therefore between 0 and 8) are per line: (1, 2, 1), (2, 4, 2) and (1, 2, 1). Also, the final threshold value THi associated with the block Bi will be such that: THi = 1 E [thi. f (j). u (j)] (4) (f (J) • u (j)) JE [O, 8] 25 where the coefficient fu) is a binary value (0 or 1) reflecting the fact that the block Bi considered is uniform or not within the meaning of the foregoing description. Also, if one of the neighboring blocks is considered uniform, then the associated value f 0) is equal to 0, which means that the contribution of this block is zero in the calculation of the threshold THi. Similarly, if one of the neighboring blocks is considered non-uniform, the associated value f 0) is then equal to 1, which means that the contribution of this block is non-zero in the calculation of the threshold THE. This adaptive binarization phase of the candidate areas produces a set of threshold values THi associated with a spatial partition consisting of the blocks Bi. The number and organization of these values makes it possible to derive a new description vector desc3 that can be validated or not in order to continue the reading phase of the image data. More precisely, the descriptor can be validated if the number nbB of uniform blocks is not too large compared to the total number of NB blocks constituting the partition of the candidate zone, and if there are not too many uniform blocks in the middle of the supposed structure of the visual code. For example, at least 50% of the blocks must be judged to be non-uniform and no more than 2 uniform blocks "in the middle" of the supposed structure of the visual code. The second component comp2 of the description vector desc3 (the first component being the number nbB) is the sum of a cost function '', defined as being a linear function of the distance between the center of the candidate zone and the center. of gravity of the considered block, namely: NB-1 comp2 = E f, (B) (5) i = o The more this sum function has a significant value and the more the number of uniform blocks close to the center is important. The exploitation of this component makes sense only in the case where it is supposed that the visual code is relatively centered in the candidate zone. When the previously described descriptor is validated and binarization performed, a next step may be to more accurately determine the contours of the visual code. Thresholding produces an image imB of the candidate zone for which the pixels contained in a block Bi having a value lower than the threshold THi are assigned the value 0 while those whose value will be greater than this threshold are set to 1 or 255 by example. The histograms representing the cumulative number of pixels p having a zero value (in the sense of the previously described binarization) are calculated horizontally and vertically, that is to say for each line and for each column in the case of a rectangular visual code. For example, if the tenth value of the so-called vertical histogram is equal to twenty, this means that the tenth line of the binarized data map has twenty pixels having a zero value. Similarly, if the thirtieth value of the so-called horizontal histogram is equal to five, it means that the thirtieth column of the binarized data map has only five pixels having a zero value. The area that may contain the visual code must be represented by higher histogram occurrence values. It is possible, however, that other geometric structures close to the visual code have been captured in the field of view when the image is captured. The data of each of the two histograms can then be filtered using a Gaussian or Median filter for example. This smoothes the local variability that may affect the next step. A one-dimensional thresholding th6 is applied to each of the two histograms, which makes it possible to identify in each of the two directions the segment of larger size representative of the dimensions of the visual code. A segment is an interval corresponding to the difference between the maximum and minimum coordinates for which all the values of the associated histogram are above th6. For example, assuming that the vertical histogram has occurrence values greater than th6 between the coordinates (abscissa) of ten and fifty, a segment will have a dimension of fifty to twenty, i.e. thirty. It is possible that for a given direction, for example vertical, several segments are extracted from the thresholding phase. In this case, only the segment with the largest value is conserved and judged to be representative of the size of the candidate area in the considered direction. A candidate zone is therefore entirely defined by the rectangle whose characteristic dimensions are equal to the size of the two segments obtained in the horizontal and vertical directions. In particular, it is possible to define the corners (or angles) of the rectangle (called enclosing rectangle) formed by the 2 previously calculated segments. If the preceding step has not made it possible to obtain a segment, or if only one has been detected, the computation of the coordinates of the corners is however not possible. Descriptor desc4 contains the coordinates of the 4 corners. Their values are compared to the dimensions of the candidate area. The process of reading the data is stopped if at least one of the coordinates of one of the corners is not filled. The next step is to estimate very precisely the outlines of the visual code. Firstly, a shift table is calculated at the top, bottom, right and left of the identified visual code. In a second step, this information is used to describe analytically each of the 4 sides of the visual code (and not the enclosing rectangle). An offset table is the number of pixels per row or column needed to find the first black pixel (value at 0) from one of the edges of the bounding rectangle. Also, when it is desired, for example, to establish the offset table corresponding to the left side of the enclosing rectangle, it is necessary to calculate and store for each line the number of pixels necessary to find the first black pixel (value at 0). from the left edge of the bounding rectangle. The size of the offset table is in this case equal to the size of the previously calculated vertical segment. We thus obtain 4 tables which can be used to derive an analytical form from the "real" contours of the visual code. To do this, simply choose 2 points located on the line segment and deduce a right equation. The enclosing rectangle by definition encompasses the structure of the visual code, which implies that a "white" area (at 255 or 1 after binarization) potentially exists around the visual code. This translates to the fact that offset tables may have larger values at their ends. It is therefore not desirable to choose any point of the shift table. It is however useful to maximize the distance between the 2 points to allow a more precise analytical estimation of the contour.

25 Il a été choisi de considérer une portion du segment à chacune de ses extrémités. Par exemple, il est possible de ne travailler qu'à partir des 25 premiers et derniers pourcents de la table. Dans les 2 cas, on recherche la valeur minimale de décalage, laquelle est alors considérée comme représentative d'un des points du segment de contour. Il est possible d'envisager un raffinement dans lequel cette opération est 30 itérative, c'est-à-dire que dans le cas où le rectangle englobant est bien plus large que le code visuel lui-même, alors il est possible qu'aucune valeur de décalage ne 2910158 29 soit utilisable (par exemple valeur trop grande comparativement à un seuil). Dans ce cas il est possible de reconsidérer la taille de la zone de recherche, par exemple en cherchant un minimum acceptable dans des zones représentants 30% ou 40% de la taille de la table (contre 25%). La recherche d'un minimum de décalage est 5 compatible avec des structures particulières de matrice, présentant par exemple alternativement des modules blanc puis noir. Il est possible de vérifier les coefficients de droite de chacun des 4 bords avant de continuer. Notamment, un test de validation consiste alors à vérifier que les coordonnés d'intersection des droites deux à deux sont comprises dans le rectangle englobant initial ou proches 10 de ce dernier. Cela constitue une nouvelle étape de validation dans le procédé. La sous-étape suivante consiste à déterminer un maillage s'ajustant à la structure externe du code visuel et représentatif des déformations et de la taille des modules le constituant. Une opération initiale consiste à calculer en première approximation un maillage dit régulier. Ensuite, lorsque cela est possible, ce 15 maillage est raffiné pour s'ajuster au mieux aux modules tels qu'obtenus après la phase de seuillage adaptatif. La détermination du maillage régulier nécessite la connaissance ou le calcul du nombre de modules constituant le code visuel. Dans le cas où l'information est connue (par exemple code visuel de 20 par 20 modules) il est simplement possible de mesurer la taille de chacun des 4 contours du code et 20 de le diviser par le nombre nécessaire (21 dans l'exemple ci dessus). Chacune des lignes/colonnes ainsi identifiée est stockée de façon analytique dans un tableau. Nous obtenons par exemple 2 fois 21 couples de coefficients représentants les 42 lignes et colonnes séparatrices composant le maillage régulier. Dans le cas où le nombre de module n'est pas connu, il est possible de le déduire par une analyse de 25 la structure des contours. Par exemple, dans le cas d'un code de type Datamatrix, il est possible de compter le nombre de modules alternativement blanc et noir proches des contours en haut et à droite. Cette étape de comptage est avantageusement effectuée après avoir précisément déterminé les contours du code visuel. Après le calcul de la grille régulière, on compte le nombre de modules 30 alternativement blanc et noir proches des contours en haut et à droite. Si l'on trouve le bon nombre de modules, par exemple, 10 blancs et 10 noirs, alors il est supposé 2910158 30 que le seuillage adaptatif et le maillage régulier permettent d'affiner le résultat. Dans ce cas, chacune des lignes/colonnes séparatrices vont converger vers les bords des modules voisins. En effet, il est possible qu'une valeur de seuillage n'aie pas permis localement de récupérer toute la surface d'un module, dans ce cas le 5 maillage régulier n'est pas bien ajusté et ne touche pas le module. Il est donc ici souhaitable de faire converger ce séparateur vers le bord du module voisin. Les calculs étant faits de façon indépendante horizontalement et verticalement, il est possible d'obtenir un maillage régulier horizontalement et un maillage raffiné verticalement.It has been chosen to consider a portion of the segment at each of its ends. For example, it is possible to work only from the first 25 and last percent of the table. In both cases, the minimum offset value is sought, which is then considered to be representative of one of the points of the contour segment. It is possible to envisage a refinement in which this operation is iterative, that is to say that in the case where the enclosing rectangle is much wider than the visual code itself, then it is possible that no the offset value can not be used (for example, a value that is too large compared to a threshold). In this case it is possible to reconsider the size of the search area, for example by looking for an acceptable minimum in areas representing 30% or 40% of the size of the table (against 25%). The search for a minimum of offset is compatible with particular matrix structures, presenting, for example, alternately white and then black modules. It is possible to check the right coefficients of each of the 4 edges before continuing. In particular, a validation test then consists in verifying that the intersection coordinates of the two-by-two lines are included in the initial bounding rectangle or close to it. This is a new validation step in the process. The next sub-step consists in determining a mesh adjusting to the external structure of the visual code and representative of the deformations and the size of the modules constituting it. An initial operation consists of calculating in a first approximation a so-called regular mesh. Then, where possible, this mesh is refined to best fit the modules as obtained after the adaptive thresholding phase. The determination of the regular mesh requires knowledge or calculation of the number of modules constituting the visual code. In the case where the information is known (for example visual code of 20 by 20 modules) it is simply possible to measure the size of each of the 4 contours of the code and to divide it by the necessary number (21 in the example above). Each of the lines / columns thus identified is stored analytically in an array. For example, we obtain 2 times 21 couples of coefficients representing the 42 lines and separating columns composing the regular mesh. In the case where the number of modules is not known, it is possible to deduce it by an analysis of the structure of the contours. For example, in the case of a Datamatrix-type code, it is possible to count the number of alternately white and black modules near the contours at the top and on the right. This counting step is advantageously performed after having precisely determined the contours of the visual code. After the calculation of the regular grid, the number of alternately white and black modules 30 near the contours at the top and on the right is counted. If one finds the right number of modules, for example, 10 whites and 10 blacks, then it is assumed that the adaptive thresholding and the regular mesh make it possible to refine the result. In this case, each of the dividing lines / columns will converge towards the edges of the neighboring modules. Indeed, it is possible that a thresholding value has not allowed locally to recover the entire surface of a module, in this case the regular mesh is not well adjusted and does not touch the module. It is therefore desirable here to converge this separator towards the edge of the neighboring module. Calculations being done independently horizontally and vertically, it is possible to obtain a regular mesh horizontally and a mesh refined vertically.

10 La dernière sous-étape avant le décodage effectif des données consiste à intégrer l'ensemble des valeurs des pixels d'un bloc Bi issus de l'image binarisée imB, et ceci afin de produire une seconde image sous-échantillonnée imsE, pour laquelle l'ensemble des pixels d'un bloc B= appartenant à imB est remplacé par un unique pixel blanc ou noir dans l'image imsE. Aussi, chaque module du code visuel 15 est représenté par un pixel unique blanc ou noir. Notamment, les défauts de géométrie, de qualité d'image ou de structure de données sont corrigés dans cette image. Cette phase de conversion du code visuel vers une structure directement exploitable pour le décodeur peut être effectuée de la façon suivante: chacun des blocs est caractérisé par la surface comprise respectivement entre 2 lignes et 2 20 colonnes séparatrices successives. Par exemple, le bloc Bn dont l'indice n est égal au numéro de colonne j du maillage associé à ce bloc additionné du numéro de ligne i du maillage associé à ce bloc, lui-même multiplié par le nombre total de colonnes NB du maillage, soit n=NB *i+j. Dans ce cas, la surface associée au bloc Bä est définie comme étant la surface comprise entre les lignes séparatrices ll et 11+1 25 ainsi qu'entre les colonnes séparatrices ci et cj+r. La moyenne Imoy des valeurs de l'ensemble des pixels appartenant au bloc Bn est calculée. De même, la valeur des pixels situés au centre du bloc est elle-même calculée, cette valeur centrale Icenter étant définie comme la moyenne de la valeur du pixel central et des 4 pixels voisins en haut, en bas, à droite et à gauche. Un module est finalement considéré 30 comme étant noir lorsque les valeurs de Imoy et de Icenter sont inférieures à un seuil. Il convient de noter à cet égard que deux seuils différents peuvent être utilisés. Le 2910158 31 maillage estimé pouvant être imparfait, il est possible de donner plus d'importance au centre d'un bloc et moins d'importance aux bords de celui-ci, les pixels situé en périphérie pouvant être "à cheval" sur un ou plusieurs autres modules. Par exemple, le seuil thmoy associé à Imoy peut être plus élevé que celui (thcenter) associé 5 à Icenter• Plus précisément, la valeur de thmoy peut être fixée à 192 tandis que celle de thcenter peut être de 128. La figure 3 indique de manière schématique les différentes sous-étapes susceptibles d'être effectuées lors du procédé de lecture tel que décrit en référence aux figures précédentes 1 et 2.The last sub-step prior to the actual decoding of the data consists in integrating all the values of the pixels of a block Bi coming from the binarized image imB, and this in order to produce a second subsampled image imsE, for which the set of pixels of a block B = belonging to imB is replaced by a single white or black pixel in the image imsE. Also, each module of the visual code 15 is represented by a single white or black pixel. In particular, defects in geometry, image quality or data structure are corrected in this image. This phase of conversion of the visual code to a directly usable structure for the decoder can be carried out in the following way: each of the blocks is characterized by the area comprised respectively between 2 rows and 2 successive dividing columns. For example, the block Bn whose index n is equal to the column number j of the mesh associated with this block plus the line number i of the mesh associated with this block, itself multiplied by the total number of columns NB of the mesh that is, n = NB * i + j. In this case, the area associated with the block Ba is defined as being the area between the dividing lines 11 and 11 + 1 as well as between the dividing columns ci and cj + r. The average Imoy of the values of the set of pixels belonging to the block Bn is calculated. Similarly, the value of the pixels in the center of the block is itself calculated, this central value Icenter being defined as the average of the value of the central pixel and the 4 neighboring pixels at the top, bottom, right and left. A module is finally considered black when the Imoy and Icenter values are below a threshold. It should be noted in this regard that two different thresholds can be used. Since the estimated mesh size may be imperfect, it is possible to give more importance to the center of a block and less importance to the edges of it, the periphery pixels being able to be "straddled" on one or several other modules. For example, the thmoy threshold associated with Imoy may be higher than the thcenter associated with Icenter • More precisely, the value of thmoy may be set at 192 while that of thcenter may be 128. FIG. schematically the different substeps that may be performed during the reading process as described with reference to previous Figures 1 and 2.

10 Les références numériques de la figure 3 indiquent les mêmes étapes que celles des figures précédentes. Toutefois, pour des raisons de simplification, les sous-étapes d'identification du code visuel et de calcul du descripteur sont respectivement regroupées en un seul bloc. De manière plus précise, la figure 3 illustre une identification et une 15 correction des codes visuels effectués sous la forme de plusieurs sous-étapes comprenant chacune du calcul d'un descripteur. Afin de distinguer les sous-étapes, les références sont assorties des lettres a à d. L'étape d'identification et de correction du code visuel comprend, dans l'exemple illustré une première sous-étape 102a d'identification de zones 20 candidates et le calcul d'un premier descripteur 104a. Il s'agit, par exemple, du descripteur de longueur de segments déjà décrit. Une deuxième sous-étape 102b comprend le seuillage de l'image avec une recherche de contour. Elles est suivie par le calcul d'un deuxième descripteur. Il s'agit, par exemple, d'un descripteur vectoriel lié à une partition spatiale de 25 l'image en blocs. Les troisième et quatrième sous-étapes 102c et 102d comprennent, par exemple, les opérations de maillage et de détection de rnodules. Elles comprennent le calcul 104c et 104d de descripteurs. Il s'agit, par exemple, du calcul des coordonnées d'intersection des bords et: de l'identification de seuils pour 30 déterminer la valeur des modules.The reference numerals in FIG. 3 indicate the same steps as those of the preceding figures. However, for the sake of simplification, the sub-steps for identification of the visual code and calculation of the descriptor are respectively grouped together in a single block. More specifically, FIG. 3 illustrates an identification and correction of the visual codes performed in the form of several substeps each comprising the calculation of a descriptor. In order to distinguish the sub-steps, the references are accompanied by letters a to d. The step of identifying and correcting the visual code comprises, in the illustrated example, a first sub-step 102a for identifying candidate areas and calculating a first descriptor 104a. This is, for example, the segment length descriptor already described. A second sub-step 102b includes thresholding the image with a contour search. It is followed by the calculation of a second descriptor. This is, for example, a vector descriptor linked to a spatial partition of the block image. The third and fourth substeps 102c and 102d include, for example, mesh operations and module detection. They include the calculation 104c and 104d of descriptors. This is, for example, calculating the intersection coordinates of the edges and: identification of thresholds to determine the value of the modules.

2910158 32 Comme le montre la figure 3 et comme décrit précédemment, chaque sous- étape et chaque calcul de descripteur est suivi d'une évaluation 106a, 106b, 106c et 106d. La validation des descripteurs permet de poursuivre la procédé par la sous- étape suivante ou par le décodage 110. Le défaut de validation entraîne, comme le 5 montre la flèche 107 une itération sous la forme de la saisie d'une nouvelle image ou de recherche d'une nouvelle zone candidate. Documents cités 1) US 2005/0203854 Al 2) US 2006/0006238 Al 10As shown in FIG. 3 and as previously described, each sub-step and each descriptor calculation is followed by an evaluation 106a, 106b, 106c and 106d. The validation of the descriptors makes it possible to continue the process by the following sub-step or by the decoding 110. The validation fault leads, as the arrow 107 shows, to an iteration in the form of the entry of a new image or of a search. a new candidate area. Documents cited 1) US 2005/0203854 A1 2) US 2006/0006238 Al 10

Claims (6)

REVENDICATIONS 1 - Procédé de lecture de codes visuels comprenant : a) la saisie (100) d'au moins une première image numérique b) l'identification (102) dans l'image numérique d'au moins un code visuel, c) le décodage (110) d'au moins un code visuel identifié lors de l'étape b), caractérisé par une étape (104) de calcul d'au moins un descripteur du code visuel identifié dans la première image numérique et par le conditionnement de l'étape de décodage à une évaluation du descripteur.  1 - Method of reading visual codes comprising: a) the capture (100) of at least a first digital image b) the identification (102) in the digital image of at least one visual code, c) the decoding (110) at least one visual code identified in step b), characterized by a step (104) of computing at least one descriptor of the visual code identified in the first digital image and by conditioning the decoding step to an evaluation of the descriptor. 2 - Procédé selon la revendication 1 comprenant une pluralité de sous-étapes de mise en forme du code visuel dans lequel au moins une sous-étape de mise en forme est associée au calcul d'un descripteur et dans lequel l'exécution d'une sous-étape subséquente est conditionnée par l'évaluation du descripteur associé à une sous-étape précédente.  2 - Process according to claim 1 comprising a plurality of sub-steps for formatting the visual code in which at least one formatting sub-step is associated with the calculation of a descriptor and in which the execution of a Subsequent step is conditioned by the evaluation of the descriptor associated with a previous substep. 3 - Procédé selon la revendication 1, dans lequel le décodage (110) est effectué en utilisant la première image numérique.  The method of claim 1, wherein the decoding (110) is performed using the first digital image. 4 - Procédé selon la revendication 1, dans lequel le décodage (110) est effectué en utilisant au moins une deuxième image saisie postérieurement à la première image numérique.  4 - The method of claim 1, wherein the decoding (110) is performed using at least a second image captured after the first digital image. 5 Procédé selon la revendication 4, dans lequel la première image utilisée pour le calcul du descripteur et la deuxième image utilisée pour le décodage peuvent être de résolutions différentes, et choisie par le système pour optimiser la vitesse d'extraction du descripteur.The method of claim 4, wherein the first image used for calculating the descriptor and the second image used for decoding can be of different resolutions, and selected by the system to optimize the descriptor extraction rate. 6 - Procédé selon la revendication 1, comprenant en outre, postérieurement à l'étape (104) de calcul du descripteur, l'émission (105), visuelle ou sonore, d'une information dépendant du descripteur. 2910158 34 7 - Procédé selon la revendication 6, comprenant une évaluation automatique (106a) et/ou une évaluation par un utilisateur (106u) du descripteur. 8 - Procédé selon la revendication 1, dans lequel l'évaluation du descripteur 5 comprend une comparaison du descripteur à un descripteur de référence et/ou à une valeur de consigne. 9 - Procédé selon la revendication 1, dans lequel on itère le procédé avec la saisie d'une nouvelle image lorsque au moins l'un parmi la recherche d'un code 10 visuel, le calcul du descripteur et une évaluation du descripteur comme acceptable font défaut. 10 - Procédé selon la revendication 1, dans lequel on établit le descripteur en effectuant au moins l'un parmi un calcul de contours, un calcul d'histogramme 15 de contours, un calcul de densité de pixels, une mesure de contraste et/ou un calcul d'une fonction de modulation de transfert (MTF). 11 - Procédé selon la revendication 1 comprenant : a) la saisie (100) d'une séquence d'une pluralité d'images successives 20 susceptibles de contenir une image d'un code visuel, b) la recherche (102) dans une première image d'au moins un code visuel, c) le calcul (104) d'au moins un descripteur du code visuel, d) l'évaluation (106) du descripteur, e) le décodage (110) du code visuel lorsque le descripteur est reconnu 25 acceptable lors de l'évaluation, et f) itération (107) des étapes b), c) et/ou d) lorsque la recherche d'un code visuel, le calcul du descripteur et ou l'évaluation du descripteur comme acceptable font défaut, l'itération des étapes b) c) et /ou d) étant effectuée respectivement à partir d'une image subséquente de la séquence d'images 30 2910158 12 - Procédé selon la revendication 11, comprenant en outre entre, postérieurement à l'étape (104) de calcul du descripteur, l'émission (105) visuelle ou sonore d'une information dépendant du descripteur, et la saisie d'une éventuelle commande d'utilisateur, et comprenant également une itération des étapes b), 5 c) et/ou d) en l'absence de commande d'utilisateur, l'itération des étapes b) c) et /ou d) étant effectuée respectivement à partir d'une image subséquente de la séquence d'images.6 - Process according to claim 1, further comprising, after the step (104) for calculating the descriptor, the emission (105), visual or sound, information dependent on the descriptor. A method according to claim 6, comprising an automatic evaluation (106a) and / or a user evaluation (106u) of the descriptor. 8 - The method of claim 1, wherein the evaluation of the descriptor 5 comprises a comparison of the descriptor to a reference descriptor and / or a set value. The method of claim 1, wherein the method is iterated by entering a new image when at least one of searching for a visual code, calculating the descriptor, and evaluating the descriptor as acceptable, default. The method of claim 1, wherein the descriptor is established by performing at least one of contour calculation, contour histogram calculation, pixel density calculation, contrast measurement, and / or a calculation of a transfer modulation function (MTF). 11 - The method of claim 1 comprising: a) entering (100) a sequence of a plurality of successive images 20 that may contain an image of a visual code, b) searching (102) in a first image of at least one visual code, c) calculating (104) at least one descriptor of the visual code, d) evaluating (106) the descriptor, e) decoding (110) the visual code when the descriptor is recognized as acceptable during the evaluation, and f) iteration (107) of steps b), c) and / or d) when searching for a visual code, calculating the descriptor and or evaluating the descriptor as the iteration of steps b) c) and / or d) being performed respectively from a subsequent image of the image sequence 2910158 12 - The method of claim 11, further comprising between, subsequently in the step (104) of calculating the descriptor, the emission (105) of visual or audio information dependent on the descriptor r, and the entry of a possible user command, and also including an iteration of steps b), c) and / or d) in the absence of user control, the iteration of steps b) c ) and / or d) being respectively performed from a subsequent image of the image sequence.
FR0611033A 2006-12-19 2006-12-19 Visual code e.g. bar code, reading method for e.g. phone-cam, involves iterating code identification, descriptor calculation and evaluation operations from subsequent image of sequence of images, when acceptable descriptor is defective Pending FR2910158A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0611033A FR2910158A1 (en) 2006-12-19 2006-12-19 Visual code e.g. bar code, reading method for e.g. phone-cam, involves iterating code identification, descriptor calculation and evaluation operations from subsequent image of sequence of images, when acceptable descriptor is defective

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0611033A FR2910158A1 (en) 2006-12-19 2006-12-19 Visual code e.g. bar code, reading method for e.g. phone-cam, involves iterating code identification, descriptor calculation and evaluation operations from subsequent image of sequence of images, when acceptable descriptor is defective

Publications (1)

Publication Number Publication Date
FR2910158A1 true FR2910158A1 (en) 2008-06-20

Family

ID=37983494

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0611033A Pending FR2910158A1 (en) 2006-12-19 2006-12-19 Visual code e.g. bar code, reading method for e.g. phone-cam, involves iterating code identification, descriptor calculation and evaluation operations from subsequent image of sequence of images, when acceptable descriptor is defective

Country Status (1)

Country Link
FR (1) FR2910158A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016045655A1 (en) * 2014-09-24 2016-03-31 Ploetz + Zeller Gmbh Method for digitally detecting data from information and storing said data in a database

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5591956A (en) * 1995-05-15 1997-01-07 Welch Allyn, Inc. Two dimensional data encoding structure and symbology for use with optical readers
US5631457A (en) * 1994-08-17 1997-05-20 Olympus Optical Co., Ltd. Two-dimensional symbol data read apparatus
GB2344913A (en) * 1998-12-16 2000-06-21 Matsushita Electric Ind Co Ltd Method of locating a barcode within a scanned binary image
WO2005124657A1 (en) * 2004-06-18 2005-12-29 Valtion Teknillinen Tutkimuskeskus Method for detecting a code with the aid of a mobile station
US20060097054A1 (en) * 2004-11-05 2006-05-11 Biss Charles E Device and system for verifying quality of bar codes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5631457A (en) * 1994-08-17 1997-05-20 Olympus Optical Co., Ltd. Two-dimensional symbol data read apparatus
US5591956A (en) * 1995-05-15 1997-01-07 Welch Allyn, Inc. Two dimensional data encoding structure and symbology for use with optical readers
GB2344913A (en) * 1998-12-16 2000-06-21 Matsushita Electric Ind Co Ltd Method of locating a barcode within a scanned binary image
WO2005124657A1 (en) * 2004-06-18 2005-12-29 Valtion Teknillinen Tutkimuskeskus Method for detecting a code with the aid of a mobile station
US20060097054A1 (en) * 2004-11-05 2006-05-11 Biss Charles E Device and system for verifying quality of bar codes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
COHEN J: "BAR CODE VERIFICATION WHERE TO BEGIN THE PROCESS OF VERIFYING BAR CODE PRINT QUALITY", ID SYSTEMS, HELMERS PUBLISHING, US, vol. 3, no. 2, 1 March 1995 (1995-03-01), pages 48 - 50, XP000494994, ISSN: 1081-275X *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016045655A1 (en) * 2014-09-24 2016-03-31 Ploetz + Zeller Gmbh Method for digitally detecting data from information and storing said data in a database

Similar Documents

Publication Publication Date Title
US20200410186A1 (en) Localization of machine-readable indicia in digital capture systems
US20230215197A1 (en) Systems and Methods for Detection and Localization of Image and Document Forgery
Piva An overview on image forensics
US9521291B2 (en) Feature-based watermark localization in digital capture systems
EP2491532B1 (en) Method, computer program and device for real-time hybrid tracking of object representations in an image sequence
EP2054836B1 (en) Methods and devices for securing and authenticating documents
Chuang et al. Exploring compression effects for improved source camera identification using strongly compressed video
US20230076612A1 (en) Methods and arrangements for configuring industrial inspection systems
EP2084648A1 (en) Methods and devices for authenticating a product and a two-dimensional code and novel application of a two-dimensional code
TWI525555B (en) Image processing apparatus and processing method thereof
KR20070114648A (en) The two-directional bar code symbol and its encoding and decoding method
JP2011513809A (en) Method and apparatus for reading information contained in bar code
CN114078127B (en) Object defect detection and counting method, device, equipment and storage medium
US10192311B2 (en) Methods and apparatus for codeword boundary detection for generating depth maps
FR3109831A1 (en) Method for verifying a barcode.
Gharibi et al. Using the local information of image to identify the source camera
FR2910158A1 (en) Visual code e.g. bar code, reading method for e.g. phone-cam, involves iterating code identification, descriptor calculation and evaluation operations from subsequent image of sequence of images, when acceptable descriptor is defective
Rouhi et al. A cluster-based approach of smartphone camera fingerprint for user profiles resolution within social network
Battisti et al. Image forgery detection by means of no-reference quality metrics
FR2857131A1 (en) METHOD FOR AUTOMATICALLY REPLACING A GEOMETRIC MODEL OF A SCENE ON A PICTURE OF THE SCENE, DEVICE FOR IMPLEMENTING THE SAME, AND PROGRAMMING MEDIUM
EP3877905A1 (en) Image sensor for optical code recognition
EP3945450B1 (en) Graphic code reading
Battisti et al. Image forgery detection by using noreference quality metrics
Singh et al. Digital Image Forensic Techniques with Attacks: A Review
CN115358994A (en) Silicon wafer defect detection method and device, storage medium and equipment