• Aucun résultat trouvé

Algorithme de dilatation 1-D ` a complexit´ e constante, ind´ ependante de la taille du SE

Quelques consid´ erations pratiques

CHAPITRE 8. OPÉRATEURS MORPHOLOGIQUES DE GRANDE TAILLE, À FLOT DE DONNÉES

8.2 Algorithme de dilatation 1-D ` a complexit´ e constante, ind´ ependante de la taille du SE

Dans cette section nous présentons notre contribution au cadre algorithmique pour des opérateurs morphologiques atomiques. Il s’agit d’un algorithme 1-D optimisé pour la

dilata-CHAPITRE 8. OPÉRATEURS MORPHOLOGIQUES DE GRANDE TAILLE, À FLOT DE DONNÉES

tion et l’érosion, ayant les propriétés suivantes : - latence de l’algorithme minimale ;

- utilisation de mémoire strictement minimale ;

- adapté aux éléments structurants centrés ou asymétriques ;

- à complexité constante par rapport à la taille d’élément structurant ; - à complexité linéaire par rapport à la taille de l’image ;

- autorisant les calculs à la volée et respectant le sens de balayage de l’image ; - choisir librement la position du centre de l’élément structurant.

Le principe de l’algorithme présenté est basé sur un codage efficace du profil de la fonc-tion d’entrée permettant de réduire le nombre de comparaisons et traiter des données à la volée. Le grand avantage de cet algorithme est la possibilité de paramétrer la position du centre du SE pour des SE asymétriques ou centrés.

8.2.1 Elimination des valeurs inutiles´

Le principe de l’algorithme repose sur l’élimination à la volée de toutes les valeurs qui ne prendront jamais part dans le résultat du Max ou du Min. Car pour calculer δBf (x) nous avons seulement besoin de ces valeurs de f (xi) que l’on peut voir de x en regardant sur le profil topographique de f . Ainsi, les vallées ombragées par des montagnes contiennent des valeurs inutiles (Fig.8.1). Remarquons que les valeurs masquées dépendent de f et pas de B [6].

(a) Relief topographique de f (b) Encodage du signal utilisé par l’agorithme.

FIGURE8.1 – Illustration de la dilatation δBf (x) : les valeurs appartenant aux vallées sont cachées par les sommets en regardant le relief topographique de f à partir de la position du x.

Proposition 1. [Valeurs inutiles - cas causal] En cas de dilatation δBf avec f : Z+→R, par un élément structurant B causal et invariant par translation1contenant son origine, aucune valeur f (i) telle que f (i) ≤ f ( j) et i < j n’influence pas la valeur de la dilatation.

δBf (k), ∀k ≥ j (8.5)

Preuve. De l’Eq.8.3, tout x tel que i < j ≤ x, si i ∈ B(x) alors j ∈ B(x). Si f (i) < f ( j), alors f (i) < maxb∈B f (x − b), et f (i) n’a aucun impact sur le résultat de dilatation.

Cela signifie que toutes les valeurs de f (i) telles que :

f (i) ≤ f ( j), avec i < j, (8.6)

peuvent être éliminées - oubliées. Une seule comparaison f (i) ≤ f ( j), réalisée pendant la lecture de f ( j), évite les calculs des comparaisons inutiles pour tous les B(x) qui couvrent i et j.

CHAPITRE 8. OPÉRATEURS MORPHOLOGIQUES DE GRANDE TAILLE, À FLOT DE DONNÉES

Notons deux observations importantes :

1. ∀k ≥ j en Eq.8.5que toutes les valeurs inutiles j restent inutiles.

2. Utilisant un B ⊂ Z, borné et causal p. ex. un intervalle B(x) = [x − b,x], avec b < ∞, signifie que pour le calcul deδB(x), nous pouvons supprimer les valeurs en dehors de la portée, p. ex. f (xi), avec xi<x − b.

Transformation parcours anti-causal - causal

Considérons tout SE B, B ⊂ D équipé par une origine x ∈ D. En assumant un accès séquentiel aux données en entrée, la dilatationδBf (x) dépend non seulement des points lus auparavant, mais aussi de ceux après x. Nous disons que B n’est pas causal.

On peut transformer un SE anti-causal en un SE causal en utilisant la propriété que la dilatation commute avec la translation (t ∈ D)

δB+tf (x) =δBf (x −t) (8.7)

