Données 3D grâce à la stéréovision

Données 3D grâce à la stéréovision

1 Abstract

Ce livre blanc fournit un aperçu des étapes de traitement essentielles à la perception de la profondeur avec une stereo camera. Nous commencerons par décrire les techniques générales, puis aborderons les spécificités des caméras stéréo Ensenso permettant d'améliorer le procédé classique de stéréovision.

2 Principe de la vision spatiale

La perception de la profondeur avec la stéréovision repose sur le principe de la triangulation. Nous utilisons deux caméras avec optique de projection et les disposons l'une à côté de l'autre de sorte que leurs champs de vision se superposent à la distance de l'objet voulue. Nous enregistrons une image avec chacune des caméras, ce qui nous permet de capturer la scène à partir de deux perspectives différentes. Cette structure est représentée dans la figure 1.

Figure 1

Pour chaque point de surface visible dans les deux images, deux rayons présents dans l'espace 3D relient le point de surface au centre de projection de chaque caméra. Pour obtenir la position 3D de la scène enregistrée, nous devons remplir principalement deux missions : déterminer d'une part où se trouve dans l'image droite chaque point de surface visible dans l'image gauche. Et d'autre part, nous devons identifier la géométrie exacte des caméras pour calculer le point d'intersection des rayons des pixels associés de la caméra gauche et droite. Nous en déduisons que les caméras sont reliées entre elles et la géométrie n'est alors calculée qu'au cours du processus d'étalonnage.

Figure 1 : exemple réalisé à partir du jeu de données stéréo de Middlebury, « Cones ». Une scène avec des cônes en papier est filmée avec une caméra stéréo. Les rayons de projection des deux sommets des cônes sont repérés à titre indicatif dans les deux images de caméras.

3 Étalonnage de la caméra

La géométrie du système à deux caméras est calculée lors du processus d'étalonnage stéréo. Nous avons d'abord besoin d'un objet d'étalonnage. En général, il s'agit d'une plaque d'étalonnage plane avec un motif en damier ou à points de dimension connue. Nous enregistrons ensuite des paires d'images synchrones, où le motif sur les deux caméras varie en position, orientation et distance. Les positions de pixels des points du motif de chaque paire d'images et leurs positions connues sur la plaque d'étalonnage peuvent être utilisées pour calculer aussi bien les poses 3D de tous les motifs observés qu'un modèle précis de la caméra stéréo. Le modèle se compose des paramètres intrinsèques de chaque caméra, comme la distance focale et la distorsion produite par les lentilles, et des paramètres extrinsèques , c'est-à-dire la rotation et le déplacement en trois dimensions entre la caméra gauche et droite. Avec ces données d'étalonnage, nous pouvons trianguler les points correspondants, identifiés dans les deux images, et rétablir leurs coordonnées 3D métriques par rapport à la caméra.

Figure 2 : La zone de recherche pour comparer des emplacements d'image est uniquement unidimensionnelle. En haut : Les lignes épipolaires sont incurvées dans les images brutes déformées. Au milieu : Les lignes épipolaires sont incurvées : l'éloignement des distorsions d'image redresse les lignes épipolaires. En bas : avec la correction de la distorsion, les lignes épipolaires sont alignées sur les axes des images. La recherche de correspondances peut avoir lieu le long des lignes de balayage de l'image.

4 Étapes de traitement pour le calcul de la profondeur

Les trois paragraphes suivants décrivent les étapes de traitement nécessaires au calcul de la position 3D de chaque pixel d'une paire d'images. Ces étapes doivent être effectuées en temps réel sur chaque image stéréo prise pour obtenir un nuage de points 3D ou une surface de la scène.

4.1 Rectification

Pour trianguler les points représentés, nous devons identifier les parties correspondantes de l'image dans l'image gauche et droite. Si nous observons une petite portion de l'image gauche, nous pouvons simplement parcourir toute l'image droite à la recherche d'une concordance suffisamment bonne. Ce serait trop fastidieux pour pouvoir travailler en temps réel. Examinez la paire d'images de la figure 3, où la pointe conique est visible en haut sur l'image gauche. Intuitivement, il ne semble pas nécessaire de chercher la pointe du cône dans la moitié inférieure de l'image de droite lorsque les caméras sont installées côte-à-côte. En effet, la géométrie des deux caméras de projection permet de rechercher une ligne unidimensionnelle dans l'image droite pour limiter les lignes dites épipolaires.

