• Aucun résultat trouvé

Impl´ementation des filtres non-lin´eaires de rang sur des architectures universelles et reconfigurables

N/A
N/A
Protected

Academic year: 2021

Partager "Impl´ementation des filtres non-lin´eaires de rang sur des architectures universelles et reconfigurables"

Copied!
229
0
0

Texte intégral

(1)

Facult´ e de Sciences appliqu´ ees

Service des Syst` emes Logiques et Num´ eriques

Impl´ementation des filtres non-lin´eaires de rang sur des architectures universelles et reconfigurables

Dragomir Milojevic

Promoteur : Prof. Philippe Van Ham

Travail pr´ esent´ e en vue de l’obtention du titre de Docteur en Sciences Appliqu´ ees

Ann´ ee Acad´ emique 2003-2004

(2)
(3)

Je tiens `a remercier plus particuli`erement le Prof. Philippe Van Ham pour ses conseils, pour son soutien et surtout pour ce goˆ ut du savoir qu’il a r´eussi `a me faire partager.

Un grand merci ´egalement au Prof. Nadine Warz´ee, pour son soutien, son efficacit´e et pour sa grande disponibilit´e.

Je remercie ´egalement :

Le Prof. Marc Acheroy et les membres du SIC de l’ ´ Ecole Royale Militaire avec lesquels j’ai eu l’opportunit´e de faire de la recherche appliqu´ee dans un but huma- nitaire et de r´ealiser des exp´eriences pas comme les autres.

Le Prof. Eduardo Sanchez pour son accueil au sein du Laboratoire des Syst`emes Logiques de l’EPFL et pour ce s´ejour inoubliable `a Lausanne.

Les Prof. Pierre Mathys, Prof. Marcel Dotrimont, Prof. Patrick Merken pour avoir accepter de faire partie de mon jury.