Dans la pratique, cela ce traduit uniquement par une translation de l’écriture du résultat à l’endroit (position) correct.

Codage d’une fonction

De la même façon que des objets binaires qui peuvent être codés en utilisant la distance à leurs frontières, les fonctions peuvent être codées en calculant la distance à chaque change-ment de la valeur. Observons la Fig.8.1(b), les flèches indiquent ces valeurs qui entrent dans le calcul deδBf (xi). Les valeurs non indiquées par une flèche sont plus petites ou égales à

f ( j) = 6 et n’ont aucun impact sur le résultatδBf (x), pour x ≥ j. 8.2.2 Algorithme de dilatation 1-D

Les échantillons f (x) utilisés dans le calculδBf (xi)sont codés par paires (la distance, la valeur) comme illustré dans l’image Fig.8.1(b). Ceci est possible grâce au codage efficace de la fonction d’entrée permettant l’indexation relative des échantillons.

CHAPITRE 8. OPÉRATEURS MORPHOLOGIQUES DE GRANDE TAILLE, À FLOT DE DONNÉES

Latence

La latence globale de l’algorithme est une fonction de deux facteurs : i) la latence de la dilatation 1-D et ii) la latence d’opérateur.

Dilatation 1-D : elle commence à produire le résultat dès que la position de lecture rp atteint la dernière position couverte par l’élément structurant. Ceci correspond à la latence d’opérateur. Par conséquent la latence de l’algorithme est nulle.

Complexit´e de calcul

L’algorithme (Fig.4) contient une séquence des opérations O(1) et une la boucle while des lignes 1-2) pour suppression des valeurs inutiles. C’est une partie dépendante des don-nées. Cette boucle while est exécutée en moyenne une fois par pixel, faisant la complexité moyenne de l’algorithme constant par pixel.

Remarquons que chaque pixel entrant est stocké une seule fois (la ligne 5). Chaque pixel est supprimé une seule fois pour toute : i) quand il devient "trop ancien" (les lignes 3-4) ou ii) quand il est masqué par un autre point plus grand (les lignes 1-2).

Utilisation de m´emoire

L’algorithme d’érosion 1-D ne stocke que les données trouvées dans le périmètre de l’élément structurant (un concept similaire est également utilisé dans [99]), c’est-à-dire pour calculerεBf (x), seulement F(xi), avec xi=B(x) sont nécessaires. De même, pour la dilata-tion, il suffit de stocker les données couvertes par transposé bB(x). En 1-D, la taille de la FIFO est donc délimitée par le cardinal de B.

La comparaison de propriétés des l’Alg.4 proposé avec l’état de l’art est résumée dans le Tableau8.1.

TABLEAU8.1 – Comparaison des propriétés des algorithmes 1-D rapides publié dans [6].

Algorithme SE Comparaisons Latence Mémoire

type par pixel Algorithme

Naive 1-D User W − 1 0 N

van Herk Sym 3 −W4 W N+2W

Gil-Wermann

Gil-Kimmel Sym 1,5 +log2W

W + O(W1) W N+3W

Lemire Left 3 0 N+W

Lemonnier Sym nc N 2N

Van Droogenbroeck-Buckle Sym nc 0 2N+G

Algorithme proposé User O(1) 0 2W

Sym = symétrique SE ; Left = anticausal SE ; User = forme libre ; W =taille SE ; N=taille de ligne ; G = nombre de niveaux de gris ; nc = non communiqué.

