Architecture d’application

Slides:



Advertisements
Présentations similaires
Architecture d’application
Advertisements

Architecture d’application Kinect et modèle MVP. Plan de présentation O Introduction O Utilisation de la Kinect O Le modèle MVP.
SRT 2 NTP. Nécessité ● Les ordinateurs utilisent des horloges à quartz – Peu de précision – Tendance à dériver – Parfois plusieurs secondes par jour.
Tutoriel : faire le montage des enregistrement audio des p’tit déj’ Contact Ce tutoriel est conçu pour le logiciel libre Audacity, téléchargeable gratuitement.
Pour comprendre comment la créativité et l’innovation sont les moteurs de l’évolution technologique La commande par la pensée ? La commande par le mouvement.
Présentation de Scribe Votre nouvelle organisation du Réseau Informatique Pédagogique.
Présentation du projet JAVA Système de messagerie instantanée cryptée.
1 Programmation Orientée Objet ● Qu'est-ce qu'un objet ● Collaboration des objets ● Les classes ● Relations entre les classes – “Utilise”, “Contient”,
Guide de l'enseignant SolidWorks, leçon 1 Nom de l'établissement Nom de l'enseignant Date.
Logiciel Assistant Gestion d’Événement Rémi Papillie (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
1 Manuel d’utilisation Application Datamédis® sur Pocket PC Propriété PROMEDIS S.A.
Interface sur laquelle on arrive lorsqu’on atteint le site Tous les champs ci- dessous sont supprimés Liste des clients disponibles Liste des serveurs.
1. 2 Boite à outils Qt ● Boite à outils C++ pour le développement multi-plateforme d'application en environnement graphique (GUI) – des fonctions GUI.
ARCHITECTURE MULTITENANT CONTAINER DATABASE ET PLUGGABLE DATABASES Pr. A. MESRAR
Premiers pas avec PowerPoint
ARCHITECTURE RESEAUX.
Le Mouvement Directionnel
Présenté par M. Anis DIALLO
Micro Informatique au Cellier
DropBox Projet App’Ifa.
Utilisation de Windows
Google analytics.
SNMP - Comment calculer l'utilisation de la Bande passante
Programmation avec Scratch
Références.
Javadoc et débogueur Semaine 03 Version A16.
Asynchronous Javascript And Xml
Virtualisation d’applications mobiles dans un réseau de Cloudlets
Algorithmique & Langage C
Semaine #4 INF130 par Frédérick Henri.
Piloter un robot mbot à distance avec retour vidéo
8/23/2018 2:32 AM Cinématique But :
INTELLIGENCE ARTIFICIELLE
Les gammes de valeurs des paramètres
Stabilité des porteurs horizontaux (Poutres)
Présentation des EJB Enterprise Java Beans.
Notion De Gestion De Bases De Données
Création Et Modification De La Structure De La Base De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
INF-1019 Programmation en temps réel
Sfaihi Yassine Rabai Fatma Aissaoui Walid
Programmation Orientée Objet
SOLUTION DE VIDEOSURVEILLANCE SUR IP
Formation sur les bases de données relationnelles.
Integrated Business intelligence
Programmation Android Première application Android
Le logiciel de calcul de Reynaers
Programmation Android Composantes d’une application
Bonnes pratiques d’exploitation des applications
Module 13 : Implémentation de la protection contre les sinistres
Utiliser PowerPoint dans le cadre des TPE
Base de donnée de support
7 Contraintes d’intégrité en SQL
Zeendoc et les logiciels comptables
Langages de programmation TP11
Présenté par M. Anis DIALLO
Serveurs d’applications
BIO1130 LAB 4 MICROÉVOLUTION.
Reconnaissance de formes: lettres/chiffres
PRO1026 Programmation et enseignement
Sommaire : Les capteurs de force. Les capteurs à jauges de contraintes
Programmation Scratch
Les différents modes de démarrage de Windows
Formation « Utiliser un site Internet école »
Chapter 11: Récursivité Java Software Solutions Second Edition
Exploitation de vos données
Support de formation Administrateur Entretiens
Backup des Postes de Travail
Délégation académique pour le numérique éducatif
Les machines simples Si vous travaillez avec vos mains, vous savez déjà qu’il y a certaines taches qui sont possibles et certaines qui ne sont pas. Pour.
Transcription de la présentation:

Architecture d’application Kinect et modèle MVP

Plan de présentation Introduction Utilisation de la Kinect Le modèle MVP

Introduction L’objectif de ce cours de vous montrer le modèle MVP avec l’inteprétation de Windows Form. Pour nous amuser un peu, nous allons utiliser le sdk 1,8 de la Kinect pour implémenter la théorie vue en classe. Pour sauver du temps, est-ce que vous pouvez télécharger le SDK pendant le cours.

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

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

Maintenant Amusons nous avec la Kinect! Prenez le contrôle avec Kinect!

Kinect ? Qu’est ce que c’est ? Kinect est La première caméra commerciale qui permet l’interaction entre l’humain et la machine. Créée par Microsoft(09/2008) Contrôler des logiciels et des jeux sans souris ni clavier avec le corps ou la voie Le but est de créer une expérience immersive de jeu. Windows Kinect VS Xbox Kinect

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

Source: http://homes. di. unimi

É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.

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

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

Éléments de la Kinect 43 degré vertical par 57 degré horizontal.

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)