Un tout grand merci `a Fr´ed´eric Robert qui a pu trouver un moment pour me lire et pour m’encourager.

Je tiens `a remercier aussi tous les membres de l’´equipe du laboratoire des Syst`emes Logiques et Num´eriques avec qui j’ai partag´e beaucoup plus que le quotidien : prof. Jean Florine, Christophe De Hauwer (¸ca va ˆetre vite fait), Olivier Debeir (on va mettre encore une couje), Serge Joris (ma biche), Don Patrick Bischop (vive la Westmalle), Xavier Baele (le th´e vert au jasmin est dans mon tiroir), Claude Verbeek (Led Zep `a 7h du matin annoncent une belle journ´ee), Constant Hubert (il n’y a qu’un ampli `a lampes qui sonne bien), Denis Haumont, Laurent Mundeleer, C´edric Laugerotte, Thierry Leloup et tous les autres ...

Merci `a Bill, Ella, Sarah, Billie, Isao, Eva, Patricia, et les autres de m’avoir accompagn´e `a tout moment.

Enfin je tiens `a remercier ma Julie, pour son amour, pour sa patience et pour la volont´e

qu’elle a eue de corriger mon mauvais fran¸cais entre les bains de Dora et Sasha et ses dossiers

des r´efugi´es Rwandais.

(4)
(5)

Table des mati` eres

R´ esum´ e 1

Abstract 1

1 Introduction 5

1.1 Pr´esentation g´en´erale . . . . 5

1.2 Contenu et contributions . . . . 8

1.2.1 Contenu . . . . 8

1.2.2 Contributions . . . . 9

1.3 Traitement . . . . 10

1.3.1 Images et transformations . . . . 10

1.3.1.1 Notations . . . . 10

1.3.1.2 Transformations ponctuelles . . . . 12

1.3.1.3 Transformations spatiales . . . . 12

1.3.2 Filtres non-lin´eaires . . . . 13

1.3.2.1 Classification . . . . 13

1.3.2.2 Filtres non-lin´eaires de Classe I . . . . 14

1.3.2.3 Filtres non-lin´eaires de Classe II . . . . 18

1.3.2.4 Exemples d’application des filtres non-lin´eaires . . . . 20

1.4 Machine . . . . 23

1.4.1 Historique . . . . 23

1.4.2 Classification des architectures . . . . 27

1.4.2.1 Taxinomies des architectures universelles . . . . 27

1.4.2.2 Taxinomies des architectures d´edicac´ees . . . . 31

1.4.2.3 Taxinomies des architectures selon la configurabilit´e . . . . . 32

1.5 Performance . . . . 33

1.5.1 Performance du mat´eriel . . . . 33

1.5.1.1 Param`etres classiques . . . . 34

1.5.1.2 Param`etre commun . . . . 35

1.5.2 Performance d’une application . . . . 37

1.5.2.1 Temps d’ex´ecution . . . . 37

1.5.2.2 Acc´el´eration . . . . 37

1.5.2.3 Mesure sp´ecifique pour le traitement d’images . . . . 38

(6)

2 Architecture universelle 39

2.1 Parall´elisme des architectures universelles . . . . 40

2.1.1 Parall´elisme intra-processeur . . . . 40

2.1.1.1 Parall´elisme des instructions . . . . 40

2.1.1.2 Probl`emes li´es `a l’exploitation du parall´elisme des instructions 45 2.1.1.3 Parall´elisme des donn´ees . . . . 48

2.1.2 Parall´elisme inter-processeur . . . . 49

2.1.2.1 Parall´elisme des syst`emes `a m´emoire partag´ee . . . . 49

2.1.2.2 Parall´elisme des syst`emes `a m´emoire repartie . . . . 52

2.1.3 Processeurs actuels . . . . 52

2.1.4 Architectures universelles cibl´ees . . . . 53

2.1.4.1 Architecture standard . . . . 53

2.1.4.2 Extensions . . . . 55

2.1.4.3 Diff´erences entre Pentium 2 et Pentium 4 . . . . 57

2.1.4.4 Performance de la m´emoire . . . . 57

2.1.5 Exploitation des diff´erents niveaux de parall´elisme . . . . 58

2.1.5.1 Acc`es au parall´elisme intra-processeur . . . . 58

2.1.5.2 Acc`es au parall´elisme inter-processeur . . . . 60

2.2 Exploitation de l’architecture standard . . . . 62

2.2.1 Impl´ementation de filtre de rang g´en´eralis´e . . . . 63

2.2.1.1 Tri `a bulle (Bubble sort) . . . . 63

2.2.1.2 Tri par s´election (Selection sort) . . . . 63

2.2.1.3 Tri par insertion (Insertion sort) . . . . 64

2.2.1.4 Tri rapide (Quicksort) . . . . 64

2.2.1.5 Tri par fusion (Merge sort) . . . . 66

2.2.1.6 Tri par tas (Heap Sort) . . . . 67

2.2.1.7 Tri par classement (Bucket sort) . . . . 67

2.2.2 Impl´ementation des filtres sp´ecifiques . . . . 70

2.2.3 Conclusion . . . . 70

2.3 Exploitation de parall´elisme intra-processeur . . . . 73

2.3.1 Librairie de traitement des images Intel . . . . 74

2.3.2 Programmation des extensions : filtres sp´ecifiques Min/Max . . . . 74

2.3.2.1 Description g´en´erale de l’algorithme . . . . 74

2.3.2.2 Parcours horizontal . . . . 80

2.3.2.3 Parcours vertical . . . . 82

2.3.2.4 Analyse `a l’aide de VTune . . . . 83

2.3.3 Programmation des extensions : filtre M´edian . . . . 85

2.3.4 Programmation des extensions : filtre d’un rang quelconque . . . . 86

2.3.5 Filtres d´eriv´es et/ou la chaˆıne de traitement . . . . 86

2.3.6 Filtre de rang g´en´eralis´e . . . . 86

2.4 Exploitation du parall´elisme inter-processeur . . . . 88

2.4.1 Ex´ecution sur deux processeurs . . . . 88

2.5 Conclusion . . . . 90

(7)

3 Architectures d´ edicac´ ees 91

3.1 Circuits FPGAs . . . . 92

3.1.1 Architecture . . . . 92

3.1.1.1 Description g´en´erale . . . . 92

3.1.1.2 Ressources typiques des FPGAs actuels . . . . 93

3.1.2 Impl´ementation des circuits logiques dans les FPGA . . . . 95

3.1.2.1 Processus d’impl´ementation . . . . 95

3.1.2.2 Perspectives de la description des circuits . . . . 97

3.1.2.3 Efficacit´e des outils actuels d’impl´ementation . . . . 98

3.1.3 Applications des FPGAs . . . . 100

3.2 Parall´elisation du calcul des filtres non-lin´eaires . . . . 101

3.2.1 Classification des algorithmes et des architectures existants . . . . 101

3.2.2 Architectures matricielles . . . . 104

3.2.2.1 Mode bit-s´erie . . . . 104

3.2.2.2 Mode bit-parall`ele . . . . 105

3.2.3 R´eseaux de tri . . . . 106

3.2.4 Architectures bit-s´erie . . . . 109

3.2.4.1 Algorithme pour le filtre de rang . . . . 109

3.2.4.2 Cas particulier de filtre m´edian . . . . 111

3.2.4.3 G´en´eralisation de l’algorithme pour les filtres Min/Max . . . 114

3.2.4.4 G´en´eralisation pour les autres filtres non-lin´eaires . . . . 115

3.2.5 Architectures d´edi´ees aux filtres de piles . . . . 116

3.3 Conclusion . . . . 118

3.3.1 Performance des syst`emes d´edicac´es existants . . . . 118

3.3.2 Remarques . . . . 119

3.3.2.1 Remarques g´en´erales . . . . 119

3.3.2.2 Remarques sp´ecifiques `a l’architecture . . . . 120

3.3.3 Objectifs . . . . 122

4 Architecture reconfigurable 123 4.1 Description globale du syst`eme d´edicac´e reconfigurable . . . . 126

4.1.1 Introduction . . . . 126

4.1.2 Parties constitutives . . . . 127

4.1.2.1 Partie traitement . . . . 128

4.1.2.2 M´emoire globale . . . . 129

4.1.2.3 Unit´e de contrˆole . . . . 131

4.1.3 Hypoth`eses de travail . . . . 132

4.2 M´emoire locale des unit´es de traitement . . . . 133

4.2.1 Description de la m´emoire locale source . . . . 133

4.2.2 Description de la m´emoire locale destination . . . . 138

4.2.3 Validation de la description . . . . 139

4.2.4 Impl´ementation . . . . 141

4.2.5 Discussion . . . . 143

4.3 Unit´es de traitement . . . . 144

4.3.1 Algorithmes . . . . 144

4.3.1.1 Algorithme Max . . . . 144

4.3.1.2 Algorithme Min . . . . 146

(8)

4.3.1.3 Algorithme pour le filtre g´en´eralis´e . . . . 146

4.3.2 Description de l’unit´e de traitement pour les filtres Max/Min . . . . . 149

4.3.3 Description de l’unit´e de traitement pour le filtre de rang g´en´eralis´e . 153 4.3.3.1 Algorithme d’´elimination successives des maxima/minima lo- caux . . . . 153

4.3.3.2 Algorithme de Danielsson . . . . 154

4.3.4 Validation de la description . . . . 156

4.3.5 Impl´ementation . . . . 159

4.3.5.1 Unit´e de traitement bas´ee sur l’algorithme Min/Max . . . . . 161

4.3.5.2 Unit´e de traitement bas´ee sur l’algorithme de Danielsson . . 161

4.3.5.3 Discussion . . . . 162

4.4 Syst`eme reconfigurable complet . . . . 163

4.4.1 Description du syst`eme complet . . . . 163

4.4.2 Impl´ementation d’un module de traitement . . . . 164

4.4.3 Etablissent d’une correspondance entre ressources n´ecessaires et res- ´ sources disponibles . . . . 169

4.4.4 Impl´ementation du syst`eme complet . . . . 170

4.4.5 D´ebit des pixels trait´es . . . . 171

4.5 Conclusion . . . . 172

5 Discussion et conclusion 173 5.1 Probl`eme, motivation et int´erˆet . . . . 173

5.2 Impl´ementation sur l’architecture universelle . . . . 174

5.3 Impl´ementation sur des architectures d´edicac´ees reconfigurables . . . . 175

5.4 Am´eliorations possibles . . . . 177

5.5 Conclusion finale . . . . 178

A Architecture universelle 181 A.1 Pr´esentation g´en´erale de l’application . . . . 181

A.2 Mesure de temps d’ex´ecution d’une proc´edure . . . . 183

A.2.1 Diff´erentes m´ethodes de mesure de temps . . . . 183

A.2.2 Analyse des mesures pour les proc´edures types . . . . 183

A.3 Fonctionnement en mode multithread . . . . 187

A.3.1 M´ecanisme . . . . 187

A.3.2 Influence de la priorit´e des threads sur le temps d’ex´ecution . . . . 187

A.4 Mesure de performance de la m´emoire . . . . 188

A.5 Code auto-modifiable pour le calcul d’adresses . . . . 188

B Circuits FPGAs Xilinx 191 B.1 Architecture des FPGAs Virtex . . . . 192

B.1.1 Cellule logique ´el´ementaire . . . . 192

B.1.2 Modes de fonctionnement d’un CLB . . . . 193

B.1.3 Bloc de m´emoire RAM . . . . 194

B.1.4 Multiplicateur . . . . 194

B.1.5 Digital Clock Manager - DCM . . . . 195

B.1.6 Blocs d’entr´ee/sortie . . . . 195

B.1.7 R´eseau d’interconnexions . . . . 195

(9)

B.1.8 Architecture . . . . 196 B.2 Circuits FPGAs de la famille Virtex II . . . . 196 B.3 Performance des FPGAs . . . . 196

C Architecture reconfigurable 199

C.1 Impl´ementation des circuits propos´ees . . . . 199 C.2 Validation des unit´es de traitement pour des voisinages de 5 × 5 et 7 × 7 pixels 203 C.3 Validation des modules de traitement apr`es placement et routage . . . . 207

Glossaire 211

Bibliographie 213

(10)
(11)

R´ esum´ e

Les filtres non-lin´eaires de rang sont souvent utilis´es dans le but de rehausser la qualit´e d’une image num´erique. Leur application permet de faciliter l’interpr´etation visuelle et la compr´ehension du contenu des images que ce soit pour un op´erateur humain ou pour un traitement automatique ult´erieur. Dans le pipeline d’une chaˆıne habituelle de traitement des images, ces filtres sont appliqu´es g´en´eralement dans la phase de pr´e traitement, juste apr`es l’acquisition et avant le traitement et l’analyse d’image proprement dit.

Les filtres de rang sont consid´er´es comme un important goulot d’´etranglement dans la chaˆıne de traitement, `a cause du tri des pixels dans chaque voisinage, `a effectuer pour tout pixel de l’image. Les temps de calcul augmentent de fa¸con significative avec la taille de l’image `a traiter, la taille du voisinage consid´er´e et lorsque le rang approche la m´ediane.

Cette th`ese propose deux solutions `a l’acc´el´eration du temps de traitement des filtres de rang.

La premi`ere solution vise l’exploitation des diff´erents niveaux de parall´elisme des ordina- teurs personnels d’aujourd’hui, notamment le parall´elisme de donn´ees et le parall´elisme inter- processeurs. Une telle approche pr´esente un facteur d’acc´el´eration de l’ordre de 10 par rapport

`a une approche classique qui fait abstraction du mat´eriel grˆace aux compilateurs des langages

´evolu´es. Si le d´ebit r´esultant des pixels trait´es, de l’ordre d’une dizaine de millions de pixels par seconde, permet de travailler en temps r´eel avec des applications vid´eo, peu de temps reste pour d’autres traitements dans la chaˆıne.

La deuxi`eme solution propos´ee est bas´ee sur le concept de calcul reconfigurable et r´ealis´ee `a l’aide des circuits FPGA (Field Programmable Gate Array). Le syst`eme d´ecrit combine les algorithmes de type bit-s´erie et la haute densit´e des circuits FPGA actuels. Il en r´esulte un syst`eme de traitement hautement parall`ele, impliquant des centaines d’unit´es de traitement par circuit FPGA et permet d’arriver `a un facteur d’acc´el´eration suppl´ementaire de l’ordre de 10 par rapport `a la premi`ere solution pr´esent´ee. Un tel syst`eme, ins´er´e entre une source d’image num´erique et un syst`eme hˆote, effectue le calcul des filtres de rang avec un d´ebit de l’ordre de centaine de millions de pixels par seconde.

Mots-clefs

Traitement des images, filtres non-lin´eaires, filtres de rangs, calcul parall`ele, calcul reconfigu-

rable, algorithmes bit-s´erie, circuits FPGA.

(12)
(13)

Abstract

Ranking filters are non-linear filters frequently used in digital image processing for image restoration and enhancement. Their application makes the visual interpretation and the com- prehension of the content of the image easier, that is for a visual inspection of human operator or a later automatic treatment. In the pipeline of the image processing chain, these filters are generally applied at the stage of pre-processing, just after the acquisition and before the actual image processing or analysis tasks take place.

Ranking filters represent a serious bottleneck in the image processing chain because we need to sort pixels in each neighborhood, the operation has to be repeated for every pixel of the image to be processed. The computing time increases to a significant degree with the size of the image to be treated, the size of the neighborhood considered and when the rank approaches the median.

This thesis proposes two solutions for the problem of ranking filter computing time accelera- tion.

The first solution aims the exploitation of the various levels of parallelism of personal compu- ters today and in particular the data parallelism and the parallelism between processors. Such an approach shows a factor of acceleration of about 10, compared to a traditional approach, which disregards the underlying hardware thanks to the compilers of the advanced computer languages. If the resulting data throughput makes it possible to work in real time with video applications, for the rates of about 10 million of pixels per second, little time remains for other treatments in the processing chain.

The second solution is based on a concept of reconfigurable computing and FPGA (Fied Programmable Gate Array) circuits. The described system combines the power of bit-serial algorithms and the high density of today’s FPGA circuits. The resulting system is highly parallel, implying hundreds of processing elements per FPGA and exhibits a supplementary factor of acceleration of 10 compared to the first solution proposed. Such a system, that can be easily inserted between the source of the digital image and a host system, carries out the computation of ranking filters at the rates of about hundred millions of pixels per second.

Keywords

Image processing, non-linear filtering, ranking filters, parallel computation, reconfigurable

computing, bit-serial algorithms, FPGA circuits.

(14)
(15)

Introduction

1.1 Pr´ esentation g´ en´ erale

La discipline de traitement des images num´eriques est souvent repr´esent´ee comme une chaˆıne compos´ee de trois maillons : l’acquisition de l’image, le traitement et/ou l’analyse suivis de l’exploitation des donn´ees obtenues. L’image, au d´epart repr´esent´ee par un signal analogique, est transform´ee dans le domaine discret lors de l’acquisition. Le passage du monde analogique vers le monde num´erique est souvent accompagn´e par une d´egradation de l’infor- mation, dˆ ue principalement aux imperfections du processus d’acquisition, de conversion et de transmission. Lors du traitement, l’aspect visuel de l’image num´erique acquise peut ˆetre am´elior´e en effectuant diverses op´erations de filtrage. Dans la phase d’analyse, une ou plusieurs caract´eristiques significatives sont extraites de l’information num´erique d’une seule ou d’une s´erie d’images. Les param`etres ainsi obtenus sont ensuite utilis´es par un op´erateur humain ou par un syst`eme dot´e d’une intelligence artificielle afin de mieux saisir l’information visuelle, de prendre une d´ecision particuli`ere, ou encore d’automatiser enti`erement une activit´e.

Actuellement, le processus d’acquisition des images num´eriques peut se faire avec une tr`es grande pr´ecision

1

et vitesse

2

ce qui a pour cons´equence un d´ebit de donn´ees qui peut facilement atteindre plusieurs dizaines de m´egaoctets par seconde, auquel le syst`eme de traitement et d’analyse

3

doit pouvoir faire face. Si `a une aussi grande quantit´e de donn´ees on ajoute la complexit´e sans cesse croissante des traitements, le syst`eme qui automatise le processus de traitement doit pouvoir pr´esenter une importante puissance de calcul.

Pour atteindre une telle puissance de traitement trois solutions s’imposent d’avantage : 1. augmenter la vitesse des syst`emes de traitement existants,

1En 2004, les circuits CCD courants sont dot´es d’une r´esolution de l’ordre de plusieurs megapixels, chaque pixel ´etant quantifi´e sur 8 `a 12 bits, par composante couleur acquise. Une seule image est donc repr´esent´ee par une quantit´e d’information de l’ordre de quelques m´egaoctets.

2Pour les cam´eras num´eriques rapides, la fr´equence d’acquisition peut atteindre plusieurs centaines d’images par seconde.

3La phase de traitement devra de toute fa¸con faire face `a toute la quantit´e de donn´ees acquises. Dans la phase d’analyse on peut imaginer travailler sur une quantit´e d’information plus r´eduite : passage `a la repr´esentation par objets, r´egions d’int´erˆet, codage des contours etc.

(16)

2. distribuer le calcul entre plusieurs syst`emes de traitement existants : la parall´elisation, 3. ou cr´eer des syst`emes d´edicac´es, ´eventuellement parall`eles.

Nous d´evelopperons chacune de ces solutions dans les trois paragraphes suivantes.

L’augmentation de la vitesse des syst`emes informatiques suit la pr´ediction de Gordon Moore annonc´ee d´ej`a en 1965 [Moo65]. Cette pr´ediction, plus connue sous le nom de la loi de Moore, stipule que la vitesse de fonctionnement des processeurs double tous les 18 mois, chiffre qui se voit v´erifi´e depuis

4

. Cependant la raison nous sugg`ere que le respect de cette loi ne pourra pas continuer ind´efiniment car une limite, impos´ee par des lois physiques, doit exister. En 2000, les pr´evisions sur le d´eveloppement de la technologie fixent cette limite dans deux d´ecennies [BW00].

Des facteurs d’acc´el´eration beaucoup plus importants peuvent ˆetre obtenus en distribuant le calcul entre plusieurs syst`emes de traitement. Le parall´elisme et le traitement d’images ont une longue histoire dont les d´ebuts remontent aux ann´ees ’80 [Duf83]. Depuis, d’impor- tantes avanc´ees technologiques dans la fabrication des composantes ´electroniques ont permis la r´ealisation de syst`emes d’un parall´elisme de plus en plus important, pour un prix de plus en plus faible.

La naissance de la nouvelle g´en´eration des circuits logiques programmables - les FPGA

5

en 1986 [CDF

+

86], introduit un important changement du paradigme de calcul automatis´e, celui du calcul reconfigurable. Grˆace `a ces circuits il est possible de concevoir les syst`emes de trai- tement o` u le mat´eriel “s’adapte” `a un probl`eme particulier de calcul, d’ou leur appellation. Le haut degr´e d’int´egration des FPGAs implique la possibilit´e de parall´elisation du traitement au sein d’un mˆeme circuit, dont le degr´e d´ependra, bien entendu, de la complexit´e du traite- ment souhait´e. Enfin le prix des FPGA n’est pas prohibitif, il s’agit de circuits commerciaux, destin´es `a l’industrie ´electronique de faible volume de production ou l’usage des ASIC

6

ne serait pas rentable.

Les deux derni`eres solutions au probl`eme du traitement des images num´eriques m´eritent donc d’ˆetre ´etudi´ees de plus pr`es et repr´esentent le principal fil conducteur de cette th`ese.

Cette br`eve pr´esentation g´en´erale a permis de mettre en ´evidence trois pˆoles : le traitement, la machine et la performance qui dictent la structure de ce chapitre d’introduction, qui comporte quatre autres sections :

Section 2 - Propose une br`eve description du contenu de cette th`ese ainsi que sa contribution dans le domaine de l’acc´el´eration du temps de calcul d’un type de traitement particulier.

Section 3 - Donne une introduction au probl`eme particulier du traitement des images num´eriques qui nous int´eresse : les filtres non-lin´eaires. Par leur nature, ces traitements s’av`erent particuli`erement inadapt´es aux architectures classiques et repr´esentent souvent le goulot d’´etranglement dans la chaˆıne de traitement.

4Dans le texte original Moore parle de 12 mois, chiffre qui a ´et´e correct durant les quelques premi`eres ann´ees qui ont suivi la publication de l’article. Ensuite, la course a quelque peu ralenti et le chiffre a ´et´e corrig´e

`

a 18 mois.

5Field Programmable Gate Array.

6Application Specific Integrated Circuit.

(17)

Section 4 - Propose un parcours des diff´erentes architectures informatiques. Plusieurs taxi- nomies pr´esent´ees permettrons de se familiariser avec les notions g´en´erales li´ees au calcul parall`ele et n´ecessaires pour le d´eveloppement de la suite.

Section 5 - Nous nous int´eressons `a la performance de calcul et cette section a pour but

de montrer comment elle peut ˆetre mesur´ee. A la mˆeme occasion, une comparaison de la

puissance brute de calcul des processeurs et des FPGAs permettra de justifier l’emploi de ces

derniers au probl`eme pos´e.

(18)

1.2 Contenu et contributions

1.2.1 Contenu

Cette th`ese traite du probl`eme de l’acc´el´eration du temps de calcul d’une classe particuli`ere des filtres non-lin´eaires `a l’aide des architectures universelles et des architectures d´edicac´ees reconfigurables, massivement parall`eles.

De tous les filtres non-lin´eaires utilis´es dans le traitement des images num´eriques nous allons nous limiter uniquement aux filtres de rang, car ces filtres repr´esentent la brique de base pour la construction de la plupart des filtres non-lin´eaires. Ce choix est encore justifi´e par le fait qu’il s’agit de filtres efficaces, mais lents, surtout lorsqu’il s’agit de les calculer `a l’aides des architectures traditionnelles de type SISD.

Les impl´ementations propos´ees mettent en opposition deux approches distinctes des architec- tures informatiques :

1. Approche des unit´es de traitement tr`es rapides mais d’un parall´elisme faible.

2. Approche d’un parall´elisme d’unit´es de traitement beaucoup plus massif, mais de vitesse de fonctionnement plus faible.

Rien ne nous permet de dire a priori laquelle des deux approches est la plus avantageuse. La r´eponse est fortement li´ee `a un tout indissociable : le probl`eme - l’algorithme - le programme - le mat´eriel. Ce dernier maillon est fortement li´e `a un moment pr´ecis des technologies d´eploy´ees pour sa fabrication et aura une influence directe sur la performance du traitement.

Mis `a part ce Chapitre d’introduction, cette th`ese en propose quatre autres : Chapitre 2 - Architecture universelle

Ici nous allons traiter de l’impl´ementation des filtres de rangs sur des ordinateurs person- nels en tant qu’exemple type d’une architecture universelle, dot´ee d’un faible nombre d’unit´es de traitement fonctionnant `a grande vitesse. Nous allons montrer les limita- tions de tels syst`emes surtout lorsqu’il s’agit de calculer les filtres consid´er´es pour des voisinages de grande taille.

Chapitre 3 - Architectures d´ edicac´ ees

Dans ce Chapitre on trouvera la description d’un ensemble d’algorithmes et de syst`emes d´edicac´es existants permettant de calculer les filtres de rangs. Ce parcours nous aidera

`a mettre en ´evidence les d´esavantages des syst`emes propos´es jusqu’`a pr´esent et justifier la n´ecessit´e d’une approche alternative.

Chapitre 4 - Architecture reconfigurable

Ce Chapitre contient la description d’un syst`eme reconfigurable de traitement original, caract´eris´e par un grand nombre d’unit´es de traitement d’une vitesse faible de fonction- nement. N´eanmoins nous allons montrer qu’un tel syst`eme permet d’arriver `a un d´ebit de traitement beaucoup plus important que celui d’une architecture universelle et des architectures d´edicac´ees existantes.

Chapitre 5 - Discussion et conclusion

Enfin dans ce dernier Chapitre nous allons comparer les diff´erents r´esultats obtenus, ce

qui nous permettra de conclure.

(19)

1.2.2 Contributions Architecture universelle

L’op´eration de tri constitue la tˆache la plus r´ecurrente dans le monde de l’informatique. De ce fait un grand nombre d’algorithmes de tri a ´et´e propos´e, surtout pour des architectures universelles de type SISD. Malheureusement ces algorithmes ne sont pas vraiment adapt´es au parall´elisme de type SIMD et MIMD (ici on fait r´ef´erence aux stations multi-processeurs `a m´emoire partag´ee) int´egr´es dans la plupart d’architectures universelles d’aujourd’hui.

1. La contribution principale de cette th` ese dans l’´ etude des architectures uni- verselles se situe dans la conception d’algorithmes et de programmes ori- ginaux, permettant une exploitation optimale des diff´ erents niveaux de pa- rall´ elisme pour le calcul des filtres de rang. La d´ emarche, celle d’une ´ etude du mat´ eriel sous-jacent, de la conception d’algorithmes et de leur codage en fonction du mat´ eriel, d´ emontre que pour ces applications particuli` eres il est possible d’obtenir d’importants facteurs d’acc´ el´ eration par rapport ` a une d´ emarche classique o` u la seule ´ etude algorithmique fait abstraction compl` ete du mat´ eriel.

Architecture reconfigurable

Les diff´erentes impl´ementations des filtres de rang dans les architectures d´edicac´ees propos´ees jusqu’`a pr´esent ne concernent que des voisinages de petite taille et des valeurs de rang pour les- quelles les algorithmes peuvent ˆetre consid´erablement simplifi´es. De plus, les impl´ementations existantes n’envisagent pas la parall´elisation du traitement, actuellement possible `a une grande

´echelle grˆace au haut degr´e d’int´egration des circuits int´egr´es.

2. Le principal apport de cette th` ese dans l’acc´ el´ eration du calcul des filtres de rang ` a l’aide des architectures reconfigurables est li´ e au d´ eveloppement d’un syst` eme de traitement original, ayant les caract´ eristiques suivantes :

(a) Le syst` eme de traitement permet de travailler avec des voisinages dont la taille et la forme sont param´ etrables. C’est un point important car on souhaite pouvoir adapter au mieux le type de filtre ` a l’application donn´ ee.

(b) Le syst` eme permet de calculer les filtres de n’importe quelle valeur de rang, ce qui donne l’acc` es ` a une multitude des filtres diff´ erents, utilis´ es

`

a des fins diff´ erentes.

(c) L’emploi des algorithmes en bit-s´ erie permet de maximiser le nombre

d’unit´ es de traitements pour un circuit FPGA de haute densit´ e ainsi que

leur vitesse de fonctionnement. Ces deux points ont pour corollaire la

possibilit´ e d’un haut d´ ebit des pixels trait´ es, beaucoup plus important

que celui obtenu avec des architectures universelles.

(20)

1.3 Traitement

Traitement

Performance

Machine ...we would like to recall that the present knowledge of the hu- man visual system indicates that it possesses nonlinear cha- racteristics. This should be taken into account in image filte- ring.

Fundamentals of non linear digital filtering.

Jakko Astola, Pauli Kuosmannen.

1.3.1 Images et transformations

1.3.1.1 Notations

Une image num´erique monochromatique est un signal de luminosit´e bidimensionnel, dis- cret, pr´esent´e sous forme d’une matrice not´ee I [i, j ] avec 0 ≤ i < I

x

et 0 ≤ j < I

y

. Pour des raisons de simplicit´e d’´ecriture, nous allons noter l’image sous forme d’un vecteur I[i], o` u chaque pixel est identifi´e par un seul indice i avec 0 ≤ i < N

I

et o` u N

I

= I

x

∗ I

y

.

On d´efinit le voisinage d’un pixel comme un ensemble de pixels qui se trouvent dans son entourage directe, dans un espace de forme rectangulaire. La taille de cette espace est d´efini par les distances V

x1

, V

x2

, V

y1

et V

y2

dans les quatre principales directions en partant du pixel consid´er´e (voir Figure 1.1). Comme pour l’image, le voisinage d’un pixel est pr´esent´e sous forme d’une matrice not´ee V [m, n]. Pour des raisons de simplicit´e d’´ecriture nous utiliserons un seul indice pour d´esigner un ´el´ement de ce voisinage : V [m] avec 0 ≤ m < N

V

et o` u N

V

= V

x

∗ V

y

= (V

x1

+ V

x2

+ 1) ∗ (V

y1

+ V

y2

+ 1).

Pour tous les ´el´ements du vecteur I , i.e. tous les pixels de l’image, dont l’indice i respecte la condition suivante :

i

0

+ n · (I

nx

+ V

x1

) ≤ i ≤ i

0

+ n · (I

nx

+ V

x1

) + I

nx

(1.1) o` u :

n ∈ { 0, . . . , I

ny

} i

0

= I

x

· V

y1

+ V

x1

I

nx

= I

x

− (V

x1

+ V

x2

)

I

ny

= I

y

− (V

y1

+ V

y2

) (1.2)

on peut d´efinir un voisinage V , not´e V

i

. Le parcours du vecteur I `a l’aide de l’indice i permet

donc d’obtenir un voisinage V “glissant” sur l’image. Signalons que les pixels du vecteur I

qui ne satisfont pas l’´equation 1.1 appartiennent au bord de l’image.

(21)

On d´efinit une fenˆetre de l’image I comme une partie de cette image, de forme rectangulaire, not´ee sous forme d’une matrice F [k, l] avec 0 ≤ k < F

x

, 0 ≤ l < F

y

et o` u F

x

, F

y

d´esignent respectivement la taille horizontale et verticale de la fenˆetre. Pour une fenˆetre F et une image I nous avons toujours F

x

≤ I

x

et F

y

≤ I

y

. Tout comme pour l’image et le voisinage, une fenˆetre sera not´ee sous forme d’un vecteur F [k], avec 0 ≤ k < N

F

.

L’image I est d´ecoup´ee en un ensemble de fenˆetres F qui pr´esentent un recouvrement de V

x1

+ V

x2

et V

y1

+ V

y2

pixels (voir Figure 1.1). Cet ensemble de fenˆetres permet d’acc´eder `a tous les voisinages V

i

d´efinis par l’´equation 1.1.

La Figure 1.1 montre une image et deux fenˆetres successives de cette image (en trait pointill´e et en trait plein). Pour chaque fenˆetre on peut d´efinir (F

x

− V

x1

− V

x2

) ∗ (F

y

− V

y1

− V

y2

) voisinages : les pixels appartenant aux deux rectangles gris´es. Pour la premi`ere fenˆetre il s’agit du rectangle gris clair et pour la deuxi`eme fenˆetre du rectangle gris fonc´e. Un agrandissement de la premi`ere fenˆetre illustre deux voisinages successifs des pixels i (en trait plein) et i + 1 (en trait pointill´e).

F

i

F F

Fy F F

Fx F F

I

y

II

Vx1 V

V VVVx2

F

i+1

I

ny

II

I

x

II I

nx

II

Vx1 V

V VVVx2

Vy1 V V

Vy2 V V

Vi

V V VVVi+1

Fig. 1.1: Notations utilis´ees pour l’image, la fenˆetre et le voisinage.

On consid`ere toutes les fenˆetres F d’une image I permettant de couvrir tous les pixels d´efinis par l’´equation 1.1. Comme en toute g´en´eralit´e nous avons :

I

x

mod(F

x

− V

x2

)

6

= 0 I

y

mod(F

y

− V

y2

)

6

= 0 (1.3)

un certain recouvrement des fenˆetres aux extr´emit´es de l’image est n´ecessaire afin de couvrir

tous les pixels indiqu´es.

(22)

Dans le domaine spatial, le filtrage d’une image num´erique consiste `a appliquer un op´erateur de transformation de chaque pixel de l’image initiale I[i] en fonction des valeurs des pixels d´efinis dans le voisinage V

i

. D’une mani`ere tout `a fait g´en´erale cette transformation est not´ee : I ˜ = T { I, V

i

} , ou alors I ˜ (i) = T { I(i), V

i

} (1.4) o` u ˜ I repr´esente l’image r´esultante.

1.3.1.2 Transformations ponctuelles

Si le voisinage du pixel est nul, les transformations appliqu´ees sont alors dites ponctuelles (les op´erateurs de pixel). L’exemple type d’un tel traitement est le seuillage, couramment utilis´e pour s´eparer les objets de leur arri`ere plan. Un autre exemple sont les modifica- tions lin´eaires ou non-lin´eaires de l’histogramme qui peuvent ˆetre utilis´ees pour am´eliorer le contraste de l’image. De telles op´erations peuvent ˆetre r´ealis´ees `a l’aide de tables pr´e-calcul´ees avant le traitement, afin de limiter le temps de calcul exclusivement au temps d’acc`es `a la m´emoire.

1.3.1.3 Transformations spatiales

Si le voisinage V

i

n’est pas nul, nous avons des transformations dites spatiales (les op´erateurs de voisinage), permettant de s’attaquer aux divers probl`emes habituellement rencontr´es dans le traitement des images num´eriques : la suppression du bruit, le rehaussement, la restauration, l’analyse morphologique et autres. La transformation doit ˆetre calcul´ee pour chaque voisinage en particulier, car pour les tailles habituelles de voisinage, `a savoir les voisinages carr´es de 3 × 3, 5 × 5 et 7 × 7 pixels et pour le nombre des niveaux diff´erents sur lesquels la luminosit´e d’un pixel est quantifi´ee, les tables pr´e-calcul´ees d´epasseraient largement la limite des m´emoires actuelles.

Filtres lin´ eaires et non-lin´ eaires

Il existe une analogie entre les transformations spatiales et la notion de filtrage d´efini par la th´eorie du traitement des signaux analogiques, unidimensionnels. Le filtrage y est d´efini comme une transformation du signal `a l’entr´ee par un syst`eme lin´eaire, invariant dans le temps

7

: le filtre.

La notion de filtrage d’un signal unidimensionnel et continu peut ˆetre ´etendue aux signaux discrets, bi-dimensionnels, telles qu’une image num´erique. Dans ce cas l’op´eration de filtrage consiste `a calculer le produit de convolution entre l’image et la r´eponse impulsionnelle d’un filtre h, de taille H

x

× H

y

:

I(x, y) = ˜

Hx

X

i=0 Hy

X

j=0

I(i, j) ∗ h(x − i, y − j) (1.5)

7Le syst`eme est lin´eaire si la transformation du signal `a l’entr´ee est lin´eaire :T(af1[t] +bf2[t]) =aT(f1[t])+

bT(f2[t]). Le syst`eme est invariant dans le temps si une translation dans le temps du signal `a l’entr´ee se traduira par une mˆeme translation dans le temps du signal de sortie.

(23)

En fonction du type de filtre choisi, les diff´erents effets peuvent ˆetre obtenus : suppression des fortes transitions des niveaux de luminosit´e et apparition de flou ; ou justement le contraire : suppression de la composante continue dans l’image et mise en ´evidence des variations rapides.

Par opposition aux filtres lin´eaires o` u la valeur filtr´ee de l’image est obtenue par une combi- naison lin´eaire des pixels du voisinage, dans le filtrage non-lin´eaire cette valeur est obtenue sur base de l’information statistique de pixels voisins. Ainsi, chaque voisinage V

i

est tri´e au pr´ealable, et la valeur filtr´ee est choisie sur base d’une fonction de rang.

Dans le cadre de cette th`ese nous allons nous limiter aux filtres non-lin´eaires pour des raisons suivantes :

1. La parall´elisation des filtres lin´eaires est un probl`eme d´ej`a largement ´etudi´e et leur impl´ementation dans les FPGAs est devenu une pratique courante (voir par exemple [CME93]).

2. La diversit´e des filtres non-lin´eaires est tr`es importante et leur application fr´equente pour un grand nombre des probl`emes en traitement des images, comme nous allons le voir par la suite. Pour certains d’entre eux ils se montrent extrˆemement efficaces, beaucoup plus efficaces que les filtres lin´eaires.

3. L’op´eration de tri est coˆ uteuse malgr´e l’existence d’algorithmes rapides et la grande vitesse des architectures actuelles. En effet, le tri dans le voisinage, mˆeme d’une petite taille, doit ˆetre effectu´e pour tout pixel de l’image initiale, c’est `a dire de l’ordre du million de fois par image.

1.3.2 Filtres non-lin´ eaires

1.3.2.1 Classification

Astola et Kuosmanen d´ecrivent dans [AK97], un grand nombre de filtres non-lin´eaires appliqu´es au traitement des images num´eriques et proposent deux taxinomies de ces filtres. La premi`ere introduit les classes suivantes : les filtres lin´eaires g´en´eralis´es, les filtres bas´es sur le tri, les filtres morphologiques et une classe “autre”. La deuxi`eme taxinomie est faite sur base de l’interpr´etation de filtre en tant qu’estimateur ou en tant que filtre g´eom´etrique (filtres morphologiques). Les deux auteurs soulignant qu’aucune des deux taxinomies ne pr´etend ˆetre compl`ete. En outre, ils ´emettent une r´eserve quant `a l’existence d’une taxinomie parfaite permettant de classer tous les filtres non-lin´eaires existants.

Comme nous nous int´eressons aux aspects de calcul de ces filtres, nous proposons ici une classification bas´ee sur la complexit´e des op´erations impliqu´ees. Nous d´efinissons alors deux classes des filtres non-lin´eaires : la Classe I et la Classe II.

Les filtres de la Classe I n´ecessitent toujours une op´eration de tri, sur un voisinage complet ou sur un ensemble de sous-voisinages. D’autres op´erations telles que la pond´eration, la s´election, le calcul de la valeur moyenne peuvent pr´ec´eder ou suivre l’op´eration de tri.

Les filtres de la Classe II ne doivent pas forcement impliquer un op´erateur de tri, mais peuvent

impliquer le calcul de toute fonction non-lin´eaire imaginable.

(24)

La Table 1.1 montre l’appartenance des diff´erents filtres non-lin´eaires d´ecrits dans [AK97] aux deux classes introduites.

Filtres non-lin´eaires

Classe I Classe II

Filtres de rang M´edians hybrides Filtres de rang s´electif Moyens tronqu´es M´edians `a multi-´etages Moyens non-lin´eaires Morphologiques Filtres L et C

Filtres de piles Polynˆomiaux

Tab. 1.1: Classification des filtres non-lin´eaires

1.3.2.2 Filtres non-lin´ eaires de Classe I Filtres de rang et filtres pond´ er´ es de rang

8

Pour le calcul des filtres de rang on consid`ere un voisinage V

it

, correspondant au voisinage V

i

, tri´e par l’ordre croissant. Le pixel de l’image r´esultante ˜ I [i], pour un rang r correspond `a la r − 1 valeur du vecteur V

it

:

I ˜ [i] = V

it

[r − 1], r ∈ [1, N

V

], 0 ≤ i < N

I

(1.6) Les filtres particuli`erement int´eressants sont ceux d´etermin´es par les rangs : r = 1, r = N

V

et r = N

V

/2. Il s’agit des filtres minimum, maximum et m´edian not´es respectivement : min { I } , max { I } et med { I } . Les deux premiers filtres sont des op´erateurs de base permettant la construction des filtres morphologiques tandis que le filtre m´edian est le plus souvent utilis´e pour supprimer le bruit impulsionnel dans une image.

Les filtres pond´er´es de rang introduisent la possibilit´e de favoriser et/ou d´efavoriser certains pixels de voisinage V

i

et ainsi palier au probl`eme des filtres m´edians classiques ayant tendance

`a supprimer les petits d´etails de l’image. Le calcul de ces filtres implique la recherche de la valeur m´ediane d’un voisinage initial V

i

transform´e : tous les ´el´ements de V

i

ont ´et´e r´ep´et´es un certain nombre de fois. Le nombre de r´ep´etition de chaque ´el´ement de V

i

est d´efini par le vecteur de poids P et l’op´erateur de r´ep´etition, not´e ♦ .

Pour un vecteur de poids P et un voisinage V

i

nous avons donc un nouvel ensemble : P ♦ V

i

= { V

i

[0], · · · , V

i

[0]

| {z }

p[0] fois

, . . . , V

i

[N

V

− 1], · · · , V

i

[N

V

− 1]

| {z }

p[NV −1] fois

} (1.7)

Le filtre de rang pond´er´e peut alors ˆetre ´ecrit comme :

I[i] = ˜ med { P ♦ V

i

} , 0 ≤ i < N

I

(1.8) Filtre de rang s´ electif

Dans les filtres de rang classiques, le rang choisi est le mˆeme pour toute l’image. Or il est

8Dans la litt´erature anglo-saxonneRank orderedetWeighted Rank Orderded Filters.

(25)

tout `a fait possible d’imaginer que le rang r soit variable pour chaque voisinage de l’image I . Dans ce cas, une fonction f des attributs A calcul´es sur le voisinage V

i

d´etermine le rang qui sera d’application pour le voisinage en question :

I ˜ [i] = V

it

[f (A(V

i

))], 0 ≤ i < N

I

(1.9) Filtres m´ edians ` a plusieurs ´ etages

Ces filtres impliquent le calcul de la valeur m´ediane de plusieurs filtres m´edians r´ealis´es sur q sous-voisinages diff´erents, construits `a partir d’un voisinage V

i

:

I[i] = ˜ med { med { V

i1

} , · · · , med { V

iq

}} , 0 ≤ i < N

i

(1.10) Pour un voisinage de forme carr´ee, on d´efinit habituellement quatre sous-voisinages ´el´ementaires typiques : V

1

, V

2

, V

3

et V

4

(Figure 1.2) ainsi que leurs diff´erentes combinaisons, par exemple V

1

∪ V

2

et V

3

∪ V

4

.

V

1

V

2

!"#$%&' ()*+,-./01

243457698

:;<=>

V

3

V

4

?@ABCDEFGH IJKLMNOPQR STUVWXYZ[\ ]^_`abcdef ghijklmnop

q r s t u

v w x y z

Fig. 1.2: Sous-voisinages types pour le calcul de filtre m´edian multi-´etage Filtres moyens tronqu´ es

Les valeurs extrˆemes d’un voisinage tri´e peuvent jouer un rˆole important sur le r´esultat final du filtrage. Afin de d´efavoriser les pixels trop ´eloign´es de la valeur m´ediane, que l’on peut supposer moins significatifs, un filtre moyen tronqu´e calcule la moyenne d’un certain nombre d’´el´ements du vecteur de voisinage tri´e V

it

. Les diff´erentes fa¸cons de choisir ces ´el´ements vont donner naissance aux diverses variantes de ce filtre. Ainsi, le filtre (r,s) fold trimmed mean filter fait exclusion des r premi`eres et s derni`eres valeurs du vecteur V

it

:

I ˜ [i] = 1 N

V

− r − s

NV−s

X

m=r+1

V

it

[m], 0 ≤ i < N

I

(1.11) ou encore remplace les r premi`eres et s derni`eres valeurs par les valeurs V

it

[r+1] et V

it

[N

V

− s] :

I ˜ [i] = 1 N

V

(r ∗ V

it

[r + 1] +

NV−s

X

m=r+1

V

it

[m] + s ∗ V

it

[N

V

− s]), 0 ≤ i < N

I

(1.12) Il est ´egalement possible de sp´ecifier un intervalle, born´e par des valeurs q

1

et q

2

. Le filtre est alors calcul´e comme une moyenne de V

it

uniquement pour des valeurs V

it

[m] telles que q

1

< V

it

[m] < q

2

(filtre tronqu´e modifi´e). Une autre variante de ce filtre consiste `a calculer la moyenne des K ´el´ements les plus proches de l’´el´ement central de la suite V

i

(filtre de K plus proches voisins).

Les filtres moyens tronqu´es permettent de combiner les effets positifs des filtres lin´eaires et

non-lin´eaires et s’appliquent aux images pr´esentant `a la fois un bruit Gaussien et un bruit

impulsionnel.

(26)

Filtres morphologiques

Les filtres morphologiques d´erivent de la morphologie math´ematique introduite par Mathe- ron et Serra en 1964[MS00] et dont l’application au traitement des images est d´ecrite dans deux ouvrages cl´es [Mat74, Ser82]. Initialement, la morphologie math´ematique ´etait destin´ee aux images binaires, mais son extension aux images en niveaux de gris fˆ ut rendue possible, grˆace `a l’´equivalence entre les notions ensemblistes et les fonctions (pour plus de d´etails voir [CC89] ou encore [Soi99]).

Les op´erateurs de base de la morphologie math´ematique sont dus `a Minkowski qui en 1903 d´efinit des op´erations ensemblistes d’addition (dilatation) et de soustraction (l’´erosion). On consid`ere une image binaire I comme un ensemble occup´e partiellement par un ensemble d’objets

9

not´e X . On d´efinit alors les deux op´erateurs de base par la question : pour toute position p de l’espace de l’image I, est-ce que le voisinage

10

V est enti`erement inclu dans l’ensemble X ou est-ce qu’il touche l’ensemble X ? L’ensemble de p des r´eponses positives forme l’image ´erod´ee/dilat´ee. De fa¸con un peu plus formelle :

Dilatation : I ˜ = DIL { I, V } = I ⊕ V = ∪ X

V

= { p, V

p

∩ X 6 = O }

Erosion : ´ I ˜ = ERO { I, V } = I V = ∩ X

V

= { p, V

p

⊆ X } (1.13) A partir des op´erateurs de base il est possible de d´efinir d’autres op´erateurs, notamment :

Ouverture : I ◦ V = (I V ) ⊕ V Fermeture : I • V = (I ⊕ V ) V

Gradient morphologique : g(I, V ) = (I ⊕ V ) − (I V ) (1.14) o` u V repr´esente le voisinage transpos´e.

L’extension des op´erateurs morphologiques de base aux images en niveau de gris est d´efinie par la plus grande valeur de I dans le voisinage V

i

et la plus petite valeur pour l’´erosion :

I ˜ = DIL { I, V } = I ⊕ V = sup { I(u) : u ∈ V } (1.15) I ˜ = ERO { I, V } = I V = inf { I(u) : u ∈ V } (1.16) Du point de vue du calcul, les deux op´erateurs ne sont donc rien d’autre que les deux filtres caract´eristiques de rang, mentionn´es plus haut. Nous avons donc : ERO { V } = min { V } = V

t

[0] pour l’´erosion et DIL { V } = max { V } = V

t

[N

V

− 1] pour la dilatation.

9Dans une image binaire, une valeur est attribu´ee au fond de l’image et l’autre aux objets qui s’y trouvent.

10En morphologie math´ematique le voisinage est appel´e l’´el´ement structurant. Comme nous d´efinissons les op´erateurs morphologiques comme une classe des filtres non-lin´eaires, d´efinis avec la notion de voisinage, nous avons pr´ef´er´e, par souci de clart´e, de garder l’appellation de voisinage.

10Le voisinageV d’un voisinageV est transpos´e par rapport au centre de celui-ci :

V V

Si le voisinage est sym´etrique par rapport `a son centre, on peut alors ´ecrireV =V.

(27)

Les diff´erents filtres morphologiques classiques ne peuvent pas ˆetre utilis´es pour le filtrage du bruit dans une image. Cependant, les filtres morphologiques mous (Soft Morphological Filters), introduits par Kuosmanen dans [KA95] sont utilis´es pour une ´elimination tr`es efficace du bruit impulsionnel. Pour les op´erateurs mous de base, la notion de voisinage (de l’´el´ement structurant), est ´etendue au syst`eme structurant compos´e d’un voisinage V , d’un centre C d’une certaine forme et taille

11

et d’un rang r. Les op´erateurs de base sont alors d´efinis comme :

I[i] = ˜

( DIL { I, V } = sup {{ r ♦ V

m

: m ∈ C } ∪ { V

m

: m ∈ (V \ C) }}

ERO { I, V } = inf {{ r♦V

m

: m ∈ C } ∪ { V

m

: m ∈ (V \ C) }} (1.17) avec ♦ l’op´erateur de r´ep´etition d´efini `a l’´equation 1.7.

A partir des op´erateurs de base on peut d´efinir les mˆemes op´erateurs d´eriv´es de la morphologie math´ematique classique tels que l ’ouverture, la fermeture et autres.

Filtres de piles

Il est possible de d´efinir toute une nouvelle classe des filtres non-lin´eaires grˆace `a un codage des images particulier. Ce codage, d´esign´e dans la litt´erature anglo-saxonne par threshold decomposition, consiste `a transformer chaque pixel de l’image initiale I [i] en un vecteur binaire P [o] de 2

b

bits, o` u b repr´esente le nombre de bits utilis´es pour coder la couleur. Les ´el´ements de ce vecteur sont d´etermin´es selon l’expression suivante :

P [o] =

( 1, I[i] ≥ o

0, I[i] < o , 0 ≤ o < 2

b

(1.18) Pour un voisinage V transform´e, not´e ¨ V , nous avons donc 2

b

plans de bits de N

V

bits chacun, not´es ¨ V [o]. Notons que l’image n’a subi aucune transformation de contenu de l’information, il s’agit tout simplement d’une autre repr´esentation de la mˆeme information.

Le filtre g´en´eralis´e de piles consiste `a appliquer `a chaque plan de bits une fonction Bool´eenne positive

12

dans la litt´erature anglo-saxonne Positive Boolean Function ou PBF qui satisfait la propri´et´e de piles :

si f ( ¨ V [k]) = 1 (1.19)

alors f ( ¨ V [o]) = 1 ∀ o ≤ k

Pour chacun des 2

b

niveaux nous allons obtenir une valeur binaire. La somme alg´ebrique de 2

b

bits ainsi obtenus donne la valeur du voisinage filtr´e.

Les filtres minimum et maximum poss`edent la propri´et´e des piles et il est possible de les calculer en employant les fonctions logiques ET et OU sur le ¨ V [o]. Le filtre m´edian poss`ede

´egalement cette propri´et´e, avec comme fonction Bool´eenne la m´ediane binaire (M ED)

13

.

11En fait le centre est aussi un voisinage du pixel central, plus petit queV, nous avons donc toujoursC⊂V. LorsqueC= 0, le centre est le pixel central lui-mˆeme.

12Une fonction Bool´eenne positive est une fonction qui peut ˆetre ´ecrite sous forme d’une expression compos´ee de variables non-complem´ent´ees.

13Une fonction Bool´eenne binaire qui renvoie la valeur m´ediane d’un vecteur tri´e des ´el´ements binaires, par exempleM ED0,0,1,1,1 = 1.

(28)

La Figure 1.3 montre un exemple de calcul des filtres de rang classiques `a l’aide des filtres de piles. Examinons les vecteurs ¨ V [o] d’un voisinage V initialement compos´e des valeurs { 1, 5, 3, 7, 3, 9, 5, 9, 1 } . Le voisinage tri´e et d´ecompos´e ¨ V

t

est alors pr´esent´e sous la forme d’un tableau.

r Vt V¨[0] V¨[1] V¨[2] V¨[3] V¨[4] V¨[5] V¨[6] V¨[7] V¨[8]

min→ 1 1 1 0 0 0 0 0 0 0 0

2 1 1 0 0 0 0 0 0 0 0

3 3 1 1 1 0 0 0 0 0 0

4 3 1 1 1 0 0 0 0 0 0

med→ 5 5 1 1 1 1 1 0 0 0 0

6 5 1 1 1 1 1 0 0 0 0

7 7 1 1 1 1 1 1 1 0 0

8 9 1 1 1 1 1 1 1 1 1

max→ 9 9 1 1 1 1 1 1 1 1 1

min ET 1 1 0 0 0 0 0 0 0 0

med MED 5 1 1 1 1 1 0 0 0 0

max OU 9 1 1 1 1 1 1 1 1 1

Fig. 1.3: Filtres de piles

Depuis la table, on peut ais´ement voir comment l’application des fonctions logiques ET, MED et OU conduit au calcul de minima/median/maxima du voisinage.

1.3.2.3 Filtres non-lin´ eaires de Classe II Filtre m´ edian hybride

Il est possible de combiner les avantages des filtres lin´eaires et non-lin´eaires dans un seul filtre qui s’attaquera `a la fois au bruit impulsionnel et au bruit Gaussien d’une image. Un filtre m´edian hybride implique le calcul de q filtres lin´eaires f il sur le voisinage V

i

avant l’application d’un filtre m´edian :

I ˜ [i] = med { f il

1

{ V

i

} , · · · , f il

q

{ V

i

}} , 0 ≤ i < N

I

(1.20) Si le nombre q de filtres lin´eaires appliqu´es est faible devant la taille du voisinage N

V

, l’impl´ementation d’un tel filtre peut se faire de mani`ere efficace puisque la recherche de la valeur m´ediane n’implique pas le tri du voisinage complet.

Filtres moyens non-lin´ eaires

La forme g´en´erale d’un filtre moyen non-lin´eaire est donn´ee par : I ˜ [i] = g

−1

P

NV−1

m=0

P [m] ∗ g(V

i

[m]) P

NV−1

m=0

P [m]

!

(1.21)

(29)

o` u P est le vecteur des poids et g est une fonction. Dans le traitement des images les fonctions g le plus souvent employ´ees sont :

g(x) =

 

 

 

 

x , moyenne arithm´etique

log x , moyenne g´eom´etrique

1

x

, moyenne harmonique

x

p

∈ R \{− 1, 0, 1 } , filtre moyen L

p

.

(1.22)

Les moyennes arithm´etique et g´eom´etrique sont largement utilis´ees pour combattre le bruit Gaussien, tandis que la moyenne harmonique et le filtre moyen L

p

sont plutˆot utilis´es pour le filtrage du bruit impulsionnel.

Filtres polynˆ omiaux

La forme g´en´erale d’un filtre polynˆomial d’ordre M est donn´ee par : I ˜ [i] =

NV−1

X

i1=0

h

1

(i

1

)V [N

V

− i

1

] + . . . +

NV−1

X

i1=0

. . .

NV−1

X

iM=0

h

M

(i

1

, . . . , i

M

)V [N

V

− i

1

] . . . V [N

V

− i

M

] (1.23) o` u les fonctions h

j

(i

1

, . . . , i

j

), 0 < j < M sont les kernels de Volterra.

Les filtres polynˆomiaux sont caract´eris´es par un important accroissement du temps de calcul pour les ordres sup´erieurs, la raison pour laquelle ils ne sont employ´es que tr`es rarement dans le traitement des images. N´eanmoins signalons que les filtres d’ordres inf´erieurs ont ´et´e utilis´es avec succ`es pour la r´eduction du bruit des images faiblement contrast´ees [RS95], l’am´elioration de la nettet´e [Ram95], la restauration [JBH95] et l’am´elioration d’images num´eriques [BMM97].

Filtres L

L’un des principaux inconv´enients des filtres m´edians classiques concerne le d´eplacement des bords et l’apparition des artefacts [Bov87]. Les filtres L permettent de palier ce probl`eme en combinant les effets d’un filtrage lin´eaire et non-lin´eaire. Ils consistent `a calculer la moyenne des ´el´ements du vecteur tri´e V

it

, pond´er´es par un vecteur des poids P :

I[i] = ˜

NV

X

m=1

P [m] ∗ V

it

[m] (1.24)

Filtres C

L’information spatiale de chaque pixel n’intervient pas dans le calcul des filtres de rang. Deux voisinages compl`etement diff´erents peuvent avoir le mˆeme vecteur de voisinage tri´e et par cons´equence le mˆeme r´esultat de filtrage. L’exclusion de l’information spatiale se traduit par une perte de l’information visuelle des petits d´etails de l’image. Les filtres C peuvent ˆetre consid´er´es comme des filtres L mais `a la place d’un simple vecteur des poids, on dispose d’une matrice. Le choix des poids utilis´es pour la pond´eration de chaque pixel de V est fonction du rang et de sa position spatiale au sein du voisinage. On peut alors ´ecrire :

I ˜ [i] =

NV−1

X

m=0

P [R(V

i

[m]), m] ∗ V

i

(1.25)

ou P repr´esente la matrice des poids et R(V

i

[m]) le rang de la valeur V

i

[m] du voisinage V .

(30)

1.3.2.4 Exemples d’application des filtres non-lin´ eaires

La Figure 1.4 montre le r´esultat suite `a l’application d’un filtre lin´eaire et un filtre non- lin´eaire sur une image pr´esentant un bruit impulsionnel. A l’image bruit´ee de la Figure 1.4.a ont ´et´e appliqu´es :

– un filtre lin´eaire classique : la moyenne d’un voisinage de 5 × 5 pixels - Figure 1.4.b, – suivi d’un filtre m´edian de mˆeme taille - Figure 1.4.c

La Figure 1.4.d montre une zone d’int´erˆet agrandie et riche en d´etails : on peut remarquer sur les deux images filtr´ees une perte de d´etails (la texture de tissu), plus importante dans le cas d’un filtre m´edian.

a) b)

c) d)