8.2.3 De la 1-D `a la 2-D

Selon le principe de décomposition de l’élément structurant, le calcul du SE final en 2-D est réalisé “en itérant” des calculs en dimension plus petite (1-D). Pour la plupart des algorithmes, cela implique le stockage de données intermédiaire, souvent de l’image entière. L’algorithme proposé (Alg.4) peut exécuter les calculs dans les différentes dimensions en même temps, à la volée, et par conséquent éliminer la nécessité de stockage de données intermédiaires et réduire la latence globale.

CHAPITRE 8. OPÉRATEURS MORPHOLOGIQUES DE GRANDE TAILLE, À FLOT DE DONNÉES

(a) SE rectangle (b) Calcul de la partie horizontale (c) Calcul de la partie verticale

FIGURE8.2 – Séparation du calcul, ×× représente les données intermédiaires stockées.

Ainsi, l’image d’entrée est lue dans l’ordre d’acquisition, ligne par ligne. Chaque ligne est dilatée horizontalement. Le résultat de la dilatation horizontale est immédiatement injecté, pixel par pixel, dans la dilatation verticale dans la colonne correspondante (Fig.8.2).

Algorithm 3: Dilatation 2-D à zéro latence [6]

Latence

La latence globale de l’algorithme est fonction de deux facteurs : i) latence de la dilatation 1-D et ii) latence de la décomposition 2D. Dilatation 2D : la latence d’algorithme de la décomposition 2D est nulle si les données sont gérées dans le flot.

CHAPITRE 8. OPÉRATEURS MORPHOLOGIQUES DE GRANDE TAILLE, À FLOT DE DONNÉES

TABLEAU8.2 – Comparaison des algorithmes 2-D rapides, publié dans [6]

Algorithm Type de Latence Mémoire Mémoire Complexité

SE de données intermédiaire per pixel

Naive 2-D User 0 MN 0 O(W H)

Urbach- User MN 2MN NHlog2W O(Nc+log2(Lmax(C)))

Wilkinson

Van Droogen- User 0 NH W HG O(H log2(G))

broeck-Talbot square SE

Algorithme3 Rect. 0 0 2(NH+W ) O(1)

W ×H = taille SE (W-largeur×H-hauteur); N×M = taille de l’image; G = nombre de niveau de gris ; Lmax(C) = longueur maximale de “chord” ; Nc= nombre des chords.

Complexit´e de calcul

La complexité de l’algorithme 2D est O(N), où N est le nombre de pixels dans l’image. À chaque coordonnée, le 2D_Dilation appelle deux fois l’algorithme 1-D (Fig.4) : une fois pour la dilatation verticale et une fois pour la partie de dilatation horizontale.

Utilisation de la m´emoire

En 2-D, les exigences de mémoire sont données par la décomposition du rectangle comme R = H ⊕V (R = rectangle, H / V = segment horizontal / vertical respectivement) et par le fait que le rectangle glisse sur l’image en mode balayage. Cela signifie que la partie verticale de la dilatation 2-D s’exécute dans toutes les colonnes simultanément, un pixel par colonne à la fois. Graphiquement, les exigences en mémoire correspondent au stockage des données d’image des lignes actuellement intersectées par le SE.

Considérons une érosion (ou une dilatation) d’une largeur d’image N×M par W×H rec-tangulaire (largeur par hauteur) SE. Les exigences de mémoire sont les suivantes :

• pour la dilatation horizontale, on a une mémoire de taille 2W • et N fois pour la dilatation dans le sens vertical, de taille 2H 8.2.4 Evaluation´

La Fig.8.3(a), illustre le temps d’exécution, mesuré pour les images à contenus différents (sur un processeur Intel Core 2 2GHz, avec 2 Go 800MHz RAM double port, sous Linux). Pour le test, nous avons utilisé trois images : une image aux valeurs constantes (le meilleur cas), une image remplie de bruit blanc et une image naturelle pour analyser la retombée de la partie d’algorithme 1D dépendante des données. Dans tous les cas, le temps d’exécution augmente de manière linéaire par rapport à la taille de l’image d’entrée. La Fig.8.3(b)illustre bien que le temps d’exécution est constant et indépendant de la taille de l’élément structurant. La Fig. 8.4 compare les performances avec des algorithmes 2-D choisis. Les mesures obtenues confirment la complexité linéaire de l’algorithme. De plus, les temps de traitement obtenus sont comparables à celles des algorithmes réputés les plus efficaces.

CHAPITRE 8. OPÉRATEURS MORPHOLOGIQUES DE GRANDE TAILLE, À FLOT DE DONNÉES

(a) Temps d’exécution par rapport à la taille de

l’image (b) Temps d’exécution par rapport à la taille del’élément structurant

FIGURE8.3 – Évaluation des propriétés de l’algorithme 2-D par décomposition

FIGURE8.4 – Comparaison des performances, élément structurant de taille 21×21, taille de l’image 800x600

8.3 Extensions

Les extensions présentées ont été étudiées dans les travaux de thèse de Jan Bartovsky [69] que j’ai co-encadré.

8.3.1 Op´erateurs morphologiques sous angle arbitraire

L’algorithme 1-D proposé peut être directement utilisé pour obtenir des éléments struc-turants 1-D inclinés sous des angles arbitraires. Pour cela, les pixels lus dans le flot sont à la volée mappés dans des couloirs (Fig.8.5) selon l’algorithme de Bresenham [77]. La lecture des pixels dans l’ordre reste préservée. Les seuls éléments utilisés de mémoire sont les files d’attente dont la profondeur et le nombre dépendent uniquement de la longueur du SE et de la taille (largeur) de l’image [21].

FIGURE8.5 – Exemple des couloirs obtenus par l’algorithme de Bresenham pour différents angles.

8.3.2 Concat´enations profondes `a latence minimale

