專利名稱:具有零假警報(bào)的半脆弱數(shù)字水印嵌入和檢測方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種具有零假警報(bào)的半脆弱數(shù)字水印嵌入和檢測方法,適用于安全性要求很高的靜止圖像篡改檢測及定位。
背景技術(shù):
半脆弱數(shù)字水印技術(shù)近年來得到了越來越多學(xué)者的關(guān)注。其主要特點(diǎn)包括1.水印不可見。
2.具有篡改檢測能力。
3.能夠抵抗JPEG壓縮。
4.檢測時不需要原始圖像。
5.具有篡改定位能力。
6.強(qiáng)大的加密,抵抗惡意篡改和水印偽造。
7.零假警報(bào)。
目前很多半脆弱水印技術(shù)都能滿足前五項(xiàng)要求。對于安全性要求不高的應(yīng)用,前五項(xiàng)要求已經(jīng)足夠。但是對于安全性要求很高的應(yīng)用,如銀行票據(jù)篡改檢測,后兩項(xiàng)要求也至關(guān)重要。目前能夠很好的抵抗水印偽造的的技術(shù)很少,而能夠?qū)崿F(xiàn)零假警報(bào)的技術(shù)還未見有公開報(bào)道。對于銀行票據(jù)篡改檢測來說,假警報(bào)的出現(xiàn)將導(dǎo)致難以確定圖像是否被篡改,產(chǎn)生用戶對水印技術(shù)信任度降低的問題。
現(xiàn)有主流的水印技術(shù)包括三大類基于最不重要位(LSB),基于離散余弦變換(DCT)域,基于小波域。基于LSB的算法優(yōu)勢在于具有很高的峰值信噪比(PSNR),例如文獻(xiàn)“Protection of digital images using self embedding”(J.Fridrich and M.Goljan,in Proceedings of NJIT Symposium on ContentSecurity and Data Hiding in Digital Media,May 1999)提出了將每個8*8塊的DCT系數(shù)嵌入另一個塊的LSB,這樣不僅PSNR很高,而且還可以一定程度的恢復(fù)被篡改部分。但其局限性也很突出,即其不能區(qū)分不改變圖像內(nèi)容的有損壓縮和惡意篡改。而隨著圖像的數(shù)量和尺寸的不斷增加,圖像壓縮對于節(jié)省傳輸和存儲資源越來越意義重大,所以能夠區(qū)分壓縮和惡意篡改的算法變得必不可少,因此近年來更多的研究轉(zhuǎn)向了DCT域和小波域。JPEG2000是比JPEG更新的、功能更強(qiáng)大的靜止圖像壓縮方式,是基于小波域的。但在JPEG2000最終取代JPEG之前,JPEG還將繼續(xù)占據(jù)靜止圖像壓縮的主導(dǎo)地位。而對于JPEG圖像,由于JPEG壓縮基于DCT域,所以DCT域嵌入水印是最直接和有效的。目前DCT域的水印算法比較多,其中多數(shù)忽略假警報(bào)問題,認(rèn)為很小的假警報(bào)概率可以忽略不計(jì)。
水印嵌入DCT域以后,在轉(zhuǎn)換到空間域時,所有像素都要從浮點(diǎn)數(shù)舍入為整數(shù);同時會有某些像素超出
,而圖像不論是顯示還是儲存都要在
以內(nèi),所以超出范圍的值要被映射到0或者255。舍入時的誤差稱為舍入誤差,映射時的誤差稱為剪切誤差。當(dāng)圖像從空間域再次轉(zhuǎn)換到DCT域時,這兩種誤差都會造成DCT域系數(shù)的變化,從而造成已嵌入的水印被破壞,從而產(chǎn)生假警報(bào)。并且由于JPEG采用的顏色空間是YUV,而BMP等圖像是采用RGB,在彩色圖像格式轉(zhuǎn)換的時候,顏色空間的轉(zhuǎn)換也會帶來一些轉(zhuǎn)換誤差造成假警報(bào)。
例如文獻(xiàn)“Semi-fragile watermarking scheme for authentication ofjpeg images”C.K.Ho and C.T.Li,International Conference onInformation TechnologyCoding and Computing,vol.01,p.7,April 2004.)提出將水印信息嵌入DCT塊量化后的系數(shù)中非零的最后4位。由于沒有專門針對假警報(bào)的措施,假警報(bào)是不可避免的。
經(jīng)檢索,找到了一篇學(xué)術(shù)論文(C.Y.Lin and S.F.Chang,“Semi-fragilewatermarking for authenticating jpeg visual content,”in Security andWatermarking of Multimedia Contents II,January 2000),聲稱設(shè)計(jì)出了具有零假警報(bào)的水印算法SARI。論文提出在DCT域和空間域之間循環(huán)變換,取整,直到DCT系數(shù)經(jīng)過這樣的變換不變?yōu)橹?收斂)。首先這樣的方法對于一小部分塊,DCT系數(shù)不收斂。其次如果這個方法在嵌入水印以前執(zhí)行,則嵌入水印過程將會破壞DCT系數(shù)收斂性,如果在嵌入水印之后執(zhí)行,則這個操作會破壞已經(jīng)嵌入的水印。所以這個方法達(dá)不到徹底消除假警報(bào)的目的,必須用新的方法。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提出一種具有零假警報(bào)的半脆弱數(shù)字水印嵌入和檢測方法,對數(shù)字圖像的篡改具有較強(qiáng)的檢測及定位能力,實(shí)現(xiàn)零假警報(bào)。
為實(shí)現(xiàn)這一目的,本發(fā)明在嵌入水印前先對原始圖像進(jìn)行線性映射和低通濾波預(yù)處理,然后將圖像分塊并按塊轉(zhuǎn)換到DCT域,對DCT參數(shù)量化,水印加在低頻部分量化后的參數(shù)上。每塊的水印信息由塊地址,DC位和預(yù)設(shè)的密碼組成,通過MD5加密,得出低頻區(qū)內(nèi)多個地址及與每個地址對應(yīng)的二值信息。然后將每個二值信息通過預(yù)設(shè)的查找表嵌入到相應(yīng)的地址位的DCT量化值中。水印檢測時,對已嵌入水印的圖像用嵌入水印時同樣的方法得出每塊的塊地址,DC位和密碼,并算出低頻嵌入水印的地址及其對應(yīng)的二值信息。然后用JPEG量化表對DCT參數(shù)量化,并通過嵌入水印時同樣的查找表查出由地址確定的DCT參數(shù)對應(yīng)的二值信息。根據(jù)二值信息的匹配與否來判斷是否有篡改,完成檢測和定位。
本發(fā)明的方法包括水印嵌入和水印檢測兩大步驟,具體如下水印嵌入過程在嵌入水印之前,對原始圖像進(jìn)行預(yù)處理,將圖像線性映射到[20,235]以內(nèi),并進(jìn)行低通濾波,以避免舍入誤差和剪切誤差。濾波器選用標(biāo)準(zhǔn)方差為0.6的3*3的高斯低通濾波器。然后依據(jù)JPEG壓縮方法,將圖像分成不重疊的8*8的塊,按塊轉(zhuǎn)換到DCT域,用JPEG量化表對DCT參數(shù)量化,水印加在低頻部分(除DC位,DC指直流分量)量化后的參數(shù)上。每塊的水印信息由塊地址,DC位和預(yù)設(shè)的密碼組成,通過MD5加密,得到低頻區(qū)內(nèi)的多個地址以及與每個地址對應(yīng)的二值信息。然后分別將每個二值信息通過一個預(yù)設(shè)的查找表嵌入到與該二值信息對應(yīng)的地址位的DCT量化值中。查找表為整數(shù)到二值域的映射。
水印檢測過程對已嵌入水印的圖像,用嵌入水印時同樣的方法分塊、DCT變換及對DCT參數(shù)的量化,得到每塊的塊地址,DC位和密碼,并通過MD5得到低頻嵌入水印的地址及其對應(yīng)的二值信息;然后用JPEG量化表對DCT參數(shù)量化,并通過嵌入水印時同樣的查找表查出由地址確定的DCT參數(shù)對應(yīng)的二值信息;將此查出的二值信息與前一個與低頻嵌入水印地址對應(yīng)的二值信息對比,兩者是否一致,如果全匹配則說明無篡改,否則說明此塊被篡改。這樣就達(dá)到了篡改檢測和篡改定位的功能。
本發(fā)明在水印嵌入之前先對原始圖像進(jìn)行線性映射和濾波預(yù)處理,此后再嵌入水印就不會出現(xiàn)舍入誤差和剪切誤差,使得水印能夠抵抗彩色圖像空間轉(zhuǎn)換和二次壓縮過程中DCT與反DCT變換中的誤差的影響,從而實(shí)現(xiàn)了零假警報(bào)。而線性映射對圖像造成的質(zhì)量下降微乎其微,可以忽略不計(jì);低通濾波造成的質(zhì)量下降也在可以容忍的范圍內(nèi),PSNR達(dá)到42。
本發(fā)明的方法可使嵌入過水印的圖像與以原始圖像很難辨認(rèn)出區(qū)別,加密功能強(qiáng),并具有較強(qiáng)的篡改定位能力,對于未篡改圖像或非惡意篡改,誤碼率為零;對于惡意篡改,誤碼率小于2%。
本發(fā)明實(shí)現(xiàn)了在DCT域嵌入數(shù)字水印的情況下的零假警報(bào),對于安全性要求很高的應(yīng)用,這一特性將帶來維護(hù)成本的顯著減少。
圖1為本發(fā)明水印嵌入時的流程圖。
圖2為本發(fā)明水印檢測時的流程圖。
圖3為本發(fā)明實(shí)施例采用的原始圖像——票據(jù)。
圖4為嵌入水印后的圖像。
圖5為對圖4進(jìn)行了篡改的圖像。
圖6為篡改檢測定位圖。
具體實(shí)施例方式
以下結(jié)合附圖和實(shí)施例對本發(fā)明的技術(shù)方案作進(jìn)一步描述。
本發(fā)明的方法包括水印嵌入和水印檢測兩部分。
水印嵌入過程本發(fā)明的實(shí)施例中,首先將圖像變換至YUV編碼,只對亮度分量Y作水印嵌入和檢測。水印嵌入過程如圖1所示,在嵌入水印之前,先對原始圖像進(jìn)行預(yù)處理,包括線性映射和低通濾波。如果圖像像素值范圍超出[20,235],則將其線性影射到[20,235],線性映射F定義為offset=20Pmin=MIN(MIN(Ik),offset)Pmax=MAX(MAX(Ik),255-offset)線性映射Fx→y(x∈Z,y∈Z,y∈[Pmin,Pmax])然后用低通窗口濾波器對圖像進(jìn)行濾波,濾波器選用標(biāo)準(zhǔn)方差為0.6的3*3的高斯低通濾波器。經(jīng)過對原始圖像I進(jìn)行預(yù)處理,得到I’。
圖像經(jīng)過這樣的預(yù)處理之后再嵌入水印就不會出現(xiàn)舍入誤差和剪切誤差了。而線性映射對圖像造成的質(zhì)量下降微乎其微,可以忽略不計(jì);低通濾波造成的質(zhì)量下降也在可以容忍的范圍內(nèi),PSNR達(dá)到42。
用JPEG壓縮采用的方法將I’分成8*8不重疊的塊Ip(p∈N,p≤m,m為總塊數(shù)),再按塊變換到DCT域得到Dp,對Dp量化得到Qp。量化用JPEG壓縮標(biāo)準(zhǔn)量化表,本實(shí)施例采用質(zhì)量參數(shù)為50的量化表。
水印加在低頻部分(除DC位)量化后的參數(shù)上。每塊的水印信息Wp由本塊的位置信息(塊地址),本塊的DC位的值,和預(yù)設(shè)的密碼組成。
用Hash加密算法對水印信息Wp算出多位地址碼Ap(i)(i∈N,i≤n,n為地址碼個數(shù))和每個地址對應(yīng)的二值碼Bp(i)。本實(shí)施例中n=6。本實(shí)施例采用MD5對Wp算出摘要,然后將摘要分割成6部分,在每部分中分別提取出一個地址碼Ap(i)和一個與地址對應(yīng)的二值碼Bp(i)。地址碼被選擇為在塊DCT中一定區(qū)域S中的參數(shù)。預(yù)先設(shè)定低頻區(qū)S為按照zigzag方式排列的第二位到第九位,其中找到6位嵌入水印。
根據(jù)Ap和Bp對Qp嵌入水印。首先設(shè)計(jì)一個查找表T,T為整數(shù)到二值域的映射Tz→b(z∈Z,b∈{0,1})設(shè)定查找表T時要避免二值域出現(xiàn)過長連續(xù)的0或1,以避免對DCT參數(shù)改變過大。
對每一個地址碼Ap(i)所對應(yīng)的Qp(Ap(i))通過T映射得到二值碼Bp’(i)Bp’(i)=T(Qp(Ap(i)))對于任意i(i≤n),如果Bp’(i)≠Bp(i),則將Qp(Ap(i))改為通過T映射到Bp(i)最接近的值。Qp嵌入水印后得到WQp。
WQp可以通過Huffman編碼得到JPEG圖像輸出,也可以反量化,反塊DCT后得到空間域嵌入水印后的圖像WI。
水印檢測過程圖2給出了本發(fā)明的水印檢測過程。
檢測水印時,對已嵌入水印的圖像,用嵌入水印時同樣的方法將待檢測圖像WI’分塊得到Ip’,再變換到DCT域得到Dp’。對Dp’量化得到Qp’。然后用塊的位置信息,塊的DC位的值,和預(yù)設(shè)的密碼組成塊的水印信息Wp’。再用Wp’通過MD5計(jì)算出n個地址碼Ap’(i)和n個二值碼Bp’(i)。對和每一個地址碼Ap’(i)對應(yīng)的Qp’(Ap’(i)),通過和嵌入水印時同樣的查找表T映射得到二值碼Bp”(i)。對于每一塊p,如果對于所有i≤n,有Bp’(i)=Bp”(i),則本塊判定為未被篡改,否則判定為被篡改。同時也實(shí)現(xiàn)了定位功能。
性能測試圖3~圖6為本發(fā)明一個實(shí)施例的測試結(jié)果。圖3為一張票據(jù)的掃描圖。對圖3嵌入水印得到圖4。圖4的圖像降質(zhì)不可見,對比圖3圖4,肉眼察覺不出差別。圖5對圖4進(jìn)行了篡改,單價(jià)2.00改為了2222.00。圖6為篡改檢測定位圖,陰影區(qū)指示出篡改發(fā)生的地方。篡改檢測與定位成功。
從實(shí)施效果來看,本發(fā)明方法具有良好的特性1、水印不可見。嵌入過水印的圖像與原圖很難辨認(rèn)出區(qū)別。JPEG質(zhì)量參數(shù)為50時,峰值信噪比為42。
2、具有篡改檢測能力。對于未篡改圖像或非惡意篡改(JPEG質(zhì)量參數(shù)在70以上的壓縮),誤碼率為零;對于惡意篡改,誤碼率小于2%。
3、抵抗JPEG壓縮(質(zhì)量參數(shù)70以上)。
4、檢測時不需要原圖。
5、具有篡改定位能力。精度為8*8小塊。
6、在嵌入水印前的圖像預(yù)處理使得水印檢測時排除了假警報(bào)的發(fā)生。
7、加密功能強(qiáng)。水印信息中加入了的密碼,并且用MD5對水印加密,加在低頻的密文由于位置隨機(jī)不能確定其位置,所以偽造水印難度很大。水印包括塊地址和散列地址這種雙地址信息,具有塊相關(guān)性,使得塊復(fù)制到不同的位置能夠被發(fā)現(xiàn)。這樣有效的防止了在知道算法的情況下的惡意構(gòu)造水印信息的危險(xiǎn)。另外把DC位加密到水印中,使得局部亮度調(diào)節(jié)(調(diào)節(jié)整塊亮度)能被檢測。
8、由于經(jīng)過了線性映射和濾波的預(yù)處理過程,使得水印能夠抵抗彩色圖像空間轉(zhuǎn)換和二次壓縮過程中DCT與反DCT變換中的誤差的影響,從而實(shí)現(xiàn)了零警報(bào)。
權(quán)利要求
1.一種具有零假警報(bào)的半脆弱數(shù)字水印嵌入和檢測方法,其特征在于包括如下步驟水印嵌入過程在嵌入水印之前先對圖像進(jìn)行預(yù)處理,將圖像線性映射到[20,235]以內(nèi),并進(jìn)行低通濾波,然后依據(jù)JPEG壓縮方法,將圖像分成不重疊的8*8的塊,按塊轉(zhuǎn)換到離散余弦變換DCT域,用JPEG量化表對DCT參數(shù)量化,水印加在低頻部分除了直流分量DC位的量化后的參數(shù)上;每塊的水印信息由塊地址,DC位和預(yù)設(shè)的密碼組成,通過MD5加密,得到低頻區(qū)內(nèi)的多個地址以及與每個地址對應(yīng)的二值信息,然后分別將每個二值信息通過一個預(yù)設(shè)的查找表嵌入到與該二值信息對應(yīng)的地址位的DCT量化值中;所述查找表為整數(shù)到二值域的映射;水印檢測過程對已嵌入水印的圖像,用嵌入水印時同樣的方法分塊、DCT變換及對DCT參數(shù)的量化,得到每塊的塊地址,DC位和密碼,并通過MD5得到低頻嵌入水印的地址及其對應(yīng)的二值信息,然后對圖像用JPEG量化表對DCT參數(shù)量化,并通過嵌入水印時同樣的查找表查出由地址確定的DCT參數(shù)對應(yīng)的二值信息;將此查出的二值信息與前一個與低頻嵌入水印地址對應(yīng)的二值信息對比,兩者是否一致,如果全匹配則說明無篡改,否則說明此塊被篡改,如此即實(shí)現(xiàn)了篡改檢測和篡改定位。
2.根據(jù)權(quán)利要求1的具有零假警報(bào)的半脆弱數(shù)字水印嵌入和檢測方法,其特征在于進(jìn)行低通濾波預(yù)處理時選用標(biāo)準(zhǔn)方差為0.6的3*3的高斯低通濾波器。
全文摘要
本發(fā)明涉及一種具有零假警報(bào)的半脆弱數(shù)字水印嵌入和檢測方法,嵌入水印前先對圖像進(jìn)行線性映射和低通濾波預(yù)處理,然后將圖像分塊并按塊轉(zhuǎn)換到DCT域,對DCT參數(shù)量化,水印加在低頻部分量化后的參數(shù)上。每塊的水印信息由塊地址,DC位和預(yù)設(shè)的密碼組成,通過MD5加密,得出低頻區(qū)內(nèi)多個地址及與每個地址對應(yīng)的二值信息,然后將每個二值信息通過預(yù)設(shè)的查找表嵌入到相應(yīng)的地址位的DCT量化值中。檢測時按塊進(jìn)行,先得到嵌入水印的地址及對應(yīng)的二值信息,通過查找表查出由地址確定的DCT參數(shù)對應(yīng)的二值信息,再根據(jù)二值信息的匹配與否來判斷是否有篡改,完成檢測和定位。本發(fā)明嵌入圖像的水印基本不可見,加密功能強(qiáng),并實(shí)現(xiàn)了零假警報(bào)。
文檔編號G06T1/00GK1996380SQ20061014763
公開日2007年7月11日 申請日期2006年12月21日 優(yōu)先權(quán)日2006年12月21日
發(fā)明者季白楊, 張亮, 裴林 申請人:杭州信雅達(dá)系統(tǒng)工程股份有限公司