張碧秋,楊大偉,毛 琳
(大連民族大學(xué) 機電工程學(xué)院,遼寧 大連 116605)
隨著追溯機制越來越受到重視[1],智能手機、手表等設(shè)備上的小電子零件也需噴賦二維碼,因此微小二維碼得到越來越廣泛的應(yīng)用[2]。現(xiàn)有二維碼識別算法對微小二維碼的識別條件要求嚴格,且識別率低。
目前,提高二維碼識別正確率的方法主要有以下三種:基于二值化處理的方法;定位校正二維碼圖像的方法;基于二維碼重構(gòu)的方法。文獻[3]提出基于背景灰度的二值化算法,使用灰度估算公式計算二維碼分塊灰度值,聯(lián)合插值算法產(chǎn)生背景灰度圖像,提高了二維碼圖像前景和背景的對比度,但該方法需人為設(shè)定閾值且需循環(huán)計算每個像素差值,分割結(jié)果不準(zhǔn)確,計算復(fù)雜度高。文獻[4]在對模糊、光照不均情況下的二維碼圖像進行處理時,通過多重規(guī)則選取不同閾值進行二值化處理,能夠得到比Otsu算法與Bernsen算法細節(jié)更豐富的圖像,但當(dāng)出現(xiàn)非線性畸變時,該算法的處理效果不理想。文獻[5]提出一種基于三軸交叉檢測定位探測圖形QR碼的校正算法,通過分析線性畸變QR碼的角點和位置對探測圖形定位,再根據(jù)非線性映射變換關(guān)系進行QR碼的校正,能夠有效對非線性畸變的QR碼進行精確定位。文獻[6]利用曲線擬合自適應(yīng)閾值法分割圖像,采用Hough變換和控制點變換方法校正圖像形變,通過模板對QR碼進行匹配,Hough直線檢測對殘缺直線和非直線噪聲有較強的抗干擾能力,但易受直線噪聲干擾。文獻[7]提出一種QR二維碼重構(gòu)方法,提高了二維碼識別的準(zhǔn)確率,但該方法采用固定權(quán)重,不能根據(jù)圖像實際情況調(diào)整權(quán)重,因此適應(yīng)性不強。
綜上所述,本文提出一種特征空間注意力微小二維碼重構(gòu)算法(Feature Space Attention Micro QR Code Reconstruction,F(xiàn)SAR),算法利用超分辨率放大技術(shù)增加小二維碼圖像像素,通過特征空間注意力機制調(diào)整不同層級的權(quán)重,在保證二維碼識別正確率的同時,重構(gòu)出符合人類審美特點的清晰二維碼圖像。
FSAR算法致力于將微小二維碼放大為現(xiàn)有二維碼識別算法能準(zhǔn)確識別的清晰二維碼圖像。獲取到的微小二維碼圖像經(jīng)去模糊、畸變校正、超分辨率放大等步驟,基本形狀已經(jīng)放大,但此時的二維碼由于噪聲干擾,會出現(xiàn)黑白碼塊交替邊緣有鋸齒、凹凸不平等不規(guī)則形變,這些噪聲和形變嚴重影響特征信息的正確表達。使用目前放大效果較好的基于深度學(xué)習(xí)的超分辨率方法放大后的二維碼所出現(xiàn)的不規(guī)則形變和噪聲的示圖如圖1。

圖1 微小二維碼超分辨率放大示圖
針對超分辨率等操作的輸出結(jié)果,本文提出FSAR算法可有效解決二維碼圖像放大后出現(xiàn)的扭曲變形、噪聲干擾等問題。圖像放大技術(shù)主要包括插值法、圖像重建法以及學(xué)習(xí)類方法,本文使用目前放大效果最優(yōu)的基于深度學(xué)習(xí)的超分辨率方法對微小二維碼圖像進行放大處理。該算法將超分辨率放大處理后的二維碼圖像作為輸入,通過特征空間注意力機制確定環(huán)形權(quán)重濾波器每一環(huán)級特征權(quán)重分量,利用權(quán)重濾波器計算每個圖像塊的加權(quán)平均灰度值。經(jīng)過權(quán)重濾波器計算得到圖像塊的灰度值,充分考慮二維碼圖像的特征信息,能夠增強有效信息的表達能力。通過OTSU算法[8]計算得到二維碼圖像的全局閾值和圖像塊局部閾值,融合這兩部分閾值,從而得到二維碼圖像塊的最佳分割閾值。將二維碼圖像的全局閾值和圖像塊的局部閾值進行融合,能夠減少光照不均對圖像閾值分割的影響,保證獲取到的閾值有較好的圖像分割質(zhì)量。依次比較二維碼圖像中每個圖像塊的灰度值以及該圖像塊對應(yīng)的最佳分割閾值完成二維碼重構(gòu)。FSAR算法邏輯結(jié)構(gòu)圖如圖2。

