Robust Mesh Watermarking
之前看了一篇题为"Robust Mesh Watermarking"的论文,查阅资料的时候发现了一篇与之很相似的名为"三维模型数字水印系统的设计与实现"的中文论文,在中文论文的帮助下,总算对网格水印有了一定的了解,简单整理了一下。
由于知识版权保护的需要,数字水印技术应运而生。目前,图像、视频、音频、文本的水印研究已经比较成熟,但是三维模型水印的研究还相对匮乏。然而随着三维模型在网络上传播的日益增多,三维模型知识版权的保护也有了一定的研究意义。由于三维模型自身的特点,对嵌入其中的水印提出了不同于传统水印的要求:
- 健壮性
- 可工作在任意的网格上
- 保持原有的连接
- 不可感知
传统的水印一般分为时/空域水印和频域水印。在图像中,空域水印通过直接改变图像的像素来完成(比如早年提出的LSB算法),这类算法复杂度低,效率高,但缺乏健壮性,很容易被去除或破坏;
而频域(也称变换域)则是通过将图像转换到变换域,通过改变变换域中的某些参数来嵌入水印信息。这类变化主要包括DCT、DFT、DWT等。这类算法由于鲁棒性高,得到了普遍的研究。
对于网格而言,没有频域这一表示,因此需要寻找合适的表示方法来类比图像中的频域,本文的作者的出发点就是将图像中的频谱表示方式扩展到网格中来,他们的思路如下:
缺乏进行频率分解的某种自然的参数化方法(无DCT等)à网格多分辨率表示
没有自然的采样 à网格配准和重采样
以下就论文中提到的水印生成、嵌入及提取方法进行整理
水印生成:
以原模型文件MD5加密后的MD5值作为密钥, 将此密钥作为伪随机数生成器的种子, 从均值为0、方差为l 的高斯分布中取 M个随机实数作为水印w = {w0,wl, …… wm-1 },
Key = MD5(models);
W = Random (key)
W ~ N(0,1)
水印嵌入:

w:水印
Φ:基函数系数
d:水印嵌方向
矩阵形式为: V' = V + BW
矩阵X分量形式为:

VX' :加入水印后网格顶点的X坐标
VX :原始网格顶点X坐标
ε:用户自定义的全局参数,用来控制水印嵌入的深度
Φ:是一个n x m的矩阵,由基函数组成的矩阵,其中矩阵中的项
表示基函数Φi 在顶点j处的标量系数
hdx: 是一个 m x n 的对角矩阵,其中dx是全局位移趋势di的X分量,hi为第i个基函数的"幅度"
W :水印
下面介绍
、di、hi的生成,由于在生成这些值的过程中用到了PM算法,在这之前先简单介绍下渐进网格(Progressive Meshes, PM)算法
下图为边塌陷与顶点分裂对照图,在左图的网格中,顶点uv之间的边动过边塌陷后被去掉了,u点被合并到了v点,在边塌陷的过程中,记录原顶点和新顶点之间的位置以及顶点之间的连接关系的变动,从而可以通过右图的顶点v点分裂可以分裂出点u,然后恢复出uv之间的边。整个边塌陷去掉的是原始网格中能量较小的边,具体的能量函数此处不做讨论。

在每次点分裂过程中,计算几何的幅度h:
- 首先,用当前点的1-领域的质心来表示(预测)当前点分裂后新产生的点,
- 然后,根据当前点的1-领域计算表面法向量
- 最后,h为表面法向量与实际分裂出的新点坐标与预测的新点左边之差之间的点乘,即h = 表面法向量.(实际新点坐标-预测新点坐标)
之后,从若干(作者没有交代具体次数)次点分裂操作中,选出前m次h最大的操作,在这m次操作对应的原始点上生成基函数。
对于每次塌陷,计算"边界"Bi:由塌陷点i的当前邻居经过追踪点分裂操作之后扩展的邻居集合。计算半径rji :对于每个顶点Vj,计算边界内的点Ci到它的距离,当Ci位于边界中心时,半径为0,Ci位于边界上或边界外时,半径为1,其他情况在0到1之间,计算公式如下:

其中,d(v,S)表示v到S中任意一个顶点的距离的最小值,采用的是Dijkstra最短路径算法
(注:对于h和r的计算有点担心理解有偏差,截图附上此部分英文原文)


根据半径r构造基函数,为了得到更好的效果,将基函数构造为墨西哥草帽函数"

之所以选择这个函数是因为这个函数在坐标原点处连续,并且在原点处积分为0,不会引起模型的明显变化。
水印提取:
在进行水印提取之前, 可能需要对受攻击网格进行重定位或者重采样。当三维模型受到相似变换( 平移、旋转、一致放缩) 攻击时, 为了正确地提取水印,需要把模型带回原始的位置和尺度, 这是网格的重定位, 重定位( Registration ) 也称为对准、匹配。
重定位: 重定位可以理解为在两个模型间寻找一个变换, 使得两个模型间的"距离"最小
Get points v* on attacked mesh surface corresponding to original mesh vertices v
Use same basis functions f 1 … f m and hence same matrix B
Resampling choices:
- Closest point projection
- Ray-casting along local normal
- Global deformation of original
完成上述两步(视情况而定,不一定必须)后,可以从可疑网格中提取水印了,根据下列公式

