Outil d'OCR Fonction de vision/capteur de détection et réglages experts
1. Introduction
Cet article examine de plus près l'outil "Read Characters" (également connu sous le nom d'OCR) pour les capteurs de vision et d'identification, qui a été lancé avec le micrologiciel 2.1, et décrit son fonctionnement. Un exemple est utilisé pour expliquer les limites de l'outil et comment des applications plus difficiles peuvent être résolues avec les paramètres experts, ainsi que quelques trucs et astuces sur ce à quoi il faut faire attention avec l'OCR.
L'OCR était et reste une tâche difficile pour un système de caméra et les outils modernes d'OCR sont maintenant principalement basés sur l'intelligence artificielle pour obtenir les meilleurs résultats de lecture. Malheureusement, notre matériel actuel ne prend pas en charge le Deep OCR de Halcon et nous utilisons l'outil d'OCR traditionnel. L'outil sous-jacent est donc le même que l'outil OCR de l'ancienne SmartCamera et du BVS Cockpit.
Par rapport à notre outil OCR précédent du BVS Cockpit, la configuration de l'outil a été simplifiée par l'ajout d'un processus de formation automatique. L'apprentissage automatique prend en charge tous les paramètres tels que la hauteur et la largeur des caractères, le contraste, la polarité, etc. Il n'est plus possible de régler ces valeurs manuellement.
2. Délimitation de la fonctionnalité OCR dans le capteur de vision/identification
Important !
Seul le capteur de vision peut être configuré librement pour l'OCR. Le capteur d'identification n'a qu'une capacité OCR limitée. Le capteur d'identification n'a pas d'outil de "lecture de caractères" !
La fonctionnalité OCR est intégrée dans l'outil "Lire le code". La fonction OCR doit être explicitement activée dans l'outil. La zone d'intérêt pour la lecture des caractères est toujours suivie de la position du code trouvé.
3. Read Characters Setup / Train character string
Afin d'utiliser correctement l'outil "Read Characters", une chaîne de caractères doit être formée. Ce n'est qu'ensuite que l'apprentissage automatique de l'outil "Lire les caractères" peut être lancé et que l'outil tente de déterminer les paramètres internes optimaux pour une lecture robuste.

Outre les paramètres internes de l'outil, tels que la hauteur et la largeur des caractères, la police de caractères la mieux adaptée est également sélectionnée. Les polices pré-entraînées par Halcon sont utilisées ici.
Important : les caractères utilisés pour l'apprentissage ne sont pas ajoutés au texte.
Les caractères utilisés pour la formation ne sont pas ajoutés à l'outil en tant que police ou en tant qu'"exemples" de caractères.
Les polices pré-entraînées comprennent un large éventail de polices OCR A et B, Universal, DotPrint, Pharma, etc. Les polices qui s'écartent complètement de ces polices peuvent être difficiles, voire impossibles à lire.
Une formation réussie ne garantit pas une lecture fiable en cours d'exécution !
Le processus de formation est basé sur une seule image de caméra. Pendant la formation, des variations artificielles sont créées et testées en interne avec différentes luminosités, contrastes, rotations, etc. Toutefois, cela ne permet guère de couvrir de manière réaliste les variations en cours d'exécution.
Idéalement, la formation doit se dérouler dans des conditions réelles (éclairage, distance, etc.). L'objet d'entraînement doit être aussi représentatif que possible, c'est-à-dire qu'il ne s'agit pas d'un objet "parfait". Après l'entraînement, tester la robustesse avec d'autres objets tests en mode moniteur.
Si l'apprentissage n'est pas réussi, un message d'erreur correspondant s'affiche.

Dans le Guide de configuration BVS, le chapitre "2.4.5 Optimisations" contient un tableau reprenant tous les messages d'erreur possibles après l'apprentissage, avec des informations sur les causes possibles et les mesures à prendre.
3.1. Exemples d'application
Les exemples suivants ont été utilisés pour mettre en place et optimiser la formation automatique.
Bons exemples :
Police non critique, bon contraste et espacement des caractères.

Exemples difficiles (à tester) :

Les traits du code peuvent éventuellement interférer et être reconnus comme des caractères.

Image d'impression irrégulière

Forte interférence des lignes qui divisent les lettres et perturbent ainsi la séparation des caractères individuels.

Image d'impression brouillée

Reflets dans les caractères, luminosité inégale

Police de caractères inhabituelle

Métal lasuré, reflets/luminosité inégaux
Ce qui ne fonctionne pas bien :
Aucune écriture disposée en cercle n'est lisible. Il n'est pas possible de dérouler le cercle.


Les lettres gravées ou en relief sur le métal ne fonctionnent souvent pas de manière fiable. Un éclairage externe, par exemple un champ sombre ou un éclairage latéral, doit souvent être utilisé. Mauvais exemples :

3.1.1. Dot-print font
L'impression de points sur du papier ou du plastique donne souvent de bons résultats. Idéalement, les distances entre les points de différents caractères ou lignes sont plus grandes que les distances entre les points d'un même caractère.
Bons exemples :


Exemples difficiles :

L'espacement entre les caractères est faible.
DotPrint épinglé dans le métal ne fonctionne qu'avec une "bonne" qualité d'image et d'impression. Il faut également tenir compte du fait que la qualité du marquage peut se dégrader avec le temps en raison d'une aiguille ou d'un outil de marquage émoussé. En règle générale, un éclairage externe est nécessaire. Exemples :


4. Paramètres experts : Classe de caractères/ Modèle de caractères
En principe, plus les informations sont connues et fournies à l'outil, mieux les caractères souhaités seront reconnus.
La classe de caractères est utilisée par défaut. Après la formation, seules les classes de caractères utilisées dans la chaîne de caractères formée sont utilisées. Les caractères spéciaux tels que "." " :" "," en particulier sont difficiles à lire et doivent être évités dans la mesure du possible. Il est recommandé de n'activer que les classes de caractères qui doivent effectivement être lues. Dans la mesure du possible, ne pas utiliser de caractères spéciaux inutiles.
Si la longueur et la séquence de la chaîne de caractères sont connues, vous pouvez passer de "Classes de caractères" à "Modèles de caractères". Dans ce mode, seule la classe définie est recherchée pour chaque caractère.
Avantage : dans les cas limites, le "bon" caractère est lu beaucoup plus souvent Inconvénient : si une erreur d'impression se produit, le "mauvais" caractère est reconnu
Exemple :
Seuls les chiffres sont imprimés et un "N" (nombre) est défini comme chaîne de caractères. Si un "S" est imprimé par erreur à ce stade, l'outil lira probablement le "S" comme "5".
Ce mode réduit donc le taux de lectures incorrectes, mais peut être exploité jusqu'à l'auto-illusion.
5. Conseils et astuces pour une lecture stable
- Taille minimale des caractères : Pour une meilleure séparation des caractères individuels et une meilleure lisibilité, une taille de caractère minimale de 35 px est requise. Si cette taille n'est pas respectée, un message d'erreur correspondant s'affiche pendant la formation.
- Localisateur : Il est recommandé d'utiliser un localisateur pour suivre la région. Avec la variante du capteur d'identification, un code doit toujours être lu pour pouvoir utiliser l'outil de reconnaissance optique des caractères. La lecture d'un texte sans code n'est pas prévue pour le capteur ident ; le capteur de vision doit être utilisé à cette fin.
- La taille de la zone de recherche doit être réglée de manière à ce que la chaîne de caractères soit entièrement et largement visible à l'intérieur de la zone de recherche, même en cas de petits changements de position. Les autres objets situés au bord de la zone de recherche sont ignorés lors de l'apprentissage et de l'exécution. Cela peut nécessiter quelques ajustements et des essais et erreurs.

Espacement étroit des lignes, zone d'intérêt légèrement trop petite

Espacement étroit des lignes, meilleure zone d'intérêt possible. Les rotations restent problématiques.

AOI trop grand