A Blind Watermarking for 3-D Dynamic Mesh Model Using Distribution of Temporal Wavelet Coefficients
这周看了一篇动态网格序列水印的论文,由于目前在网格序列上做水印的工作特别少,加之我所看的这篇论文中的叙述相对简洁,理解起来颇为困难。好在请教了博士师兄,思路明朗了许多,也就把这思路整理在此了。
论文作者提出了一种三维网格序列盲水印算法,在他们的算法中用到了小波分析。我对小波分析只有一个大概的了解,所以细节的理解上可能不尽正确,索性就不详细解释小波分解的知识了。
首先介绍论文中水印的产生:
此篇论文中的水印为 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的更多相关文章
- 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 ...
- 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 ...
- Dynamic V Strongly Typed Views
Come From https://blogs.msdn.microsoft.com/rickandy/2011/01/28/dynamic-v-strongly-typed-views/ There ...
- nRF5 SDK for Mesh(六) BLE MESH 的 基础概念
Basic Bluetooth Mesh concepts The Bluetooth Mesh is a profile specification developed and published ...
- Java Project 转 Dynamic Web Project
使用eclipse 工具, 右键Java Project 项目 Properties - Project Facets - Convert to faceted form... - 勾选Dynami ...
- dva/dynamic
1.安装: yarn add dva 2.引入: import dynamic from 'dva/dynamic'; * dva路由跳转 * dynamic(app, model, componen ...
- Direction of Arrival Based Spatial Covariance Model for Blind Sound Source Separation
基于信号协方差模型DOA的盲声源分离[1]. 在此基础上,作者团队于2018年又发布了一篇文章,采用分级和时间差的空间协方差模型及非负矩阵分解的多通道盲声源分离[2]. 摘要 本文通过对短时傅立叶变换 ...
- 转-nRF5 SDK for Mesh(六) BLE MESH 的 基础概念
nRF5 SDK for Mesh(六) BLE MESH 的 基础概念 Basic Bluetooth Mesh concepts The Bluetooth Mesh is a profile s ...
随机推荐
- cojs 西瓜 解题报告
首先我们要知道pick公式 设二维平面内任意多边形面积为S 设多边形内部整点数为a 设多边形边界的整点数为b 则满足S=a+b/2-1 变形得a=S-b/2+1 由期望的线性性质我们把问题转化为 1. ...
- lintcode:插入区间
题目: 插入区间 给出一个无重叠的按照区间起始端点排序的区间列表. 在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间). 样例 插入区间[2, 5] 到 [ ...
- eclipse中(装了插件m2eclipse后的)导入maven工程显示"感叹号"
有时候导入一些开源工程(maven结构的),在eclipse中(装了插件m2eclipse后的)该工程前面会有一个小的红色感叹号,但点开工程后没有发现有打小红叉的内容,这种情况其实大部分是jar包 ...
- Android Handler与多线程
本文首先解释一下handler是用来干嘛的,然后通过例子介绍其在多线程中的应用. 什么是Handler handler通俗一点讲就是用来在各个进程之间发送数据的处理对象.在任何进程中,只要获得了另一个 ...
- PCL—低层次视觉—点云分割(超体聚类)
1.超体聚类——一种来自图像的分割方法 超体(supervoxel)是一种集合,集合的元素是“体”.与体素滤波器中的体类似,其本质是一个个的小方块.与之前提到的所有分割手段不同,超体聚类的目的并不是分 ...
- Intellij IDEA 创建消息驱动Bean - 接收JMS消息
除了同步方式的调用之外,有时还需要异步调用,用来处理不需要即时处理的信息,例如短信.邮件等,这需要使用EJB中的独特组件——消息驱动Bean(Message-Driven Bean,MDB),它提供了 ...
- opencv 画延长线
hough变换可以让我们检测到直线,这在前面已有详解,对于车道检测,我们需要其到图像边界的延长线一遍之后数据帧分析. 以下代码帮助我们在opencv中画延长线,本来想用虚线表示延长线的,无奈参数调不好 ...
- BZOJ 1004 Cards(Burnside引理+DP)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1004 题意:三种颜色的扑克牌各有Sr,Sb,Sg张.给出m种置换.两种染色方案在某种置换 ...
- php扩展函数调用扩展中的标准函数
这几天在写php的扩展函数,在网上学习步骤什么的都有,一般问题也都能查到,所以就不再此啰嗦,写这篇博客的原因是因为遇到的一个问题,百度谷歌都没找到,对于初学者,这个或许有用,对于过来人,我想他们肯定也 ...
- 【POJ】1084 Square Destroyer
1. 题目描述由$n \times n, n \in [1, 5]$的正方形由$2 \times n \times (n+1)$根木棍组成,可能已经有些木棍被破坏,求至少还需破坏多少木根,可以使得不存 ...