IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

OCR webservice ou DLL


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Par défaut OCR webservice ou DLL
    Bonjour à tous,

    Dans le cadre d'un projet, je cherche à automatiser la récupération des informations qui sont présentes sur une carte d'identité (numéro de pièces/nom/...)
    J'ai donc eu l'idée de faire appel à l'OCR. Je scanne le document, je le sauvegarde en image et je lance une OCR.

    Le scan et la sauvegarde : OK
    Par contre l'OCR, je ne sais pas vers quel service me tourner. J'ai essayé aspire/ mais le résultat n'est pas terrible.

    Connaissez vous un fournisseur de DLL ou WS, qui pourrait me donner (ou vendre ) cette prestation ?

    Merci

  2. #2
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    J'ai utilisé Tesseract (Google Project).

    Il y a un projet qui permet l'encapsulation en tant que DLL .NET

    Tu peux trouver ici l'implémentation que j'en ai fait, dans le cadre d'un IFilter permettant à Windows Search d'indexer des images en lisant le contenu de ces dernières.

    http://www.developpez.net/forums/d11...naissance-ocr/

    Le résultat n'est pas très bon sur les images avec une police de petite taille (résolution d'écran en taille 10 -capture d'écran par exemple-, c'est souvent du charabia qui est détecté).

    Mais à partir d'une taille 12, ou d'une meilleure résolution (scan en 300 dpi par exemple) alors le résultat est impeccable. A noter qu'il faut utiliser un fichier de langue, afin d'aider l'OCR à corriger automatiquement lorsqu'il n'est pas sûr de lui.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Par défaut
    Bonjour et merci pour ton retour.

    Je vais regarder de plus prêt, les exemples de ton sujet.

    Je reviens vers toi

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Par défaut
    Bonjour et encore merci,

    Je suis en train d'essayer d'implémenter la class mais je pioche sévèrement. En effet, mes compétences en C# sont proches de zéro.

    Aurais tu un sample de code qui implémente ta class IFilterPicture ?

    Genre :
    dim toto as IFilterPicture
    toto.chargerImage (chemin image)
    msgbox (toto.Recupererresultattext)

    Merci

  5. #5
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Ma classe IFilterPucture n'est pas faite pour être utilisée dans un programme tiers. Elle est faite pour être appelée par le service d'indexation de Windows Search.

    Toi, tu dois utiliser Tesseract directement, sans passer par ma classe.
    Je te l'avais montrée à titre d'exemple d'implémentation de Tesseract en .NET

    Le projet Tesseract for .NET :
    http://code.google.com/p/tesseractdotnet/

    Pour le compiler, il faut VC++, et suivre un tuto plus ou moins complexe et pas très exhaustif d'après les retours que j'ai pu trouver sur des forums.
    Du coup, tu peux te contenter de télécharger directement la DLL compilée (mais ce n'est pas la dernière version, et elle n'est pas forcément optimisée pour tes postes clients) ici :
    http://tesseractdotnet.googlecode.co...A1327575785561

    Ensuite, pour utiliser la DLL, c'est "trivial" :
    - Tu la mets dans les références de ton projet .NET
    - Et dans le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    TesseractProcessor p = new TesseractProcessor();
                    if (p.Init(Path.GetDirectoryName(Assembly.GetAssembly(typeof(IFilterPicture)).Location) + @"\fra.traineddata", "fra", (int)eOcrEngineMode.OEM_DEFAULT))
                    {
                        text = p.Recognize(currentFileName);
                    }
                    else
                    {
                        text = string.Empty;
                    }
    A noter qu'il te faut aussi le fichier fra.traineddata que tu trouveras ici http://www.developpez.net/forums/att...ce-ocr/fra.7z/ ou là http://code.google.com/p/tesseract-ocr/

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Par défaut
    OK, merci pour les informations complémentaires.

    Pour le compiler, il faut VC++, et suivre un tuto plus ou moins complexe et pas très exhaustif d'après les retours que j'ai pu trouver sur des forums.
    Du coup, tu peux te contenter de télécharger directement la DLL compilée (mais ce n'est pas la dernière version, et elle n'est pas forcément optimisée pour tes postes clients) ici :
    http://tesseractdotnet.googlecode.co...A1327575785561
    >>Ton lien est mort. J'ai néanmoins trouvé une tesseract.dll et tessnet2_32.dll, d'ailleurs, c'est quoi la différence.

    Je viens de faire des tests en VB et C# et systématiquement l'appel de la fonction Init me fait sortir du programme...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Bitmap image = new Bitmap("eurotext.tif");
    tessnet2.Tesseract ocr = new tessnet2.Tesseract();
    ocr.SetVariable("tessedit_char_whitelist", "0123456789"); // If digit only
    ocr.Init(@"c:\temp", "fra", false); // To use correct tessdata
    List<tessnet2.Word> result = ocr.DoOCR(image, Rectangle.Empty);
    foreach (tessnet2.Word word in result)
    Console.WriteLine("{0} : {1}", word.Confidence, word.Text);
    J'ai try catcher et je n'ai pas d'exception.

  7. #7
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    tessnet2_32.dll est une vieille version basée sur la 2.0

    Init attends en paramètre un nom de fichier traineddata, pas un simple répertoire.

  8. #8
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Par défaut
    Greeee, j'ai essayé avec en passant le nom du fichier complet mais le résultat est le même...Je tourne en rond.
    Je suis sous VS2010.
    N'aurais tu pas un projet incorporant la DLL (la tienne celle qui marche) sous le coude, tu me sauverais
    Merci

  9. #9
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Voici mon projet "as this" (dont tu as déjà les sources dans le topic contributions)
    Fichiers attachés Fichiers attachés

  10. #10
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Par défaut
    Un grand merci

    Je pense que ma version de DLL était mauvaise.

    J'ai fait quelques tests mais les résultats sont ultra décevants.

    Même sur un texte écris en 40 sur une feuille A4, le résultat est pas terrible.

    Arrives tu à quelque chose de satisfaisant en terme de qualité ?

  11. #11
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Après quelques tests, oui, j'ai eu des résultats probants.

    Je dirais pas que c'est 100% bon, loin de là, mais généralement les images que Windows Search me ramène contiennent bien le texte que je cherche, donc oui.

    J'ai fait quelques tests sur une image simple (capture d'écran d'un PDF) et j'ai obtenu des résultats tout à fait bon au détail près qu'il a du mal avec les polices "condensées".

    J'ai eu des trucs genre :

    "j'envois des tas" au lieu de "j'en vois des tas".
    => Il a concaténé deux mots car le mot créé était aussi dans le dictionnaire.

  12. #12
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Par défaut
    Ah oui, ben pour moi c'est vraiment pas le cas

    Disons que même en police 40 (très gros) sur un A4 fond blanc, je scanne en 300DPI (pas vilain), je compresse en Jpg (80% toujours propre). Je lance l'OCR...Resultat vraiment vraiment pas terrible.
    Genre Bonjour> Voujuur Pas vraiment exploitable.
    En plus la chaine de caractères est parasité d'une multitude de caractères type %,#,$...qui ne sont pas présent sur le document.

  13. #13
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    C'est vraiment étrange.
    Tu utilises bien le fichier de langue ?

    Chez moi, cette image est lue sans aucune erreur (enfin, si, "lentilles refusées par le R.O." est reconnu comme "lentilles refusées [g]parle[/g] R.O.") ce qui reste acceptable je trouve.
    Images attachées Images attachées  

  14. #14
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Par défaut
    Résultat impeccable avec ton fichier.

    Les miens sont issue de scan (300dpi) et du coup, l'OCR est plus délicat.

    Merci, je vais travailler la piste de la résolution ainsi que de la compression de mes scans.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. IIS 7 PHP -> ASP.Net Webservice -> COM dll
    Par Sergejack dans le forum IIS
    Réponses: 5
    Dernier message: 19/09/2009, 22h46
  2. DLL COM, Reverse Engineering, JNI, Webservices. Help ?
    Par jb.feldis dans le forum Windows
    Réponses: 3
    Dernier message: 18/09/2007, 12h43
  3. Appler un webservice dans une dll via une page asp
    Par yannick_sch dans le forum ASP.NET
    Réponses: 1
    Dernier message: 14/05/2007, 15h40
  4. Adresse absolu de la dll dans un Webservice
    Par All Jinx dans le forum C++
    Réponses: 3
    Dernier message: 03/08/2006, 23h43
  5. Où se trouve la dll du WebService compilé sous VS2005 ?
    Par yan_064 dans le forum Visual Studio
    Réponses: 1
    Dernier message: 13/06/2006, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo