Dissimulation de Données par Changement de Connexité d'un Maillage 3D
ABSTRACT Cet article présente une nouvelle méthode d’insertion de données cachées dans des modèles 3D surfacique. Les méthodes d’insertion de données se basent généralement sur la modification des sommets du modèle pour réaliser l’insertion. Dans notre méthode l’insertion des bits du message s’appuie sur une modification de la connexité du maillage. De ce fait nous ne modifions pas la position des sommets du modèle pour réaliser l’insertion. Notre approche privilégie la capacité d’insertion à la robustesse.
-
Citations (0)
-
Cited In (0)
Page 1
Dissimulation de données par changement de connexité d'un
maillage 3D
Data Hiding Based on Connectivity Modi?cation of 3D Mesh
P. Amat1,2, W. Puech1, S. Druon1et J.P. Pedeboy2
1Laboratoire LIRMM, UMR CNRS 5506, Université de Montpellier II
161, rue Ada, 34392 MONTPELLIER CEDEX 05, FRANCE,
2Stratégies S.A., 41-43 rue de Villeneuve, Parc d'a?aires SILIC - BP 80429
94583 Rungis cedex - France
Mots clefs
Dissimulation de données, Tatouage, Maillage triangulaire 3D, Quadrangle, Parcours de graphe,
Arbre couvrant minimum, Analyse en composante principale, Synchronisation des données.
Key words
Data hiding, Watermarking, 3D mesh, Quadrangle, Graph path, Minimum Spanning Tree, Prin-
cipal component analysis, Data synchronization.
Abstract
Day by day, the amount of digital data has been rapidly increasing on the Internet. The size of 3D
objects is very large and these objects need fast transmissions. Moreover, 3D data security becomes
increasingly important for many applications, e.g., con?dential transmission, video surveillance,
military and medical applications. In this paper we present two new approaches of 3D object data
hiding without changing the position of vertices in the 3D space. The main idea of the two proposed
methods is to ?nd and to synchronize particular areas of the 3D objects used to embed the message.
The embedding is done by changing the connectivity of edges in the selected areas composed of
quadrangles. The ?rst proposed approach of data hiding in 3D objects is based on minimum spanning
tree (MST) while the second approach is based on the projection on a secret axis of the quadrangle
centers. These methods are lossless in the sense that the positions of the vertices are unchanged.
Moreover they are blind and do not depend of the order of the data in the ?les. These two approaches
are very interesting when the 3D objects have been digitalized with high precision.
1
Page 2
Résumé
De nos jours, des visualisations ainsi que des transferts d'objets 3D sont couramment e?ectués
pour de nombreuses applications allant du jeu vidéo à l'imagerie médicale en passant par l'industrie
manufacturière. Dans cet article nous proposons deux nouvelles méthodes permettant de dissimuler
des données dans des objets 3D sans modi?er la position des sommets. L'idée principale des deux
méthodes présentées est de trouver et de synchroniser des zones particulières dans l'objet 3D pouvant
être utilisées pour insérer le message. L'insertion de données s'appuie sur la modi?cation de la
connexité des arêtes dans les zones sélectionnées composées de quadrangles. La di?érence entre les
deux méthodes présentées est la manière de sélectionner et de synchroniser ces zones d'insertion.
Alors que la première méthode s'appuie sur un arbre couvrant minimum (ACM), la seconde méthode
utilise un axe sur lequel sont projetés les centres des zones d'insertion. Ces deux méthodes aveugles,
protégées par utilisation de clefs secrètes, résistent à des transformations géométriques tels que les
rotations, translations ou changement d'échelle et ne sont pas perturbées par des modi?cations
directes de l'ordre des données dans les ?chiers originaux. Ces approches trouvent un intérêt certain
pour des objets 3D dont les sommets ont été acquis avec une grande précision et dont la modi?cation
n'est pas acceptable.
1 Introduction
Avec l'évolution des réseaux informatiques, le téléchargement d'objets 3D devient une transmis-
sion courante. A?n d'être universellement lisibles ces objets 3D doivent répondre à des normes et
des standards internationaux. Même si nous souhaitons apporter de nouvelles fonctionnalités à ces
objets, il est donc important de respecter les formats standards1permettant de manipuler ces objets
3D. Dans nos travaux, ces nouvelles fonctionnalités concernent la protection des objets 3D durant
la transmission et l'archivage, mais également l'enrichissement de ces objets avec des méta-données
sans augmenter la taille des objets et en synchronisant ces méta-données de manière hiérarchique
(qualité et spatiale). La représentation la plus utilisée pour les objets 3D est le maillage surfacique.
Cette représentation, composée de sommets, d'arêtes et de faces, est très répandue car supportée
par toutes les cartes de rendu graphique. De nombreuses méthodes d'insertion de données sont ba-
sées sur cette représentation. Les méthodes d'insertion de données2, peuvent être classées en deux
catégories, spatial ou transformé, en fonction du domaine utilisé pour réaliser l'insertion de données.
Quel que soit le domaine d'insertion, les méthodes de marquage d'objets 3D existantes s'appuient
généralement sur la modi?cation de sommets du maillage 3D pour réaliser l'insertion des données
cachées. Modi?er la position des sommets d'un objet 3D acquis avec une grande précision n'est
pas acceptable pour de nombreuses applications tels que le médical ou l'industrie manufacturière.
Dans cet article nous proposons deux méthodes d'insertion de données cachées qui ne s'appuient pas
sur la modi?cation des sommets des objets 3D pour réaliser l'insertion. Ces méthodes permettent
d'insérer des méta-données dans un objet 3D tels que le nom de l'auteur, la date de création de
l'objet, un logo 2D ou 3D, la couleur de l'objet ou encore la texture de l'objet lui-même. Notons que
ces méthodes résistent à des transformations géométriques telles que les rotations, les translations
et les mises à l'échelle uniforme.
1tels que STL, PLY, X3D etc ...
2Data hiding en anglais, appelées également méthodes de tatouage ou watermarking en anglais
2
Page 3
Le contenu de cet article se décompose de la manière suivante. En Section 2, nous présentons
un état de l'art sur les di?érentes méthodes d'insertion de données cachées appliquées aux objets
3D. Nous décrivons, Section 3, les deux méthodes d'insertion de données cachées proposées. En
Section 4, nous présentons et analysons les résultats de nos méthodes appliquées à des objets 3D
réels. En?n nous terminons, Section 5, par des conclusions et perspectives.
2 Etat de l'art
Selon le type d'application, les méthodes de tatouage peuvent être choisies en fonction de cer-
taines contraintes. Les contraintes les plus standard, relativement antagonistes, sont les contraintes
de perceptibilité, de robustesse et de capacité. Dans de nombreuses applications, les contraintes
de sécurité ou encore de complexité en temps de calcul sont également à prendre en compte. Les
méthodes, quand à elles, peuvent être classées en fonction du domaine d'insertion choisi. Les deux
principaux domaines d'insertion sont le domaine spatial et les domaines transformés. Les méthodes
d'insertion sont également divisées sur la base d'autres critères comme le fait d'avoir besoin ou non
de l'objet 3D original (méthodes non aveugles ou aveugles). Si seulement quelques paramètres sont
nécessaires pour l'extraction du message, la méthode est alors dite semi-aveugle. Des méthodes to-
talement aveugles peuvent nécessiter l'utilisation d'une clef secrète pour extraire le message caché.
Dans ce cas, la clef secrète est indépendante du contenu caché mais également de l'objet 3D lui
même. Un algorithme de tatouage doit pouvoir être connu de tout le monde, même s'il utilise une
clef secrète, a?n de respecter le principe de Kerckho?s [Ker83].
Dans cet article, nous proposons de classer les méthodes d'insertion de données cachées en deux
catégories. La première de ces catégories de méthodes d'insertion repose sur l'ordonnancement des
primitives des objets ou sur la connectivité et la topologie des objets 3D à marquer. Dans cette
première catégorie la position des points composant l'objet 3D original est inchangée. La seconde
catégorie s'appuie sur des déplacements spatiaux des points de l'objet 3D ou sur la déformation
géométrique d'autres primitives constituant les objets 3D, que ce soit dans le domaine spatial ou
dans un domaine transformé.
Méthodes basées sur l'ordonnancement des primitives ou sur la connectivité et
la topologie
Cette première catégorie présente donc des méthodes d'insertion qui reposent sur l'ordonnan-
cement des primitives des objets ou sur la modi?cation de la connectivité ou de caractéristiques
topologiques des objets 3D à marquer. Ces modi?cations sont prises en compte en général dans le
domaine spatial. Dans cette catégorie, des méthodes d'insertion sont basées sur l'organisation des
données au niveau du ?chier constituant l'objet 3D.
Ichikawa et al. [ICA02] proposent deux méthodes de tatouage utilisant la modi?cation de l'or-
ganisation des données a?n d'insérer un message caché. La première méthode modi?e dans la liste
l'ordre des triangles, alors que la seconde méthode modi?e l'ordre des triplets de points formant
le triangle. L'algorithme de tatouage Triangle Strip Peeling Symbol sequence (TSPS) de Ohbuchi
et al. est basé sur un changement topologique [OMA97]. Pour insérer de l'information au niveau
du maillage, cet algorithme propose de déconnecter une bande de triangles du maillage original.
La première étape de l'algorithme consiste à choisir, dans le maillage original, une arête de départ
du triangle initial, notée e. A partir de cette arête de départ et du message à insérer, une bande
3
Page 4
de triangles est générée. Le choix du triangle suivant à rajouter dans la bande se fait en fonction
de la valeur du bit de message à insérer et du sens de parcours choisi dans le triangle (horaire
ou anti horaire). Cela permet donc d'indexer toutes les arêtes à 1 ou à 0 en fonction de leur sens
de parcours dans le triangle. Les arêtes suivantes empruntées, et donc les triangles générant cette
bande, sont choisies en fonction du message à insérer. L'étape suivante de l'algorithme consiste à
déconnecter cette bande de triangles du maillage en dupliquant tous les sommets de la bande sauf
ceux de l'arête e permettant de retrouver le message. Le maillage tatoué se retrouve donc avec un
trou à la surface recouvert par la bande de triangles contenant le message. L'extraction du message
se fait en cherchant l'arête e puis en parcourant la bande de triangles. Les inconvénients majeurs de
cette méthode sont que l'objet est troué et que des sommets sont rajoutés, donc la taille du ?chier
augmente. De plus, nous pouvons noter que cette insertion est très locale dans le sens où le message
inséré n'est pas di?usé dans tout le maillage de l'objet, et qu'il est facile de repérer dans le ?chier
les sommets qui ont été dupliqués et donc de retrouver le message inséré.
Mao et al. ont développé une méthode d'insertion consistant à ajouter des triangles plus petits
à l'intérieur des triangles initiaux de l'objet 3D [MSI01]. Avec cette approche, chacune des arêtes
d'un triangle initial est divisée en deux arêtes par le sommet d'un petit triangle inséré. Le ratio
entre les longueurs des deux arêtes ainsi formées est utilisé pour réaliser l'insertion d'un bit. Pour
initialiser le processus, deux arêtes d'un triangle sont choisies à l'aide d'un GNPA (Générateur de
Nombres Pseudo-Aléatoires). Après le tatouage de la dernière arête d'un triangle, c'est le triangle
voisin à cette arête, si il existe et si il n'a pas déjà été tatoué, qui est parcouru a?n de continuer
l'insertion du message. La capacité de cette méthode est de 2 bits par triangle, sauf pour le triangle
initial dans lequel 3 bits sont insérables. Cette méthode peut avoir une forte capacité d'insertion
du fait que l'étape de division d'un triangle peut-être répétée plusieurs fois. Pour l'extraction, à
partir de la même clef, les deux arêtes du triangle initial sont retrouvées, ensuite le parcours des
triangles est identique à la phase d'insertion. Les inconvénients majeurs de cette méthode sont que
des sommets sont rajoutés, donc la taille du ?chier augmente, et que les zones marquées sont visibles
du fait qu'un triangle marqué génère quatre triangles plus petits car contenus dans la surface du
triangle initial. De plus, la propriété de voisinage des faces3n'est plus respectée en bordure de la
zone marquée.
En conclusion de cette première classe de méthodes, nous pouvons noter que la position des
points composant l'objet 3D original est inchangée. Cependant certaines méthodes proposent de
rajouter des points supplémentaires et la plupart de ces méthodes sont très fragiles et ne résistent
pas à la manipulation du ?chier contenant les données initiales telle que l'inversion de deux lignes
par exemple. Les approches que nous développons en Section 3 font partie de cette catégorie mais
permettent de résister à la manipulation des ?chiers contenant les données initiales, di?usent le
message dans tout l'objet et ne rajoutent pas de sommets.
Méthodes basées sur des modi?cations géométriques de l'objet 3D
Cette seconde catégorie d'algorithme de tatouage est basée sur la modi?cation de la géométrie
de l'objet 3D, comme la position des points ou encore les normales des triangles ou des faces.
Contrairement à la première catégorie présentée, qui ne s'applique que dans le domaine spatial,
cette seconde catégorie peut s'appliquer dans les domaines spatial et transformés.
3Chaque arête d'un maillage doit avoir exactement deux faces adjacentes pour une arête intérieure au maillage et
une seule si c'est une bordure du maillage.
4
Page 5
Ohbuchi et al. proposent di?érentes méthodes de tatouage dans le domaine spatial, comme le
Tetrahedral Volume Ratio (TVR) et le Triangle Similarity Quadruple (TSQ) [OMA97]. Le TVR
utilise le rapport des volumes de deux tétraèdres. Dans cette méthode les tétraèdres utilisés sont
formés par une arête et les deux triangles incidents. Le parcours du graphe de connexité repose sur un
arbre de recouvrement des points. Les arêtes de l'arbre construit servent à générer et à référencer les
tétraèdres ainsi que leur ordre de parcours. Concernant la méthode basée sur le TSQ, la con?guration
géométrique est constituée de quatre triangles dont l'un est central et sert à signaler la présence
d'information cachée. L'un de ses voisins contient l'index du triangle utilisé pour insérer le bit du
message. Les deux autres voisins restants, servent alternativement à enregistrer l'information utile.
L'insertion de l'information est alors e?ectuée en modi?ant des paires de rapports de distances des
cotés des triangles. L'algorithme Vertex Flood de Benedens [Ben99a] repose sur la modi?cation de
la distance des points admissibles au centre de masse de l'objet. Une seconde méthode de Benedens
Triangle ?ood utilise les informations de connectivité et de géométrie pour générer un parcours sur
le maillage de l'objet [Ben99b]. Dans cette méthode l'insertion du message se fait en modi?ant la
position des points a?n d'altérer la hauteur des triangles. La méthode proposée par Bors utilise la
con?guration géométrique locale des points pour sélectionner des zones d'insertion [Bor06]. La zone
est représentée par un sommet et tous les triangles contigus avec un voisinage ellipsoïdal autour
de ce sommet. Pour coder une valeur à 0, le sommet est déplacé à l'extérieur de son voisinage et
pour coder une valeur à 1 il est déplacé à l'intérieur. Dans la méthode de Cayre et Macq, l'insertion
est faite en projetant le sommet d'un triangle sur sa base et en regardant si celle-ci appartient
à la moitié droite ou gauche de la base [MC03]. La sélection des zones d'insertion est faite par
un parcours unique du maillage à l'aide d'une clef secrète. La méthode de Wagner [Wag00] vise à
insérer les données cachées dans les longueurs relatives des vecteurs laplaciens locaux en modi?ant
la courbure locale de l'objet. Benedens a proposé une méthode de tatouage d'objet 3D en utilisant
des NURBS et en modi?ant les poids et les vecteurs de noeuds de manière à préserver la géométrie
globale [Ben00]. La méthode de Lee et al. propose d'insérer la marque non plus directement dans
l'objet 3D, mais dans des images virtuelles dérivées de celui-ci [LCK02].
Dans le domaine transformé, Ohbuchi et al. proposent une méthode qui utilise une matrice lapla-
cienne du maillage de l'objet 3D a?n de passer du domaine spatial au domaine fréquentiel [OMT02].
Dans le domaine des ondelettes, la méthode de Kanai et al. utilise une décomposition en ondelettes
du maillage et insère l'information en modi?ant le bit de poids faible de certains coe?cients d'on-
delettes [KDK98]. Yin et al. proposent également un algorithme qui travaille dans le domaine des
ondelettes [YPSZ01]. L'algorithme est basé sur une décomposition multirésolution du maillage de
l'objet 3D développé par Guskov et al. [GSS99]. La méthode proposée par Praun et al. utilise l'espace
de Kernel pour insérer l'information dans les composantes basses fréquences de la surface [PHF99].
Wang et al. proposent une méthode de tatouage hiérarchique [WLDB07a]. Grâce à une décomposi-
tion en ondelettes, un tatouage robuste aux attaques géométriques et un tatouage de haute capacité
sont appliqués à di?érents niveaux de résolution du maillage en modi?ant les normes des coe?cients
d'ondelettes. Alface et al. analysent les propriétés des méthodes de tatouage basées sur les histo-
grammes et les utilisent a?n d'être robuste au découpage [AMC07]. Récemment, une référence des
tests de type benchmark a été proposé par Bennour et Dugelay [BD07]. Deux états de l'art récents
dans le domaine complètent cette section [RAM07, WLDB07b].
5
Page 6
3Méthodes proposées
Dans cette section nous détaillons deux nouvelles méthodes de dissimulation de données dans
des objets 3D. Nos méthodes se basent sur un modèle 3D représenté par un nuage de points et
une liste d'arêtes correspondant au maillage triangulaire de la surface. L'idée principale des deux
méthodes est de trouver et de synchroniser des zones particulières pouvant être utilisées pour insérer
le message. L'insertion de données s'appuie sur la modi?cation de la connexité des arêtes dans des
zones sélectionnées. Ces modi?cations ont pour conséquence de modi?er la structure des triangles
construits dans ces zones. Ces méthodes de dissimulation présentent l'avantage de ne pas modi?er
la position initiale des points du modèle 3D. Cet invariant sur la position des points nous permet de
rendre l'insertion robuste aux transformations a?nes de type rotation, translation ou changement
d'échelle. La di?érence entre les deux méthodes présentées est la manière de sélectionner et de
synchroniser les zones d'insertion. Alors que la première méthode, présentée Section 3.1, s'appuie
sur un arbre couvrant minimum (ACM), la seconde méthode, présentée Section 3.2, utilise un axe
sur lequel sont projetés les centres des zones d'insertion.
3.1Insertion basée sur un arbre couvrant minimum
Dans cette section nous présentons l'approche d'insertion de données cachées basée sur un arbre
couvrant minimum (ACM). Cette approche est composée de trois étapes. La première étape consiste
à construire un ACM à partir des sommets initiaux du modèle 3D. La seconde étape nécessite de
parcourir l'ACM construit a?n de sélectionner des zones pour l'insertion des données. Le point de
départ utilisé pour parcourir le graphe est obtenu à partir d'une clef secrète. A partir d'une analyse
en composante principale (ACP) de l'objet 3D, la clef secrète nous permet, dans le repère de l'objet,
de localiser le point de départ de l'ACM. Du fait de cette ACP, une réorganisation du ?chier ne
perturbe pas la localisation de ce point de départ qui ne dépend donc que de la clef secrète. Les
zones d'insertion doivent répondre à plusieurs contraintes dues à la connexité de l'ACM et à la
géométrie de la zone. La troisième étape concerne l'insertion du message elle-même. Celle-ci est
faite en modi?ant la connexité des triangles dans les zones sélectionnées. La Figure 1 illustre le
schéma général de cette première méthode.
En Section 3.1.1 nous détaillons la dé?nition d'un ACM et présentons sa construction. Nous
montrons, Section 3.1.2, comment sélectionner les zones d'insertion a?n de les synchroniser avec le
message. La méthode d'insertion de données cachées est décrite dans la Section 3.1.3. Nous montrons,
Section 3.1.4, que les zones d'insertion sélectionnées sont soumises à des contraintes géométriques.
En?n, la Section 3.1.5 décrit comment extraire le message dans un ?chier 3D marqué.
3.1.1Arbre couvrant minimum
Dé?nition :
relation. Soient a et b deux sommets de ce graphe qui sont en relation, le couple (a,b) est donc une
arête du graphe G. Soit A un graphe non orienté connexe sans cycle, dans ce graphe il n'existe donc
pas de chemin relié à un sommet de A qui permette de revenir sur ce même sommet. Ce graphe
respecte alors deux propriétés :
? Si une arête est enlevée, il n'est alors plus connexe.
? Si une arête est ajoutée, celle-ci forme alors un cycle.
soit G un graphe formé d'un ensemble de couples de sommets représentant une
6
Page 7
Fig. 1 ? Présentation générale de la méthode d'insertion basée sur un ACM.
Pour le graphe G, il existe au moins un arbre couvrant A. Il s'agit d'un graphe partiel qui possède
les mêmes sommets que G et dont l'ensemble des relations est inclus dans celui des relations de G.
Le coût du graphe G correspond à la somme de toutes les pondérations des arêtes de G. Si A est
un arbre couvrant de G dont la somme des pondérations de ses arêtes est la plus petite valeur
par rapport à celle de tous les autres arbres couvrant de G, alors A est appelé arbre couvrant de
poids minimum de G et noté ACM. Dans notre méthode le poids utilisé pour calculer l'ACM est la
distance euclidienne entre les points de l'objet 3D. La particularité d'un ACM est qu'il est unique, il
existe cependant une ambiguïté dans les méthodes de construction lorsque un sommet possède deux
arêtes de même poids. La méthode choisit l'arête qu'elle rencontre en premier dans son parcours
des sommets. Si l'ordonnancement des sommets dans le ?chier est modi?é alors l'ACM lui aussi
pourrait être modi?é. Pour palier à cette ambiguïté un calcul de distance entre les deux sommets
des deux arêtes identiques et le centre de masse de l'objet est utilisé. De cette façon l'ACM est
bien unique quelle que soit la réorganisation des points dans le ?chier de l'objet 3D.
C'est cette particularité forte des ACM que nous utilisons Section 3.1.2 a?n de synchroniser le
message avec le modèle 3D. Nous nous appuyons également sur cette caractéristique pour insérer
les données présentée Section 3.1.3.
Construction de l'ACM :
connus sont l'algorithme de Prim [Pri57] et l'algorithme de Kruskal [Kru56].
? L'algorithme de Prim construit progressivement un sous-graphe A de G en choisissant l'arête
de poids minimum localement à chaque étape, en espérant qu'elle fasse partie de la solution
globale [Pri57]. Au départ, A est vide et un sommet s de G est choisi comme point de départ.
A est alors uniquement composé de s. Soit E l'ensemble des sommets en relation avec s dans
A, soit F l'ensemble des sommets restants. Au départ E est donc vide, et F contient tous les
sommets de G. A chaque étape une arête est ajoutée à A telle que cette arête soit de poids
minimum parmi toutes les arêtes ayant un sommet x la composant dans F et l'autre dans E.
Ceci permet de ne pas former de cycle. Ainsi le sommet x sort de l'ensemble F et est inséré
il existe plusieurs algorithmes pour construire des ACM. Les plus
7
Page 8
dans E. L'algorithme s'arrête quand l'ensemble F est vide. La Figure 2.b présente un résultat
de l'algorithme de Prim à partir du nuage de points illustré Figure 2.a.
? L'algorithme de Kruskal construit progressivement un sous-graphe A de G en triant d'abord
l'ensemble des arêtes selon leur poids et ensuite en sélectionnant celles qui ne formeront pas
de cycle dans A [Kru56]. Pour cela, les sommets sont choisis un par un et triés dans l'ordre
croissant selon la pondération de l'ensemble des arêtes qui lient un sommet s aux autres. Pour
chaque arête (s,s?) triée il faut véri?er si la liste des voisins de s dans A est di?érente de celle
de s?dans A. Si aucun sommet voisin n'est commun, alors l'arête (s,s?) est ajoutée à A.
(a)(b)
Fig. 2 ? a) Nuage de points initial (453 points), b) Calcul de l'ACM avec l'algorithme de Prim.
3.1.2 Sélection et synchronisation des zones d'insertion
La synchronisation des données cachées est obtenue en repérant des connexités particulières
présentes dans l'ACM. Une fois l'ACM construit, deux phases sont nécessaires a?n de synchroniser
le message à insérer. La première phase consiste à dé?nir le sens de lecture de l'ACM. En e?et,
l'arbre est unique mais le parcours de celui-ci dépend du sommet de départ. Dans notre approche ce
sommet est obtenu à partir d'une clef secrète. L'utilisation d'une clef nous apporte une sécurité sur
le message inséré dans le modèle 3D. Le nombre de sens de lecture est égal au nombre de sommets
dans le modèle 3D. Ainsi plus le nombre de sommets est grand plus le système est protégé4. Une fois
que le sens de lecture de l'ACM est obtenu, des zones particulières sont recherchées a?n d'e?ectuer
l'insertion de données. Ces zones particulières correspondent à des noeuds de l'ACM qui possèdent
trois arêtes comme représenté Figure 3. Ces zones sont formées de quatre sommets, un noeud
père et trois autres noeuds ?ls reliés chacun par une arête. Nous cherchons dans le maillage de la
forme 3D les deux triangles inclus dans la zone formée par ces quatre noeuds. Les trois points de
chacun de ces triangles doivent appartenir aux quatre noeuds de la zone. Deux triangles auront donc
une arête commune dans la zone et forme un quadrangle. L'ensemble des quadrangles représente
donc les zones où sont insérés les bits du message. La méthode d'insertion utilisée et présentée
Section 3.1.3 utilise directement ces zones particulières détectées et synchronisées. Cependant, nous
4La clef peut également servir de semence pour un GNPA a?n de disperser le message dans l'objet 3D
8
Page 9
détaillons Section 3.1.4 qu'une partie de ces quadrangles ne peut pas être utilisée pour réaliser
l'insertion. En e?et, certaines zones ne répondent pas aux contraintes demandées par la méthode
d'insertion et d'autres ne peuvent pas être retenues pour des raisons de non invisibilité de l'insertion.
L'ACM, de par sa construction, va nous permettre de résister aux transformations a?nes telles que
les rotations, les translations ou les changements d'échelles. Ceci est rendu possible grâce à notre
méthode d'insertion qui ne modi?e pas la position des sommets de l'objet 3D. Le nombre de zones
sélectionnées dépend du nombre de points de l'objet 3D, des valeurs des seuils pour les di?érentes
contraintes mais également du maillage global de l'objet. Nous montrons, Section 4, combien de
zones en moyennes sont sélectionnées en fonction de tous ces paramètres.
Fig. 3 ? Exemple de zones formant des quadrangles sélectionnées pour la synchronisation des
données cachées.
3.1.3 Insertion des données
Cette partie présente la phase d'insertion des données cachées. Dans la Section 3.1.2 nous avons
présenté comment localiser les zones d'insertion à l'aide de l'ACM. Ces zones sont formées de quatre
sommets, un noeud père et trois noeuds ?ls reliés chacun par une arête. Ces zones constituent donc
des quadrangles. Pour insérer un bit du message dans un quadrangle sélectionné nous examinons
l'arête commune des deux triangles inclus dans le quadrangle.
Une zone sélectionnée pour l'insertion est présentée Figure 4.a, elle est composée d'un noeud avec
trois arêtes. L'insertion d'un bit à 0 est réalisée en construisant l'arête commune des deux triangles
sur l'arête initiale de l'ACM comme présenté Figure 4.b. Au contraire pour l'insertion d'un bit à 1,
l'arête commune des deux triangles est construite de façon à ne pas être en superposition avec l'arête
initiale de l'ACM comme présenté Figure 4.c. Notons que la modi?cation a lieu dans la connexité
du maillage et non dans celle de l'ACM. Cette méthode d'insertion permet de ne pas modi?er la
position des sommets du modèle 3D. Ce point est une notion importante pour la synchronisation
et nous permet de reconstruire le même ACM lors de l'extraction du message. Par contre, cette
méthode d'insertion impose des contraintes sur les quadrangles choisis. Modi?er la connexité du
9
Page 10
(a)(b)(c)
Fig. 4 ? a) Partie de graphe issu de l'ACM et sélection d'un quadrangle, b) Insertion d'un bit à 0,
c) Insertion d'un bit à 1.
maillage peut amener des erreurs au niveau de celui-ci mais aussi des défauts visuel au niveau de
la surface. Nous détaillons Section 3.1.4 les contraintes à respecter et expliquons pourquoi certains
quadrangles ne peuvent pas être utilisés pour insérer les données.
3.1.4Contraintes sur le choix des zones d'insertion
Dans cette section nous présentons les contraintes appliquées aux quadrangles résultants de
l'étape de synchronisation. En e?et, une partie de ces quadrangles n'est pas utilisée pour e?ectuer
l'insertion de données. Ces contraintes concernent la coplanarité, la convexité et le recouvrement.
Contrainte de coplanarité :
de modi?er la connexité des deux triangles formant un quadrangle modi?e aussi l'angle formé entre
ces deux triangles. Par conséquent, l'insertion de données sur un quadrangle non coplanaire a?ecte
la surface et donc le rendu visuel du modèle 3D. De manière idéale il ne faudrait insérer le message
que dans les quadrangles strictement coplanaires. Cependant, la quantité de quadrangles répondant
strictement au critère de coplanarité est très limitée. A?n d'augmenter la capacité d'insertion, nous
insérons dans notre approche un seuil Scde tolérance sur la coplanarité des quadrangles sélectionnés.
Ce seuil nous permet d'obtenir un compromis entre la capacité d'insertion et la qualité du modèle
3D. Plus ce seuil sera grand, plus la capacité d'insertion sera grande au détriment du rendu visuel.
Au contraire plus ce seuil sera petit, plus la capacité d'insertion sera petite mais moins sera dégradé
l'objet 3D. Par l'intermédiaire du seuil Sc, un réglage est donc possible entre la capacité d'insertion
et le rendu visuel du modèle 3D. Soit le quadrangle Q1234formé des points P1,P2,P3,P4. Dans un
premier temps, la normale N au plan P123est calculée. Le point P4est alors projeté orthogonalement
sur la normale N. La distance qui sépare la projection du point P4sur N du plan P123est nommé
d4. Ce calcul de distance est e?ectué pour les projections de P1, P2et P3respectivement sur les
normales aux plans P234, P134 et P124. Le quadrangle ne sera retenu que si la plus grande des
distances calculées est inférieure au seuil Scpréalablement ?xé :
la première contrainte est la coplanarité des quadrangles. Le fait
Q1234est retenu si et seulement si min(di)
i={1,2,3,4}
< Sc.
(1)
Un exemple de calcul de d4pour la coplanarité d'un quadrangle est illustré Figure 5.
10
Page 11
(a)(b)
Fig. 5 ? a) Quadrangle Q1234, b) Mesure de d4pour la contrainte de coplanarité.
Contrainte de convexité :
dissimulation de données soient convexes. Pour cette contrainte nous partons du principe que les
quadrangles retenus répondent déjà à la contrainte de coplanarité. La Figure 4 illustre un quadrangle
convexe où un bit à 0 ou à 1 ont été insérés respectivement Figures 4.b et 4.c. Dans ce cas, malgré
le changement de connexité des triangles, le quadrangle répond à des caractéristiques identiques et
couvre le même espace géométrique pour les deux cas d'insertion. La Figure 6 illustre un cas de
quadrangle non convexe formé par les plans P123et P234. Nous constatons que la modi?cation de
la connexité des triangles lors de l'insertion d'un bit modi?e la surface couverte par le précédent
quadrangle. Cette modi?cation ajoute une erreur sur la surface du quadrangle. Cette erreur est
représentée par la surface P134de la Figure 6. C'est pour éviter cette erreur sur la surface que la
contrainte de convexité a été introduite.
la seconde contrainte impose que les quadrangles utilisés pour la
(a)(b)
Fig. 6 ? a) Triangles T123et T234avant insertion, b) Triangles T124et T134après insertion.
Le calcul de cette contrainte combine successivement deux procédés :
? Les vecteurs Vi,i+1 mod 4 entre les points Pi et Pi+1 du quadrangle sont calculés pour i ∈
{1,...,4}. Les angles αientre deux vecteurs consécutifs sont alors calculés.
Q1234est retenu si et seulement si αi < 180 pour i ∈ {1,...,4}.
(2)
Ceci permet de retirer tous les quadrangles ayant des angles obtus ou trois points alignés.
11
Page 12
? Le second calcul nous permet de supprimer des quadrangles trop proches d'une forme triangu-
laire, ce qui correspond à trois points sur les quatre alignés. Dans ce cas, l'insertion de données
ferait apparaître des triangles trop disproportionnés. Un seuil de tolérance Stest choisi a?n
que la proportion des deux triangles d'un quadrangle respecte une certaine valeur. Pour cela
nous calculons la longueur des segments P23et P14ainsi que la distance D séparant les centres
de ces deux segments. Un quadrangle est alors retenu pour l'insertion si et seulement si :
D ≤ St× P14 et D ≤ St× P23.
(3)
Contrainte de recouvrement :
drangles. A partir des quadrangles retenus avec les deux contraintes précédentes il peut en rester
avec plusieurs sommets en commun. Lorsque des quadrangles possèdent au maximum un point en
commun cela ne pose aucun problème et dans ce cas les quadrangles sont retenus pour l'insertion des
données cachées. Par contre si deux quadrangles possèdent plus de un point en commun, la modi?-
cation de la connexité sur un de ces quadrangles au moment de l'insertion de données, va perturber
le second. C'est le cas par exemple des noeuds possédant plus de trois ?ls. Pour éviter ce problème
de recouvrement un choix sera fait parmi l'ensemble des quadrangles se recouvrant pour n'en garder
qu'un seul. Ce choix est fait de façon à garder le quadrangle qui a?ectera le moins le rendu visuel du
modèle 3D lors de l'insertion d'un bit du message. Par conséquent le quadrangle le plus coplanaire
sera choisi pour l'insertion des données. Finalement nous retenons uniquement les quadrangles sa-
tisfaisant les trois contraintes présentées. La méthode d'insertion présentée Section 3.1.3 est alors
appliquée sur les quadrangles retenus. Cette contrainte limite le nombre maximum théorique de
quadrangles marquables à N/4, N étant le nombre de points de l'objet 3D.
la troisième contrainte concerne le recouvrement des qua-
3.1.5Extraction du message
Pour extraire le message caché, la première étape consiste à reconstruire l'ACM à partir des
points du modèle. Pour cela, l'ACP est donc calculée sur les points a?n de déterminer le point de
départ de l'ACM à l'aide de la clef secrète. Comme notre méthode d'insertion ne modi?e pas la
position des points, l'ACM reconstruit est le même qu'à l'insertion. Dans la seconde étape il s'agit
de retrouver les zones d'insertion, en utilisant les mêmes contraintes que pour l'insertion. Une fois
ces deux étapes réalisées, il ne reste plus qu'à extraire le message de ces zones. Pour cela nous
comparons la position de l'arête commune des deux triangles formant un quadrangle avec l'arête
initiale de l'ACM. Si l'arête commune fait partie de l'ACM alors le bit lu est un 0, sinon c'est un
1 comme illustré Figure 4. Notons que la reconstruction de l'ACM nécessite l'utilisation d'une clef
secrète protégeant l'information cachée. La Figure 7 illustre le schéma d'extraction du message.
L'ACM de l'objet est unique mais les quadrangles sélectionnés pour l'insertion dépendent eux du
sens de lecture de l'ACM. Si N est le nombre de points de l'objet 3D, la complexité de cette méthode
est de N. A?n d'augmenter la complexité de la méthode, la clef peut être utilisée pour mélanger
l'ordre des bits du message. La complexité est alors de N×2n, avec n ≤ N le nombre de quadrangles
utilisés pour l'insertion des données cachées.
3.2Méthode d'insertion basée sur la projection de quadrangles
Cette seconde méthode d'insertion de données cachées est basée sur la projection des centres
des zones d'insertion sur un axe clef. Comme dans la première méthode, les zones d'insertions sont
12
Page 13
Fig. 7 ? Présentation générale de la méthode d'extraction.
également des quadrangles. Cette méthode est composée de trois parties. La première partie est la
sélection des zones qui vont nous servir à insérer des données cachées. Ces zones sont choisies selon
plusieurs contraintes. La seconde partie est la synchronisation du message avec le modèle 3D. Pour
cela nous nous appuyons sur un axe clef construit dans un repère invariant. Ce repère est construit à
l'aide d'une analyse en composante principale (ACP) et d'un axe généré à partir d'une clef secrète.
Le centre de chaque quadrangle choisi pour l'insertion est alors projeté sur l'axe. La troisième étape
est l'insertion du message. Pour cela, comme dans la méthode précédente, la connexité des triangles
des quadrangles sélectionnés est modi?ée. La Figure 8 illustre le schéma général de la méthode. Dans
la Section 3.2.1 nous présentons les contraintes supplémentaires utilisées pour sélectionner les zones
où sera inséré le message. Nous détaillons dans la Section 3.2.2 comment synchroniser ces zones avec
le modèle 3D. La Section 3.2.3 présente la méthode utilisée pour insérer le message dans le maillage
3D. En?n nous montrons Section 3.2.4 comment extraire le message d'un ?chier 3D marqué avec
cette seconde méthode.
Fig. 8 ? Présentation générale de la méthode d'insertion basée sur la projection des quadrangles.
13
Page 14
3.2.1Sélection des zones d'insertions
Comme dé?ni Section 3.1.2 nous appelons quadrangle une zone formée par deux triangles du
maillage ayant une arête commune. Ces quadrangles sont validés comme zones d'insertion dans la
mesure où ils répondent à toutes les contraintes. Contrairement à la méthode précédente où les
quadrangles étaient choisis par une connexité particulière de l'ACM, ici ce sont uniquement ces
contraintes qui nous permettent de faire cette sélection. En fait dans cette seconde méthode, tous
les quadrangles du maillage sont examinés a?n de voir si ils répondent aux critères de convexité,
coplanarité et recouvrement. Les trois critères de convexité, coplanarité et recouvrement sont les
mêmes que dans la méthode précédente détaillée Section 3.1.4. Un quatrième critère est nécessaire
pour cette méthode a?n de sélectionner les quadrangles. Il s'agit de la contrainte de stabilité.
Stabilité :
quadrangles. En e?et, le fait de modi?er la connexité des triangles pour l'insertion de données
engendre de nouveaux triangles et donc de nouveaux quadrangles. Ces nouveaux quadrangles sont
susceptibles de répondre aux contraintes demandées pour l'insertion et donc de venir interférer avec
les quadrangles choisis au préalable. Nous pouvons voir Figure 9 un exemple d'interférence. Au
départ dans la Figure 9.a le quadrangle Q1234choisi pour l'insertion est représenté par les triangles
T124et T234. Nous remarquons que les triangles T234et T235forment également le quadrangle Q2534
qui ne répond pas au critère de convexité. La Figure 9.b représente la même zone après une insertion
sur le quadrangle Q1234avec changement de base commune. Nous constatons alors qu'il est possible
de former le quadrangle Q1253avec les triangles T123et T253qui répond aux critères de sélection. Ce
quadrangle peut alors interférer avec le quadrangle précédemment sélectionné et nous empêcher de
récupérer le bit du message. En fait l'insertion d'un bit du message dans un quadrangle peut générer
un nouveau quadrangle répondant aux quatre contraintes. Dans ce cas, des ambiguïtés seraient
rencontrées au moment de l'extraction. Pour qu'un quadrangle réponde au critère de stabilité il
faut que tous les quadrangles formés lors de l'insertion d'un bit ne puissent pas interférer avec
le quadrangle sélectionné pour l'insertion. Les quadrangles sont évalués à l'aide des critères de
coplanarité et de convexité, nous choisirons alors pour l'insertion de données le quadrangle ayant les
meilleurs critères dans la zone de perturbation. De cette façon nous nous assurons que le quadrangle
est stable.
c'est une contrainte forte pour l'insertion de données basée sur la projection des
(a)(b)
Fig. 9 ? a) Triangles initiaux, b) Triangles après insertion.
14
Page 15
3.2.2Synchronisation des quadrangles retenus
Pour réaliser la synchronisation nous nous appuyons sur un axe clef. Cet axe est généré à partir
d'une clef en construisant un point et un vecteur. Cet axe est construit dans le repère de l'objet
obtenu à partir d'une analyse en composante principale (ACP). L'ACP nous permet de rendre notre
méthode d'insertion robuste aux transformations a?nes telles que les rotations, les translations ou
les changements d'échelles. Pour synchroniser le message nous e?ectuons une projection orthogonale
des centres des quadrangles retenus sur cet axe. Nous classons alors les points projetés en prenant
le point initial de l'axe clef comme origine. Dans le cas où plusieurs quadrangles se projettent sur
l'axe clef en un même point le quadrangle le plus proche de l'axe clef est sélectionné en premier.
Par conséquent notre approche est robuste à une réorganisation des points dans le ?chier 3D.
L'ordonnancement de ces points sur l'axe donnera le sens d'insertion des bits du message sur les
quadrangles. La sécurité du message repose sur l'axe clef mais aussi sur la taille de l'objet 3D à
tatouer. Il est possible de retrouver le message en essayant toutes les permutations possibles des
quadrangles servant à l'insertion des données cachées. L'information cachée peut être soit un 0 soit
un 1 ce qui fait deux possibilités par quadrangle. Soit n ≤ N, le nombre de quadrangles utilisés
pour insérer l'information cachée, alors le nombre de permutations possibles des bits du message
est le nombre de possibilités à la puissance du nombre de quadrangles : 2n. La sécurité du message
augmente donc avec le nombre de quadrangles utilisés pour l'insertion. La Figure 10 illustre la
projection et la synchronisation de cinq quadrangles sur l'axe clef dans le repère de l'ACP de l'objet
3D.
Fig. 10 ? Synchronisation des projections des centres des quadrangles sur l'axe clef.
3.2.3Insertion du message
Comme pour la synchronisation, l'insertion va également s'appuyer sur l'axe clef. Pour chaque
quadrangle retenu nous projetons sur l'axe clef les quatre points formant ce quadrangle. Deux de
ces quatre points appartiennent à la base commune aux deux triangles formant le quadrangle. Le
code b est attribué à la projection des points appartenant à la base commune et le code a est
attribué à la projection des deux autres points du quadrangle. Le sens de lecture de l'axe clef va
nous permettre d'obtenir un ordre particulier sur les points a et b. Nous considérons que si un
15