Fig. 1.4: ´ Elimination de bruit impulsionnel : filtre lin´eaire (moyenne) et

filtre m´edian

(31)

La Figure 1.5 montre qu’il est possible d’arriver `a un r´esultat de filtrage semblable avec des filtres morphologiques mous. La mˆeme image de l’exemple pr´ec´edant - Figure 1.5.a, a ´et´e soumis :

– `a une ouverture classique avec un voisinage de 5 × 5 pixels - Figure 1.5.b.

– et puis `a une ouverture “molle”, aussi sur un voisinage 5 × 5 avec un centre C de rayon z´ero et le rang r = 5 - Figure 1.5.c

L’agrandissement d’une zone d’int´erˆet - la Figure 1.5.d, montre une plus mauvaise conserva- tion de d´etails par rapport au filtrage m´edian.

a) b)

c) d)

Fig. 1.5: ´ Elimination de bruit impulsionnel : filtres morphologiques mous

(32)

La Figure 1.6 montre l’application `a l’image initiale - Figure 1.6.a d’un gradient mor- phologique - Figure 1.6.b. Les op´erations morphologiques : la dilatation et l’´erosion ont ´et´e calcul´ees avec des voisinages de taille 5 × 5 pixels.

a) b)

Fig. 1.6: Gradient morphologique

