Contexte
J'ai pu extraire rapidement des données texte à partir d'un fichier image (données de formulaire de numérisation) à l'aide de Tesseract, je l'ai donc organisé sous forme de mémorandum.
- Tesseract est un moteur OCR qui prend également en charge le japonais.
--Open source ** License ** (Article connexe 1.) est "** Apache License 2.0 " et peut être utilisé à des fins commerciales.
-De ** Tesseract 4 , ** RNN ** (Recurrent Neural Network) a été étendu à [ LSTM ** (Long short-term memory)](https://qiita.com/t_Signull/items/ Un ** moteur OCR ** ( AI-OCR **) basé sur 21b82be280b46f467d1b) est également installé, et en utilisant cela, on peut s'attendre à une précision d'extraction (je pense).
- Les langues prises en charge proviennent de "** tesseract / doc / tesseract.1.asc **" Quand je l'ai compté, il y en avait 117 (au 25 juillet 2020).
1. 1. introduction
2. Courir
--En exécution, en tant que données de test, les données d'image de test introduites dans [Excel Macro] Extraire le texte dans l'image avec VBA + OCR Utiliser
--Avant l'exécution, reportez-vous à "Comment exécuter l'OCR avec Python (article connexe 3.)" pour l'exécution et le code python. Créer
--Le package ** PyOCR ** est requis pour utiliser ** tesseract ** de python
―― En utilisant ce package, il est possible (probablement) d'améliorer la ** précision d'extraction du texte ** (supprimer la corbeille).
- Le résultat de l'exécution est décrit ci-dessous
C:\Users\xxx\work>python ocr_card.py test_data_3.png
Il est possible d'analyser la chaîne de caractères décrite sur l'image avec un programme et d'acquérir uniquement le texte sous forme de chaîne de caractères.!Cette fois, je voudrais vous présenter une méthode de reconnaissance de caractère qui se déguise en ami et la regarde.
La chaîne de caractères décrite sur l'image
Analysé par programmation et texte
Peut être obtenu sous forme de chaîne de caractères
Est possible!
Cette fois, ce sont des frais.
Le Wakaroku de Nori vous regarde
Je voudrais présenter une méthode de reconnaissance de caractères
Je vais.
――En outre, en référence à "[Pyocr + TesseractOCR] Impression du journal des courses de chevaux; Amélioration de la précision ♬ (Article connexe 4.)", la taille des données d'image Développer
- En conséquence, au moins les lignes vides ont été supprimées
C:\Users\xxx\work>python ocr_card.py test_data_3_mod.png
Il est possible d'analyser la chaîne de caractères décrite sur l'image avec un programme et d'acquérir uniquement le texte sous forme de chaîne de caractères.!Cette fois, je voudrais vous présenter une méthode de reconnaissance des personnages talentueuse qui prétend être une taxe à la japonaise et la déguiser en une jeune maladie.
La chaîne de caractères décrite sur l'image
Analysé par programmation et texte
Peut être obtenu sous forme de chaîne de caractères
Est possible!
Cette fois, j'ai fait semblant d'être un frais de médecine japonaise
La jeune maladie de Nori est une phrase talentueuse
Je voudrais présenter une méthode de reconnaissance de caractères
Je vais.
--En outre, pour comprendre ** Tesseract **, voir "Blog mémoire d'Otake Yatani (Article connexe 5.) ] Sera utile
3. 3. Considération
- Dans la police Mincho et la police Gothic, le texte de l'image peut être extrait correctement.
--Dans d'autres polices, une mauvaise extraction est évidente
À partir de là, on considère que les autres polices japonaises n'ont probablement pas de données d'entraînement et ne sont pas entraînées.
⇒ ** Par conséquent, en apprenant les polices utilisées dans l'image d'origine, on peut s'attendre à une réduction de l'extraction erronée **
- De plus, en agrandissant l'image, cela entraîne la suppression de la ligne blanche (extraction erronée) qui est le premier résultat de l'exécution.
⇒ ** Par conséquent, en agrandissant les données d'image autant que possible, on peut s'attendre à réduire davantage l'extraction erronée **
Quatre. Amélioration de la précision
Alors, comment améliorez-vous la précision?
・ Créez vos propres données d'apprentissage et laissez-les apprendre
Les méthodes qui peuvent être considérées en amateur sont les suivantes. Cependant, il est nécessaire d'étudier l'outil (cette fois, Tesseract) pour voir si cela peut être fait.
(1) Dans le cas de l'écriture manuscrite ⇒ Préparer et former des données d'apprentissage qui reflètent les caractéristiques (habitudes) des caractères manuscrits dans l'image originale.
・ "Tesseract 4.1 pour réapprendre les caractères manuscrits à l'aide de LSTM (Article connexe 7.)"
・ "[23 publié] OCR (reconnaissance optique de caractères) / résumé de l'ensemble de données de reconnaissance de caractères manuscrits (Article connexe 8.) »
(2) Préparez la police utilisée dans l'image d'origine en tant que données d'entraînement et entraînez-la.
・ Méthode immédiate
Ce qui suit décrit dans "[SikuliX] Trois moyens d'améliorer la précision de lecture du japonais OCR (article connexe 9.)" Vous pouvez vous attendre à une amélioration de la précision en essayant trois (je pense)
(1) Agrandir et lire l'image à une taille de police appropriée
(2) Préparez une image avec une résolution aussi élevée que possible
(3) Définir la liste noire et la liste blanche
Article associé
- Comprendre la licence OSS (Connaissez-vous la différence entre «utiliser» et «utiliser»?)
- Comment installer Tesseract OCR sous Windows
- Comment exécuter l'OCR en Python
- [Pyocr + Tesseract OCR] Impression du journal des courses de chevaux; amélioration de la précision ♬
- Notes d'Odake Hachiya
- Comment convertir un PDF en fichier image (JPEG, PNG) avec Python
- Tesseract 4.1 pour réapprendre les caractères manuscrits à l'aide de LSTM
- [23 listes] OCR (reconnaissance optique de caractères) / résumé de l'ensemble de données de reconnaissance de caractères manuscrites
- [SikuliX] Trois moyens d'améliorer la précision de lecture du japonais OCR
10.Documentation of Tesseract OCR
11.tesseract-ocr/tesseract
- Reconnaissance de caractères avec Python et Tesseract OCR
- Tesseract 4.1 pour réapprendre le japonais avec LSTM
- Essayez de lire des phrases écrites en lettres shell avec OCR
- Apprendre avec le moteur de reconnaissance de caractères Tesseract OCR
- [Créer des données d'entraînement pour Tesseract avec jTessBoxEditor](https://nekodeki.com/jtessboxeditor%E3%81%A7tesseract%E3%81%AE%E5%AD%A6%E7%BF%92%E3% 83% 87% E3% 83% BC% E3% 82% BF% E3% 82% 92% E4% BD% 9C% E6% 88% 90% E3% 81% 99% E3% 82% 8B / # Tesseract)
- Essayez l'OCR simple avec Tesseract + PyOCR
- Utilisation de Tesseract avec PyOCR
- [Essayez ocr en redimensionnant l'image de 10 lignes et 10 colonnes de caractères régulièrement espacés sans bordures (Python + Tesseract)](http://chuckischarles.hatenablog.com/entry/2018/11/ 14/000952)
- [Comment utiliser la commande tesseract (Tesseract OCR 4.x)](https://blog.machine-powers.net/2018/08/02/learning-tesseract-command-utility/#%E3%83%9A% E3% 83% BC% E3% 82% B8% E3% 82% BB% E3% 82% B0% E3% 83% A1% E3% 83% B3% E3% 83% 86% E3% 83% BC% E3% 82% B7% E3% 83% A7% E3% 83% B3% E3% 83% A2% E3% 83% BC% E3% 83% 89 psm)
- J'ai essayé de jouer avec l'option PSM de tesseract
- Utilisation de base de Tesseract 4 écrit en Python. Comment exécuter l'OCR depuis l'API et la CLI