on squatte l'ocr d'hawaii !

24
ON SQUATTE L’OCR D’HAWAII ! SQUATTEUR : SAMUEL BLANCHARD

Upload: samuel-blanchard

Post on 07-Jul-2015

330 views

Category:

Technology


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

Page 1: On squatte l'ocr d'hawaii !

ON SQUATTE

L’OCR

D’HAWAII !

SQUATTEUR : SAMUEL BLANCHARD

Page 2: On squatte l'ocr d'hawaii !

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

Page 3: On squatte l'ocr d'hawaii !

Samuel BLANCHARD

3

Page 4: On squatte l'ocr d'hawaii !

Projet HAWAII (1)

4

Projet Microsoft Research :

Gratuit mais…

Seulement pour les écoles

Apps non commerciales

Page 5: On squatte l'ocr d'hawaii !

Projet HAWAII (2)

5

Services dans les nuages !

OCR (reconnaissance de caractères)

Relais de message

Sauvegarde de settings

Voix vers texte

Page 6: On squatte l'ocr d'hawaii !

Projet HAWAII (3)

6

Services accessibles facilement !

SDK Windows Phone (mais pas tous les services)

Architecture REST pour le reste

Page 7: On squatte l'ocr d'hawaii !

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

Page 8: On squatte l'ocr d'hawaii !

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)

Page 9: On squatte l'ocr d'hawaii !

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});

Page 10: On squatte l'ocr d'hawaii !

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

Page 11: On squatte l'ocr d'hawaii !

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();

Page 12: On squatte l'ocr d'hawaii !

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);

Page 13: On squatte l'ocr d'hawaii !

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

Page 14: On squatte l'ocr d'hawaii !

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

Page 15: On squatte l'ocr d'hawaii !

Démo Carte de visiteMA SUPER DÉMONSTRATION

15La communauté Windows Phone Squatte Microsoft

Page 16: On squatte l'ocr d'hawaii !

Résultats de l’OCR

16

Des blocs de texte

Des mots

Une position et taille par mot

Une orientation

Page 17: On squatte l'ocr d'hawaii !

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,…)

Page 18: On squatte l'ocr d'hawaii !

Code GetOcrLinesMA SUPER DÉMONSTRATION

18La communauté Windows Phone Squatte Microsoft

Page 19: On squatte l'ocr d'hawaii !

Sauver les contacts

19

Création de contact SaveContactTask

SaveContactTask task = new SaveContactTask();

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

}

task.Show();

Page 20: On squatte l'ocr d'hawaii !

Conclusion

20

Résultat satisfaisant si image de

qualité.

Aide à la saisie

Intégration facile

Manque un OCR Offline

Licence trop restreinte !

Page 21: On squatte l'ocr d'hawaii !

Programmez ! n°153

21

Page 22: On squatte l'ocr d'hawaii !

Remerciements

22

Page 23: On squatte l'ocr d'hawaii !

23

Des questions ?

Page 24: On squatte l'ocr d'hawaii !

24

Merci à tous !