W* :从可疑模型中提取出的水印
V* :可疑网格中的顶点坐标
V :原始网格中的顶点坐标
解决该最小二乘法问题可以求出W*
计算两者之间的相关性:


Pfp computed from r and m using Student's t-test
Declare watermark present if
Pfp < Pthresh ( e.g. Pthresh = 10-6 )
根据作者的实验,这种水印可以抵抗多种攻击,具有较强的鲁棒性。具体实验结果请参看原文。
Robust Mesh Watermarking的更多相关文章
- Geodesic-based robust blind watermarking method for three-dimensional mesh animation by using mesh segmentation and vertex trajectory
之前因为考试,中断了实验室的工作,现在结束考试了,不能再荒废了. 最近看了一篇关于序列水印的文章,大体思想是:对于一个网格序列,首先对第一帧进行处理,在第一帧上,用网格分割算法(SDF)将网格分割成几 ...
- {ICIP2014}{收录论文列表}
This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...
- zhuan 常用图像数据集:标注、检索
目录(?)[+] 1.搜狗实验室数据集: http://www.sogou.com/labs/dl/p.html 互联网图片库来自sogou图片搜索所索引的部分数据.其中收集了包括人物.动物. ...
- [转] CVonline: Image Databases
转自:CVonline by Robert Fisher 图像数据库 Index by Topic Action Databases Biological/Medical Face Databases ...
- 【机器学习】【计算机视觉】非常全面的图像数据集《Actions》
目录(?)[+] 1.搜狗实验室数据集: http://www.sogou.com/labs/dl/p.html 互联网图片库来自sogou图片搜索所索引的部分数据.其中收集了包括人物.动物.建筑 ...
- A Blind Watermarking for 3-D Dynamic Mesh Model Using Distribution of Temporal Wavelet Coefficients
这周看了一篇动态网格序列水印的论文,由于目前在网格序列上做水印的工作特别少,加之我所看的这篇论文中的叙述相对简洁,理解起来颇为困难.好在请教了博士师兄,思路明朗了许多,也就把这思路整理在此了. 论文作 ...
- Watermarking 3D Polygonal Meshes in the Mesh Spectral Domain
这周看了一篇Ryutarou Ohbuchi网格水印的论文,论文中提出在网格的频率域中加入水印.对于网格而言,没有如图像中的DCT等转换到频率域的变换,因此用什么量来模拟传统频率域中的系数,是很关键的 ...
- 什么是Service Mesh?
转至大佬宋净明的博客:https://jimmysong.io/posts/what-is-a-service-mesh/ Service mesh 又译作 “服务网格”,作为服务间通信的基础设施层. ...
- Service Mesh(服务网格)
Service Mesh(服务网格) 什么是Service Mesh(服务网格)Service mesh 又译作 "服务网格",作为服务间通信的基础设施层.Buoyant 公司的 ...
随机推荐
- 解题:POI 2007 Tourist Attractions
题面 事实上这份代码在洛谷过不去,因为好像要用到一些压缩空间的技巧,我并不想(hui)写(捂脸) 先预处理$1$到$k+1$这些点之间相互的最短路和它们到终点的最短路,并记录下每个点能够转移到时的状态 ...
- 2016-2017 National Taiwan University World Final Team Selection Contest (Codeforces Gym) 部分题解
D 考虑每个点被删除时其他点对它的贡献,然后发现要求出距离为1~k的点对有多少个. 树分治+FFT.分治时把所有点放一起做一遍FFT,然后减去把每棵子树单独做FFT求出来的值. 复杂度$nlog^ ...
- Consul 服务发现与配置
Consule 是什么 Consul包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性: 服务发现 Consul 的客户端可用提供一个服务,比如 api 或 ...
- HTML常用标签-<body>内基本标签(块级标签和内联标签)
HTML常用标签-<body>内基本标签(块级标签和内联标签) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.<hn>系列标签 n的取值范围是1~6,从 ...
- linux服务器上修改oracle数据库的字符集
linux服务器上以dba身份进入:sqlplus / as sysdba; 依次执行以下命令:shutdown immediate; startup mount; alter system enab ...
- 蓝桥杯 方格填数 DFS 全排列 next_permutation用法
如下的10个格子(参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻.(左右.上下.对角都算相邻) 一共有多少种可能的填数方案? 请填写表示方案数目的整数.注意:你提交的应该是一个 ...
- 七、Kafka 用户日志上报实时统计之编码实践
一.数据生产实现 1.配置数据生产模块 项目基础配置所包含的内容,如下所示: •项目工程的文件配置 •集群连接信息配置 •开发演示 2.实现 Flume 到 Kafka 模块 实现 Flume 到 K ...
- Redis学习十一:Redis的Java客户端Jedis
一.安装JDK tar -zxvf jdk-7u67-linux-i586.tar.gz vi /etc/profile 重启一次Centos 编码验证 二.安装eclipse 三.Jedis所需要的 ...
- 【BZOJ】2434: [Noi2011]阿狸的打字机 AC自动机+树状数组+DFS序
[题意]阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P'两个字母. 经阿狸研究发现,这个打字机是这样工作的: l 输入小写 ...
- P1879 [USACO06NOV]玉米田Corn Fields (状压dp入门)
题目链接: https://www.luogu.org/problemnew/show/P1879 具体思路: 我们可以先把所有合法的情况枚举出来,然后对第一行判断有多少种情况满足,然后对于剩下的行数 ...