Dans la pratique, les dilatations et les érosions se combinent pour former d’autres opéra-teurs. Nous présentons dans la suite les bénéfices de notre contribution algorithmique pour des concaténations optimales et avec des performances obtenues inégalées pour certaines.

CHAPITRE 8. OPÉRATEURS MORPHOLOGIQUES DE GRANDE TAILLE, À FLOT DE DONNÉES

Filtres Altern´es S´equentiels

Les Filtres Alternés Séquentiels (ASF2) représentent un exemple d’opérateurs à conca-ténation profonde par excellence. La mise en œuvre d’un ASFλ est donnée par Eq.8.8:

ASFλBiεBi⊕BiδBi. . .δB1εB1⊕B1δB1 (8.8)

FIGURE8.6 – Calcul d’un filtre ASF sans mémorisation intermédiaire.

Un tel ASF peut être maintenant être calculé à la volée dans le sens du balayage normal de l’image d’entrée. La position d’écriture de l’opérateur précédent dans la cascade devient la position de lecture de l’opérateur suivant (Fig.8.6). Tous les opérateurs peuvent s’exécutent simultanément. Il n’y a pas de stockage intermédiaire de données entre les étapes car les résultats intermédiaires sont pipelinés [6] et la latence de calcul est réduite au minimum.

Approximation des polygones

La séparabilité de la dilatation morphologique n-D en dimensions inférieures est une propriété bien connue et déjà mentionnée dans ce document. Les dilatations par polygones convexes réguliers P2n peuvent être décomposées en séquence des dilatations linéaires 1-D selon l’équation suivante :

δP2n(f ) =δLα1(. . .δLαn(f ))

| {z }

n-times

(8.9) où αi= (i − 1)180◦

n [];i ∈ N,i ≤ n et kLαik = 2Rsin1802n, R étant le cercle englobant du polygone.

FIGURE8.7 – Décomposition d’élément structurant hexagonal en trois éléments structurants linéaires inclinés. rpαreprésente la position de lecture de la dilation 1-D à angleα ;wpαreprésente la position d’écriture dy résultat de la dilation 1-D à angleα.

CHAPITRE 8. OPÉRATEURS MORPHOLOGIQUES DE GRANDE TAILLE, À FLOT DE DONNÉES

L’implémentation basée sur l’approche algorithmique proposée conserve les mêmes pro-priétés, telles que la complexité de calcul linéaire par rapport à la taille de l’image et indépen-dante de la taille du SE. La latence est toujours strictement égale à la latence de l’opérateur, c’est-à-dire qu’il est dépendant de la taille de l’élément structurant utilisé. On utilise tou-jours un accès strictement séquentiel aux données. La consommation de mémoire est très inférieure à la taille de l’image [3].