(33)

1.4 Machine

Traitement

Performance

Machine

Ordinateur - Calculateur ´electronique dot´e de m´emoires

`

a grande capacit´e, de moyens de traitement des informa- tions `a grande vitesse, capable de r´esoudre des probl`emes arithm´etiques et logiques complexes grˆace `a l’exploitation au- tomatique des programmes enregistr´es.

Dictionnaire Robert.

Computer architecture - The attributes of a [computing]

system as seen by the programmer, i. e. the conceptual struc- ture and functional behavior, as distinct from the organization of the data flows and controls, the logic design, and the phy- sical implementation.

Amdahl, Blaaw, et Brooks, 1964

1.4.1 Historique

L’histoire des machines permettant de r´ealiser le calcul de fa¸con automatis´ee peut ˆetre divis´ee en trois p´eriodes remarquables. Les premi`eres machines `a calculer m´ecaniques capables de r´ealiser des op´erations arithm´etiques simples, ont ´et´e d´evelopp´ees lors la premi`ere p´eriode remarquable, situ´ee entre le d´ebut de XVI-`eme et la fin de XIX-`eme si`ecle. Dans la deuxi`eme p´eriode, qui couvre la premi`ere moiti´e du XX-`eme si`ecle, les grandes d´ecouvertes li´ees aux math´ematiques et `a la logique ont permis de poser les bases th´eoriques de l’informatique.

D`es les ann´ees quarante, plusieurs machines construites, dites de la premi`ere g´en´eration des ordinateurs, marquent le d´ebut de la troisi`eme p´eriode remarquable qui s’´etend jusqu’`a nos jours.

La premi`ere machine m´ecanique `a calculer

14

fˆ ut construite par John Napier, math´ematicien

´ecossais qui au d´ebut de XVI-`eme si`ecle (probablement vers 1610) construit les r`egles (dites de Napier), permettant d’effectuer les op´erations arithm´etiques de multiplication, de division et de racine carr´ee. En 1623, ind´ependamment de Napier, un autre “calculateur num´erique”

