◆龐 博 龐毅林
(1.武警警官學(xué)院 四川 610213;2.華東理工大學(xué)信息學(xué)院 上海 200237)
二維條形碼技術(shù)是一種結(jié)合信息技術(shù)與計算機(jī)技術(shù)發(fā)展起來的集數(shù)據(jù)采集和處理、編碼、識別、印刷于一體的新型技術(shù)。它是用某種特定的幾何圖形按一定規(guī)律在水平和垂直方向的二維空間里利用黑白相間的圖形存儲信息,具有信息量大、編碼能力強(qiáng)和保密防偽性強(qiáng)等特點(diǎn)。數(shù)字水印技術(shù)與二維條形碼技術(shù)相結(jié)合,不僅可以對證件進(jìn)行自動識別,而且可以有效地防止證件偽造等,在信息領(lǐng)域得到了廣泛地應(yīng)用。
國內(nèi)外目前對二維碼的水印技術(shù)研究主要集中在 PDF417碼和QR碼。文獻(xiàn)[4]對PDF417碼組成單元的寬度進(jìn)行適量修改以實現(xiàn)水印信息的嵌入,具有抵打印和掃描功能,但水印信息很小。文獻(xiàn)[5]提出了一種基于邊界移位的二維圖形碼數(shù)字水印技術(shù),可以在二維碼圖像中嵌入水印,提高了二維碼圖像的安全性和適用性。文獻(xiàn)[6]提出了一種在DCT域的PDF417碼的數(shù)字水印算法,提高了數(shù)字水印的魯棒性。文獻(xiàn)[7]提出了一種基于QR碼的脆弱水印算法,增強(qiáng)了數(shù)字水印的隱蔽性,提高了水印容量,可廣泛應(yīng)用于終端設(shè)備對電子票的防偽及認(rèn)證。文獻(xiàn)[8]提出了基于 PDF417的明隱藏和暗隱藏的方法。本文提出了一種基于PDF417的二維碼數(shù)字水印算法,提高了水印的抗JPEG壓縮的魯棒性,并用JAVA語言編程實現(xiàn)了一個APP應(yīng)用,具有一定的實用性。
PDF417二維碼是一種高密度、高信息含量的便攜式數(shù)據(jù)文件,一個PDF碼最多可容納1850 個字符或1108 個字節(jié)的二進(jìn)制數(shù)據(jù),如果只表示數(shù)字則可容納2710 個數(shù)字。PDF417碼是一種堆疊式二維圖形碼,每一個 PDF417碼由 3-90橫列構(gòu)成。PDF417使用RS編碼進(jìn)行突發(fā)差錯校驗。
基于PDF417二維碼的數(shù)字水印技術(shù)一般包括兩個階段:水印嵌入和提取過程。
(1)本文算法的水印嵌入
先將水印信息表示的二進(jìn)制比特流信息進(jìn)行預(yù)判,然后選擇嵌入水印到PDF417的“黑條”還是“白空”的位置,再尋找合適的符合條件的嵌入像素點(diǎn)。具體步驟如下:
① 預(yù)判水印比特信息。如果含“0”的多于“1”,則選擇“黑條”嵌入;否則選“白空”作為嵌入位置。
② 忽略掉二維碼圖像的四個靜空區(qū),然后連續(xù)讀取每兩行像素值。
③ 比較每兩行的像素值大小,如果相同,轉(zhuǎn)步驟①,繼續(xù)讀取,如果不相同,則斷定這兩行像素為PDF417堆疊字碼的邊界處,可在此處嵌入水印,同時根據(jù)PDF417碼的特點(diǎn)得到每行堆疊字碼的像素高,以便進(jìn)行下一邊界尋找的判斷。
④ 判斷邊界緊鄰的上一行像素值,尋找該行中連續(xù)為黑(或白)的像素點(diǎn),水印可在第一行的這些連續(xù)像素的最后(或者最前)一個像素點(diǎn)處嵌入。
⑤ 取待嵌入水印信息中的一個比特,如果為0,則繼續(xù)進(jìn)行,不做改動;如果為1,則修改連續(xù)的黑像素點(diǎn)為白像素點(diǎn)以嵌入水印信息。
如果水印信息已經(jīng)全部嵌入完畢,則算法結(jié)束;反之如果連續(xù)點(diǎn)已用完,則轉(zhuǎn)步驟②,繼續(xù)往下尋找下一符合條件的邊界,如果已經(jīng)無邊界,則說明該P(yáng)DF417碼不足以嵌入全部水印信息。
(2)本文算法的水印提取
水印提取是水印嵌入的相反過程。考慮到水印嵌入時用的是緊鄰邊界的上一行像素,并修改該行符合條件的像素點(diǎn)。因而,在水印提取中就只根據(jù)PDF417碼的特點(diǎn),根據(jù)前述的嵌入過程中每行堆疊字碼的像素高,作為邊界判斷,尋找緊鄰邊界的上一行,即是水印嵌入行。同時,由于嵌入算法中對水印先做了預(yù)判,因而水印提取以嵌入算法中的預(yù)判結(jié)果為依據(jù)進(jìn)行后續(xù)處理。
實驗中采用的PDF417二維條碼樣本如圖1(a)所示,嵌入的數(shù)字水印信息為“http∶//www.baidu.com”,嵌入水印之后的圖像如圖1(b)所示。通過兩幅圖的對比,可以看出兩幅圖像的差別非常小。嵌入水印后,可以通過相應(yīng)的水印提取算法,從攜帶水印的PDF417二維條碼中恢復(fù)出數(shù)字水印信息“http∶//www.baidu.com”,如圖1(c)。實驗結(jié)果表明,該數(shù)字水印算法能夠?qū)崿F(xiàn)嵌入水印信息的正確提取嵌入,同時不影響嵌入水印后的二維碼信息正確識讀,保證了二維碼自身攜帶的數(shù)據(jù)信息的完整性。
圖1 實驗效果圖
算法性能評價選用峰值信噪比PSNR和相似度NC作為參數(shù)指標(biāo)。
Xij :載體圖像像素值;X ij :含隱寫信息圖像像素值。
圖2 基于PDF417二碼數(shù)字水印技術(shù)的App
對嵌入數(shù)字水印后的二維條碼圖像進(jìn)行JPEG壓縮的魯棒性分析,在不同的JPEG壓縮因子下,攜帶水印的二維條碼圖像從視覺上看不出明顯區(qū)別。由表1可以看出,嵌入水印后的二維碼圖像與原二維碼樣本具有較高的相似性,且峰值信噪比低至19dB時仍能通過二值化恢復(fù)出原本的水印信息,因此該二維碼水印算法對JPEG壓縮具有較好的魯棒性。
表1不同JPEG壓縮因子對應(yīng)的PSNR、NC值比較
運(yùn)用Java編程實現(xiàn)基于Android系統(tǒng)的APP應(yīng)用的設(shè)計。該APP可以實現(xiàn)對PDF417二維碼進(jìn)行掃描、水印嵌入、提取等功能。操作界面如圖2所示。
本文提出了一種基于PDF417二維碼的數(shù)字水印算法,實現(xiàn)了水印的嵌入和提取,并正確識讀原二維碼信息,具有抗JPEG壓縮的魯棒性,最后設(shè)計并實現(xiàn)了相關(guān)功能的APP,對實際生活中運(yùn)用二維碼進(jìn)行防偽認(rèn)證等方面具有一定的實用性。
[1]蔣翠玲,黃帥等.一種基于 PDF417條碼的魯棒數(shù)字水印方法.網(wǎng)絡(luò)與信息安全學(xué)報, 2016.
[2]Jiangxiao Han, Gang Wang,Johan Sidén, Fragment-type UHF RFID tag embedded in QR barcode label, Electronics Letters , 2015.
[3]吳桐樹.基于二維碼的數(shù)字水印技術(shù)研究[D].浙江理工大學(xué),2015.
[4]牛夏牧,黃文軍,吳迪,張慧.基于二維條碼的信息隱藏技術(shù)[J].中山大學(xué)學(xué)報(自然科學(xué)版),2004.
[5]陳崢,姚宇紅,王曉京.一種基于二維圖形碼的數(shù)字水印技術(shù)[J].計算機(jī)應(yīng)用,2006.
[6]張基宏,肖薇薇,紀(jì)震.基于二維條碼 PDF417的數(shù)字圖像水印算法[J].深圳大學(xué)學(xué)報(理工版),2002.
[7]朱本威,萬武南,陳運(yùn).基于LSB的QR碼數(shù)字水印算法研究[J].成都信息工程學(xué)院學(xué)報,2012.
[8]趙博.二維條碼研究[D].西安電子科技大學(xué),2007.