Systèmes de vision stéréo


Afin de fournir les informations nécessaire à notre système de navigation, nous utilisons des systèmes de vision stéréo. Ces systèmes permettent en effet de fournir des estimations de distances, y compris en environnement dynamique. Nous avons dans un premier temps testé la caméra RealSense d'Intel, qui fourni la carte de profondeur à l'aide de deux caméras infrarouges. Nous avons pu tester avec succès notre modèle de cellule de grille sur cette caméra.

Cependant, la faible distance entre les deux objectifs limite la portée de la caméra : au delà de 5m, la précision devient trop faible pour être exploitable. Ainsi, si cette caméra peut être utilisée sur un petit robot, elle ne peut être utilisée dans un environnement de grande taille. Nous avons alors développé un système plus adapté à nos besoins, utilisant deux webcams standards. Ce système utilise un algorithme de flux optique (fonction calcOpticalFlowPyrLK d'OpenCV) appliqué entre les deux images sur les contours verticaux, permettant de détecter et localiser les structures verticales de l'environnement. L'utilisation d'un algorithme de flux optique permet un grand intervalle entre les objectifs (ici, de 20cm) permettant une portée de plusieurs dizaines de mètres. Nous prévoyons également l'utilisation de lentilles grand angle pour augmenter le champs de vision.

Vision Stereo

Système stéréo : à gauche, image fournies par l'une des caméras. Un algorithme de flux optique est appliqué entre les deux images sur les contours verticaux pour déterminer la différence entre les deux points de vue (traits noirs). Cette différence permet de déterminer la distance des éléments. Au milieux, les points rouges indique la présence et la position des structures verticales (en vue du dessus, la distance n'est pas linéaire). On reconnaît les éléments du décors, ainsi que les fenêtres situés en face (points en haut sur l'image centrale). L'image de droite montre la carte de profondeur. On ajoute une détection de points caractéristiques autours des contours verticaux pour faciliter la reconnaissance des lieux. Ce système permet ainsi de fournir les informations nécessaires et suffisantes pour notre système de navigation.