web-dev-qa-db-fra.com

Comment choisir entre Tesseract et OpenCV?

Je suis récemment tombé sur Tesseract et OpenCV . Il semblerait que Tesseract soit un moteur de reconnaissance optique de caractères à part entière et OpenCV puisse être utilisé comme infrastructure pour créer une application/un service de reconnaissance optique de caractères. 

J'ai essayé d'utiliser Tesseract sur certaines de mes images et sa précision semble correcte. Plus tard, je suis tombé sur un très simple tutorial sur l’utilisation d’OpenCV pour effectuer l’OCR avec Python et j’ai été impressionné. En quelques minutes, j'ai fini de former le système et sa précision était bonne. Mais bien sûr, en adoptant cette approche, je dois former mon système à l’aide d’un grand ensemble d’entraînements. 

Mes questions spécifiques sont les suivantes:

  • Comment choisir entre Tesseract et OpenCV pour créer une application OCR personnalisée?
  • Il existe des jeux de données de formation disponibles pour Tesseract pour différentes langues. OpenCV a-t-il quelque chose de similaire pour que je ne sois pas obligé (e) de démarrer pour atteindre l'OCR?
  • Lequel est le meilleur pour une application commerciale?

Aucune suggestion?

Note: J'ai 24 ans dans le domaine de la vision par ordinateur, mais je suis disposé à consacrer du temps et des efforts pour apprendre les conditions préalables.

78
Legend
  • Tesseract est un moteur OCR. Il utilise, travaille et finance spécifiquement Google pour lire du texte à partir d'images, effectuer une segmentation de document de base et fonctionner sur des entrées d'image spécifiques (un seul mot, une ligne, un paragraphe, une page, des dictionnaires limités, etc.).

  • OpenCV, en revanche, est une bibliothèque de vision par ordinateur qui inclut des fonctionnalités qui vous permettent d’effectuer une extraction des fonctionnalités et une classification des données. Vous pouvez créer un simple segmenteur et classificateur de lettre qui effectue une OCR de base, mais ce n'est pas un très bon moteur OCR (j'en ai déjà créé un en Python. C'est vraiment inexact pour une entrée qui s'écarte de vos données d'entraînement).

Si vous souhaitez avoir une compréhension de base de la dureté de l’OCR, essayez OpenCV. Tesseract est destiné à real OCR.

68
Blender

Je suis l'auteur du didacticiel de reconnaissance des chiffres que vous avez mentionné et Je dirais que cela ne remplace en aucun cas tesseract.

Tesseract est un très bon moteur OCR, peut-être le meilleur moteur OCR OpenSource.

Le tutoriel que vous avez mentionné est juste un essai pour comprendre le fonctionnement le plus simple de l'OCR.

Donc, si vous recherchez une application OCR, je vous recommanderais d’utiliser OpenCV pour le prétraitement de l’image, puis d’appliquer le moteur tesseract.

60
Abid Rahman K

Les deux peuvent être complémentaires. Si vous lisez le document sur OpenCV http://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseracticdar2007.pdf

Il souligne que "HP ayant développé de manière indépendante une technologie d’analyse de la mise en page utilisée dans les produits (et n’a donc pas été publiée pour le code source ouvert), Tesseract n’a jamais eu besoin de sa propre analyse de la mise en page. Tesseract suppose donc que son entrée est une image binaire avec régions de texte polygonales facultatives définies. "

Ce type de tâche peut être exécuté par OpenCV et l’image résultante transmise à Tesseract. Vous pouvez trouver un exemple de ce type de code dans le référentiel Git: https://github.com/Itseez/opencv_contrib/tree/master/modules/text/samples Ces exemples utilisent les API Tesseract. conversion d'image en texte.

7
user2957542

OpenCV est une bibliothèque pour CV , utilisée pour analyser et traiter des images en général. Tesseract est une bibliothèque pour OCR , qui est un sous-ensemble spécialisé de CV dédié à l'extraction de texte à partir d'images.

De OpenCV.org

..... utilisé pour détecter et reconnaître les visages, identifier les objets, classer les actions humaines dans les vidéos, suivre les mouvements de la caméra, suivre les objets en mouvement, extraire des modèles 3D d'objets, produire des nuages ​​de points 3D à partir de caméras stéréo, assembler des images pour résolution d'une image entière, recherchez des images similaires dans une base de données d'images, supprimez les yeux rouges des images prises au flash, suivez les mouvements des yeux, reconnaissez les paysages et établissez des repères pour les superposer à la réalité augmentée, etc.

De Tesseract Github :

..... peut être utilisé directement ou (pour les programmeurs) à l'aide d'une API pour extraire du texte dactylographié, manuscrit ou imprimé à partir d'images. Il prend en charge une grande variété de langues.

1
Aniruddha Varma