Création de modèles précis de plantes à partir de scan 3D Aufrere Pierre April 11, 2011 Table des matières 1 Introduction 2 2 État de l'art 3 3 Algorithme implanté 4 3.1 Base de quatre points coplanaires..................... 4 3.1.1 Élément invariant d'une base................... 5 3.2 Correspondance de bases.......................... 6 3.3 La meilleure transformation avec RANSAC............... 6 3.3.1 Le principe............................. 6 3.3.2 Utilisation dans 4PCS....................... 7 4 Implantation & Choix 7 4.1 Base coplanaire............................... 8 4.2 Invariants.................................. 8 4.2.1 Tri des points............................ 8 4.2.2 Calculs............................... 8 4.3 Correspondance de bases.......................... 10 5 Résultats & conclusion 10 6 Bibliographie 11 7 Remerciement 11 1
1 Introduction An de réaliser des modèles 3D de plante pour ensuite les étudier, les biologistes eectuent des scans 3D de plante. Ces scans consistent en des nuages de points dans l'espace dont l'acquisition a été faite avec des lasers (gure 2). Cependant pour obtenir un modèle complet, il faut prendre plusieurs scans d'une même plante sous diérents angles avec un certain chevauchement entre les diérentes prises de vue. Ainsi à la n du processus d'acquisition, on obtient plusieurs ensembles qui ont certains des points en commun. L'étape suivante consiste à reconstituer la plante à l'aide des diérents points de vu capturés. Pour cela, il faut positionner les scans les uns par rapport aux autres, i.e. les aligner en fonction des points communs qu'ils possèdent. Cette opération est appelée recalage (registration en Anglais). Ce problème présente plusieurs dicultés : - Les scans représentent des données très lourdes (jusqu'à 1,5 millions de points). Ce qui rend les techniques habituelles diciles à utiliser. - Les modèles 3D obtenus sont bruités. Le scanner eectue des erreurs de mesure et induit un "vent" sur les scans (gure 1). En eet regardé sous le bon angle de vu, il apparait un étalement des points dans la direction de projection des rayons de mesure. Figure 1 Nuage de points pour un pommier, entouré en rouge, on voit clairement apparaitre l'eet de trainée 2
Figure 2 Principe d'un scanner 3D pour prendre plusieurs angles de vue Ce travail à été réalisé au sein de l'équipe Morphéo de l'inria Rhône-Alpes. Il s'inscrit dans un projet plus large consistant à créer des modèles 3D de plantes précis pour pouvoir e ectuer des mesures dessus (volume de bois, surface foliaire totale, distribution spatiale des feuilles, etc). Une fois les scans alignés, il faut constituer un maillage (relier les points entre eux), puis identi er les di érents éléments constituants la plante. Pour plus d'informations, voir la page du sujet.[6] Mon travail consistait à trouver un algorithme a priori bon pour aligner les scans, à l'implanter puis à analyser les résultats. On présente donc ici l'algorithme utilisé et les résulats obtenus. Cependant ces derniers ne sont que peu nombreux et ne prennent pas en compte tout l'algorithme. En e et j'ai e ectué quelque mauvais choix et eu des di cultés sur certaines parties de l'algorithme di cile à réaliser. Le retard pris m'a ensuite été très di cile à rattraper. 2 État de l'art Un des algorithmes les plus utilisés est l'algorithme de l'iterative Closest Point. Le concept est le suivant : Soit deux ensembles de point P et Q que l'on cherche à aligner. - Sélection de plusieurs points dans P. - Trouver des correspondants de ces points dans l'ensemble Q. - Associer un point à chacune des corespondances. - Rejeter les correspondances selon un critère dé ni. - Créer une mesure métrique basée sur les paires de points. - Minimiser cette erreur Soit un sous-ensemble de P point (ak ). On cherche à associer un point correspondant à ak dans Q, bk. Cela peut être réaliser en cherchant le point le plus proche de ak dans Q. On donne ensuite un point fk à la correspondance ak bk. 3
Il faut ensuite rejeter toutes les correspondances a k b k selon un certain critère sur le poids associé à l'étape précédente. Pour chacune des correspondances, il va falloir trouver la meilleure transformation amenant a k en b k. C'est l'objectif de la dénition d'une mesure e. On cherche la transformation T envoyant a k en b k minimisant la mesure e. Pour eectuer cette dernière étape, il est possible d'utiliser l'algorithme RANSAC décrit en section 3.3.1. Pour chacune de ces étapes, il existe plusieurs possibilité discutées dans [7]. Cette méthode n'a pas été retenue car elle présentait a priori quelques défauts : Pour avoir de bons résultats, il faut un nombre de points relativement important, ce qui pourrait être très coûteux sur les données que nous avons. La spécicité des scans de plantes se traduit pas la présence de certains points très proches les uns des autres qui doivent être discriminés. Typiquement à la base d'une branche ou quand deux branches nes sont proches l'une de l'autre. ICP est sensible au bruit. C'est pourquoi une autre méthode a été choisie : les ensembles conrrespondant selon 4 points (Four Points Congruent sets en Anglais), 4PCS. [1]. L'algorithme est présenté dans la section suivante, ainsi que l'implantation qui en a été faite, les problèmes rencontrés, les résultats obtenus et leurs interprétations. 3 Algorithme implanté L'algorithme 4PCS se base sur le principe suivant : Soit deux ensembles de points à recaler P & Q - La première étape consiste à trouver une base B de 4 points coplanaires dans P - Chercher l'ensemble U des bases correspondantes à B dans Q - Chercher les transformations alignant B et les bases de l'ensemble U - Sélectionner la meilleure transformation à l'aide de RANSAC Il s'agit donc de trouver un plan dans l'ensemble P et de trouver la transformation qui aligne ce plan avec un plan ressemblant dans l'ensemble Q. En supposant que tous les autres points de l'ensemble Q qui correspondent ont subit la même transformation. Les sections suivantes précisent le vocabulaire et en quoi consiste chacune des étapes. Pour simplier, on considère que l'on cherche à aligner deux ensembles de points P (source) et Q (destination). 3.1 Base de quatre points coplanaires Une base coplanaire d'un ensemble est un ensemble de quatre points appartenant à P et coplanaires. En pratique, il est très dicile de trouver une base tout à fait coplanaire. C'est pourquoi on sélectionne un critère ɛ pour déterminer si une base est ɛ-coplanaire. Voir la section Simplications & Choix pour les détails d'implantation et la prise en compte d'ɛ. Pour choisir les points de la base, on procède aléatoirement. Il existe cependant un critère introduit par l'article pour le choix des bases : le paramètre de chevauchement. Celui-ci doit être une fraction estimant le pourcentage de chevauchement (i.e. de points communs) entre les deux ensembles de points. Une fois ce paramètre xé, on sélectionne trois point aléatoirement. Le quatrième est cherché à distance d qui vérie correpondant à d = maxoverlap d max où overlap est la valeur du paramètre de chevauchement et d max la distance maximale entre deux points de l'ensemble. En eet l'article mentionne qu'il est important de sélectionner une base susament 4
grande (en terme de distance) pour que l'algorithme soit le moins sensible possible au bruit. Mais choisir une base trop grande implique un mauvais alignement. Une fois cette base choisie, il faut chercher des bases correspondantes dans l'ensemble de points Q. Pour cela nous utilisons : - Des isométries - Les invariants d'une base Nous allons chercher la meilleure isométrie (au sens des moindres carrés) qui aligne deux bases avec les mêmes invariants (à un critère δ près). L'article d'origine se base sur un algorithme utilisant des bases de 3 points. En eet 3 points dans l'espace sont toujours coplanaires et les calculs eectués dans RANSAC (voir 3.3.1) sont simpliés si les points sont exactement coplanaires. Cependant, le fait de n'avoir que trois points oblige à vérier une fois l'alignement fait, que les points soient eectivement alignés comme il faut. (voir gure 3). Figure 3 Mauvais alignement avec trois points [1] Le fait de chercher l'alignement avec des bases de quatre points limite ce genre de problème. Cela permet aussi d'améliorer la précision des correspondances. 3.1.1 Élément invariant d'une base Soit une base B de P. Les invariants de cette base sont deux rapports r 1 et r 2 qui ne sont pas modiés par l'isométrie. Ces deux invariants ont la particularité d'être liés à la géométrie de la base, il est donc particulièrement intéressant de les choisir comme critères d'alignement : cela permet d'aligner P et Q en fonction de deux bases qui ont une probabilité forte d'être semblable. Soit le point e intersection des deux segments ab et cd dénis par les quatre points de la base B (il est toujours possible de choisir les points de telle sorte que ces segments existent). On dénit les rapports de la façon suivante : 5
Figure 4 Les invariants d'une base coplanaire [1] Ces deux rapports vont ensuite être utilisés pour déterminer si la base B et une base de Q se correspondent. 3.2 Correspondance de bases La correspondance de bases consiste à choisir un ensemble de bases correspondant potentiellement à la base B de P. Une fois cet ensemble de bases déterminer, on choisit la meilleure base à l'algorithme RANSAC. Le point cruciale de l'algorithme 4PCS consiste en l'utilisation d'une structure en arbre pour la recherche des bases qui correspondent potentiellement à B. [2][3] 3.3 La meilleure transformation avec RANSAC 3.3.1 Le principe L'algorithme RANSAC (RANdom Sample Consensus) [5] est un des algorithmes les plus utilisés pour trouver la meilleure transformation alignant un ensemble de point et un modèle (gure 5). Cette transformation est recherché comme la composition d'une rotation, d'une transaltion et d'une mise à l'échelle. Le plus dicile étant de trouver la bonne rotation. 6
(a) Nuage source (b) Résultat après application de la transformation trouvée par RANSAC Figure 5 Un exemple d'application 2D de RANSAC : alignement d'un modèle de droite à un nuage de point [10] Pour trouver une telle transformation T, il sut théoriquement de trois points. Mais les calculs informatiques sur des réels étant impossibles, des erreurs sont commises et il faut plus de points pour trouver T. Il faut également déterminer un critère pour séparer les bonnes et les mauvaises transformations. RANSAC le fait en considérant pour une transformation des types de points diérents : les points correspondants au modèle et les points aberrants par rapport au modèle. RANSAC va donc tester aléatoirement un certain ensemble de transformation envoyant la source vers la destination. Pour chacune de ces transformations, l'algorithme compte le nombre de correspondants trouvés et le nombre de points aberrants. La meilleure transformation renvoyée est celle ayant le plus grand nombre de point correspondant. Le processus de sélection d'une transformation parmi un ensemble tiré au hasard est répété plusieurs fois (200 à 500 fois) pour obtenir asymptotiquement un meilleur résultat. 3.3.2 Utilisation dans 4PCS Dans le cas de 4PCS, RANSAC est appliqué pour déterminer la meilleure base dans Q correspondante à celle (B) choisie au tout début de l'algorithme dans P. On cherche la meilleure transformation entre toutes les bases sélectionnées et B. Est gardée celle qui est la plus consitante selon RANSAC. Toutes les étapes de 4PCS depuis la sélection de la base est répété plusieurs fois, toujours pour obtenir un meilleur résultat asymptotiquement. 4 Implantation & Choix Dans le cadre du TER, j'ai pu implanter l'algorithme 4PCS jsuqu'à l'étape de calcul des invariants d'une base. Je n'ai pas pu implanter la recherche de base correspondante ni le calcul de la meilleure transformation. Tout mon travail était basé sur le code du chargeur de chier (tview) réalisé par Marc Aubert. Je présente dans cette section les résultats obtenus (gure 6a, 6b, 7). 7
4.1 Base coplanaire Il m'a d'abord fallu trouver une solution pour déterminer une base coplanaire dans le premier ensemble (gure 6a et 6b). J'ai pour cela procédé, comme le suggérait l'article, aléatoirement. L'algorithme écrit pour cette partie consiste donc à selectionner trois points diérents aléatoirement puis un trouver un quatrième point, toujours aléatoirement, coplanaire aux trois précédents. Pour déterminer si quatre points sont coplanaires, j'utilise le volume du tétraèdre engendré par les 4 points de la base. Pour prendre en compte le critère ɛ, une base est considérée coplanaire si le volume du tétraèdre est ɛ. 4.2 Invariants Cette partie est celle qui m'a posé le plus de problème. J'ai longtemps tourné en rond sur diérentes solutions envisagées, il m'a ensuite été dicile de debugger la solution retenue. Celle actuellement écrite est acceptable, cependant, si au départ les bases trouvées semblaient très bonnes, elles le sont moins désormais et il n'y a souvent que trois points qui sont sélectionnés au lieu de quatre. Ce qui fait perdre son intérêt à la technique 4PCS. Une première solution envisagée pour calculer les rapports était de ne pas prendre deux rapports invariants mais un seul qui aurait été le rayon de la sphère circonscrite aux points de la base. Cependant cette solution n'est pas intéressante car on perd toute l'information sur la forme de la base. C'est pourquoi la solution retenue conserve les deux rapports invariants et est implantée de la façon suivante : - Tri des points de la base dans le bon ordre. - Calcul des invariants. 4.2.1 Tri des points Le but du tri préalable des points est de pouvoir sélectionner facilement les segments de la base de telle sorte qu'ils s'intersectent (si la base est coplanaire). Pour eectuer ce tri, j'ai d'abord remarqué qu'il était très facile de trouver les bons points s'ils étaient triés dans l'ordre de l'enveloppe convexe dans la base. il sut alors de choisir comme segment p 0 p 2 et p 1 p 3. J'eectue donc d'abord un changement de base (Selon le procédé de Gram-Schmidt [9]) pour avoir les coordonnées de chaque point dans la base coplanaire. Puis je trie le tableau selon l'algorithme du Graahm scan [8]. 4.2.2 Calculs Pour le calcul des invariants, il faut ensuite trouver le point e tel que montré précédemment. Je recherche donc la droite la plus courte entre les deux segments [4] (gure 7 et 6a). Puis je prends le milieu de ce segment (En vert gure 7). Les résultats donnés par cet algorithme ne sont pas toujours très bons et dépendent encore beaucoup de l'exécution. Il faut donc encore debugger cette partie. 8
(a) (b) Figure 6 Résultat d'obtention d'une base 9
Figure 7 Résultat d'obtention d'une base. En bleu, les segments identiés pour le calcul des invariants. En vert, le point e servant au calcul des rapports r 1 et r 2 Les gure 6a, 6b, 7 montre le genre de base que l'on obtient pour l'instant. On constate qu'elles peuvent être très bonnes : celle de l'image 7 est d'ailleur pratiquement coplanaire. En revanche, la droite de plus courte distance est toujours mal placée. 4.3 Correspondance de bases J'ai entamé le début primitif de la correspondance de bases. Toute fois sans utiliser la structure complexe proposée par l'article. Je suis simplement parti pour chercher dans toute les bases celles qui pourraient correspondre, c'est-à-dire celle dont les rapports r 1 et r 2 sont à une distance maximale d'un critère δ. 5 Résultats & conclusion Les résultats sont toutes fois assez encourageants jusqu'à maintenant. Les bases trouvées semblent tout à fait correcte et même parfois très bonnes pour aligner les diérents scans. Cependant de bons résultats s'obtiennent uniquement si le paramètre de chevauchement est correctement xé. En eet, le choix de ce paramètre est beaucoup plus critique pour trouver une base, que la valeur d'ɛ pour déterminer si une 10
base est coplanaire ou non. Or l'article source ne donne pas de méthode systématique pour trouver ce paramètre. Cependant sur les scans Konica (un des scanner 3D dont on nous avait fourni des scans), la valeur 50% du paramètre semble un bon choix. il apparaît dans les expérimentations que si le paramètre de chevauchement est trop grand, alors les bases trouvées prennent parfois en compte des points qui sont du bruit, induisant indubitablement une erreur dans le recalage. Malgré tout, il semble donc que la poursuite de l'implantation de cet algorithme soit une bonne piste pour recaler correstement des scans de plantes. Il semble bien adapté au problème. Et si toutes fois des problèmes apparaissaient, sa modication en conséquence serait peut-être plus aisée que d'autre algorithmes. En ce qui concerne le paramètre de chevauchement, le processus étant systématique, peut-être qu'une étude en fonction de la machine permettrait de déterminer, en fonction du modèle de scanner, la bonne valeur du paramètre à utiliser. 6 Bibliographie Références [1] D. Aiger, N. J. Mitra, and D. Cohen-Or. 4-points congruent sets for robust surface registration. ACM Transactions on Graphics, 27(3) :#85, 110, 2008. [2] Arya, Mount, Netanyahu, Silverman, and Wu. An optimal algorithm for approximate nearest neighbor searching xed dimensions. JACM : Journal of the ACM, 45, 1998. [3] Sunil Arya, David M. Mount, Nathan S. Netanyahu, Ruth Silverman, and Angela Y. Wu. An optimal algorithm for approximate nearest neighbor searching in xed dimensions. 2008. [4] Paul Bourke. The shortest line between two lines in 3d, 1998. [5] Berthold K. P. Horn. Closed-form solution of absolute orientation using unit quaternions. J. Opt. Soc. Am. A, 4(4) :629642, Apr 1987. [6] INRIA. Plantscan3d. [7] Szymon Rusinkiewicz and Marc Levoy. Ecient variants of the icp algorithm. jun 2001. [8] Wikipedia. Graham scan. [9] Wikipedia. Gram-schmidt process. [10] Wikipedia. Ransac. 7 Remerciement Merci à Franck Hetroy et Dobrina Boltcheva pour leur aide et leur accueil. Je remercie également toute l'équipe Morphéo et l'inria pour leur accueil. 11