web-dev-qa-db-fra.com

Modèle Tensorflow pour OCR

Je suis nouveau dans Tensorflow et j'essaye de construire un modèle qui pourra effectuer l'OCR sur mes images. Je dois lire 9 caractères (fixes dans toutes les images), des chiffres et des lettres. Mon modèle serait similaire à celui-ci

https://matthewearl.github.io/2016/05/06/cnn-anpr/

Mes questions seraient, si j'entraîne mon modèle contre chaque personnage d'abord et après combiner les caractères pour obtenir une étiquette complète représentée. Ou devrais-je m'entraîner sur l'étiquette complète directement?

Je sais que je dois passer au modèle, images + étiquettes pour l'image correspondante, quel est le format de ces étiquettes, est-ce un fichier texte, je suis un peu confus à propos de cette partie, donc toute explication sur le format des étiquettes qui sont passées au modèle serait utile? J'apprécie, merci.

15
thug_

Je recommanderais de former un modèle OCR de bout en bout avec attention. Vous pouvez essayer l'OCR Attention que nous avons utilisé pour transcrire les noms de rue https://github.com/tensorflow/models/tree/master/research/attention_ocr

Je suppose que cela devrait fonctionner assez bien pour votre cas. Reportez-vous à la réponse https://stackoverflow.com/a/4446191 pour obtenir des instructions sur la façon de préparer les données à cet effet.

9
Alexander Gorban

Il y a deux façons de gérer cela (la liste suivante n'est pas exhaustive).

1) La première est la classification Word directement à partir de votre image. Si votre vocabulaire de 9 caractères est limité, vous pouvez former un classificateur spécifique à Word. Vous pouvez ensuite convoluer ce classifieur avec votre image et sélectionner le mot le plus probable.

2) La deuxième option consiste à former un classificateur de caractères, à trouver tous les caractères de votre image et à trouver la ligne la plus probable contenant le caractère 9 que vous recherchez.

3) La troisième option consiste à former un détecteur de texte, trouver toutes les zones de texte possibles. Lisez ensuite toutes les zones de texte avec un modèle basé sur une séquence et sélectionnez la solution la plus probable qui respecte vos contraintes. Un modèle simple basé sur des séquences est présenté dans l'article suivant: http://ai.stanford.edu/~ang/papers/ICPR12-TextRecognitionConvNeuralNets.pdf . D'autres modèles basés sur des séquences pourraient être basés sur des HMM, la classification temporelle connexionniste, des modèles basés sur l'attention, etc.

4) La quatrième option est constituée de modèles basés sur l'attention qui fonctionnent de bout en bout pour trouver d'abord le texte, puis produire les caractères un par un.

Notez que cette liste n'est pas exhaustive, il peut y avoir de nombreuses façons différentes de résoudre ce problème. D'autres options peuvent même utiliser des solutions tierces comme Abbyy ou Tesseract pour vous aider à résoudre votre problème.

6
Xochipilli