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

Kinect + Office365 : Un bon geste en faveur de votre SI !

Jul 16, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Kinect + Office365 : Un bon geste en faveur de votre SI !

palais des

congrès

Paris

7, 8 et 9

février 2012

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

Vous êtes dans la salle 352A

Page 3: Kinect + 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 + 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 + 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 + 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 + 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 Kinect

Office365

Comment ça marche ?

Du code et de la démo

Démonstration du cas d’usage complet

Quizz et Goodies !

Contenu de cette session

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

De nombreuses suggestions !

Kinect + Office 365

Quel usage en entreprise ?

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

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

Kinect + Office 365

Quel usage en entreprise ?

De nombreux champs d’application !

Page 10: Kinect + 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 + Office365 : Un bon geste en faveur de votre SI !

Pourquoi Kinect ?

Kinect + Office 365 : Cas

d’usage

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

Pourquoi Office365 ?

Kinect + Office 365 : Cas

d’usage

Page 13: Kinect + 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 + 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 gestes

En savoir+ : http://fr.wikipedia.org/wiki/Kinect

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

CODE & DEMO

Une souris dans la Kinect ?

Page 16: Kinect + 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 droiteJoint 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 + 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 + Office365 : Un bon geste en faveur de votre SI !

CODE & DEMO

Une souris sur mes contrôles !

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

Contrôle 2Contrôle 1

De la souris aux contrôles :

solution 1Curseur

• Position Curseur

• Diffusion

Page 20: Kinect + 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 + Office365 : Un bon geste en faveur de votre SI !

Code : Des events pour un

contrôleDependencyObject control = this.InputHitTest(point) as DependencyObject;var kinectControl = control as IKinectControl;// on cherche si un papa n'est pas un KinectControlwhile (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 + Office365 : Un bon geste en faveur de votre SI !

CODE & DEMO

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

Page 23: Kinect + 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+BC2double 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 + Office365 : Un bon geste en faveur de votre SI !

CODE & DEMO

Zoom : Framework KINECT

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

Office 365 : Comment ca

marche ?

Page 26: Kinect + 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 + 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 + Office365 : Un bon geste en faveur de votre SI !

CODE & DEMO

SharePoint : lecture de listes

Page 29: Kinect + 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 + Office365 : Un bon geste en faveur de votre SI !

CODE & DEMO

Lync : Contacts

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

CODE & DEMO

Lync : Communication

Page 32: Kinect + 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 + Office365 : Un bon geste en faveur de votre SI !

DEMO, the big one !

OBOX 365

Page 34: Kinect + 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 + 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 + 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 Microsoft

Mercredi 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 + 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 + Office365 : Un bon geste en faveur de votre SI !

Vous êtes dans la salle 352A

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