8.3.3 Ouverture morphologique 1-D `a complexit´e constante en flot de donn´ees

Cette contribution est issue des travaux menés avec notre doctorant, Jan Bartovsky et Mines-ParisTech. Dans [21], nous introduisons un nouvel algorithme pour l’opérateur de l’ouverture morphologique 1-D. Il se distingue par une complexité linéaire par rapport à la taille d’élément structurant, par les calculs en flot de données et par la possibilité de four-nir les résultats de granulométries en parallèle [132]. Nous pouvons citer quelques autres algorithmes efficaces pour le calcul direct de l’ouverture : notamment Soille al. [165], Van Droogenbroeck et Buckley [99], Urbach et Wilkinson [171] et Morard [141]. Cepdendant, on peut démontrer leurs faiblesses dans le cas des SE orientés sous un angle arbitraire.

Nous considérons les opérateurs de l’ouverture et de la fermeture morphologiques, ap-pliqués aux images à niveaux de grisϕBB: Z2→ R, définis comme suit :

ϕB(f ) =εBB(f )];γB(f ) =δBB(f )] (8.10) L’ouverture coupe littéralement les “sommets” plus étroits que le SE . La fermeture rem-plit les “vallées” plus étroites que SE (Fig.8.8).

(a) Ouverture 1-D (b) Fermeture 1-D

FIGURE8.8 – Illustration du principe d’ouverture et de fermeture

Nous proposons un algorithme basé le découpage du sommet récursivement, de haut en bas. Le signal d’entrée est continuellement analysé, dans l’ordre de balayage de l’image afin d’identifier l’existence d’un sommet en fonction des différentes configurations (Fig. 8.9). La valeur du sommet rasé f (x) est remplacée par f (x − 1) dans la configuration (a), ou par f (x+1) dans la configuration (b), respectivement. Après la suppression du sommet en cours, tout le processus sera répété si, et seulement si, il s’agit de la configuration (c).

(a) (b) (c) (d)

CHAPITRE 8. OPÉRATEURS MORPHOLOGIQUES DE GRANDE TAILLE, À FLOT DE DONNÉES

Pour assurer le bon fonctionnement de la méthode, on propose un autre encodage parti-culier du signal d’entrée. Le principe est représenté sr la Fig.8.10, où le signal d’entrée est codé par paires {valeur, position du dernier pixel sur le plateau}. Cet encodage et qu’il peut être construit à la volée et qu’il permet également de supprimer un plateau-sommet en une seule opération.

FIGURE8.10 – Encodage du signal pour l’algorithme récursif d’élimination des sommets.

Nous avons évalué le temps d’exécution par rapport à la taille du SE horizontal et par rapport à la taille de l’image. Sur la figure 8.11, nous pouvons constater que l’algorithme d’ouverture 1-D respecte les propriétés du cadre algorithmique présenté. Il est indépendant de la taille de l’élément structurant et il dépend linéairement de la taille de l’image. Les benchmarks ont été réalisés sur un processeur Intel Xeon E5620 @ 2.4GHz sous Linux.

(a) Temps d’exécution par rapport à la taille de

l’image (b) Temps d’exécution par rapport à la taille del’élément structurant

FIGURE8.11 – Évaluation des propriétés de l’algorithme de l’ouverture 1-D.

Comparé avec d’autres algorithmes (Fig.8.12), les algorithmes d’ouverture de Morard et Van Droogenbroeck surpassent les performances de notre solution. En revanche, nous pouvons garantir les mêmes performances pour des ouvertures sous angles arbitraires et le calcul simultané des granulométries.

CHAPITRE 8. OPÉRATEURS MORPHOLOGIQUES DE GRANDE TAILLE, À FLOT DE DONNÉES

Calcul simultan´e des granulom´etries

Supposons les éléments structurants linéaires inclinés sous forme BαL où L indique la taille (longueur) du SE et α l’angle de rotation. Nous appelons la distribution des tailles PS(α,L) l’ensemble des granulométries paramétrées par la taille du SE et la rotation du SE. La distribution des tailles est par la suite définie comme suit :

[PS(α,L)]( f ) = ΣD 

γBα

L f − γBαL+1f (8.11)

Grâce au fait que l’algorithme d’ouverture élimine un sommet successivement niveau par niveau, il est très facile d’obtenir le nombre de pixels du même niveau et de les accumuler à la volée [21].

FIGURE8.13 – Analyse des textures à l’aide de la distribution des tailles [52].

Nous obtenons ainsi le spectre PS avec un effort supplémentaire minimal. Le principe avec l’algorithme détaillé est très bien illustré dans le manuscrit de thèse de Jan Bartovsky [69].

Ceci permet d’atteindre des performances inégalées pour des applications pratiques né-cessitant d’obtenir des mesures exhaustives. Nous pouvons illustrer le gain sur des exemples d’analyse d’orientation [52]. Nous faisons varier un des deux paramètresα, L et nous me-surons les granulométries. Par exemple, pour l’application sur la Figure8.13, nous estimons Σ∀LPS par rapport àα.

Notre algorithme qui calcule le spectre de la pente dans un balayage d’image unique, il permet d’introduire une accélération significative par rapport à l’approche par résidu néces-sitant des ouvertures multiples.

CHAPITRE 8. OPÉRATEURS MORPHOLOGIQUES DE GRANDE TAILLE, À FLOT DE DONNÉES

Algorithm 4: Ouverture 1-D à complexité constante avec le calcul simultané de la distribution de tailles [52].