李丹陽,李 琳,李青巖
(1.集美大學(xué)理學(xué)院,福建 廈門 361021;2.集美大學(xué)計(jì)算機(jī)工程學(xué)院,福建 廈門 361021)
隨著互聯(lián)網(wǎng)的蓬勃發(fā)展,數(shù)字圖像信息安全問題受到了廣泛關(guān)注。數(shù)字圖像信息安全技術(shù)的研究主要包括兩方面:圖像加密和圖像信息隱藏[1]。通常,信息隱藏技術(shù)會(huì)導(dǎo)致圖像的永久性失真。為了解決這個(gè)問題,可逆信息隱藏(reversible data hiding,RDH)技術(shù)被提出,并引起了許多學(xué)者的注意。可逆信息隱藏技術(shù)可以從載密的圖像中準(zhǔn)確無誤地提取嵌入的信息并恢復(fù)載體圖像。它在軍事、醫(yī)療、法律服務(wù)等內(nèi)容敏感領(lǐng)域有著重要的應(yīng)用需求[2]。
現(xiàn)有RDH技術(shù)大致可分為三類,分別基于無損壓縮(lossless compression,LC)[3]、差分?jǐn)U展(difference expance,DE)[4-5]和直方圖移位(histogram shifting,HS)[6-8]。無損壓縮方法對(duì)載體圖像進(jìn)行壓縮獲得空間以嵌入信息,但這種方法只能提供有限的嵌入容量。DE擴(kuò)展技術(shù)在像素對(duì)上執(zhí)行,通過擴(kuò)展其差分將1 bit信息嵌入到每個(gè)選定的像素對(duì)中。與基于無損壓縮的RDH相比,Tian[4]的基于差分?jǐn)U展的方法可以提供更高的嵌入容量和峰值信噪比。隨后,Thodi等[5]提出預(yù)測(cè)誤差擴(kuò)展方法(prediction error expansion,PEE),用預(yù)測(cè)誤差代替差分?jǐn)U展中的差值,PEE可以更加充分地利用圖像的空間冗余。Ni等[6]提出直方圖移位的方案,先生成直方圖,然后通過修改直方圖嵌入秘密信息,但是該方法的嵌入容量受生成直方圖的峰值位的像素?cái)?shù)影響。后來,研究者們將HS與PEE結(jié)合,構(gòu)造了許多改進(jìn)的方法。但是基于單直方圖的方法,僅僅是收集圖像的每個(gè)像素的預(yù)測(cè)誤差,并未充分考慮到圖像局部紋理的變化。于是,2015年Li等[9]提出基于多直方圖修改的可逆信息隱藏技術(shù)(multiple histogram modification,MHM),根據(jù)每個(gè)像素的上下文計(jì)算其復(fù)雜度,并將具有給定復(fù)雜度的像素收集在一起來生成預(yù)測(cè)誤差直方圖(prediction error histogram,PEH),通過設(shè)置復(fù)雜度閾值,生成直方圖序列,然后采用暴力搜索的方法在每個(gè)生成的直方圖中選擇兩個(gè)擴(kuò)展位(嵌入點(diǎn))實(shí)現(xiàn)數(shù)據(jù)嵌入。MHM比其他基于單個(gè)PEH的方法具有更好的性能,特別是在低有效載荷方面。基于多直方圖的可逆信息隱藏,關(guān)鍵是將具有相似上下文特征的像素聚集到相同的直方圖中。Wang等[10]提出一種新的多直方圖可逆信息隱藏方案,它通過設(shè)計(jì)一系列特征,使用模糊C-均值聚類,從而構(gòu)造多直方圖。文獻(xiàn)[11]在文獻(xiàn)[10]的基礎(chǔ)上優(yōu)化聚類的特征,使用K-Means聚類構(gòu)造多直方圖。盡管他們的方法與文獻(xiàn)[9]相比,性能有所提升,但是為了保證可逆性,這些方法都采用兩階段嵌入的技術(shù),只有與目標(biāo)像素不同層的像素被用來設(shè)計(jì)特征,因此忽略了目標(biāo)像素與其同層像素之間的相關(guān)關(guān)系。隨機(jī)森林[12]是一種通過集成學(xué)習(xí)的思想構(gòu)造多棵獨(dú)立決策樹的算法,其輸出的結(jié)果由隨機(jī)森林中每棵決策樹輸出結(jié)果投票而定。由于隨機(jī)森林是用一種隨機(jī)方式建立的,可以降低模型過擬合的風(fēng)險(xiǎn)。為了充分利用目標(biāo)像素與其周圍像素之間的相關(guān)性,本文提出一種基于隨機(jī)森林的多直方圖構(gòu)建方法。
本文提出的基于隨機(jī)森林的多直方圖生成方法主要分為兩個(gè)步驟:聚類和訓(xùn)練隨機(jī)森林。隨機(jī)森林分類器通常需要大量的數(shù)據(jù)進(jìn)行訓(xùn)練,和文獻(xiàn)[13]一樣,本研究以Kodak圖像集的24張圖像作為訓(xùn)練數(shù)據(jù)。首先,設(shè)計(jì)能代表目標(biāo)像素上下文像素分布的聚類特征,使用K-Means聚類算法標(biāo)記具有相似上下文的像素;然后,從圖像數(shù)據(jù)集中提取大量的上下文信息,即目標(biāo)像素周圍的像素特征,作為隨機(jī)森林的輸入,以聚類得到的結(jié)果標(biāo)簽作為隨機(jī)森林的目標(biāo)輸出;最后,調(diào)整隨機(jī)森林的相關(guān)參數(shù),訓(xùn)練得到最優(yōu)的隨機(jī)森林模型。
基于預(yù)測(cè)誤差擴(kuò)展和直方圖移位的可逆信息隱藏,直方圖越清晰,其性能越好。因此,MHM方法中多直方圖生成的關(guān)鍵點(diǎn)是使生成的每個(gè)直方圖盡可能地清晰,也就是說,具有相似上下文的像素應(yīng)該盡可能聚在同一類。目標(biāo)像素所在塊的局部特征設(shè)計(jì)得越精確,聚類結(jié)果也會(huì)越精確。在Wang等[10]的方法中,雖然設(shè)計(jì)了10個(gè)特征用于聚類,但是為了保證可逆性,這10個(gè)特征的計(jì)算只涉及到與目標(biāo)像素不同層的像素,有一些與目標(biāo)像素鄰近但屬于同層的像素值并未考慮到(如圖1白色集合中的像素)。因而本研究認(rèn)為這些特征不能完全反映每個(gè)區(qū)塊的局部特征。由于本文所提出的方法的可逆性由隨機(jī)森林的輸入特征保證,因此設(shè)計(jì)的聚類特征可以充分利用目標(biāo)像素周圍的像素,包括同層的鄰近像素。
在本文中,設(shè)計(jì)了4個(gè)與每個(gè)塊的紋理復(fù)雜度密切相關(guān)的新特征,即:1)以目標(biāo)像素xi為中心的3 px×3 px像素塊的方差fi,1;2)以目標(biāo)像素xi為中心的5 px×5 px像素塊的熵fi,2;3)以目標(biāo)像素xi為中心的5 px×5 px像素塊的復(fù)雜度,即像素塊中水平和垂直相鄰像素的絕對(duì)差值之和fi,3;4)局部均值fi,4。這4個(gè)特征充分利用目標(biāo)像素周圍的像素,提高了聚類性能。
本算法用方差來衡量像素塊中像素值的波動(dòng)情況。方差越大,說明像素塊中的像素值波動(dòng)越大,像素塊中像素值分布越復(fù)雜。方差計(jì)算公式為:
(1)
(2)
信息熵是用來衡量不確定性的指標(biāo),情況越混亂,信息熵也就越大,反之越小。在這里可以理解為,熵越大,像素塊像素值分布的越混亂,圖像越復(fù)雜;反之,熵越小,像素塊像素值分布越集中,圖像越平滑。熵計(jì)算公式為:
(3)
其中:count(bk/sk)代表像素值bk/sk在以目標(biāo)像素xi為中心的5 px×5 px像素塊中出現(xiàn)的次數(shù)。
復(fù)雜度計(jì)算公式為:
fi,3=w3(|s5-b7|+|b7-s8|+|s8-b9|+|b9-s10|+|b5-s1|+|b2-s3|+|s3-b11|+|s6-b1|+|b1-x|+|x-b3|+|b3-s11|+|b6-s2|+|s2-b4|+|b4-s4|+|s4-b12|+|s7-b8|+|b8-s9|+|s9-b10|+|b10-s12|+|s5-b5|+|b5-s6|+|s6-b6|+|b6-s7|+|b7-s1|+|s1-b1|+|b1-s2|+|s2-b8|++|s8-b2|+|b2-x|+|x-b4|+|b4-s9|+|b9-s3|+|s3-b3|)+|b3-s4|+|s4-b10|+|s10-b11|+|b11-s11|+|s11-b12|+|b12-s12|。
(4)
局部均值計(jì)算公式為:
(5)
式(1)~(5)中:w1、w2、w3、w4、w5為權(quán)重值,權(quán)重值初始值都為1,隨后根據(jù)多次實(shí)驗(yàn)的結(jié)果進(jìn)行調(diào)整,以得到更好的聚類結(jié)果;聚類的類別數(shù)參考了文獻(xiàn)[13],設(shè)置為18。
隨機(jī)森林模型訓(xùn)練速度快,且模型簡(jiǎn)單易于理解,綜合考慮擬合能力和訓(xùn)練難度,本文選擇用隨機(jī)森林模型構(gòu)建多直方圖。隨機(jī)森林的構(gòu)造包含6個(gè)步驟:
1)從原始訓(xùn)練集中隨機(jī)有放回地選擇k條數(shù)據(jù);
2)從原始的K維特征中,隨機(jī)選取m個(gè)特征做節(jié)點(diǎn)分裂屬性;
3)訓(xùn)練決策樹;
4)重復(fù)1)~3)步構(gòu)造n個(gè)決策樹;
5)集成上述步驟生成的n個(gè)決策樹,構(gòu)建隨機(jī)森林;
6)以n個(gè)決策樹預(yù)測(cè)結(jié)果的眾數(shù)作為隨機(jī)森林的最終輸出結(jié)果。
在本算法中,以Kodak24圖像集的24張圖像為訓(xùn)練數(shù)據(jù),以由目標(biāo)像素x上下文像素組成的向量B=(b1,b2,…,b12)(見圖1)作為輸入特征,以聚類得到的類別標(biāo)簽為輸出目標(biāo),構(gòu)建隨機(jī)森林分類模型。隨機(jī)森林的輸入特征均為與目標(biāo)像素不同層的像素,因此在嵌入信息前后,對(duì)于同一個(gè)目標(biāo)像素隨機(jī)森林可以得到相同的預(yù)測(cè)類別,使可逆性得以保證。
在可逆信息隱藏中,為了確保接收方可以無損提取信息和恢復(fù)圖像,需要收集一部分輔助信息,作為有效負(fù)載的一部分嵌入到載體圖像中。本方法中需要使用的輔助信息包括:
1)壓縮后的位置圖。在本方法中,由于每個(gè)像素值最多加或減1個(gè)單位,為了避免像素值超過[0,255]的范圍,發(fā)生上溢或者下溢,像素值為255的將更改為254,像素值為0的將更改為1。位置圖用來記錄這些像素的位置,更改的像素在位置圖中標(biāo)記為1,而其他像素標(biāo)記為0,然后使用算術(shù)編碼方法對(duì)位置圖進(jìn)行壓縮。
2)位置圖的長(zhǎng)度(log2N,bit,N為目標(biāo)圖像像素?cái)?shù)目的一半)。
3)最優(yōu)嵌入點(diǎn)bn,1≤n≤M(4M,bit,M為生成直方圖的個(gè)數(shù),M=18)。
4)隨機(jī)森林分類得到的標(biāo)簽與按照熵排序之后的標(biāo)簽對(duì)應(yīng)關(guān)系(5M,bit)。
5)嵌入結(jié)束的位置Nend(log2N,bit)。
本文采取基于菱形預(yù)測(cè)的雙層嵌入技術(shù),在嵌入信息時(shí),首先要把圖像像素劃分為兩層:空白層和陰影層,如圖1所示。第一層首先嵌入一半有效載荷,剩下的一半嵌入第二層。由于第二層的嵌入過程與第一層相似,因此本研究?jī)H以第一層為例,闡述具體的嵌入過程(見圖2)。為了保證可逆,要保留前后兩行前后兩列的像素,用于嵌入輔助信息。
1)菱形預(yù)測(cè)
2)根據(jù)隨機(jī)森林分類模型構(gòu)建M個(gè)子直方圖
根據(jù)1.2設(shè)計(jì)的隨機(jī)森林模型,提取隨機(jī)森林需要的12個(gè)上下文像素作為輸入特征,將所有預(yù)測(cè)誤差分為M類,每個(gè)類將生成一個(gè)直方圖。生成M個(gè)直方圖之后,計(jì)算每個(gè)直方圖的熵,按照熵從低到高的順序重新對(duì)直方圖進(jìn)行排序,決定嵌入信息的先后順序。
3)選擇M對(duì)嵌入點(diǎn)
為了滿足率失真模型,即在嵌入容量滿足給定的有效載荷情況下,使嵌入失真與嵌入容量的比率最小。使用文獻(xiàn)[13]中選擇擴(kuò)展嵌入點(diǎn)的方法,為每一個(gè)直方圖確定一對(duì)嵌入點(diǎn),用(ak,bk)表示。
4)嵌入信息——基于直方圖平移
5)獲得載密圖像
為了保證可逆,信息的提取過程要與信息的嵌入過程相反,需要先提取第二層的嵌入信息,再提取第一層的。因?yàn)樘崛〉牟襟E相似,本文僅以第二層的數(shù)據(jù)提取過程為例,展開詳細(xì)介紹。
與嵌入信息時(shí)相同,提取隨機(jī)森林需要的12個(gè)上下文像素,利用隨機(jī)森林模型將所有預(yù)測(cè)誤差分為M類,每個(gè)類生成一個(gè)直方圖。
根據(jù)輔助信息獲取直方圖的嵌入順序和每個(gè)直方圖的嵌入點(diǎn),提取嵌入的信息。以像素xi′的提取過程為例,假設(shè)xi′屬于直方圖hz,對(duì)應(yīng)的嵌入點(diǎn)為(az,bz),預(yù)測(cè)誤差為ei′,可以根據(jù)式(6)~(8)提取嵌入的秘密信息并恢復(fù)原始像素。
(6)
(7)
(8)
本文的隨機(jī)森林模型通過scikit-learn機(jī)器學(xué)習(xí)框架用Python3.8構(gòu)建,RDH過程在Matlab R2018a上完成。隨機(jī)森林模型的構(gòu)建需要一定的數(shù)據(jù)支持,即使圖像像素不同,上下文分布特征也會(huì)具有很高的相似性,因此以Kodak24圖像集的24張圖像為訓(xùn)練數(shù)據(jù),構(gòu)建隨機(jī)森林模型。為了評(píng)估所提出方案的性能,自USC-SIPI圖像數(shù)據(jù)庫中選擇4張具有不同紋理特征的512 px×512 px像素大小的灰度圖像,即Lena、Baboon、Boat、Elaine。
為了說明所提出方案的優(yōu)越性,將本方案與Li等的傳統(tǒng)多直方圖方法[9]、Kim等的基于傾斜直方圖的方法[14]、Sachnev等基于菱形預(yù)測(cè)的方法[6]、Qu等基于像素值排序的方法[15]、Wu等基于改進(jìn)像素值排序的方法[16]等5種不同的先進(jìn)方案進(jìn)行了率失真性能對(duì)比實(shí)驗(yàn)。圖3是幾種不同方法不同嵌入容量(embedding capacity,EC)的峰值信噪比(peak signal noise ratio,PSNR)曲線。PSNR是常用的可逆信息隱藏方案評(píng)價(jià)指標(biāo),PSNR的值越高,說明載密圖像和原始載體圖像越相似,所對(duì)應(yīng)的方法性能就越好。
從圖3可以看出,本文提出的方法在大部分情況下都優(yōu)于4個(gè)文獻(xiàn)[6,14-16]的方法,原因在于這4種方法都是基于單一直方圖進(jìn)行信息嵌入,直方圖被固定地修改,在建立直方圖時(shí)并未考慮到圖像像素分布的差異。對(duì)于圖像Elaine,在低嵌入容量時(shí),文獻(xiàn)[16]的PSNR值雖然高于本文的方法,但是從圖3中可以看出,文獻(xiàn)[16]的最大嵌入容量較小,在實(shí)際應(yīng)用過程中可能不能滿足嵌入容量要求。在大多數(shù)情況下,本文提出的方法優(yōu)于Li等提出的傳統(tǒng)多直方圖方法[9]。文獻(xiàn)[9]未考慮圖像內(nèi)容的差異,而是根據(jù)目標(biāo)像素的局部像素分布復(fù)雜程度平均劃分像素,從而生成多直方圖。本文提出的隨機(jī)森林智能分類器可以通過學(xué)習(xí)先驗(yàn)知識(shí),根據(jù)圖像內(nèi)容自適應(yīng)地構(gòu)建多直方圖,因此取得了更好的性能。以Lena圖為例,當(dāng)嵌入容量為10 000 bit時(shí),本方案的峰值信噪比比Li等[9]的方案提高了約0.27 dB,比其余4個(gè)方案也都更好。
本文采用更能代表局部像素分布情況的特征,利用聚類算法標(biāo)記目標(biāo)像素,訓(xùn)練隨機(jī)森林分類模型用于構(gòu)建多直方圖。與傳統(tǒng)的基于多直方圖的可逆信息隱藏方案相比,本方法結(jié)合K-Means聚類和隨機(jī)森林機(jī)器學(xué)習(xí)算法,生成了更清晰的直方圖,從而實(shí)現(xiàn)高效的可逆信息隱藏。未來,將進(jìn)一步研究如何設(shè)計(jì)更好的聚類特征以及訓(xùn)練更高效的分類模型。
集美大學(xué)學(xué)報(bào)(自然科學(xué)版)2023年5期