Figure 3 : Où chercher la pointe conique dans l'image correcte ?

La figure 2 (en haut) montre une paire d'images stéréo avec certaines correspondances de point et leurs lignes épipolaires marquées à la main. Dans les images brutes de caméra, les lignes épipolaires sont incurvées en raison des distorsions optiques. La recherche par correspondances le long de ces lignes courbes se révélera assez lente et compliquée, mais nous pouvons supprimer les distorsions d'image en inversant l'application des distorsions apprises pendant le processus d'étalonnage. Les images exemptes de distorsions qui en résultent présentent des lignes épipolaires droites, représentées dans la figure 2 (milieu).

Bien qu'elles soient droites, les lignes épipolaires ont des orientations différentes dans diverses parties de chacune des images. Cela tient au fait que les plans image (c'est-à-dire les capteurs des caméras) ne sont ni parfaitement coplanaires, ni alignés à l'identique. Pour accélérer encore la recherche de correspondances, nous pouvons utiliser la géométrie des caméras issue de l'étalonnage et appliquer aux images une transformation de perspective supplémentaire de sorte que les lignes épipolaires sont alignées sur les lignes de balayage d'image. Cette étape est désignée sous le terme « correction de la distorsion ». La recherche de sommet de cône blanc peut maintenant être lancée en observant simplement la même ligne de balayage dans l'image correcte et en trouvant la position la plus adaptée. Toute la suite du traitement a lieu dans les images où la distorsion a été corrigée. Les images qui en résultent sont représentées dans la figure 2 (en bas).

4.2 Concordance stéréo

Pour chaque pixel présent dans l'image gauche, nous pouvons maintenant effectuer une recherche sur le pixel de la même ligne de balayage de l'image droite, qui a capturé le même point d'objet. Étant donné, qu'en principe, une seule de valeur de pixel ne suffit pas pour trouver de manière fiable le pixel correspondant, on essaie de rapprocher de petites fenêtres (p. ex. 7x7 pixels) autour de chaque pixel avec toutes les fenêtres possibles de l'image droite, sur la même ligne Comme autre restriction, nous ne devons pas parcourir toute la ligne, mais seulement un nombre limité de pixels à gauche de la coordonnée x du pixel d'image gauche (ce qui correspond au fait de loucher légèrement), nécessaire à la mise au point à proximité des objets. Cela accélère l'adaptation et limite l'échelle de profondeur à laquelle les points peuvent être triangulés. Si une concordance suffisamment bonne et claire a été trouvée, nous affectons le pixel d'image gauche au pixel d'image droite correspondant. L'association est enregistrée dans la carte des disparités sous la forme d'un décalage entre les positions X de pixels (voir la figure 4 ).

Figure 4

Figure 4 : Résultat du rapprochement des images. La carte des disparités représente des informations de profondeur sous forme de décalages de pixels entre l'image gauche et droite. Une valeur spéciale (ici noire) est utilisée pour indiquer qu'un pixel de l'image droite n'a pas pu être identifié. Cela se produit avec des zones cachées ou des réflexions sur l'objet, qui apparaissent différemment sur les deux caméras.

Cette technique d'ajustement est qualifiée de concordance stéréo locale, car elle utilise uniquement des informations locales autour de chaque pixel. Naturellement, nous pouvons ensuite comparer une zone entre l'image gauche et droite uniquement si elle se distingue des autres portions d'image sur la même ligne de balayage. Par conséquent, la comparaison stéréo locale échoue dans des zones où la texture est mauvaise ou répétitive. D'autres méthodes, désignées sous le terme de concordance stéréo globale, peuvent utiliser des informations adjacentes. Elles ne considèrent pas seulement chaque pixel (ou point d'image) individuellement pour rechercher un partenaire adapté, mais elles essaient à la place de trouver simultanément une affectation pour tous les pixels gauches et droits. Cette affectation globale tient également compte du fait que les surfaces sont généralement lisses et donc que les pixels voisins ont souvent des profondeurs similaires. Les méthodes globales sont plus complexes et nécessitent plus de puissance de traitement que l'approche locale, mais elles demandent moins de texture sur les surfaces et fournissent des résultats plus précis, en particulier au niveau des limites d'objet.

4.3 Reprojection

Indépendamment de la technique de concordance utilisée, le résultat correspond toujours à une affectation entre les pixels des images gauche et droite, stockés dans la carte des disparités. Les valeurs de la carte des disparités codent le décalage en pixels, c'est-à-dire l'endroit correspondant trouvé dans l'image droite. La figure 4 illustre la notion de disparité. Nous pouvons ensuite utiliser la géométrie des caméras obtenue pendant l'étalonnage pour convertir les valeurs de disparité basées sur des pixels en coordonnées X, Y et Z réelles et métriques pour chaque pixel. Cette conversion est la rétroprojection. Nous pouvons simplement couper les deux rayons de chaque pixel gauche et droit correspondant, tel qu'illustré dans la figure 1. Les données XYZ qui en résultent sont désignées sous le terme de nuage de points. Ce nuage est souvent enregistré comme image à trois canaux pour obtenir aussi les informations voisines du point à partir de la grille de pixels de l'image. Une visualisation du nuage de points est représentée dans la figure 5.

Figure 5 : Vue de la surface 3D générée à partir de la carte de disparités et des données d'étalonnage des caméras. La surface est également texturée avec l'image de caméra gauche (convertie ici en niveaux de gris).

5 Traitement spécifique à une application

Les trois étapes de traitement décrites doivent être exécutées sur la paire d'images stéréo pour parvenir au nuage de points 3D complet de la scène. Le nuage de points doit ensuite être traité pour réaliser une application spécifique. Il peut être utilisé pour comparer la surface de la scène à un objet connu, soit à partir d'un nuage de points antérieur, soit d'un modèle CAO appris. Si la partie peut être clairement localisée dans la surface scénique capturée, la position complète et la rotation de l'objet peuvent être calculées et sont susceptibles d'être reprises par un robot, par exemple.

6 Caméras stéréo Ensenso

Comme nous l'avons déjà mentionné, toutes les techniques de concordance stéréo nécessitent des objets texturés pour pouvoir déterminer avec fiabilité les correspondances entre l'image gauche et droite. Comme la perception des textures dépend directement des conditions de luminosité et des propriétés de surface des objets de la scène, les surfaces peu texturées ou réfléchissantes ont une incidence directe sur la qualité du nuage de points 3D qui en résulte. Avec des techniques spéciales, les caméras Ensenso améliorent la méthode stéréovision classique en ciblant, outre une qualité supérieure de l'information de profondeur, des résultats de mesure plus précis.

Projecteur de motif

Les caméras stéréo Ensenso utilisent donc une unité de projection de texture supplémentaire. Pendant l'enregistrement d'images, ce projecteur complète la texture propre à l'objet avec un motif fortement structuré afin d'éliminer les ambiguïtés à l'étape de concordance stéréo. Cela garantit un nuage de points 3D dense, même sur des surfaces monochromes ou à la structure équivoque. Le projecteur et les caméras sont également synchronisés par un signal de déclenchement matériel afin de garantir des paires d'images uniformes lors de la capture d'objets en mouvement.

FlexView

Avec une mécanique piézoélectrique à faible usure, la position du masque de motif dans le rayon lumineux peut également être déplacée linéairement par très petits pas. La texture projetée se déplace ainsi également sur la surface des objets de la scène et génère ainsi des informations supplémentaires, variées, sur des surfaces brillantes, sombres ou transluminescentes. Avec les scènes statiques, cette technique FlexView permet d'enregistrer plusieurs paires d'images avec des textures différentes, ce qui entraîne un très grand nombre de pixels. Une résolution plus grande permet d'analyser des images de disparité et des nuages de points nettement plus détaillés, ce qui se traduit aussi par une plus grande robustesse des données 3D sur des surfaces difficiles.

Bibliothèque de traitement stéréo NxLib

La bibliothèque NxLib constitue l'interface avec les caméras et implémente l'ensemble du traitement stéréo, y compris l'étalonnage. Elle combine la projection de texture avec une technique d'ajustement globale et fournit des nuages de points denses de grande qualité. L'algorithme d'adaptation global fortement parallélisé peut utiliser tous les cœurs de processeur pour parvenir à une performance en temps réel.