圖2 FSAR算法邏輯結(jié)構(gòu)圖
1.1.1 二維碼圖像塊
在QR二維碼重構(gòu)中,為去除噪聲及不規(guī)則形變,同時不破壞二維碼圖像的幾何結(jié)構(gòu),本文以圖像塊作為二維碼重構(gòu)的最小單位。圖像塊的尺寸設(shè)計直接影響重構(gòu)圖像的恢復(fù)效果。
QR二維碼的尋像圖形包括三個位置探測圖形,分別位于二維碼圖像的左上、左下和右上三個角落,通過三個位置探測圖形能夠快速定位二維碼,并明確符號方向,從任何方向掃描總能得到位置探測圖形的深淺模塊的寬度比例為1:1:3:1:1,具有較強的抗干擾能力,環(huán)形位置探測圖形如圖3。

圖3 環(huán)形位置探測圖形
根據(jù)二維碼圖像及二維碼位置探測圖形的特點,可以得出圖像塊的尺寸應(yīng)為一個碼塊的大小,其計算公式如下:
(1)
式中:h∈N*表示二維碼圖像塊大小;p∈N*表示定位符的像素值;7由位置探測圖形深淺模塊寬度比例1:1:3:1:1得出。
1.1.2 環(huán)形特征空間權(quán)重濾波器
為減少超分辨率二維碼圖像中扭曲變形特征的干擾,保證特征信息的正確表達,本文設(shè)計了環(huán)形特征空間注意力權(quán)重濾波器。環(huán)形權(quán)重濾波器模板(Filter template)的形狀可看作重疊的大小不同的同心正方形,所形成環(huán)級的寬度比例相同,同一環(huán)級上的權(quán)重大小一致,權(quán)重濾波器的權(quán)重由初始權(quán)重和特征空間權(quán)重兩部分融合而成,5×5濾波單元的濾波器包含3個環(huán)級,稱為3級環(huán)形濾波器。環(huán)形濾波器模板分別作用于二維碼圖像經(jīng)過分塊處理后的每一個塊(Image Block),濾波器模板單元作用于二維碼圖像塊上的子塊(Sub-block),每個子塊包含若干像素值。環(huán)形特征空間權(quán)重濾波器工作原理如圖4。

圖4 環(huán)形特征空間濾波器工作原理
環(huán)形濾波器的分級數(shù)決定著濾波單元的個數(shù),n級環(huán)形濾波器有(2n+1)個濾波單元,例如5×5個濾波單元被稱為3級環(huán)形濾波器。
(1)Ⅰ型權(quán)重。環(huán)形權(quán)重濾波器的初始權(quán)重有效突出了圖像塊中心區(qū)域的特征信息,弱化了邊緣區(qū)域的特征信息,增強了中心區(qū)域特征信息的表達,解決了深色模塊和淺色模塊的分界邊緣受噪聲干擾以及不規(guī)則形變帶來的特征信息錯誤表達的問題。濾波器的不同環(huán)級賦予不同的權(quán)重數(shù)學(xué)描述如下:
(2)

(2)Ⅱ型權(quán)重(特征空間注意力權(quán)重)。為弱化圖像特征信息受噪聲干擾程度,保證特征信息能夠最大限度表達,特征空間權(quán)重根據(jù)圖像實際受干擾情況動態(tài)調(diào)整權(quán)重大小,當(dāng)特征較為清晰受噪聲干擾較小時增加該部分特征的信息表達能力,反之則減少該部分特征的信息表達能力,有效抑制噪聲信息的干擾。
步驟1:計算圖像灰度值對應(yīng)的概率密度函數(shù),求出概率最高的兩個值對應(yīng)的灰度值,數(shù)學(xué)描述如下:
Gi=E{MAX[F(g)]}。
(3)
式中:F(g)表示圖像灰度值g對應(yīng)的概率密度分布函數(shù);MAX(·)為求最大值函數(shù);E(·)為概率對應(yīng)的灰度值函數(shù);Gi為概率最高值對應(yīng)的灰度值。
二維碼圖像由深色模塊和淺色模塊兩部分組成,其灰度值的概率密度分布函數(shù)中,深色模塊和淺色模塊對應(yīng)的灰度值概率最高,當(dāng)概率密度分布函數(shù)中出現(xiàn)其他灰度值時,表明該灰度值受到了噪聲干擾,在一定程度上,灰度值偏離頻率最高的灰度值越遠,則受到的干擾越嚴重。在單個深色碼塊或淺色碼塊中,平均灰度值越接近頻率最高的兩個灰度值,說明此碼塊特征表達越清晰、完整,反之則受噪聲干擾嚴重。
步驟2:根據(jù)圖像灰度值概率密度分布函數(shù),對環(huán)形權(quán)重濾波器的不同環(huán)級特征空間注意力權(quán)重分配不同等級,平均灰度值越接近峰值權(quán)重等級越高,反之越低。隨著等級不斷升高,所占權(quán)重不斷增大。
(4)

