FR 2950138 A1 20110318 FR 0904413 A 20090915 Procédé de numérisation tridimensionnelle à recalaqe rapide L'invention a trait à la construction de modèles numériques tridimensionnels de surfaces physiques par mesure optique, sans contact. Cette technique est couramment appelée numérisation tridimensionnelle, numérisation 3D, ou encore, suivant la terminologie anglo-saxonne, scanning 3D. L'architecture des systèmes de vision permettant de réaliser la numérisation 3D d'une surface comprend classiquement deux 10 composants : - un composant physique : le scanner (de préférence portatif), qui effectue une acquisition d'images de la surface, généralement par une succession de prises de vues (ponctuelles, en rafale ou en continu) de celle-ci ; 15 - un composant logiciel de traitement des images produites par le scanner, ce traitement permettant d'effectuer une reconstruction tridimensionnelle de synthèse de la surface, par exemple dans un environnement CAO (Conception assistée par ordinateur) ou CFAO (Conception et Fabrication assistées par ordinateur). 20 L'acquisition des images est généralement effectuée par projection sur la surface à numériser d'un motif lumineux structuré ayant une forme prédéterminée (lignes, carrés, mouchetis, etc.), puis par capture optique du motif projeté. Des traitements sont appliqués aux images capturées, permettant de calculer les coordonnées spatiales d'une 25 sélection de points pour reconstruire le modèle tridimensionnel de la surface. Sur la base de ce même principe fondamental, de nombreuses solutions ont été proposées, qui varient selon trois axes principaux : l'architecture du scanner ; la nature et la forme du motif projeté ; la 30 méthodologie de reconstruction. S'agissant en premier lieu des scanners, on en distingue généralement deux types : les scanners à caméra unique (vision monoculaire), et les scanners à caméras multiples (vision binoculaire ou stéréovision ; vision multi-oculaire). 35 Dans les scanners fonctionnant en vision monoculaire, une seule image du motif déformé est produite. Cette image est ensuite comparée N003 B007 FR_Visu_tps_réel_TQD à une image de référence du motif non déformé pour effectuer la reconstruction. Les documents de brevet US 5 003 166 (MIT), FR 2 842 591 (ENSMA/CNRS), WO2007/043036 (PRIME SENSE), US 2009/0059241 (ARTEC) et FR 2 921 719 (NOOMEO) illustrent cette architecture. Dans les scanners fonctionnant en vision binoculaire ou multioculaire, qui sont ceux qui nous intéressent ici, au moins deux images du motif déformé sont produites simultanément, et on effectue une comparaison de ces images pour effectuer la reconstruction. La demande internationale WO 2006/094409 (CREAFORM) illustre cette architecture. S'agissant en second lieu du motif projeté, il peut être répétitif, par exemple sous forme de lignes ou de segments (cf. US 5 003 166 précité), ou non répétitif, par exemple sous forme d'un mouchetis (cf. notamment FR 2 842 591 et FR 2 921 719 précités). S'agissant enfin de la méthodologie de reconstruction, elle peut varier d'une solution à l'autre en matière de choix des algorithmes, mais comprend généralement trois étapes : - la rectification des images ; - la mise en correspondance ; le calcul des coordonnées spatiales de points de la surface numérisée. En stéréovision, la rectification des images est préférable pour faciliter leur exploitation ultérieure. Outre la correction des distorsions induites par les systèmes optiques, on applique généralement aux images un traitement de rectification épipolaire visant à rendre parallèles et alignées les droites épipolaires des deux images. La mise en correspondance ou corrélation consiste ensuite à apparier dans les images stéréoscopiques les homologues ou stéréo- correspondants, c'est-à-dire les projections dans les plans images d'un même point de la surface physique. La différence entre les coordonnées des stéréo-correspondants est appelée disparité. Une fois calculées les disparités, les coordonnées spatiales des points correspondants de la surface sont alors calculées par triangulation, le résultat des calculs fournissant un nuage de points N003 B007 FR_Visu_tps_réel_TQD localisés précisément dans l'espace. A partir d'un nuage de points, des techniques de maillage permettent d'obtenir une surface continue. La rectification des images est une problématique bien connue, pour laquelle des algorithmes performants et robustes existent depuis quelque temps déjà, cf. par exemple P. Lasserre et P. Grandjean, « Stereo improvements », dans IEEE International Conference on Advanced Robotics, Barcelone, 1995. De même, une fois la mise en correspondance effectuée, les calculs de triangulation ne posent pas de problèmes particuliers. En revanche, la problématique de la mise en correspondance est beaucoup plus complexe, et fait actuellement l'objet de nombreuses recherches pour parvenir à des solutions efficaces, rapides et robustes. Pour un aperçu de certaines techniques de mise en correspondance (et, incidemment, une meilleure compréhension de la géométrie épipolaire en stéréovision), cf. par exemple V. Lemonde, « Stéréovision embarquée sur véhicule : de l'auto-Calibrage à la Détection d'obstacles », Thèse CNRS/INSA, Novembre 2005, S. Chambon, « Mise en correspondance stéréoscopique d'images couleur en présence d'occultations », Thèse Université Paul Sabatier, Décembre 2005, et W. Souid-Miled, « Mise en correspondance stéréoscopique par approches variationnelles convexes », Thèse Université Paris-Est/INRIA, Décembre 2007. Une technique ordinaire de mise en correspondance est celle dite du block matching. Cette technique, décrite dans M. Brown et al, « Advances in Computational Stereo », in IEEE transactions on pattern analysis and machine intelligence, vol. 25, n°8, pp. 993-1008, Août 2003, et dans T. Lim, « Utilisation de la méthode du block matching pour la reconstruction de la profondeur d'images stéréo », Rapport de stage de Magistère, ENS Cachan, Août 2006, est une méthode dite locale consistant à comparer un voisinage d'un pixel (centré sur ce pixel et appelé fenêtre de corrélation) de l'une des images A du couple stéréoscopique avec différents voisinages de même taille extraits de l'autre image B du couple. Un pixel de l'image B est décrété homologue du pixel de l'image A si son voisinage maximise û respectivement minimise û une mesure de corrélation caractéristique du degré de N003 B007 FR_Visu_tps_réel_TQD similarité û respectivement de dissimilarité û entre les voisinages de l'image B et celui de l'image A. La complexité de la mise en correspondance croît avec le nombre de points que l'on souhaite apparier. En effet, s'il est relativement simple de sélectionner un faible nombre de points d'intérêt (par exemple situés dans un environnement fortement contrasté permettant de détecter facilement les stéréo-correspondants), un appariement plus dense se heurte rapidement à des difficultés d'analyse en raison de la présence d'ambiguïtés dans certaines zones des images qui pèchent par exemple par un aspect trop homogène, voire par l'absence totale de contenu (par exemple en raison de phénomènes d'occultation qui ne manquent pas d'apparaître, notamment pour des surfaces présentant des reliefs prononcés). Aussi, les solutions connues font-elles généralement un compromis entre les deux objectifs suivants a priori contradictoires : la fiabilité de la mise en correspondance et la densité des nuages de points obtenus. Les erreurs de mise en correspondance aboutissent à l'obtention de points manifestement aberrants qui doivent être éliminés au moyen de techniques de filtrage. Outre que cette élimination requiert de la puissance et du temps de calcul, elle diminue le nombre total de points utiles û et donc la densité de la reconstruction. On peut tenter de remédier à une insuffisance de densité en réitérant les opérations d'acquisition et de traitement, de sorte à générer plusieurs nuages de points qu'il est ensuite nécessaire de recaler dans l'espace en raison des décalages intervenus entre deux prises de vues successives. Les techniques de recalage sont complexes, et nécessitent une puissance et/ou un temps de calcul proportionnels au nombre de nuages à recaler. Or le besoin se fait ressentir d'une visualisation en temps réel des nuages de points reconstruits, avant même de lancer le calcul du maillage. En effet, une telle visualisation permet à l'utilisateur de contrôler la densité de reconstruction, et surtout de détecter les zones occultées, de manière à y diriger le scanner pour y effectuer une ou plusieurs nouvelles prises de vues. N003 B007 FR_Visu_tps_réel_TQD Les techniques connues permettent difficilement de répondre à ce besoin, en raison de la complexité ù et de la longueur ù des calculs permettant de reconstruire puis de recaler les nuages de points. Un compromis peut consister à limiter la résolution, par exemple en limitant la taille fenêtre d'acquisition et/ou en limitant le nombre de points appariés lors de la mise en correspondance. Tel est le cas par exemple du dispositif décrit dans le document WO 2006/094409 précité, qui est configuré pour projeter une croix générée par deux lasers plans, cette croix étant capturée par une paire de caméras stéréoscopiques. Le recalage est réalisé au moyen de pastilles de référence collées sur la surface à numériser. Une visualisation en temps réel est sans doute permise, en raison de la petite taille du motif projeté, et du faible nombre de points utiles pour la reconstruction de chaque nuage de points, au bénéfice du temps de traitement. Toutefois, il en résulte un rétrécissement du champ de vision et donc du volume spatial occupé par les nuages de points. In fine, une partie du temps de traitement gagné grâce à ces mesures d'économie est reperdu en temps d'acquisition. L'invention vise à proposer une solution remédiant notamment aux inconvénients précités, et permettant d'accélérer la phase de recalage des nuages de points, notamment afin de permettre une visualisation en temps réel de la numérisation en cours. A cet effet, l'invention propose un procédé de construction d'un modèle numérique tridimensionnel d'une surface physique, comportant une phase d'acquisition, une phase de reconstruction et une phase de recalage, La phase d'acquisition comprenant la répétition des opérations suivantes : Projection sur la surface d'un motif lumineux structuré, Acquisition et mémorisation d'au moins un couple d'images stéréoscopiques bidimensionnelles de la surface ainsi éclairée, au moyen d'un appareil muni d'au moins une paire de capteurs optiques ; La phase de construction comprenant la répétition des opérations suivantes pour chaque couple d'images stéréoscopiques : N003 B007 FR_Visu_tps_réel_TQD - Appariement d'une pluralité de points homologues dans le couple d'images stéréoscopiques, - Calcul des coordonnées spatiales des points de la surface correspondant aux homologues appariés, Rassemblement des points en un nuage de points, La phase de recalage comprend les opérations suivantes, pour au moins un premier nuage de points et un deuxième nuage de points : A partir des données fournies par une centrale inertielle embarquée dans l'appareil, calculer une composante de rotation relative de l'appareil entre ses positions aux instants des acquisitions des couples d'images stéréoscopiques associés aux nuages de points ; Déterminer les coordonnées d'au moins un point caractéristique de chaque nuage de points ; - A partir des coordonnées des points caractéristiques des différents nuages, calculer une composante de translation entre le premier nuage de points et le deuxième nuage de points ; Appliquer au deuxième nuage de points une transformation comprenant la composante de rotation et la composante de translation. La phase de recalage ainsi conçue peut être conduite rapidement, de sorte qu'il est possible d'afficher dans un délai bref les nuages de points recalés, afin de permettre à l'utilisateur de visualiser la reconstruction sur écran pendant la numérisation, sans attendre que celle-ci soit achevée. Suivant un premier mode de réalisation, le point caractéristique est le barycentre du nuage de points, la composante de translation étant la distance entre les barycentres des nuages de points recalés en rotation. Suivant un autre mode de réalisation, les points caractéristiques sont les points de zones localisées décrétées similaires dans les deux nuages, la composante de translation est la médiane des distances entre les points des zones similaires. Une étape supplémentaire consiste à affichage les nuages de points recalés sur une interface graphique. N003 B007 FR_Visu_tps_réel_TQD L'invention propose également un produit programme d'ordinateur comprenant des instructions pour la mise en oeuvre des opérations des phases de reconstruction et de recalage du procédé décrit ci-dessus, ainsi qu'un système de numérisation comprenant une unité centrale de traitement sur laquelle est implémenté ce programme. D'autres objets et avantages de l'invention apparaîtront à la lumière de la description faite ci-après en référence aux dessins annexés dans lesquels : la figure 1 est une vue en perspective illustrant un dispositif de numérisation tridimensionnelle comprenant un appareil de capture relié à un ordinateur, appliqué à la numérisation de la surface d'un objet, en l'occurrence le visage d'une statue ; la figure 2 est une vue schématique de côté illustrant les principaux composants optiques de l'appareil de la figure 2, placés dans une situation de prise de vue ; la figure 3 est une vue en plan d'un motif pour la projection sur une surface à numériser, selon une première variante de réalisation ; la figure 4 est une vue d'un détail du motif de la figure 3 ; û la figure 5 montre un couple d'images stéréoscopiques structurées du motif des figures 4 et 5 projeté sur le visage de la figure 1 ; la figure 6 montre un couple d'images stéréoscopiques texturées du visage de la figure 1 ; la figure 7 est une vue en perspective d'un nuage de points reconstruit à partir des images stéréoscopiques ; la figure 8 est une vue en perspective montrant deux nuages de points reconstruits à partir des images stéréoscopiques de deux prises de vues successives du visage de la statue de la figure 1 ; les nuages ont été recalés. Sur la figure 1 est représenté un système 1 de numérisation optique sans contact, permettant de construire un modèle numérique tridimensionnel, sous forme d'une image de synthèse en environnement de DAO (dessin assisté par ordinateur) ou CAO (Conception assistée par ordinateur), d'une surface 2 physique, par exemple l'enveloppe d'un objet physique réel 3. En l'occurrence, cet objet 3 est une statue mais il pourrait s'agir de tout autre objet présentant une ou plusieurs surfaces N003 B007 FR_Visu_tps_réel_TQD à numériser. Généralement, la surface 2 à numériser est en relief, c'est-à-dire non plane, mais le système 1, ainsi que le procédé mis en oeuvre décrit ci-après, permettent a fortiori la numérisation de surfaces planes. (NB. pour respecter les prescriptions formelles en matière de dessins de brevets, la photographie de la statue sur la figure 1 a été filtrée et convertie pour un affichage en deux couleurs, d'où son aspect granuleux). Le système 1 de numérisation comprend un appareil 4 d'acquisition (ou capture) optique, dénommé scanner, équipé d'un boîtier 5 portatif muni d'une poignée 6 permettant sa saisie et sa manipulation. La poignée 6 porte, sur une face avant, un déclencheur 7 manuel dont l'actionnement commande la prise de vue. Le système 1 comprend également une unité centrale de traitement (UC ou CPU) des images capturées par le scanner 4, sous forme d'un processeur sur lequel est implémentée une application logicielle de construction des modèles numériques à partir des images capturées. Plus précisément, cette application logicielle comprend des instructions permettant de mettre en oeuvre les opérations de calcul décrite ci-après. Le processeur peut être embarqué dans le scanner 4 ou, comme cela est illustré sur la figure 1, délocalisé en étant intégré dans un ordinateur 8 équipé d'une interface graphique et relié au scanner 4 par l'intermédiaire d'une interface 9 de communication filaire (ou sans fil), par exemple sous forme d'un bus informatique de type USB. Le scanner 4 est conçu pour fonctionner en stéréovision. Comme cela est visible sur les figures 1 et 2, il comprend, montés dans le boîtier 5 : un projecteur 10 lumineux ; un système 11 de stéréovision comprenant une paire de dispositifs 12, 13 d'acquisition optique, de type caméras (c'est-à-dire conçu pour réaliser des prises de vues en continu, par exemple à la cadence normalisée de 24 images par seconde), ou appareils photographiques (c'est-à-dire réalisant des prises de vues ponctuelles, éventuellement en rafale) ; un système 14 de visée optique ; N003 B007 FR_Visu_tps_réel_TQD 35 une centrale 15 inertielle, configurée pour fournir à tout instant un référentiel absolu invariant, construit à partir de deux directions orthogonales identifiables par la centrale 15, à savoir le Nord magnétique et la verticale. On suppose dans ce qui suit que les dispositifs 12, 13 d'acquisition optique sont des caméras, qui, au besoin, peuvent être employées comme appareils photographiques. Le projecteur 10 comprend une source lumineuse (non visible), une optique 16 de focalisation et une diapositive (non visible), interposée entre la source lumineuse et l'optique 16 de focalisation. La source lumineuse est de préférence une source non cohérente de lumière blanche, notamment de type à filament ou halogène, ou encore à diode (LED). L'optique 16 de focalisation du projecteur 10 définit un axe optique principal 17 passant par la source lumineuse. Cet axe optique 17 définit un axe optique de projection du scanner 4. Les caméras 12, 13 comprennent chacune : une optique 18 de focalisation définissant un axe optique 19 (respectivement 20) de visée, un capteur 21 photosensible, par exemple de type CCD, qui se présente sous forme d'une plaque carrée ou rectangulaire placée, en regard de l'optique 18 de focalisation, sur l'axe optique 19, 20, c'est-à-dire perpendiculairement à celui-ci et de sorte que l'axe 19, 20 passe par le centre du capteur 21. Les centres optiques des caméras 12, 13 sont espacés l'un de l'autre d'une distance appelée base, leurs axes optiques 19, 20 convergeant vers un point 22 situé sur l'axe optique 17 du projecteur 10, dans le champ de celui-ci. En pratique, on orientera les caméras 12, 13 de telle sorte que le point de convergence de leurs axes optiques 19, 20 se trouve dans un plan médian situé dans le champ de projection et dans la zone de netteté (également appelé profondeur de champ) du projecteur 10. Le capteur 21 de chaque caméra 12, 13 est placé à une distance prédéterminée de l'optique 18 de focalisation, dans un plan image dépendant de sa focale et tel que le plan objet correspondant à ce plan image se trouve dans la zone de netteté du projecteur 10. N003 B007 FR_Visu_tps_réel_TQD Comme cela est illustré sur la figure 2, le projecteur 10 et les caméras 12, 13 sont fixés sur une platine 23 commune monobloc, réalisée dans un matériau suffisamment rigide pour minimiser les risques de désaxement des caméras 12, 13 (un tel désaxement est appelé décalibrage). En pratique, la platine 23 est réalisée dans un alliage d'aluminium. Comme cela est visible sur la figure 1, la poignée 6 du scanner 4 s'étend parallèlement à la base, de sorte que la tenue naturelle du scanner 4 est verticale, les caméras 12, 13 s'étendant l'une au-dessus de l'autre. Par convention toutefois, on dénomme caméra gauche la caméra supérieure 12 (située du côté du pouce) et caméra droite la caméra inférieure 13. Le système 14 de visée est agencé pour permettre, préalablement à la prise de vue, un positionnement du scanner 4 à une distance de la surface 2 à numériser telle que le motif projeté soit inclus dans le champ du projecteur 10 û et soit par conséquent net. Comme cela est illustré sur la figure 2, le système 14 de visée comprend deux pointeurs laser 24 montés rigidement sur la platine 23, conçus pour émettre chacun, lorsque le déclencheur 7 est enfoncé, un faisceau lumineux linéaire 25, 26 produisant, sur toute surface éclairée, une tache lumineuse sensiblement ponctuelle. Les pointeurs 24 sont positionnés angulairement sur la platine 23 pour que les faisceaux 25, 26 émis se croisent en un point d'intersection 27 situé sur l'axe 17 du projecteur 10, dans la zone de netteté de celui-ci et en amont du point 22 de convergence des axes optiques 19, 20 des caméras 12, 13. La diapositive est disposée entre la source lumineuse et l'optique 16 du projecteur 10, sur l'axe 17, c'est-à-dire perpendiculairement à l'axe 17 et de sorte que celui-ci passe par le centre de la diapositive. La diapositive est placée à une distance prédéterminée de l'optique 16 dont elle constitue un plan objet, de telle sorte que l'image du motif soit nette dans un plan image perpendiculaire à l'axe 17. En pratique, le plan image n'est pas unique, l'optique de focalisation du projecteur 10 étant conçue (ou réglée) pour présenter une certaine profondeur de champ, telle que l'image du motif projeté soit nette dans une certaine N003 B007 FR_Visu_tps_réel_TQD zone de netteté qui s'étend entre deux plans espacés perpendiculaires à l'axe 17. La diapositive se présente sous la forme d'une plaque translucide ou transparente (en verre ou en matière plastique), carrée ou rectangulaire, sur laquelle le motif est imprimé par un procédé classique (transfert, offset, sérigraphie, flexographie, laser, jet d'encre, microlithographie, etc.). Le motif est structuré, c'est-à-dire qu'il présente des alternances de zones claires et de zones sombres d'une forme prédéterminée. La constitution du motif (couleur, contraste) n'est pas aléatoire : elle est connue en tout point. Le motif peut être réalisé en niveaux de gris ou en couleurs, mais il est de préférence réalisé en noir et blanc, ce qui maximise le contraste entre zones claires et zones sombres. Plus précisément, le motif comprend la combinaison de deux sous- motifs, à savoir : - Un motif primaire 28 régulier, comprenant un réseau de franges 29 rectilignes continues espacées, et - un motif secondaire 30 globalement anisotrope, c'est-à-dire irrégulier et non répétitif dans toute direction de l'espace. Suivant un mode de réalisation illustré sur les figures 3 et 4, le motif secondaire 30 comprend des tavelures 31 s'étendant dans les espaces entre franges 29. Ce motif secondaire 30 peut être généré de manière automatique au moyen d'un programme d'ordinateur permettant de réaliser des motifs pseudo-aléatoires. Citons à titre d'exemple l'algorithme de Ken Perlin générant un type de mouchetis bien connu appelé Bruit de Perlin, qui présente l'avantage d'être anisotrope, c'est-à-dire non répétitif dans toutes directions de l'espace. Dans le détail, ce type de motif comprend un entrelacement de taches noires et blanches qui donnent un aspect granuleux au motif. Le terme « tavelure » désigne cet entrelacement. En anglais, ce type de motif est également dénommé « Speckle ». Comme nous le verrons plus en détail ci-après, le motif primaire 28 a pour fonction de générer localement un fort contraste, aisément détectable, entre zones claires blanches et zones sombres, tandis que le motif secondaire 30 a pour fonction, par sa nature anisotrope, de localiser dans l'image avec certitude toute fenêtre de visualisation. N003 B007 FR_Visu_tps_réel_TQD Comme cela est visible sur la figure 3 et plus en détail à échelle agrandie sur la figure 4, le motif primaire 28 est mono-orienté et comprend une série de franges 29 claires (blanches en l'occurrence) qui s'étendent verticalement dans l'orientation illustrée sur les figures 3 et 4, bordées chacune, de part et d'autre, par deux bandes sombres 32 (noires en l'occurrence) parallèles, semblables. La largeur des franges 29 est constante, de même que l'espacement entre franges 29. Les tavelures 31 du motif secondaire 30 s'étendent par bandes dans les espaces entre franges 29, et plus précisément entre les bandes noires 32 bordant les franges 29 blanches. Compte tenu du caractère mono-directionnel du motif primaire 28, il existe une orientation préférée du motif général, par rapport au positionnement du système 11 de stéréovision. En effet, l'image est imprimée sur la diapositive ù ou celle-ci est orientée ù de manière que les franges 29 s'étendent perpendiculairement à la base, c'est-à-dire à l'axe reliant les centres optiques des caméras 12, 13. En d'autres termes, les franges 29 s'étendent perpendiculairement au plan contenant les axes optiques 19, 20 des caméras 12, 13, afin qu'en vision stéréoscopique les franges 29 s'étendent verticalement sur les images capturées par les caméras 12, 13. Quoi qu'il en soit, la présence de franges 29 claires, bordées de bandes noires 32, permet de munir le motif de zones contrastées qui pourront être identifiées lors du traitement des images, comme nous l'expliquerons plus en détail ci-après. Ce type de motif est avantageux en comparaison d'un mouchetis simple qui apparaîtrait peu contrasté, car les taches noires et blanches de la diapositive formeraient, par projection, des taches en niveaux de gris. Quant à un motif isotrope fait par exemple de seules franges, il est par nature non adapté à la stéréovision, car non localisable et donc impropre à la mise en correspondance. On décrit à présent le fonctionnement du système 1 de numérisation tridimensionnelle. Ce fonctionnement repose sur la succession des étapes suivantes, réalisées après une étape préalable de calibrage du système 11 de stéréovision : Numérisation de la surface ; N003 B007 FR_Visu_tps_réel_TQD Rectification des images ; Reconstruction de nuages de points ; - Recalage des nuages de points ; Construction du modèle tridimensionnel. Calibrage Le calibrage du système 11 de stéréovision est une étape préalable indispensable, sans laquelle il n'est pas possible de traiter convenablement les informations capturées par les caméras 12, 13. Le calibrage d'une caméra unique (en vision monoculaire) se limite à estimer les paramètres intrinsèques de la caméra ainsi que sa position par rapport à un référentiel absolu. Le calibrage du système 11 de stéréovision est plus complexe, car il suppose d'effectuer un calibrage double, qui comprend non seulement l'estimation des paramètres intrinsèques de chaque caméra 12, 13, mais également la position et l'orientation relatives des caméras 12, 13 l'une par rapport à l'autre. En pratique, le calibrage consiste à apparier les deux caméras 12, 13 en implémentant dans l'UC du système 1 de numérisation un nombre donné de paramètres structurels et optiques du système 11 de stéréovision, notamment la position des centres optiques et l'angle entre les axes optiques 19, 20. Ce calibrage n'est pas nécessairement réalisé avant chaque utilisation du système 1. Il est de préférence réalisé en usine, à l'aide d'une mire (par exemple un damier) dont la géométrie est connue avec exactitude. On peut réaliser le calibrage du système 11 de stéréovision selon une procédure et des algorithmes connus. A cet effet, l'homme du métier pourra notamment se référer à V. Lemonde, « Stéréovision embarquée sur véhicule : de l'auto-Calibrage à la Détection d'obstacles », Thèse CNRS/INSA, Novembre 2005, précité, ou à B. Bocquillon, « Contributions à l'autocalibrage des caméras : modélisations et solutions garanties par l'analyse d'intervalle », Thèse, Université de Toulouse, Octobre 2008. Numérisation La numérisation est l'étape d'acquisition d'un ou plusieurs couples d'images stéréoscopiques de la surface 2. Plus précisément, la N003 B007 FR_Visu_tps_réel_TQD procédure de numérisation comprend la succession des opérations suivantes. En premier lieu, le scanner 4 est positionné face à la surface 2 à numériser û en l'occurrence face au visage de la statue. Une impulsion sur le déclencheur 7 provoque l'allumage des pointeurs 24. Le scanner 4 peut alors être positionné correctement, la concordance des points lumineux produits par les lasers sur la surface 2 signifiant que celle-ci est située dans le champ du projecteur 10 et des caméras 12, 13. Une fois positionné le scanner 4, la procédure d'acquisition est alors initiée par un appui prolongé sur le déclencheur 7. La procédure se poursuit tant que le déclencheur 7 est maintenu enfoncé. Cette procédure comprend la succession des opérations suivantes : a.1) Allumage du projecteur 10. Cet allumage provoque la projection du motif sur la surface 2. a.2) Extinction des pointeurs (pour éviter l'aveuglement des caméras 12, 13) et acquisition par les caméras 12, 13 d'un premier couple d'images stéréoscopiques bidimensionnelles de la surface 2 ainsi éclairée. Ces images sont dites structurées car elles contiennent le motif structuré projeté sur la surface 2, suivant les deux points de vue différents des caméras 12, 13. Bien que le système 11 de stéréovision ne soit pas nécessairement orienté horizontalement, on dénomme par convention image gauche et l'on note G l'image structurée produite par la caméra gauche 12, et image droite û notée D û l'image structurée produite par la caméra droite 13. L'acquisition d'une image comprend en fait deux étapes. D'abord la prise de vue, lors de laquelle l'image s'imprime sur les cellules photosensibles du capteur 21, puis la lecture de l'image par l'électronique embarquée de la caméra 12, 13, avec mise progressive de l'image, sous forme numérique, dans une mémoire tampon embarquée dans la caméra. Les capteurs 21 étant bloqués pendant leur lecture, les caméras sont momentanément inutilisables et par conséquent mises en attente. a.3) Mémorisation du couple d'images stéréoscopiques structurées G-35 D : une fois la mise en mémoire tampon des images G et D achevée, celles-ci peuvent être transmises à l'UC du système 11 N003 B007 FR_Visu_tps_réel_TQD où elles sont mémorisées pour traitement (voir les phases de rectification et de reconstruction décrites ci-après). Un couple d'images stéréoscopique structurées G-D du visage 2 de la statue 1 est illustré sur la figure 13. Cette figure est fournie à titre illustratif, les images G-D n'étant pas nécessairement affichées sur l'interface graphique de l'ordinateur 8. a.4) Extinction du projecteur 10. Cette extinction peut être commandée immédiatement après l'acquisition des images structurées G et D, par exemple pendant la lecture des images, ou pendant leur mémorisation par l'UC du système 11. a.5) Acquisition par les caméras 12, 13 d'un second couple d'images stéréoscopiques bidimensionnelles de la surface 2 non éclairée (et non pointée). Cette opération est similaire à l'opération a.2), à la différence que les images ne sont pas structurées, le motif n'ayant pas été projeté sur la surface 2. Les images de la surface 2 non éclairée sont effectuées en lumière naturelle (ambiante), éventuellement agrémentée d'une lumière blanche produite par exemple par des diodes électroluminescentes (LED) équipant le scanner 4. Ainsi, selon un mode particulier de réalisation, le scanner 4 est équipé en façade de deux séries circulaires de LED entourant les optiques 18 des caméras 12, 13 et orientées suivant les axes 19, 20 de celles-ci. Ces images sont dites texturées, car en l'absence du motif projeté elles contiennent la texture naturelle de la surface 2. L'image gauche est notée G' ; l'image droite D'. Les images G' et D' sont lues par l'électronique interne des caméras 12, 13 et stockées en mémoire tampon. Pendant ce temps, les caméras 12, 13 sont mises en attente. a.6) Mémorisation des images texturées G'-D'. Une fois achevée la mise en mémoire tampon des images G' et D', celles-ci sont transmises à l'UC du système 11 où elles sont mémorisées pour traitement avec le couple d'images stéréoscopiques structurées G-D. Un couple d'images stéréoscopique texturées G'-D' du visage 2 de la statue 1 est illustré sur la figure 14. (NB. pour respecter les prescriptions formelles en matière de dessins de brevets, les images représentées sur la figure 14 ont été filtrées et converties N003 B007 FR_Visu_tps_réel_TQD pour un affichage en deux couleurs, d'où leur aspect granuleux à ne pas confondre avec des tavelures). a.6) Mémorisation des images texturées G'-D'. Une fois achevée la mise en mémoire tampon des images G' et D', celles-ci sont transmises à l'UC du système 11 où elles sont mémorisées pour traitement avec le couple d'images stéréoscopiques structurées G-D. Un couple d'images stéréoscopique texturées G'-D' du visage 2 de la statue 1 est illustré sur la figure 14. (NB. pour respecter les prescriptions formelles en matière de dessins de brevets, les images représentées sur la figure 14 ont été filtrées et converties pour un affichage en deux couleurs, d'où leur aspect granuleux à ne pas confondre avec des tavelures). Cette procédure d'acquisition fournit par conséquent un quadruplet d'images, ci-après dénommé « quad », composé des deux paires 15 d'images stéréoscopiques : une paire d'images structurées G-D et une paire d'images texturées G'-D'. La procédure, c'est-à-dire la succession des opérations a.1) à a.6), peut être répétée autant que de besoin, afin d'obtenir une série de quads. On peut, pendant cette répétition, balayer la surface 2 pour la 20 couvrir en totalité et en faire des prises de vue en rafale. Afin d'accroître la densité de la reconstruction (voir ci-après), il est en outre préférable d'effectuer plusieurs acquisitions depuis un même point de vue, ou depuis des points de vue proches afin d'obtenir un chevauchement des zones de la surface 2 couvertes par les caméras 25 12, 13. Afin d'éviter la dérive du scanner 4 hors du champ du projecteur 10 pendant le balayage de la surface 2, les pointeurs 24 peuvent être activés en permanence û à l'exception des séquences de prises de vues, à défaut de quoi les images seraient inexploitables û de sorte à 30 permettre à l'utilisateur de maintenir relativement constante la distance entre le scanner 4 et la surface 2. Compte tenu des vitesses d'obturation des caméras 12, 13 (de l'ordre de quelques millisecondes), l'oeil ne perçoit pas l'extinction des lasers 24 pendant la prise de vue, l'utilisateur ayant l'illusion d'un pointage continu. N003 B007 FR_Visu_tps_réel_TQD Compte tenu de la précision des CCD et de la capacité mémoire du système 1, des essais concluants ont pu être conduits avec les paramètres suivants : - Fréquence de l'acquisition (1 quad) : 4 Hz (soit 4 quads/s) - Vitesse d'obturation (de prise de vue) : environ 5 ms Temps de lecture pour chaque image : 28 à 50 ms Taille capteur CCD : 1024x768 pixels - Niveaux de gris codés sur 8 bits (0-255) - Espace mémoire requis pour chaque image : 0,7 Mo Rectification Les images brutes de chaque quad, obtenues par la procédure d'acquisition décrite ci-dessus, sont affectées de défauts, notamment une distorsion et une absence de parallélisme des droites épipolaires entre images d'une même paire stéréoscopique. Aussi, avant de soumettre les images au traitement visant à permettre la reconstruction du modèle tridimensionnel de la surface 2, est-il préférable d'appliquer aux images un prétraitement comprenant notamment les opérations suivantes, programmées sous forme d'instructions dans l'UC de l'ordinateur 8 pour leur mise en oeuvre : - Rectification de la distorsion (par exemple au moyen d'algorithmes connus), visant à redresser les lignes droites qui apparaissent courbées sur les images ; Rectification épipolaire, qui permet, pour une paire d'images stéréoscopiques, de faire correspondre à tout point de l'image gauche une ligne horizontale de l'image droite, et réciproquement. Comme la rectification de la distorsion, la rectification épipolaire peut être conduite à l'aide d'algorithmes classiques. L'homme du métier pourra se référer aux documents mentionnés en introduction. Reconstruction L'étape de reconstruction vise à calculer, à partir de la paire d'images stéréoscopiques structurées G-D, un nuage de points tridimensionnels de la surface à numériser. La reconstruction comprend une mise en correspondance (MEC) comportant plusieurs opérations programmée sous forme d'instructions N003 B007 FR_Visu_tps_réel_TQD dans l'UC de l'ordinateur 8 pour leur mise en oeuvre, suivie d'une triangulation, également programmée dans l'UC. La MEC consiste à apparier des points de la paire d'images structurées G-D. Plus précisément, la MEC consiste à effectuer pour chaque pixel PG de coordonnées (i,j) de l'image G une corrélation locale consistant à : Sélectionner dans l'image G un voisinage, appelé fenêtre de corrélation, centré sur le pixel PG ; Comparer la fenêtre de corrélation du pixel PG avec une série de fenêtres de corrélation de même taille (dans les méthodes dites de Block matching) ou de taille différente centré sur un pixel PD de coordonnées (k,l) de l'image D, situé sur la ligne de l'image D contenant la droite épipolaire correspondant au pixel PG ; à chaque fenêtre de corrélation de l'image D correspond une mesure (ou score) de corrélation ; Sélectionner dans cette série la fenêtre de corrélation qui maximise le score de corrélation û ou le minimise, selon que l'on utilise des critères de similarité ou de dissimilarité. Le pixel PD situé au centre de cette fenêtre est alors apparié au pixel PG, les pixels PG et PD étant dénommés homologues ou stéréo- correspondants. Ces opérations sont répétées pour l'ensemble des pixels de l'image G. Il se peut que pour certains pixels, dans certaines zones de l'image où l'information est insuffisante (zones d'ambiguïté), la MEC échoue, c'est-à-dire qu'il est impossible d'identifier pour un pixel donné de l'image G un stéréocorrespondant dans l'image G. Dans ce cas le pixel est abandonné. La MEC produit par conséquent un ensemble de doublets de pixels appariés PG et PD appariés pour le couple d'images G-D. Cette MEC est relativement robuste. Elle l'est d'autant plus que le motif secondaire 30, pseudo-aléatoire, permet de minimiser les erreurs d'appariement. Un calcul de triangulation permet alors, pour toute paire de stéréocorrespondants PG et PD, de calculer les coordonnées d'un point de la surface 2 dont les projections sur les images G et D sont situées respectivement dans les pixels PG et PD. N003 B007 FR_Visu_tps_réel_TQD A partir de l'ensemble des coordonnées ainsi calculées, on reconstruit un nuage de points qui forme une première ébauche, éparse, du modèle tridimensionnel de la surface à numériser. Un tel nuage de points est représenté sur la figure 7. Ce nuage résulte de la succession de la MEC et de la triangulation appliquées au couple d'images G-D de la figure 5. Le nuage ne comprend aucune information de texture de la surface numérisée, chaque point du nuage étant de couleur noire. En variante, on peut associer à chacun des points du nuage une information de texture grâce aux images G'-D' texturées. A cet effet, pour chaque pixel PG de l'image G disposant d'un stéréo-correspondant dans l'image D, on extrait de l'image G' l'information de texture du pixel de mêmes coordonnées (i,j) û c'est-à-dire en pratique la couleur du pixel. Cette couleur est identifiée par un niveau de gris (entre 0 et 255 pour un codage sur 8 bits), mais cette information pourrait par exemple être codée sur 24 bits au lieu de 8, ce qui permettrait de disposer pour chaque pixel de l'image texturée d'une approximation de la couleur réelle de la texture de la surface 2. On attribue alors à chaque point du nuage correspondant au couple de stéréocorrespondants PG et PD l'information de couleur extraite de l'image D, de sorte que le nuage de points est reconstruit en couleur. La MEC et la triangulation sont des opérations simples d'un point de vue calculatoire, et requièrent par conséquent une allocation de processeur en temps et en mémoire relativement réduits (de l'ordre de quelques dizaines de millisecondes pour environ 50 000 points). Il est donc possible d'afficher le nuage de points reconstruits dans un délai bref après acquisition, de sorte à permettre à l'utilisateur de contrôler la densité de reconstruction, et surtout de détecter les zones occultées. Recalage La reconstruction étant réitérée pour plusieurs prises de vues successives de la surface 2, on obtient une série de nuages de points épars sans lien entre eux, décalés dans l'espace, qu'il est donc nécessaire de recaler, d'abord pour permettre un affichage réaliste de la surface 2 en cours de numérisation, ensuite pour fusionner les N003 B007 FR_Visu_tps_réeLTQD nuages en vue d'initier la procédure de maillage nécessaire à la reconstruction du modèle tridimensionnel de la surface 2. Les opérations du recalage sont programmées sous forme d'instructions dans l'UC de l'ordinateur 8 pour leur mise en oeuvre. Du point de vue des caméras 12, 13 la surface 2 scannée a évolué dans l'espace, entre deux prises de vues successives, dans le repère lié au scanner 4, en pratique un repère cartésien dont le centre est confondu avec le foyer image de la caméra gauche 12, et dont les axes sont respectivement : x : la droite parallèle aux horizontales du capteur 21 de la caméra gauche 12 passant par son foyer image, situé au centre du capteur 21 ; y : la droite parallèle aux verticales du capteur 21 de la caméra gauche 12 et passant par son foyer image ; z : l'axe optique 19 de la caméra gauche 12. Le recalage vise à évaluer les déplacements du scanner 12 entre les deux prises de vues, puis à appliquer aux nuages de points issus de ces prises de vues des transformations (appelées « poses » et constituée chacune de la combinaison d'une rotation et d'une translation) correspondant à ces déplacements, afin d'aligner les repères de chaque nuage de points. On utilise à cet effet les données issues de la centrale inertielle 15 du scanner 4, laquelle, nous l'avons vu, fournit à tout instant le Nord magnétique et la verticale et se comporte par conséquent comme une boussole tridimensionnelle ; des nuages de points eux-mêmes. Calcul de la rotation On se sert pour le calcul de la rotation des données issues de la centrale inertielle 15. Soit une paire de nuages de points successifs (N;, Ni+1), ayant permis de reconstruire deux nuages de points respectifs. On souhaite calculer la rotation relative du scanner 4 entre Ni et N;+1, afin d'appliquer l'inverse de cette rotation au second nuage pour le recaler en rotation sur le premier. Les données de la centrale inertielle 15 permettent de calculer : N003 B007 FR_Visu_tps_réel_TQD la matrice de rotation absolue, notée Ri, matrice de transformation du référentiel associé au scanner 4 vers le référentiel terrestre à l'itération i, la matrice de rotation absolue, notée Ri+1, matrice de transformation du référentiel associé au scanner 4 vers le référentiel terrestre à l'itération i+1. La matrice de rotation relative entre le nuage Ni et le nuage Ni+1, notée R+1 est égale au produit de la matrice Ri par la matrice inverse de la matrice Ri+1 Rl+l = Ri-+11 .Ri On applique l'inverse de cette rotation aux points du nuage N;+1 pour le recaler en rotation sur le nuage Ni. Calcul de la translation 15 Pour chaque nuage Ni et N1+1 on détermine les coordonnées d'au moins un point caractéristique dont les coordonnées vont servir de base à la définition de la composante de translation de la pose. Suivant un mode préféré de réalisation, le point caractéristique du nuage est le barycentre de l'ensemble des points du nuage. 20 On calcule ainsi les coordonnées des barycentres Bi et B1+1 des nuages Ni et N1+1, puis on calcule la distance séparant Bi et B1+1 une fois les nuages Ni et N1+1 recalés en rotation. Cette distance est décrétée égale à la composante de translation de la pose. Suivant un mode de réalisation alternatif, plutôt que de calculer le 25 barycentre des nuages de points, on détecte dans les nuages Ni et N1+1 une ou plusieurs zones locales de points similaires, c'est-à-dire des zones (appelées « patches ») qui, à volume égal, présentent une structure tridimensionnelle voisine. On détermine ensuite la valeur médiane des distances entre les 30 points de deux patches correspondants, que l'on décrète égale à la composante de translation de la pose. Une fois déterminée la translation, il suffit ensuite de calculer la translation inverse, puis d'appliquer cette translation inverse au deuxième nuage N1+1 (déjà recalé angulairement par rapport au premier N003 B007 FR_Visu_tps_réel_TQD10 nuage Ni) pour le recaler sur le premier. Concrètement, la matrice de translation issue du calcul est appliquée à chaque point du nuage N;+1. On a représenté sur la figure 8 les nuages ainsi recalés. Les calculs des composantes de rotation et de translation étant relativement simples, ils requièrent par conséquent, comme la MEC, une allocation de processeur en temps et en mémoire relativement réduite, qui permet d'afficher rapidement les nuages recalés, dans un temps suffisamment bref pour permettre une visualisation par l'utilisateur au cours de la numérisation. En pratique, le recalage peut être réalisé au fur et à mesure de la numérisation, chaque nuage étant recalé par rapport au précédent. On peut ainsi afficher une ébauche du modèle tridimensionnel, qui évolue à mesure du balayage effectué au moyen du scanner 4. Cet affichage permet à l'utilisateur de diriger le scanner 4 vers les zones occultées ou insuffisamment dense, y pour compléter la reconstruction. Construction du modèle La construction du modèle numérique de la surface 2 est réalisée à partir des nuages de points issus du recalage. De nombreuses zones de l'objet ayant été capturées plusieurs fois (il existe des zones de recouvrement entre les vues successives), le nuage de points final, obtenu par agrégation des nuages de points issus du recalage, présente une densité élevée. On peut alors effectuer à partir des points du nuage un maillage, permettant d'obtenir une deuxième ébauche de modèle constituée de triangles jointifs, puis un calcul d'interpolation permettant à partir de cette deuxième ébauche de reconstruire un véritable modèle surfacique fondé sur des fonctions mathématiques continues, compatible avec les systèmes de CAO. N003 B007 FR_Visu_tps_réel_TQD REVENDICATIONS1. Procédé de construction d'un modèle numérique tridimensionnel d'une surface (2) physique, comportant une phase d'acquisition, une phase de reconstruction et une phase de recalage, La phase d'acquisition comprenant la répétition des opérations suivantes : Projection sur la surface d'un motif lumineux structuré, Acquisition et mémorisation d'au moins un couple d'images stéréoscopiques bidimensionnelles (G-D) de la surface ainsi éclairée, au moyen d'un appareil (4) muni d'au moins une paire de capteurs optiques (21) ; La phase de construction comprenant la répétition des opérations suivantes pour chaque couple d'images stéréoscopiques : Appariement d'une pluralité de points homologues dans le couple d'images stéréoscopiques (G-D), Calcul des coordonnées spatiales des points de la surface correspondant aux homologues appariés, Rassemblement des points en un nuage de points, ce procédé étant caractérisé en ce que la phase de recalage comprend les opérations suivantes, pour au moins un premier nuage de points (Ni) et un deuxième nuage de points (Ni+1) : A partir des données fournies par une centrale inertielle (15) embarquée dans l'appareil (4), calculer une composante de rotation relative de l'appareil (4) entre ses positions aux instants des acquisitions des couples d'images stéréoscopiques (G-D) associés aux nuages de points (Ni ; Ni+1) ; Déterminer les coordonnées d'au moins un point caractéristique de chaque nuage de points (Ni ; Ni+1) ; A partir des coordonnées des points caractéristiques des nuages (Ni ; Ni+1), calculer une composante de translation entre le premier nuage de points (Ni) et le deuxième nuage de points (Ni+1) ; Appliquer au deuxième nuage de points (Ni+1) une transformation comprenant la composante de rotation et la composante de translation. N003 B007 FR_Visu_tps_réel_TQD 2. Procédé selon la revendication 1, dans lequel le point caractéristique est le barycentre du nuage de points (Ni ;N;+1). 3. Procédé selon la revendication 2, dans lequel la composante de translation est la distance entre les barycentres des nuages de points (Ni ; N;+1). 4. Procédé selon la revendication 1, dans lequel les points caractéristiques sont les points de zones localisées décrétées similaires dans les deux nuages de points (Ni ;N;+1). 5. Procédé selon la revendication 4, dans lequel la composante de translation est la médiane des distances entre les points des zones similaires. 6. Procédé selon l'une des revendications 1 à 5, qui comprend une étape d'affichage des nuages de points (Ni ; Ni+1) recalés sur une interface graphique. 7. Produit programme d'ordinateur comprenant des instructions pour la mise en oeuvre des opérations des phases de reconstruction et de recalage du procédé selon l'une des revendications 1 à 6. 8. Système (1) de numérisation sans contact comprenant un système (11) de stéréovision et une unité centrale de traitement sur laquelle est implémenté le programme selon la revendication 7. N003 B007 FR_Visu_tps_réel_TQD