• Aucun résultat trouvé

Afin d’utiliser l’approche structurée de décomposition harmonique, nous allons regrouper les voxels de manière à ce que chacun des groupes soit le moins influencé possible par les mouve- ments des animaux. Idéalement, nous obtiendrions des groupes de voxels connexes qui corres- pondraient aux parties anatomiques des animaux.

L’intérêt de cette agrégation de voxels est de faire en sorte que l’analyse harmonique soit moins influencée par les diverses déformations du modèle des animaux lorsqu’ils bougent. La forme de chaque groupe aura des chances de ne pas être affectée par le mouvement d’un ou des membres de l’animal. Comme la figure3.4le présente en deux dimensions, si le personange bouge un bras, la forme des autres groupes change peu. Ainsi, notre analyse harmonique de tous les autres groupes donnera des résultats invariables à ce mouvement de patte.

Figure 3.4 – Regroupement peu affecté par les mouvements

3.3.1 Méthode de propagation des voxels

Afin d’obtenir une segmentation de l’ensemble des voxels d’un modèle en groupes que l’on décomposera dans l’approche structurée, je suggère d’utiliser une méthode de propagation des voxels. La méthode correspond à prendre le voxel le plus près du centre de masse de l’objet et lui ajouter ses voisins immédiats, de manière itérative jusqu’à ce qu’on en ait ajouté le bon

nombre pour remplir ce premier groupe. Nous déterminons ce nombre de façon à obtenir le nombre de groupes que l’on veut avoir (par exemple, si nous choisissons d’analyser 20 groupes par animaux et qu’un modèle contient 2000 voxels, nous en placerons 100 par groupe). Ensuite, nous créons un nouveau groupe avec le prochain voxel voisin et nous continuons le même processus jusqu’à ce que nous ayons traité tous les voxels du modèle. À chaque création d’un nouveau groupe, nous notons aussi à quelle distance (en nombre de groupes) il se retrouve du premier groupe de voxels. Cette distance correspond au nombre de groupes qui ont été créés entre lui et le groupe qui contient le voxel qui est le plus près du centre de masse.

La figure 3.5 présente l’allure du résultat de la propagation de pixels sur une image en deux dimensions à chaque étape de création d’un nouveau groupe.

Figure 3.5 – Méthode de regroupement de pixels utilisant la propagation des pixels

#1 Ensemble original #2 #3 #4

#5 #6 #7 #8

#9 #10 #11 #12

La propagation débute du pixel qui se trouve au centre de masse de l’objet et forme le premier groupe comme présenté à l’image #2.

Les images #3 à #11 montrent le résultat à chaque étape de création d’un nouveau groupe. L’image #12 démontre la valeur de la distance en nombre de groupe(s) de voxels du centre

de masse. Le groupe rose du bas est à deux groupes du centre et le groupe orange en haut est à quatre groupes du centre.

qui servent à conserver les voxels à traiter par l’algorithme. Nous nommons une liste «globale» et l’autre «courante». L’approche débute par la recherche du voxel étant le plus près du centre de masse de l’objet à identifier. Ce sera le premier voxel à traiter et l’algorithme l’assigne à la liste courante. Une variable conserve le numéro du groupe que l’algorithme est en train de traiter, en commençant par le groupe numéro 1.

L’algorithme traite ensuite chaque élément de la liste courante, en débutant par le premier, jusqu’à ce qu’elle soit vide ou que l’on ait ajouté un nombre X de voxels au groupe présentement traité (X = nombre total de points / nombre de groupes désirés). Le traitement d’un élément consiste à le retirer de la liste et à attribuer l’étiquette du groupe en cours à ses 6 voxels voisins et à les ajouter à la fin de la liste courante de voxels à traiter, s’ils n’ont pas déjà un numéro d’étiquette qui leur est attribué, à cause de leurs appartenances à un groupe. Lorsque le système change de groupe, il incrémente le numéro de groupe et il transfère tous les éléments restants de la liste courante à la fin de la liste globale. Ensuite, il retire le premier élément de la liste globale, pour le mettre comme seul élément de la liste courante. Il recommence alors à traiter la liste courante jusqu’à ce qu’il n’y ait plus aucun voxel à traiter dans les deux listes. La figure 3.6 montre le résultat de l’agrégation de voxels de modèles 3D de chiens. On peut y observer que le regroupement de voxels semble tout de même assez bien placé pour ne pas être trop influencé par les mouvements d’un membre unique de l’animal, même si les groupes sont vraiment positionnés différemment. Dans le cas présenté ici, la mise en correspondance de groupes sera tout de même difficile et l’on peut prévoir que l’approche structurée d’analyse donnera un mauvais résultat.

De manière empirique, j’ai déterminé qu’une vingtaine de groupes donnait des résultats sa- tisfaisants et ne prenait pas trop de temps de calcul lors de la comparaison. Lors de la dé- composition en harmoniques sphériques de chacun des groupes résultant de cet algorithme, nous ignorons les groupes de voxels isolés qui contiennent moins de la moitié du nombre X (déterminé dans le paragraphe précédent) de voxels, afin de ne pas perturber les résultats par des décompositions provenant d’un trop petit nombre de voxels.

Cette méthode permet de monter une structure en arbre. Afin de connaitre la hiérarchie des groupes, le système note quel est le groupe de voxels parent de chaque groupe. La figure 3.3

montre le résultat de l’agrégation de voxels du modèle 3D d’un chien et l’allure de cette structure en arbre. On connait de cette manière facilement à quelle distance un groupe (en nombre de groupes) se retrouve du premier groupe de voxels. Cette distance est intéressante, car on peut en tenir compte lors de la comparaison du résultat de leur décomposition en harmoniques sphériques, afin de favoriser la mise en correspondances de groupe de voxels qui sont à la même distance du centre. Cela permet à notre approche de type sac de mots de tenir compte quand même de la structure de la phrase.

Figure 3.6 – Agrégation de voxels de modèles 3D de chiens

Chien 1

Chien 2

Documents relatifs