張國(guó)有,劉佳華,米 佳
(太原科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山西 太原 030024)
近幾年,三維彩色模型廣泛應(yīng)用于醫(yī)學(xué)成像[1]、地面掃描[2-3]、自動(dòng)駕駛[4-5]、三維遺產(chǎn)文化重建[6]以及室內(nèi)場(chǎng)景建模[7]等領(lǐng)域。然而,它作為一種數(shù)字媒體,在進(jìn)行低成本無(wú)損復(fù)制和傳輸?shù)耐瑫r(shí)也導(dǎo)致模型非法占有、復(fù)制等版權(quán)保護(hù)問(wèn)題變得非常嚴(yán)重[8]。
數(shù)字水印技術(shù)作為版權(quán)保護(hù)的重要手段,對(duì)三維網(wǎng)格模型的版權(quán)保護(hù)有了大量的研究,而三維點(diǎn)云模型的研究卻處于早期階段。文獻(xiàn)[9-10]在空間域中對(duì)三維點(diǎn)云模型進(jìn)行水印嵌入,但是由于點(diǎn)云模型數(shù)據(jù)量大、無(wú)拓?fù)浣Y(jié)構(gòu),導(dǎo)致計(jì)算復(fù)雜度高且魯棒性弱等。所以,國(guó)內(nèi)外研究學(xué)者將點(diǎn)云模型的數(shù)據(jù)特性應(yīng)用到頻域中。頻域包括離散余弦變換(Discrete Cosine Transform,DCT)、圖像傅里葉變換(Graph Fourier Transform,GFT)、離散小波變換(Discrete Wavelet Transform,DWT)等。其中,文獻(xiàn)[11]提出了一種三維點(diǎn)云模型的非盲水印算法,該算法對(duì)每個(gè)點(diǎn)云頂點(diǎn)的顏色信息進(jìn)行GFT變換并將水印嵌入到變換后的GFT系數(shù)中,但存在的問(wèn)題是GFT變換只通過(guò)頻率來(lái)分析信號(hào),抗簡(jiǎn)化攻擊的能力較弱。文獻(xiàn)[12]提出了基于2D-DCT的三維彩色點(diǎn)云模型的數(shù)字水印算法,將三維彩色點(diǎn)云模型投影為二維彩色圖像,通過(guò)修改2D-DCT系數(shù)插入水印信息,完成水印的嵌入,提高了不可見(jiàn)性,但是無(wú)法完全抵抗幾何仿射變換的攻擊。文獻(xiàn)[13]提出了根據(jù)地質(zhì)點(diǎn)云模型的空間特征得到空間特征變量,將空間域信息轉(zhuǎn)換為頻率域信息,最后利用數(shù)理統(tǒng)計(jì)方法對(duì)頻率域信息進(jìn)行水印嵌入。在幾何仿射變換和簡(jiǎn)化攻擊的魯棒性表現(xiàn)較好,但是不同簡(jiǎn)化率使得不可見(jiàn)性具有不確定性。所以,頻域算法[11-13]相比于空域算法[9-10]的魯棒性得到了提高,但還是存在透明性和魯棒性難以權(quán)衡的問(wèn)題。
文獻(xiàn)[14]研究發(fā)現(xiàn)DWT被認(rèn)為是更適合作為水印的頻域,因?yàn)樗臅r(shí)間/頻率分解特性在本質(zhì)上類(lèi)似于人類(lèi)視覺(jué)系統(tǒng)(Human Visual System,HVS),可以提供更好的透明性和魯棒性。因此,文獻(xiàn)[14]提出了一種基于DWT的三維點(diǎn)云模型數(shù)字水印算法,對(duì)模型各點(diǎn)到重心距離值進(jìn)行DWT變換,并選擇其一維LL子帶作為水印嵌入域,但是當(dāng)水印容量增加到1 024位時(shí),不可見(jiàn)性降低。
文獻(xiàn)[15]提出DWT-DCT混合嵌入水印的方法,將三維點(diǎn)云模型利用坐標(biāo)投影算法生成二維圖像,在二維圖像DWT域中的LL子帶進(jìn)行DCT變換,將水印嵌入到DCT變換的DC系數(shù)中。文獻(xiàn)[14-15]較好地平衡了水印的透明性和魯棒性,但是由于DWT變換存在下采樣的過(guò)程,導(dǎo)致點(diǎn)云模型中有價(jià)值的點(diǎn)被修改或移位。
針對(duì)這一問(wèn)題,Roy等人[16]提出了冗余離散小波變換(Redundant Discrete Wavelet Transform,RDWT),不僅克服了DWT的移位變量特性,而且比DWT具有更完整的圖像信息。此外,利用奇異值分解(Singular Value Decomposition,SVD)的代數(shù)性質(zhì),嚴(yán)格證明了嵌入水印的圖像在遭受縮放、平移、旋轉(zhuǎn)、轉(zhuǎn)換等幾何攻擊后,奇異值具有良好的不變性,為該算法提供了理論依據(jù)[17]。但是Jia等人[18]研究發(fā)現(xiàn)當(dāng)一個(gè)奇異值被修改時(shí),一個(gè)圖像像素矩陣的所有值都將被改變,導(dǎo)致水印圖像的魯棒性得不到改善。
為此,該文以三維彩色點(diǎn)云模型為載體,提出一種新的混合冗余離散小波變換和奇異值分解(Redundant Discrete Wavelet Transform - Singular Value Decomposition,RDWT-SVD)的數(shù)字水印算法。該算法提高了抵抗各類(lèi)攻擊尤其是幾何仿射變換、剪切、簡(jiǎn)化和噪聲攻擊的魯棒性。
由于小波分解具有空間分辨率與頻率分辨率,因此在圖像處理中得到了廣泛的應(yīng)用[16]。DWT使用低通濾波器H(Z)、高通濾波器G(Z)和下采樣,通過(guò)將信號(hào)分解為粗略系數(shù)和細(xì)節(jié)系數(shù)來(lái)分析具有不同分辨率的不同頻帶的數(shù)字圖像。但是下采樣過(guò)程會(huì)導(dǎo)致圖像中潛在信息可能被刪除,降低了從圖像中提取水印的可能性。為了克服DWT的移位變量特性,Roy等人[17]提出了移位不變的RDWT變換。首先,對(duì)圖像上的行應(yīng)用H(Z)和G(Z)來(lái)分析圖像。這樣就構(gòu)造了大小均為8×8的粗略系數(shù)和細(xì)節(jié)系數(shù)。下一步,對(duì)粗略系數(shù)的列和細(xì)節(jié)系數(shù)的列應(yīng)用H(Z)和G(Z)生成四個(gè)大小為8×8的不同圖像子帶(LL,LH,HL,HH)。其中,用G(Z)分析的行和列用H指定。同樣,用H(Z)分析的行和列用L指定。例如,LH子帶是使用行上的低通濾波器和列上的高通濾波器產(chǎn)生的。為了重建圖像,使用了合成濾波器,由于上采樣和下采樣在兩個(gè)濾波器中都不存在,所以每一步的輸出圖像大小與前一步相同。因此,RDWT變換對(duì)存儲(chǔ)空間要求更高,因?yàn)槿哂嘟M件被存儲(chǔ)到下一層,而且它比DWT更完備,可以完整地保存圖像信息。
對(duì)于一個(gè)秩為r(r≤N)的N×N矩陣I,其SVD由式(1)表示:
I=UDVT=
(1)
其中,U和V是N×N的正交矩陣,D是奇異值矩陣,對(duì)角元素滿(mǎn)足λ1≥λ2≥…≥λN。
從圖像處理的角度看,奇異值對(duì)應(yīng)圖像的亮度特性,奇異向量對(duì)應(yīng)圖像的幾何特性[17]。Jia等人[18]研究發(fā)現(xiàn)左奇異向量U矩陣的第二行第一列U2,1和第三行第一列元素U3,1之間存在很強(qiáng)的相關(guān)性,這意味著兩個(gè)元素之間的關(guān)系可以保留和進(jìn)一步用于提取嵌入式水印而不借助原始數(shù)據(jù)。因此,通過(guò)修改正交矩陣U2,1和U3,1的關(guān)系來(lái)嵌入和提取水印。
Arnold變換可以提高水印圖像的安全性[19]。Arnold變換的定義如式(2)所示:
(2)
文中算法的嵌入過(guò)程主要包括四個(gè)階段,分別是三維仿射不變性處理階段;投影平面圖像階段;根據(jù)水印信息,修改矩陣U的U2,1和U3,1的值,實(shí)現(xiàn)水印嵌入階段;將含有水印信息的二維彩色圖像利用點(diǎn)云模型還原算法得到含水印模型的階段。算法嵌入過(guò)程如圖1所示。水印提取是對(duì)含水印的三維彩色點(diǎn)云模型執(zhí)行水印嵌入前的模型預(yù)處理和根據(jù)U2,1和U3,1的大小關(guān)系來(lái)實(shí)現(xiàn)的。
2.1.1 三維點(diǎn)云模型仿射不變性處理算法
為了方便對(duì)三維點(diǎn)云模型施加其他后續(xù)操作,需要對(duì)它進(jìn)行仿射不變性處理[20]。假設(shè)三維點(diǎn)云模型表示為V{vi,i=1,2,…,M},式中vi為第i個(gè)頂點(diǎn)坐標(biāo),vi=(xi,yi,zi),M為頂點(diǎn)總數(shù)。仿射不變性處理過(guò)程如下:
(1)根據(jù)式(3)、(4)計(jì)算三維點(diǎn)云模型的中心坐標(biāo)U(ux,uy,uz)并將中心坐標(biāo)作為新的原點(diǎn)(0,0,0)進(jìn)行平移,實(shí)現(xiàn)了三維點(diǎn)云模型的平移不變性。
(3)
(4)
(2)對(duì)三維點(diǎn)云模型運(yùn)用主成分分析(Principal Components Analysis,PCA),計(jì)算協(xié)方差矩陣C、矩陣C所對(duì)應(yīng)的特征值和特征向量,其中最大特征值所對(duì)應(yīng)的特征向量為三維點(diǎn)云模型的最大主元。協(xié)方差矩陣見(jiàn)式(5)。
(5)
(3)旋轉(zhuǎn)三維點(diǎn)云模型使最大主元與z軸重合,最終得到其頂點(diǎn)坐標(biāo)為(xi,yi,zi),實(shí)現(xiàn)了三維點(diǎn)云模型的旋轉(zhuǎn)不變性和均勻縮放不變性[21]。
這樣,三維點(diǎn)云模型的頂點(diǎn)坐標(biāo)就具有仿射不變性,即平移不變性、旋轉(zhuǎn)不變性和均勻縮放不變性。
2.1.2 投影平面圖像算法
為了應(yīng)用基于RDWT-SVD的水印算法,需要完成三維點(diǎn)云模型到二維圖像的變換。步驟如下:
(3)對(duì)選定的有效點(diǎn)進(jìn)行歸一化,將處理后的點(diǎn)返回位置信息和顏色信息;
(4)組合RGB顏色分量,形成二維彩色圖像。
2.1.3 水印嵌入算法
(1)圖像顏色空間從RGB到Y(jié)CbCr的轉(zhuǎn)換。二維彩色圖像通過(guò)式(6)將RGB轉(zhuǎn)換為YCbCr。
(6)
(2)YCbCr顏色空間提取Y分量并劃分為8×8非重疊塊。
(3)二值水印使用Arnold變換并劃分為8×8非重疊塊,并存儲(chǔ)密鑰N。
水印嵌入:
(1)對(duì)Y分量的每個(gè)塊應(yīng)用RDWT變換得到LL子帶,并對(duì)LL子帶進(jìn)行SVD變換得到矩陣U。
(2)根據(jù)以下規(guī)則修改U矩陣的U2,1和U3,1的元素進(jìn)行水印嵌入。
水印wi=1
(7)
水印wi=0
(8)
(3)應(yīng)用逆SVD變換,然后對(duì)每個(gè)塊應(yīng)用逆RDWT變換以創(chuàng)建帶水印的Y分量。
(4)重建Y分量與Cb和Cr相結(jié)合,利用式(9)將含水印圖像轉(zhuǎn)換到RGB顏色空間。
(9)
2.1.4 點(diǎn)云模型還原算法
(3)利用替換后的顏色信息生成含水印的三維彩色點(diǎn)云模型。
(1)從含水印的點(diǎn)云模型中進(jìn)行三維仿射不變性處理并找到有效點(diǎn),利用2.1.1和2.1.2節(jié)算法獲得含水印的2D彩色圖像。
圖1 算法嵌入過(guò)程
(2)根據(jù)式(10)中U2,1和U3,1的關(guān)系提取出相應(yīng)的水印信息。
(10)
(3)使用相同的密鑰N應(yīng)用逆Arnold變換來(lái)恢復(fù)二值水印圖像。
實(shí)驗(yàn)采用了MatlabR2018平臺(tái),以文獻(xiàn)[11]中的Bunny(35 947點(diǎn))、Guy(66 860點(diǎn))、Lion_statue(536 240點(diǎn))和Vase(147 420點(diǎn))三維彩色點(diǎn)云模型進(jìn)行實(shí)驗(yàn)測(cè)試。圖2(a)為原始三維彩色點(diǎn)云模型,圖2(b)為秘密信息及其預(yù)處理圖像,圖2(c)為嵌入水印信息后的三維彩色點(diǎn)云模型。圖2(a)采用圖2(c)中N=100的置亂參數(shù)。
利用文中算法對(duì)Bunny、Guy、Lion_statue和Vase模型嵌入水印后,為了定量地分析該算法的不可見(jiàn)性,引入峰值信噪比(Peak Signal-to-Noise Rate,PSNR)和均方根誤差(Root Mean Square Error,RMSE)計(jì)算點(diǎn)云模型嵌入水印前后的幾何誤差。
(1)峰值信噪比(PSNR)是衡量信號(hào)失真程度的典型數(shù)學(xué)指標(biāo),利用式(11)測(cè)試含水印模型與原始模型的失真度。PSNR越大,不可見(jiàn)性越好。
PSNR(f,fw)=
(11)
其中,f是原始彩色點(diǎn)云模型,fw是含水印的彩色點(diǎn)云模型,(x,y,z)是給定點(diǎn)云模型的坐標(biāo)值,Nf是點(diǎn)云模型離散點(diǎn)總個(gè)數(shù),對(duì)于8 bit彩色點(diǎn)云模型,式子中的分子為255×255。
圖2 針對(duì)三維彩色點(diǎn)云模型的數(shù)字水印算法實(shí)現(xiàn)效果
(12)
其中,M代表模型頂點(diǎn)的個(gè)數(shù)。
經(jīng)過(guò)計(jì)算,水印位數(shù)1 024位,這四種模型的均方根誤差和峰值信號(hào)噪聲比如表1所示??紤]到顏色強(qiáng)度的范圍[0,255],一般來(lái)說(shuō)這樣的PSNR被認(rèn)為很高,RMSE值被認(rèn)為很低,所以表示兩個(gè)模型之間有很強(qiáng)的相關(guān)性,說(shuō)明該算法具有良好的不可見(jiàn)性。
表1 1 024位含水印的3D彩色點(diǎn)云模型的
在對(duì)Bunny、Guy、Lion_statue和Vase模型進(jìn)行噪聲攻擊、幾何仿射變換攻擊、簡(jiǎn)化攻擊和剪切攻擊后,為了定量地分析文中算法的魯棒性,引入誤碼率(Bit Error Rate,BER)和歸一化相關(guān)系數(shù)(Normalized Coefficient,NC)分析該算法的魯棒性。其中圖3為部分攻擊后的點(diǎn)云模型及其提取水印圖像。
(1)誤碼率(BER)是指提取的錯(cuò)誤水印位數(shù)與原始水印位數(shù)的比值,比值越接近于0,說(shuō)明水印的提取越成功,算法的魯棒性就越強(qiáng)。BER的計(jì)算公式如式(13)。
(13)
(2)歸一化相關(guān)系數(shù)(NC)是指原始水印信息與提取水印信息之間的相關(guān)度,它的取值范圍是[-1,1],如果NC值越接近1,則說(shuō)明提取的水印信息和原始的水印信息越接近,相似度越高,即提取的水印內(nèi)容完整性越高,算法的魯棒性越好。NC的計(jì)算公式如式(14)所示。
NC=
(14)
為了更好地驗(yàn)證文中算法的魯棒性,將該算法的測(cè)試結(jié)果與基于GFT的三維彩色點(diǎn)云模型的數(shù)字水印算法[11](記為GFT算法)與基于DCT的三維彩色點(diǎn)云模型的數(shù)字水印算法[12](記為DCT算法)的測(cè)試結(jié)果進(jìn)行了對(duì)比。
圖3 部分攻擊后的點(diǎn)云模型及其提取的水印圖像
3.2.1 噪聲攻擊
對(duì)嵌入水印的三維彩色點(diǎn)云模型的頂點(diǎn)坐標(biāo)進(jìn)行噪聲攻擊,實(shí)驗(yàn)中噪聲強(qiáng)度取值分別為0.5%、1%、1.5%。噪聲攻擊的測(cè)試結(jié)果如表2所示,除Vase模型外,其他模型在遭受噪聲攻擊后,BER值小于0.01,NC值大于0.98,對(duì)噪聲攻擊表現(xiàn)出較好的魯棒性。
表2 噪聲攻擊測(cè)試的位錯(cuò)誤率與
以Bunny模型為例,文中算法與DCT算法、GFT算法相比,在噪聲強(qiáng)度小于1%時(shí),NC值始終等于1且高于對(duì)比算法,說(shuō)明文中算法在噪聲攻擊強(qiáng)度較小時(shí)具有很強(qiáng)的魯棒性,如圖4所示。
圖4 Bunny模型與DCT算法、GFT算法在0.1%、 0.3%、0.5%、1%均勻噪聲攻擊的NC比較
3.2.2 仿射變換攻擊
由于對(duì)點(diǎn)云模型進(jìn)行了仿射不變性處理,可以避免模型的平移、旋轉(zhuǎn)和縮放變換等仿射變換對(duì)水印提取的影響。因此,文中算法對(duì)于平移、旋轉(zhuǎn)、縮放,以及混合攻擊均可以完全抵抗。以旋轉(zhuǎn)攻擊為例,仿真結(jié)果如圖3所示,可以準(zhǔn)確無(wú)誤地提取出水印圖像(BER=0,NC=1),說(shuō)明文中算法抗幾何仿射變換攻擊的魯棒性強(qiáng)。
3.2.3 簡(jiǎn)化攻擊
以Guy模型為例,對(duì)嵌入水印的三維點(diǎn)云模型進(jìn)行簡(jiǎn)化攻擊,簡(jiǎn)化率分別為20%和50%。實(shí)驗(yàn)結(jié)果如圖3所示,當(dāng)簡(jiǎn)化攻擊為50%時(shí),點(diǎn)云模型的視覺(jué)感受變化較大,導(dǎo)致水印圖像無(wú)法清晰識(shí)別。
為了進(jìn)一步驗(yàn)證簡(jiǎn)化攻擊的魯棒性,以Guy模型為例,與DCT算法、GFT算法相比,文中算法的NC值始終高于對(duì)比算法,是因?yàn)樵趯?duì)模型進(jìn)行三維仿射不變性處理時(shí),能夠弱化簡(jiǎn)化攻擊后點(diǎn)云模型頂點(diǎn)缺失帶來(lái)的影響,使得文中算法可以有效抵抗簡(jiǎn)化攻擊,有效提高了簡(jiǎn)化攻擊的魯棒性,如圖5所示。
圖5 NC對(duì)比衡量簡(jiǎn)化攻擊的魯棒性
3.2.4 剪切攻擊
剪切攻擊是通過(guò)移除點(diǎn)云模型的一部分區(qū)域以破壞點(diǎn)云模型的形態(tài),文中算法是通過(guò)與z軸平均值鄰近的坐標(biāo)作為中心點(diǎn)進(jìn)行投影,盡可能減少此攻擊對(duì)水印提取的影響。分別對(duì)模型進(jìn)行20%、30%的剪切,實(shí)驗(yàn)結(jié)果如圖3所示,剪切率較為50%時(shí),也能提取出水印圖像大致信息。
由于DCT算法未對(duì)Guy、Vase和Lion_statue模型進(jìn)行剪切攻擊的測(cè)試,故無(wú)法分析DCT算法抗剪切攻擊的魯棒性,因此文中算法只能與GFT算法進(jìn)行分析比較,如表3所示。文中算法的BER值均處于10-2,在剪切率小于50%的情況下,可以清楚地識(shí)別水印圖像,對(duì)剪切攻擊表現(xiàn)出較好的魯棒性。
表3 與GFT算法在模型剪切攻擊中BER結(jié)果對(duì)比
提出了一種針對(duì)三維彩色點(diǎn)云模型的數(shù)字水印算法。利用三維仿射不變性對(duì)三維彩色點(diǎn)云模型進(jìn)行坐標(biāo)變換,不僅可以抵抗仿射變換的攻擊,也使得投影圖像具有唯一性。對(duì)投影圖像進(jìn)行RDWT變換得到LL子帶,對(duì)LL子帶進(jìn)行SVD,并將水印嵌入矩陣U2,1和U3,1中,有利于保證水印的透明性。實(shí)驗(yàn)結(jié)果表明,該算法對(duì)幾何仿射變換、簡(jiǎn)化、剪切等變換攻擊,取得了滿(mǎn)意的結(jié)果。今后工作將進(jìn)一步提高算法對(duì)剪切、簡(jiǎn)化攻擊的魯棒性。