m´ecanique fˆ ut introduit par Wilhelm Schickard, dont la connaissance nous est parvenue uniquement par ces ´ecrits avec Kepler. Le seul exemplaire de cette machine `a ´et´e brˆ ul´e en 1624, dans un incendie, probablement volontaire, afin de prot´eger son auteur des accusations d’actes de sorcellerie.

Ind´ependamment de Napier et de Schickard, Blaise Pascal construit en 1643 la Pas- caline, un autre calculateur num´erique capable d’additionner et de soustraire les nombres `a plusieurs chiffres avec un report automatique. Quelques ann´ees plus tard, en 1673, Gott- fried Leibniz con¸coit une machine qui effectue les quatre op´erations arithm´etiques de base

`a l’aide des engrenages. Sa machine r´ealise pour la premi`ere fois la multiplication comme l’ad- dition successive dans un accumulateur. Leibniz soul`eve ´egalement l’id´ee de l’existence d’un proc´ed´e universel permettant de trouver une solution `a tout probl`eme de fa¸con m´ecanique, par le calcul et sans “r´efl´echir”.

14Quoique en Chine, depuis 1300, on utilise couramment l’abacus pour effectuer les calculs arithm´etiques.

Les origines de ce “calculateur” remontent aux Babyloniens - 500 AJC.

(34)

En 1801, Joseph-Marie Jacquard con¸coit une machine de tissage programmable par des cartes perfor´ees contenant l’information du motif. Plus tard, en 1822, Charles Bab- bage travaille sur la r´ealisation de la “Machine Diff´erentielle” et de la “Machine Analy- tique”, mais aucune de ces machines ne fonctionna correctement. A cette mˆeme ´epoque on constate la premi`ere commercialisation d’un calculateur num´erique - l’arithmom`etre de Tho- mas, construit par Charles Xavier Thomas de Colmar. Ce calculateur fˆ ut vendu en quelques centaines d’exemplaires entre 1821 et 1878[Mar94].

La fin de XIX-`eme et le passage au XX-`eme si`ecle marquent le d´ebut de la deuxi`eme p´eriode remarquable et la reprise des id´ees de Leibniz sur la recherche des proc´ed´es permettant une automatisation de calcul. La reprise de ces id´ees trouve ses racines dans la volont´e des math´ematiciens de formaliser les math´ematiques de fa¸con `a ´eviter tout paradoxe qu’elles pour- raient engendrer, notamment ceux relev´es par Cesare Burali-Forti (1899) et Bertrand Russell (1901) de la th´eorie des ensembles, formul´ee par Georg Ferdinand Cantor

