《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于FPGA和DSP的印刷品数字水印检测器的设计
基于FPGA和DSP的印刷品数字水印检测器的设计
粟 海,尧德中,庞小虎
摘要: 采用高端CMOS图像传感器进行图像采集,基于DCT和M序列算法实现数字水印提取,基于FPGA采用DA算法实现二维DCT变换。与基于PC机和扫描仪的印刷品数字水印检测设备相比,大大提高了图片数字水印检测的速度,实现了印刷品数字水印的快速检测。
关键词: DSP FPGA 数字水印
Abstract:
Key words :

  摘 要: 采用高端CMOS图像传感器进行图像采集,基于DCT和M序列算法实现数字水印" title="数字水印">数字水印提取,基于FPGA" title="FPGA">FPGA采用DA算法实现二维DCT变换。与基于PC机和扫描仪的印刷品数字水印检测设备相比,大大提高了图片数字水印检测的速度,实现了印刷品数字水印的快速检测。
  关键词: 数字水印 检测 CMOS DCT FPGA


  数字水印技术是近年来发展起来的一种信息隐藏技术,可以用于网络多媒体文件的版权保护、印刷品的防伪等。早期的图像数字水印技术是对图像进行空域处理。这种方法鲁棒性较差,经过一些常用的信号算法处理后,水印信息难以保存。有人提出了在频域里添加水印的方法,使水印具有一定的鲁棒性,如Cox提出的基于扩频通信思想的数字水印算法。我国在数字水印方面的研究始于1999年,之后,数字水印很快成为了信息安全领域的热点问题,产生了基于DCT(Discrete Cosine Transformation)变换、小波变换、维纳滤波等具有交叉技术特点的水印算法。目前,诸多的数字水印技术都是基于网络传输,针对印刷品数字水印的研究还处于起步阶段。传统的印刷品数字水印系统采用扫描仪进行图像采集并且基于PC机实现算法。此种方案速度慢、体积大、难以投入实用。本文采用高端CMOS图像传感器采集图像,基于DCT变换和相关算法,结合可编程逻辑器件FPGA和数字信号处理器DSP" title="DSP">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所示。


1.3 算法在FPGA及DSP上的实现
  由于本文采用CMOS图像传感器所采集图像的色彩空间属于RGB空间,因此,必须先将其转换为独立于设备的CIE-XYZ空间,使后续处理得以继续。
  本文所采用的数字水印算法包含了图像的2-D DCT运算,计算量极大。为了保证计算的实时性,本文采用具有并行处理结构的FPGA实现。首先改进2-D DCT算法,使之适合FPGA的并行处理,常用的方法是将二维运算转化为两次一维运算。

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


  Ai(i=0,1,2,……,15)表示某一行某一像素的亮度值,xk表示余弦变换的多项式系数。对于式(8),宜采用16个相同的模块进行并行运算,所得结果为Z0,Z1,Z2,……,Z15,然后将Zy带入式(4),进行与上一步相同的运算,得出DCT系数的值。以上运算用按位与运算和加法运算,可以避免对乘法器资源的占用,而且可以用FPGA中的查找表(LUT)实现。在电路设计上可采用乒乓操作分时复用一维运算模块,以提高器件的利用率。
  在得到图片的DCT系数矩阵以后,取出每个16×16块的前10个较大的DCT系数,形成一个一维序列,与前面提到的水印序列hi进行相关运算。相关运算值超过一个由试验得出的阈值则表明检测到水印。
  相关运算公式为:
  
2 系统硬件
  数字水印检测设备的硬件框图如图2所示。CMOS图像传感器是近年来发展迅猛的一种图像传感器,一些高端CMOS芯片所获得的静态图片,其质量可与CCD媲美。本文采用Omnivision公司的高端CMOS芯片OV3610,它具有300万像素点,能够提供高品质的图像。本文采用FPGA通过SCCB接口对OV3610芯片进行控制,采集图像。SCCB接口是Omnivision公司开发的一种串行接口技术。它是一种串行接口总线,由时钟信号、输入数据、输出数据组成。主机可以通过SCCB接口访问CMOS传感器的内部寄存器,从而控制CMOS的工作模式、输出图像的格式、图像的增益、RGB各个分量的增益、曝光时间、曝光强度、图像开窗等,使得到的图像便于识别水印。图像的读取是由FPGA进行时序控制的,图像的输出接口包含了10位的图像数据线和同步信号VSYNC、HSYNC、HREF。其中VSYNC信号进行帧同步,HSYNC信号进行行同步,HREF用于标志一行未传输完毕。时序如图3所示。

 


  本文采用容量为256K×16bit的SRAM作为DCT系数的存储体。要完全存储DCT变换的数据是不可能的。因此,FPGA计算出的DCT系数并不能完全存储,也没有必要。因为水印是添加在每个16×16块的前10个系数里,因此只需保存每个块的前10个系数,3145728像素图片产生的水印信息只有120KB。待FPGA完成图片的DCT计算后,DSP得到运算完毕信号,从SRAM中取出DCT系数,进行相关运算。如果运算结果超过事先设定的阈值,则认为该图片存在水印,反之为不含水印。检测结果通过系统控制器在点阵液晶屏显示,并且触发语音报警器,实现语音报警。此外,该系统还具有与PC机的通信能力,能够通过RS232接口从PC机下载新的水印信息,因此便于水印的更新。要检测含有不同水印信息的图片只需下载不同的水印信息即可。

 


  经过试验得出图4、图5、图6所示的仿真结果。该系统能够稳定地检测出含有水印的图像和不含水印的图像。对于含有水印的图像复制品,可以通过设置恰当的阈值予以鉴别。一般含有水印的原始图像的相关值处于一个平均值,而图像复制品处于一个较低的平均值。该系统每次检测耗时小于2秒,能够进行水印的快速检测。
参考文献
1 Cox I J,Killian J,Leighton F T etc al.Secure spread spec-trum watermarking for multimedia[J].IEEE Trans Image Pro-cessing,1997;6(12):1673~1687
2 LiHui,Xu Taiyuan.The Application of Electronic Watermark in Presswork Anti-Imitations.JESTC,2004;2(1):72~75
3 阮秋琦.数字图像处理.北京:电子工业出版社,2001
4 孙兆林.MATLAB6.X图像处理.北京:清华大学出版社,2002
5 宋玉杰,刘瑞祯,谭铁牛等.数字水印技术在印刷品防伪中的应用.中国图像图形学报,2001;6(5)
6 孟 兵,周良柱,万建伟.基于维纳滤波的数字水印算法.计算机工程与应用,2000

此内容为AET网站原创,未经授权禁止转载。