《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于BP神經網絡二維碼區(qū)域提取
基于BP神經網絡二維碼區(qū)域提取
2015年微型機與應用第1期
藍 杰,張浩然
(浙江師范大學 數理與信息工程學院,浙江 金華 321004)
摘要: 在復雜背景下的二維碼區(qū)域定位一直是QR Code二維條碼解碼過程中的難題之一。二維碼區(qū)域掃描定位是通過二維碼的圖形特點來實現,其存在掃描定位效率較低的缺點。為此提出在掃描定位之前通過圖像處理結合BP神經網絡實現QR Code二維碼條碼區(qū)域提取方法?;疖嚻蓖ㄟ^圖像預處理得到可能是二維碼的區(qū)域塊,提取經圖像處理后的二維碼區(qū)域塊圖像特征并結合BP神經網絡過濾出正確的二維碼區(qū)域。此方法實現了尋找一幅圖像中二維碼區(qū)域的圖像,結合二維碼圖形掃描定位方法,提高了二維碼掃描定位的效率,得到了較好的效果。
Abstract:
Key words :

  摘  要: 在復雜背景下的二維碼區(qū)域定位一直是QR Code二維條碼解碼過程中的難題之一。二維碼區(qū)域掃描定位是通過二維碼的圖形特點來實現,其存在掃描定位效率較低的缺點。為此提出在掃描定位之前通過圖像處理結合BP神經網絡實現QR Code二維碼條碼區(qū)域提取方法。火車票通過圖像預處理得到可能是二維碼的區(qū)域塊,提取經圖像處理后的二維碼區(qū)域塊圖像特征并結合BP神經網絡過濾出正確的二維碼區(qū)域。此方法實現了尋找一幅圖像中二維碼區(qū)域的圖像,結合二維碼圖形掃描定位方法,提高了二維碼掃描定位的效率,得到了較好的效果。

  關鍵詞: BP神經網絡;QR Code二維碼;區(qū)域提??;圖像預處理

0 引言

  隨著信息技術的發(fā)展,二維條碼技術在我國的應用越來越廣泛。QR Code二維碼是由按特定規(guī)則排列的正方形模塊陣列組成,其符號形狀為正方形。在符號的三個角上各有一個獨特的位置探測圖形,協(xié)助確定符號的位置、尺寸及符號與識讀參考坐標的傾斜角度[1]。QR Code二維碼具有信息量大、可靠性高、超高速全方位識讀、高效漢字表示等優(yōu)點。目前的二維條碼的識讀器主要分為兩類,一類是激光讀取,一類是圖像讀取。激光讀取方式因為受限于條碼的制式,其發(fā)展空間越變越小。而圖像讀取方式則因其二維信息的獲取優(yōu)勢,并可以脫離專用識讀器,因此其發(fā)展的空間很大[2]。但是二維碼在圖像掃描定位之前,由于受到掃描區(qū)域大小的影響,掃描區(qū)域面積大,系統(tǒng)識讀之前需要花大量的時間掃描整幅圖像的各個區(qū)域,造成了系統(tǒng)掃描時間長、效率低的問題。針對這個問題,本文提出了二維碼圖像定位識別預處理,可以快速找到二維碼區(qū)域,以便系統(tǒng)更快、更高效地識讀二維碼。

1 系統(tǒng)控制原理

  本系統(tǒng)主要通過BP神經網絡將圖像處理后含有干擾信號的區(qū)域濾掉,過濾出比較正確的二維碼圖像區(qū)域信息,系統(tǒng)實驗流程圖如圖1所示。

001.jpg

2 圖像預處理

  火車票圖像處理主要目的有兩個:一個是濾掉干擾信號,另一個是得到二維碼區(qū)域塊。需要解決的問題是對其進行正確的二值化處理和矩形框的開閉運算。

  2.1 圖像增強

  圖像增強是按特定的需要將圖像中感興趣的特征有選擇地突出出來,衰減不需要的特征,提高圖像的可懂度。圖像增強不考慮圖像降質的原因,而且改善后的圖像也不一定逼近原圖像,這是它與圖像復原的本質區(qū)別。因此圖像增強的主要目的有兩個:一是改善圖像的視覺效果,提高圖像的清晰度;二是將圖像轉換成一種更適合人類或機器進行分析處理的形式,從圖像中獲取更多有用的信息。

  圖像增強方法大致分為兩類:一類是空間域處理法,另一類是頻域處理法??臻g域是直接對圖像的像素進行處理,基本上是以灰度映射變換為基礎,所用的映射變換取決于圖像的特點和增強的目的,主要包括灰度修正、圖像平滑和銳化等。頻域處理法是在圖像的某種變換域內,對變換后的系數進行運算,然后再求其反變換到原來的空間域得到增強的圖像,主要包括:低通濾波、高通濾波、帶阻濾波、同態(tài)濾波等。因此,根據設計的要求,本系統(tǒng)采用空間域處理法,通過像素的處理有選擇地突出二維碼區(qū)域。本系統(tǒng)首先通過imadjust函數增強圖像,再通過strel和imopen兩個函數得到背景圖像,最后將增強圖像和背景圖像相減得到增強后突出的圖像。如圖2和圖3所示。

