Notions de reconstruction 3D

Avant d’utiliser la plateforme Drive Engine pour commencer votre apprentissage de la reconstruction 3D pratique, il est important d’en connaitre les rudiments théoriques, à commencer par le fonctionnement général des étapes clés:

La détection, l’extraction, la correspondance, la calibration et le maillage.

étapes

Dans ces quelques pages, nous nous proposons d’étudier le fonctionnement des algorithmes présents sur notre plateforme. Même si certaines fonctions sont réalisées par OpenCV, il est important de bien comprendre leur fonctionnement pour pouvoir les utiliser de manière correcte et au besoin analyser les résultats de votre reconstruction 3D.

Détection & Extraction

La détection de caractéristiques permet d’identifier des particularités sur l’image. On s’intéresse donc à des points d’intérêts particulier, cela peut être des coins, des courbes, des formes, etc:

detec

De façon générale, la détection de points d’intérêts consiste à calculer une valeur d’intérêt pour chaque pixel (ou groupe de pixels) pour sélectionner celui qui présente le plus d’intérêt. L’un des points délicats de cette étape est de détecter un minimum de « faux points d’intérêts » que peuvent engendrer des zones texturées ou un éventuel bruit sur l’image. L’idéal est donc d’avoir des images dont les caractéristiques sont fortement définies, c’est­-à-­dire que la position des points d’intérêt soit précise et absente d’ambiguïté de façon à extraire uniquement les points utiles pour la suite de la reconstruction.
Il existe beaucoup de méthodes de détection, chacune plus ou moins adaptée à des cas spécifiques, dans l’application DriveEngine vous aurez la possibilité de choisir entre deux algorithmes: Harris ou Surf.

Correspondance

Le correspondance (ou matching) est l’étape qui permet de reconnaître un point donné d’une image sur une autre image. Par exemple, si on prend comme objet à reconstruire un cube, le but sera alors de détecter quel coin correspond auquel sur une deuxième image où le cube aura subi un changement de position et/ou une rotation:

matching

Afin que la correspondance soit la plus efficace possible il est préférable qu’elle soit basée sur plusieurs critères de façon à ne pas confondre les points ayant de fortes ressemblances. Par exemple, il peut être important de bien différencier chaque coin du cube, ce qui est compliqué à cause de la forte ressemblance entre chaque coin. Pour cela, en plus d’un critère de ressemblance on peut aussi comparer les zones environnantes afin de lever les ambiguïtés.

Triangulation & Calibration

L’étape de triangulation est la plus significative; c’est au cours de celle-ci que les points des images de 2D sont convertis en un nuage de points 3D.

triang

Concernant la calibration, il existe deux méthodes bien différentes aussi bien au niveau de la simplicité que de l’algorithmie: la calibration avec damier et la calibration sans damier.

Maillage

Le maillage est la dernière étape de la reconstruction en trois dimensions. Son objectif est de créer une surface à partir du nuage de points généré par la triangulation.

mesh step

 

Le maillage fonctionne suivant une liste de points à partir de laquelle il peut être généré en se déployant jusqu’à ce que tous les points possibles soient connectés. La méthode fonctionne mieux si la surface est localement lisse et si les transitions se font « en douceur » entre les zones de différentes densités de points. L’une des forces du maillage est aussi qu’il peut aussi traiter avec des points non organisés ayant de multiples parties distinctes.

Cependant le maillage est un procédé très lourd en calculs et gourmand en espace mémoire et/ou processeur. Les exigences sur les algorithmes de calculs pour le rendu auront donc une répercussion importante sur le temps d’exécution.