发明名称 基于顶点曲率的三维模型数字水印嵌入与盲检测方法
摘要 本发明提供了一种基于顶点曲率的三维模型数字水印嵌入与盲检测方法,水印嵌入方法包括:对水印信息进行调制,使水印信息处于混沌状态;计算三维模型每个顶点的均方根曲率波动值;对顶点按波动值由小到大排序,对排序后的波动值序列根据水印位数和水印嵌入次数分成若干区间;对波动值序列进行区间内的单位化处理;计算每个区间的波动值平均值Davg<sub>i</sub>;通过修改Davg<sub>i</sub>嵌入水印;通过迭代方法修改每个区间中的模型顶点坐标。本发明不仅能抵抗三维模型常见的攻击如平移、旋转、缩放、顶点乱序、噪声、简化、量化,并且具有较高的鲁棒性,同时能有效降低水印嵌入对三维模型形状的影响,减少模型误差,提供较好的透明性。
申请公布号 CN103198448B 申请公布日期 2016.08.03
申请号 CN201310126150.2 申请日期 2013.04.11
申请人 江苏大学 发明人 詹永照;王新宇;李燕婷
分类号 G06T1/00(2006.01)I 主分类号 G06T1/00(2006.01)I
代理机构 江苏致邦律师事务所 32230 代理人 樊文红
主权项 一种基于顶点曲率的三维模型数字水印嵌入方法,其特征在于,所述方法包括:S11、用logistic混沌映射对水印信息进行调制,使水印信息处于混沌状态;S12、计算三维模型每个顶点v<sub>i</sub>的均方根曲率波动值,具体为:S121、计算三维模型每个顶点v<sub>i</sub>的高斯曲率K和平均曲率H:<maths num="0001"><math><![CDATA[<mrow><mi>K</mi><mo>=</mo><mfrac><mrow><mn>2</mn><mi>&pi;</mi><mo>-</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>N</mi><mn>1</mn></mrow></munderover><msub><mi>&theta;</mi><mi>k</mi></msub></mrow><mrow><mfrac><mn>1</mn><mn>3</mn></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>N</mi><mn>1</mn></mrow></munderover><msub><mi>A</mi><mi>k</mi></msub></mrow></mfrac><mo>,</mo><mi>H</mi><mo>=</mo><mfrac><mrow><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>N</mi><mn>2</mn></mrow></munderover><msub><mi>&gamma;e</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub></mrow><mrow><mfrac><mn>1</mn><mn>3</mn></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>N</mi><mn>1</mn></mrow></munderover><msub><mi>A</mi><mi>k</mi></msub></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000976324830000011.GIF" wi="724" he="271" /></maths>其中,θ<sub>k</sub>,k=1,2,…,N1,表示与v<sub>i</sub>相邻的内角,N1为顶点v<sub>i</sub>的一阶三角形邻域中三角形个数,N2表示顶点v<sub>i</sub>的一阶顶点邻域中邻接顶点的数目,e<sub>i,j</sub>表示顶点v<sub>i</sub>与其一阶顶点邻域中的邻接顶点构成的边,γe<sub>i,j</sub>,j=1,2,…,N2,表示以边e<sub>i,j</sub>为边的两个三角形法向量的夹角,A<sub>k</sub>,k=1,2,…,N1,为v<sub>i</sub>一阶三角形邻域中的三角形的面积;S122、根据高斯曲率K和平均曲率H计算三维模型每个顶点的均方根曲率k<sub>rms</sub>(v):<maths num="0002"><math><![CDATA[<mrow><msub><mi>k</mi><mrow><mi>r</mi><mi>m</mi><mi>s</mi></mrow></msub><mrow><mo>(</mo><mi>v</mi><mo>)</mo></mrow><mo>=</mo><msqrt><mrow><mn>4</mn><msup><mi>H</mi><mn>2</mn></msup><mo>-</mo><mn>2</mn><mi>K</mi></mrow></msqrt><mo>;</mo></mrow>]]></math><img file="FDA0000976324830000012.GIF" wi="462" he="77" /></maths>S123、定义顶点的邻接区域,根据水印强度选取距离半径阈值r,对于三维模型中的顶点v,建立其邻接区域N<sub>v</sub>(v,r),表示为:N<sub>v</sub>(v,r)=v<sub>i</sub>|||v<sub>i</sub>‑v||≤r,||v<sub>i</sub>‑v||为v与v<sub>i</sub>之间的欧氏距离;S124、计算顶点的邻接区域N<sub>v</sub>(v,r)与模型的交界点处的均方根曲率,设v<sub>e</sub>表示交点,v<sub>1</sub>和v<sub>2</sub>为交点所在线段两端的模型顶点,则v<sub>e</sub>的均方根曲率k<sub>rms</sub>(v<sub>e</sub>)为:<maths num="0003"><math><![CDATA[<mrow><msub><mi>k</mi><mrow><mi>r</mi><mi>m</mi><mi>s</mi></mrow></msub><mrow><mo>(</mo><msub><mi>v</mi><mi>e</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><msub><mi>d</mi><mn>2</mn></msub><mrow><msub><mi>d</mi><mn>1</mn></msub><mo>+</mo><msub><mi>d</mi><mn>2</mn></msub></mrow></mfrac><msub><mi>k</mi><mrow><mi>r</mi><mi>m</mi><mi>s</mi></mrow></msub><mrow><mo>(</mo><msub><mi>v</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>+</mo><mfrac><msub><mi>d</mi><mn>1</mn></msub><mrow><msub><mi>d</mi><mn>1</mn></msub><mo>+</mo><msub><mi>d</mi><mn>2</mn></msub></mrow></mfrac><msub><mi>k</mi><mrow><mi>r</mi><mi>m</mi><mi>s</mi></mrow></msub><mrow><mo>(</mo><msub><mi>v</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000976324830000013.GIF" wi="894" he="119" /></maths>其中,d<sub>1</sub>和d<sub>2</sub>分别表示v<sub>1</sub>和v<sub>2</sub>到v<sub>e</sub>的距离;S125、计算顶点的平均均方根曲率,统计并确定顶点的邻接区域N<sub>v</sub>(v,r)中的顶点个数,所述顶点包括满足邻域条件的每个三维模型的顶点和边界的交点,利用所述顶点的均方根曲率计算均方根曲率的平均值作为该顶点的平均均方根曲率:<maths num="0004"><math><![CDATA[<mrow><msub><mi>k</mi><mrow><mi>r</mi><mi>m</mi><mi>s</mi></mrow></msub><mrow><mo>(</mo><mi>v</mi><mo>,</mo><mi>r</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>N</mi><mn>3</mn></mrow></munderover><msub><mi>k</mi><mrow><mi>r</mi><mi>m</mi><mi>s</mi></mrow></msub><mrow><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>N</mi><mn>3</mn></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000976324830000014.GIF" wi="486" he="191" /></maths>其中,N3为N<sub>v</sub>(v,r)中顶点个数;S126、计算顶点的波动值,定义为以顶点v为中心的邻接区域内每个顶点的均方根曲率与该顶点的平均均方根曲率之间的标准差:<maths num="0005"><math><![CDATA[<mrow><msub><mi>D</mi><mi>v</mi></msub><mo>=</mo><msqrt><mfrac><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>N</mi><mn>3</mn></mrow></munderover><msub><mi>k</mi><mrow><mi>r</mi><mi>m</mi><mi>s</mi></mrow></msub><mrow><mo>(</mo><mi>v</mi><mo>,</mo><mi>r</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>k</mi><mrow><mi>r</mi><mi>m</mi><mi>s</mi></mrow></msub><msup><mrow><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow><mrow><mi>N</mi><mn>3</mn></mrow></mfrac></msqrt><mo>;</mo></mrow>]]></math><img file="FDA0000976324830000021.GIF" wi="686" he="207" /></maths>S13、对顶点按波动值由小到大排序,对排序后的波动值序列根据水印位数L和水印嵌入次数num分成L×num个区间B<sub>i</sub>;S14、对波动值序列进行区间内的单位化处理;S15、计算每个区间B<sub>i</sub>的波动值平均值Davg<sub>i</sub>;S16、通过修改Davg<sub>i</sub>嵌入水印,具体包括:S161、若嵌入水印为1:S1611、初始化k=1;S1612、计算新的波动值均值Davg'<sub>i</sub>(Davg<sub>i</sub>)<sup>k</sup>;S1613、判断是否满足<img file="FDA0000976324830000022.GIF" wi="350" he="70" />若是,则k=k‑Δk,Δk表示水印长度k的改变量,返回执行步骤S1612,若否,修改结束,其中<img file="FDA0000976324830000023.GIF" wi="32" he="47" />为嵌入水印的强度;S162、若嵌入水印为0,则S1621、初始化k=1;S1622、计算新的波动值均值Davg'<sub>i</sub>(Davg<sub>i</sub>)<sup>k</sup>;S1623、判断是否满足<img file="FDA0000976324830000024.GIF" wi="347" he="71" />若是,则k=k+Δk,Δk表示水印长度k的改变量,返回执行步骤S1622,若否,修改结束;S17、通过迭代方法修改每个区间B<sub>i</sub>中的模型顶点坐标,使该区间波动值均值Davg<sub>i</sub>满足为目标值Davg'<sub>i</sub>。
地址 212013 江苏省镇江市京口区学府路301号