主权项 |
一种三维模型完整性保护方法,其特征在于:该方法分为水印的嵌入和水印验证两个步骤:(1)水印的嵌入过程为:1)通过在三维模型中随机选取一些顶点;2)选择嵌入水印的顶点,使水印顶点及其相邻顶点尽可能分布整个模型;其作法为:对于水印顶点vi(x1,x2,x3),将其所有的1-环邻域顶点按照点的坐标的大小排序,先按x1大小排序,如果x1坐标相同,按x2坐标排序,依次类推,得到一个按照点的坐标大小的顶点序列vi,其中i=1,2,3……,将排在最前面的顶点记为vm(x1,x2,x3)称之为顶点vi的邻域最小点,定义xi1c,xi2c,xi3c为1-环邻域顶点与邻域最小点vm(x1,x2,x3)的坐标之差的均值: <mrow> <msubsup> <mi>x</mi> <mi>ij</mi> <mi>c</mi> </msubsup> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mo>|</mo> <mi>N</mi> <mrow> <mo>(</mo> <mi>v</mi> <mo>)</mo> </mrow> <mo>|</mo> </mrow> </mfrac> <munder> <mi>Σ</mi> <mrow> <mi>k</mi> <mo>=</mo> <mi>N</mi> <mrow> <mo>(</mo> <mi>v</mi> <mo>)</mo> </mrow> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>kj</mi> </msub> <mo>-</mo> <msub> <mi>x</mi> <mi>mj</mi> </msub> <mo>)</mo> </mrow> <mo>,</mo> <mi>j</mi> <mo>=</mo> <mn>1,2,3</mn> <mo>,</mo> </mrow>其中N(v)是顶点vi(x1,x2,x3)1-环邻域顶点集,|N(v)|为集合N(v)的基数;3)对每一个顶点调整x轴坐标x1,标识该顶点是否是水印顶点;4)将原水印信息嵌入到水印顶点的y轴坐标,对每一个水印顶点,将wi嵌入到x2;5)将水印信息的Hash值嵌入到z轴坐标,将h(wi)嵌入到x3;(2)水印验证的过程为:1)检验x轴坐标判断其是否是水印顶点,对每一个顶点,检查x1坐标,判断其是否是水印顶点;2)对于水印顶点,从y轴坐标中提取原水印信息进行Hash处理得到新的Hash值,对每一个水印顶点从x2中提取w′;3)从z轴坐标中提取原Hash值,从x3中提取h′;4)通过对比新旧的Hash值来判断三维模型是否完整:对于顶点v,如果h(w′)=h′,不成立,那么将v及其相邻的顶点作为可疑顶点;其中水印设为W=(W1,W2,…,Wn),通过在三维模型中随机选取一些顶点v,其在x,y,z轴上对应的坐标分别为x1,x2,x3;h(wi)是对wi用Hash函数进行加密后得到的值,h是Hash函数,h(wi)是用来验证wi是否被篡改。 |