002.jpg

  2.2 圖像矩形框開閉運算

  本系統(tǒng)采用了形態(tài)學運算中開運算和閉運算方法過濾,得到可能為二維碼的區(qū)域,在系統(tǒng)進行開運算和閉運算之前,濾除火車票背景的干擾圖像并用Canny算子識別強度圖像中的邊界。Canny算子是比較經典的且應用廣泛的邊緣檢測算法。濾除火車票外部背景且將感興趣的二維碼區(qū)域圖像增強了,但是火車票上面的干擾字也會隨著增強。濾除背景圖像效果如圖4所示,Canny邊緣檢測效果如圖5所示。

003.jpg

  對圖像進行形態(tài)學運算中的開運算和閉運算之前,首先得了解形態(tài)學運算中的腐蝕和膨脹[3]。

 ?。?)腐蝕是一種消除邊界點、使邊界向內部收縮的過程,可以用來消除小且無意義的物體。腐蝕的算法:用3×3的結構元素,掃描圖像的每一個像素,用結構元素與其覆蓋的二值圖像做“與”操作,如果都為1,則結果圖像的該像素為1,否則為0,使二值圖像減小一圈。

 ?。?)膨脹是將與物體接觸的所有背景點合并到該物體中,使邊界向外部擴張的過程,可以用來填補物體中的空洞。膨脹的算法:用3×3的結構元素,掃描圖像的每一個像素,用結構元素與其覆蓋的二值圖像做“與”操作,如果都為0,則結果圖像的該像素為0,否則為1,使二值圖像擴大一圈。

  然而,二值圖像開運算和閉運算是通過腐蝕和膨脹定義的。因此,二值圖像先腐蝕后膨脹的過程稱為開運算,用來消除小物體、在纖細點處分離物體、平滑較大物體的邊界的同時并不明顯改變其面積;二值圖像先膨脹后腐蝕的過程稱為閉運算,用來填充物體內細小空洞、連接鄰近物體、平滑其邊界的同時并不明顯改變其面積。火車票圖像經過一次閉運算和兩次開運算之后就能得到長方形狀的區(qū)域如圖6所示,每個區(qū)域塊可能是二維碼,也可能是干擾區(qū)域。因此,通過BP神經網絡將干擾區(qū)域濾除掉,即可得到想要的二維碼區(qū)域。

004.jpg

