kinect et office365 : un bon geste en faveur de votre si

39
palais des congrès Paris 7, 8 et 9 février 2012

Upload: fabrice-barbin

Post on 10-Jun-2015

929 views

Category:

Technology


0 download

DESCRIPTION

Présentation utilisée lors de la session "Kinect + Office365 : un bon geste en faveur de votre SI", co-animée avec Julien LO PRESTI et Samuel BLANCHARD lors des Microsoft TechDays 2012 à Paris.

TRANSCRIPT

Page 1: Kinect et Office365 : Un bon geste en faveur de votre SI

palais des congrès Paris

7, 8 et 9 février 2012

Page 2: Kinect et Office365 : Un bon geste en faveur de votre SI

Vous êtes dans la salle 352A

Page 3: Kinect et Office365 : Un bon geste en faveur de votre SI

Kinect + Office365 : Un bon geste en faveur de votre SI !Mardi 7 févrierJulien LO PRESTISamuel BLANCHARDFabrice BARBIN

Page 4: Kinect et Office365 : Un bon geste en faveur de votre SI

Samuel BLANCHARD

Au niveau communautaire Rédacteur/Modérateur chez

Développez Rédacteur pour Programmez! Fondateur Club SP et .NET Ouest Créateur d’applications Windows

Phone Outil : isoStoreSpy Apps: Wario’s Jewels, Sonic’s

Jewels

Au niveau professionnel Responsable Développement &

Innovation chez Naviso (www.naviso.fr)

A remplacer par une photo

Page 5: Kinect et Office365 : Un bon geste en faveur de votre SI

Julien LO PRESTI

Au niveau communautaire Contributeur Club SP et .NET

Ouest MSP Développement Apps WP7

Don du sang, IC12, Flickr Explorer

Au niveau professionnel Etudiant SUPINFO Rennes Stagiaire chez SYNERGIZ

A remplacer par une photo

Page 6: Kinect et Office365 : Un bon geste en faveur de votre SI

Fabrice BARBIN

Au niveau communautaire Fondateur Club SP et .NET Ouest MVP SharePoint Workspace

Fondateur de la Communauté SPW Auteur d’un ouvrage dédié à SPW

Contributeur Club SharePoint FR (UGSF)

Au niveau professionnel Dirigeant de SYNERGIZ, centre de

compétences et de R&D sur technologies Microsoft (www.synergiz.com

)

A remplacer par une photo

Page 7: Kinect et Office365 : Un bon geste en faveur de votre SI

Kinect + Office365 : Quel usage en entreprise ?Kinect Comment ça marche ? Du code et de la démo…

Zoom : Création d’un Framework KinectOffice365 Comment ça marche ? Du code et de la démo

Démonstration du cas d’usage completQuizz et Goodies !

Contenu de cette session

Page 8: Kinect et Office365 : Un bon geste en faveur de votre SI

De nombreuses suggestions !

Kinect + Office 365Quel usage en entreprise ?

Minority Reports – Droits réservés - http://fr.wikipedia.org/wiki/Minority_Report

Page 9: Kinect et Office365 : Un bon geste en faveur de votre SI

Kinect + Office 365Quel usage en entreprise ?

De nombreux champs d’application !

Page 10: Kinect et Office365 : Un bon geste en faveur de votre SI

Via une « borne » placée dans un endroit public Pilotée par le geste via Kinect Dont le contenu et les fonctionnalités reposent sur Office365

Kinect + Office 365 : Cas d’usage

Communication interne(Information, sensibilisation, culture d’entreprise, management)

Accueil d’un visiteur(Information, recherche de personnes, …)

Page 11: Kinect et Office365 : Un bon geste en faveur de votre SI

Pourquoi Kinect ?

Kinect + Office 365 : Cas d’usage

Page 12: Kinect et Office365 : Un bon geste en faveur de votre SI

Pourquoi Office365 ?

Kinect + Office 365 : Cas d’usage

Page 13: Kinect et Office365 : Un bon geste en faveur de votre SI

Les contraintes spécifiques du projet

Kinect + Office 365 : Cas d’usage

Environnement sonore

Public non formé

Données « impersonnelles »

Page 14: Kinect et Office365 : Un bon geste en faveur de votre SI

Kinect : Comment ca marche ?

Contenu (de la « V1 ») Un projecteur infrarouge Une caméra infrarouge Une caméra vidéo Des micros Une motorisation

Principe Reconnaissance de la profondeur et suivi

de « joueurs » Reconnaissance de 20 points par

squelette Reconnaissance vocale Possibilité (par code) de détecter des

postures et des gestesEn savoir+ : http://fr.wikipedia.org/wiki/Kinect

