陳 璇 雷海軍
摘 要:針對大角度條碼圖像區(qū)域自動定位這一關(guān)鍵技術(shù)的具體應(yīng)用,筆者提出一種適合大角度條碼圖像區(qū)域自動定位的算法。該算法以高斯濾波、邊緣檢測和霍夫變換做預(yù)處理,采用已經(jīng)訓(xùn)練好的人工神經(jīng)網(wǎng)絡(luò)進(jìn)行定位,運(yùn)用全局與局部結(jié)合的二值化方法進(jìn)行二值化、識別。實驗證明,該算法圖像定位準(zhǔn)確率高,大角度條碼圖像定位效果較為理想,提升了圖像識別的正確率。
關(guān)鍵詞:大角度條碼;自動定位;人工神經(jīng)網(wǎng)絡(luò);二值化;條碼識別
中圖分類號:TP37 文獻(xiàn)標(biāo)識碼:A 文章編號:1003-5168(2019)35-0042-06
Artificial Neural Network Based Recognition and Localization for Bar Code
CHEN Xuan1 LEI Haijun2,3
(1.Hunan Polytechnic of Water Resources and Electric Power,Changsha Hunan 410131;2.School of Computer and Software, Shenzhen University,Shenzhen Guangdong 518060;3.Guangdong Provincial Popular High Performance Computer Key Laboratory,Shenzhen Guangdong 518060)
Abstract: Aiming at the specific application of the key technology of automatic location of large angle bar code image area, the author proposed an algorithm suitable for automatic location of large angle bar code image area. In this algorithm, Gaussian filtering, edge detection and Hough transform are used as preprocessing, trained artificial neural network is used for positioning, and global and local binary methods are used for binarization and recognition. The experimental results show that the algorithm has high accuracy for image location, especially for large angle bar code image, which improves the accuracy of image recognition.
Keywords: large anglebarcode;automatic positioning;artificial neural network;binarization;recognition
條碼技術(shù)早在1993年就有學(xué)者研究[1],隨著機(jī)器學(xué)習(xí)算法的廣泛運(yùn)用,有學(xué)者利用機(jī)器學(xué)習(xí)算法對條碼圖像進(jìn)行處理。具體算法有:使用機(jī)器學(xué)習(xí)中的人工神經(jīng)網(wǎng)絡(luò)方法對無對焦手機(jī)拍攝的模糊條碼圖像進(jìn)行清晰度恢復(fù)再識別[2,3];采用圖像處理技術(shù)對復(fù)雜背景條碼進(jìn)行背景刪減,再進(jìn)行條碼位置的定位與識別[4];對二維條碼進(jìn)行角點(diǎn)檢測,再對角點(diǎn)進(jìn)行半監(jiān)督聚類,找到聚類中心從而確定條碼位置[5]。
目前,對于條碼圖像的處理,在技術(shù)上不僅采用圖像處理技術(shù),也會采用機(jī)器學(xué)習(xí)技術(shù);在實際應(yīng)用上不僅對標(biāo)準(zhǔn)圖片進(jìn)行識別,還會針對某種特定環(huán)境下的條碼圖像進(jìn)行處理。
本文采用基于圖像處理的方法對原圖進(jìn)行高斯濾波、邊緣檢測和霍夫變換預(yù)處理,再使用基于機(jī)器學(xué)習(xí)的方法定位出大角度圖像中條碼區(qū)域,運(yùn)用全局與局部二值化法進(jìn)行二值化,最后識別。圖1為大角度條碼圖像識別的流程。
圖1 大角度條碼圖像識別流程
1 預(yù)處理
本文研究對象為大角度條碼圖像,如圖2所示。
圖2 大角度條碼圖像
首先,采用高斯濾波方法對圖像進(jìn)行處理,增強(qiáng)圖像效果[6]。高斯濾波是對整幅圖像進(jìn)行加權(quán)平均的過程,每一個像素點(diǎn)的值,都由其本身和鄰域內(nèi)的其他像素值經(jīng)過加權(quán)平均后得到。高斯濾波的對比效果如圖3所示。
(a) 原圖? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (b) 高斯濾波效果圖
圖3 高斯濾波的對比效果圖
其次,對圖像進(jìn)行Canny邊緣檢測。圖像的邊緣是指圖像局部區(qū)域亮度突變的部分,是圖像形狀的幾何表現(xiàn)。經(jīng)典的邊緣檢測方法有Roberta、Sobel、Kirseh、Canny、Prewitt、Marr-Hildreth等,其中Canny邊緣檢測算法被稱為最優(yōu)邊緣檢測方法,被廣泛使用。因此,本文采取Canny邊緣檢測算法提取圖像,對條碼圖像做邊緣檢測,得到二值邊緣圖像,如圖4所示。
圖4 Canny邊緣檢測
最后,采用基于Hough變換法進(jìn)行直線檢測。Hough變換法[6]是利用圖像全局特性直接檢測目標(biāo)輪廓,將邊緣像素連接起來組成區(qū)域封閉邊界的一種常見方法。在預(yù)知區(qū)域形狀的條件下,利用Hough變換法可以快速得到邊界曲線,將不連續(xù)的邊緣像素點(diǎn)連接起來。通常,Hough變換法受噪聲和曲面間斷的影響較小。
2 定位
通過對條碼圖像的預(yù)處理,筆者將圖片輸入已經(jīng)訓(xùn)練好的人工神經(jīng)網(wǎng)絡(luò)中進(jìn)行條碼定位。對于如何訓(xùn)練人工神經(jīng)網(wǎng)絡(luò),小節(jié)5將進(jìn)行詳細(xì)介紹。
在人工神經(jīng)網(wǎng)絡(luò)中,本文采用多層感知器模型。訓(xùn)練多層感知器模型的過程就是對各個突觸權(quán)值不斷進(jìn)行調(diào)整,最終達(dá)到預(yù)設(shè)定的終止條件。對于輸出層的突觸權(quán)值,可以直接通過誤差信號進(jìn)行修正,因為誤差信號直接產(chǎn)生于輸出端,而隱藏層突觸權(quán)值,不如輸出層那么直接,隱藏層權(quán)值的調(diào)整通常使用反向傳播算法。本文使用有監(jiān)督的學(xué)習(xí)方法,因而需要為網(wǎng)絡(luò)提供一系列正確的輸入、輸出訓(xùn)練樣本:
[p1,t1,p2,t2,p3,t3,…,pq,tq]? ? ? ? ? ? (1)
式中,[pi]是輸入樣本;[ti]是期望的目標(biāo)響應(yīng)。
將期望的目標(biāo)響應(yīng)與訓(xùn)練時產(chǎn)生的目標(biāo)輸出進(jìn)行比較,獲得網(wǎng)絡(luò)誤差,然后應(yīng)用學(xué)習(xí)規(guī)則對網(wǎng)絡(luò)權(quán)值和偏差進(jìn)行調(diào)整,使得網(wǎng)絡(luò)響應(yīng)更接近正確目標(biāo)響應(yīng)。
3 二值化
條碼圖像二值化結(jié)果的好壞對條碼識別非常重要,二值化的目的是要真實還原出圖像中條碼各個條空的寬度和個數(shù)。在二值化算法設(shè)計中,選取閾值是最關(guān)鍵的一步,是整個二值化算法的核心。本文運(yùn)用全局閾值法與局部閾值法相結(jié)合的二值化算法[7]。該算法利用標(biāo)準(zhǔn)條碼中條空的寬度比例以及條碼圖像的邊緣特性得到一個全局閾值,同時可以得到條空的平均像素寬度,并計算圖像的灰度平均值。為了解決光照不均對二值化的影響,采用分塊處理,根據(jù)條空的平均像素寬度對圖像進(jìn)行分塊,計算每個子圖像塊的灰度均值與圖像灰度均值的差額,并結(jié)合全局閾值來確定子圖像塊閾值的范圍。在該范圍內(nèi),使用最大類間方差法得到最優(yōu)的局部閾值,用這個最優(yōu)的局部閾值對子圖像塊進(jìn)行二值化。算法流程如圖5所示。
圖5 二值化算法流程
4 識別
圖像經(jīng)過預(yù)處理、人工神經(jīng)網(wǎng)絡(luò)定位和二值化后,采用譯碼方法,識別條碼信息,最后效果圖如圖6所示。
圖6 圖像識別效果圖
5 實驗評估
由于使用有監(jiān)督學(xué)習(xí)的人工神經(jīng)網(wǎng)絡(luò)來定位識別條碼,人們需要利用學(xué)習(xí)樣本訓(xùn)練神經(jīng)網(wǎng)絡(luò)。第一步整理訓(xùn)練樣本,第二步訓(xùn)練模型,第三步測試模型,第四步評估實驗結(jié)果。本文的實驗環(huán)境是:Visual Studio 2012、OpenCV-2.4.9。
實驗采用三個標(biāo)準(zhǔn)的一維條碼數(shù)據(jù)集:ArTe-Lab 1D Medium Barcode Dataset[8]包含215張圖片,WWU Muenster Barcode Database包含1 055張圖片,Rotated Barcode Database[9]包含368張圖片。此外,建立了兩個私有數(shù)據(jù)集,即大角度條碼數(shù)據(jù)集1包含9 828張圖片,大角度條碼數(shù)據(jù)集2包含9 828張圖片。此數(shù)據(jù)集的建立達(dá)到擴(kuò)充數(shù)據(jù)集的目的,也增強(qiáng)了模型的魯棒性。由于本文方法包含了監(jiān)督訓(xùn)練算法,因此,將每個數(shù)據(jù)集分開處理,對每個數(shù)據(jù)集分別進(jìn)行訓(xùn)練和測試。具體來說,每個數(shù)據(jù)集隨機(jī)選擇70%的數(shù)據(jù)進(jìn)行訓(xùn)練,選擇30%的數(shù)據(jù)進(jìn)行測試。為了準(zhǔn)確評估,本文采用條碼定位方法,對所有圖片進(jìn)行條碼部分與背景部分的分割處理。
訓(xùn)練的目的是使計算機(jī)可以通過訓(xùn)練樣本的學(xué)習(xí),當(dāng)再輸入圖像集合里面的測試樣本時,可以根據(jù)之前的學(xué)習(xí)得到預(yù)期的效果。圖7是定位前和定位后的圖片,此部分展示部分實驗效果,一部分為定位效果好的實驗結(jié)果,一部分為定位效果差的實驗結(jié)果。
從展示部分的實驗效果可以看出,定位準(zhǔn)確率達(dá)不到100%,存在圖片無法準(zhǔn)確定位的情況。原因是光線太弱或者光線太強(qiáng),有遮擋物,另外,圖片模糊程度高也會直接導(dǎo)致完全無法定位。從實驗效果可以得知,采用人工神經(jīng)網(wǎng)絡(luò)進(jìn)行定位的模型,對于訓(xùn)練樣本的選擇十分關(guān)鍵,換而言之,網(wǎng)絡(luò)模型是針對大角度條碼圖像訓(xùn)練得到的模型,因此,此模型對大角度條碼圖像進(jìn)行定位的效果理想,而對于模糊、光照不均勻、有遮擋物等未進(jìn)行針對訓(xùn)練的圖像。測試效果不理想,此定位方法區(qū)分于傳統(tǒng)方法的一般性、普用性而更具有針對性。
圖7 部分測試效果對比
在訓(xùn)練網(wǎng)絡(luò)的過程中需要設(shè)置參數(shù),由以下實驗數(shù)據(jù)得到設(shè)置的參數(shù)。實驗過程將采用的640×480像素分辨率圖片分為x塊,每塊高為n,寬為m。設(shè)在預(yù)處理過程中存儲數(shù)據(jù)矩陣[AH]由180行和[2·max (h,w)]列組成,其中h和w是原圖片的高和寬。
條碼定位的精確度評估:在一個數(shù)據(jù)集中,我們定義A為準(zhǔn)確定位條碼的百分比。其中,令b為條碼圖像B的實際定位結(jié)果,令d為條碼圖像B的正確定位結(jié)果。我們認(rèn)定條碼b定位準(zhǔn)確的公式如下:
[實際定位結(jié)果∩正確定位結(jié)果實際定位結(jié)果∪正確定位結(jié)果≥0.5]? ? (2)
圖8、圖9、圖10分別是3個數(shù)據(jù)集對于不同的n和m的取值得到的實驗數(shù)據(jù)統(tǒng)計,其中縱軸表示高n,橫軸表示寬m,n的范圍是0~6,m的范圍是10~100。表格中的數(shù)值表示定位的準(zhǔn)確度A,數(shù)值越大準(zhǔn)確度越高。
綜合三個統(tǒng)計數(shù)據(jù),當(dāng)設(shè)n=3,m=60時,數(shù)據(jù)集1的準(zhǔn)確率達(dá)到100%,數(shù)據(jù)集2準(zhǔn)確率達(dá)到95%,數(shù)據(jù)集3準(zhǔn)確率達(dá)到96%,因此設(shè)置n=3,m=60。
最好的參數(shù)由3個隱藏層與200個節(jié)點(diǎn)組成,考慮應(yīng)用于實際生活需要嵌入機(jī)器中,因此設(shè)置MLP有2個隱藏層,輸入節(jié)點(diǎn)、隱藏層節(jié)點(diǎn)和輸出節(jié)點(diǎn)為3×60的組合更合適。
圖11 定位效果
至此,實驗參數(shù)設(shè)置完成。
對于實驗的評估,主要分為三個部分。第一部分:直觀定位效果展示,如圖11所示;第二部分:對五個數(shù)據(jù)集定位準(zhǔn)確率進(jìn)行統(tǒng)計,如表1所示;第三部分:對比開源識別方法ZXing識別率統(tǒng)計,如表2所示。
表1表示五個數(shù)據(jù)集條碼定位的測試結(jié)果,由此可以驗證本文所采用的定位方法對于五個數(shù)據(jù)集來說準(zhǔn)確率在80%以上。
通過展示效果可以看到,對于標(biāo)準(zhǔn)圖片的定位效果較好,對于有大角度條碼的定位也較準(zhǔn)確;當(dāng)圖像中有光照不均勻的閃光點(diǎn)時,定位的準(zhǔn)確性會稍微下降,但仍然
可以基本定位出條碼位置;對于有污染的圖片,若污染面積范圍比較大,則無法完整定位有效信息,以至于對后續(xù)的識別有所影響,導(dǎo)致無法識別或者識別錯誤;針對一張圖片中多個條碼圖像進(jìn)行定位測試時,可以定位出多個目標(biāo),但是明顯定位部分缺失,效果不佳,與多條碼圖像定位效果相似;低質(zhì)量圖像的定位效果也不盡如人意。
表2表示對于五個數(shù)據(jù)集進(jìn)行條碼識別的測試結(jié)果,由此可以了解本文的識別算法在數(shù)據(jù)集ArTe-Lab 1D Medium Barcode Dataset和WWU Muenster Barcode Database的測試結(jié)果差距不大,而在數(shù)據(jù)集Rotated Barcode Database、大角度條碼數(shù)據(jù)集1、大角度條碼數(shù)據(jù)集2的測試結(jié)果差距較明顯。究其原因是由于此三個數(shù)據(jù)集包含大角度圖片,而正是由于本文采用的定位算法優(yōu)于ZXing算法的定位方法,定位出大角度圖片中條碼位置的準(zhǔn)確性更高,從而使得后續(xù)的識別率更高,從側(cè)面反映了本文采用的定位算法對于大角度圖片的定位效果較好。
6 結(jié)語
本文針對大角度圖片進(jìn)行定位與識別方法研究,采用人工神經(jīng)網(wǎng)絡(luò)方法進(jìn)行大角度條碼定位,詳細(xì)介紹實驗過程,分別從三個方面對實驗結(jié)果進(jìn)行評估,得到數(shù)據(jù)說明本文采用的定位與識別方法對于大角度條碼圖像效果更理想(見圖12)。
參考文獻(xiàn):
[1]沈克峰,胡慶生.CCD攝像機(jī)與條碼識別技術(shù)[J].光學(xué)技術(shù),1993(4):10-11.
[2]殷羽,鄭宏,王靜,等.一種自適應(yīng)煙標(biāo)字符提取方法[J].計算機(jī)應(yīng)用研究,2015(4):1248-1252.
[3]郭明.殘缺和破損條形碼的圖像識別技術(shù)研究[D].哈爾濱:哈爾濱理工大學(xué),2014.
[4]耿慶田,趙宏偉.基于分形維數(shù)和隱馬爾科夫特征的車牌識別[J].光學(xué)精密工程,2013(12):3198-3204.
[5] Alessandro Z , Gallo I , Albertini S . Robust Angle Invariant ID Barcode Detection[C]// 2nd Asian Conference on Pattern Recognition (ACPR2013). IEEE Computer Society, 2013.
[6] Tahaa Z , Mat-Jizatb J A , Ishakc I .Bar Code Detection Using OmniIdirectional Vision for Automated Guided Vehicle Navigation[C]// Automatic Control and Artificial Intelligence (ACAI 2012), International Conference on. IET, 2012.
[7] Otsu N . A Threshold Selection Method from Gray-Level Histograms[J]. IEEE Transactions on Systems, Man, and Cybernetics, 2007(1):62-66.
[8] A.Zamberletti, I Gallo, M Carullo,et al. Decoding 1-D Barcode from Degraded Images Using a Neural Network[C]// International Conference on Computer Vision, Imaging and Computer Graphics. 2011.
[9]Alessandro Zamberletti Ignazio Gallo Simone Albertini. Neural 1D barcode detection using the hough transform[J].information and media technologies ,2015(1):157-165.