• Aucun résultat trouvé

0 1 2 3 4 0 50 100 150 Te m p s (m s) 1 thread 2 threads 3 threads 4 threads 5 threads 6 threads 7 threads 0 50 100 150

Taille de l'ouverture : L (en pixel)

(a) Temps de calcul moyen en fonction de L et du nombre de threads 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 F a c te u r d 'a c c é ra t io n Accélération théorique Morard Clienti Bartovsky Van Droogrenbroeck HGW 1 2 3 4 5 6 7 8 Nombre de threads

(b) Facteur d'accélération en fonction du nombre de threads pour diérents algorithmes

Figure 2.17  Parallélisation de l'algorithme sur le CPU pour une ouverture horizontale. La parallélisation de cet algorithme avec des orientations arbitraires est plus dicile mais possible puisque l'algorithme d'extraction des lignes de Soille et al. [213] assure que chaque pixel ne sera traité qu'une seule fois.

Cependant, de meilleures performances peuvent être obtenues si l'on déporte le calcul des ouvertures vers la carte graphique.

2.7.2 Parallélisation sur GPU

Utiliser une carte graphique pour des ouvertures ou des granulométries permet de bénécier de sa capacité de traitement massivement parallèle pour réduire les temps de calcul. Initialement, les cartes graphiques était uniquement conçues pour assurer les fonctions de calcul liées à l'achage. Puis les cartes graphiques devinrent programmable et commencèrent à être utilisées à d'autres ns (GPGPU)1,

vers les années 2000. Des plateformes de développement en C, tels que CUDA par nVidia [43,42] et OpenCL par Khronos groupe [82], facilitent leur programmation et donc contribuent à leur utilisation croissantes.

Karas et al. [104] proposent d'utiliser l'algorithme développé dans ce chapitre pour calculer des ouvertures et des granulométries sur une carte graphique avec des orientations quelconques. Chaque ligne 1-D est aectée à un thread de la carte graphique et plus il y a de lignes à calculer et plus les gains seront importants : de ×5 jusqu'à ×20 pour de grandes images avec une carte graphique de dernière génération.

2.8 Bilan et perspectives

Ce chapitre présente un nouvel algorithme 1-D exible et rapide permettant de calculer des ouver- tures, des ouvertures par reconstruction, des granulométries ou des arbres de composantes connexes dont voici les caractéristiques principales :

 la complexité théorique est constante par pixel,

 la gestion des bords peut être réalisée de deux façons diérentes,

 n'importe quel type d'entrée peut être utilisé ; des entiers, des ottants de toutes précisions ou plus généralement, des valeurs qui forment un groupe ordonné,

 l'application à des images 2-D, ..., n-D est facile puisque il est toujours possible d'extraire des lignes 1-D de ce volume,

 cet algorithme est le plus rapide pour le calcul des ouvertures 1-D (à l'exception des données 8-bits où l'algorithme de Van Droogenbroeck reste devant),

 aucun algorithme de l'état de l'art ne rivalise avec celui proposé pour le calcul des granulométries,  la parallélisation de l'algorithme sur le CPU est triviale et permet d'obtenir des accélérations de

l'ordre de 433% pour un processeur i7 pour des ouvertures horizontales,

 la parallélisation sur la carte graphique permet d'atteindre des accélérations de l'ordre de 500% à 2000% pour des images de très grandes tailles.

Pour étendre l'utilisation de cet algorithme, on s'intéresse au calcul des granulométries locales ; en chaque élément du signal 1-D, on peut dénir un histogramme qui stockera le volume de toutes les cordes auxquelles l'élément courant appartient. Cela nous permettra d'obtenir des descripteurs en vue de réaliser une analyse statistique et un classement point à point. Enn, en introduisant un nouveau balayage de l'image, plus nécessairement linéaire, on peut dénir un nouvel opérateur permettant de calculer ecacement des ouvertures par chemins. Cet opérateur est introduit dans le chapitre suivant (chapitre3).

Pour les arbres de composantes connexes, une extension consisterait à construire un arbre pour chaque signal 1-D que l'on a extrait à partir de l'image initiale, {fα,k}k∈K pour obtenir un ensemble

d'arbres. Cette forêt permettrait de reconstituer l'arbre de composantes connexes 2-D associé à cette image, en utilisant l'algorithme de Wilkinson et al. [252] ou de Matas et al. [135,134] pour fusionner plusieurs arbres ensemble. L'algorithme développé dans ce chapitre serait alors une étape d'un nouveau processus permettant de construire l'arbre de composantes connexes 2-D d'une image.

CHAPITRE

3

Filtre par chemins : nouvel opérateur permettant de calculer des ouvertures

parcimonieuses par chemins

Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher. Antoine de Saint-Exupéry, Terre des hommes ch.III, 1939 Les ouvertures par chemins maximaux (PO1) sont des opérateurs morphologiques permettant de

