• Aucun résultat trouvé

Nous rappelons tout d’abord les grandes étapes de l’algorithme de la section 2.2 :

1. Extraire huit images binaires correspondant à huit cônes de direction différents. Dans cha- cune de ces images, un pixel est allumé si le point correspondant dans l’image originale a une direction locale de gradient incluse dans le cône.

2. Pour chacune de ces images binaires, l’épaisseur des segments est réduite à un pixel dans la direction orthogonale en ne conservant que les pixels situés sur un maximum local des intensités de gradient.

3. Ne conserver que les segments suffisamment significatifs selon la variable discriminante choisie.

Les étapes 1. et 2. sont adaptées à un mode de calcul SIMD et sont facilement implantables sur Pvlsar34. L’étape 3. est en revanche plus délicate. Trois variables discriminantes ont été proposées dans la section 2.2. Le calcul d’une propriété telle que la longueur L, le minimum µ ou la moyenne λ de contraste sur un segment demande L itérations, puisque les pixels ne peuvent communiquer que de proche en proche. C’est donc assez coûteux. De plus, pour les critères de minimum et de moyenne de contraste, les PFA font intervenir la longueur du segment et la distribution G des intensités de gradient sur l’image. Comme le seuil de significativité est alors différent pour chaque segment, la PFA de chaque segment doit être calculée directement au sein de la rétine. Ceci n’est pas envisageable car les processeurs devraient alors conserver en mémoire G, L et µ ou λ, ce qui n’est pas possible avec une mémoire de 48 bits.

Le critère de longueur est en revanche envisageable, car il est alors possible de ne prendre en compte qu’une seule variable conditionnante, globale. Le seuil de significativité est alors le même pour tous les segments, et la procédure de sélection devient beaucoup plus simple. C’est ce qui a motivé son étude statistique dans le chapitre 2. Le critère de significativité pour un segment S est alors donné par le calcul suivant :

PFAL(S) = PH0(L ≥ L(S) | pb) < ε Ns

avec pb la densité de pixels blancs et Ns le nombre total de segments dans l’image de direction du segment. Pour chaque image de direction localisée, le cortex peut donc déterminer la lon- gueur minimale Lminassurant l’ε-fiabilité en fonction de pb et Ns. Il suffit alors de ne conserver que les segments de l’image de longueur supérieure à Lmin. L’algorithme complet finalement implantable sur Pvlsar34 est donné dans la figure 5. Nous en détaillons maintenant quelques points délicats.

Algorithme 5 : Algorithme de détection de segments adapté à Pvlsar34. A∧B correspond au “et” binaire bit à bit entre les images A et B, et A ∨ B au “ou” binaire. Toutes les opéra- tions sont menées sur la rétine, sauf celles qui sont précédées de la mention “(Cortex)”. Le calcul de Ns et la suppression des segments trop courts seront détaillés dans les sections A.2.2 et A.2.3.

Données : Image I

Sortie : Image de segments S G ← gradient de I ;

{Di}i∈{1...8}← images de direction déduites de G ; pour chaque seuil de gradient gkfaire

Calculer le masque binaire Mk tel que Mk(x, y) = 1 si |G(x, y)| ≥ gk; pour chaque image de direction Di faire

Dk

i ← Di∧ Mk ;

Localiser Dki sur les crêtes de gradient ; (Cortex) Calculer pb = 200×2001 P x,yD k i(x, y) ; Ek

i ← extrémités des segments de Dik; (Cortex) Calculer Ns=

P x,yE

k

i(x, y) ;

(Cortex) Calculer la longueur minimale Lminpour qu’un segment soit significatif, en fonction de pbet Ns;

Supprimer les segments de longueur inférieure à Lmindans Dik; S ← S ∨ Dk

i ; fin

A.2.1

Calcul des seuils de gradient

L’algorithme de détection est appliqué sur une succession d’images de direction où seuls les pixels de plus en plus contrastés sont conservés. Ainsi, pour chaque pourcentage δ, il faut être capable de déterminer le seuil gminsur l’intensité de gradient qui permet de ne conserver que les δ% de pixels les plus contrastés. Sur une architecture classique, gminpeut être déduit rapidement en utilisant la distribution des intensités de gradient sur l’image.

Sur la rétine, la distribution du gradient peut être calculée par le cortex en ayant recours à des seuillages successifs et des sommations globales. Pour chaque valeur possible g, il suffit de calculer une image binaire Ig où un pixel vaut 1 si son intensité de gradient est supérieure ou égale à g. P (G ≥ g) est alors estimée en comptant le nombre de pixels dans Ig grâce au sommateur analogique. Cette procédure est cependant coûteuse, car s’il y a N valeurs possibles pour les intensités de gradient, il faut appliquer N seuils et sommations successifs.

C’est pourquoi nous utilisons une version simplifiée dans nos expérimentations, en utilisant une série de log2(N ) seuils gk = 2k avec k compris entre 0 et log2(N ) − 1. Les puissances de 2 permettent de déterminer très efficacement si une intensité de gradient est suffisamment grande à l’aide de processeurs booléens : une intensité est supérieure à 2k si au moins un des log2(N ) − k bits de poids fort vaut 1.

A.2.2

Calcul du nombre de segments candidats

À partir d’une image de direction, le nombre de segments candidats peut être calculé en comptant le nombre d’extrémités, comme le montre la figure A.2 pour la direction horizontale. Les pixels extrémités peuvent être extraits par une transformée morphologique en tout-ou-rien [Ser83], déduite de la définition de segment de la section 2.2.2.

Transformées en tout ou rien

ou ou Ns

D1 Image de direction

horizontale Extrémités gauche

FIG. A.2 – Calcul du nombre de segments candidats dans une image de direction localisée. La première extrémité de chaque segment (ici, l’extrémité gauche) est tout d’abord extraite grâce à des transformées morphologiques en tout-ou-rien. Le nombre de segments Nspeut ensuite être directement estimé grâce au sommateur analogique.

A.2.3

Élimination des segments trop courts

Les segments de longueur inférieure au seuil Lmin calculé par le cortex peuvent être sup- primés de façon itérative sans explicitement calculer la longueur de chaque segment. Soit Di l’image de direction concernée. L’idée est de supprimer itérativement les extrémités des seg- ments de Di. Après Lmin itérations, tous les segments de longueur inférieure à Lmin ont alors disparu. On appelle IL l’image obtenue. L’image de direction ne contenant plus que les seg- ments suffisamment grands correspond finalement à l’ouverture morphologique par reconstruc- tion [Ser83] de Dipar IL, comme le montre la figure A.3.

Image de direction

horizontale D1 Segments de longueur L

L - 1 itérations

min Ouverture par reconstruction deD0

min

FIG. A.3 – Étape de suppression des segments de longueur inférieure au seuil Lmin déterminé par le cortex. Lmin= 5 dans l’exemple. Les segments sont érodés itérativement par leur première extrémité. Après Lmin− 1 itérations, seuls les segments de longueur supérieure ou égale à Lmin sont encore (partiellement) présents. Avec une ouverture morphologique par reconstruction de l’image de direction originale, on obtient finalement une image ne contenant que les segments originaux dont la longueur est supérieure ou égale à Lmin.