Vous êtes sur la page 1sur 6

Dbruitage e

Ch. Dossal Octobre 2008

Introduction

Dans ce TD, nous allons tudier direntes mthodes pour supprimer des parasites (on dira e e e le bruit) sur des signaux 1D et 2D. Nous considrons que nous avons acc`s ` des observations e e a y = x + w, sommes dun signal x et dun bruit w. Nous utiliserons un mod`le de bruit gaussien. e Ce mod`le sur le bruit est le mod`le le plus courant. Cest le fait de considrer que le bruit est e e e gaussien qui justie le fait de mesurer lerreur de reconstruction en norme 2 . Si on fait dautres hypoth`ses sur le bruit, par exemple bruit impulsionel ou distribu selon une loi Laplacienne, on e e peut mesurer lerreur de reconstruction dune autre mani`re. e Nous commenons par lutilisation de mthodes linaires. Elles sont dites linaires car loprateur c e e e e de dbruitage est linaire. On projette les observation sur un espace vectoriel qui ne dpend pas e e e des observations ou on attnue les coecients de y de mani`re indpendante de y. e e e Dans un second temps nous tudions des mthodes non linaires mises en oeuvre dans des bases e e e dondelettes. Ces mthodes peuvent tre gnralises ` dautres familles de fonctions. e e e e e a Nous rappelons quun estimateur F est une application qui ` une observation y associe un estim a e x. Lerreur quadratique dun estimateur F est dni comme lesprance sur le bruit de lerreur e e quadratique E( x x 2 ). Un estimateur est dautant meilleur que cette erreur est faible.

2
2.1

Mthodes linaires e e
Filtre de Wiener

On rappelle que le ltrage de Wiener consiste ` multiplier chaque coecient de Fourier y (k) a de y par Rx (k) a(k) = Rx (k) + Rw (k) o` Rx (k) (resp Rw (k)) est le ki`me coecient de Fourier de la fonction dautocorellation de x u e (resp de w) avec Rf (k) = E[(f (k) E[f (k)])(f (0) E[f (0)])]. Le ltrage de Wiener est une mthode qui a t dveloppe pour sparer le bruit du signal dans la situation spcique o` le e ee e e e e u bruit et le signal sont des ralisations de processus alatoires stationnaires dont on connait la loi. e e Sous ces hypoth`ses sur x et w, le ltrage de Wiener est optimal. e Faire lhypoth`se que le bruit est alatoire et stationnaire est tout ` fait raisonnable. On fait e e a mme souvent lhypoth`se que ce dernier est blanc et gaussien. e e Pour le signal cest dirent. Supposer que le signal recherch est la ralisation dun processus e e e alatoire nest pas totalement draisonnable. En revanche supposer quon connait sa loi et que e e le processus est stationnaire est nettement plus hasardeux. Cest pourquoi en pratique le ltrage de Wiener peut ne pas tre tr`s bon. e e 1

Comme on ne dispose que dune seule ralisation du processus alatoire y, on estime les coecients e e Rf (k) par |f (k)|2 . 1. Ecrire un programme de dbruitage de Wiener qui prend en entre le signal bruit par un e e e bruit gaussien (dont on suppose conna la variance) et le signal original et qui renvoie le tre signal dbruit et le psnr associ. e e e 2. Comment estimer les coecients du ltre de Wiener si on ne dispose pas du signal original ? Ecrire un programme eectuant un dbruitage approchant le ltrage de Wiener mais ne e ncessitant pas le signal original. e

2.2

Filtre Gaussien

Un autre type de ltrage qui permet dattnuer le bruit sur une image est le ltre gaussien. e La commande matlab qui permet de construire une gaussienne est gausswin. 3. Ecrire un programme prenant en entre un vecteur bruit 1D et un rel positif et qui e e e renvoie un vecteur dbruit par ltrage dune gaussienne dont la variance est contrl par e e oe et le psnr associ. e 4. Ecrire un programme qui ache le psnr du signal dbruit en fonction de et qui dtermine e e e le optimal. 5. Faire des tests sur dirents signaux et dirents niveaux de bruit. e e 6. La valeur optimale de dpend-t-elle du niveau de bruit ? e 7. Comparer le ltrage gaussien et le ltrage de Wiener.

3
3.1

Dbruitage en ondelettes e
Reprsentations parcimonieuses et dbruitage e e

Il existe de multiple mani`res de dbruiter un signal. Nous proposons ici dexploiter le fait e e que de nombreux signaux, ceux qui sont rguliers par morceaux, sont ecacement repre e sents en ondelettes pour faire du dbruitage. Plus prcisment, on va utiliser le thor`me e e e e e e suivant : Thoreme : e Si une fonction f de L2 (R) est C n par morceaux, alors il existe une base dondelettes B et une constante C telles que la meilleure approximation fM de f avec M coecients vrie e f fM
2

CM 2n

(1)

Dune mani`re gnrale, si pour une classe de signaux on dispose dune base orthonorme e e e e qui assure une dcroissance rapide de lerreur dapproximation non linaire, alors on peut e e utiliser cette base pour raliser un dbruitage ecace. En fait on peut parfois se passer du e e caract`re orthonorm ou mme du caract`re libre de la famille utilise. e e e e e Comment exploiter les qualits dapproximation dune base pour le dbruitage ? e e Nous supposons ici que le bruit est gaussien et blanc. Certains des rsultats suivants peuvent e tre transposs dans le cadre dun bruit gaussien color. e e e Remaquons dabord que si b est la ralisation dun processus alatoire blanc et gaussien e e alors dans toute base B = (bi )iN les coecients bi = w, bi du bruit, sont des variables gaussiennes indpendantes et de mme loi : Un bruit blanc est un bruit blanc dans e e toute base orthonorme. e 2

