Geodesic-based robust blind watermarking method for three-dimensional mesh animation by using mesh segmentation and vertex trajectory
之前因为考试,中断了实验室的工作,现在结束考试了,不能再荒废了。
最近看了一篇关于序列水印的文章,大体思想是:对于一个网格序列,首先对第一帧进行处理,在第一帧上,用网格分割算法(SDF)将网格分割成几个有意义的区域。在每个区域中,计算区域中的点到区域边界的测地线距离,根据测地线距离再将区域里的点分到不同的集合中,然后使集合中测地线距离的平均值保持在规定的范围内,从而嵌入水印。
下面介绍具体做法。
水印序列:+1、-1序列,由伪随机函数生成
网格分割算法:Shape Diameter Function (SDF)。作为局部特征的SDF可以看作是每个点所在区域对应形状的直径.三维模型在受到攻击时,如平移、旋转、简化、噪声、姿势变化等,一般都能保持原有的形状特征,作为局部特征的SDF在攻击后能得以保存,因此SDF以及其分布具有一定的鲁棒性。
SDF的具体做法有三步:
Step1:计算形状直径值
对于一个面片,作一个以该面片中心为圆锥顶点、它的法向量的逆方向为中心线方向的圆锥体,从该顶点上引出若干条圆锥体范围内的射线交于模型的表面网格,通过构建八叉树结构来计算与网格相交的射线,去掉与顶点法线方向相同的射线(夹角小于90。认为是方向相同),取剩下长度在所有射线长度中位数标准差之内的射线作加权平均,即得到该顶点的SDF值。
Step2:GMM-EM聚类。
使用最大期望(exception—maximization,EM)算法构建三维模型面片SDF值的柱状分布图,用一个高斯混合模型(Gaussian mixture model,GMM)得到k个高斯分布,将网格模型的所有面片聚类成k个聚类,在模型视图上表现为若干个分块,即得到网格的k层次的粗分块。
Step3:切割边界精细化。
对于有意义的分割问题,另一个重要问题是分割边界的平滑性以及如褶皱之
类的局部特征是否保留,使用扩展的阿尔法图形切割算法(alpha expansion
graph-cut algorithm)最小化能量函数来确定面片的归属,得到最终的边界。
嵌入水印:
(1)使用SDF将网格的第一帧分割成不同的区域
(2)在SDF分割出来的每个区域中,对于区域中的每个顶点vj1,计算vj1 到它所在区域的边界线上的点的测地线距离的平均值,记为djB,根据djB的大小,将该区域中的点划分成Nw个不同的集合,每个集合记为
其中dmax是该区域中所有djB中,值最大的那个,同时,1≤i≤Nw。
(3)每位水印将被嵌入到i=1到i=Nw的集合中。对于第i个集合,计算所有djB的平均值ud,并检查ud与Ki的大小关系,Ki定义如下:
其中△∈[0,0.5],它是根据经验值来设定的,用来控制水印嵌入强度。
如果ud>Ki并且wi=+1,那么直接输出集合,否则需要增大ud,具体增大的方法是:从集合中随机挑选一个顶点,然后将这个顶点沿着在它一邻域中,与区域边缘平均测地线距离最大的点移动。移动的距离也是根据经验进行。每次移动要保证dmax不变,同时,每次移动后要重新判断ud与Ki的关系,知道满足条件为止。
同理,当ud<Ki且wi=-1时,直接输出,否则就减小ud,减小方法与增大方法类似,只是将挑选出的点沿着沿它一邻域中,与区域边缘平均测地线距离最小的点移动。
(4)根据顶点的轨迹可以确保其他帧的分割跟第一帧相同。在第三步中,被选中调整位置的顶点的原始顶点和调整后的新顶点的测地线距离之差记为δj。在剩下的帧中,可以直接根据δj和wi的正负调整顶点的位置以实现水印的嵌入。如果wi=+1,则将顶点沿着它一邻域中,与区域边缘平均测地线距离最大的点移动δj;同样地,wi=-1,则将顶点沿着它一邻域中,与区域边缘平均测地线距离最小的点移动δj。
水印提取:本文中提出的算法是盲水印算法,因此在提取时不需要原始序列,检测步骤如下。
(1)输入水印序列,按照嵌入的步骤(1)对序列的第一帧进行区域分割。
(2)根据嵌入的步骤(2)对序列的第一帧进行集合划分。
(3)从每个集合中提取水印,根据下面的式子决定提取出的水印值
其中:
是集合中与区域边界测地线距离平均值最大的值。
(4)与嵌入水印的步骤(4)相同,通过顶点轨迹可以将剩余的帧划分成与第一帧相同的有意义区域。然后通过步骤(3)提取出水印。
(5)为了验证版本信息,计算嵌入的水印W和提取的水印W'之间的比特错误率(BER),如果BER比预定的阈值小,则证明在某个集合中存在嵌入的水印。
Geodesic-based robust blind watermarking method for three-dimensional mesh animation by using mesh segmentation and vertex trajectory的更多相关文章
- A Blind Watermarking for 3-D Dynamic Mesh Model Using Distribution of Temporal Wavelet Coefficients
这周看了一篇动态网格序列水印的论文,由于目前在网格序列上做水印的工作特别少,加之我所看的这篇论文中的叙述相对简洁,理解起来颇为困难.好在请教了博士师兄,思路明朗了许多,也就把这思路整理在此了. 论文作 ...
- Summary: How to calculate PI? Based on Monte Carlo method
refer to: http://www.stealthcopter.com/blog/2009/09/python-calculating-pi-using-random-numbers/ Duri ...
- 【sqli-labs】 less49 GET -Error based -String -Blind -Order By Clause(GET型基于盲注的字符型Order By从句注入)
都是order by的注入,作者连图片都懒得改了... 注意和整型的区别,前引号用提交的引号闭合,后引号用#注释 http://192.168.136.128/sqli-labs-master/Les ...
- {ICIP2014}{收录论文列表}
This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...
- CVPR 2011 Global contrast based salient region detection
Two salient region detection methods are proposed in this paper: HC AND RC HC: Histogram based contr ...
- 《A computer-aided healthcare system for cataract classification and grading based on fundus image analysis》学习笔记
Abstract This paper presents a fundus image analysis based computer aided system for automatic class ...
- java方法句柄-----5.Method Handles in Java
Method Handles in Java 目录 Method Handles in Java 1.介绍 2.什么是MethodHandle 3. Method Handles vs Reflect ...
- CG&CAD resource
Computational Geometry The Geometry Center (UIUC) Computational Geometry Pages (UIUC) Geometry in Ac ...
- cvpr2015papers
@http://www-cs-faculty.stanford.edu/people/karpathy/cvpr2015papers/ CVPR 2015 papers (in nicer forma ...
随机推荐
- cojs 香蕉 解题报告
啦啦啦,今天的考试题 不过原来考试题的n<=10w 由于我有更好的做法,所以我就改成20亿辣 本来先说一说考试题的正解做法的 但是复杂度是O(nlogm),实在是太渣了 所以还是说一说我的做法吧 ...
- 教育行业SaaS选型 需要注意的三点问题
2008年经济危机席卷全球,造成世界范围内的金融动荡,国内各行业虽然都面临了不小的冲击,但是在危机面前,中国的教育行业却逆势而上,硕果累累.据统计,2008年教育行业的投资案例达18起,投资金额18. ...
- 用Eclipse编写运行Java程序
1.选择一个空的文件夹,作为workspace工作空间,用来存放你以后用eclipse写的Java程序.(一个workspace可以放很多很多project项目) 2.新建java项目:File-&g ...
- C++:类的组合
在类中定义的数据成员一般都是基本数据类型或服复合数据类型.但是还可以根据需要使用 其他类的对象作为正在声明的数据成员.复杂的对象还可以有比较简单的对象一某种方式组合 而成,复杂对象和组成它的简单对象之 ...
- 随机森林——Random Forests
[基础算法] Random Forests 2011 年 8 月 9 日 Random Forest(s),随机森林,又叫Random Trees[2][3],是一种由多棵决策树组合而成的联合预测模型 ...
- MySQL5.7表空间加密
MySQL5.7开始支持表空间加密了,增强了MySQL的数据文件的安全性,这是一个很不错的一个功能,这个特性默认是没有启用的,要使用这个功能要安装插件keyring_file. 下面就来看看怎么安装, ...
- Ubuntu 安装mod_python配置Apache2
在Ubuntu上搭建Python运行环境,mod_python是不可少的(据说mod_swgi也是可以的,没有亲测).使用命令安装mod_python. 安装: apt-get install lib ...
- 1002: A+B for Input-Output Practice (II)
问题描述: http://acm.wust.edu.cn/problem.php?id=1002&soj=0 代码实现: import java.util.Scanner; public cl ...
- VS2010解决方案不显示无法添加项目问题
问题:在VS2010中不显示解决方案,导致不能添加项目. 方法:工具-选项-项目和解决方案-选中“总是显示解决方案”,ok
- jdom学习读取XML文件
用JDOM读取XML文件需先用org.jdom.input.SAXBuilder对象的build()方法创建Document对象,然后用Document类.Element类等的方法读取所需的内容.IB ...