徐曉宇,陸劍鋒,李 黎,張善卿
(杭州電子科技大學 計算機學院,杭州 310000)(*通信作者電子郵箱jflu@hdu.edu.cn)
近年來,QR碼因其強糾錯能力以及快速讀取等特性被廣泛應用到人們的日常生活中[1-2]。傳統(tǒng)的QR碼只有黑白兩種顏色,具有較差的視覺體驗,且不同的QR碼不易區(qū)分,導致掃碼率下降,因此關(guān)于美化QR碼的研究應時而生。
現(xiàn)有的研究成果一定程度上提升了QR碼的視覺效果和掃碼率,但所選用的圖像大多只有一個目標且集中在中心位置,不能很好地適用圖像的多樣性[3-4]。同時,大多數(shù)美化QR碼算法未考慮圖像的感興趣區(qū)域(Region of Interest, ROI),使得在視覺敏感區(qū)域有許多黑白噪點,大大影響了圖像的美觀。
Fang等[5]通過視距函數(shù)和估計期望之外錯誤比特位數(shù)量的函數(shù)減小QR碼與嵌入圖像的視覺距離。Kuribayashi等[6]通過加權(quán)函數(shù)將RS碼字控制在圖像中心區(qū)域,在不損失糾錯容量的前提下生成美化QR碼。郭興華等[7]利用高斯調(diào)變函數(shù)修改圖像各區(qū)塊的平均亮度,使其與QR碼模組位元相同,并根據(jù)QR碼的應用場景來調(diào)整模組亮度感應區(qū)域顆粒的大小來美化QR碼。文獻[8]改變了RS碼的編碼方法,在不犧牲其糾錯能力的前提下產(chǎn)生美化QR碼,并使用加權(quán)函數(shù)對圖像中的視覺重要區(qū)域進行分類。楊俊豐等[9]利用顯著性加權(quán)隨機優(yōu)化算法將QR碼與半色調(diào)圖像進行融合,并對圖像進行色彩調(diào)整;但顯著性區(qū)域點較多,影響了美化效果。Li等[10]利用顏色和亮度特征檢測圖像的感興趣區(qū)域,并通過RS糾錯原理確定圖像可替換區(qū)域;但是獲取的感興趣區(qū)域大多處于圖像的中心位置,且替換面積受到糾錯容量的影響,無法適應感興趣區(qū)域面積較大的圖像。
QR碼尺寸較小,可用于展示背景區(qū)域的面積有限,所以選取背景圖像的感興趣區(qū)域用于美化碼的融合,更能提升視覺效果。本文提出了基于感興趣區(qū)域和糾錯機制的QR碼美化策略,使得感興趣區(qū)域可以替換QR碼的更大面積。
本文根據(jù)圖像內(nèi)容和QR碼美化效果的需要,提出了基于感興趣區(qū)域和糾錯機制的QR碼美化策略。該算法分為四步,具體流程如圖1所示。
圖1 本文算法流程
QR碼在解碼過程中,首先要對彩色圖像進行二值化操作,但不同解碼器采用的二值化方法不同,造成解碼過程中對顏色解讀有差異,導致解碼率降低。因此,為保證解碼率,對圖像進行預處理操作。
預處理操作首先將背景圖像轉(zhuǎn)為Lab空間,再用大津法得到圖像閾值,并使用該閾值拉升亮度通道(L通道)以增大圖像對比度。最后,將預處理后圖像進行灰度轉(zhuǎn)化,壓縮成與原始QR碼圖像相同大小,以用于后續(xù)操作。
文獻[11]利用顏色和亮度特征提取感興趣區(qū)域,但當背景圖像亮度變化較大時,得到的感興趣區(qū)域結(jié)果中會包含亮度較大的非感興趣區(qū)域,使得最終檢測結(jié)果不準確。
根據(jù)人眼視覺系統(tǒng)[12]的特點,人眼對紋理復雜區(qū)域的感興趣度遠比紋理平滑區(qū)域高,因此,本文綜合考慮了圖像的紋理、顏色和亮度特征,提出了多特征組合的感興趣區(qū)域檢測算法。
本文采用了應用較多的灰度共生矩陣(Gray-Level Co-occurrence Matrix, GLCM)來獲取圖像的紋理特征[13]。
GLCM共有14種紋理特征,但僅有能量、對比度、同質(zhì)性、相關(guān)性這四個特征互不相關(guān)。因此,為減小計算量,本文選取這四個特征統(tǒng)計量衡量圖像的復雜度。
1)能量:描述圖像灰度均勻性分布情況和紋理粗細度,值越大圖像灰度分布越均勻。如式(1):
(1)
2)對比度:描述圖像清晰程度和紋理溝紋深淺程度,值越大圖像越清晰,紋理越深。如式(2):
(2)
3)同質(zhì)性:描述紋理局部變化的多少,取值大時說明不同區(qū)域間變化少,局部非常均勻。如式(3):
(3)
4)相關(guān)性:衡量GLCM元素所在行(列)的相似程度,值越大相似程度越高,圖像越簡單。如式(4):
(4)
為減少計算量,本文將圖像量化為8個灰度級,求其0°、45°、90°和135°方向的GLCM,分別計算對應的4個統(tǒng)計量,將四個方向的指標取平均,獲取最終的統(tǒng)計量的值。
綜合上述計算的統(tǒng)計量,構(gòu)造式(5)用于評估圖像復雜度。
Gcpx=w0+w1ASM+w2CON+
w3IDM+w4COR
(5)
其中權(quán)重系數(shù)w1、w2、w3、w4由線性回歸模型得出。
根據(jù)上節(jié)中選定的統(tǒng)計量,本節(jié)采用線性回歸的方法計算紋理特征的權(quán)重系數(shù)。
在回歸分析中,如果有多個(大于等于兩個)參數(shù)作為自變量,就稱為多元線性回歸,通常用最小二乘法進行回歸系數(shù)(即權(quán)重)的估計,其表達式如式(6)。
yi=w0+w1x1i+w2x2i+…+wnxni
(6)
其中:(yi,x1i,x2i,…,xni)(i=1,2,…,n)為相應樣本的特征值。本文將GLCM的四個指標設為自變量,因變量y的值根據(jù)紋理復雜程度進行設定,y=1表示復雜紋理,y=0表示簡單紋理。
選取不同樣本的紋理特征值(能量ASM、對比度CON、同質(zhì)性IDM、相關(guān)性COR)及對應的y值代入式(6)中,得到如式(7)所示方程組:
(7)
利用矩陣運算,如式(8):
(8)
通過對樣本圖像特征參數(shù)的擬合,得到相應的權(quán)重系數(shù){w1,w2,w3,w4}如表1所示。
表1 不同特征參數(shù)相應的權(quán)重取值
首先,將圖像亮度均值與閾值進行比較,均值較大時,將圖像進行灰度轉(zhuǎn)化;然后根據(jù)GLCM獲取的四個統(tǒng)計量表示紋理特征,同時計算圖像的顏色、亮度和空間距離特征,綜合計算結(jié)果獲取顯著性值S(Rk),如式(9)。
(9)
其中:LRk為亮度特征[11],表示每個區(qū)域的亮度變化情況;DS(Rk,Ri)為不同區(qū)域間的空間距離;w(Ri)為區(qū)域塊Ri的權(quán)重,權(quán)重由該區(qū)域中像素點的個數(shù)決定;DR(Rk,Ri)為顏色特征[14],表示區(qū)域塊之間的顏色距離度量。
將得到的顯著性值映射到相應區(qū)域的每個像素點上,使得同一區(qū)域的顯著性值相同。最后采用自適應閾值,求得顯著二值圖,如式(10):
(10)
其中:n表示像素點的個數(shù),S(i)表示顯著性值。
圖像的感興趣區(qū)域多處于圖像中心,對應QR碼數(shù)據(jù)區(qū)位置,因此根據(jù)RS特性[15],構(gòu)造RS編碼矩陣用于實現(xiàn)QR碼數(shù)據(jù)區(qū)的背景替換。
根據(jù)RS碼的組成單元,構(gòu)建基向量bi,前k位是數(shù)據(jù)位。數(shù)據(jù)位由單位向量組成,數(shù)據(jù)位中第i位為1,表示白色模塊;其余位為0,表示黑色模塊。后t位是數(shù)據(jù)位根據(jù)RS編碼規(guī)則生成的校驗位,如式(11)。
數(shù)據(jù)位 校驗位
(11)
連接所有基向量構(gòu)成RS編碼矩陣,如式(12)。其中Ik為k階單位陣,P為相應的校驗矩陣。
(12)
根據(jù)RS碼的異或特性,若要修改RS碼數(shù)據(jù)區(qū)某一位時,可選取RS編碼矩陣相應數(shù)據(jù)位值為1的一行基向量,與之進行異或操作生成新的RS碼。更改數(shù)據(jù)位同時更新校驗碼符合RS碼的編碼規(guī)則,且該操作不會影響其他數(shù)據(jù),從而達到對想要數(shù)據(jù)的可控目的。如圖2所示,數(shù)據(jù)位k=4,校驗位t=3,若要修改RS碼第二位時,選取RS編碼矩陣中第二數(shù)據(jù)位值為1的那行向量(第二行)與RS碼進行異或操作,得到新的RS碼RS′。RS編碼矩陣可修改一位或多位,根據(jù)修改位選取相應的基向量即可。
圖2 RS編碼矩陣示例
構(gòu)造完RS編碼矩陣后,將預處理后的背景灰度圖像通過大津法計算出閾值并進行二值化,得到背景二值圖。將背景二值圖與顯著二值圖按QR碼模塊的分布進行分塊。針對每一小塊,首先判斷該塊的顯著值是0還是1,若是0不作任何處理;若顯著值是1,進一步判斷原始QR碼模塊值和背景二值圖對應模塊的值是否一致;若不一致,則利用RS編碼矩陣對原始QR碼進行異或操作,產(chǎn)生翻轉(zhuǎn)效果,從而和背景二值圖一致。所有塊操作完成后,得到中間QR碼。
將RS編碼矩陣結(jié)果圖與預處理圖像通過文獻[10]的融合策略進行背景融合,得到融合結(jié)果圖。融合策略如式(13)。
(13)
其中Q表示模塊的替換情況:當Q=0時,表示QR碼中的黑白模塊可以被背景圖像相應位置的模塊進行完全替換;當Q=1或-1表示該模塊的中心區(qū)域與QR碼相應位置的模塊進行替換,其他區(qū)域由背景圖像相應位置的模塊進行替換。Ti表示該模塊的灰度均值,T0表示利用大津法計算的二值化閾值;Ni不同的值表示QR碼的不同模塊,當Ni=0時表示黑色模塊,Ni=1時表示白色模塊。
利用1.4節(jié)的融合結(jié)果圖,通過RS編碼的糾錯機制對QR碼美化區(qū)域進行進一步擴展。RS編碼算法可在QR碼符號受到攻擊時恢復一定程度的數(shù)據(jù),因其編碼效率高、糾錯能力強等特性被廣泛應用[15]。RS編碼是一種非二進制線性分組編碼,可用[n,m]表示。其中,n是RS碼塊長度,m為有效信息數(shù)。n-m為校驗位長度,可糾正t個錯誤,t的計算方式如式(14)。
t=?(n-m)/2」
(14)
例如,用(32,16)表示一個RS碼,這個RS碼的數(shù)據(jù)長度為16,校驗位的長度也是16,當數(shù)據(jù)遭到破壞時,其最大能糾正8個數(shù)據(jù),超過8個數(shù)據(jù)時,則無法解碼。
美化區(qū)域擴展的步驟如下:
1)結(jié)合1.2節(jié)得到的顯著二值圖,根據(jù)QR碼模塊的大小和位置,對顯著二值圖分塊,利用式(9)計算每個碼字塊的顯著性值。
2)根據(jù)顯著性值將每個塊進行從大到小排序,針對每個碼字塊,如果其融合策略中Q值不為0,那么則利用背景預處理圖像進行替換,同時計數(shù)器增加1,直到計數(shù)器值大于設定可修改值k。
本文算法利用RS編碼矩陣結(jié)合圖像的感興趣區(qū)域修改RS碼,其修改過程依舊符合RS碼的編碼規(guī)則,因此嵌入的圖像并不影響RS碼的解碼過程,從而保證了解碼的穩(wěn)定性。
在本實驗中,選取200張具有不同風格的圖像作為測試樣本集,包括卡通圖、簡單背景圖、復雜背景圖、人物圖、自然風景圖等,測試所用圖片均來自互聯(lián)網(wǎng)中已授權(quán)的公開圖片。將測試圖像作為背景圖像與QR碼進行融合生成美化QR碼,其中,QR碼版本為5,糾錯級別為L。圖3~9的圖片均來自互聯(lián)網(wǎng),版權(quán)歸原作者所有。部分美化QR碼效果圖展示如圖3所示。
圖3 美化QR碼效果圖
實驗結(jié)果表明,本文提出的基于感興趣區(qū)域和RS編碼機制的美化QR碼算法增加了背景圖像感興趣區(qū)域的展示面積,極大地減少了感興趣區(qū)域中的黑白噪點,視覺效果更佳,并且對于背景圖像的選取更加多樣化,使其不僅僅局限在感興趣區(qū)域位于中心位置的圖像。
為了驗證本文算法有效性,給出了算法各步驟結(jié)果圖,如圖4所示。為更好顯示RS編碼機制效果,本文用矩形框框出了利用RS糾錯得到的可擴展區(qū)域,如圖4(d)。
圖4 本文算法各步驟結(jié)果
為了驗證本文提出的改進的感興趣區(qū)域檢測算法的有效性,將本文所提感興趣區(qū)域檢測算法與文獻[11]和文獻[14]的算法進行比較,實驗結(jié)果如圖5所示。對于一般圖像(如圖5第一、二、四行所示),文獻[11]算法、文獻[14]算法與本文算法皆能較準確獲取感興趣區(qū)域,但本文算法所提感興趣區(qū)域更完整,且能更好體現(xiàn)感興趣區(qū)域的細節(jié)。
圖5 不同算法感興趣區(qū)域檢測對比結(jié)果
對于亮度變化較大的圖像,尤其是非感興趣區(qū)域比感興趣區(qū)域亮度更大的圖像(如圖5第三行所示),利用本文算法提取的感興趣區(qū)域比文獻[11]算法和文獻[14]算法更加準確,極大地減少了非感興趣區(qū)域亮斑的干擾,獲取的感興趣區(qū)域更加符合人眼視覺特性。
本節(jié)比較了不同算法的實驗結(jié)果,如圖6所示。
文獻[16]提出了半色調(diào)QR碼算法,得到了圖像的黑白QR碼美化結(jié)果,但丟掉了圖像本身的顏色、亮度等信息,美化視覺效果不足。
文獻[10]算法受到糾錯容量的限制,在5-L版本下,當感興趣區(qū)域的面積較大超過糾錯容量范圍時,只有一小部分的區(qū)域被展露出來,影響視覺效果。
本文算法通過感興趣區(qū)域檢測和RS糾錯,能較好檢測感興趣區(qū)域,對不同圖像選取相應的模塊替換策略,可以實現(xiàn)完整的背景替換,圖像信息被完整地保存了下來,視覺效果較佳。
為了更直觀地體現(xiàn)本文算法所得美化QR碼的視覺效果,本文通過計算背景圖像與美化QR碼的PSNR來衡量兩者的相似性。一般情況下,兩幅圖像越相似,PSNR值越高。實驗結(jié)果如圖7所示。從圖7中可知,本文算法的PSNR值高于文獻[10]和文獻[16]的算法,從客觀上說明了本文算法所得的QR碼具有更好的視覺效果。
圖7 不同算法PSNR值比較結(jié)果
為了衡量算法復雜度,本文比較了不同算法生成一張美
化QR碼所需的平均時間:文獻[16]算法所需的時間是1.8 s,文獻[10]算法所需的時間是2.6 s,本文算法所需的時間是2.1 s??梢姳疚牡乃惴◤碗s度低于文獻[10]算法,高于文獻[16]算法。
QR碼的解碼具體可分為:背景圖像預處理、定位與校正、獲取數(shù)據(jù)信息、糾正錯誤碼字和數(shù)據(jù)碼字譯碼。
QR碼的解碼率主要受制于解碼器的內(nèi)置算法。由于解碼器解碼時首先需對圖像進行二值化處理,相近顏色模塊的二值化取值可能有所不同,二值化結(jié)果的準確性會影響QR碼的解碼率。此外,光照、掃碼角度、圖像的清晰程度和對比度一定程度上會影響QR碼的解碼。一般情況下,圖像的對比度越高,二值化結(jié)果越精準,QR碼的解碼率越高。
本文關(guān)于解碼率實驗中的實驗結(jié)果皆為測試集中所有樣本圖像結(jié)果的平均值,而非單一圖像的結(jié)果。
為了評估本文算法生成的美化QR碼的解碼率,本文選取200張具有不同風格的圖像作為測試樣本集,選取了三款手機設備(華為榮耀8、小米5、iPhone 6S)進行測試,選取支付寶、微信和Qrcode Scanner用于進行解碼率實驗的驗證。不同算法解碼率的結(jié)果匯總?cè)绫?。從表2可知,三種方法皆具有較高的解碼率,但本文算法解碼率最高。
表2 不同移動設備在不同解碼軟件下不同算法的解碼率
實驗數(shù)據(jù)表明,利用本文提出的基于感興趣區(qū)域的美化QR碼算法生成的美化QR碼,在不同手機設備和不同的解碼器中都有較高的解碼率,對于大部分圖像都可以正確解碼。
QR碼自身具有一定的糾錯能力,因此當圖像存在一定污損時,利用糾錯能力也能正確解碼。本節(jié)將對美化QR碼算法的穩(wěn)定性進行測試,測試項目包括加噪攻擊和畫面污損。
1)加噪攻擊。
本文通過對美化QR碼添加不同強度的高斯噪聲來測試算法的有效性。將均值為0、方差為0~1的高斯噪聲添加到美化QR碼中,所加方差經(jīng)過歸一化處理。圖8列出了加噪攻擊后的實驗結(jié)果,方差越大,圖像質(zhì)量越差,解碼率越低。圖9列出了不同方差的高斯噪聲與解碼率的關(guān)系。由圖8可知,方差小于0.4時,QR碼有較高的解碼率;超過0.4時,解碼率逐步下降;方差為1時,解碼率幾乎為0。
圖8 加噪攻擊結(jié)果
圖9 加噪攻擊強調(diào)與解碼率的關(guān)系
2)畫面污損。
本文通過模擬圖像污損過程來檢測美化QR碼算法的穩(wěn)定性。實驗所用QR碼版本為5,糾錯級別為L,因此生成的QR碼共1 369個模塊(37×37)。圖10顯示了隨機畫面污損的實驗結(jié)果,圖中每個深灰色方塊邊長為2w,w為QR碼模塊的邊長。通過將深灰色方塊隨機覆蓋在美化QR碼圖像上來模擬隨機畫面污損。圖11顯示了集中畫面污損的實驗結(jié)果,圖中對應的深灰色方塊邊長分別為2w、4w、5w、6w。
圖10 隨機畫面污損結(jié)果
圖11 集中畫面污損結(jié)果
圖12列出了畫面污損程度與解碼率的關(guān)系。由圖12可知,污損模塊個數(shù)小于90,即解碼率為6.57%時,QR碼有較高的解碼率;超過90時,解碼率急速下降。
圖12 污損模塊個數(shù)與解碼率的關(guān)系
本文提出了基于感興趣區(qū)域和RS編碼機制的美化QR碼算法。對背景圖像,利用RS編碼矩陣與感興趣區(qū)域結(jié)合的方式實現(xiàn)美化QR碼。本文算法在保證解碼率的前提下,使得背景圖像的感興趣區(qū)域被最大限度地顯示。通過與其他算法的對比實驗可知,本文算法能更好地結(jié)合感興趣區(qū)域的特點,美化效果更佳。