préserver les structures longues et nes d'une image en niveaux de gris. Ces opérateurs parcourent l'ensemble des chemins d'une image et les ltrent avec un critère de taille. Le nombre de chemins à explorer et la grande redondance de l'information expliquent la relative lenteur de ces méthodes.

On introduit dans ce chapitre un nouvel opérateur morphologique, les ouvertures parcimonieuses par chemins (PPO2) qui permettent de résoudre le problème des temps de calcul. Cet opérateur n'explore

qu'un nombre restreint de chemins parmi ceux considérés par les ouvertures par chemins classiques. En sélectionnant astucieusement ce sous ensemble, les résultats obtenus sont similaires à ceux des ouvertures par chemins cependant, les temps de calcul sont considérablement réduits. L'algorithme présenté dans le chapitre précédent (chapitre 2) constitue le socle de cet opérateur et est utilisé pour analyser tous les chemins 1-D. Il permet donc de construire des PPOs pour n'importe quel type de données d'entrée, indépendamment de la longueur de l'ouverture considérée.

La précision de cet opérateur est étudiée puis améliorée pour résoudre un problème classique des ouvertures par chemins, l'invariance par rotation et la surestimation des chemins diagonaux.

Les ouvertures parcimonieuses par chemins sont aussi étendues aux chemins incomplets ; chemin discontinu, corrompu par du bruit. Cet opérateur propose des temps de calcul qui restent insensibles à la taille de l'ouverture et à la tolérance considérée, tout en étant robuste aux bruits.

Ces opérateurs parcimonieux atteignent une accélération de plusieurs ordres de grandeur par rap- port aux ouvertures par chemins classiques. On donne l'exemple des PPOs pour des chemins incomplets où les temps de calcul sont passés de plusieurs minutes à quelques millisecondes, tout en préservant la qualité du ltrage.

1. PO : Path Opening en anglais

Mots clés : Ouvertures parcimonieuses par chemins, morphologie mathématique, chemins complets, chemins incomplets, ouvertures par chemins, chemins localement maximaux, invariance par rotation.

3.1 État de l'art

Les ouvertures par chemins sont des opérateurs récents en morphologie mathématique. Ils ont été introduits en 2004 par Heijmans et al. [89,90], pour détecter les structures liformes qui ne sont pas nécessairement rectilignes. Ces opérateurs utilisent un graphe sous-jacent qui est orienté et sans cycle an de dénir un ensemble de chemins qui seront analysées et comparées à un paramètre de longueur. Tous les chemins ayant une taille inférieure à ce seuil seront supprimés. Cela permet d'obtenir un ltrage ecace avec un critère de taille, an de détecter les structures nes de l'image.

Cet opérateur est utilisé dans la détection des routes à partir d'images de satellites [238,107], dans le ltrage des vaisseaux sanguins [226], mais aussi dans la caractérisation de milieux breux [38] ou dans la détection des défauts de surfaces de pièces métalliques, chapitre7.

Les temps de calcul de l'implémentation de base des ouvertures par chemins sont importants. Aussi, Appleton et Talbot [5] ont déni un algorithme permettant de réduire considérablement les temps de calcul pour des images en niveaux de gris. Dans le même but, Luengo Hendriks [126] a déni en 2010, un algorithme rapide permettant d'étendre les ouvertures par chemins à des images à n dimensions. Néanmoins, même si les temps ont été considérablement améliorés, ces implémentations restent encore trop lentes pour un nombre important d'applications.

Outre les temps de calcul qui restent parfois prohibitifs pour certaines applications, le manque de robustesse par rapport au bruit est aussi un inconvénient majeur. Du fait de la nature liforme des structures que l'on souhaite préserver, le bruit a un impact majeur et peut déconnecter certaines structures. Pour répondre à cette problématique, Talbot et Appleton [224] développèrent un algorithme pour les chemins incomplets. Une tolérance est insérée permettant de s'abstraire des pixels corrompus par le bruit. Cependant, les temps de calculs augmentent d'une manière considérable limitant ainsi l'utilisation de cet opérateur en pratique.

Enn, le dernier inconvénient des ouvertures par chemins est le manque de précision. En eet, cet opérateur n'est pas invariant par rotation et suivant certaines orientations, on observe une grande variabilité sur la mesure de la taille des structures.

La motivation première de ce travail est de proposer un algorithme très rapide, robuste aux bruits et permettant d'extraire avec précision les structures nes de l'image. Les ouvertures parcimonieuses par chemins permettent de répondre en tous points à ces besoins. L'organisation de ce chapitre est la suivante : la section3.2 résume le fonctionnement des ouvertures par chemins classiques. Les sections

3.3, puis 3.4, introduisent les ouvertures parcimonieuses par chemins, pour des chemins complets et incomplets. Enn, nous verrons quelques considérations pratiques pour obtenir un algorithme rapide, (section3.5), puis nous étudierons la précision, la complexité, les temps de calcul (sections 3.6et3.8). Ce chapitre est illustré par deux exemples d'applications : la détection des défauts de surface de pièces métalliques et la mesure des bres d'élastine du derme de la peau (section3.7).