44 votes

Quels sont certains algorithmes d'OCR populaires?

Je suis intéressé depuis quelque temps par l'apprentissage automatique et la vision par ordinateur. J'ai donc décidé de créer une simple démonstration de reconnaissance optique de caractères en C #.

Je cherche une description de certains algorithmes d'OCR courants et comment je les implémenterais en C #. C'est un exercice d'apprentissage, donc je ne cherche pas de bibliothèque d'OCR.

Toute information serait appréciée, merci.

37voto

Pete Points 1739

OCR est un champ très large, qui inclut des choses comme l'image de la normalisation (égalisation d'histogramme, la suppression des couleurs), l'extraction de caractéristiques (textures, des segments de ligne, détection de bord), et la classification de modèle / machine d'apprentissage (réseaux de neurones, support vector machines, etc). Vous aurez probablement besoin de mettre en œuvre au moins une sorte de chacun des ci-dessus (normaliser, extrait des fonctionnalités, de faire l'apprentissage de la machine).

Il semble que vous voulez jouer, écrire des algo et apprendre au sujet de l'OCR. Si c'est le cas, il existe une vaste littérature sur le sujet que vous pouvez obtenir si vous avez accès à des Revues académiques (si non, aller à l'Université la plus proche et de passer une journée à faire des photocopies ou l'impression des choses).

C'est un bon (si elle est datée) de l'enquête:

La reconnaissance optique de caractères--une enquête. Impedovo, S | Ottaviano, L | Occhinegro, S INT. J. MOTIF de RECO. ARTIF. Processeurs intel. Vol. 5, no. 1-2, pp. 1-24. 1991

Et IEEE PAMI seraient de bons endroits pour commencer.

Ou, une recherche sur google scholar tourne beaucoup: http://scholar.google.com/scholar?hl=en&lr=&safe=off&client=firefox-a&q=optical+character+recognition&btnG=Search

Vous pouvez également regarder dans Duda, Hart, et la Cigogne en vertu de la "Tangente Distance" pour un bon exemple d'une distance métrique qui est (était?) utilisé dans les chiffres de la reconnaissance.

Vous allez avoir besoin de certaines données pour jouer avec, donc au lieu d'écrire les chiffres de 0 à 9 4000 fois chaque et de les analyser, il y a un UCI ensemble de données avec tous les numéros:

http://archive.ics.uci.edu/ml/datasets/Optical+Reconnaissance+de+Manuscrite+Chiffres

Pour un rapide premier démarrage, essayez d'hist-eq avec les images, puis calculer la tangente de distances et de faire un peu de clustering, puis train jusqu'à une simple classification de modèle algo sur les caractéristiques qui en résultent.

Profitez de.

13voto

Doc Points 4365

7voto

Lance Richardson Points 3566

Cela semble intéressant: OCR de base dans OpenCV , utilisant un algorithme de classification K plus proche voisin .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X