Soit B une base xe, notons yk = y, bk , xk = x, bk et wk = w, bk les coecients de e y, x et w dans la base B. Ainsi yk = xk + wk , o` wk est une variable alatoire gaussienne u e centre de variance 2 . e Une mani`re simple destimer x ` partir de y est dutiliser un estimateur diagonal, cest ` e a a dire un estimateur o` chaque xk est estimer uniquement ` partir de yk . On peut montrer u a que pour un grand nombre de classes de fonctions usuelles, le rique du meilleur estimateur diagonal est proche du risque optimal. Comment estimer xk ` partir de yk ? a Si on veut estimer xk par une attnuation des coecients yk , F (yk ) = xk = ak yk , la e x2 k valeur optimale de ak (sans connaissance de wk ) est ak = x2 +2 comme le montre une k simple drivation sur le param`tre a. Lerreur optimale associe est e e e E(|xk xk |2 ) = x2 k 2 x2 k + 2 (2)

Lerreur de lestimateur diagonal FO associ est alors e E( x x 2 ) =


k

2 x2 k x2 + 2 k

(3)

Un tel estimateur nest en fait pas vraiment un estimateur car il ncessite comme pour e Wiener la connaissance de x. On parle destimateur oracle. De tels estimateurs sont inte ressants car ils peuvent donner des bornes sur ce quon peut esprer faire de mieux. e En eet si on construit un estimateur dont le risque est quivalent ` celui de lestimateur e a oracle, on sait quon a obtenu un estimateur asymptotiquement optimal. Cet estimateur oracle ncessite la connaissance prcise des valeurs de xk . On peut construire e e un autre estimateur oracle dont le risque est proche de celui de FO mais qui ncessite moins e de connaissance sur x. Pour cela on consid`re lensemble des estimateurs diagonaux qui sont des projecteurs ie e ceux pour qui ak {0, 1}, k N. Parmi ces estimateurs, un calcul simple montre que le choix optimal est obtenu en prenant ak = 1 si |xk | > et ak = 0 sinon. Pour ce second estimateur oracle FP dit estimateur par projection oracle, un calcul rapide montre que E(|xk xk |2 ) = min(|xk |2 , 2 ). (4)
2ab Or un simple calcul montre que pour a et b positifs, on a min(a, b) a+b . En sommant sur tous les indices k N, on en dduit que le rique de lestimateur par projection oracle FP e est major par deux fois le risque de FO . e Cet estimateur est intressant pour au moins trois raisons : e (a) Son risque est optimal, ` un facteur 2 pr`s, au risque diagonal oracle optimal ie a e r(FP ) 2r(FO ). (b) Son risque est directement li aux capacits dapproximation non linaires de la base e e e B. En eet si on note I lensemble des indices i tels que |xi | , on a

