[..] Demande d'aide pour Script OCR

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
IceMaKeR
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 06 nov. 2009 14:15
Status : Hors ligne

[..] Demande d'aide pour Script OCR

#1

Message par IceMaKeR »

Bonjour à tous,

Voilà je désire faire de la reconnaissance de caractères sur un simulateur de vol qui n'exporte pas certaines données, pour ensuite les envoyer sur écran LCD branché sur une carte Arduino.
Pour la partie Arduino pas de soucis j'arrive à envoyer du texte sans soucis.
Par-contre j'ai essayé avec tesseract et un autre script trouvé sur le site US et j'ai pas réhussi à les faire marcher.
Voici ce que le simulateur envoie à l'écran :
CMSP.png
CMSP.png (7.8 Kio) Vu 2447 fois
A savoir que je maitrise la position et la taille de ce qui est envoyé à l'écran, donc pour avoir les coordonnées du texte je peux les récupérer sans soucis.

voici le fichier de FONT utilisé par le simulateur
font_CMS.png
Et ce que je souhaite avoir dans mon LCD (le texte présent est un texte rentré à la main.)
2013-04-29 13.54.38.jpg
Ce qui me manque donc c'est juste la méthode pour utiliser l'OCR convenablement.
A savoir c'est que par moments le texte de l'instrument peut clignoter il faudrait aussi que j'en tienne comte et surtout avoir une reconnaissance assez rapide pour qu'elle envoie les infos au LCD sans trop bouffer de FPS dans le simu qui est lui-même assez groumand.
Bref j'ai juste besoin d'une piste pour la partie OCR et je pense pouvoir m'en sortir pour le reste... enfin j’espère.

Merci d'avance pour votre aide.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Demande d'aide pour Script OCR

#2

Message par mikell »

Tesseract fonctionne mais renvoie des erreurs à cause de la police utilisée
► Afficher le texte
Donc 2 solutions : tenter un traitement d'image avec GDI+ pour augmenter le contraste et adoucir les contours ce qui limitera peut-être les erreurs, ou carrément faire une recherche d'image avec _ImageSearch pour chaque caractère
Mais AMHA dans les 2 cas tu risques d'avoir un temps de réponse beaucoup trop long ^^
L'idéal évidemment serait de pouvoir utiliser une police compréhensible par Tesseract
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Demande d'aide pour Script OCR

#3

Message par jchd »

J'ai bien un "bidule" comme ça dans mes tiroirs mais il demanderait un bon coup de balai et un peu d'huile de doigts pour s'adapter au cas présent. Il fonctionne par recherche (exacte) des colonnes successives de pixels pour chaque caractère, et demande une interaction manuelle pour "apprendre" (= enregistrer dans une base SQLite) tout nouveau caractère et ce pour chaque type de police, chaque style et chaque taille.

Pour une utilisation comme celle-ci, ça irait très bien si les 2 fontes utilisées sont invariables. De tête, je crois qu'il prenait dans les 200µs par caractère 13x8.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
bob
Niveau 3
Niveau 3
Messages : 41
Enregistré le : ven. 16 oct. 2009 23:23
Status : Hors ligne

Re: [..] Demande d'aide pour Script OCR

#4

Message par bob »

Bonjour,
En essayant le script mis par Mikell, j'obtiens cette erreur :

C:\Program Files (x86)\AutoIt3\Include\Tesseract.au3 (404) : ==> The requested action with this object has failed.:
if $last_capture.item(Number($hwnd)) = "" Then
if $last_capture.item(Number($hwnd)) ^ ERROR

A votre avis, à quoi est due cette erreur ?
D'avance, merci.
IceMaKeR
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 06 nov. 2009 14:15
Status : Hors ligne

Re: [..] Demande d'aide pour Script OCR

#5

Message par IceMaKeR »

jchd a écrit :J'ai bien un "bidule" comme ça dans mes tiroirs mais il demanderait un bon coup de balai et un peu d'huile de doigts pour s'adapter au cas présent. Il fonctionne par recherche (exacte) des colonnes successives de pixels pour chaque caractère, et demande une interaction manuelle pour "apprendre" (= enregistrer dans une base SQLite) tout nouveau caractère et ce pour chaque type de police, chaque style et chaque taille.

Pour une utilisation comme celle-ci, ça irait très bien si les 2 fontes utilisées sont invariables. De tête, je crois qu'il prenait dans les 200µs par caractère 13x8.
Je suis très intéressé par ton "bidule", l'apprentissage ne pose pas de soucis étant donné qu'il sera fait une fois pour toutes.

J'arrive à avancer avec un script trouvé sur le forum US mais j'ai encore des soucis car il impacte apparemment les simu en créant des micro saccades je pense lors de la capture d'écran pour l'analyse.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Demande d'aide pour Script OCR

#6

Message par jchd »

OK. Comme il y a des demandes récurrentes pour un tel besoin, je vais essayer de ficeler un module utilisable. Actuellement, les fonctions que j'employais sont noyées dans un fatras applicatif très spécifique qui ne facilitent pas leur réemploi dans un cas plus général. Sois un peu patient, stp.

En attendant, tâche de faire des fonctions pour captures de bitmap précises (au pixel près en hauteur, ça aide énormément) pour isoler tes deux lignes de texte (qui, tu l'as remarqué, n'emploient pas la même taille de corps : 16 en haut et 13 en bas). Stocke-les en PNG, par exemple, ça simplifiera les tests. Tu pourras toujours modifier le code pour traiter des bitmaps mémoire par la suite si tu le souhaites.

EDIT : fais tes captures en RGB
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
IceMaKeR
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 06 nov. 2009 14:15
Status : Hors ligne

Re: [..] Demande d'aide pour Script OCR

#7

Message par IceMaKeR »

Bien Pris.
Pour la localisation des captures c'est déjà fait, je vais affiner la chose.

Merci en tout cas pour ton aide
IceMaKeR
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 06 nov. 2009 14:15
Status : Hors ligne

Re: [..] Demande d'aide pour Script OCR

#8

Message par IceMaKeR »

Des nouvelles sur l'avancement?
overflow
Niveau 5
Niveau 5
Messages : 138
Enregistré le : sam. 05 déc. 2009 23:49
Status : Hors ligne

Re: [..] Demande d'aide pour Script OCR

#9

Message par overflow »

tu as tester de recup tes infos par edition de memoire ?
(lire tes valeurs directement dans le processus )
IceMaKeR
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 06 nov. 2009 14:15
Status : Hors ligne

Re: [..] Demande d'aide pour Script OCR

#10

Message par IceMaKeR »

Malheureusement cette info je ne l'ai pas au niveau du simu, en tt cas je sais pas ou la trouver!
Il y a un moyen de lire les infos mémoire d'une app?
En faite le Simu est en partie codé en lua, donc je connais les variables pour l'instrument que je veux reproduire mais je ne sais pas comment regarder dans la mémoire si elles s'y trouvent.
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [..] Demande d'aide pour Script OCR

#11

Message par GhostLine »

Rien à voir avec ta question, mais si tu as un endroit où tu stockes des photos de ton cockpit entier, je suis intéressé :)
IceMaKeR
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 06 nov. 2009 14:15
Status : Hors ligne

Re: [..] Demande d'aide pour Script OCR

#12

Message par IceMaKeR »

Voici une photo de l'année dernière au bourget...
Image
Répondre