这周看了一篇动态网格序列水印的论文,由于目前在网格序列上做水印的工作特别少,加之我所看的这篇论文中的叙述相对简洁,理解起来颇为困难。好在请教了博士师兄,思路明朗了许多,也就把这思路整理在此了。

论文作者提出了一种三维网格序列盲水印算法,在他们的算法中用到了小波分析。我对小波分析只有一个大概的了解,所以细节的理解上可能不尽正确,索性就不详细解释小波分解的知识了。

首先介绍论文中水印的产生:

此篇论文中的水印为 W= +1 或 W = -1,具体位数上嵌入+1还是 -1 作者没有做详细解释

然后介绍水印的嵌入:

对于原始的3-D序列其中N为帧总数),每一帧的重心都平移到坐标原点,作为计算小波系数的预处理。

第一步,每个点的坐标使用小波变换沿着时间轴平移。原始序列被分解为低频序列,称为比例系数,和高频序列,称为小波系数。

本文中用到了bin的概念,它是水印嵌入的单位。每个bin从平均帧分裂而来,是的平均数。的笛卡尔坐标被转换为球面坐标,

笛卡尔坐标与球面坐标相互转换公式:(参考Wavelet transform based digital watermarking for 3-D surface meshes and mesh sequences)

其中i是顶点索引,是的法向。根据的概率分布的大小,将这些概率分布划分到M个独立的、范围相同的bin中。在第m个bin中的顶点i将用于保存该顶点相应的修改后的小波系数。

属于第m个bin的小波系数被映射到[-1,1]这个归一化区间。现在,每个bin在区间[-1,1]上都有一个拉普拉斯分布。为了嵌入第m个水印比特方差为的归一化后的小波系数将由一个因子+△(或 –△)修改,修改方式如下:

其中,分别表示负数部分和正数部分的方差,是强度因子,用来控制水印的健壮程度和透明性。为了将方差降低到预期的级别,小波系数将用下式中的直方图映射函数迭代地进行修改:(本文引用文献3中的方法)

其中,[1,∞]; 转换为,它们两者的符号保持一致,此外,变换的变量的绝对值随Km的增加而减小。且在区域[0 ,1]之间随Km的减小而增大。

所有在每个bin中的,变换后的小波系数将被映射到原始的范围中。然后进行时间的逆小波变换,同时,所有的序列平移到原始的重心处,得到嵌入水印的3-D序列。

水印嵌入过程图如下

水印提取:

本文中的水印算法提取过程相当简单。与水印嵌入过程相似,我们首先计算每个bin中的方差并两两进行比较。在第m个bin中嵌入的水印将按照下式进行提取:

文中的水印提取不需要原始序列,因此是一种盲水印算法,水印提取图如下

总结:

论文提出的水印嵌入和提取方案大致如上所述,论文的其他篇幅主要用于实验验证。理解论文的难点在于如何将顶点划分到不同的bin中。总结起来说,作者先将序列分为高频部分和低频部分,然后求出低频部分的平均值,将这个平均值的笛卡尔坐标转换为球面坐标。球面坐标中有一个分量代表法向,根据大小,将法向分量的概率分布划分成M个独立等范围的bin,至此顶点被分到了不同的bin中,然后根据要嵌入的水印的值,对不同bin中的顶点的小波系数进行修改,以改变bin中顶点组的小波系数的方差。将进行了更改后的顶点坐标映射回笛卡尔坐标,并进行小波逆变换便得到了嵌入水印的序列。在提取时,直接计算每个bin的方差,比较正数部分方差和负数部分方差的大小便可提取出嵌入的水印。