E( x x 2 ) = E( x yI =
iN

)
2

(5) (6) (7) (8)

min(|xi | , ) |xi |2 .
|xi |<

= |I| 2 +

= |I| 2 + x x|I| 2 . 3

Un calcul rapide montre que si x x|I| 4n x x 2 C 2n+1 .

CM n alors il existe C > 0 tel que

(c) Le risque de cet estimateur oracle peut tre approch ` un facteur logarithmique pr`s e ea e par un estimateur par seuillage de y. On a, en eet le thor`me suivant d ` Donoho e e ua et Johnstone : Thoreme : e Soit x = (xk )k N un vecteur de taille N et w = (wk )k N , une ralisation dun bruit e blanc gaussien de variance 2 et y = x + w. On pose T = 2 loge N . Le risque r(FT ) de lestimateur FT par seuillage est li au risque r(FP ) du projecteur oracle par la e relation suivante : r(FT ) (2 loge N + 1) (r(FP ) + 2 ) (9) En rsum e e Le risque de lestimateur de seuillage avec un seuil bien choisi qui dpend de la taille du e signal, est born par le risque du projecteur oracle qui dpend lui mme directement de e e e la dcroissance dapproximation non linaire de la base B. Plus lerreur dapproximation e e dcroit rapidement avec M plus le risque de lestimateur par seuillage est faible. En partie culier, si les signaux tudis se reprsentent ecacement en ondelettes, comme cest le cas e e e pour les signaux rguliers par morceaux en 1D et dans une moindre mesure pour les images e naturelles en 2D, un seuillage en ondelettes est un bon estimateur.

3.2

Seuillage simple

Remarque : Dans toutes les mthodes de seuillage, on ne touche pas aux coee cients dchelle, on ne seuille que les coecients dondelettes. e 8. Ecrire un programme qui eectue un dbruitage par seuillage en ondelettes. Ce programme e prend en entre un signal bruit, un seuil T ,un ltre miroir en quadrature associ ` une e e ea ondelettes et le signal original (uniquement pour calculer le psnr) et renvoie un signal dbruit et le psnr associ. e e e 9. Ecrire un programme qui eectue un dbruitage pour plusieurs valeurs du seuil entre et e 6 et qui renvoier la courbe des psnr. 10. Faire des tests sur dirents vecteurs de taille 1024 en faisant varier le niveau du bruit en e utilisant londelette de Daubechies 4. 11. Faire les mmes tests sur des signaux plus grands et en faisant varier londelette utiliser e (essayer Haar et Daubechies 6 par exemple). 12. Ecrire un programme qui estime le risque de lestimateur par seuillage dans une base dondelettes pour direntes valeurs du seuil et qui ache ce risque en fonction du seuil en e faisant une moyenne sur 1000 ralisations du bruit. e 13. Le seuil optimal rel dpend t-il de londelette et de la taille des signaux ? Dans la suite on e e prendra le seuil T = 3. 14. Pour les signaux Blocks et Piece-Regular, quelles sont les ondelettes optimales ? 15. Comparer le risque dun tel estimateur avec le ltrage de Wiener, le ltrage gaussien et un seuillage en base de Fourier.

3.3

Seuillage Doux

Il existe plusieurs variantes du seuillage ou seuillage dur. Lune dentre elles est le seuillage dit doux. Le seuillage doux est la fonction suivante : x T si x > T x + T si x < T S(x) = 0 sinon. Pour ce nouveau seuillage on reprend quelques questions de la section prcdentes : e e 16. Ecrire un programme qui eectue un seuillage doux en ondelettes. 17. Ecrire un programme qui ache le psnr en fonction du seuil. 18. En testant dirent signaux, direntes tailles de signaux et direntes ondelettes, dtere e e e miner un seuil optimal pour le seuillage doux. Celui ci nest pas en 3. 19. Comparer le seuillage doux au seuillage dur. Lequel vous semble le plus ecace ? En fait le seuillage doux est plus ecace sur les images. 20. Ecrire les programmes prcdents en 2D et comparer le seuillage dur et le seuillage doux e e chacun ` leur seuil optimal, pour direntes images et direntes ondelettes. Vrier ainsi a e e e que le seuillage doux est plus perfromant en 2D que le seuillage dur.

