吴成伟+吴静+徐其文+张欣慧
摘 要:随着物联网的迅猛发展,QR码作为数据载体被广泛应用。本文就农化产品物流行业使用的二维码易受光照影响并且容易损破的问题提出了一个优化的QR码识别技术,采取同态滤波增强光照使得图像能够准确灰度化,然后采取GA寻取全局灰度阈值实现精确二值化。经实验证明,本文所采取的二维码识别算法识别效率较高。同时,本文还建立了基于此优化QR码识别算法的农化产品物流系统。
关键词:QR码;同态滤波;遗传算法;二值化
中图分类号:S-3 文献标识码:A DOI:10.11974/nyyjs.20170931003
引言
在信息技术发展迅速的今天,物联网不再仅仅局限于理论上的研究,许多物联网应用如雨后春笋般出现在市面上。数据采集端也不再是局限于传感器、RFID(Radio Frequency Identification)等昂贵的硬件设施,而是能够载存物品特征的条码,特别是能够载存复杂信息的QR(Quick Response)码。QR码技术被广泛运用在物品溯源、物流追踪等热门物联网行业,成为大数据的收集源泉。
一般的物流行业对QR码要求不高,因为物品在运输过程中QR码不易受到破损,扫码环境在室内也就不会受到光照等因素的影响。但是农化产品例如农药、化肥等物品在运输过程中极容易因为挤压、刮擦等原因受到破损,同时由于这些产品在物流过程中基本上在室外就要扫描登记,所以在光照不均匀的情况下,QR码的二值化效果很差,识别效率因此变得极低。针对这些问题,许多文献给出了相关解决方案。文献[1-2]针对光照不均的QR图像提出了一种改进的基于背景灰度估计的校正算法,该算法在对原图像进行分快处理的基础上利用改进的灰度估计公式计算分块的灰度值,克服了光照不均对二值化阈值选取的影响。文献[3]针对Ostu算法在不均匀光照下对QR码图像二值化处理效果不佳的缺点,提出首先使用改进的同态滤波去除QR图像的不均匀光照的影响,提高了条码识别率。文献[4]提出了一种适用于嵌入式系统的改进的QR码图像二值化算法来处理不均匀光照的情况,它在J. Sauvola提出的自适应局部二值化算法的基础上调整了所选阈值,并利用积分图像来缩短计算时间。文献[5]针对发生缺失、破损的QR码设计了一种基于计算机视觉技术的QR码商品信息识别系统,通过中值滤波、Ostu二值化算法和改进的RS纠错算法实现去噪、定位及解码等处理。文献[6]提出使用一种改进的Hopfield神经网络对污损的QR二维码图像进行复原,在污损面积小于23%的情况下基本能被正确识别。文献[7]通过引入二进制模式约束,使用从多个低分辨率图像生成高分辨率图像的超分辨率技术来提高低分辨率的二维码识别性能。文献[8]基于溯源系统的独特性,提出了一种分别利用加权平均值算法、中值滤波算法、sobel算法、图像二值化算法对图像的灰度化、滤波处理、边缘检测以及二值化进行处理的二维码算法,该算法实现了在复杂环境中二维码均可被清晰识别。
本文采用一种基于同态滤波与GA(Genetic Algorithm)优化的QR码识别算法,利用同态滤波增加光照,然后利用GA选择最优全局阈值,最后进行QR码精确二值化,减少了QR码因为光照和破损而不能被识别的概率。本文方法在克胜农业集团实际项目中研究发现,并且最终将被运用到集团的溯源项目中,因此可见此技术具有一定的实际应用价值。
1 基于同态滤波与GA优化的QR码识别算法
QR码是溯源、物流系统中数据的载体,虽然因为其成本不高从而受到了相关行业的追捧,但是其极易受损并且对扫码环境要求较高等因素在一定程度上限制了它的发展。所以,推动QR码的应用关键在于改进QR码识别算法,一个成熟的QR码识别算法应该能够抵抗恶劣的扫描环境并且能够具有一定的纠错能力。
1.1 QR码图像预处理
从摄像采集QR码到解码录入数据之间需要进行一系列的预处理工作,预处理的质量直接决定了QR码识别的精确率。一般的QR码图像预处理流程包括下面几步:
Step1:QR码图像灰度化。采集到的QR码图像一般是彩色的,所以需要对它进行灰度化,将图像的每个像素点根据R、G、B 3个函数值以及相应比例求取灰度值,一幅图像的灰度值取1~256。
Step2:滤波法去噪。由于QR码图像在物品运输或者拍摄过程中会产生许多噪声,如果不剔除这些噪声,将会给图像二值化处理带来大量误差,一般采取中值滤波方法。
Step3:QR图像二值化。这个过程就是将灰度化后的图像根据某一阈值变为只含有0,1两值的特征图像,例如公式(1)。此过程是整个QR码识别算法的核心,光照與码破损对它的影响也是最大的。
其中是原图像在处的灰度值,是二值化后的值,是选取的阈值,此值的选取是整个识别技术的关键。
Step4:QR码的定位校正,此流程一般是为了防止QR码存在倾斜现象,方法就是通过小波分析进行边缘提取,然后进行定位校正。
上述的4个步骤是QR码图像识别技术的核心流程,也是图像预处理的基本流程。其中QR码图像二值化是否能够精确计算,决定了最后的解码阶段是否能够被准确识别,因此解决光照与破损造成的阈值选取不当问题是QR码识别技术的关键所在。
1.2 基于同态滤波的QR码图像光照增强
同态滤波是一种典型的频率域图像光照增强方法,用它可以消除照度不均匀而引起的图像质量下降问题。图像同态滤波的作用是对图像的灰度范围进行调整,通过增强暗区的图像细节,同时又不损失亮区的图像细节,从而来消除图像上照明不均的问题。
假设对处于光照环境下的QR码进行灰度处理后,处的灰度值为,由于每个像素点都同时存在入射光与反射光,因此可以表示成照度分量与反射分量的乘积,即:
照度分量可以表示为灰度的恒定分量,相当于频域中的低频信息;而反射光与物体的边界性质是相关的,相当于频域中的高频信息,增强反射光就可以起到提高图像对比度的作用。所以需要利用滤波函数增强反射分量,即增强高频分量,具体方法如下:endprint
两边同时取对数:
最后求解的既减弱了照射分量,又加强了反射分量,因此可以很大程度地避免了光照不均带来的影响。
1.3 基于GA的图像二值化全局阈值选取
图像二值化处理是图像精准分析的基础,同样QR码图像二值化的效果直接影响了识码的质量与效率。去除上一节中光照影响QR码图像二值化效果的因素,本节将利用GA选取图像二值化所需的全局阈值,有效避免QR码破损导致的阈值选取不当的问题。
传统的Otsu方法利用穷举法在图像的256个灰度值中选取某一最优灰度值,使得类间方差公式(8)最小:
其中是前景像素点所占比例,是背景像素点所占比例,是前景像素点灰度值的平均值,是背景像素点灰度值的平均值,显然,是关于前景与背景划分阈值的函数。传统穷举法极易受到码体破损的影响,使算法容易陷入局部最优,所以,本文在此基础上提出基于GA的阈值选取方法,步骤如下。
1.3.1 染色體编码
本算法的解区域是1~256个灰度值,因此可以将解区域中的每个解即灰度值转化为二进制编码,就是8位0,1二进制数,解区域即为00000000~11111111。二进制编码避免了实数编码的偶然性,可以更加有效地搜索最优解。由于本算法的解区域不算太大,选择二进制编码方式十分合适。
1.3.2 初始化种群
在解区域中随机选取(一般取10~14,为偶数)个解作为初始化种群。选择方式可以采取伪随机方法,即将解区域等分为个区域,在第一个区域中随机选取一个解,然后依次加 取得其他-1个解,这样扩大了解的搜索范围。
1.3.3 适应度函数与选择算子
本算法依然选择Otsu的类间方差如公式(8)作为适应度函数,作为每次衡量解是否优质的标准。同时,每轮迭代后都要重新选取个最优解,选择方式非常重要,可以有效地避免局部最优,因此本算法采取经典的轮盘赌选择策略。
1.3.4 交叉算子
本算法采取二进制多点交叉法,即随机生成2个实数作为交叉点,将个解两两组成父串。在一组父串进行交叉时,将之间的串相互交换即可,示意图如下:
1.3.5 变异算子
本算法的变异算子比较简单,即随机产生一个实数,同时随机选择一个解,将其位置取反,即如果原来是0,就变成1,如果原来是1,就变成0。
1.3.6 迭代停止条件
一般GA的迭代停止条件是超过最大迭代次数时停止。本算法采取2个迭代停止条件,即2次迭代最优值差的绝对值小于或者超过最大迭代次数则停止迭代。
1.4 识别算法总流程
通过上述内容,本文所提出的识别算法已经叙述完毕。QR码识别技术中的关键部分就是QR码图像预处理,预处理部分中的QR码二值化最为重要。整个QR码识别流程可以这样理解:利用摄像机收集QR码图像,对图像进行灰度化;灰度化的图像需要通过增强光照来消除光照不均的影响,因此采取同态滤波算法进行光照增加;利用GA选择全局最佳阈值,避免QR码破损带来的识别错误;利用选取的阈值进行QR码图像二值化,同时进行校正定位;利用解码函数解读出QR码的内容。算法流程如下:
2 优化的QR码识别算法实验验证
为了证明本文提出的基于同态滤波与GA优化的QR码识别算法具有一定的有效性与实用性,实验验证分为2个部分:本节的优化QR码识别算法的实验仿真部分与第四节的嵌入本识别算法的物流系统展示部分。
优化的QR码识别算法的仿真实验利用MATLAB软件编程,用于验证算法的有效性。数据集采用了一批通过人工光照处理和模糊处理的实验QR码50个,使用本文提出的优化算法与基于传统Ostu二值化的QR码识别算法进行识别,通过对比2种算法的识别结果来验证本算法的有效性,同时抽取某一幅特殊样例进行细致分析。
通过以上2幅图片的对比,可以明显发现本文提出的优化算法的二值化实验结果较为清晰,当由于光照不均使原图存在模糊不清的情况下,本算法能够正常识别,基于传统Ostu二值化的算法则不能正常识别。另外,对于50幅QR码的正确识别率,本文提出的优化算法可达85%,基于传统Ostu二值化的算法只有20%,故本算法的有效性通过了验证。
3 基于优化识别算法的物流系统验证
为了证明本文提出的优化识别算法具有一定的实用性,将本优化算法嵌入到实际系统当中对QR码进行扫描,利用了Spring+MVC框架开发的B/S系统向用户展示界面,系统操作环境均为Windows7.0。所开发的系统截图如图5所示,具有工厂关联、入库以及出库操作。
图5 基于优化的QR码识别算法的物流系统
本系统的应用环境主要是农化产品的物流产线,优化的识别算法被嵌入在视觉识别硬件仪器上。每箱农化产品与每瓶农化产品都有标识身份的QR码,在工厂处,可以用识别仪器采集箱码与箱中的瓶码实现工厂关联。与当每箱产品从经销商仓库流动时,识别仪器可以利用优化的识别算法采集箱QR码的内容,记录某箱农化产品是否入库或者出库。综上,本系统可以利用本文提出的优化QR码识别算法实现所有农化产品的物流信息精确记录。
4 总结
由于农化产品物流行业使用的二维码易受光照影响并且容易损破,本文提出了一种基于同态滤波与GA优化的QR码识别算法,首先利用同态滤波增强光照使得图像能够准确灰度化,随后采取GA寻取全局灰度阈值实现精确二值化,减小了QR码因为光照和破损而不能被识别的概率。
实验仿真证明,与基于传统Ostu二值化的QR码识别算法相比,本优化算法的二值化实验结果较为清晰,对经过模糊处理的QR码的正确识别率高达85%,具有一定的有效性与实用性。本算法在克胜农业集团实际项目中研究发现,并且最终将被运用到集团溯源项目的物流系统子模块中。在物流系统的运行过程中,工厂源头可以高效率地实现瓶箱关联,并且准确性较高;在物流过程中,产品的物流信息被精确记录,因此本系统实用性较高。
参考文献
[1]闫三虎,胡卫东,罗小平.改进二值化算法在QR码识别中的应用[J].计算机系统应用,2011,20(6):165-168.
[2]张继荣,王利军.一种改进的QR码图像二值化算法[J]. 现代电子技术,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]刘卓夫,罗中明,赵东阳,等.机器视觉技术实现缺损QR条形码识别[J]. 哈尔滨理工大学学报,2014,19(4):117-121.
[6]袁红春,侍倩倩.Hopfield神经网络在二维码污损复原中的应用[J]. 传感器与微系统,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]吕长银.基于二维码识别技术的化肥溯源信息管理平台的设计与实现[D].中国科学院大学(工程管理与信息技术学院), 2016.endprint