• Aucun résultat trouvé

Approche globale de la fusion de régions

L’approche globale de la fusion de régions est plus générale que l’approche locale. La méthode globale fusionne simultanément plusieurs ensembles6-connexes de régions alors que l’approche locale ne permet que la fusion d’un ensemble 6-connexe de régions. Le principe de l’approche globale est de séparer les modifications de la carte topologique du processus de fusion de régions proprement dit. Dans un premier temps, les régions sont manipulées avec un haut niveau d’abstraction. Puis, dans un second temps, les fusions de haut niveau sont retranscrites dans la partition représentée par une carte topologique en supprimant les cellules inutiles et en construisant le nouvel arbre d’imbrication des régions.

Nous commençons par détailler l’algorithme général utilisé pour la fusion globale de régions, puis nous expliquons comment nous réalisons les trois étapes de l’algorithme. Enfin nous donnons la com- plexité de l’opération en fonction de la taille des données en entrée.

4.3. Approche globale de la fusion de régions 71

4.3.1 Algorithme

L’Algorithme 12 présente le principe de la fusion de régions par approche globale. Il prend en paramètres une carte topologiqueM et une fonction Oracle : R × R → {vrai, faux} qui indique si deux régions doivent être fusionnées. L’algorithme modifie la carte topologique de sorte que tous les ensembles6-connexes de régions désignés par l’oracle soient effectivement fusionnés dans la partition finale. Il comporte trois étapes principales :

– fusion des régions à haut niveau d’abstraction : c’est la fusion symbolique ; – mise à jour de la carte combinatoire minimale et de la matrice intervoxel ; – construction du nouvel arbre d’imbrication.

Algorithme 12 : Approche globale de la fusion de régions Données : Une carte topologiqueM ;

Une fonctionOracle : R × R → {vrai, faux}.

Résultat : Fusionne toutes les régions par composante6-connexe en fonction de l’oracle. pour chaque brinb ∈ M faire

siOracle(region(b), region(β3(b))) alors

fusionner symboliquement region(b) et region(β3(b)); supprimer toutes les faces intérieures;

simplifier la carte topologique;

construire le nouvel arbre d’imbrication des régions;

4.3.2 Fusion symbolique

La première partie de l’algorithme concerne la fusion des régions à un haut-niveau d’abstraction. Pour gérer la fusion et la représentation des ensembles de régions, nous utilisons une structure permet- tant de représenter des ensembles disjoints : les forêts d’ensembles disjoints. Au départ, chaque région appartient à un ensemble distinct. L’opération de fusion est définie sur les ensembles disjoints comme l’union des ensembles contenant les régions à fusionner. Nous propageons en même temps les caracté- ristiques internes des régions comme le nombre de voxels ou la couleur moyenne. Nous choisissons le représentant d’un ensemble disjoint de régions comme la région résultante de la fusion de ces régions. Lorsque toutes les fusions ont été effectuées, chaque racine d’un arbre est une région résultante.

Si l’oracle O indique qu’il faut fusionner une région r1 avec sa région adjacente r2 alors nous fusionnons l’ensemble disjoint contenantr1 et l’ensemble disjoint contenantr2. À la fin de la fusion symbolique, comme seules des régions adjacentes ont été fusionnées, chaque ensemble disjoint repré- sente une composante connexe de régions. Un exemple d’oracle peut être une fonction sur les labels qui demande la fusion des régions possédant un même label.

4.3.3 Suppression des faces intérieures et simplification

L’étape suivante de l’algorithme consiste à transcrire dans la carte topologique la partition repré- sentée symboliquement par les ensembles disjoints de régions. Pour cela nous supprimons les faces intérieures de la partition symbolique, c’est-à-dire les faces qui sont entre deux régions appartenant au même ensemble disjoint.

Le processus est similaire à celui utilisé pour les faces intérieures de l’ensemble des régions sélec- tionnées dans l’approche locale (voir Section 4.2.4). La différence porte sur l’utilisation des ensembles disjoints : un brin b appartient à une face intérieure si trouver(region(b)) = trouver(region(β3(b)))