3.4

Invariance par translation

Mme si cest la parcimonie qui est ` la base de lecacit des bases dondelettes pour le e a e dbruitage, on a intrt en pratique ` utiliser des familles redondantes. Plus prcisment, e ee a e e on va eectuer un moyennage de dbruitage dans direntes bases orthonormes, toutes e e e translates dune mme base dondelettes. e e Contrairement ` la base de Fourier, les bases dondelettes ne sont pas invariantes par a translation. Si on eectue une translation (circulaire) de K points dune base dondelettes B, on obtient une base dirente qui aura peut tre des vecteurs communs avec B mais qui e e aura aussi des vecteurs dirents. e 21. Ecrire un programme qui eectue le dbruitage dun vecteur par seuillage dur en moyene nant les dbruitage obtenus par n translations du vecteurs. Le programme prend en entre e e le vecteur bruit, le seuil et le nombre n de translations. e Comme la mthode est invariante par translation, on parle de seuillage invariant par transe lation. 22. Comparer les rsultats obtenus avec le dbruitage par seuillage dur simple sur divers e e exemples. 23. Quelle est linuence du nombre de translations utilises ? e 24. Ecrire un programme quivalent pour le seuillage doux et comparer sur divers exemples, la e qualit des rsultats avec le seuillage dur invariant par translation et avec le seuillage doux e e simple. Quelle mthode est la plus ecace ? e 25. Raliser les mmes codes en 2D et comparer les mthodes. e e e Quelle est la mthode la plus ecace ? e

3.5

Seuillage par blocks

Une autre variante du seuillage est le seuillage par block. Dans cette variante, on dcide de conserver ou de mettre ` 0 un block entier de coecients e a si lnergie totale du block est suprieure ` un seuil. Les blocks sont construits chelle e e a e par chelle et on ne seuille jamais les coecients dchelle. e e Les rsultats obtenus rcemment sur le sujet indiquent que la taille de block optimale est e e loge (N ) pour des vecteurs de taille N et loge (N ) loge (N ) pour des images de tailles N N. Le seuillage optimal pour le seuillage par block nest ni un seuillage dur ni un seuillage doux. Le fonction quon utilise ici est la suivante : SBlock (x) = x max(1 T2 , 0) E2 (10)

o` E 2 est lnergie moyenne des coecients du block. u e Si |E| < T alors SBlock (x) = 0 et si E > T , lamplitude de x est lg`rement diminue. e e e Quand on seuille un block, on calcule E 2 et on modie les coecients en utilisant (10). 26. Ecrire un programme sui eectue un seuillage par block en ondelettes dun vecteur. Le programme prend en entre un vecteur bruit et un seuil T et renvoie un signal dbruit e e e e et le psnr associ. e 27. Faire des tests avec divers vecteurs de rfrence et direntes ondelettes. Quel est le seuil ee e optimal ? Dans la suite on prendra le seuil thorique optimal : T = 4, 5 . e 28. Comparer les rsultats obtenus avec les prcdentes mthodes. e e e e O` classeriez vous le seuillage par block ? u 29. Quen est-il en 2D ? 30. On peut galement faire du seuillage par block invariant par translation. e Ecrire un programme eectuant un dbruitage par seuillage par block invariant par transe lation. 31. Comparer cette derni`re mthode aux prcdentes en 1D et en 2D. O` se classe t-elle ? e e e e u

Vous aimerez peut-être aussi