Tutoriel - OCR - Reconnaissance de caractère

Tutos et exemples de scripts et de code
Post Reply
Violette
Posts: 119
Joined: 10 Aug 2014, 17:42

Tutoriel - OCR - Reconnaissance de caractère

Post by Violette » 25 May 2015, 15:49

Comme vous le savez, il n'y a pas d'OCR intégré dans Actiona. Or, c'est un composant extrêmement utile dans les outils d'automatisation et de scripting.
Après avoir pas mal galéré à tenter d'adapter ocrad.js pour qu'il fonctionne avec Actiona , avoir développé un simili système d'OCR basé sur de la comparaison d'image, caractère par caractère, permettant ainsi de reconnaitre avec un très bon ratio des chaines assez complexe mais avec 2 défauts de taille, la lenteur d'exécution et la gestion des polices (chaque polices différentes doit avoir son image pour chaque caractère U_U'), j'ai fini par trouver la solution magique... (pas tout à fait mais comparé à avant tellement si ++).

Petite précision : For Windows
Petite précision n°2 : C'est un script AutoHotkey, il existe une version AutoHotkey sur Linux, donc il fonctionne peut être aussi sur Linux
Petite précision n°3 : Le script AHK est lui même basé sur Tesseract et NHocr pour le japonais et le chinois (Ah et aussi c'est open source (bon en même temps difficile de protéger la source d'un langage de script interprété) pas besoin de tricher si besoin est)

Capture2Text

- Très simple d'utilisation
- Fonctionne avec tout un tas de langue
- Blablabla

- Récupération de la zone de l'image contenant la chaine de caractère à trouver via un raccourci
Ah mince, on peut pas simuler l'appuie sur une toucher avec Actiona :(

- Oui mais on peux aussi le faire avec une ligne de commande
Ah cool on peut faire ça avec Actiona, donc on est sauvé

- Récupération de la chaine de caractère trouvée dans un fichier ou dans le presse papier
tro bi1

Téléchargement : http://sourceforge.net/projects/capture ... ture2Text/

On fait ça comment avec Actiona ?

Alors déjà la commande window : http://capture2text.sourceforge.net/#command_line

Capture2Text.exe x1 y1 x2 y2 [output_file]

Les arguments :
x1 - X1 - Coordonnée de l'écran
y1 - Y1 - Coordonnée de l'écran
x2 - X2 - Coordonnée de l'écran
y2 - Y2 - Coordonnée de l'écran

Exemple :
start Capture2Text.exe 10 152 47 321 output.txt dans un fichier bat
start /wait Capture2Text.exe 10 152 47 321 output.txt si utilisé directement dans la console

Dans notre cas, nous allons utiliser un fichier bat auquel nous allons envoyer en paramètre les coordonnées voulus. L'utilisation d'un fichier bat nous renverra directement le résultat dans le presse papier, la console s'affichant juste une fraction de seconde, puis se fermant automatiquement, voir ne s'affichant même pas.

Création d'un fichier .bat :

- Créer un fichier texte
- Écrire start Capture2Text.exe %1 %2 %3 %4 (les %x correspondent aux paramètres)
- Enregistrer et renommer ce fichier en ocr.bat

Exécuter le .bat avec les actions d'Actiona :

- Action : Commande

- Commande : C:/Users/Violette/Desktop/ocr.bat (Le chemin de votre fichier ocr.bat)
- Paramètres : 10 152 47 321 (par exemple)
- Dossier de travail : C:/Users/Violette/Desktop/ocr (Le chemin de votre exe Capture2Text.exe)

Exécuter le .bat via le code :

Code: Select all

var myObject = new Process({
    workingDirectory: 'C:/Users/Violette/Desktop/ocr',
});

myObject.start('C:/Users/Violette/Desktop/ocr.bat', ['10', '152', '47', '321']);
Ces 2 façons de faire donnent le même résultat, à savoir la chaine reconnue dans le presse papier !

/!\ La même chose via l'action code prend entre 20 et 30 ms et via l'action commande entre 250 et 300 ms.

Voilà, voilà =) !

User avatar
Jmgr
Admin
Posts: 1636
Joined: 07 Dec 2005, 15:45
Contact:

Re: Tutoriel - OCR - Reconnaissance de caractère

Post by Jmgr » 26 May 2015, 13:27

Impressionnant ! Beau boulot.
"My software never has bugs. It just develops random features."

Ultima59490
Posts: 1
Joined: 12 Jun 2019, 20:05

Re: Tutoriel - OCR - Reconnaissance de caractère

Post by Ultima59490 » 12 Jun 2019, 20:07

Bonjour, se topic date de 4 ans mais j'espère au fond de moi que quelqu'un passera par la.

Est ce qu'une personne pourrais m'expliquer comment utiliser l'OCR avec Actiona via discord ou Skype ?
J'utilise extrêmement souvent Actiona j'ai des script de plus de 600 ligne mais l'OCR je ne comprend absolument pas.

Merci d'avance !

Tom
Posts: 12
Joined: 11 Aug 2018, 10:03

Re: Tutoriel - OCR - Reconnaissance de caractère

Post by Tom » 22 Jun 2019, 14:52

Bonjour Ultima59490,

Je réussi à utiliser Capture2Text, via l'action commande, mais pas tout à fait comme Violette l'avait décrit. Sans doute une modif depuis 2015, en ligne de commande il faut appeler le programme Capture2Text_CLI.exe et non plus Capture2Text.exe.

J'ai créé un ficher .bat avec ce contenu:
start /B C:\... [emplacement sur l'ordi ]....\Capture2Text\Capture2Text_CLI.exe -s "200 600 400 800" -l French -b -o output.txt --scale-factor 3.5

avec dans cet exemple les arguments à adapter suivant la zone de l'écran où l'OCR doit faire sa reconnaissance :
200 = x1 - X1 - Coordonnée de l'écran
600 = y1 - Y1 - Coordonnée de l'écran
400 = x2 - X2 - Coordonnée de l'écran
800 = y2- Y2 - Coordonnée de l'écran

Le résultat de l'OCR est écrit dans mon exemple dans le fichier output.txt
Tu peux d'ailleurs déjà le lancer via le Dos pour tester et vérifier si le "scale-factor" de 3,5 est adapté à ton cas

Le reste est fait dans Actiona
1) action "Commande" pour lancer le fichier .bat => création ou modification du fichier output.txt
2) action "Lire fichier texte" pour récupérer dans une variable le texte contenu dans le fichier output.txt


L'autre alternative est d'utiliser l'action code décrite par Violette, mais comme je ne suis pas un pro du Javascript je n'ai pas réussi.

francois
Posts: 324
Joined: 18 Oct 2010, 10:33
Location: France

Re: Tutoriel - OCR - Reconnaissance de caractère

Post by francois » 18 Sep 2019, 14:27

Bonjour,

Effectivement, ce que fait Capture2text est pas mal du tout.

Par contre, il ne conserve pas la structure du document (les colonnes notamment).

J'ai essayé de répondre à ce besoin via un script Actiona.

Ce que fait le script :
  • Recherche de tous les fichiers 'image' situés dans un répertoire.
  • Par fichier, recherche des blocs 'texte'.
  • Capture2txt OCRise chaque bloc.
  • Restitution sous forme de page html des textes en respectant la mise en forme initiale.
Voir http://autour-de-wanquetin.com/OCR_auto/

Post Reply