Consignes relatives au déroulement
du projet OCTAVE/MATLAB de l’UE LE349
ATTENTION : LE TRAVAIL DOIT ETRE REALISE INDIVIDUELLEMENT.
TOUT CAS DE TRICHERIE (VOL OU COPIE DE SOURCES D’UNE AUTRE
PERSONNE) SERA SEVEREMENT SANCTIONNE.
1) La présence aux séances de projet est obligatoire !
2) Le logiciel Octave est disponible sous windows ou linux (vous pouvez choisir l'OS
qui vous plaît) ; sous windows, il faut cliquer sur le lien « pédagogie » sur la droite
du bureau, puis sur « outils mathématiques » et chercher dans liste le logiciel Octave.
Sous Linux, il faut ouvrir un Terminal ou une fenêtre Xterm et taper « octave ».
2) Ne réalisez pas de fonctions ou de scripts qui ne soient pas accompagnés d'une notice
(help) et de commentaires
3) Toujours écrire une petite notice dans un fichier « readme.txt » qui s'adresserait à
un utilisateur potentiel pour lui expliquer comment lancer le code, le contenu des
différentes fonctions et scripts.
4) Regroupez vos codes (scripts et fonctions) dans le même répertoire.
5) Toujours sauvegarder une version qui fonctionne dans un sous-répertoire, avant
de la modifier.
6) Toujours réfléchir en termes de calcul matriciel plutôt qu'avec des boucles (comme
en langage C).
7) A la fin de chaque séance, faire un fichier compressé (.zip) du répertoire l'on
travaille et le ranger ailleurs (sur une clé usb, dans un autre répertoire, se l'envoyer
par email,...) afin de multiplier les copies et éviter les pertes... Ne donnez pas votre
code à un camarade (cela sera considérer comme un cas de tricherie pour vous
comme pour lui, si celui-ci s'en sert dans son projet).
8) Une séance de projets n'est ni un lieu de discussion, ni un cybercafé on peut
consulter ses mails ou faire du msm ! L'usage d'internet n'est toléré que comme
support pédagogique (regarder une définition sur le net, consulter le site web de
Matlab pour des aides plus détaillées : http://www.mathworks.com/help/techdoc/ref/)
LES IMAGES (imageXXXX.jpeg) DONT VOUS AVEZ BESOIN SONT DISPONIBLES
A L'ADRESSE SUIVANTE : http://people.isir.upmc.fr/clady/
→ cliquez sur le lien « enseignement » dans le menu bleu à droite « A voir également »
téléchargez le fichier compréssé au lien « images » dans la rubrique « UE projet Octave/Matlab
(LE349) ».
N.B. : Pour installer Octave chez vous (sous windows ou linux), vous pouvez suivre les
instructions délivrées à : http://iste.epfl.ch/cours_matlab/octave.html
Projet Matlab/Octave : analyse de la trajectoire d'une balle
de ping-pong sur un tapis avec une caméra statique
Dans ce projet, nous allons réaliser le code qui permet de détecter une balle en mouvement dans une
scène statique (scène filmée par une caméra statique) sur toutes les images de la séquence (extraites
d'une vidéo). L'ensemble des détections nous permettra de fournir en sortie de notre algorithme la
trajectoire de la balle, l'évolution de sa vitesse, de son accélération,... Il s'agira itérativement :
1. dans un premier temps, de segmenter les pixels de l'image qui ont une couleur éloignée de
la couleur du fond. On définit le fond comme la scène sans la présence de la balle. Le fond
est défini préalablement (sur une centaine d'images) de manière statistique.
2. Puis un filtrage de l'image binaire obtenue sera opéré pour éliminer un maximum les
fausses alarmes (zones de l'image qui seront segmentées, mais qui sont dues au bruit).
3. Le centre de la balle dans l'image sera ensuite estimé. Connaissant la position géométrique
entre certains points particuliers du tapis, nous pourrons alors estimer la position métrique
de la balle.
En réitérant les 3 opérations précédentes sur l'ensemble de la séquence (où est présente la balle),
nous pourrons extraire la trajectoire suivie par celle-ci et en déduire l'évolution de sa vitesse, de
son accélération,...
1/12
temps
balle
modèle du fond
ALGORITHME
...
Séquence d'images
trajectoire de la balle
évolution de sa vitesse
Le schéma suivant représente la structure globale du projet. A noter qu'il faudra non seulement
réaliser un script « principal.m » qui réalisera la détection de la balle sur la séquence
d'images. Mais aussi deux autres scripts « creation_modele.m » et
« calcul_homographie.m » qui modéliseront respectivement le fond (modèle statistique de
la scène sans la balle) et la relation entre une position dans l'image et la position réelle
correspondante (ou métrique) sur le sol.
2/12
I. Notions Importantes
1- Codage des images sous matlab/octave
Une image n’est autre que l’extension d’un signal à 2 dimensions. Une image couleur est la
superposition de 3 composantes de base (Rouge Vert et Bleu). Sous Matlab/octave, une telle image
peut être codée par une matrice tridimensionnelle. Elle correspond à la mise en cascade des 3
matrices (2D : de dimension N*M) correspondant aux 3 composantes primaires (Rouge Vert et
Bleu, notée RGB ou RVB).
Chacune de ces 3 matrices primaires (aussi appelées « plans couleur ») contient le niveau de couleur
pour chaque point de l’image considérée. En général chaque niveau de couleur est codé entre 0
(canal colorimétrique éteint) et 255 (canal colorimétrique maximum) ce qui correspond à 2553 = 16
581 375 combinaisons de couleurs possibles.
Dans le cas particulier des images en noir et blanc, les 3 composantes de chaque point de l’image
considérée (pixel) sont égales. Nous avons donc 256 niveaux de gris (de 0 pour le noir à 255 pour le
blanc, en passant par un gris moyen pour 128).
Rq : Lorsque l’on charge une image sous Matlab ou Octave, la matrice correspondante est de type
uint8 (codage sur 8 bits non signés, autrement dit ce sont des valeurs entières comprises entre 0 et
255). Pour simplifier les calculs et pouvoir utiliser toutes les fonctions Octave/Matlab sur ces
données, il est préférable de les convertir en réels (commande « double »), puis après
traitement les reconvertir en entier codé sur 8 bits nonsigné (commande «uint8 » ) avant de
sauvegarder en format bmp ou d'afficher l'image (commande « imagesc »).
3/12
1 / 14 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !