《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于FPGA和DSP的印刷品數(shù)字水印檢測(cè)器的設(shè)計(jì)
基于FPGA和DSP的印刷品數(shù)字水印檢測(cè)器的設(shè)計(jì)
粟 海,,堯德中,龐小虎
摘要: 采用高端CMOS圖像傳感器進(jìn)行圖像采集,,基于DCT和M序列算法實(shí)現(xiàn)數(shù)字水印提取,,基于FPGA采用DA算法實(shí)現(xiàn)二維DCT變換。與基于PC機(jī)和掃描儀的印刷品數(shù)字水印檢測(cè)設(shè)備相比,,大大提高了圖片數(shù)字水印檢測(cè)的速度,,實(shí)現(xiàn)了印刷品數(shù)字水印的快速檢測(cè)。
關(guān)鍵詞: DSP FPGA 數(shù)字水印
Abstract:
Key words :

  摘 要: 采用高端CMOS圖像傳感器進(jìn)行圖像采集,,基于DCT和M序列算法實(shí)現(xiàn)數(shù)字水印" title="數(shù)字水印">數(shù)字水印提取,,基于FPGA" title="FPGA">FPGA采用DA算法實(shí)現(xiàn)二維DCT變換。與基于PC機(jī)和掃描儀的印刷品數(shù)字水印檢測(cè)設(shè)備相比,,大大提高了圖片數(shù)字水印檢測(cè)的速度,,實(shí)現(xiàn)了印刷品數(shù)字水印的快速檢測(cè)。
  關(guān)鍵詞: 數(shù)字水印 檢測(cè) CMOS DCT FPGA


  數(shù)字水印技術(shù)是近年來發(fā)展起來的一種信息隱藏技術(shù),,可以用于網(wǎng)絡(luò)多媒體文件的版權(quán)保護(hù),、印刷品的防偽等。早期的圖像數(shù)字水印技術(shù)是對(duì)圖像進(jìn)行空域處理,。這種方法魯棒性較差,,經(jīng)過一些常用的信號(hào)算法處理后,水印信息難以保存,。有人提出了在頻域里添加水印的方法,使水印具有一定的魯棒性,,如Cox提出的基于擴(kuò)頻通信思想的數(shù)字水印算法,。我國在數(shù)字水印方面的研究始于1999年,之后,,數(shù)字水印很快成為了信息安全領(lǐng)域的熱點(diǎn)問題,,產(chǎn)生了基于DCT(Discrete Cosine Transformation)變換、小波變換,、維納濾波等具有交叉技術(shù)特點(diǎn)的水印算法,。目前,諸多的數(shù)字水印技術(shù)都是基于網(wǎng)絡(luò)傳輸,,針對(duì)印刷品數(shù)字水印的研究還處于起步階段,。傳統(tǒng)的印刷品數(shù)字水印系統(tǒng)采用掃描儀進(jìn)行圖像采集并且基于PC機(jī)實(shí)現(xiàn)算法。此種方案速度慢,、體積大,、難以投入實(shí)用。本文采用高端CMOS圖像傳感器采集圖像,基于DCT變換和相關(guān)算法,,結(jié)合可編程邏輯器件FPGA和數(shù)字信號(hào)處理器DSP" title="DSP">DSP,,實(shí)現(xiàn)了印刷品數(shù)字水印的快速檢測(cè)。
1 基本原理
1.1 色彩空間的選擇
  本系統(tǒng)中含有數(shù)字水印的印刷品由計(jì)算機(jī)生成,,通過激光打印機(jī)打印,,再由CMOS傳感器采集。整個(gè)過程中,,圖像信號(hào)經(jīng)歷了DAC變換和ADC變換,,并且在不同設(shè)備上傳輸。為了保證圖像的失真最小,,必須選擇一種獨(dú)立于設(shè)備的色彩空間來表示圖像,。本系統(tǒng)采用CIE-XYZ色彩空間。XYZ顏色模型將彩色光表示為:
  C=X(x)+Y(y)+Z(z)
  其中,,x,、y、z是XYZ色彩空間的基色量,,X,、Y、Z為三色比例系數(shù),。
1.2 水印的添加和提取
  所要添加的水印信息可以是一段長度為n的由“-1”和“1”表示的二進(jìn)制數(shù)碼{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與偽隨機(jī)序列M序列按位與,,具體實(shí)現(xiàn)是ki序列長度取M序列長度的整數(shù)倍,,從而得到一個(gè)具有良好自相關(guān)特性的序列,這就是水印hi,。宿主圖像可以是任意一幅色彩豐富的彩色圖片,。首先,將宿主圖像轉(zhuǎn)化為CIE-XYZ色彩空間方式,,取出亮度分量,,將其進(jìn)行16×16 DCT變換,選出每個(gè)塊的前10個(gè)較大的DCT系數(shù)Wi,;然后將hi序列按照如下公式計(jì)算得到加有水印的DCT系數(shù)序列:
  Wi′=Wi(1+аhi)
  其中,,a控制了水印的強(qiáng)度。最后對(duì)處理過的DCT系數(shù)進(jìn)行反DCT變換后與圖像的另外兩個(gè)基色量合成并打印,,即可得到添加了水印的圖像,。
  水印的提取過程與水印的添加過程大體相反。為了保證圖像的大小與原圖相同,,將一幅含有水印的印刷品在合適的燈光照明和適當(dāng)?shù)奈锞嘞?,通過高端CMOS圖像傳感器及其外圍電路采集到存儲(chǔ)器,,將圖像從RGB空間轉(zhuǎn)換為CIE-XYZ空間,提取其中的亮度分量,;然后對(duì)其進(jìn)行16×16 DCT變換,,選取前10個(gè)較大的DCT系數(shù),用已知hi序列與之進(jìn)行相關(guān)運(yùn)算,。由于經(jīng)M序列調(diào)制的hi具有很好的自相關(guān)特性,,當(dāng)圖像中含有水印時(shí),相關(guān)運(yùn)算的值超過一定的閾值即表示此圖像含有水印,,反之則表示這幅圖片中不含有水印信息,。通過上述方法,可以在需要受到保護(hù)的圖像中添加水印信息,,然后用本論文闡述的機(jī)讀設(shè)備進(jìn)行檢測(cè),,從而將不受保護(hù)的圖像檢測(cè)出來。對(duì)于含有水印信息圖像的復(fù)制印刷品,,由于其水印能量被削弱,,因此檢測(cè)得出的相關(guān)值偏低,也能將其淘汰,。經(jīng)試驗(yàn)得出,,正品的相關(guān)值都在40%以上,而正品的復(fù)制品都在15%以下,,不含水印信息的相同印刷品的相關(guān)值都在10%以下,。
  數(shù)字水印系統(tǒng)原理如圖1所示。


1.3 算法在FPGA及DSP上的實(shí)現(xiàn)
  由于本文采用CMOS圖像傳感器所采集圖像的色彩空間屬于RGB空間,,因此,,必須先將其轉(zhuǎn)換為獨(dú)立于設(shè)備的CIE-XYZ空間,使后續(xù)處理得以繼續(xù),。
  本文所采用的數(shù)字水印算法包含了圖像的2-D DCT運(yùn)算,,計(jì)算量極大。為了保證計(jì)算的實(shí)時(shí)性,,本文采用具有并行處理結(jié)構(gòu)的FPGA實(shí)現(xiàn)。首先改進(jìn)2-D DCT算法,,使之適合FPGA的并行處理,,常用的方法是將二維運(yùn)算轉(zhuǎn)化為兩次一維運(yùn)算。

  因此,,二維DCT運(yùn)算可由兩個(gè)一維運(yùn)算得到,,并且,公式中的余弦值可以事先計(jì)算好并做為運(yùn)算參數(shù)保存,。一維運(yùn)算的實(shí)現(xiàn)采用了DA(Distributed Arithmetic)算法進(jìn)一步提高運(yùn)算速度,,具體原理如下:


  Ai(i=0,1,2,,……,,15)表示某一行某一像素的亮度值,xk表示余弦變換的多項(xiàng)式系數(shù),。對(duì)于式(8),,宜采用16個(gè)相同的模塊進(jìn)行并行運(yùn)算,所得結(jié)果為Z0,,Z1,,Z2,……,,Z15,,然后將Zy帶入式(4),進(jìn)行與上一步相同的運(yùn)算,,得出DCT系數(shù)的值,。以上運(yùn)算用按位與運(yùn)算和加法運(yùn)算,可以避免對(duì)乘法器資源的占用,,而且可以用FPGA中的查找表(LUT)實(shí)現(xiàn),。在電路設(shè)計(jì)上可采用乒乓操作分時(shí)復(fù)用一維運(yùn)算模塊,以提高器件的利用率,。
  在得到圖片的DCT系數(shù)矩陣以后,,取出每個(gè)16×16塊的前10個(gè)較大的DCT系數(shù),形成一個(gè)一維序列,,與前面提到的水印序列hi進(jìn)行相關(guān)運(yùn)算,。相關(guān)運(yùn)算值超過一個(gè)由試驗(yàn)得出的閾值則表明檢測(cè)到水印。
  相關(guān)運(yùn)算公式為:
  
2 系統(tǒng)硬件
  數(shù)字水印檢測(cè)設(shè)備的硬件框圖如圖2所示,。CMOS圖像傳感器是近年來發(fā)展迅猛的一種圖像傳感器,,一些高端CMOS芯片所獲得的靜態(tài)圖片,其質(zhì)量可與CCD媲美,。本文采用Omnivision公司的高端CMOS芯片OV3610,,它具有300萬像素點(diǎn),能夠提供高品質(zhì)的圖像,。本文采用FPGA通過SCCB接口對(duì)OV3610芯片進(jìn)行控制,,采集圖像。SCCB接口是Omnivision公司開發(fā)的一種串行接口技術(shù),。它是一種串行接口總線,,由時(shí)鐘信號(hào)、輸入數(shù)據(jù),、輸出數(shù)據(jù)組成,。主機(jī)可以通過SCCB接口訪問CMOS傳感器的內(nèi)部寄存器,,從而控制CMOS的工作模式、輸出圖像的格式,、圖像的增益,、RGB各個(gè)分量的增益、曝光時(shí)間,、曝光強(qiáng)度,、圖像開窗等,使得到的圖像便于識(shí)別水印,。圖像的讀取是由FPGA進(jìn)行時(shí)序控制的,,圖像的輸出接口包含了10位的圖像數(shù)據(jù)線和同步信號(hào)VSYNC、HSYNC,、HREF,。其中VSYNC信號(hào)進(jìn)行幀同步,HSYNC信號(hào)進(jìn)行行同步,,HREF用于標(biāo)志一行未傳輸完畢,。時(shí)序如圖3所示。

 


  本文采用容量為256K×16bit的SRAM作為DCT系數(shù)的存儲(chǔ)體,。要完全存儲(chǔ)DCT變換的數(shù)據(jù)是不可能的,。因此,F(xiàn)PGA計(jì)算出的DCT系數(shù)并不能完全存儲(chǔ),,也沒有必要,。因?yàn)樗∈翘砑釉诿總€(gè)16×16塊的前10個(gè)系數(shù)里,因此只需保存每個(gè)塊的前10個(gè)系數(shù),,3145728像素圖片產(chǎn)生的水印信息只有120KB,。待FPGA完成圖片的DCT計(jì)算后,DSP得到運(yùn)算完畢信號(hào),,從SRAM中取出DCT系數(shù),,進(jìn)行相關(guān)運(yùn)算。如果運(yùn)算結(jié)果超過事先設(shè)定的閾值,,則認(rèn)為該圖片存在水印,,反之為不含水印。檢測(cè)結(jié)果通過系統(tǒng)控制器在點(diǎn)陣液晶屏顯示,,并且觸發(fā)語音報(bào)警器,,實(shí)現(xiàn)語音報(bào)警。此外,,該系統(tǒng)還具有與PC機(jī)的通信能力,,能夠通過RS232接口從PC機(jī)下載新的水印信息,,因此便于水印的更新,。要檢測(cè)含有不同水印信息的圖片只需下載不同的水印信息即可,。

 


  經(jīng)過試驗(yàn)得出圖4、圖5,、圖6所示的仿真結(jié)果,。該系統(tǒng)能夠穩(wěn)定地檢測(cè)出含有水印的圖像和不含水印的圖像。對(duì)于含有水印的圖像復(fù)制品,,可以通過設(shè)置恰當(dāng)?shù)拈撝涤枰澡b別,。一般含有水印的原始圖像的相關(guān)值處于一個(gè)平均值,而圖像復(fù)制品處于一個(gè)較低的平均值,。該系統(tǒng)每次檢測(cè)耗時(shí)小于2秒,,能夠進(jìn)行水印的快速檢測(cè)。
參考文獻(xiàn)
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 阮秋琦.數(shù)字圖像處理.北京:電子工業(yè)出版社,,2001
4 孫兆林.MATLAB6.X圖像處理.北京:清華大學(xué)出版社,2002
5 宋玉杰,,劉瑞禎,,譚鐵牛等.數(shù)字水印技術(shù)在印刷品防偽中的應(yīng)用.中國圖像圖形學(xué)報(bào),2001,;6(5)
6 孟 兵,,周良柱,萬建偉.基于維納濾波的數(shù)字水印算法.計(jì)算機(jī)工程與應(yīng)用,,2000

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。