步驟3:環(huán)形權(quán)重濾波器的最終權(quán)重由初始權(quán)重和特征空間注意力權(quán)重兩部分融合而成,數(shù)學(xué)描述如下:
(5)
W=Z(Fi)。
(6)

OTSU使用的聚類思想將圖像按照灰度特性分為兩類,使得這兩類間的方差最大,此時的閾值便為圖像的分割閾值。實際的二維碼圖片,由于光照不均以及噪聲干擾等原因[9],實際的分割效果無法達到應(yīng)用要求,本文在OTSU算法的基礎(chǔ)上考慮干擾因素,融合二維碼圖像的全局閾值和以圖像塊為基礎(chǔ)的局部閾值,得到受光照不均干擾較小,達到對圖像塊有較好分割效果的最佳分割閾值。具體計算過程如下:
步驟1:根據(jù)圖像塊的位置和大小,計算得到該圖像塊對應(yīng)的局部窗口位置和大小,計算公式:
(7)
式中:m表示圖像塊;h表示圖像塊m的大小;x、y表示圖像塊中心點的坐標(biāo);M表示圖像塊m對應(yīng)的局部窗口;H表示局部窗口的大小;i、j表示局部窗口中心點的坐標(biāo);Δ表示局部窗口的中心點相對于圖像塊的中心點的偏移量;α表示局部窗口的大小相對于圖像塊大小的比例關(guān)系。
步驟2:將通過OTSU算法計算得到的二維碼圖像的全局閾值與圖像塊的局部閾值融合,得到圖像塊的最佳分割閾值,數(shù)學(xué)描述如下:
(8)
式中:μ表示利用OTSU算法計算得到的全局閾值;μM表示圖像塊m對應(yīng)的局部窗口M利用OTSU算法計算得到的局部閾值;Tm表示圖像塊m對應(yīng)的最佳分割閾值;φ表示閾值融合函數(shù)。
根據(jù)最佳閾值的計算結(jié)果對圖像塊進行閾值分割,數(shù)學(xué)描述如下:
Bm=D(Tm+Gm)。
(9)
式中:Gm表示圖像塊m通過特種空間注意力機制計算得到的加權(quán)灰度值;Tm表示圖像塊m通過閾值融合得到最佳分割閾值;Bm表示圖像塊m的閾值分割結(jié)果;D為閾值分割函數(shù)。
圖像塊加權(quán)灰度值的大小和權(quán)重濾波器的權(quán)重系數(shù)密切相關(guān),其數(shù)學(xué)描述如下:
(10)
式中:Gm表示圖像塊通過環(huán)形權(quán)重濾波器計算得到的平均灰度值;h表示圖像塊的尺寸;W由特征空間注意力機制得到的環(huán)形權(quán)重濾波器的權(quán)重矩陣;f(x,y)表示當(dāng)前像素坐標(biāo)點(x,y)的灰度值。
比較二維碼圖像塊的加權(quán)灰度值與之相對應(yīng)的最佳分割閾值,確定二維碼圖像塊是深色碼塊或淺色碼塊,根據(jù)結(jié)構(gòu)對每一個圖像塊進行重構(gòu),從而完成整張二維碼圖像的重構(gòu)。
為驗證本方法的有效性以及適用范圍,本文使用不同恢復(fù)手段對微小二維碼進行放大處理,再經(jīng)FSAR算法對放大后的二維碼進行重構(gòu)。FSAR算法運行環(huán)境硬件配置NVIDIA GeForce1080 Ti顯卡,Intel core i7處理器,64位Ubuntu16.04操作系統(tǒng),編程環(huán)境為python3.7。實驗使用微小二維碼數(shù)據(jù)集進行測試,其中包含150張微小二維碼圖像,實驗結(jié)果見表1。

