pdpcamera3d soutenance (PDF)




File information


Title: Caméra 3D : Acquisition de géométrie - Projet de Programmation Présentation
Author: Jérôme Bouzillard, Valentina Pestova, David Simon, Maxime Solaire, Joris Valette

This PDF 1.5 document has been generated by LaTeX with Beamer class version 3.26 / pdfTeX-1.40.13, and has been sent on pdf-archive.com on 15/04/2013 at 23:27, from IP address 77.193.x.x. The current document download page has been viewed 957 times.
File size: 7.1 MB (51 pages).
Privacy: public file
















File preview


Architecture
Implémentation
Tests
Conclusion

Caméra 3D : Acquisition de géométrie
Projet de Programmation
Présentation
Jérôme Bouzillard Valentina Pestova David Simon
Maxime Solaire Joris Valette

15 avril 2013

Architecture
Implémentation
Tests
Conclusion

Introduction

2/51

Architecture
Implémentation
Tests
Conclusion

Contexte : l’acquisition de modèle 3D

Traitement numérique de
maillages dans un logiciel
précis :
Ingénierie

Enregistrement
d’informations :
Paléontologie
Médecine

Tournage d’un film

Géographie

Jeux vidéo

Géologie

3/51

Architecture
Implémentation
Tests
Conclusion

Les méthodes existantes
Scanner-laser
Méthodes existantes
Scanner-laser
Photogrammétrie sur des
images non-stéréoscopiques
Acquisition infrarouge (Kinect)
Ultrason
Contraintes
Trop cher
Pas portable
Assez difficile à utiliser
4/51

Architecture
Implémentation
Tests
Conclusion

Objectif et solution

Objectif du projet
Mettre au point une méthode d’acquisition de modèle 3D faisable
avec un matériel accessible grand public

Solution proposée
Reconstruire un modèle 3D à
partir d’une vidéo filmée par
une caméra stéréoscopique

5/51

Architecture
Implémentation
Tests
Conclusion

Présentation de SmithDR

Interface graphique
Plugins
Lecture/écriture d’images
Lecture/écriture de maillages
Algorithmes de traitement
d’images

6/51

Architecture
Implémentation
Tests
Conclusion

Implémentation : Plugin de SmithDR

Fonctionnalités de SmithDR
Visualisation d’images en 2D
Visualisation d’images en 3D
Traitement d’images
+ Reconstruction de modèle 3D

7/51

Architecture
Implémentation
Tests
Conclusion

Pipeline
Entrée et sortie des modules
Diagramme de séquence

Architecture

8/51

Architecture
Implémentation
Tests
Conclusion

Pipeline
Entrée et sortie des modules
Diagramme de séquence

Pipeline

Architecture de notre pipeline de l’acquisition à la modélisation

9/51

Architecture
Implémentation
Tests
Conclusion

Pipeline
Entrée et sortie des modules
Diagramme de séquence

Pipeline
Architecture du plugin voulu sous SmithDR

10/51

Architecture
Implémentation
Tests
Conclusion

Pipeline
Entrée et sortie des modules
Diagramme de séquence

Entrée et sortie des modules
Avancement dans le pipeline

Vidéo
Sortie de couples d’images
(gauche, droite) de la caméra
stéréoscopique

11/51

Architecture
Implémentation
Tests
Conclusion

Pipeline
Entrée et sortie des modules
Diagramme de séquence

Entrée et sortie des modules
Avancement dans le pipeline

Cartes de profondeur
Transformation des paires
d’images en cartes de
profondeur

12/51

Architecture
Implémentation
Tests
Conclusion

Pipeline
Entrée et sortie des modules
Diagramme de séquence

Entrée et sortie des modules

Avancement dans le pipeline

Nuage de points
Obtention d’un nuage de
points à partir des cartes de
profondeur

13/51

Architecture
Implémentation
Tests
Conclusion

Pipeline
Entrée et sortie des modules
Diagramme de séquence

Entrée et sortie des modules

Avancement dans le pipeline

Reconstruction de l’objet
Reconstruction de l’objet à
partir du nuage de points

14/51

Architecture
Implémentation
Tests
Conclusion

Pipeline
Entrée et sortie des modules
Diagramme de séquence

Diagramme de séquence

15/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Implémentation

16/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Avancement dans le pipeline

17/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Présentation des technologies

Décodage supporté par la FFmpeg.
La bibliothèque FFmpeg
1

libavformat
mpegts : fournit des paquets

2

libavcodec
h264 (version standard mais absence de support de l’extension
MVC)
avpicture : désentrelacement

3

libavfilter etc. . .

18/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

H.264 : Exemple de prédiction

19/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Implémentation de H.264 MVC

1

Ajout des nouvelles NAL Units
NAL VDRD
NAL Subset sequence parameter set
NAL Slice extension

2

Indépendantisation des vues
Variable "picture order count"
Références pour l’inter-prédiction
20/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Avancement dans le pipeline

21/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Algorithme basé sur SAD (Sum of Absolute Differences).
Principe

Pour chaque pixel p1 de l’image gauche :
On parcourt tous les pixels p2 de l’image droite se trouvant sur
la même ligne que p1.

22/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Algorithme basé sur SAD. Illustration

23/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Algorithme basé sur SAD. Illustration

24/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Algorithme basé sur SAD. Principe

