Calibration automatique

RAPPORT DE PROJET  2ème ANNÉE DUT GEII

Calibrage d’une Caméra à l’aide d’une mire

Année 2018/2019

Fridmann Charlie

( Rey Mathieu et Tort Anthony pour la première partie du projet )

Encadrants: Mr. Stéphane Bazeille et Mr. Martin Rebert

 

Ce document a pour but de décrire le déroulement de mon  projet effectué lors du troisième et du quatrième semestre du DUT GEII.  Il consiste en la création d’un programme permettant de calibrer une caméra à l’aide d’une mire.

Ce rapport contient l’ensemble des éléments du projet d’un point de vue technique, puis la description du fonctionnement du projet dans son ensemble. Tout en prouvant le bon fonctionnement de celui-ci.

Pour finir, l’ensemble des apport du projet d’un point de vue technique et personnel seront évoqués.

 

Sommaire :

1) Contexte du projet.

2) Prise en main de python.

3) Création de la mire.

4) Programme principale.

5) Programme du Robot.

6) Conclusion.

7) Remerciement.

Contexte du projet :

 

En traitement d’image, l’opération de calibration de caméra revient à modéliser le processus de formation des images, c’est-à-dire trouver la relation entre les coordonnées spatiales d’un point de l’espace avec le point associé dans l’image prise par la caméra. Pour cela j’ai du créer deux programmes différents. Un permettant le mouvement de la mire grâce au Robot Staubli et un second utilisant les données recueillis par la caméra afin d’effectuer les calculs et d’obtenir un bon calibrage.

J’ai eu à ma disposition pour  faire ce projet, une webcam, un raspberry pi avec écran souris et clavier et pour finir une image de mire. Je vais dans un premier temps vous parler de la prise en main de python et de la fabrication de la mire puis des programmes principaux ( python et robot ) et pour finir je vais vous présenter les résultats finaux. J’ai effectuer la prise en main de python et création de la mire avec Rey Mathieu et Tort Anthony, puis le reste du projet je l’ai réaliser seul.

 

 

 

 

 

 

Prise en main de Python :

 

 

Les premières étapes du projet ont été dédiés à la prise en main de la programmation en python. Durant cette étape j’ai appris à capturer et enregistrer une image à l’aide de la webcam, mais aussi à modifier une image et à l’enregistrer à la place de l’image précédente. Ensuite après avoir fait cela j’ai modifié mon programme afin que la caméra puisse reconnaître la mire et  récupérer un tableau de points qui sont recueillis grâce à la mire. Ci-dessous vous pouvez observer des points de couleurs au niveau des coins de la mire. Les coordonnées de ses points se retrouve sur l’image de droite sous forme de tableau. A la fin du tableau le programme indique “calibrage réussi”, ce qui signifie que la mire a bien détecté toutes les tous les points présent sur la mire.

 

 

 

 

Création de la mire  :

 

Pour créer la mire que j’ai utilisé ci-dessus, j’ai tout d’abord imprimer la photo de la mire que j’ai reçus en annexe avec le projet. Puis j’ai découpé à la scie à bois une fine plaque de bois de la même dimension que la mire. J’ai ensuite fixé à l’arrière de la planche en bois un morceau de bois plus épais afin que le robot puisse l’attraper à l’aide de sa pince. Par la suite j’ai remarqué que la webcam avait du mal à reconnaître la mire en fin de journée en raison d’un manque de luminosité. Pour régler ce problème j’ai collé des morceaux de papiers afin que les contours de la mire soit blanc. La mire était alors bien plus facilement reconnaissable par la webcam.

 

 

 

 

Programme principale :

 

Puis j’ai commencer a créer le programme principale. La base du programme permet de calibrer la caméra à l’aide de plusieurs image de la mire. Afin que le calibrage soit optimale, il faut récupérer des données de positions différentes. c’est pour cela que pour chaque photo la mire doit être dans une position et/ou angle différents. Afin de savoir si notre calibrage est bien effectué j’ai mis en place un calcul d’erreur. Plus l’erreur est petite plus le calibrage est bon. Par la suite j’ai modifier le programme afin que l’utilisateur puisse choisir le pourcentage d’erreur qu’il veut atteindre, le programme tourne jusqu’à ce qu’il atteint le pourcentage d’erreur demander. Et pour finir j’ai décidé de modéliser ces résultats à l’aide de courbe.     

 

 

 

Nous pouvons observer sur ces deux courbes que le pourcentage d’erreur est plus bas lorsque le nombre de prise est supérieur, mais le plus intéressant à observer est que sur la seconde courbes le pourcentage d’erreur stagne et ne s’améliore plus dans les dernières prises. Cela démontre les limites que l’on peut atteindre avec cette méthode.

 

 

 

Programme du robot :

 

Afin d’optimiser les mouvements de la mire j’ai du créer un programme permettant le mouvement du Robot staubli. Le programme me permettait de bouger la mire dans 20 positions différentes toutes les 5 secondes. Mais avant de pouvoir le mettre sur le Robot , les professeurs m’ont appris les règles de sécurités du Robot mais aussi a le contrôlés manuellement à l’aide de la manette. Pour les différentes position j’ai créer a chaque fois une variable différents et cela m’a posé problème car lorsque le programme est transmis au robot, chaque points doit être refait manuellement. C’est à dire que pour chaque point je devais bouger le robot à l’aide de la manette et lui indiquer lorsqu’il était à la bonne position. Pour régler ce petit problème j’ai utilisé qu’une seule variable que j’ai modifié tout au long du programme.

 

 

 

 

 

 

 

 

Malheureusement par un manque de temps je n’ai pas pu mettre en relation mes deux programmes et j’ai dû simuler moi-même les mouvements de la mire. Donc si j’avais eu plus de temps sur le projet j’aurais mis les deux programmes en relation afin d’obtenir de meilleurs résultats.

 

 

 

 

 

 

 

Conclusion :

 

En conclusion, le projet d’études et Réalisation m’a permis de découvrir et d’enrichir mes connaissances dans le domaine de la robotique et de la programmation en python. Durant ce projet j’ai dû faire face à quelques difficultés, la principale est que j’ai du faire ce projet seul comme deux de mes coéquipiers n’ont pas pus poursuivre le projet, de ce fait je n’ai pas eu le temps  de finir le projet comme je l’aurais souhaité. Néanmoins malgré ce contretemps, le calibrage de la caméras à pu quand même être effectuée manuellement et faire ressortir des résultats satisfaisants.

 

Remerciement :

 

Je tiens à adresser en premier lieu, mes remerciements aux enseignants qui m’ont aider dans la réalisation de ce projet. Tout particulièrement à Mr Bazeille et Mr Rebert,  enseignant de l’IUT de Mulhouse.

Dans un second temps je remerci l’Institut universitaire et technologique de Mulhouse, de nous avoir permis de faire plusieurs projets durant notre cursus de DUT, ce qui nous à permis d’enrichir nos connaissances dans différents domaines.