2010-02-19 6 views
2

J'ai un projet OCR, mais il fonctionne bien avec des images dans lesquelles le texte est assez droit, pas à l'envers. (texte non pivoté) Je veux donc faire OCR pour pouvoir reconnaître n'importe quel type d'images, même à l'envers. Mais je ne sais pas quelles sont les approches pour résoudre ce problème.Analyse et transformation de l'image sur la base de cette analyse pour de meilleurs résultats OCR

J'ai besoin de quelque chose comme l'analyse de lignes de lettres, mais même alors, je ne peux pas identifier si la ligne est à l'envers ou non.

Répondre

1

Si les images que vous exécutez l'OCR sont de un magazine ou un livre où il y a beaucoup de texte sur plusieurs lignes, je suggère d'essayer de trouver la rotation de la page.

Probablement le moyen le plus simple de le faire est d'appliquer la transformée de hough pour les lignes. Puisque l'espace vide entre chaque ligne de texte devrait être une large ligne blanche, cela pourrait fonctionner sans prétraitement de l'image. Sinon, essayez de le rendre flou ou d'utiliser l'opération morphologique "close" pour faire les lignes de texte en blocs opaques. Une fois que vous trouvez les lignes dans l'image avec la transformée de hough, vous devez simplement extraire l'angle de rotation principal (comme l'angle moyen de toutes les lignes) et le faire pivoter vers l'arrière.

1

Ma réponse à vous sera de très haut niveau car ce n'est pas simple, comme vous pouvez l'imaginer. Vous faites probablement une sorte de segmentation d'image, où vous segmentez chaque caractère de votre texte. Mais afin de reconnaître les caractères, même quand ils sont tournés, vous devez utiliser un vecteur de caractéristiques avec des caractéristiques invariantes de rotation. Pour ce faire certaines personnes utilisent

Zernike Moment

Neocognitron neural network - largement utilisé pour l'écriture

Je ne pense pas que ce soit une tâche simple

1

Vous ne savez pas si vous créez un moteur OCR ou si vous en utilisez un. La plupart des moteurs OCR commerciaux peuvent détecter qu'une page est à l'envers (ou pivotée à 90 degrés) et la faire pivoter automatiquement. Par exemple, le GlyphReader OCR Engine de mon entreprise peut le faire.

Une solution simple consiste à prendre une partie de votre image et à la faire passer dans le moteur aux quatre angles jusqu'à ce que vous obteniez une bonne quantité de texte reconnu. Vous pouvez utiliser un dictionnaire pour voir si ce que vous obtenez est des mots et des niveaux de confiance pour voir à quel point le moteur est reconnu.

Si votre moteur peut rapporter des niveaux de confiance et qu'il signale systématiquement un certain seuil, vous devez vous arrêter et voir si le document est pivoté. Pour les modes 90 et 270, une transformation de type Hough vous indique si les lignes de l'image sont horizontales ou verticales. Il peut aussi vous dire si elles sont juste légèrement décalées par rapport à l'horizontale pour que vous puissiez également corriger cela.