EA2012-3D Scanning

= 3D Scanning = Exposé réalisé par Oswald Camille et Clément Wirth

=Résumé= Un scanner tridimensionnel est un appareil qui analyse les objets pour recueillir des informations précises sur la forme de ceux-ci. Les données ainsi collectées peuvent alors être utilisées pour construire des images de synthèse en trois dimensions. Pour passer d'un objet de la vie réelle à un modèle 3D, trois étapes peuvent être identifiées : la capture d'un nuage de points présentant la surface de l'objet ; Le nettoyage, l'adaptation, voir la fusion entre plusieurs nuages ; enfin la reconstruction. Pour la phase de capture, il existe deux types de scanners : Pour la phase de reconstruction, l’algorithme le plus utilisé et le plus connu est l’algorithme ICP.
 * Les scanners avec contact
 * Les scanners sans contact

=Abstract= A 3D scanner is a device that analyzes a real-world object to collect data on its shape and possibly its appearance (color). The collected data can then be used to construct digital, three dimensional models. To move an object from the real-life 3D model, three stages can be identified: the capture of a cloud of points with the surface of the object, cleaning and adjustment and finally the reconstruction. In the capture phase, there are two types of scanners: In the reconstruction phase, the algorithm most widely used and best known is the ICP algorithm
 * Scanners with contact
 * Non-contact scanners

=Synthèse= Principe de fonctionnement et utilisation Un scanner tridimensionnel est un appareil qui analyse les objets ou leur environnement proche pour recueillir des informations précises sur la forme et éventuellement sur l'apparence (couleur, texture, …) de ceux-ci. Les données ainsi collectées peuvent alors être utilisées pour construire des images de synthèse en trois dimensions (objets numériques) à des fins diverses. Pour passer d'un objet de la vie réelle à un modèle 3D, trois étapes peuvent être identifiées : la capture d'un nuage de points présentant la surface de l'objet ; Le nettoyage, l'adaptation, voir la fusion entre plusieurs nuages ; enfin la reconstruction en un modèle polygonal. Ces appareils sont beaucoup utilisés par les industries du divertissement pour des films ou des jeux vidéo. Des images numériques en 3D d'objets scannés servent également à la conception industrielle, à la conception d'orthèses (semelle, corset) et de prothèses, à la rétro-ingénierie (reconstruction de surface) pour la documentation d'objets culturels.

Méthode de capture Il existe deux types de scanner pour la phase de capture de l’information :
 * Les scanners avec contact
 * Les scanners sans contact

Les scanners avec contact
Les scanners 3D avec contact sondent le sujet grâce à un contact physique. Ils ont une bonne précision. Cependant, comme il y à un contact physique, cela peut détruire ou altérer des objets fragiles. Un autre inconvénient de cette technologie est sa relative lenteur par rapport aux autres méthodes. Un exemple de ce type de scanner est le bras de palpage. Au bout d’un bras, il y à un capteur que l’on peut déplacer dans toutes les directions afin de capturer toutes les coordonnées de l’objet à scanner.

Les scanners sans contact
Dans les scanners sans contact, il existe deux sous catégorie de scanner :
 * Scanner sans contact actif
 * Scanner sans contact passif

Les scanners sans contact actif
Les scanners actifs émettent un rayonnement et détectent sa réflexion afin de sonder un objet ou un environnement. Différents types de source de rayonnement sont utilisés : lumière, ultrason ou rayon X. Les scanners laser 3D peuvent généralement être répertoriés dans trois catégories principales : Pour notre démonstration, nous avons utilisée le scanner à frange (ou à lumière blanche). Le scanner 3D à lumière blanche ou à frange est un scan actif qui utilise la lumière blanche (projecteur type rétro-projecteur) pour sonder son environnement. Il pointe sur le sujet une série de motifs lumineux (traits, carrés, ronds,...) avec le projecteur créant des images déformées sur l’objet et utilise un appareil photo ou une camera décalée pour situer les motifs. En fonction de la distance jusqu’à la surface, les motifs prennent des formes différentes (déformations) en raison du positionnement décalé du laser et de la caméra. Ensuite un logiciel vient en déduire la forme de l’objet en fonction de l’ensemble des surfaces déformées dont il dispose. Ce type de scanner appartient à la catégorie scanner par triangulation.
 * Le scanner 3D par temps de vol : Le scanner par détection de temps de vol émet une impulsion de lumière laser qui est réfléchie par l’objet scanné. La réflexion en résultant est détectée par un capteur. Le temps qui s’écoule entre l’émission et la détection rapporte la distance à l’objet puisque l’on connaît précisément la vitesse de la lumière laser
 * Scanner par triangulation: le scanner projette une ligne ou un point laser sur un objet et en capture ensuite sa réflexion par un capteur situé à une distance connue de la source du laser.
 * Le scan par changement de phase : s’effectue en comparant le changement de phase dans la lumière laser réfléchie à une phase standard, qui est aussi capturée pour la comparaison.

