Marc Silanus

Reconnaissance faciale par Eigenfaces

Posted on 5 février 2017

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.

Remplis sous: Divers, Python Lire la suite

Azolla : le plus court chemin entre deux points …

Posted on 28 janvier 2017

C'est bien connu, le plus court chemin entre deux points, c'est la ligne droite !

Dans cet article, je vous propose de mettre en application cet adage dans Azolla, un simulateur robotique 2D. Il s'agit ici de faire aller le robot sur une cible déposée sur le monde. Pour cela, nous allons comparer les coordonnées du robot et de la cible et faire avancer le robot dans la direction de la cible jusqu'à ce que leurs coordonnées soient égales (ou presque).

  • Les coordonnées du robot sont accessibles par la méthode :
    • getposition(numrobot)
  • Les coordonnées de la cibles sont accessibles par la méthode :
    • gettarget(numcible)

Utilisation d’une manette de jeu avec Visual Studio en C#

Posted on 21 janvier 2017

Le contrôle d'objets mobiles à distance nécessite l'emploi d'une télécommande ou d'une manette. De nombreux shields Arduino   existent sur le marché et permettent de satisfaire à ce besoin (ex : http://www.robotshop.com/ca/en/dfrobot-joystick-input-shield-arduino.html). Cependant, la première idée qui vient souvent à l'esprit des élèves est d'utiliser leur vielle manette de jeu Xbox, PS, ou autre compatible.

Leur utilisation dans le cadre d'un projet de développement nécessite l'utilisation de librairies spécifiques (python : pygame, Microsoft : DirectX, SlimDX, XNA, ...). Bien qu'il y ait de nombreux tutoriels sur le net, je n'ai pas trouvé de solution simple, à la porté d'élèves de terminal STI2D novices en programmation.

Toutefois, l'environnement XNA Game Studio met à disposition du développeur un framework qui contient les outils nécessaires à la gestion des manettes connectées à un PC sous Windows. Il peut être utilisé sous Visual Studio dans le cadre d'un projet Windows Form classique.

Je vous propose de réaliser une application de test des principaux contrôles possibles avec une manette compatible Logitech.

La météo dans ma ville

Posted on 18 janvier 2017

De nombreux projets font appels à des données météorologiques et il n'est pas toujours possible de disposer de tous les capteurs nécessaires. Il existe sur internet de nombreuses bases de données météo qui couvrent le monde entier. Une base en particulier parait très intéressante car elle est accessible gratuitement et couvre près de 200 000 citées : http://openweathermap.org/

Il s'agit ici d'un test de connexion et de lecture des données météo classiques à partir de l'API d'openWeatherMap. Ce test a été réalisé en python, l'interface Homme-Machine est réalisée avec Qt Designer (voir article Tuto Qt+Python) et l'accès aux données se fait au travers de l'API pyowm (https://media.readthedocs.org/pdf/pyowm/latest/pyowm.pdf).

Les fichiers du projet ici.

Remplis sous: Divers, Python Commentaires

LEDs Reflex

Posted on 1 janvier 2017

Cet article présente le travail de deux élèves de terminal STI2D en spécialité SIN en mini projet. Leur but était de réaliser un jeu du type "Tape Taupes" autours d'une carte microcontrôleur Arduino Uno et d'une interface Homme-Machine conçue via Visual Studio. Vous trouverez ici leur diaporama de présentation, le diagramme de séquence (MagicDraw), le code Arduino et le projet Visual Studio développé en C#.

267

logos

ledreflex

 

Les fichiers du projet ici.

Serveur Web WiFi sur Arduino

Posted on 24 avril 2016

L'utilisation de cartes Arduino dans les projets de terminales et de BTS est devenue monnaie courante. Si l'utilisation de la liaison série, des modules radios, Xbee ou bluetooth ne présentent pas de difficultés notamment dans la réalisation d'une application PC communicante, il n'en est pas forcément de même pour les shields WiFi ou Ethernet.

Ce petit projet montre comment utiliser le shield WiFi originale d'Arduino pour contrôler une LED et lire une chaine alphanumérique à partir d'une application Visual Studio C#.

Cette application s'appuie sur l'utilisation des classes TcpClient et Stream pour se connecter au réseau et lire et écrire des données.

Arduino héberge un petit serveur web qui surveille les connexions client et analyse les requêtes  pour agir sur la led et renvoyer au client son état réel. Le client peut aussi demander une mesure, le serveur retourne une chaine alphanumérique.

ArduinoWifiShield VisualStudApp

 

Télécharger les fichiers du projet : https://github.com/msilanus/WifiArduino/

BTS SN : Liaison série asynchrone

Posted on 22 mars 2016

Surveillance du viaduc de Millau

Le viaduc de Millau est un pont à haubans franchissant la vallée du Tarn (Aveyron) sur l’autoroute A71 entre Clermont-Ferrand et Béziers.

Achevé en 2004, il détient quatre records du monde :

  • Les piles les plus hautes : les piles P2 et P3 mesurent respectivement 244,96 et 221,05 m.
  • La flèche la plus haute : le haut du pylône de la pile P2 culmine à 343 m.
  • Le tablier routier le plus haut : 270 mètres par rapport au sol.

Sa surveillance comporte trois aspects : contrôle des conditions d’exploitation, contrôle du comportement du viaduc et contrôle du vieillissement de la structure.

La surveillance a été mise en place à l’aide de capteurs, ce qui permet le contrôle et l’analyse de phénomènes dont la durée va d’une seconde à plusieurs années.

Le réseau informatique constitue la colonne vertébrale du système ; toutes les données provenant des capteurs sont récupérées grâce à une association fibre optique, commutateurs (switch) et passerelles (RS485/Ethernet) :

La communication entre modules se fait selon le protocole MODBUS sur un support RS485. Le format de transmission est 8, E, 1, soit 8 bits de données, un bit de parité paire et un bit de STOP.

Télécharger le TD / Annexes

 

OS Linux et Systèmes embarqués

Posted on 7 mars 2016

Cours, TP et devoir dispensés en master informatique au CERI d'Avignon sur les systèmes embarqués et plus précisément sur linux dans les systèmes embarqués au premier semestre 2015/2016.

linux-embedded

Cours : Systèmes d'exploitations et Linux pour l'embarqué

Devoir

TP : Prise main d'un système embarqué Rapsberry Pi

TP : Construction d’un système linux embarqué complet

Nouveau tuto Qt+Python

Posted on 13 décembre 2015

Tutoriel plus complet basé sur l'utilisation de Python(x,y) pour réaliser des applications fenêtrées à l'aide de Qt Designer et du langage Python.

QtDesigner

 

Remplis sous: Divers, Python Commentaires

BTS SN

Posted on 1 octobre 2014

Le BTS Systèmes Numériques (SN) est né de la fusion des BTS Systèmes Electroniques (SE) et BTS Informatique et Réseau pour l'Industrie et les Services (IRIS).

Le lycée Alphonse Benoit propose les deux options du BTS Systèmes numériques :

• la spécialité Électronique et communications (EC) : composante voisine de la commande rapprochée, de l’usage des composants complexes, de la pré-industrialisation des dispositifs électroniques, de leur maintenance, et de la mobilisation des moyens de télécommunication dans les couches de bas niveau.

• la spécialité Informatique et réseaux (IR) : composante plus proche des réseaux et de leur sécurité, des systèmes embarqués, du cloud computing et de la programmation des systèmes.

Vous trouverez ici mes enseignements de cours (pour les deux options) et les activités pratiques et projets pour l'option EC.