A Blind Watermarking for 3-D Dynamic Mesh Model Using Distribution of Temporal Wavelet Coefficients的更多相关文章

  1. Geodesic-based robust blind watermarking method for three-dimensional mesh animation by using mesh segmentation and vertex trajectory

    之前因为考试,中断了实验室的工作,现在结束考试了,不能再荒废了. 最近看了一篇关于序列水印的文章,大体思想是:对于一个网格序列,首先对第一帧进行处理,在第一帧上,用网格分割算法(SDF)将网格分割成几 ...

  2. {ICIP2014}{收录论文列表}

    This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...

  3. What’s a service mesh? And why do I need one?

    https://buoyant.io/2017/04/25/whats-a-service-mesh-and-why-do-i-need-one/ Update 2018-02-06: Since t ...

  4. Dynamic V Strongly Typed Views

    Come From https://blogs.msdn.microsoft.com/rickandy/2011/01/28/dynamic-v-strongly-typed-views/ There ...

  5. nRF5 SDK for Mesh(六) BLE MESH 的 基础概念

    Basic Bluetooth Mesh concepts The Bluetooth Mesh is a profile specification developed and published ...

  6. Java Project 转 Dynamic Web Project

    使用eclipse 工具, 右键Java Project 项目 Properties - Project Facets  - Convert to faceted form... - 勾选Dynami ...

  7. dva/dynamic

    1.安装: yarn add dva 2.引入: import dynamic from 'dva/dynamic'; * dva路由跳转 * dynamic(app, model, componen ...

  8. Direction of Arrival Based Spatial Covariance Model for Blind Sound Source Separation

    基于信号协方差模型DOA的盲声源分离[1]. 在此基础上,作者团队于2018年又发布了一篇文章,采用分级和时间差的空间协方差模型及非负矩阵分解的多通道盲声源分离[2]. 摘要 本文通过对短时傅立叶变换 ...

  9. 转-nRF5 SDK for Mesh(六) BLE MESH 的 基础概念

    nRF5 SDK for Mesh(六) BLE MESH 的 基础概念 Basic Bluetooth Mesh concepts The Bluetooth Mesh is a profile s ...

随机推荐

  1. lintcode:Search Insert Position 搜索插入位置

    题目: 搜索插入位置 给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引.如果没有,返回到它将会被按顺序插入的位置. 你可以假设在数组中无重复元素. 样例 [1,3,5,6],5 → 2 ...

  2. Sina App Engine(SAE)入门教程(9)- SaeMail(邮件)使用

    参考资料: SAE mail api 文档 怎么使用? 参见代码: <?php $mail = new SaeMail(); $f = new SaeFetchurl(); $img_data ...

  3. 安卓--使用Intent实现Activity之间传值与跳转

    http://blog.csdn.net/cjjky/article/details/6337447 在一个Android的应用程序中,很少只存在一个Activity,一般都有多个Activity,如 ...

  4. WCF入门(十)---WCF事务

    事务处理在WCF(Windows Communication Foundation)是一套遵循一些性质,统称为ACID的操作.这里,如果一个操作出现故障,整个系统就会自动失败.如网上订单生成,就可能使 ...

  5. Spring整合CXF,发布RSETful 风格WebService(转)

    Spring整合CXF,发布RSETful 风格WebService 这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的.关于发布CXF WebServer和Sp ...

  6. Spring的父子容器问题

    在ssm框架搭建的时候 配置了一个Spring容器,又配置了一个前端控制器 <!-- 初始化spring容器 --> <context-param> <param-nam ...

  7. 56. Merge Intervals

    题目: Given a collection of intervals, merge all overlapping intervals. For example,Given [1,3],[2,6], ...

  8. 加密解密(9)Diffie-Hellman密钥交换协议

    过程如下 : 1,小李把KeyX经过加密变化,生成MsgA传给老王. 2,老王得到MsgA,保存在本地. 3,老王把KeyY经过加密变化,生成MsgB传给小李, 4,小李得到MsgB保存在本地, 5, ...

  9. Nginx+Tomcat+Memcached 集群

    写过一篇 Apache Httpd+Tomcat 的集群, 现在来看看Nginx+Tomcat+Memcached是怎么集群的. 先看看用的版本和工具: Nginx: nginx-1.8.1 Tomc ...

  10. git设置对比工具

    windows下设置 beyond compare 3 为 git  的对比工具. 首先需要先安装 beyond compare 3 工具,切记需要安装安装版的,不要搞绿色版的. mac下使用 Kal ...