林國強(qiáng),任雪暢,王婉秋,爐慶洪
(廈門大學(xué) 物理科學(xué)與技術(shù)學(xué)院,福建 廈門 361000)
網(wǎng)絡(luò)安全已經(jīng)成為計(jì)算機(jī)領(lǐng)域中必不可少的話題,比如云計(jì)算中的云安全問題。在信息傳輸?shù)倪^程中,加密傳輸?shù)膽?yīng)用范圍很廣泛,而全息水印又是其中的佼佼者。光學(xué)信息隱藏大致可以分為兩種,一種是基于雙隨機(jī)相位編碼的算法[1],另一種是基于數(shù)字全息編碼的算法[2]。這兩種算法都對(duì)水印信息進(jìn)行加密以及置亂,還有一些比如基于菲涅耳衍射的水印算法[3],但是以上算法的穩(wěn)健性有待提升。Rosen和Javidi提出了半色調(diào)編碼圖中隱藏圖像的方法[4],穩(wěn)健性提升比較大,但是降低了編碼圖的質(zhì)量以及可辨識(shí)度。彭翔等改進(jìn)了全息水印的方法,利用相位復(fù)原技術(shù)將水印信息隱藏在復(fù)波前的相位中,復(fù)波前振幅定義為宿主信息,通過計(jì)算全息記錄,再進(jìn)行半色調(diào)編碼完成嵌入[5],提取時(shí)使用傅里葉變化即可,但是彭翔提出的方法只能記錄一張圖像的信息,如果需要同時(shí)記錄并提取兩張圖像,就需要對(duì)單通道半色調(diào)全息水印技術(shù)進(jìn)行拓展。
本文提出了基于雙通道技術(shù)的三維效果宿主圖像的半色調(diào)全息水印。該方法利用雙通道技術(shù)將兩幅經(jīng)過半色調(diào)編碼的嵌入全息水印的宿主圖像合成在一起,編碼成計(jì)算全息圖,重現(xiàn)的時(shí)候此計(jì)算全息圖能夠顯示出兩幅水印圖像。在兩幅已經(jīng)編碼好的半色調(diào)全息水印圖像的基礎(chǔ)上,將多幅上述圖像通過多通道技術(shù)合成一幅圖像,再制成全息圖,是接下來要研究的一個(gè)方向。提取多幅圖像的水印信息只需要重現(xiàn)計(jì)算全息圖,再利用一個(gè)透鏡即可提取出水印信息。這在傳統(tǒng)光學(xué)中可以理解為一個(gè)4f系統(tǒng)(兩個(gè)焦距為f的透鏡,相距為2f,物距為f,像距為f),其中開始記錄的半色調(diào)全息水印是4f的一部分2f,重現(xiàn)又是一個(gè)新的2f[6]。
本文提出的雙通道的三維效果宿主圖像的半色調(diào)全息水印嵌入的實(shí)現(xiàn)分為四個(gè)步驟。首先,利用相位復(fù)原技術(shù)獲得相位函數(shù)。其次,利用計(jì)算全息中改進(jìn)常數(shù)因子修正離軸參考光的方法,將獲得的相位函數(shù)通過MATLAB編碼成計(jì)算全息圖[7]。再次,因?yàn)樵谏鲜霾襟E中的計(jì)算全息圖中記錄了特定相位信息的復(fù)波前,所以利用半色調(diào)編碼技術(shù)編碼此幅計(jì)算全息圖可以提升圖像的魯棒性[8]。最后,重復(fù)以上步驟形成兩幅經(jīng)過半色調(diào)編碼的計(jì)算全息圖,其中每幅宿主圖像可以利用三維效果去處理,然后利用雙通道技術(shù)合成這兩幅全息圖,再將這兩幅合成的圖像編碼成計(jì)算全息圖。
先假設(shè)被嵌入水印的圖像為f (x, y),水印圖像為g(u, v),F(xiàn){}為傅里葉變換,把被嵌入水印像放置透鏡前焦面,水印圖像放置后焦面,則可利用GS算法求得合適的相位函數(shù)整個(gè)公式為:
提出了GS算法基本思路為:通過不斷的在透鏡前被嵌入的圖像與透鏡后水印圖像之間正向迭代與反向迭代得到相位函數(shù)[9]。在正向迭代的時(shí)候,即從透鏡前的圖像迭代到透鏡后的圖像,需要加入頻譜面上的限制條件。在反向迭代的時(shí)候,即從透鏡后的圖像迭代到透鏡前的圖像,需要加入振幅面上的限制條件,直到滿足限制條件則停止迭代。算法具體描述:
完成以上步驟即可獲得相位函數(shù),將獲得的相位函數(shù)與宿主圖像作為振幅,這樣便可構(gòu)出一個(gè)復(fù)波前函數(shù),就可以設(shè)計(jì)成計(jì)算全息圖。
上述產(chǎn)生的相位函數(shù)是復(fù)函數(shù),所以需要利用計(jì)算全息記錄復(fù)波前。Huang等提出修正離軸參考光的方法來記錄復(fù)波前[7],彭翔等改進(jìn)了這個(gè)方法以便更好地進(jìn)行半色調(diào)編碼。具體原理為,將透射率因子改為一個(gè)權(quán)重因子,同時(shí)調(diào)整參考波在x方向的頻率,以使記錄的復(fù)波前與振幅之間誤差更小。
編碼成計(jì)算全息圖之后再進(jìn)行半色調(diào)編碼以使宿主圖像更具魯棒性。
本文利用半色調(diào)振幅調(diào)制(AM)方法對(duì)上述圖像進(jìn)行編碼,這種方法類似于通信中的脈沖寬度調(diào)制。圖1為原理圖。
圖1 振幅調(diào)制半色調(diào)原理圖Fig. 1 Schematic diagram of the amplitude modulation halftone
其中u、v表示計(jì)算全息中像素的坐標(biāo),x、y表示半色調(diào)編碼中像元位置。在編碼過程中每一連續(xù)色調(diào)都被編碼成dx、dy像素的二值區(qū)域。令h(u, v)為上述矩形的面積。其中寬度為常數(shù),由于此為振幅調(diào)制而圖像對(duì)于振幅常數(shù)因子不敏感,故可以忽略常數(shù)因子。將h(u, v)由灰度階級(jí)數(shù)量化為dy階并歸一化可得:
其中式(2)左邊為0, 1, 2, 3, …, dy。故半色調(diào)編碼所得全息圖透射率函數(shù)為:
其中rect函數(shù)為矩形函數(shù)。
經(jīng)過半色調(diào)編碼之后宿主圖像魯棒性在剪切、損壞方面會(huì)得到一定程度的魯棒性提升。至此已經(jīng)制作出一幅完整的單通道需要的圖像,重復(fù)以上步驟,換一個(gè)三維效果[10]宿主圖像,再加上水印圖像然后再次制作出一幅單通道所需要的圖像。
傳統(tǒng)制作雙通道計(jì)算全息需要兩幅圖像作為入?yún)?,接著?duì)兩幅圖像產(chǎn)生隨機(jī)相位,效果類似于傳統(tǒng)全息實(shí)驗(yàn)加入毛玻璃。將兩幅圖像分別進(jìn)行快速傅里葉變化,然后分別計(jì)算出每幅圖像的振幅和相位,并對(duì)其歸一化離散處理,再利用羅曼三型的計(jì)算全息編碼技術(shù)將上述步驟的兩幅圖像通過疊加不同二次相位因子[11]進(jìn)行原始公式的累加編碼,這樣便形成雙通道全息編碼。
本文在計(jì)算全息模擬實(shí)驗(yàn)的基礎(chǔ)上發(fā)現(xiàn),上述傳統(tǒng)雙通道計(jì)算全息編碼技術(shù)的制作過程有簡化的操作,此簡化操作在不要求彩色水印的前提下可以有良好的效果。將兩張經(jīng)過半色調(diào)編碼之后的圖像合成一張圖像,然后按照1.2小節(jié)的方法制作出計(jì)算全息圖,以達(dá)到更好的信息隱藏。
單通道水印信息的提取只需要將上述制作出來的全息圖模擬再現(xiàn),然后進(jìn)行傅里葉變化即可。雙通道計(jì)算全息水印圖像的水印提取與單通道一致。
本文得益于4f系統(tǒng)的思路,利用其中的2f系統(tǒng)模擬化1.1節(jié)的GS算法,再最后利用后半部的2f系統(tǒng)重現(xiàn)出原始圖像。具體模擬如圖2所示。
圖2 三維效果全息水印提取過程Fig. 2 Extraction process of three-dimensional effect holographic watermark
通過水印制作成半色調(diào)計(jì)算全息圖之后利用菲涅耳計(jì)算全息模擬重現(xiàn)技術(shù)將全息圖重現(xiàn)出來,再通過傅里葉變化得到水印信息,即模擬了實(shí)驗(yàn)中透鏡的效果。
由于實(shí)驗(yàn)室條件有限,本文采用MATLAB軟件進(jìn)行仿真實(shí)驗(yàn)。首先選取兩幅256×256像素的圖像作為嵌入水印圖像和水印圖像。圖3、圖4分別為嵌入水印圖像和水印圖像。
圖3 嵌入水印三維效果圖像Fig. 3 Embedded watermark 3D image
圖4 水印圖像Fig. 4 Watermark image
利用GS算法將圖3作為2f系統(tǒng)的左焦面,圖4作為右焦面迭代,得到相位函數(shù)圖像如圖5所示,利用反向迭代技術(shù)將圖5復(fù)原出水印信息,如圖6所示。
利用上文所述的理論知識(shí)制作計(jì)算全息圖如圖7所示,再將其半色調(diào)編碼如圖8所示。
圖5 相位圖Fig. 5 Phase diagram
圖7 計(jì)算全息編碼Fig. 7 Computer generated-hologram
圖8 半色調(diào)編碼Fig. 8 Halftone coding
圖9 另一幅水印圖像Fig. 9 Another watermark image
圖10 圖 9 的半色調(diào)編碼Fig. 10 Halftone coding in Fig. 9
圖8為一幅完整的半色調(diào)編碼圖像,將水印圖像改為圖9再次重復(fù)以上過程制作出半色調(diào)編碼圖像,如圖10所示。將兩幅半色調(diào)編碼合成一幅圖像如圖11所示,通過菲涅耳計(jì)算全息將其編碼成計(jì)算全息圖,重現(xiàn)此計(jì)算全息圖如圖12所示,再利用傅里葉變化提取重現(xiàn)的半色調(diào)編碼圖像,其中兩個(gè)水印信息如圖13所示。
圖11 雙通道半色調(diào)編碼Fig. 11 Two-channel halftone coding
由于利用了傅里葉技術(shù),故可以看出每幅圖像都有其共軛像,第一象限與第四象限互為共軛像,第二象限與第三象限互為共軛像。即圖13的一般圖像為兩幅水印信息。
在仿真實(shí)驗(yàn)中,可以利用photoshop等技術(shù)將不需要的共軛像去除,以得到原始的兩幅圖像,如圖14所示。
圖12 重現(xiàn)圖 11 全息圖Fig. 12 Recreate hologram of Fig. 11
圖13 提取圖 12 中兩幅圖水印信息Fig. 13 Extract the watermark information of the two images in Fig. 12
圖14 利用 photoshop 等技術(shù)消除共軛像Fig. 14 Using photoshop and other techniques to eliminate conjugate images
由上文中模擬實(shí)驗(yàn)信息可得出,傳遞不要求彩色水印的水印信息時(shí),利用雙通道技術(shù),可以使一張全息圖承載更多信息量。 本文在兩方面減少了計(jì)算全息的編碼時(shí)間,一方面是在計(jì)算全息編碼兩張相同像素的水印圖像時(shí),利用本文所闡述的方法可以節(jié)省一半的時(shí)間,也就是說加入了雙通道技術(shù)之后,信息量得到了提升。另一方面是三維效果加入,具體體現(xiàn)在嵌入水印信息的原始圖像具有三維效果信息,這可以減少三維圖像的編碼時(shí)間和視覺效果之間的一個(gè)平衡。信息量的增大有可能導(dǎo)致再現(xiàn)像的質(zhì)量降低,具體體現(xiàn)在承載兩幅圖像水印信息的雙通道技術(shù)可能會(huì)出現(xiàn)重疊,但是本文利用了類似全零矩陣[12]的技術(shù)來消除上述的降低再現(xiàn)像的可能性,使得再現(xiàn)像不會(huì)出現(xiàn)重疊,交叉之類的。由于本文采用的是傅里葉編碼方式,故仿真實(shí)驗(yàn)中出現(xiàn)了共軛像,第三、第四象限才是原始的兩幅水印, 在仿真實(shí)驗(yàn)中,只需要在重現(xiàn)之后通過photoshop等技術(shù)去除掉第一、第二象限的圖像即可去除共軛像,但是在實(shí)驗(yàn)過程中的共軛像消除還有待考究。由于半色調(diào)編碼能夠增加水印的魯棒性,故本文參考了Rosen和Javidi提出的半色調(diào)編碼圖中隱藏圖像的方法,加入了半色調(diào)編碼。