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

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

  關(guān)鍵詞: BP神經(jīng)網(wǎng)絡(luò);QR Code二維碼;區(qū)域提?。粓D像預(yù)處理

0 引言

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

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

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

001.jpg

2 圖像預(yù)處理

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

  2.1 圖像增強(qiáng)

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

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

002.jpg

  2.2 圖像矩形框開閉運(yùn)算

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

003.jpg

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

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

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

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

004.jpg

3 BP神經(jīng)網(wǎng)絡(luò)

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

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

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

  1.png

  輸出節(jié)點(diǎn)輸出模型:

  2.png

  f為非線性作用函數(shù);θ為神經(jīng)單元閾值。

 ?。?)作用函數(shù)模型

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

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

 ?。?)誤差計算模型

  誤差計算模型是反映神經(jīng)網(wǎng)絡(luò)期望輸出與計算輸出之間誤差大小的函數(shù):

  4.png

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

 ?。?)自學(xué)習(xí)模型

  神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程,即連接下層節(jié)點(diǎn)和上層節(jié)點(diǎn)之間的權(quán)重矩陣Wij的設(shè)定和誤差修正過程。BP網(wǎng)絡(luò)中,有師學(xué)習(xí)方式需要設(shè)定期望值,無師學(xué)習(xí)方式則只需輸入模式。自學(xué)習(xí)模型為:

  5.png

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

  神經(jīng)網(wǎng)絡(luò)需要有一定量的歷史數(shù)據(jù),通過歷史數(shù)據(jù)的訓(xùn)練,網(wǎng)絡(luò)可以學(xué)習(xí)到數(shù)據(jù)中隱含的知識。在需要解決的問題中,首先要找到某些問題的一些特征,以及對應(yīng)的評價數(shù)據(jù),用這些數(shù)據(jù)來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。

  3.1 二維碼圖像的特征提取

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

  3.2 BP神經(jīng)網(wǎng)絡(luò)的建立[4]

  MATLAB神經(jīng)網(wǎng)絡(luò)工具箱提供函數(shù)newff來創(chuàng)建一個前向型BP神經(jīng)網(wǎng)絡(luò)。其常用的調(diào)用格式為:

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

  其中,P,T分別為輸入樣本和期望響應(yīng);Si為網(wǎng)絡(luò)各層的神經(jīng)元數(shù)目;TFi為網(wǎng)絡(luò)各層的傳遞函數(shù)類型。

  本系統(tǒng)采用上述newff創(chuàng)建一個前向型BP神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)中間隱層采用logsig函數(shù),輸出層采用purelin函數(shù),對應(yīng)的訓(xùn)練函數(shù)采用trainlm。建立前向型BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu):

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

005.jpg

  BP神經(jīng)網(wǎng)絡(luò)采用兩層神經(jīng)元構(gòu)成,其模型如圖7所示,BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程及訓(xùn)練狀態(tài)分別如圖8、圖9所示。

  3.3 BP神經(jīng)網(wǎng)絡(luò)樣本測試

  將測試樣本通過sim函數(shù)輸入到神經(jīng)網(wǎng)絡(luò)進(jìn)行測試,并將輸出結(jié)果和期望值、輸出預(yù)測誤差顯示出來,并提供結(jié)果分析,其結(jié)果如圖10、圖11和圖12所示。

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

4 結(jié)論與展望

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

參考文獻(xiàn)

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

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

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

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

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


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。