Home

B-rep Watermarking

by on 11-11-2007 01:02 PM

One thing that often surprises non-academics is how difficult it is to anticipate what other researchers will think of your work. At one level you are always aware if, despite months of hard thinking not a single, really good idea, has occurred to any one associated with the project. And likewise you will remember for years the moment some says “I know” and in a blinding flash of inspiration all the problems disappear!

Most projects are somewhere in between and progress through a number of “quite good” ideas. But just occasionally you tell someone a “quite good” idea and they declare it to be “really good”, causing the researchers involved to quickly rewrite their world views: “of course it is a really good idea, we knew all along”!

This happen to one of my students (Csaba Salamon) a few weeks ago, who presented a paper on B-rep watermarking (his PhD topic) at the DET Conference. He described a scheme for digitally marking B-rep (ie ACIS) models in such a way that neither their size (ie data structure) not their shape changed. To our pleasant surprise he won the best paper prize, (so we immediately realised that we had known all along) that it was a neat idea and we should tell everyone!

In a nutshell his paper said this: there has been lots of work on digital watermarking for meshes, using nearly every conceivable approach (such as subtly changing the location of points or the order of edges or the sizes of facets, etc.) But only a handful of researchers have reported work on watermarking B-reps (mainly by moving the location of knots on B-splines).

This is not surprising; applications that use meshes are wonderfully robust things that, generally, don't mind if a mesh has been fooled around with. Whereas in a B-rep the consequences of changes (say moving a single vertex a small amount or switching the direction of edges in a loop) are both profound and bad.

So how do you change a B-rep to make it distinctive, without upsetting the data-structure. None of the reported 3D mesh based methods are applicable to B-reps. After many months of exploring various dead-ends, the flash of inspiration came when we noticed that “uniting a sphere with block” did not produce the same model as “uniting a block with sphere”. Sure the shape is the same and the data structure has the same entities; ......................... what is different is the orientation of the edge's parametrization.


Test Object : Before and After Watermarking

This lead Csaba to the idea that a B-rep watermarking scheme could be implemented by “twisting” the orientation of the u-v coordinates on analytical surfaces (ie planes, cones, cylinders, tori) and so creating a distinctive digital “finger print” independent of the object's shape. You can see an example in the above picture where two “identical” models are distinguished by the orientation of the uv parametization on the large planar face. Conveniently ACIS provides a couple of api functions that can be used to make these sort of changes to the data structure in the local operations library (api_tweak_faces and api_move_face).

So far Csaba's shown that one can robustly change the orientation u-v axes on a model's faces without changing the file size. Impressively his watermarks survive boolean and blending operations on faces of the model that are not changed (although the jury is still out on IGES and STEP translation). The amount of information that can be embedded (invisibly) in this way is proportional to the precision of the model and the number of faces. But it already appears perfectly feasible to embed a form of digital signature in the object that guarantee its providence. So watch this space.

There is of course quite a credible belief that once you publish your watermarking scheme, it becomes useless ...... because anyone who cares can immediately start working to undermine it. So whether you tell anyone probably depends a lot on if you think you are revealing “quite a good idea” or a “really good idea”!

Comments
by on 11-14-2007 01:01 AM
Jonathan,

not sure if I get it right how you would really get a watermarking by setting the uv determination parammeters. How would you know, that a very specific setting of those would be your watermark or just pure coincidence?
If I get it right, the general assumption is that the uv determinating parameters are created in a specific way in a modeller by default. E.g. the xy-plane (~=uv) direction is created through modeling operations reproducibly depending on the plane's normal. I admit, I think this is not a reliable assumption...
The second question for me would be what would you try to accomplish with such watermarking? If the question is: Has the file been changed other techniques come into mind like (md5) fingeprinting or such. If you are to prohibit changing the model (file) you are completely lost...

Just my 0.02 €

Thomas
by on 11-14-2007 04:01 PM
Thomas,
yes by default the orientation of the uv parameters are determined by the way the model was created. The angles we used to rotate the uv coordinates were calculated to encode text strings (so they can be distinguished from random numbers).

The sort of scenario we envisage is that there is a master model, which is watermarked whenever a copy is sent out to a supplier. At a later date the ownership or version number of the model can be established (independent of filename). The master model is the “key” used to read the watermark.


Jonathan