15

d`es 1874.

L’id´ee d’une formalisation compl`ete des math´ematiques culmine avec le math´ematicien David Hilbert qui est `a l’origine d’un programme dans lequel toute d´emonstration serait purement syntaxique, d´epourvu de son sens s´emantique. En outre, toute d´emonstration peut ˆetre ramen´e

`a un proc´ed´e, une proc´edure effective i.e. un algorithme

16

, qui d´ecrit seulement l’ordre de manipulation des symboles.

Le programme de Hilbert

17

vise la recherche d’un syst`eme formel

18

ainsi qu’une th´eorie de d´emonstration tels qu’il serait possible de :

1. Prouver la consistance

19

2. R´epondre aux questions de compl´etude

20

3. R´esoudre le probl`eme de d´ecision (Entscheidungsproblem)

21

.

Le th´eor`eme de compl´etude, d´emontr´e par Kurt G¨ odel en 1928, r´epond positivement aux deux premi`eres questions pour la logique du premier ordre. Au sein de ce syst`eme formel, il est donc possible de m´ecaniser toute d´emonstration.

15Le paradoxe deRussellconcerne la question de la taille d’un ensemble universel. Pour un tel ensemble

`

a la question : “quelque chose se trouve-t-il dans l’ensemble universel ?”, nous avons toujours une r´eponse positive. SelonCantorla taille d’un ensemble compos´e de tous les sous-ensembles d’un ensemble donn´e est toujours plus grande que la taille de l’ensemble mˆeme. Or, ceci ne peut ˆetre appliquer sur l’ensemble universel car il contient d´ej`a tout !

16En 820 AD,Muhammed idn Musa Al-Khwarizmi, ´ecrit une encyclop´edie des proc´ed´es de calcul connus de son temps. A l’´epoque m´edi´evale cet ouvrage fˆut diffus´e dans le monde entier et son nom fˆut latinis´e en algorithmus, pour ˆetre repris au XIX-`eme si`ecle parLady Ada Lovelacepour designer l’ensemble des r`egles op´eratoires propres `a un calcul.

17On peut consulter l’excellent ouvrage [CN01] sur la vie et le programme deHilbert.

18Un ensemble d’axiomes et de r`egles d’inf´erences.

