Structure d’un premier objet communicant
Le but de ce tutoriel est de mettre en œuvre une structure type d'un objet communicant basé sur l'utilisation d'une carte Arduino pour la partie acquisition/actionneurs et d'une carte PC embarqué (pcDuino, Raspberry Pi, ...) pour la partie traitement (script Python, programme C/C++, ...), connexion au réseau (filaire ou wifi), stockage local des données (serveur de bases de données SQLigth, MySQL, ...), mise à disposition des données (serveur web Apache2, lighttpd, ginx, ...). La connexion entre ces deux carte se fait naturellement par une liaison série sur USB. Le synoptique ci-dessous représente par exemple un système de surveillance de la hauteur et de la qualité de l'eau d'un cours d'eau. La température, le Ph et la hauteur de l'eau sont mesurés sur demande par la carte Arduino. Le pcDuino via un scritp Python dont l'exécution peut être planifiée avec Cron, effectue la demande puis lit les réponses et les stockent dans la base de données MySQL. Apache2, via une page web php, met à disposition des utilisateurs les informations.
Kinect Microsoft dans un projet Windows Form C#
L'utilisation de la Kinect de Microsoft dans un projet nécessitant une localisation dans l'espace d'une personne peut s'avérer très utile. Microsoft met a disposition des développeur un SDK avec plusieurs exemples de programmes dans différents langages. Toutefois, aucun exemple de programmation à partir d'un projet Windows Form n'est fourni. C'est pourtant ce type de projet que l'on va privilégier au niveau terminal S-SSI ou STI2D SIN.
Cet article est un tutoriel de mise en œuvre de la Kinect dans un projet Windows Form en C# avec Visual Studio.
L'intérêt de la Kinect en robotique est évident. Elle permet de doter vos robots d'une capacité de reconnaissance de la présente d'un humain dans son environnement, d'interpréter ses gestes et bientôt, d'interpréter son expression faciale et de faire de la reconnaissance vocale. Le capteur Microsoft Kinect est donc un capteur de choix pour vos robots.
Connexion automatique d’une Arduino avec VisualStudio C#
Ce programme permet de piloter la LED connectée sur D13 sur une Arduino (uno, mega, ...). La connexion à la carte Arduino est automatique. Le système identifie le port sur lequel l'Arduino est connecté et tente d'ouvrir le port. L'utilisateur à la possibilité de modifier la connexion, dans le cas ou plusieurs cartes Arduino seraient reliées à l'ordinateur par exemple.
Les mots de commandes disponibles sont :
- ON : Allumer la LED
- OFF : Eteindre la LED
- STATUS : Demande le status de la LED
Reconnaissance faciale par Eigenfaces
Ce projet doit permettre de faire une reconnaissance faciale, en employant des photos de référence des personnes connues et en soumettant au programme la photo d'une personne à identifier. La reconnaissance est donc limitée à l'emploi d'images en deux dimensions. La méthode de reconnaissance faciale Eigenfaces emploie la technique de l’analyse en composante principale, qui marque une différence notable avec les méthodes plus classiques, appelées méthodes géométriques ou locales, qui se basent sur les particularités du visage analysé, et dont les défauts résident dans son manque de précision, ainsi que sa sensibilité aux informations qui ne sont pas pertinentes. La méthode utilisée ici est qualifiée de globale, puisque l’ensemble du visage est alors analysé.
Les eigenfaces sont un ensemble de vecteurs propres utilisés dans le domaine de la vision artificielle afin de résoudre le problème de la reconnaissance du visage humain. Le recours à des eigenfaces pour la reconnaissance a été développé par Sirovich et Kirby (1987) et utilisé par Matthew Turk et Alex Pentland pour la classification de visages. Cette méthode est considérée comme le premier exemple réussi de technologie de reconnaissance faciale. Ces vecteurs propres sont dérivés de la matrice de covariance de la distribution de probabilité de l'espace vectoriel de grande dimension des possibles visages d'êtres humains.
Wikipédia : https://fr.wikipedia.org/wiki/Eigenface
Cette technique de reconnaissance utilise la méthode d’analyse en composantes principales (PCA) ou la méthode de décomposition en valeurs singulières (SVD). De manière simple, elle vise a diminuer la dimension de l’espace de travail pour simplifier les données et leur interprétation. Le but est ainsi de prendre en compte les informations importantes qui permettront de reconnaître un visage parmi d’autres avec un bon taux de réussite.