表1 不同處理方法識別正確率對比 %
從表1實驗數(shù)據(jù)可以看出,對比其他二維碼處理方法,本文提出的FSAR算法重構(gòu)出的二維碼正確率顯著提升,相較于直接識別正確率提高75%,相較于非線性畸變校正算法正確率提升18.75%。FSAR算法使用不同權(quán)重的濾波模板,滿足二維碼圖像的特點,在一定程度上提高了清晰特征的信息表達能力,弱化了噪聲信息的干擾,使得重構(gòu)出的二維碼圖像與原真值二維碼相比,錯誤模塊的數(shù)量能夠控制在二維碼的校正容錯范圍內(nèi),故二維碼識別正確率得到顯著提升。
實驗使用本文提出的三級環(huán)形特征空間注意力權(quán)重濾波器,對經(jīng)過超分辨率重建算法擬合出的放大二維碼圖像完成重構(gòu)任務(wù),重構(gòu)結(jié)果如圖5。從微小二維碼數(shù)據(jù)集中隨機挑選數(shù)據(jù),行(1)是二維碼的完整圖像;行(2)是對行(1)中局部放大后的圖像。圖5a為二維碼的真值圖像;圖5b為只使用Ⅰ型權(quán)重的重構(gòu)結(jié)果,從圖中可以看出其有兩個小方框,該方框表明與真值圖像的差異,即圖5b中有兩個模塊沒有構(gòu)建正確;圖5c為使用Ⅱ型權(quán)重(特征空間注意力權(quán)重)的重構(gòu)結(jié)構(gòu),從圖中可以看出其中的深淺模塊分布與原真值圖像完全相同。

圖5 重構(gòu)結(jié)果對比
不同權(quán)重重構(gòu)的結(jié)果見表2。從中可以看出,使用Ⅱ型權(quán)重(特征空間注意力權(quán)重)比使用Ⅰ型權(quán)重重構(gòu)結(jié)果的正確率有所提升。環(huán)形濾波器的Ⅰ型權(quán)重中每一環(huán)級的權(quán)重值僅使用對數(shù)函數(shù)形式,而Ⅱ型權(quán)重中每一環(huán)級的權(quán)重值使用對數(shù)函數(shù)形式和特征空間注意力權(quán)重融合,在考慮二維碼圖像整體結(jié)構(gòu)特征的同時能夠兼顧每一張二維碼圖像的不同特征,使得環(huán)形濾波器每一環(huán)級的權(quán)重隨著二維碼圖像特征改變做出動態(tài)化調(diào)整,能夠更好地利用二維碼圖像中每一個碼塊的特征信息,減少噪聲干擾。

表2 不同權(quán)重重構(gòu)結(jié)果
為進一步驗證該方法的有效性以及適用范圍,實驗分別使用雙線性插值方法和最近鄰插值方法對于微小二維碼進行放大處理,將放大后的二維碼使用本文提出的FSAR算法重構(gòu)出標(biāo)準(zhǔn)二維碼,比較重構(gòu)的標(biāo)準(zhǔn)二維碼與原二維碼真值的不同,并測試重構(gòu)出的標(biāo)準(zhǔn)二維碼的正確識別率。經(jīng)過雙線性插值方法和最近鄰插值方法放大的二維碼圖像如圖6。

a)雙線性插值 b)最近鄰插值
經(jīng)過雙線性插值方法和最近鄰插值方法放大的二維碼圖像都出現(xiàn)了不同程度的模糊現(xiàn)象,該模糊圖像直接用于二維碼識別無法得到正確的結(jié)果,經(jīng)本文提出的FSAR算法重構(gòu)得出二維碼如圖6c,其中小框形標(biāo)記為錯誤碼塊,625個黑白碼塊中共5塊重構(gòu)錯誤,錯誤率在二維碼的容錯范圍內(nèi),該重構(gòu)圖像用于二維碼識別,能夠得出正確結(jié)果。實驗對于微小二維碼數(shù)據(jù)集中的150張圖像使用雙線性插值和最近鄰插值方法進行放大處理后,通過FSAR方法進行重構(gòu),識別正確率為90%,雖然略低于使用超分辨率重建算法處理的微小二維碼圖像,但相比其他算法仍有顯著提升。
實驗中經(jīng)過雙線性插值放大的二維碼有明顯的模糊現(xiàn)象,經(jīng)過最近鄰插值放大的二維碼出現(xiàn)較為嚴重的馬賽克現(xiàn)象,經(jīng)過本文算法重構(gòu)出的標(biāo)準(zhǔn)二維碼圖像不僅清晰且能被二維碼識別算法正確識別,表明該算法對于二維碼圖像處理有著廣泛的應(yīng)用領(lǐng)域。
針對微小二維碼直接識別準(zhǔn)確率較低問題,本文提出特征空間注意力微小二維碼重構(gòu)算法FSAR。通過對目標(biāo)區(qū)域設(shè)置不同的特征空間注意力權(quán)重,提高有用信息的特征表達能力。實驗結(jié)果表明,與Ⅰ型權(quán)重機制相比,特征空間注意力機制能夠更充分地利用特征信息,對圖像的適應(yīng)性更強,顯著提高二維碼識別的準(zhǔn)確率。FSAR算法為二維碼識別提供了一種新的思路,為微小二維碼識別提供參考。