1 / 40

Architecture d’application

Architecture d’application. L’apprentissage automatique appliqué au modèle MVC. Plan de présentation. Introduction Le modèle MVC Utilisation de la Kinect. Introduction. L’objectif de ce cours de vous montrer le modèle MVC.

gilead
Download Presentation

Architecture d’application

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Architecture d’application L’apprentissageautomatique appliqué au modèle MVC

  2. Plan de présentation • Introduction • Le modèle MVC • Utilisation de la Kinect

  3. Introduction • L’objectif de cecours de vousmontrer le modèle MVC. • Pour nous amuser un peu, nous allons utiliser le sdk 1,8 de la Kinect pour implémenter la théorievue en classe. Pour sauver du temps, est-cequevouspouveztélécharger le SDK pendant le cours.

  4. Le modèle MVC • Le Modèle-Vue-Contrôleurest un patron d'architecture et une méthode de conception qui organise globalement les classes d’une application. • Ceparadigme divise l’application en trois partie: • unmodèle (modèle de données), • unevue (présentation, interface utilisateur) et • un contrôleur (logique de contrôle, gestion des événements, synchronisation).

  5. Le modèle

  6. Le modèle • Le modèle représente le comportement de l'application : traitements des données, interactions avec la base de données, etc. • Il décrit ou contient les données manipulées par l'application. • Il assure la gestion de ces données et garantit leur intégrité. Dans le cas typique d'une base de données, c'est le modèle qui la gère. Le modèle offre des méthodes pour mettre à jour ces données (insertion, suppression, changement de valeur). Il offre aussi des méthodes pour récupérer ces données.

  7. La vue

  8. La vue • La vue correspond à l'interface avec laquelle l'utilisateur interagit. • Sa première tâche est de présenter les résultats. • Sa seconde tâche est de recevoir toutes les actions de l'utilisateur (clic de souris, sélection d'une entrée, boutons, etc.). Ces différents événements sont envoyés au contrôleur. • La vue n'effectue aucun traitement, elle se contente d'afficher les résultats des traitements effectués.

  9. Le contrôleur

  10. Le contrôleur • Le contrôleur prend en charge la gestion des événements de synchronisation pour mettre à jour la vue ou le modèle et les synchroniser. • Il reçoit tous les événements de l'utilisateur et enclenche les actions à effectuer. Si une action nécessite un changement des données, le contrôleur demande la modification des données au modèle, ce dernier avertit la vue que les données ont changée pour qu'elle se mette à jour. Certains événements de l'utilisateur ne concernent pas les données, mais la vue. Dans ce cas, le contrôleur demande à la vue de se modifier. Le contrôleur n'effectue aucun traitement, ne modifie aucune donnée. Il analyse la requête du client et se contente d'appeler le modèle adéquat et de renvoyer la vue correspondant à la demande.

  11. En résumé • En résumé, lorsqu'un client envoie une requête à l'application : • la requête envoyée depuis la vue est analysée par le contrôleur (par exemple un clic de souris pour lancer un traitement de données), • le contrôleur demande au modèle approprié d'effectuer les traitements et notifie à la vue que la requête est traitée, • la vue notifiée fait une requête au modèle pour se mettre à jour (par exemple affiche le résultat du traitement via le modèle).

  12. Quelssont les patrons de conceptions de MVC?

  13. Réponse • Observer: Met à jour toute les vues • Strategy: on pourrait utiliser plusieurs types de modèles pour un Contrôleur dans la vue.

  14. Différence avec l'Architecture trois tiers • L'architecture trois tiers est un modèle en couches, c'est-à-dire, que chaque couche communique seulement avec ses couches adjacentes (supérieures et inférieures) et le flux de contrôle traverse le système de haut en bas; les couches supérieures contrôlent les couches inférieures, c'est-à-dire, que les couches supérieures sont toujours sources d'interaction (clients) alors que les couches inférieures ne font que répondre à des requêtes (serveurs). • Dans le modèle MVC, il est généralement admis que la vue puisse consulter directement le modèle (lecture) sans passer par le contrôleur. Par contre, elle doit nécessairement passer par le contrôleur pour effectuer une modification (écriture). Ici, le flux de contrôle est inversé par rapport au modèle en couche, le contrôleur peut alors envoyer des requêtes à toutes les vues de manière à ce qu'elles se mettent à jour.

  15. En résumé! J'émets toutefois quelques réserves concernant ce pattern. Bien qu'il soit très utile grâce à ses avantages à long terme, celui-ci complique grandement votre code et peut le rendre très difficile à comprendre pour une personne extérieure à l'équipe de développement. • Le pattern MVC est un pattern composé du pattern observer et du pattern strategy. • Avec ce pattern, le code est découpé en trois parties logiques qui communiquent entre elles : • Le modèle (données) • La vue (fenêtre) • Le contrôleur qui lie les deux. • L'implémentation du pattern observer permet au modèle de tenir informés ses observateurs. • L'implémentation du pattern strategy permet à la vue d'avoir des contrôles différents.

  16. Exemple • Allerchercher les documents d’exercicesur le http://www.coupdeklaxon.ca • Vue: • Demander le nom d’un fichier. • Ajouter un bouton pour activer la lecture du fichier • Ajouter un RichTextBox pour afficher les résultats • Controleur • Vide pour le moment • Modèle • Nous allonsremplirune structure de données pour les données et une pour les résultats. • Résultat: • Afficher les donnéesdans le RichTextBox.

  17. Maintenant Amusons nous avec la Kinect!  • Prenez le contrôle avec Kinect!

  18. Évolution des interfaces Source: http://homes.di.unimi.it/borghese/Teaching/IntelligentSystems/Seminari/kinecttrack-intro-131031061347-phpapp02.pdf

  19. Source: http://homes.di.unimi.it/borghese/Teaching/IntelligentSystems/Seminari/kinecttrack-intro-131031061347-phpapp02.pdf

  20. Kinect ? Qu’estcequec’est ? • Kinect est une caméra créée par Microsoft • La première caméra de détection et retranscription de mouvement. • Contrôler des logiciels et des jeux sans souris ni clavier • Interface naturelle (NUI) • Windows Kinect VS Xbox Kinect

  21. Éléments de la Kinect Émeteur (IR) Caméra RVB Capteur de profondeur(IR) Moteur Microphones

  22. Source: http://homes.di.unimi.it/borghese/Teaching/IntelligentSystems/Seminari/kinecttrack-intro-131031061347-phpapp02.pdf

  23. Éléments de la Kinect Le +/- 27 degrés vient du fait qu’il est possible de modifier l’angle de la Kinect de +/- 27 degrés.

  24. Éléments de la Kinect 0.8m/2.6 ft

  25. Éléments de la Kinect Pieds 1.3’ 2.6’ 9.8’ 13.1’ 26.2’ Mètres .4 .8 3 4 8 Default Mode Near Mode Inconnu Trop près Normal Trop loin

  26. Possibilités de la Kinect • Caméra BGRA • Détection de la profondeur • Détection de personne(Squelette) • Reconnaissance vocale(si le temps le permet)

  27. Avant de commencer • Si vous en manquer un bout de ma présentation, vouspouvezallersur le site suivant : • http://www.microsoft.com/en-us/kinectforwindowsdev/Start.aspx • Vousdevez installer les élémentssuivants • Kinect for Windows SDK 1.8 • Kinect for Windows Developer Toolkit 1.8 • Connecter la Kinect (Tous les pilotesserontinstallésautomatiquement)

  28. La caméra • Résolutions : • 640 * 480, 1280 * 1024 • Format : • BGRA(Bleu, Vert, Rouge, Alpha) • Evénementiel(AllFramesReady) • Données fournies au travers d’un vecteur de bytes BGRA (Rouge, Vert, Bleu, Alpha) • Voici 4 pixels

  29. Caméra de profondeur • Résolutions • 640x480 • 320x240 • 80x60 • Evénementiel • Stockage sur 16 bits • 13 bits pour la distance en millimètres depuis le capteur • 3 bits pour donner l’index de la personne reconnue

  30. Caméra de profondeur • Retourne la distance et l’index du joueur pour chaque pixel • Ex: 320 x 240 = 76,800 pixels (x 16 bits) • Distance en mm from Kinect ex: 2,000mm • 1-6 Joueur(s) simultanément • Ainsi pour chaque pixel, nous avons un 16-bit short

  31. Caméra de profondeur • Voici la représentation de deux pixels Depth Player Index

  32. Pour connecter la Kinect • N’oubliez pas d’ajouter la référence Microsoft.Kinect • Nous allons créer une variable membre • Nous allons se connecter à l’événement AllFramesReady • Nous allons initialiser le bon angle pour la caméra(_sensor.ElevationAngle = 0;) • Nous allons convertir les images reçus en Image et nous allons les afficher dans des picturebox.

  33. Démo

  34. Détection des squelettes • Reconnaissance immédiate • Evénementiel • 6 squelettes détectés • Chaque squelette donne sa position • 2 squelettes suivis(tracked) • Liste de joints (points de contrôles)

  35. Squelettes détectés Identifiés Tracked

  36. Points détectés sur un squelette ShoulderCenter Head ShoulderRight ShoulderLeft Spine ElbowRight ElbowLeft HipCenter HipRight HipLeft WristRight WristLeft HandRight HandLeft KneeRight KneeLeft AnkleRight AnkleLeft FootRight FootLeft

  37. Coordonnées des jointures Positive Y Axis Z Axis Negative Positive X Axis Negative

  38. Démo!

  39. Conclusion • Le modèle MVC est un modèleétoffé qui permetaisément la modification et l’extensiond’une application.

  40. Période de questions • Vousavez des questions?

More Related