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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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.

+ 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, 21h46
  2. DLL COM, Reverse Engineering, JNI, Webservices. Help ?
    Par jb.feldis dans le forum Windows
    Réponses: 3
    Dernier message: 18/09/2007, 11h43
  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, 14h40
  4. Adresse absolu de la dll dans un Webservice
    Par All Jinx dans le forum C++
    Réponses: 3
    Dernier message: 03/08/2006, 22h43
  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, 09h21

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