Cahier T.E.R. : Modélisation architecturale basée photo/vidéo reconstruction intérieure basée profondeur des charges Renaud Jean-Christophe Naville Vincent
Explicitation du contexte Dans le cadre de notre T.E.R. il nous est demandé de concevoir un programme permettant de gérer la modélisation d une pièce grâce à un robot. Le robot équipé d une Kinect, pouvant s'orienter dans tous les sens, effectue un parcours non défini dans la pièce. A l aide de la Kinect le robot se représente l environnement en 3D qu il perçoit et ainsi évite les obstacles qui se trouvant dans la pièce. La Kinect fournira une vidéo de 640 par 480 pixels à 30 images par seconde, où pour chaque pixel elle indique aussi sa profondeur par rapport à l objectif (la distance séparant le point physique de l objectif). Ces données doivent être nettoyées des bruits du au fait que la Kinect n est pas très précise. Objectif attendu Il faudra fournir, à partir de la vidéo enregistrée par la Kinect, une modélisation de la pièce que le robot a perçu (seulement les parties qu il a vues à travers la Kinect). Cette modélisation sera une simplification incrémentale. A partir d un simple nuage de point, nous allons repérés les plans et les surfaces. Les formes seront construites à partir de combinaisons de surface pour alléger les données et rendre la modélisation plus réaliste. Contraintes sur le projet Le robot se déplace en intérieurs. Le déplacement du robot n est pas prédéfini. Les capacités de traitement et de mémoire sont limitées, il faut donc que les données soit allégées. Les traitements doivent être le plus léger possible car ils se font en même temps que la navigation du robot. 2
Definitions Kinect : C est un appareil composé d une caméra, d un émetteur infrarouge et d un récepteur infrarouge permettant de filmé tout en sachant à quelle distance se situe les éléments correspondant aux pixels de la vidéo. Pixel: Le pixel est le plus petit élément d'une image. Texel: Le texel est le plus petit élément d'une texture appliquée à une surface. Un texel est souvent composé de plusieurs pixel Stéréo-vision: Vision à partir de 2 objectifs comme pour l humain. Z-buffer: Distance entre l écran et le pixel d un objet d une scene. Organisation du projet. Extraction des données(ligne de partage entre surface). Le but de cette partie est principalement de distingué les éléments importants du nuage de points donné par Kinect, afin de créer la visualisation 3D. Par exemple, en utilisant les informations de profondeur données par Kinect, on peut voir s il y a une grande différence de profondeur entre 2 points voisins, et ainsi détecter une séparation entre 2 plans. Il existe déjà une technique dite de triangularisation des pixels pour lisser les nuages de points mais celle-ci est très couteuse en mémoire et en traitement. Sur l exemple ci-dessous nous pouvons voir que pour n pixel il faut calculer triangles. Pour 3 pixels nous avons 4 triangles En correspondance des surfaces issues de deux acquisitions successives 3
Mise en correspondance des surfaces issues de deux acquisitions successives Pendant le déplacement, le robot scanne la pièce avec Kinect. Kinect capture 30 images par secondes, il y a énormément de doublons entre les images (on peut avoir affaire aux mêmes points sur deux images), on cherche a ne pas ré afficher ses doublons mais à ajouter sur la scène existante les nouveaux points visualisé par la Kinect. Extraire des volumes a partir de surface. On crée des formes a partir des plans. Verrou Filtrage du bruit. L image fournie par Kinect n est pas toujours fiable. Notamment si la distance entre Kinect et l objet scanné est inférieur à 1m80. Le déplacement du robot n étant pas prédéfinie, une telle situation peut se produire. On doit alors tenter de prendre des mesures le plus justes possibles, malgré le bruit. La lumière interfèrera aussi énormément sur la justesse des données car le capteur infrarouge est très sensible, il faudra donc en tenir compte quand nous organiserons des tests. Donnée incomplète. A cause de l'écart entre le projecteur et le capteur, il manque des données. Augmenter les détails de la représentation 3d. Par exemple, une petite poignée de porte sur une porte sera visible. Pour cela on réduira le seuil de détection se qui aura pour effet de faire apparaitre plus de détails mais aussi plus de bruit. Prise en charge des couleurs. Le représentation de la vue 3d sera en couleur. 4
Organisation Nous n'avons pas encore d'organisation précise dans la répartition des taches au sein de notre binôme. Le début du projet consistant a de la recherche pour réaliser les différentes parties, nous répartirons le travail selon le résultat de cette recherche. Nous en profiterons aussi pour collecter des données pour les tests. L organisation sera surement changée mais nous gardons à l esprit qu il faut que cela soit terminé au 24/01 pour avoir le temps de finaliser un aperçu et se remettre en cause pour l avenir. Librairie utilisable -GLSV. -openvis3d. Référence: -http://inperc.com/blog2/2010/11/15/stereo-vision-with-kinect/ (vidéo montrant un redu graphique utilisant Kinect ) - http://www.ipb.uni-bonn.de/uploads/tx_ikgpublication/plane_detection_in_point_cloud_data.pdf - http://www-graphics.stanford.edu/~kapu/iciappaper.ps.gz - http://www.rbfsrus.com/pdfs/graphite_03/smooth_reconstruction_from_noisy_data.pdf - http://www.eecs.umich.edu/~guskov/rardm06.pdf 5
Voici une représentation graphique réalisée avec Kinect( on remarque l'ombre, qui est due a l'écart de l'objectif et du capteur, ce sont des donnée incomplète). 6