吳成偉+吳靜+徐其文+張欣慧
摘 要:隨著物聯(lián)網(wǎng)的迅猛發(fā)展,QR碼作為數(shù)據(jù)載體被廣泛應用。本文就農(nóng)化產(chǎn)品物流行業(yè)使用的二維碼易受光照影響并且容易損破的問題提出了一個優(yōu)化的QR碼識別技術,采取同態(tài)濾波增強光照使得圖像能夠準確灰度化,然后采取GA尋取全局灰度閾值實現(xiàn)精確二值化。經(jīng)實驗證明,本文所采取的二維碼識別算法識別效率較高。同時,本文還建立了基于此優(yōu)化QR碼識別算法的農(nóng)化產(chǎn)品物流系統(tǒng)。
關鍵詞:QR碼;同態(tài)濾波;遺傳算法;二值化
中圖分類號:S-3 文獻標識碼:A DOI:10.11974/nyyjs.20170931003
引言
在信息技術發(fā)展迅速的今天,物聯(lián)網(wǎng)不再僅僅局限于理論上的研究,許多物聯(lián)網(wǎng)應用如雨后春筍般出現(xiàn)在市面上。數(shù)據(jù)采集端也不再是局限于傳感器、RFID(Radio Frequency Identification)等昂貴的硬件設施,而是能夠載存物品特征的條碼,特別是能夠載存復雜信息的QR(Quick Response)碼。QR碼技術被廣泛運用在物品溯源、物流追蹤等熱門物聯(lián)網(wǎng)行業(yè),成為大數(shù)據(jù)的收集源泉。
一般的物流行業(yè)對QR碼要求不高,因為物品在運輸過程中QR碼不易受到破損,掃碼環(huán)境在室內(nèi)也就不會受到光照等因素的影響。但是農(nóng)化產(chǎn)品例如農(nóng)藥、化肥等物品在運輸過程中極容易因為擠壓、刮擦等原因受到破損,同時由于這些產(chǎn)品在物流過程中基本上在室外就要掃描登記,所以在光照不均勻的情況下,QR碼的二值化效果很差,識別效率因此變得極低。針對這些問題,許多文獻給出了相關解決方案。文獻[1-2]針對光照不均的QR圖像提出了一種改進的基于背景灰度估計的校正算法,該算法在對原圖像進行分快處理的基礎上利用改進的灰度估計公式計算分塊的灰度值,克服了光照不均對二值化閾值選取的影響。文獻[3]針對Ostu算法在不均勻光照下對QR碼圖像二值化處理效果不佳的缺點,提出首先使用改進的同態(tài)濾波去除QR圖像的不均勻光照的影響,提高了條碼識別率。文獻[4]提出了一種適用于嵌入式系統(tǒng)的改進的QR碼圖像二值化算法來處理不均勻光照的情況,它在J. Sauvola提出的自適應局部二值化算法的基礎上調(diào)整了所選閾值,并利用積分圖像來縮短計算時間。文獻[5]針對發(fā)生缺失、破損的QR碼設計了一種基于計算機視覺技術的QR碼商品信息識別系統(tǒng),通過中值濾波、Ostu二值化算法和改進的RS糾錯算法實現(xiàn)去噪、定位及解碼等處理。文獻[6]提出使用一種改進的Hopfield神經(jīng)網(wǎng)絡對污損的QR二維碼圖像進行復原,在污損面積小于23%的情況下基本能被正確識別。文獻[7]通過引入二進制模式約束,使用從多個低分辨率圖像生成高分辨率圖像的超分辨率技術來提高低分辨率的二維碼識別性能。文獻[8]基于溯源系統(tǒng)的獨特性,提出了一種分別利用加權平均值算法、中值濾波算法、sobel算法、圖像二值化算法對圖像的灰度化、濾波處理、邊緣檢測以及二值化進行處理的二維碼算法,該算法實現(xiàn)了在復雜環(huán)境中二維碼均可被清晰識別。
本文采用一種基于同態(tài)濾波與GA(Genetic Algorithm)優(yōu)化的QR碼識別算法,利用同態(tài)濾波增加光照,然后利用GA選擇最優(yōu)全局閾值,最后進行QR碼精確二值化,減少了QR碼因為光照和破損而不能被識別的概率。本文方法在克勝農(nóng)業(yè)集團實際項目中研究發(fā)現(xiàn),并且最終將被運用到集團的溯源項目中,因此可見此技術具有一定的實際應用價值。
1 基于同態(tài)濾波與GA優(yōu)化的QR碼識別算法
QR碼是溯源、物流系統(tǒng)中數(shù)據(jù)的載體,雖然因為其成本不高從而受到了相關行業(yè)的追捧,但是其極易受損并且對掃碼環(huán)境要求較高等因素在一定程度上限制了它的發(fā)展。所以,推動QR碼的應用關鍵在于改進QR碼識別算法,一個成熟的QR碼識別算法應該能夠抵抗惡劣的掃描環(huán)境并且能夠具有一定的糾錯能力。
1.1 QR碼圖像預處理
從攝像采集QR碼到解碼錄入數(shù)據(jù)之間需要進行一系列的預處理工作,預處理的質(zhì)量直接決定了QR碼識別的精確率。一般的QR碼圖像預處理流程包括下面幾步:
Step1:QR碼圖像灰度化。采集到的QR碼圖像一般是彩色的,所以需要對它進行灰度化,將圖像的每個像素點根據(jù)R、G、B 3個函數(shù)值以及相應比例求取灰度值,一幅圖像的灰度值取1~256。
Step2:濾波法去噪。由于QR碼圖像在物品運輸或者拍攝過程中會產(chǎn)生許多噪聲,如果不剔除這些噪聲,將會給圖像二值化處理帶來大量誤差,一般采取中值濾波方法。
Step3:QR圖像二值化。這個過程就是將灰度化后的圖像根據(jù)某一閾值變?yōu)橹缓?,1兩值的特征圖像,例如公式(1)。此過程是整個QR碼識別算法的核心,光照與碼破損對它的影響也是最大的。
其中是原圖像在處的灰度值,是二值化后的值,是選取的閾值,此值的選取是整個識別技術的關鍵。
Step4:QR碼的定位校正,此流程一般是為了防止QR碼存在傾斜現(xiàn)象,方法就是通過小波分析進行邊緣提取,然后進行定位校正。
上述的4個步驟是QR碼圖像識別技術的核心流程,也是圖像預處理的基本流程。其中QR碼圖像二值化是否能夠精確計算,決定了最后的解碼階段是否能夠被準確識別,因此解決光照與破損造成的閾值選取不當問題是QR碼識別技術的關鍵所在。
1.2 基于同態(tài)濾波的QR碼圖像光照增強
同態(tài)濾波是一種典型的頻率域圖像光照增強方法,用它可以消除照度不均勻而引起的圖像質(zhì)量下降問題。圖像同態(tài)濾波的作用是對圖像的灰度范圍進行調(diào)整,通過增強暗區(qū)的圖像細節(jié),同時又不損失亮區(qū)的圖像細節(jié),從而來消除圖像上照明不均的問題。
假設對處于光照環(huán)境下的QR碼進行灰度處理后,處的灰度值為,由于每個像素點都同時存在入射光與反射光,因此可以表示成照度分量與反射分量的乘積,即:
照度分量可以表示為灰度的恒定分量,相當于頻域中的低頻信息;而反射光與物體的邊界性質(zhì)是相關的,相當于頻域中的高頻信息,增強反射光就可以起到提高圖像對比度的作用。所以需要利用濾波函數(shù)增強反射分量,即增強高頻分量,具體方法如下:endprint
兩邊同時取對數(shù):
最后求解的既減弱了照射分量,又加強了反射分量,因此可以很大程度地避免了光照不均帶來的影響。
1.3 基于GA的圖像二值化全局閾值選取
圖像二值化處理是圖像精準分析的基礎,同樣QR碼圖像二值化的效果直接影響了識碼的質(zhì)量與效率。去除上一節(jié)中光照影響QR碼圖像二值化效果的因素,本節(jié)將利用GA選取圖像二值化所需的全局閾值,有效避免QR碼破損導致的閾值選取不當?shù)膯栴}。
傳統(tǒng)的Otsu方法利用窮舉法在圖像的256個灰度值中選取某一最優(yōu)灰度值,使得類間方差公式(8)最?。?/p>
其中是前景像素點所占比例,是背景像素點所占比例,是前景像素點灰度值的平均值,是背景像素點灰度值的平均值,顯然,是關于前景與背景劃分閾值的函數(shù)。傳統(tǒng)窮舉法極易受到碼體破損的影響,使算法容易陷入局部最優(yōu),所以,本文在此基礎上提出基于GA的閾值選取方法,步驟如下。
1.3.1 染色體編碼
本算法的解區(qū)域是1~256個灰度值,因此可以將解區(qū)域中的每個解即灰度值轉(zhuǎn)化為二進制編碼,就是8位0,1二進制數(shù),解區(qū)域即為00000000~11111111。二進制編碼避免了實數(shù)編碼的偶然性,可以更加有效地搜索最優(yōu)解。由于本算法的解區(qū)域不算太大,選擇二進制編碼方式十分合適。
1.3.2 初始化種群
在解區(qū)域中隨機選?。ㄒ话闳?0~14,為偶數(shù))個解作為初始化種群。選擇方式可以采取偽隨機方法,即將解區(qū)域等分為個區(qū)域,在第一個區(qū)域中隨機選取一個解,然后依次加 取得其他-1個解,這樣擴大了解的搜索范圍。
1.3.3 適應度函數(shù)與選擇算子
本算法依然選擇Otsu的類間方差如公式(8)作為適應度函數(shù),作為每次衡量解是否優(yōu)質(zhì)的標準。同時,每輪迭代后都要重新選取個最優(yōu)解,選擇方式非常重要,可以有效地避免局部最優(yōu),因此本算法采取經(jīng)典的輪盤賭選擇策略。
1.3.4 交叉算子
本算法采取二進制多點交叉法,即隨機生成2個實數(shù)作為交叉點,將個解兩兩組成父串。在一組父串進行交叉時,將之間的串相互交換即可,示意圖如下:
1.3.5 變異算子
本算法的變異算子比較簡單,即隨機產(chǎn)生一個實數(shù),同時隨機選擇一個解,將其位置取反,即如果原來是0,就變成1,如果原來是1,就變成0。
1.3.6 迭代停止條件
一般GA的迭代停止條件是超過最大迭代次數(shù)時停止。本算法采取2個迭代停止條件,即2次迭代最優(yōu)值差的絕對值小于或者超過最大迭代次數(shù)則停止迭代。
1.4 識別算法總流程
通過上述內(nèi)容,本文所提出的識別算法已經(jīng)敘述完畢。QR碼識別技術中的關鍵部分就是QR碼圖像預處理,預處理部分中的QR碼二值化最為重要。整個QR碼識別流程可以這樣理解:利用攝像機收集QR碼圖像,對圖像進行灰度化;灰度化的圖像需要通過增強光照來消除光照不均的影響,因此采取同態(tài)濾波算法進行光照增加;利用GA選擇全局最佳閾值,避免QR碼破損帶來的識別錯誤;利用選取的閾值進行QR碼圖像二值化,同時進行校正定位;利用解碼函數(shù)解讀出QR碼的內(nèi)容。算法流程如下:
2 優(yōu)化的QR碼識別算法實驗驗證
為了證明本文提出的基于同態(tài)濾波與GA優(yōu)化的QR碼識別算法具有一定的有效性與實用性,實驗驗證分為2個部分:本節(jié)的優(yōu)化QR碼識別算法的實驗仿真部分與第四節(jié)的嵌入本識別算法的物流系統(tǒng)展示部分。
優(yōu)化的QR碼識別算法的仿真實驗利用MATLAB軟件編程,用于驗證算法的有效性。數(shù)據(jù)集采用了一批通過人工光照處理和模糊處理的實驗QR碼50個,使用本文提出的優(yōu)化算法與基于傳統(tǒng)Ostu二值化的QR碼識別算法進行識別,通過對比2種算法的識別結(jié)果來驗證本算法的有效性,同時抽取某一幅特殊樣例進行細致分析。
通過以上2幅圖片的對比,可以明顯發(fā)現(xiàn)本文提出的優(yōu)化算法的二值化實驗結(jié)果較為清晰,當由于光照不均使原圖存在模糊不清的情況下,本算法能夠正常識別,基于傳統(tǒng)Ostu二值化的算法則不能正常識別。另外,對于50幅QR碼的正確識別率,本文提出的優(yōu)化算法可達85%,基于傳統(tǒng)Ostu二值化的算法只有20%,故本算法的有效性通過了驗證。
3 基于優(yōu)化識別算法的物流系統(tǒng)驗證
為了證明本文提出的優(yōu)化識別算法具有一定的實用性,將本優(yōu)化算法嵌入到實際系統(tǒng)當中對QR碼進行掃描,利用了Spring+MVC框架開發(fā)的B/S系統(tǒng)向用戶展示界面,系統(tǒng)操作環(huán)境均為Windows7.0。所開發(fā)的系統(tǒng)截圖如圖5所示,具有工廠關聯(lián)、入庫以及出庫操作。
圖5 基于優(yōu)化的QR碼識別算法的物流系統(tǒng)
本系統(tǒng)的應用環(huán)境主要是農(nóng)化產(chǎn)品的物流產(chǎn)線,優(yōu)化的識別算法被嵌入在視覺識別硬件儀器上。每箱農(nóng)化產(chǎn)品與每瓶農(nóng)化產(chǎn)品都有標識身份的QR碼,在工廠處,可以用識別儀器采集箱碼與箱中的瓶碼實現(xiàn)工廠關聯(lián)。與當每箱產(chǎn)品從經(jīng)銷商倉庫流動時,識別儀器可以利用優(yōu)化的識別算法采集箱QR碼的內(nèi)容,記錄某箱農(nóng)化產(chǎn)品是否入庫或者出庫。綜上,本系統(tǒng)可以利用本文提出的優(yōu)化QR碼識別算法實現(xiàn)所有農(nóng)化產(chǎn)品的物流信息精確記錄。
4 總結(jié)
由于農(nóng)化產(chǎn)品物流行業(yè)使用的二維碼易受光照影響并且容易損破,本文提出了一種基于同態(tài)濾波與GA優(yōu)化的QR碼識別算法,首先利用同態(tài)濾波增強光照使得圖像能夠準確灰度化,隨后采取GA尋取全局灰度閾值實現(xiàn)精確二值化,減小了QR碼因為光照和破損而不能被識別的概率。
實驗仿真證明,與基于傳統(tǒng)Ostu二值化的QR碼識別算法相比,本優(yōu)化算法的二值化實驗結(jié)果較為清晰,對經(jīng)過模糊處理的QR碼的正確識別率高達85%,具有一定的有效性與實用性。本算法在克勝農(nóng)業(yè)集團實際項目中研究發(fā)現(xiàn),并且最終將被運用到集團溯源項目的物流系統(tǒng)子模塊中。在物流系統(tǒng)的運行過程中,工廠源頭可以高效率地實現(xiàn)瓶箱關聯(lián),并且準確性較高;在物流過程中,產(chǎn)品的物流信息被精確記錄,因此本系統(tǒng)實用性較高。
參考文獻
[1]閆三虎,胡衛(wèi)東,羅小平.改進二值化算法在QR碼識別中的應用[J].計算機系統(tǒng)應用,2011,20(6):165-168.
[2]張繼榮,王利軍.一種改進的QR碼圖像二值化算法[J]. 現(xiàn)代電子技術,2014(7):56-58.
[3]路陽,高慧敏.光照不均QR碼圖像二值化研究[J].太原科技大學學報, 2012, 33(5):396-400.
[4] Zhang W, Yang T. An Improved Algorithm for QR Code Image Binarization[C]// International Conference on Virtual Reality and Visualization. IEEE Computer Society, 2014:154-159.
[5]劉卓夫,羅中明,趙東陽,等.機器視覺技術實現(xiàn)缺損QR條形碼識別[J]. 哈爾濱理工大學學報,2014,19(4):117-121.
[6]袁紅春,侍倩倩.Hopfield神經(jīng)網(wǎng)絡在二維碼污損復原中的應用[J]. 傳感器與微系統(tǒng),2016,35(8):151-154.
[7] Kato Y,Deguchi D,Takahashi T,et al. Low Resolution QR-Code Recognition by Applying Super-Resolution Using the Property of QR-Codes[C]// International Conference on Document Analysis and Recognition. IEEE Computer Society,2011:992-996.
[8]呂長銀.基于二維碼識別技術的化肥溯源信息管理平臺的設計與實現(xiàn)[D].中國科學院大學(工程管理與信息技術學院), 2016.endprint