Avant de commencer Si vous en manquer un bout de ma présentation, vous pouvez aller sur le site suivant : https://www.microsoft.com/en-us/kinectforwindows/develop/how-to-videos.aspx Vous devez installer les éléments suivants Kinect for Windows SDK 1.8 Kinect for Windows Developer Toolkit 1.8 Connecter la Kinect (Tous les pilotes seront installés automatiquement)

La caméra Résolutions : Format : Evénementiel(AllFramesReady) 640 * 480, 1280 * 1024 Format : BGRA(Bleu, Vert, Rouge, Alpha)(byte) Evénementiel(AllFramesReady) Données fournies au travers d’un vecteur de bytes BGRA (Rouge, Vert, Bleu, Alpha) Voici 3 pixels B G R A .... 15 14 13 12 11 10 9 8 7 6 5 4

Caméra de profondeur

Caméra de profondeur

Caméra de profondeur Résolutions 640x480 320x240 80x60 Lorsque les images sont prêtes, un événement est déclenché. 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

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 de la Kinect ex: 2,000mm 1-6 Joueur(s) simultanément Ainsi pour chaque pixel, nous avons un 16-bit short

Caméra de profondeur Voici la représentation de deux pixels D P 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 D P 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Depth Player Index

Les couches de la Kinect

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.

Démo

Détection des squelettes 6 squelettes détectés Chaque squelette donne sa position 2 squelettes suivis (tracked) Liste de joints (points de contrôles)

Squelettes détectés Identifiés Tracked

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

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

Coordonnées des jointures

Propriétés des squelettes 3 possibilités de types de squelettes NotTracked PositionOnly Tracked 3 possibilités de types de joints Inferred SkeletonTrakingState What it means NotTracked Skeleton object does not represent a tracked user. The Position field of the Skeleton and every Joint in the joints collection is a zero point PositionOnly The skeleton is detected, but is not actively being tracked. The Position field has a non-zero point, but the position of each Joint in the joints collection is a zero point. Tracked The skeleton is actively being tracked. The Position field and all Joint objects in the joints collection have non-zero points. JointsTrakingState What it means Inferred Occluded, clipped, or low confidence joints. The skeleton engine cannot see the joint in the depth frame pixels, but has made a calculated determination of the position of the joint. NotTracked The position of the joint is indeterminable. The Position value is a zero point. Tracked The joint is detected and actively followed.

Démo!

Exercice Brancher le module du perceptron pour permettre de reconnaitre les mouvements de la célèbre chanson YMCA.

Note Il est plus performant de normaliser le corps avant d’exécuter le perceptron.

Le modèle MVP

Le modèle MVP Le modèle consiste à diviser la couche d'interface graphique en deux. La partie la plus basse, le "Presenter", sera la seule à communiquer avec la couche métier et éventuellement avec celle d'accès aux données dans les limites où c'est acceptable dans votre architecture globale. Ce modèle est bien adapté pour les applications où l’on s’attends à avoir plusieurs interface différente(Web, Form, WPF, etc.) C’est un dérivé de MVC et MVVM. En résumé, ce sera comme 3-tiers, mais nous aurons une couche entre le GUI et le BLL.

Le modèle MVP

Le modèle MVP Pour plus de flexibilité, je vous conseille de faire une interface entre la vue et le Presenter.*** It's remarkable to say that Martin Fowler has extended the original MVP design pattern with Passive View and Supervising Controller/Presenter. In the case of the Passive View pattern, the main idea is to have no dependencies between the View and the Model concerns and the view is dumb. The Supervising Controller is a flexible interpretation of the original MVP design pattern and the view is not completely dumb and has some responsibilities.

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. C’est la Business Logic ET la DAL 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.

Le modèle

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.

Le modèle

La présentation Le présentation 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.

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 la couche de présentation(par exemple un clic de souris pour lancer un traitement de données), La couche de présentation demande au modèle approprié d'effectuer les traitements et retourne l’information à la couche de présentation,

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 MVP, la différence se trouve au niveau des rôles de chaque couche. Les couches de BL et DAL sont incluses dans le modèle. La couche de présentation des données est séparé en deux : une qui représente le design de l’interface(Vue) personne machine et l’autre représente son fonctionnement(Présentation).

Exemple Modèle Vue Présentation

Période de questions Vous avez des questions?