Scanner sans contact passif
Les scanners sans contact passifs, n'émette aucun type de rayonnement. Ils se basent sur la détection de rayonnement ambiant réfléchi. La plupart des scanners de ce type détectent la lumière visible car elle est immédiatement disponible. Il existe tout une liste de ce type de scanner, lors de notre exposé, nous en avons présentés trois :
 * Scanners stéréoscopiques : Les systèmes stéréoscopiques utilisent généralement deux caméras vidéo, légèrement espacées, pointant vers la même scène. En analysant les légères différences entre les images des deux appareils, il est possible de déterminer la distance de chaque point de l'image. Cette méthode est basée sur la vision stéréoscopique humaine.


 * Photogrammétrie : Le principe de la photogrammétrie est de prendre des images multiples de l’objet et des points communs manuels ou automatiques à chaque photographie. Les points peuvent être ajoutés automatiquement ou manuellement pour créer les mesures 3D des parties souhaitées de l’objet.


 * Le Tomographe : Le tomographe est un appareil dans lequel on vient insérer le produit à numériser. L’appareil vient effectuer des mesures par tranche depuis l’extérieur de l’objet. Ce scanner permet de sortir des fichiers images de l’objet tranche par tranche. On peut avec un logiciel de reconstitution de fichier type IRM reconstituer l’objet en 3D.

Reconstruction
Après avoir scanné plusieurs nuages de points de notre objet 3D, il convient d'effectuer certains traitements pour obtenir notre objet final : c'est l'étape de reconstruction. Lors de cette étape, on va effectuer les points suivants : La reconstruction des maillages s'effectue le plus souvent en utilisant l'algorithme ICP. Une fois notre objet reconstruit, il convient d'effectuer un comblement des trou ( qui sont les points qui ne se trouvent sur aucun nuage de points) et un re-texturing de notre objet. Certaines méthodes effectuent le retexturing de notre objet en même temps que la capture : dans ce cas la texture est capturée en même temps que le nuage de points et appliquée sur celui-ci.
 * Nettoyage des points parasites (comme les fonds, le socle, ...)
 * Positionnement des nuages de points entre eux pour faciliter leur association
 * Reconstruction du maillage, qui consiste à associer les différents nuages de points entre eux afin de former notre objet final

Algorithme Iterative Closest Point (ICP)
Cet algorithme itératif permet de reconstruire le maillage entre plusieurs nuages de points. Son fonctionnement est simple et peut permettre d'effectuer de la reconstruction 3D en temps réel. Son principe de fonctionnement est le suivant :
 * Association de deux points de deux nuages de points en utilisant le critère des plus proche voisins
 * Estimation de la transformation nécessaire pour minimiser la distance entre les deux points
 * Mise en place de la transformation précédemment calculée
 * Itération sur le point suivant

Certains logiciels implémentent cet algorithme et permettent de faire de la reconstruction 3D. Parmi ces logiciels on peut trouver les logiciels Meshlab ou CloudCompare. La librairie VTK propose également une implémentation de cet algorithme.

Exemples de 3D scanning
Voici différents types de solutions que l'on peut trouver pour faire du 3d scanning : 3D scanning de NextEngine Ceci est une solution payante. NextEngine propose un capteur laser qui va vous permettre de capturer avec une bonne précision les points de votre objet 3d. NextEngine propose en plus d'utiliser son logiciel qui va piloter le capteur et va effectuer la reconstruction de votre objet.

3D scanning de DAVID DAVID fournit un logiciel permettant de faire du 3D scanning selon deux méthodes: Le logiciel de DAVID permet de faire de la reconstruction 3D à partir des nuages de points capturés et propose également de faire du texturing. DAVID propose une version d'évaluation de son logiciel.
 * Une méthode de capture par laser. Cette méthode nécessite une webcam et un laser rectiligne
 * Une méthode de capture par lumière structurée. Cette méthode nécessite une webcam et un vidéo-projecteur.

3D scanning de RGBDemo RGBDemo propose une solution de 3d scanning utilisant la Microsoft Kinect. Cette méthode de capture permet d'avoir des nuages de points grossier car le capteur de la kinect n'est pas assez précis pour faire du 3D scanning de précision.

=Sources= Page wikipédia ICP Page wikipédia 3d scanning 3D scanning utilisant la kinect 3d scanning temps réel Informations sur le 3d scanning Solution de 3d scanning DAVID Solution 3d scanning NextEngine Utilisation de l'algorithme ICP par Meshlab Repository 3D Scanning de l'université de Stanford Reconstruction 3d temps réel par l'université de Cambridge "KinectFusion provides 3D object scanning and model creation using a Kinect for Windows sensor." http://msdn.microsoft.com/en-us/library/dn188670.aspx

=Diapositives=