72 CHAPITRE 4 - FUSION DE RÉGIONS

(c’est-à-dire que les deux régions incidentes à la face appartiennent au même ensemble disjoint). Nous utilisons alors l’opération de suppression de faces (Algorithme 10) dans la carte topologique pour sup- primer la face incidente àb.

Comme dans l’approche locale, la suppression des faces intérieures change le degré des arêtes incidentes. La carte combinatoire n’est plus nécessairement minimale. Comme nous nous permettons de modifier largement la carte topologique, nous utilisons une opération de simplification définie comme l’opération permettant de passer d’une carte au niveau 1 à une carte au niveau 3 (voir Section 2.2.2). Avec cette opération la carte combinatoire devient minimale. La carte et son plongement représentent la partition de l’image décrite par l’oracle.

4.3.4 Construction du nouvel arbre d’imbrication

L’étape finale consiste à construire le nouvel arbre des régions représentant la relation d’imbrication directe entre toutes les régions de l’image. Dans l’approche locale, Section 4.2.3, nous modifions l’arbre afin qu’il représente correctement l’imbrication. Deux solutions s’offrent à nous pour construire le nouvel arbre d’imbrication dans l’approche globale : soit nous utilisons sur chaque ensemble disjoint de régions la méthode utilisée dans l’approche locale, soit nous reconstruisons complètement l’arbre des régions. Nous avons choisi d’utiliser la seconde approche en réutilisant l’algorithme de construction de l’arbre d’imbrication défini pour l’extraction de la carte topologique d’une image. La complexité dans le pire des cas est la même mais le processus de construction est moins compliqué à mettre en œuvre et n’entraîne pas de surcoût en terme de complexité.

Dans un premier temps, nous parcourons tous les brins de la carte topologique afin d’attribuer leurs régions d’appartenance à la racine de l’arbre représentant l’ensemble disjoint. Ainsi pour chaque brinb de la carte topologique, region(b) ← trouver(region(b)). Dans un deuxième temps, nous réinitialisons la liste triée des régions et nous supprimons en même temps toutes les régions qui ne sont pas racines d’un ensemble disjoint de régions. Enfin nous utilisons l’Algorithme 6, page 44, afin de construire le nouvel arbre d’imbrication des régions.

4.3.5 Complexité

Nous étudions la complexité en temps de l’algorithme global de fusion de régions. Les opérations sur les ensembles disjoints étant considérées comme réalisées en temps constant dans les cas pratiques, nous n’en tenons pas compte dans l’étude de la complexité de la fusion symbolique qui utilise cette structure pour représenter la partition des régions. Nous supposons que la complexité de l’oracle s’ex- prime à l’aide d’une fonctionfOracle. La première étape consiste à tester à l’aide de l’oracle chaque couple de régions adjacentes pour les fusionner. Pour trouver l’ensemble des couples de régions adja- centes, nous parcourons l’ensemble des brins de la carte. L’union des deux ensembles étant réalisée en temps constant, la complexité de cette opération estO(|brins(M)| × fOracle).

Nous exprimons la complexité de l’étape de simplification en fonction du nombre total de brins de la carte et en fonction du nombre total de surfels de la carte. La première partie se justifie par le fait que nous supprimons des cellules de l’image et toutes les cellules de l’image sont représentées par l’ensemble des brins de la carte. Pour la deuxième partie, nous utilisons le même argument que lors de l’approche locale (voir Section 4.2.5) pour dire que le nombre d’éléments intervoxels à éteindre lors de la phase de suppression des faces intérieures et de simplification est linéairement lié au nombre de sur- fels allumés dans la matrice intervoxel. Ainsi la complexité s’exprime enO(|brins(M)|+|surfels(M)|). Enfin la complexité de l’algorithme de construction de l’arbre d’imbrication dépend du nombre de brins de la carte topologique ainsi que du nombre de régions. Comme il y a au moins un brin par région nous exprimons la complexité de cette opération uniquement en fonction du nombre de brins. Nous assurons que la racine de l’arbre soit toujours bien triée dans la liste des régions. La carte combinatoire