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

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

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

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

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

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

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

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

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

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

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

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