張啟龍, 溫 濤,, 宋曉瑩, 孫 偉
(1.東北大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 遼寧 沈陽(yáng) 110169; 2.大連東軟信息學(xué)院 網(wǎng)絡(luò)安全與計(jì)算技術(shù)重點(diǎn)實(shí)驗(yàn)室, 遼寧 大連 116023)
隨著網(wǎng)絡(luò)技術(shù)和數(shù)字經(jīng)濟(jì)的迅猛發(fā)展,數(shù)字內(nèi)容傳播存在著大量的盜版和侵權(quán)問(wèn)題. 為了增強(qiáng)數(shù)字內(nèi)容安全和版權(quán)保護(hù),信息隱藏作為一種強(qiáng)有力信息安全保護(hù)技術(shù)日益受到重視. 不同于傳統(tǒng)的信息隱藏技術(shù),可逆信息隱藏更加適用于一些對(duì)內(nèi)容失真敏感的領(lǐng)域,諸如醫(yī)學(xué)、軍事、遙感和司法等,因?yàn)槠漭d體內(nèi)容的永久性失真是不能接受的.可逆信息隱藏允許接收端在提取秘密信息之后,能夠恢復(fù)原始載體,消除載體失真.因此,在很多的應(yīng)用場(chǎng)合,如醫(yī)療數(shù)據(jù)的隱私保護(hù)、多媒體信息標(biāo)注,以及遙感、軍事圖像的無(wú)損隱秘傳輸?shù)?,都有著重要的?yīng)用價(jià)值.
近些年來(lái),可逆信息隱藏技術(shù)日益受到研究人員的廣泛關(guān)注,大量的研究成果不斷發(fā)表,使得可逆信息隱藏的相關(guān)研究得以不斷地深入和發(fā)展[1].目前,從嵌入原理的角度劃分,已有的可逆信息隱藏主要包括基于無(wú)損壓縮的可逆信息隱藏、基于差值擴(kuò)展的可逆信息隱藏、基于直方圖平移的可逆信息隱藏.從待嵌入載體對(duì)象的類型區(qū)分,可逆信息隱藏研究涉及的載體包括圖像、音頻、視頻、三維模型等.具體來(lái)說(shuō),當(dāng)前大多數(shù)研究工作是以圖像為載體對(duì)象,從最初的灰度圖像逐漸擴(kuò)展到彩色圖像和加密圖像.同時(shí)進(jìn)一步擴(kuò)展到音頻、視頻、三維模型等其他載體類型[2-3].相較于以圖像為載體的可逆信息隱藏,針對(duì)其他載體類型的研究工作還相對(duì)較少.
基于直方圖平移技術(shù)的可逆信息隱藏算法最先由Ni等[4]提出,其主要思想是利用載體圖像的直方圖中的峰值bin隱藏秘密數(shù)據(jù).因?yàn)閷?duì)原始像素的最大修改量為1,所以得到的載密圖像質(zhì)量較好,且該算法實(shí)現(xiàn)的復(fù)雜度不高.之后,更多研究工作,如文獻(xiàn)[5-7]以直方圖平移技術(shù)為基礎(chǔ)加以改進(jìn)和擴(kuò)展.而Jhou等[8]將直方圖平移思想應(yīng)用到三維模型,選擇三維模型所有頂點(diǎn)坐標(biāo)值的最后若干位數(shù)字構(gòu)成直方圖,并將消息嵌入到直方圖峰值bin對(duì)應(yīng)的坐標(biāo).為抵抗頂點(diǎn)重排序攻擊,根據(jù)每個(gè)頂點(diǎn)到網(wǎng)格模型重心的距離大小排序,從而決定頂點(diǎn)的嵌入順序.Chuang等[9]提出了一種具有仿射變換不變性的可逆信息隱藏算法.該算法先計(jì)算三維模型中頂點(diǎn)到中心點(diǎn)的距離,歸一化距離來(lái)構(gòu)建直方圖,并嵌入信息,該算法能夠抵抗RST攻擊.Huang等[10]提出了一種基于直方圖平移的三維模型可逆信息隱藏算法,該算法采用修改的廣度優(yōu)先搜索確定頂點(diǎn)順序,再計(jì)算每個(gè)頂點(diǎn)到固定初始點(diǎn)的距離,然后基于相鄰頂點(diǎn)的幾何相似性,通過(guò)相鄰頂點(diǎn)的上述距離構(gòu)建差值直方圖,再通過(guò)平移直方圖實(shí)現(xiàn)信息的嵌入.從實(shí)驗(yàn)結(jié)果看,相比之前的兩個(gè)算法,文獻(xiàn)[10]的算法增大了信息嵌入容量,提升了抵抗相似性攻擊和頂點(diǎn)重排序的魯棒性.
綜上所述,以直方圖平移為框架的可逆信息隱藏算法被眾多研究人員進(jìn)行廣泛研究.其特點(diǎn)是載密對(duì)象的視覺(jué)質(zhì)量較好,雖然嵌入容量有限,但算法復(fù)雜度低.特別是目前許多的應(yīng)用場(chǎng)景并不需要高容量嵌入,低容量嵌入較符合實(shí)際需求.然而,現(xiàn)有算法多數(shù)面向圖像載體,并不能直接應(yīng)用于三維模型載體.這是因?yàn)橄啾扔趫D像,三維模型具有高維度、數(shù)據(jù)規(guī)模大、拓?fù)浣Y(jié)構(gòu)復(fù)雜等特點(diǎn).目前,三維模型可逆信息隱藏的相關(guān)研究還處于初始階段,在算法性能和應(yīng)用場(chǎng)景上都存在很大提升空間.因此,本文提出了一種基于自適應(yīng)直方圖修改的網(wǎng)格可逆信息隱藏算法.首先,利用網(wǎng)格相鄰頂點(diǎn)之間的關(guān)系和均值預(yù)測(cè)方法獲得預(yù)測(cè)誤差序列,對(duì)應(yīng)的預(yù)測(cè)誤差直方圖相較于位置坐標(biāo)值直方圖更加陡峭,有利于增加嵌入容量和減少模型失真.其次,利用預(yù)測(cè)誤差直方圖的分布特點(diǎn),在嵌入?yún)^(qū)域內(nèi)直接使用兩組指定的預(yù)測(cè)誤差嵌入秘密信息,并通過(guò)左右移動(dòng)其他預(yù)測(cè)誤差形成嵌入空間,這種直方圖修改方案無(wú)需專門搜索可用的峰值/零值bin,同時(shí)提供了可觀的嵌入容量.另外,根據(jù)載荷大小設(shè)置自適應(yīng)調(diào)節(jié)參數(shù),動(dòng)態(tài)選取合適的嵌入?yún)^(qū)域,避免過(guò)多移動(dòng)預(yù)測(cè)誤差帶來(lái)額外的失真.最后,實(shí)驗(yàn)結(jié)果表明所提算法能夠有效實(shí)現(xiàn)秘密信息的嵌入和提取,以及網(wǎng)格模型的恢復(fù),對(duì)比已有的算法,載密模型能保持較高的視覺(jué)質(zhì)量,適用于低嵌入容量的可逆信息隱藏.
圖像直方圖平移算法最早由Ni等[4]提出,如圖1所示,其主要操作包括:直方圖構(gòu)造,峰值/零值bin選擇,像素遍歷掃描,像素值加減等.具體來(lái)講,該算法首先構(gòu)建整個(gè)圖像的像素值直方圖,搜索直方圖并選出峰值bin(對(duì)應(yīng)的像素值頻數(shù)最大)和零值bin(對(duì)應(yīng)的像素值頻數(shù)最小,一般為0).將直方圖的峰值bin和零值bin之間的像素移位,從而使峰值bin的鄰域產(chǎn)生直方圖間隙.數(shù)據(jù)嵌入時(shí),掃描載體圖像中直方圖峰值bin的像素,如果待嵌入的比特信息為0,則峰值bin的像素值保持不變;如果待嵌入的比特信息為1,則峰值bin的像素值將變?yōu)橹狈綀D間隙對(duì)應(yīng)的像素值.數(shù)據(jù)提取時(shí),如果遇到原有峰值bin的像素值,則提取比特信息為0,如果遇到原有直方圖間隙的像素值,則提取比特信息為1.最后,將峰值bin之外的像素反向移位,使載體圖像恢復(fù)為原始狀態(tài).
圖1 直方圖平移
由于信息的嵌入過(guò)程對(duì)載體圖像的修改很小,所以直方圖平移算法往往具有較低的計(jì)算復(fù)雜度和較高的圖像質(zhì)量.其不足是嵌入容量受到直方圖峰值bin的限制.尤其是對(duì)于相對(duì)平坦的直方圖,可嵌入容量會(huì)特別小.另外,需要額外傳輸有關(guān)峰值/零值bin的邊信息,影響了嵌入容量,在很大程度上降低了算法的實(shí)用性.
近年來(lái),隨著三維掃描技術(shù)、計(jì)算機(jī)性能和計(jì)算機(jī)圖形學(xué)的快速發(fā)展,三維模型在許多行業(yè)領(lǐng)域中得到了廣泛的應(yīng)用.通過(guò)三維掃描儀掃描或者通過(guò)一些三維建模軟件就可以獲得所需的三維模型數(shù)據(jù),并將其保存為特定的文件格式,如OBJ,OFF,PLY,WRL,DWG等.基本上這些格式的三維模型都是以頂點(diǎn)集合和面集合為基礎(chǔ)單元組成,頂點(diǎn)的位置坐標(biāo)是其中的重要屬性信息,通常作為嵌入單元用于信息的隱藏.
圖像是通過(guò)修改像素值來(lái)嵌入信息,三維網(wǎng)格模型可通過(guò)修改頂點(diǎn)坐標(biāo)值來(lái)嵌入信息.本文提出的自適應(yīng)直方圖修改算法,采用頂點(diǎn)位置坐標(biāo)的預(yù)測(cè)誤差作為載體序列,根據(jù)載荷大小自適應(yīng)選取載體序列的特定嵌入?yún)^(qū)域并構(gòu)造直方圖,在直方圖原點(diǎn)附近指定的兩組預(yù)測(cè)誤差作為嵌入對(duì)象,分別向左右兩側(cè)移動(dòng)其他的預(yù)測(cè)誤差,從而形成直方圖間隙用于嵌入信息.其優(yōu)勢(shì)在于相比位置坐標(biāo)值直方圖,預(yù)測(cè)誤差直方圖不易受到網(wǎng)格載體形狀的影響,避免了搜索峰值bin,同時(shí)減少不必要移動(dòng)引入的失真,更加適合低嵌入容量要求的情況.
基于直方圖的可逆信息隱藏算法首先需要獲得待嵌入載體序列,構(gòu)造對(duì)應(yīng)的統(tǒng)計(jì)直方圖,通過(guò)特定方式修改直方圖實(shí)現(xiàn)信息嵌入.本文通過(guò)網(wǎng)格頂點(diǎn)位置預(yù)測(cè)獲得預(yù)測(cè)誤差序列,從而構(gòu)造預(yù)測(cè)誤差直方圖.相對(duì)于距離差值直方圖[10]和位置坐標(biāo)值直方圖[8],預(yù)測(cè)誤差直方圖具有更加陡峭的拉普拉斯分布,有利于提高嵌入容量和減少失真.直方圖的構(gòu)造過(guò)程主要如下:計(jì)算待嵌入頂點(diǎn)的預(yù)測(cè)位置和預(yù)測(cè)誤差向量,得到預(yù)測(cè)誤差序列;最后,計(jì)算預(yù)測(cè)誤差序列中特定嵌入?yún)^(qū)域內(nèi)預(yù)測(cè)誤差值的頻數(shù)來(lái)構(gòu)造預(yù)測(cè)誤差直方圖.
(1)
(2)
3)預(yù)測(cè)誤差序列E及其直方圖PEH.所有待嵌入頂點(diǎn)的預(yù)測(cè)誤差向量構(gòu)成了預(yù)測(cè)誤差序列E.計(jì)算序列E在選定區(qū)域內(nèi)預(yù)測(cè)誤差值的頻數(shù),就可獲得預(yù)測(cè)誤差直方圖PEH,而具體的選定區(qū)域根據(jù)實(shí)際載荷大小來(lái)自適應(yīng)確定.通常,預(yù)測(cè)誤差直方圖能夠反映載體序列的信息嵌入能力.預(yù)測(cè)誤差直方圖具有陡峭的拉普拉斯分布,有利于獲得更大的嵌入容量,并且減少直方圖平移引入的失真.
一般來(lái)說(shuō),預(yù)測(cè)誤差直方圖通常具有類似0均值的拉普拉斯分布,這表明在直方圖原點(diǎn)周邊的預(yù)測(cè)誤差通常具有頻數(shù)極大值.本文直接采用兩組指定的預(yù)測(cè)誤差eint=0和eint=-1代替峰值bin,分別移動(dòng)左右兩側(cè)其余的預(yù)測(cè)誤差,在eint=1 和eint=-2處形成直方圖間隙以留出嵌入空間,再把信息嵌入到上述兩個(gè)預(yù)測(cè)誤差中.其好處在于避免了多對(duì)峰值bin的搜索過(guò)程,無(wú)需將峰值bin的相關(guān)信息傳遞給接收端,同時(shí)又保持可觀的嵌入容量.
(3)
在接收端,提取的嵌入信息b如式(4)所示:
(4)
而原始的預(yù)測(cè)誤差eint可通過(guò)式(5)得到恢復(fù),
(5)
分析直方圖平移算法可知,尋找直方圖峰值bin是為了尋找可嵌入的預(yù)測(cè)誤差,從而確定其嵌入容量的上限,然而,為了留出嵌入空間,算法必須先移動(dòng)其他的預(yù)測(cè)誤差形成直方圖間隙.當(dāng)載荷遠(yuǎn)小于嵌入容量上限時(shí),需要移動(dòng)較多的預(yù)測(cè)誤差形成直方圖間隙,引入的修改失真相對(duì)較大,從而導(dǎo)致載體視覺(jué)質(zhì)量的不必要下降.所以,改進(jìn)算法性能的關(guān)鍵是如何在滿足載荷的前提下盡量減少預(yù)測(cè)誤差的移動(dòng),從而避免不必要的載體失真.因此,本文采用了自適應(yīng)調(diào)節(jié)參數(shù),能夠根據(jù)載荷大小的變化來(lái)動(dòng)態(tài)地選取預(yù)測(cè)誤差序列的特定嵌入?yún)^(qū)域,最終避免過(guò)多地移動(dòng)預(yù)測(cè)誤差引入的失真,進(jìn)而提高載體的視覺(jué)質(zhì)量.
假定待嵌入載體的預(yù)測(cè)誤差序列E,先從起始位置選取長(zhǎng)度為60的嵌入?yún)^(qū)域EH,再接著選取長(zhǎng)度為Q的嵌入?yún)^(qū)域EQ.其中,EH用于嵌入輔助信息,包括自適應(yīng)調(diào)節(jié)參數(shù)Q,載荷大小|P|.而EQ用于構(gòu)造直方圖以嵌入秘密信息和EH中的原始LSB比特流.
所需的輔助信息包括自適應(yīng)調(diào)節(jié)參數(shù)Q通過(guò)LSB替換方法嵌入到EH區(qū)域,并最終傳遞到接收端.為簡(jiǎn)單起見(jiàn),采用迭代搜索的方式來(lái)尋找自適應(yīng)調(diào)節(jié)參數(shù)Q的合適值,從而確定既滿足載荷大小又相對(duì)較小的嵌入?yún)^(qū)域EQ.參數(shù)Q的搜索過(guò)程如下:對(duì)于給定的載荷P,設(shè)置Q=|P|,選取長(zhǎng)度為Q的嵌入?yún)^(qū)域EQ構(gòu)造頻數(shù)直方圖,計(jì)算預(yù)測(cè)誤差為0和-1的頻數(shù)count.如果條件Q 本文提出的可逆信息隱藏算法的整體框架如圖2所示,主要分為兩個(gè)過(guò)程:嵌入過(guò)程和提取過(guò)程.在嵌入時(shí),首先通過(guò)網(wǎng)格預(yù)處理將原始模型所有頂點(diǎn)位置坐標(biāo)轉(zhuǎn)化為整數(shù)坐標(biāo);根據(jù)特定的頂點(diǎn)遍歷順序獲得待嵌入頂點(diǎn)序列.其次,利用網(wǎng)格頂點(diǎn)的幾何相似性,計(jì)算所有待嵌入頂點(diǎn)的預(yù)測(cè)位置,獲得預(yù)測(cè)誤差序列.再次,根據(jù)載荷大小來(lái)搜索合適的自適應(yīng)調(diào)節(jié)參數(shù),選取預(yù)測(cè)誤差序列的特定嵌入?yún)^(qū)域,構(gòu)造預(yù)測(cè)誤差直方圖.然后,將秘密信息和輔助信息分別嵌入到預(yù)測(cè)誤差序列.最后,修改網(wǎng)格模型中所有待嵌入頂點(diǎn)的坐標(biāo),獲得載密模型. 圖2 本文算法的整體框架 提取過(guò)程是上述嵌入過(guò)程的逆向處理.經(jīng)過(guò)載密模型的預(yù)處理后,先從預(yù)測(cè)誤差序列中提取輔助信息,再根據(jù)其中的參數(shù)來(lái)確定嵌入?yún)^(qū)域,構(gòu)造預(yù)測(cè)誤差直方圖,提取出秘密信息.最后,修改網(wǎng)格中所有被嵌入頂點(diǎn)的坐標(biāo),從而得到恢復(fù)的載體模型. 本文的實(shí)驗(yàn)運(yùn)行環(huán)境為Intel Core i3(2.50 GHz)處理器,6 GB內(nèi)存.在Windows 7操作系統(tǒng)采用C++程序語(yǔ)言實(shí)現(xiàn)算法.實(shí)驗(yàn)數(shù)據(jù)集來(lái)自斯坦福大學(xué)的3D Scanning Repository,實(shí)驗(yàn)?zāi)P桶˙unny,Horse,Armadillo,Hand,Dragon等,具體信息如表1所示.嵌入到網(wǎng)格模型的秘密信息用隨機(jī)生成的0/1字符串表示. 表1 網(wǎng)格模型的信息 圖3給出了5個(gè)網(wǎng)格模型的嵌入性能曲線.從圖中可以看出,隨嵌入量的增加,信噪比SNR值在不斷下降,這是因?yàn)樵黾忧度胄畔r(shí),必然會(huì)修改更多的坐標(biāo),從而導(dǎo)致視覺(jué)質(zhì)量的降低.當(dāng)嵌入量相同時(shí),不同三維模型的SNR值差別較大,這是因?yàn)槿S模型本身具有形狀復(fù)雜和高維度的特點(diǎn).另外,圖4展示了在不同信息嵌入量時(shí)Dragon模型的視覺(jué)效果.觀察可知,盡管本文采用的直方圖修改方式的信息嵌入量有限,但當(dāng)嵌入容量要求較低時(shí),該算法由于對(duì)頂點(diǎn)坐標(biāo)改動(dòng)較小,模型失真總體上不明顯,保持了較高的視覺(jué)質(zhì)量. 圖3 本文算法在不同的網(wǎng)格模型下的性能 表2為本文算法與文獻(xiàn)[9-10]中算法的比較,實(shí)驗(yàn)?zāi)P蜑锳rmadillo和Dragon.這3個(gè)算法都是基于直方圖平移的算法.信息嵌入量和模型失真分別采用嵌入率(ER)和歸一化均方根(NRMS)來(lái)度量.由表2可知,對(duì)于Armadillo模型,本文算法的嵌入率大于文獻(xiàn)[9-10]的算法,同時(shí)本文算法具有相對(duì)更小的模型失真.對(duì)于Dragon模型,本文算法的模型失真小于文獻(xiàn)[9]的算法且接近文獻(xiàn)[10]算法,同時(shí)本文算法的嵌入率最大,并達(dá)到文獻(xiàn)[10]算法的兩倍以上.因此,本文所提算法的性能優(yōu)于其他兩種基于直方圖平移的對(duì)比算法. 圖4 Dragon模型的視覺(jué)效果,信息嵌入量分別為10 000,15 000,20 000,25 000 b 表2 基于直方圖平移的3種算法的性能比較 注:bpv表示平均每個(gè)頂點(diǎn)嵌入的比特?cái)?shù). 表3為本文算法與Jiang等[12]的算法在5個(gè)模型上的性能比較.文獻(xiàn)[12]通過(guò)雙層預(yù)測(cè)方法,構(gòu)建預(yù)測(cè)誤差序列,采用遞歸編碼方式嵌入信息,并達(dá)到了較好的性能.從表3中可知,當(dāng)嵌入率較小時(shí),本文算法比文獻(xiàn)[12]中算法SNR值更高.這主要是因?yàn)楸疚牟捎庙旤c(diǎn)位置預(yù)測(cè)和自適應(yīng)的直方圖修改方法,能夠在信息嵌入時(shí)避免過(guò)多修改帶來(lái)模型失真,更適用于低嵌入量的情況.對(duì)比來(lái)說(shuō),文獻(xiàn)[12]的算法能滿足更大的嵌入率要求. 表3 本文算法與文獻(xiàn)[12]中算法的性能比較 本文提出了一種基于自適應(yīng)直方圖修改的網(wǎng)格可逆信息隱藏算法.該算法利用網(wǎng)格形狀的局部相似性來(lái)預(yù)測(cè)頂點(diǎn)位置,使得構(gòu)造的預(yù)測(cè)誤差直方圖更加陡峭,有利于增加嵌入容量和減少視覺(jué)失真.結(jié)合預(yù)測(cè)誤差直方圖的分布特點(diǎn),直接使用嵌入?yún)^(qū)域內(nèi)兩組指定的預(yù)測(cè)誤差來(lái)嵌入秘密信息,無(wú)需搜索可用的預(yù)測(cè)誤差,減少了輔助信息對(duì)可用嵌入容量的占用.另外,根據(jù)載荷大小自適應(yīng)動(dòng)態(tài)選取合適的嵌入?yún)^(qū)域,有效避免對(duì)預(yù)測(cè)誤差的過(guò)多移動(dòng),進(jìn)一步減少了載密模型的視覺(jué)失真.實(shí)驗(yàn)結(jié)果表明,本文提出的算法能夠在小容量嵌入時(shí)保持較高的視覺(jué)質(zhì)量,適用于高保真的網(wǎng)格可逆信息隱藏.2.5 嵌入和提取過(guò)程
3 實(shí)驗(yàn)分析
4 結(jié) 語(yǔ)