2022_Projet_IOT-Camera_connectée
Caméra connectée permettant à un drone de se repérer dans l'espace. Elle permet aussi à l'utilisateur de visualiser son environnement grâce à une interface visuelle.
Slides & Videos
Members
Name | Contribution |
---|---|
Mehdi RAIS ALI | - Protocole UDP - Thread - Documentation features detector |
Tai Romain VO PHUOC | - Documentation odométrie visuelle - Lecture des images en Python |
Vithiya THIRUCHELVANATHAN | - Recherches pour l'état de l'art - Documentation openCV |
State of the Art
Business Aspect
Mise au point du projet dans la vie réelle
Comme solution pour se localiser dans une pièce inconnue, le marché a déjà un algorithme existant et très performant : le LiDAR. Celui-ci fonctionne avec un laser à impulsion, un scanner et un gps. Un système LiDAR mesure le temps nécessaire à la lumière émise pour atteindre le sol et revenir. Ce temps est utilisé pour calculer la distance parcourue. Elle est ensuite convertie en altitude. Ces mesures sont effectuées à l’aide des composants clés d’un système LiDAR comprenant un GPS qui identifie l’emplacement X,Y,Z de l’énergie lumineuse et une unité de mesure interne (IMU) qui fournit l’orientation du drone dans la pièce.
Taille du marché de notre projet
En terme financier, les composants comprenant l’algorithme du LiDAR varie entre 75€ et 9000€ sur Robotshop. La taille du marché de ce type de processus est très vaste, il est le plus utilisé en France avec l’Avion Jaune et GeoPhoenix, en Asie-Pacifique, mais aussi Suisse avec Helimap. Les principaux fabricants sont Optech (Canada), Leica (Suisse), IGI (Allemagne), etc.
Technical Aspect
Ce projet a quelques contraintes réglementaires. En effet, nous ne devons pas mettre à disposition les images/vidéos prises par la caméra à des fins personnels. De plus, il est important d’avoir l’accord des personnes filmées au préalable.
Ce projet a de nombreux avantages, il permet la localisation d’un déplacement, la visualisation de son environnement. En le combinant à un IMU, nous avons une excellente précision en terme de position. Cependant, comme nous voulons combiner ce système à un drone, il sera assez lourd à cause de Raspberry Pi 3. C’est pourquoi, il faudrait essayer d’adapter le système sur une Raspberry Pi 0 qui est moins lourde et donc alourdira moins le drone.
Project Description
Problem Definition
Challenges & Motivation
Real and Complete Usecases
L’objectif de notre objet est de réaliser une caméra nous permettant de déterminer la position d’un drone dans un environnement qui lui est inconnu en utilisant une caméra. Celle-ci en plus, donne la possibilité à l’utilisateur de voir ce que filme la caméra grâce à une interface visuelle qui sera accessible sur un ordinateur.
Technical Description
L’objectif de notre projet est d’estimer la position d’une camera à l’aide d’une caméra seule. Pour cela, nous allons utiliser des algorithmes de vision par ordinateur. Cependant, ces algorithmes demandent beaucoup de ressources matériels, c’est la raison pour laquelle nous ne réalisons pas les calculs directement sur la raspberry. Nous passons par un pc externe. Nous communiquons les informations grâce au protocole UDP. Nous commençons par diminuer la taille des images puis nous les envoyons à 5 FPS. Ensuite, nous avons écris un script python permettant de lancer 2 threads, le premier reçoit les images et les mets dans une file. Le second lit les images de la file et réalise les calculs. L’algorithme d’estimation de la pose se décompose en 2 parties, une première partie cherche des points d’intérêts, se sont en général des sommets d’objets, c’est a dire des endroits ou il y a un fort contraste). Ensuite, l’algorithme a pour objectif de trouver des points d’intérêts identiques dans les 2 images. À l’aide du déplacement de ces points d’intérêts (comptés en pixels), l’algorithme calcule son déplacement. Cette technique se base sur la géométrie épipolaire. Étant donné qu’en 3D, les points d’intérêts ne bougent pas et que c’est la caméra qui se déplace, il y a certaines contraintes dans le problème. En particulier, on note l’existence d’une matrice, appelée matrice essentielle qui permet de remonter au déplacement de la caméra entre les images i et i-1. Après avoir déterminé cette matrice a l’aide de 5 points (minimum pour la calculer), on peut retrouver les matrices de rotation et de translation (à un facteur d’échelle près). Ensuite, on utilise ces matrices pour calculer notre position absolue.