本發(fā)明涉及一種基于紋理合成的魯棒隱寫方法,它是利用信號處理和計算機(jī)技術(shù)分解數(shù)字圖像內(nèi)容,以便在紋理圖像合成的過程中嵌入秘密信息,從而提出一種穩(wěn)健的隱寫算法。
背景技術(shù):
隱寫術(shù)以圖像、音頻等數(shù)字媒體作為掩護(hù),把要發(fā)送的秘密消息嵌入到載體信號內(nèi)部,以不引起外界注意的方式,通過公共信道特別是互聯(lián)網(wǎng)進(jìn)行傳遞。傳統(tǒng)的隱寫方法是通過重寫載體的最不重要位來隱藏秘密數(shù)據(jù),載體失真度越高,截收者使用隱寫分析工具分析出秘密信息的風(fēng)險越高。而基于紋理合成的隱寫方法,在秘密信息嵌入前不需要載體,因此具有更好的魯棒性。
目前基于紋理合成提出的隱寫方法較少。首創(chuàng)者通過從紋理樣本中抽出彩色點(diǎn),點(diǎn)狀圖像的特征值和嵌入數(shù)據(jù)相對應(yīng),將秘密信息嵌入彩色點(diǎn)狀圖像中。將點(diǎn)狀圖像填入空白畫布,并用紋理樣本點(diǎn)填補(bǔ)空空白區(qū)域,完成紋理合成。另一種方法通過重采樣紋理圖像,在紋理合成過程中將候選塊映射到秘密位,以構(gòu)造新的紋理圖像。何種方法不盡相同,可參閱如下文獻(xiàn):
1.h.otoriands.kuriyama,data-embeddabletexturesynthesis,inproc.ofthe8thinternationalsymposiumonsmartgraphics,kyoto,japan,2007,pp.146-157.
2.h.otoriands.kuriyama,texturesynthesisformobiledatacommunications,ieeecomput.graph.appl.,vol.29,no.6,pp.74-81,2009.
3.k-cwuandc-mwang,steganographyusingreversibletexturesynthesis,ieeetrans.imagrprocess.,24(1):130-139,2015.
上述的隱寫方法構(gòu)造出的隱寫紋理圖像在樣式和嵌入數(shù)據(jù)率都較為可觀,然而隱寫圖像一旦經(jīng)過jpeg圖像壓縮,秘密信息提取的錯誤率也隨之提高,隱寫紋理圖像的魯棒性較差。
技術(shù)實(shí)現(xiàn)要素:
1.本發(fā)明的目的在于針對已有技術(shù)存在的不足,提供一種基于紋理合成的魯棒隱寫,本隱寫算法能夠抵抗jpeg圖像壓縮,提高隱寫圖像的魯棒性。
為達(dá)到以上目的,本發(fā)明的構(gòu)想是:
首先將源紋理圖像分為重疊的候選塊,通過分析它們的紋理將候選塊映射到多個分類。其次數(shù)據(jù)隱藏者使用密鑰將所選候選塊偽隨機(jī)分布于空白畫布,候選塊根據(jù)信息的一段進(jìn)行選擇。其余空白區(qū)域由所有候選塊中最為匹配塊進(jìn)行合成。在接收端,密鑰用于識別包含秘密比特的候選塊,提取的候選塊進(jìn)行紋理分析,重建多個分類。最終從塊中提取秘密信息。
根據(jù)上述發(fā)明構(gòu)想,本發(fā)明采用下述技術(shù)方案:
一種基于紋理合成的魯棒隱寫,其特征在于操作步驟如下:
(一)實(shí)現(xiàn)信息隱藏的具體步驟如下:
(1)使用的源紋理圖像大小為sr×sc,根據(jù)光柵掃描順序移動每個像素,將紋理圖像分為(sr-tr+1)·(sc-tc+1)個重疊塊。每一個塊的大小為tr×tc。我們將每一個候選塊進(jìn)一步分為內(nèi)核區(qū)域和邊界區(qū)域,內(nèi)核區(qū)域包含kr×kc像素,邊界長度在矩形長寬方向分別為bc和br。因此,共有(sr-tr+1)·(sc-tc+1)個內(nèi)核區(qū)域?qū)?yīng)于所有的候選塊。
(2)定義候選塊為{p1,p2,...,pn},其相對應(yīng)內(nèi)核區(qū)域為{r1,r2,...,rn},n=(sr-tr+1)·(sc-tc+1)。我們使用標(biāo)準(zhǔn)偏差評估內(nèi)核區(qū)域的復(fù)雜度:
[·]為取整操作符,k=1,2,...,n,其中ak表達(dá)式為:
(3)通過步驟(2)中得出的復(fù)雜度{d1,d2,...,dn},取出dmax和dmin。根據(jù)dmax和dmin,由公式(3-1)生成m個值{v1,v2,...,vm}:
根據(jù)公式(3-1)所生成的值,構(gòu)造包含候選塊的m組分類{π1,π2,...,πm}:
πi={pk|dk∈(vi-δ,vi+δ)}(3-2)
其中i=1,2,...,m,k=1,2,...,n,δ為滿足0≤δ<(dmax-dmin)/2m區(qū)間的任意數(shù)。我們使用每個分類來表示多個秘密比特。m組分類中的一組包含
(4)為隱藏秘密信息,我們將秘密信息轉(zhuǎn)化為二進(jìn)制比特流,并將秘密信息分為l段{b1,b2,...,bl},每段包含
(5)我們偽隨機(jī)產(chǎn)生l個整數(shù)對作為密鑰{(p1,q1),(p2,q2),...,(pl,ql)},其中1≤pi≤wr,1≤qj≤wc。整數(shù)對需要滿足以下兩個條件,首先,每組整數(shù)對互不相同;其次,對于任意兩組整數(shù)對,應(yīng)滿足pi-pj>1或者qi-qj>1。
(6)對于任意一段秘密信息bi(i=1,2,...,l),我們選擇分類
(7)畫布其余空白區(qū)域通過從(sr-tr+1)·(sc-tc+1)個候選塊中選出最合適候選塊進(jìn)行紋理合成。紋理合成所采用的算法是在“最小誤差邊界”法基礎(chǔ)上做輕微改變。通過迭代填充的方式來選擇候選塊填入空白區(qū)域,因和畫布已有塊具有重疊區(qū)域,計算重疊區(qū)域部分的最小均方差(mse)來確定填補(bǔ)候選塊。其具體步驟如下:
(7-1)對已有候選塊“c”進(jìn)行紋理合成。分別計算“c”和其上部候選塊“a”之間重疊區(qū)域的mse,以及“c”和其左部候選塊“b”之間重疊區(qū)域的mse。
(7-2)同時我們加入右部或者下部重疊區(qū)域的mse,進(jìn)行最佳候選塊的選擇。例如我們計算“c”和其下部候選塊“d”之間重疊區(qū)域的mse。
(7-3)計算重疊區(qū)域的最小成本路徑來確定縫合線,從“c”候選塊三個方向重疊區(qū)域的mse值找到最佳候選塊,來進(jìn)行畫布空白區(qū)域填補(bǔ),完成紋理合成。
(8)重復(fù)步驟(7)完成畫布空白區(qū)域填補(bǔ),最終生成所需隱寫紋理圖像。有上述步驟可知,本發(fā)明嵌入容量ce(bits)為:
(二)在數(shù)據(jù)接收端,接收者通過密鑰確定包含秘密信息候選塊所在畫布的位置。實(shí)現(xiàn)信息提取具體步驟如下:
(1)接收者從隱寫紋理圖像中提取出l個候選塊{q1,q2,...,ql},同時分離出相應(yīng)的l個內(nèi)核區(qū){u1,u2,...,ul},由公式(2-1)和公式(2-2)計算出標(biāo)準(zhǔn)偏差評估內(nèi)核區(qū)域的復(fù)雜度,定義其復(fù)雜度值為{g1,g2,...,gl},取值范圍由gmin到gmax。
(2)由于隱寫紋理圖像經(jīng)過jpeg圖像壓縮,接收者需重新構(gòu)建包含m個值的序列{v1′,v2′,...,vm′}:
(3)重新構(gòu)造包含候選塊的m組分類{λ1,λ2,...,λl}:
λi={qk|vk′∈[vi′-δ/2,vi′+δ/2]}
其中i=1,2,...,m,k=1,2,...,l,δ=(gmax-gmin)/m。
(4)對于每一個提取的候選塊qk(k=1,2,...,l),我們可以從候選塊中提取出
通過以上步驟,
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下評價性質(zhì)和顯著有點(diǎn):本發(fā)明合成紋理圖像的大小可根據(jù)嵌入信息的容量成比例調(diào)整,從而實(shí)現(xiàn)高嵌入率;由于紋理塊的復(fù)雜度,經(jīng)圖像壓縮后,紋理圖像所包含的秘密信息輕微的發(fā)生改變,秘密信息能夠從隱寫圖像中提取出來,本發(fā)明的隱寫算法能夠抵抗jpeg圖像壓縮,因此該發(fā)明能提高隱寫圖像的魯棒性。
附圖說明
圖1為本發(fā)明“基于紋理分析的魯棒隱寫”的流程框圖;
圖2為一個候選塊內(nèi)核區(qū)域以及邊界區(qū)域分布圖;
圖3為在空白畫布上畫入選中的候選塊。(a)為畫布中一個候選塊所在位置;(b)為一個包含100個候選塊,嵌入200bits秘密信息的畫布;
圖4為紋理合成畫布空白區(qū)域。(a)“最小誤差邊界”算法原理圖;(b)為本發(fā)明所提出的改進(jìn)算法原理圖。
圖5為實(shí)驗所用源紋理圖像以及實(shí)驗后隱寫紋理結(jié)果圖像。(a)~(f)為源紋理圖像;(g)~(l)為包含秘密信息的紋理合成圖像。
圖6為使用不同質(zhì)量因子進(jìn)行jpeg圖像壓縮后的信息提取錯誤率曲線。
具體實(shí)施方式
本發(fā)明發(fā)優(yōu)選實(shí)施例詳述如下:
實(shí)施例一:參見圖1~圖4,本基于紋理合成的魯棒隱寫,實(shí)現(xiàn)信息隱藏的具體步驟圖。
實(shí)施例二:
圖5(a)~(f)為128×128大小的源紋理圖像,每幅圖像由具有不同的紋理,圖(g)~(l)為653×653大小的包含秘密信息的紋理合成圖像。
參見圖5,本基于紋理合成的魯棒隱寫,其具體步驟如下:
(1)使用的源紋理圖像大小為128×128,根據(jù)光柵掃描順序移動每個像素,將紋理圖像分為多個重疊塊。每一個塊的大小為16×16。將每一個候選塊進(jìn)一步分為內(nèi)核區(qū)域和邊界區(qū)域,內(nèi)核區(qū)域包含3×3像素。
(2)定義候選塊為{p1,p2,...,pn},其相對應(yīng)內(nèi)核區(qū)域為{r1,r2,...,rn},n=113×113。使用標(biāo)準(zhǔn)偏差評估內(nèi)核區(qū)域的復(fù)雜度:
[·]為取整操作符,k=1,2,...,n,其中ak表達(dá)式為:
(3)通過步驟(2)中得出的復(fù)雜度{d1,d2,...,dn},取出dmax和dmin。根據(jù)dmax和dmin,由公式(3-1)生成m個值{v1,v2,...,v16},m=16:
根據(jù)公式(3-1)所生成的值,構(gòu)造包含候選塊的m組分類{π1,π2,...,πm}:
πi={pk|dk∈(vi-δ,vi+δ)}(3-2)
其中i=1,2,...,m,k=1,2,...,n,δ為滿足0≤δ<(dmax-dmin)/2m區(qū)間的任意數(shù)。我們使用每個分類來表示多個秘密比特。m組分類中的一組包含
(4)為隱藏秘密信息,將秘密信息轉(zhuǎn)化為二進(jìn)制比特流,并將秘密信息分為l段{b1,b2,...,bl},l=400。每段包含
(5)偽隨機(jī)產(chǎn)生l個整數(shù)對作為密鑰{(p1,q1),(p2,q2),...,(pl,ql)},其中1≤pi≤wr,1≤qj≤wc。整數(shù)對需要滿足以下兩個條件,首先,每組整數(shù)對互不相同;其次,對于任意兩組整數(shù)對,應(yīng)滿足pi-pj>1或者qi-qj>1。
(6)對于任意一段秘密信息bi(i=1,2,...,l),選擇分類
(7)畫布其余空白區(qū)域通過從113×113個候選塊中選出最合適候選塊進(jìn)行紋理合成。紋理合成所采用的算法是在“最小誤差邊界”法基礎(chǔ)上做輕微改變。通過迭代填充的方式來選擇候選塊填入空白區(qū)域,因和畫布已有塊具有重疊區(qū)域,計算重疊區(qū)域部分的最小均方差mse來確定填補(bǔ)候選塊。其具體步驟如下:
(7-1)對已有候選塊“c”進(jìn)行紋理合成。分別計算“c”和其上部候選塊“a”之間重疊區(qū)域的mse,以及“c”和其左部候選塊“b”之間重疊區(qū)域的mse。
(7-2)同時我們加入右部或者下部重疊區(qū)域的mse,進(jìn)行最佳候選塊的選擇。例如我們計算“c”和其下部候選塊“d”之間重疊區(qū)域的mse。
(7-3)計算重疊區(qū)域的最小成本路徑來確定縫合線,從“c”候選塊三個方向重疊區(qū)域的mse值找到最佳候選塊,來進(jìn)行畫布空白區(qū)域填補(bǔ),完成紋理合成。
為了驗證使用本發(fā)明可有力抵抗jpeg圖像壓縮,對圖像5中的紋理圖像所生成的隱寫圖像進(jìn)行質(zhì)量評估。紋理合成的隱寫紋理圖像大小為653×653,候選塊大小為16×16,內(nèi)核區(qū)域為3×3,l=400。我們分別取m=2,4,8,16來構(gòu)造隱寫圖像,并對隱寫圖像進(jìn)行jpeg壓縮,其質(zhì)量因子取值為10,30,50,70,90。從壓縮后的隱寫圖像中提取秘密信息,計算提取信息的平均錯誤率。如圖6所示。圖中,橫坐標(biāo)代表不同質(zhì)量因子對應(yīng)的圖像,縱坐標(biāo)代表平均錯誤率,不同標(biāo)記的曲線為m取值不同的隱寫圖像所對應(yīng)的平均錯誤率曲線。從圖6可以看出,隨之質(zhì)量因子的增加,平均錯誤率趨近于0,同時m的取值越小,其平均錯誤率也隨之減小。