On squatte l'ocr d'hawaii !

Post on 07-Jul-2015

330 views 1 download

description

How to implement a small OCR on Windows Phone with Hawaii services ! This is the slides of my session in the event "La communauté Windows Phone squatte Microsoft".

Transcript of On squatte l'ocr d'hawaii !

ON SQUATTE

L’OCR

D’HAWAII !

SQUATTEUR : SAMUEL BLANCHARD

Samuel BLANCHARD

Communautaire

Rédacteur/Modérateur chez Développez

Rédacteur pour Programmez!

Fondateur Club SP et .NET Ouest

Professionnel

Responsable Développement &

Innovation chez Naviso (blog.naviso.fr)

2

Samuel BLANCHARD

3

Projet HAWAII (1)

4

Projet Microsoft Research :

Gratuit mais…

Seulement pour les écoles

Apps non commerciales

Projet HAWAII (2)

5

Services dans les nuages !

OCR (reconnaissance de caractères)

Relais de message

Sauvegarde de settings

Voix vers texte

Projet HAWAII (3)

6

Services accessibles facilement !

SDK Windows Phone (mais pas tous les services)

Architecture REST pour le reste

Téléchargement & ID

7

SDK Windows Phonehttp://research.microsoft.com/en-us/um/redmond/projects/hawaii

L’id à partir de Windows Live IDhttp://hawaiiguidgen.cloudapp.net

Intégration du SDK

8

Répertoire de baseC:\Users\VotreNomUtilisateur\Documents\Microsoft Research\Cloud Services SDK for WP7\1.0.8

Projets du SDK : code + binClientLibraryBase : accès à Hawaii (indispensable)

OcrClientLibrary : accès à l’OCR d’Hawaii (selon services)

Appel de l’OCR

9

string hawaiiAppId = HAWAII_ID; //identifiant Hawaiibyte[] bufferImage; //image JPEG à envoyer

OcrService.RecognizeImageAsync(hawaiiAppId, bufferImage,(result) =>{

// récupération du résultat});

L’image à envoyer

10

Format JPEG

70-80% compression

640x480 (meilleur résolution)

Taille max 1.5Mo

Taille font : 30px (idéal) à 100px (max)

Image contrastée

Source de l’image (1) :

11

CameraCaptureTask + PhotoChooserTask

retaille de l’image en 640x480

un seul essai

Format JPEG (attention aux formats dans PhotoChooserTask)

camera = new CameraCaptureTask();camera.Completed += new EventHandler<PhotoResult>(completed);camera.Show();

Source de l’image (2) :

12

PhotoCamera

taille de l’image en 640x480

Flux vidéo

Format Brut (pixels)

cam = new Microsoft.Devices.PhotoCamera(CameraType.Primary);camBrush.SetSource(cam); //fixe la source du VideoBrush

pixels = new int[(int)cam.PreviewResolution.Width * (int)cam.PreviewResolution.Height];

cam.GetPreviewBufferArgb32(pixels);

Améliorons l’image :

13

bmp = bmp.Contrast(0, 0.25f);

Contraste

Article de René Schultehttp://channel9.msdn.com/coding4fun/articles/PicFx--Windows-

Phone-Picture-Effects-Application--Part-1

Workflow d’acquisition

14

Lancement de la caméraPhotoCamera

AutoFocus

Récupération des données caméra GetPreviewBufferArgb32

Envoi vers l’OCR OcrService.RecognizeImageAsync

Traitement des résultats

Démo Carte de visiteMA SUPER DÉMONSTRATION

15La communauté Windows Phone Squatte Microsoft

Résultats de l’OCR

16

Des blocs de texte

Des mots

Une position et taille par mot

Une orientation

Optimisation des résultats

17

Phrase : assembler les mots sur la même ligne (position Y)

Détecter le type de la phrase (Web, Adresse mail,…)

Code GetOcrLinesMA SUPER DÉMONSTRATION

18La communauté Windows Phone Squatte Microsoft

Sauver les contacts

19

Création de contact SaveContactTask

SaveContactTask task = new SaveContactTask();

foreach (var line in this.OcrLines){line.SetToContactTask(task);

}

task.Show();

Conclusion

20

Résultat satisfaisant si image de

qualité.

Aide à la saisie

Intégration facile

Manque un OCR Offline

Licence trop restreinte !

Programmez ! n°153

21

Remerciements

22

23

Des questions ?

24

Merci à tous !