19La question de la consistance a ´et´e soulev´e parHilbert pour la premi`ere fois en 1900, lors de son dis- cours au Congr`es International des Math´ematiciens `a Paris[Hil02] et peut ˆetre ´enonc´e comme suit : Certains raisonnements valides peuvent-ils conduire vers des absurdit´es ?

20Tout ´enonc´e peut-il ˆetre soit prouv´e soit r´efut´e ?

21Le probl`eme de d´ecision a ´et´e formul´e parHilbertetAckermanndans [HA28] et peut ˆetre ´enonc´e comme suit : Existe-il une proc´edure effective (i.e. algorithme), qui, en un nombre fini d’op´erations, permet de dire si un ´enonc´e math´ematique est vrai ou faux ?

Références

Documents relatifs

[r]

D´ efinition (rang d’un syst` eme ´ echelonn´ e) : Le rang r d’un syst`eme ´echelonn´e `a p ´equations et n inconnues est ´egal au nombre d’´equations qui n’ont pas un

Etude du courant en r´ egime sinuso¨ıdal forc´ e dans le circuit RLC s´ erie.. Etude de l’amplitude en fonction de la pulsation du g´ en´ erateur, recherche du maximum

On ne change pas le rang d’une matrice en effectuant des op´ erations ´ el´ ementaires sur ses lignes et ses colonnes.. On transforme donc la matrice par op´ erations ´ el´

En g´en´eral, celui-ci n’est pas connu avec une pr´ecision infinie car il peut y avoir des erreurs de mesures et car la pr´ecision des instruments et de l’ordinateur n’est

La loi hydraulique permettant de calculer le d´ ebit s’´ enonce Q = α∆P , o` u Q est le d´ ebit du tuyau, ∆P la diff´ erence des pressions en entr´ ee et sortie et α est

[r]

[r]