3 BP神經網絡

  BP(Back Propagation)神經網絡,即誤差反傳誤差反向傳播算法的學習過程,由信息的正向傳播和誤差的反向傳播兩個過程組成。輸入層各神經元負責接收來自外界的輸入信息,并傳遞給中間層各神經元;中間層是內部信息處理層,負責信息變換,根據信息變化能力的需求,中間層可以設計為單隱層或者多隱層結構;最后一個隱層傳遞到輸出層各神經元的信息,經進一步處理后,完成一次學習的正向傳播處理過程,由輸出層向外界輸出信息處理結果。當實際輸出與期望輸出不符時,進入誤差的反向傳播階段。誤差通過輸出層,按誤差梯度下降的方式修正各層權值,向隱層、輸入層逐層反傳。周而復始地進行信息正向傳播和誤差反向傳播過程,是各層權值不斷調整的過程,也是神經網絡學習訓練的過程。此過程一直進行到網絡輸出的誤差減小到可以接受的程度,或者達到預先設定的學習次數為止。BP神經網絡模型包括其輸入輸出模型、作用函數模型、誤差計算模型和自學習模型[4]。

 ?。?)節(jié)點輸出模型

  隱節(jié)點輸出模型:

  1.png

  輸出節(jié)點輸出模型:

  2.png

  f為非線性作用函數;θ為神經單元閾值。

 ?。?)作用函數模型

  作用函數是反映下層輸入對上層節(jié)點刺激脈沖強度的函數,又稱刺激函數,一般為在(0,1)內連續(xù)取值的Sigmoid函數:

  f(x)=1/(1+e-x)(3)

 ?。?)誤差計算模型

  誤差計算模型是反映神經網絡期望輸出與計算輸出之間誤差大小的函數:

  4.png

  Tpi為i節(jié)點的期望輸出值;Opi為i節(jié)點計算輸出值。

 ?。?)自學習模型

  神經網絡的學習過程,即連接下層節(jié)點和上層節(jié)點之間的權重矩陣Wij的設定和誤差修正過程。BP網絡中,有師學習方式需要設定期望值,無師學習方式則只需輸入模式。自學習模型為:

  5.png

  h為學習因子;Фi為輸出節(jié)點i的計算誤差;Oj為輸出節(jié)點j的計算輸出;a為動量因子。

  神經網絡需要有一定量的歷史數據,通過歷史數據的訓練,網絡可以學習到數據中隱含的知識。在需要解決的問題中,首先要找到某些問題的一些特征,以及對應的評價數據,用這些數據來訓練神經網絡。

  3.1 二維碼圖像的特征提取

  在神經網絡中,特征提取是至關重要的一部分。如果特征向量太多,則需要對特征向量進行降維處理。本系統(tǒng)的特征向量提取方法是直接采集圖像特征值,通過圖像處理得到正確的二維碼區(qū)域塊,并將二維碼區(qū)域塊的面積、周長、長寬之比、像素點、偏心率等作為圖像特征的向量。系統(tǒng)中的特征提取樣本圖片來源于百度網頁圖片,圖像的光照強度都不同,對于研究比較苛刻,因此增大了圖像處理和特征提取的難度,并會對神經網絡的識別率造成影響。系統(tǒng)中的特征向量被存放在EXCEL文檔中,主要包含了圖像面積與周長之比、長寬之比、偏心率三個特征向量。

  3.2 BP神經網絡的建立[4]

  MATLAB神經網絡工具箱提供函數newff來創(chuàng)建一個前向型BP神經網絡。其常用的調用格式為:

  net=newff(P,T,[S1S2…S(N-1),{TF1 TF2...TF(N)})

  其中,P,T分別為輸入樣本和期望響應;Si為網絡各層的神經元數目;TFi為網絡各層的傳遞函數類型。

  本系統(tǒng)采用上述newff創(chuàng)建一個前向型BP神經網絡,網絡中間隱層采用logsig函數,輸出層采用purelin函數,對應的訓練函數采用trainlm。建立前向型BP神經網絡結構:

  net=newff(minmax(P),[2,1],{‘logsig’,‘purelin’},‘trainlm’)

005.jpg

  BP神經網絡采用兩層神經元構成,其模型如圖7所示,BP神經網絡訓練過程及訓練狀態(tài)分別如圖8、圖9所示。

  3.3 BP神經網絡樣本測試

  將測試樣本通過sim函數輸入到神經網絡進行測試,并將輸出結果和期望值、輸出預測誤差顯示出來,并提供結果分析,其結果如圖10、圖11和圖12所示。

  樣本測試結果表明,系統(tǒng)輸出和期望輸出出現的誤差變化較小,出錯率低,可以實現經圖像處理輸出的二維碼區(qū)域塊的濾波,得到本系統(tǒng)所需的二維碼區(qū)域。實驗樣本數據較少,都是通過人工實驗提取出來的樣本數據,這樣不能完全反映出整體現象,但是足以證明實驗結果是可行的。

4 結論與展望

  本系統(tǒng)的構思來源于圖像處理中圖像分割最大連通域。起初由于出發(fā)點出現錯誤,走了很多的彎路,二維碼區(qū)域是分散的,不是封閉連通的,因此導致了無法計算出最大連通域。最后通過圖像的開運算和閉運算得到了很好的效果。此方法既實用又方便,可以得到物體的輪廓和骨架等信息。當然系統(tǒng)存在很多的不足,比如圖像的像素不同提取出來的二維碼質量也不盡相同,這是當前無法解決的問題,需要不斷的改進。此系統(tǒng)結合BP神經網絡過濾出二維碼區(qū)域相對于基于Gabor濾波器和BP神經網絡二維碼區(qū)域提取算法較為簡單,提高了運算速度并節(jié)省了運算時間,Gabor濾波器需要對圖像的每個像素點進行40維濾波處理,因此消耗了大量的時間進行計算,導致計算周期長的缺點[5]。最后希望能夠選擇更好的圖像處理算法,選擇更加合適的神經網絡算法解決上述問題。

參考文獻

  [1] 肖翔,劉曉明,王云柯.QR碼圖像的矯正與定位方法研究[J].計算機科學,2007,34(11):217-219.

  [2] 張然,朱虹,張瞳,等.一種低質量QR Code二維碼圖像的預處理方法[J].計算機科學,2008,35(4):146-148.

  [3] 耿帥.基于數學形態(tài)學的圖像去噪[D].濟南:山東師范大學,2012:17-31.

  [4] 朱凱,王正林.精通MATLAB神經網絡[M].北京:電子工業(yè)出版社,2009:193-224.

  [5] 楊兆遠,吳佳鵬,白卓夫,等.基于Gabor濾波器和BP神經網絡的二維條碼區(qū)域提取[J].天津大學學報,2010,43(3):210-214.


此內容為AET網站原創(chuàng),未經授權禁止轉載。