Pour chaque pixel p1 de l’image gauche :
On parcourt tous les pixels p2 de l’image droite se trouvant sur
la même ligne que p1.
On calcule la somme de la différence absolue entre le voisinage
de p1 et celui de p2. (SAD)
On mesure la distance entre les pixels p1 et p2 qui ont la
somme la plus petite, c’est notre niveau de disparité.

25/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Algorithme "Pixel par Pixel"

Pour chaque ligne l1 de l’image gauche :
On calcule l’intensité des gradients de la ligne l1 avec la ligne
l2 de l’image droite. (pour chaque niveau de disparité)
On compare ces intensités.
On sélectionne la distance de la différence minime entre deux
intensités, c’est notre niveau de disparité.

26/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Avancement dans le pipeline

27/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Mise en correspondance des points
1

Application du détecteur de Harris sur un couple d’images
gauche/droite ;

2

Sélection de 3 points optimaux ;

28/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Déduction de la position des points dans l’espace

3

3 points décrits en 3D grâce aux cartes de profondeur ;

4

Calcul de l’angle de rotation entre les deux images ;

5

Calcul de tous les points de l’image en appliquant la rotation ;

6

Résultat stocké dans un mesh de SmithDR

29/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Avancement dans le pipeline

30/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Reconstruction 3D

Calcul d’un champ
vectoriel

31/51

Architecture
Implémentation
Tests
Conclusion

Décodage vidéo
Generation de cartes de profondeurs
Création d’un nuage de points
Reconstruction du modèle 3D

Reconstruction 3D

Définition du volume
Résolution de l’équation
de Poisson
Obtention d’une fonction
décrivant le volume de
l’objet
Algorithme des marching
cubes

32/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests

33/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests unitaires

Tests unitaires
Cartes de profondeur
Creation du nuage de points

34/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests mémoire

Valgrind : memcheck fuite - taille
Decodage : 1Mo/s - environ 40Mo
Virtuel
Cartes de prof : 14Mo/carte 8Mo/carte Virtuel
Nuage de points : 4Mo avec 2
images. 17Mo Virtuel
Reconstruction : Plus de fuite,
500Mo Virtuel

35/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests performance

Valgrind : callgrind, execution time
Decodage : 5 fois la durée vidéo
Cartes de prof : 10s/carte
1920*1080
Nuage de points : <1 min avec 2
cartes
Reconstruction : 30s pour 300k
points, O(n).

36/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests validation : Decodage

Validation des modules
Decodage : 1/18 couple d’images
sont utilisables.

37/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests validation : Decodage

38/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests validation : Decodage

39/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests validation : Carte de Profondeur

Validation des modules
Decodage : 1/18 couple d’images
sont utilisables.
Cartes de prof : résultat bruité
(lignes horizontales)

40/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests validation : Carte de Profondeur

41/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests validation : Carte de Profondeur

42/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests validation : Nuage de points

Validation des modules
Decodage : 1/18 couple d’images
sont utilisables.
Cartes de prof : résultat bruité
(lignes horizontales)
Nuage de points : Seul Harris
fonctionnel

43/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests validation : Nuage de points

44/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests validation : Reconstruction de surface

Validation des modules
Decodage : 1/18 couple d’images
sont utilisables.
Cartes de prof : résultat bruité
(lignes horizontales)
Nuage de points : Seul Harris
fonctionnel
Reconstruction : reconstruction
fidèle avec modèles de Stanford

45/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests validation : Reconstruction de surface

46/51

Architecture
Implémentation
Tests
Conclusion

Tests
Tests
Tests
Tests

Unitaires
Mémoire
Performance
Validation

Tests validation : Reconstruction de surface

47/51

Architecture
Implémentation
Tests
Conclusion

Ce qui a été fait
Avantages et inconvénients
Ce qu’il reste à faire

Conclusion

48/51

Architecture
Implémentation
Tests
Conclusion

Ce qui a été fait
Avantages et inconvénients
Ce qu’il reste à faire

Ce qui a été fait :

Tous les modules du pipeline sont fonctionnels ou
partiellement fonctionnels.
Le branchement à SmithDr a été démarré pour la génération
des cartes de profondeur et le calcul du nuage de points.

49/51

Architecture
Implémentation
Tests
Conclusion

Ce qui a été fait
Avantages et inconvénients
Ce qu’il reste à faire

Avantages et inconvénients :
Inconvénients :
Difficile de reprendre et modifier le code interne de certains
modules, notamment FFmpeg et reconstruction de Mesh
Bien que tous les modules soient fonctionnels, la qualité du
résultat de certains modules n’est pas optimale (decodeur
MVC, cartes de profondeur)
Avantages :
Très modulaire
Possibilité d’utilisation des modules indépendamment du reste.
Exécution sans interruption ou écriture sur disque assurant
certaines performances globales.
50/51






Download pdpcamera3d-soutenance



pdpcamera3d-soutenance.pdf (PDF, 7.1 MB)


Download PDF







Share this file on social networks



     





Link to this page



Permanent link

Use the permanent link to the download page to share your document on Facebook, Twitter, LinkedIn, or directly with a contact by e-Mail, Messenger, Whatsapp, Line..




Short link

Use the short link to share your document on Twitter or by text message (SMS)




HTML Code

Copy the following HTML code to share your document on a Website or Blog




QR Code to this page


QR Code link to PDF file pdpcamera3d-soutenance.pdf






This file has been shared publicly by a user of PDF Archive.
Document ID: 0000100827.
Report illicit content