Page 15: Kinect et Office365 : Un bon geste en faveur de votre SI

CODE & DEMO

Une souris dans la Kinect ?

Page 16: Kinect et Office365 : Un bon geste en faveur de votre SI

Code : Une souris dans la Kinect ?

 // on parcourt tous les squelettes disponiblesforeach (SkeletonData skeleton in skeletonFrame.Skeletons){    // Le squelette est-il bien repéré ?    if (skeleton.TrackingState == SkeletonTrackingState.Tracked)    {        // on prend la main droite        Joint jointHandRight = skeleton.Joints[JointID.HandRight];         // Qualité trop médiocre on passe son tour // (main non affectée par son environnement)        if (jointHandRight.Position.W < 0.8f)             continue;                            // on en a trouvé une main ! joie !        return jointHandRight.Position;    }}

Une position pour la souris

Page 17: Kinect et Office365 : Un bon geste en faveur de votre SI

Code : Une souris dans la Kinect ?

// Affichage du curseurfloat x, y; // Normalisation dans un range de 0 à 1kinect.SkeletonEngine.SkeletonToDepthImage(hand.Value.Position, out x, out y); double winX = this.ActualWidth * (double)x;double winY = this.ActualHeight * (double)y; // deplacement par RenderTransform (Translation) this.TranslateCursor.X = winX;this.TranslateCursor.Y = winY;

Affichage du curseur

Page 18: Kinect et Office365 : Un bon geste en faveur de votre SI

CODE & DEMO

Une souris sur mes contrôles !

Page 19: Kinect et Office365 : Un bon geste en faveur de votre SI

Contrôle 2Contrôle 1

De la souris aux contrôles : solution 1 Curseur

• Position Curseur• Diffusion

Page 20: Kinect et Office365 : Un bon geste en faveur de votre SI

De la souris aux contrôles : solution 2

Contrôle 2

Contrôle 1

Curseur

• Position Curseur• InputHitTest• Ancetre

IKinectCursorControl

Contrôle

Enfant

Page 21: Kinect et Office365 : Un bon geste en faveur de votre SI

Code : Des events pour un contrôle    DependencyObject control = this.InputHitTest(point) as DependencyObject;    var kinectControl = control as IKinectControl;    // on cherche si un papa n'est pas un KinectControl    while (kinectControl == null && control != null) {        control = VisualTreeHelper.GetParent(control);        kinectControl = control as IKinectControl;    }    if (this.LastKinectControl != kinectControl) {        // on quitte l'ancien control !        if (this.LastKinectControl != null) {            this.LastKinectControl.OnKinectLeave();        }         this.LastKinectControl = kinectControl;         if (kinectControl != null) {            // on entre pour la première fois !            kinectControl.OnKinectEnter();        }    }        if( kinectControl != null ){        // on se deplace car on est déjà rentré        kinectControl.OnKinectMove(point);    }

Page 22: Kinect et Office365 : Un bon geste en faveur de votre SI

CODE & DEMO

Qu’est-ce qu’elle a ma posture ?

Page 23: Kinect et Office365 : Un bon geste en faveur de votre SI

Code : Détection de posture// on recherche le point de l'épaulePoint epaule = e.GetSkeletonPositionsWithoutDepth(this)[JointID.ShoulderLeft];            // puis la mainPoint main = e.GetHandPositionWithoutDepth(this); // Obtenir l'angle entre deux points grace à pythagore ! AB2=AC2+BC2           double angleInRadian = KinectDevice.GetAngle(main, epaule, AngleUnity.Radian);double angleInDegree = KinectDevice.RadianToDegree(angleInRadian); this.Line.X1 = epaule.X;this.Line.Y1 = epaule.Y;this.Line.X2 = main.X;this.Line.Y2 = main.Y; // Detection : verifier que l'angle est bien de 140° à + ou - 10° prèsif (KinectDevice.IsAngleInRange(angleInDegree, 140, 10)){

this.Line.Stroke = new SolidColorBrush(Colors.Red);}Else {

this.Line.Stroke = new SolidColorBrush(Colors.White);}this.TextAngle.Text = ((int)angleInDegree).ToString() + "°";

Page 24: Kinect et Office365 : Un bon geste en faveur de votre SI

CODE & DEMO

Zoom : Framework KINECT

Page 25: Kinect et Office365 : Un bon geste en faveur de votre SI

Office 365 : Comment ca marche ?

Page 26: Kinect et Office365 : Un bon geste en faveur de votre SI

CODE & DEMO

Authentification

Exploitation du projet CodePlex de Wictor Wilén (MVP SharePoint)http://www.wictorwilen.se/

