Majeure "Algèbre, Informatique et Applications"
Enseignement d'Approfondissement"

Tatouage d’images basées sur la transformée de

Fourier discrète


Projet Réalisé par Idrassi Mounir (promo 97)


Description du projet

Avec l’apparition d’Internet et la démocratisation des support multimédia ( comme le cd-rom) , des problèmes de copyright et de propriété intellectuelle se sont imposés . Ceci a conduit à l’apparition de multiples techniques permettant de lutter contre la copie et la distribution illicite de matériels protégé.

Le but du projet est d’implémenter l’une de ces techniques pour le copyright des images :Le Watermarking ou tatouage en Français.Ca consiste à introduire dans l’image un code permettant l’identification de l’auteur et d’éventuelles autorisations accordées à l’utilisateur. Ce marquage de l’image doit être invisible, clairement identifiable et résistant vis-à-vis des transformations que peut subir l’image.

Algorithmes utilisés

Dans le cadre du projet, on utilise un watermarking basée sur la transformée de Fourier de l’image qui permet de travailler dans le domaine fréquentiel .Une insertion localisée dans ce domaine de l’information voulu aboutit ,par transformation inverse, à un étalement de la marque sur toute l’image.

Il existe plusieurs techniques permettant d’encoder les informations afin d’obtenir des marques digitales. Parmi elles, se trouve la technique d’étalement de spectre (spread spectrum en anglais) .Dans les télécommunication, l’étalement de spectre consiste à transmettre un message( typiquement un signale court) sur une large bande de fréquence, de telle manière que la puissance du signale transmis à toute fréquence soit indétectable . L’idée de base est de transformer une séquence courte de bits (le message) en une séquence longue que l’on introduit dans un grand spectre de fréquence à l’aide d’un procédé paramétrer par une clef privée .La marque ainsi introduite ressemble à du bruit.

 

 

 

Le schéma général du tatouage d’une image est le suivant :

 

 

 

 Procédé de tatouage :

             

Ici, la marque est un message de 16 caractères . On le transforme en une séquence de 640 nombres réels X   (x,…,x)  ne prenant que les valeurs 1 ou –1 , grâce à un code correcteur d’erreur.

On applique la transformée de Fourier discrète à l’image pour obtenir son spectre de module. Ce dernier est stocké sous forme de matrice ayant la même taille que l’image .Le centre de cette matrice correspond aux plus hautes fréquences .Les valeurs des fréquences décroissent en s’éloignant du centre pour atteindre leurs plus petites valeurs aux quatre coins de la matrice. Le spectre de phase est lui aussi calculer ,mais il ne subit aucun traitement .

On extrait de cette matrice 640 coefficients parmi ceux de basses fréquences qu’on choisi grâce à un vecteur Y de la même taille ,contenant des –1 et des 1 dont les positions sont  générer aléatoirement grâce à une clé donnée. On obtient un vecteur V qui regroupe ces coefficients.

On modifie les composantes vde ce vecteur suivant la formule : v’ = v(1+α*x*y) .

Le paramètre α détermine l’étendue de l’altération apportée par les  x sur les v.

Après, on replace les v’ dans la matrice du module et applique la transformée de Fourier inverse au spectre de module et de phase pour retrouver l’image tatouée.

 

Procédé d’extraction et de vérification :

 

Dans notre modèle de tatouage, l’extraction d’une marque se fait suivant deux schéma qui sont complémentaires :

 

 

 

Résultats obtenus :

ü      Le programme ainsi implémenter travaille sur des images dont les dimensions sont des puissances de deux. Ceci est lié à la nature des algorithmes utilisés pour la transformée de Fourier discrète. De plus , il n’est vraiment efficace que pour des images de tailles supérieur à 64x64 pixels .En dessous, des aberrations apparaissent  lors de la détection .Ceci est liée au choix de deux blocs de 20x32 chacun dans la matrice du module de la transformée de l’image .

ü      L’insertion du message n’altère pas visiblement la qualité de l’image .

 

 

 

 

 

 

 

                 Image originale                                                                     image tatouée

ü      La marque résiste à la compression jpeg. Elle reste détectable même quand l’image perd de sa qualité visuelle.

1.pgm

CREATOR: XV Version 3.10a  Rev: 12/29/94 (PNG patch 1.2)  Quality = 10, Smoothing = 0

 

 

 

 

 

 

 

                 Image originale                                                    image tatouée compressée à 90%

Dans ce cas, le programme détecte la bonne marque avec un indice de corrélation de 23/32 .Avec des marques aléatoires, cet indice ne dépasse pas 8/32 .On peut remarquer que l’image est sérieusement dégradée.

ü      La marque résiste à l’application de quelques filtres :

1.pgm

CREATOR: XV Version 3.10a  Rev: 12/29/94 (PNG patch 1.2)  Quality = 97, Smoothing = 0

 

 

 

 

 

 

 

                 Image originale                                                           image tatouée filtrée

La détection donne un indice de 13.5/32 .Cette valeur est assez grande pour certifiée la détection d’un tatouage valide.

ü      Le tatouage implémenté dans ce projet est fragile à toute transformation géométrique de l’image même très minime, telle que  une rotation de quelques degrés.

ü      Le générateur de séquence pseudo-aléatoires utilisé dans le programme est très basic. L’utilisation d’un autre algorithme augmenterait certainement la robustesse du procédé.

 

 

Quelques liens utiles : 

·        Une introduction aux concepts du watermarking .

·       Un article sur la technique de ‘spread spectrum’ avec beaucoup d’autres liens.