Mise en oeuvre d’une camera numérique auto- adaptative
-
Upload
travis-collins -
Category
Documents
-
view
49 -
download
3
description
Transcript of Mise en oeuvre d’une camera numérique auto- adaptative
1
Mise en oeuvre d’une camera numérique
auto-adaptative
Projet de fin d’étude – Département Informatique -
Laurent AUGEAI & Victorien SILVESTRO
2
Introduction
Description du Hardware
Fonctionnalités
Travail à réaliser
Description technique
Laurent AUGEAI & Victorien SILVESTRO
Plan de la présentation
3
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
4
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
Introduction
5
Schéma d’organisation:
Laurent AUGEAI & Victorien SILVESTRO
Description du Hardware
6
Capture des images
Compression JPEG
Détection de mouvement
Transmission réseau
Mise à disposition des images
Laurent AUGEAI & Victorien SILVESTRO
Fonctionnalités
7
Le driver de la caméra pour ce Hardware
Logiciel applicatif embarqué
Logiciel applicatif sur le poste distant
Laurent AUGEAI & Victorien SILVESTRO
Travail à réaliser
8
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
Environnement de travail
9
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
10
Poste Extérieur :
Interface graphique Affichage du flux Stockage des enregistrements après détection
Laurent AUGEAI & Victorien SILVESTRO
Modules
11
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
12
Observations a l’oscilloscope
Laurent AUGEAI & Victorien SILVESTRO
Description technique
13
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
14
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
15
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
16
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
17
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
18
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
19
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
Description technique
20
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 Matériels
21
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
Problèmes de Design
22
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
Perfomance générale du système
23
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
Conclusion
24Laurent AUGEAI & Victorien SILVESTRO