Question Modèle Tensorflow pour OCR


Je suis nouveau dans Tensorflow et j'essaie de construire un modèle qui pourra effectuer une reconnaissance optique de caractères sur mes images. Je dois lire 9 caractères (corrigés dans toutes les images), des chiffres et des lettres. Mon modèle serait similaire à ceci

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

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

Je sais que je dois passer à modeler, 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 passées au modèle serait utile? J'apprécie, merci.


10
2018-04-25 12:21


origine


Réponses:


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

Je pense que cela devrait fonctionner plutôt bien pour votre cas. Se référer à la réponse https://stackoverflow.com/a/44461910 pour obtenir des instructions sur la préparation des données.


5
2018-06-26 21:22



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

1) Le premier est la classification des mots directement à partir de votre image. Si votre vocabulaire de 9 caractères est limité, vous pouvez former un classificateur spécifique à un mot. Vous pouvez ensuite convoluer ce classificateur avec votre image et sélectionner le mot avec la plus grande probabilité.

2) La deuxième option consiste à former un classificateur de personnages, à trouver tous les caractères de votre image et à trouver la ligne la plus probable qui possède 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. Ensuite, lisez toutes les zones de texte avec un modèle basé sur la séquence et sélectionnez la solution la plus probable qui respecte vos contraintes. Un modèle simple basé sur la séquence est présenté dans l'article suivant: http://ai.stanford.edu/~ang/papers/ICPR12-TextRecognitionConvNeuralNets.pdf. D'autres modèles basés sur les séquences pourraient être basés sur les MMH, la classification temporelle connexionniste, les 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 générer les caractères un par un.

Notez que cette liste n'est pas exhaustive, il peut y avoir de nombreuses façons 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.


4
2018-04-25 16:44