241 likes | 335 Views
Mise en oeuvre d’une camera numérique auto- adaptative. Projet de fin d’étude – Département Informatique -. Plan de la présentation. Introduction Description du Hardware Fonctionnalités Travail à réaliser Description technique. Introduction. Objectif :
E N D
Mise en oeuvre d’une camera numérique auto-adaptative Projet de fin d’étude – Département Informatique - Laurent AUGEAI & Victorien SILVESTRO
Plan de la présentation • Introduction • Description du Hardware • Fonctionnalités • Travail à réaliser • Description technique Laurent AUGEAI & Victorien SILVESTRO
Introduction • Objectif : • Détection de mouvement avec caméra embarquée • Contexte : • Caméra utilisée en robotique • Solution existante par port série Laurent AUGEAI & Victorien SILVESTRO
Introduction • Idée de base : • Caméra directement connecté à la carte • Gain en rapidité => Augmentation de la performance globale du système Laurent AUGEAI & Victorien SILVESTRO
Description du Hardware • Schéma d’organisation: Laurent AUGEAI & Victorien SILVESTRO
Fonctionnalités • Capture des images • Compression JPEG • Détection de mouvement • Transmission réseau • Mise à disposition des images Laurent AUGEAI & Victorien SILVESTRO
Travail à réaliser • Le driver de la caméra pour ce Hardware • Logiciel applicatif embarqué • Logiciel applicatif sur le poste distant Laurent AUGEAI & Victorien SILVESTRO
Environnement de travail • Langage C • Environnement Linux (embarqué et poste de développement) • Cross compilation des binaires depuis un poste distant • Connexion Ethernet et Série Laurent AUGEAI & Victorien SILVESTRO
Modules • Embarqués : • Driver de récupération des informations (Pixels) provenant de la caméra. • Configuration de la caméra • Détection de mouvement • Construction de l’image • Transmission réseau Laurent AUGEAI & Victorien SILVESTRO
Modules • Poste Extérieur : • Interface graphique • Affichage du flux • Stockage des enregistrements après détection Laurent AUGEAI & Victorien SILVESTRO
Description technique • Driver Caméra : • Pixels récupérés sous le format YUV. • Pb de rapidité entre le déclenchement de l’interruption et le traitant d’interruption. • Choix du pooling pour récupérer les pixels en fonction du registre d’état des signaux de l’imageur. • Utilisation des interfaces standards des drivers Linux (ioctl, read, write). Laurent AUGEAI & Victorien SILVESTRO
Description technique • Observations a l’oscilloscope Laurent AUGEAI & Victorien SILVESTRO
Description technique • Solution de Capture 1 – Déclencher sur signal d’interruption VSYNC (début d’image) 2 – Attendre par pooling le signal HREF (début de ligne) 3 – Capturer en boucle toutes les informations (validation des pixels et valeur du pixel) pendant la durée d’une ligne de l’image 4 – si toutes les lignes ont été reçues, aller en 5, sinon en 2 5 – examiner les valeurs obtenues dans le registre de validation et en déduire les données pixels valides. Laurent AUGEAI & Victorien SILVESTRO
Description technique • Configuration de la caméra : • Utilisation du driver I2C fourni • Ecriture des registres de la caméra pour réglage : • Fréquence d’horloge • Fenêtrage • Format de données • Luminosité • Gain Laurent AUGEAI & Victorien SILVESTRO
Description technique • Construction de l’image : • Espace utilisateur • Utilisation de la librairie « libjpeg » • Mode Noir et Blanc • Différent taux de compression disponible Laurent AUGEAI & Victorien SILVESTRO
Description technique • Détection de mouvement : • Par comparaison de deux images successives. • Les images successives ne sont pas conservées. • Utilisation de l’indice de comparaison : Ecart-type. • Ecart-type : observation de la fluctuation des valeurs sur des images fixes. Laurent AUGEAI & Victorien SILVESTRO
Description technique • Transmission réseau : • Socket Unix • Protocole UDP non connecté pour le streaming • Envoi des données brutes encadrées avec des balises pour reconstitution des images. • Un port vidéo (flux streaming) • Un port de commande Laurent AUGEAI & Victorien SILVESTRO
Description technique • Réception réseau : • Un entête qui signale le début d’une nouvelle image (premier paquet) • Un entête qui signale la fin d’une image (dernier paquet) • Un entête avec indicateur de position dans le flux • Le serveur adapte son comportement : • signal d’une nouvelle image = initialise la création nouvelle image, jette image précédente si non terminée. • Indicateur de flux = informe de la cohérence • Inclusion des informations mouvements dans le premier entête Laurent AUGEAI & Victorien SILVESTRO
Description technique • Affichage du flux : • Utilisation de GTK+ version 2.0 • Deux mode d’affichage : streaming & Mouvement-uniquement • Poste client -> récupère les données du réseau et les affiche Laurent AUGEAI & Victorien SILVESTRO
Problèmes Matériels • Câble Ethernet non détecté • Connexion Série inactives • Position des jumpers • Réglage manuel de la netteté Laurent AUGEAI & Victorien SILVESTRO
Problèmes de Design • Temps de latence entre l’interruption et le Handler • Recompilation de la libjpeg • Adresse des pixels erronée • Mémoire disponible dans le noyau • Paquets Réseau non ordonnés Laurent AUGEAI & Victorien SILVESTRO
Perfomance générale du système • Système complètement autonome • Performances réduites dues au système de récupération des images • 1 image/seconde • Résolution 240x220 • Images noir&blanc • Détection de mouvements (basée sur la luminosité) • Transmission streaming • Gain en fréquence d’images par rapport au précédent système Laurent AUGEAI & Victorien SILVESTRO
Conclusion • Une expérience significative dans le monde de l’embarqué • Prise en compte de la réelle difficulté des systèmes embarqués • Interface hardware (drivers) • Debug avec l’oscilloscope à sonde • Cross-compilation • Contraintes d’espace mémoire et de temps d’éxécution Laurent AUGEAI & Victorien SILVESTRO