印刷品数字水印检测器的实现

印刷品数字水印检测器的实现,第1张

        最近几年,许多研究人员放弃了传统密码学的技术路线,尝试用各种信号处理方法对声像数据进行隐藏加密,并将该技术用于制作多媒体的"数字水印".数字水印(Digital Watermark)技术是指用信号处理的方法在数字化的多媒体数据中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测器或阅读器才能提取。数字水印是信息隐藏技术的一个重要研究方向。本文采用高端CMOS图像传感器采集图像,基于DCT变换和相关算法,结合可编程逻辑器件FPGA和数字信号处理器DSP,实现了印刷品数字水印的快速检测。

  1 基本原理

  1.1 色彩空间的选择

  本系统中含有数字水印的印刷品由计算机生成,通过激光打印机打印,再由CMOS传感器采集。整个过程中,图像信号经历了DAC变换和ADC变换,并且在不同设备上传输。为了保证图像的失真最小,必须选择一种独立于设备的色彩空间来表示图像。本系统采用CIE-XYZ色彩空间。XYZ颜色模型将彩色光表示为:

  C=X(x)+Y(y)+Z(z)

  其中,x、y、z是XYZ色彩空间的基色量,X、Y、Z为三色比例系数。

  1.2 水印的添加和提取

  所要添加的水印信息可以是一段长度为n的由"-1"和"1"表示的二进制数码{ki},如:-1-1-1-1-1-1-1-1 1 1 1 1 1 1 1 1 -1-1-1-1-1-1-1-1.将ki与伪随机序列M序列按位与,具体实现是ki序列长度取M序列长度的整数倍,从而得到一个具有良好自相关特性的序列,这就是水印hi.宿主图像可以是任意一幅色彩丰富的彩色图片。首先,将宿主图像转化为CIE-XYZ色彩空间方式,取出亮度分量,将其进行16×16 DCT变换,选出每个块的前10个较大的DCT系数Wi;然后将hi序列按照如下公式计算得到加有水印的DCT系数序列:

  Wi′=Wi(1+аhi)

  其中,a控制了水印的强度。最后对处理过的DCT系数进行反DCT变换后与图像的另外两个基色量合成并打印,即可得到添加了水印的图像。

  水印的提取过程与水印的添加过程大体相反。为了保证图像的大小与原图相同,将一幅含有水印的印刷品在合适的灯光照明和适当的物距下,通过高端CMOS图像传感器及其外围电路采集到存储器,将图像从RGB空间转换为CIE-XYZ空间,提取其中的亮度分量;然后对其进行16×16 DCT变换,选取前10个较大的DCT系数,用已知hi序列与之进行相关运算。由于经M序列调制的hi具有很好的自相关特性,当图像中含有水印时,相关运算的值超过一定的阈值即表示此图像含有水印,反之则表示这幅图片中不含有水印信息。通过上述方法,可以在需要受到保护的图像中添加水印信息,然后用本论文阐述的机读设备进行检测,从而将不受保护的图像检测出来。对于含有水印信息图像的复制印刷品,由于其水印能量被削弱,因此检测得出的相关值偏低,也能将其淘汰。经试验得出,正品的相关值都在40%以上,而正品的复制品都在15%以下,不含水印信息的相同印刷品的相关值都在10%以下。

  数字水印系统原理如图1所示。

印刷品数字水印检测器的实现,j计算机生成数字水印的系统原理,第2张

  1.3 算法在FPGA及DSP上的实现

  由于本文采用CMOS图像传感器所采集图像的色彩空间属于RGB空间,因此,必须先将其转换为独立于设备的CIE-XYZ空间,使后续处理得以继续。

  FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

  本文所采用的数字水印算法包含了图像的2-D DCT运算,计算量极大。为了保证计算的实时性,本文采用具有并行处理结构的FPGA实现。首先改进2-D DCT算法,使之适合FPGA的并行处理,常用的方法是将二维运算转化为两次一维运算。

印刷品数字水印检测器的实现,第3张

  因此,二维DCT运算可由两个一维运算得到,并且,公式中的余弦值可以事先计算好并做为运算参数保存。一维运算的实现采用了DA(Distributed ArithmeTIc)算法进一步提高运算速度,具体原理如下:

印刷品数字水印检测器的实现,第4张
印刷品数字水印检测器的实现,第5张

  Ai(i=0,1,2,……,15)表示某一行某一像素的亮度值,xk表示余弦变换的多项式系数。对于式(8),宜采用16个相同的模块进行并行运算,所得结果为Z0,Z1,Z2,……,Z15,然后将Zy带入式(4),进行与上一步相同的运算,得出DCT系数的值。以上运算用按位与运算和加法运算,可以避免对乘法器资源的占用,而且可以用FPGA中的查找表(LUT)实现。在电路设计上可采用乒乓 *** 作分时复用一维运算模块,以提高器件的利用率。

  在得到图片的DCT系数矩阵以后,取出每个16×16块的前10个较大的DCT系数,形成一个一维序列,与前面提到的水印序列hi进行相关运算。相关运算值超过一个由试验得出的阈值则表明检测到水印。

  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2467549.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存