Page 27: Kinect et Office365 : Un bon geste en faveur de votre SI

Code : Authentification

//Helper pour injecter le cookie avec le COM SPMsOnlineClaimsHelper claimsHelper = new MsOnlineClaimsHelper(siteUrl, login, password); context = new ClientContext(siteUrl);context.ExecutingWebRequest += claimsHelper.clientContext_ExecutingWebRequest;

//Webclient injectant le cookievar wb = new ClaimsWebClient(new Uri(this.SiteUrl, UriKind.Absolute), this.Login, this.Password); //Parse document apres le downloadwb.DownloadDataCompleted += (s, args) =>{

...}

Page 28: Kinect et Office365 : Un bon geste en faveur de votre SI

CODE & DEMO

SharePoint : lecture de listes

Page 29: Kinect et Office365 : Un bon geste en faveur de votre SI

Code : Liste SharePoint

//Creation url liste SPstring url = this.CreateSharepointListUrl( listId, subUrl, viewId );

//Webclient avec injection du cookievar wb = new ClaimsWebClient(new Uri(this.SiteUrl, UriKind.Absolute), this.Login, this.Password); //Parse document apres le downloadwb.DownloadDataCompleted += (s, args) =>{ var result = new SharepointListResultEventArgs<T>(){ Cancelled = args.Cancelled, Error = args.Error };

if (args.Cancelled == false && args.Error == null) { byte[] data = args.Result;

result.Result = ParseDocument<T>(data); }};

Page 30: Kinect et Office365 : Un bon geste en faveur de votre SI

CODE & DEMO

Lync : Contacts

Page 31: Kinect et Office365 : Un bon geste en faveur de votre SI

CODE & DEMO

Lync : Communication

Page 32: Kinect et Office365 : Un bon geste en faveur de votre SI

Code : Lync

//ConnectionService.SignIn("login", "mdp", () => {

//Obtention des contacts de l’utilisateurforeach (var contact in Service.GetContacts())

{ ... }});

service = new LyncService();//Evènements sur le début et fin de la conversationservice.ConversationStarted += new EventHandler(service_ConversationStarted);service.ConversationStopped += new EventHandler(service_ConversationStopped);

Personne personne = this.ContactView.DataContext as Personne;//Début de la conversationservice.StartConversation(personne.Email);

Page 33: Kinect et Office365 : Un bon geste en faveur de votre SI

DEMO, the big one !

OBOX 365

Page 34: Kinect et Office365 : Un bon geste en faveur de votre SI

Kinect Oui : Bonne réponse aux attentes Mais :

Ergonomie des applications à ré-imaginer Nécessité d’un framework (Dev Haut Niveau)

Office365 Oui : Solution pérenne, bien outillée pour répondre aux besoins Mais :

Disponibilité des données à optimiser (Cache) Lync : Nécessité d’avoir le client installé

Kinect+Office365, en entreprise ? Oui : Concept démontré Mais : Nécessité d’éprouver dans « la vraie vie »

Conclusion

Page 35: Kinect et Office365 : Un bon geste en faveur de votre SI

Jusqu'à 10 fois plus de performance pour Sharepoint et Exchange!

Jeudi 9 Février | 14h30-15h30

Tout ce que vous avez toujours voulu savoir sur Office 365!

Mercredi 8 Février | 14h30-15h30

La gouvernance du Cloud : Retour d'expériences des clients Office 365

Mercredi 8 Février | 13h00-14h00

Merci de votre attention

Autres sessions sur Office365

Page 36: Kinect et Office365 : Un bon geste en faveur de votre SI

Au coeur d'un projet Kinect innovant

Mardi 7 Février | 16h00-17h00

La kinect à l'écoute des nouveaux usages métiers et interactions avec les solutions MicrosoftMercredi 8 Février | 14h30-15h30

Applications robotiques avec Kinect et Robotics Dev Studio

Mercredi 8 Février | 13h00-14h00

Kinect Effect - user experience revolution

Mardi 7 Février | 13h00-14h00

Tout sur Microsoft Speech Mercr. 8 Février | 17h30-18h30

Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7

Mardi 7 Février | 13h00-14h00

Merci de votre attention

Autres sessions sur KINECT

Page 37: Kinect et Office365 : Un bon geste en faveur de votre SI

Merci de votre attention

Quizz

Questions ? ?

Fabrice [email protected]

Julien LO [email protected]

Samuel [email protected]

Page 38: Kinect et Office365 : Un bon geste en faveur de votre SI

Vous êtes dans la salle 352A

Page 39: Kinect et Office365 : Un bon geste en faveur de votre SI