李筱楠 郑 华 刘会杰
(石家庄铁路职业技术学院 河北石家庄 050041)
QR码图像预处理方案研究
李筱楠 郑华 刘会杰
(石家庄铁路职业技术学院 河北石家庄050041)
图像预处理是QR码解码过程中的重要步骤。在传统识别方案基础上,提出一种实用的QR码图像预处理方法,对采集到的图像进行滤波和二值化处理,由位置探测图形定位QR码的位置和畸变角度,并通过透视变换矫正图像几何形变。实验结果表明,该方案可以克服QR码易受噪声干扰、光照不均和几何失真等影响的问题,显著提高了QR码的识别率。
QR码 滤波 二值化 透视变换
QR(Quick Response)码是一种矩阵二维码,具有可靠性高、防伪性强等优点,在物流、邮政、证件、电子车票等领域有广泛应用。然而,受到张贴位置、制作材料等因素的影响,暴露在外的QR码常被污损、撕扯,导致图像不完整;另外,拍摄角度、摄影设备不稳定,也会致使图像倾斜、变形、失真;此外,受到光照和阴影影响,图像中还可能存在曝光过度、不足等噪声。以上情况都会导致QR码图像辨识困难。
本文通过分析QR码自身特点和降晰信息,在现有多种图像预处理算法基础上,提出一种更有效的QR码图像预处理算法,提高QR码的识别率和识别速度。
ISO18004规定QR码是由nxn个正方形码元模块构成的阵列,如图1所示。根据模块功能不同,可以将QR码图像分为编码区和功能区。编码区主要用于存储数据、纠错信息版本信息和格式信息;功能区则包括位置探测图形、分隔符、定位图形和校正图形等。
位置探测图形位于符号的3个顶点[1],用于快速定位QR码在原图像中的位置。每个位置探测图形由深、浅色模块按照1∶1∶3∶1∶1交替排列而成,该比例具有水平不变性。这一特性使得条码图像在全方位旋转下也可以通过搜索3个位置探测图形实现定位和矫正。
受到拍摄条件和随机干扰的影响,用户拍摄采集的QR码原始图像很难直接识别,必须经过滤波、矫正等图像处理过程后才能有效解码。
图1 QR码结构图
3.1图像滤波
原始图像中存在两种噪声:一种是由于QR码本身被污染或者破损而产生的自然噪声;另一种是在图像采集、传输过程产生的电子噪声[2]。自然噪声可以在解码时通过纠错信息排除;而电子噪声一般为椒盐噪声,表现为图像中的黑白杂点,很难与QR码的黑白两色码元模块彻底区分,只能使用滤波消除。另外,QR码在解码过程中需要测量模块面积,因此模块边缘信息非常重要。为了保留图像边缘锐度,本文中采用中值滤波[3]进行降噪。
中值滤波是基于排序统计理论的非线性数据处理技术,其基本原理是通过邻域运算把图像傅里叶空间的高频分量减弱或消除,高频分量正是对应图像中亮度变化剧烈的区域,过滤除这些分量可以让图像整体更加平滑,从而消除电子噪声。本文采用3x3模板进行中值滤波,其步骤如下:(1)将模板中心置于原始图像的某像素点上;(2)读取模板中该像素邻域各点的灰度值;(3)建立模板矩阵;(4)计算模板矩阵中值;(5)将中值赋给模板中心处像素点;(6)将模板在图像中遍历。
经测试,中值滤波对版本12(65x65码元模块)以下的QR码图像有比较好的滤波效果,高版本的QR码由于码元模块数量多、面积小,很难排除其中的电子噪声。
3.2图像二值化
摄像装备采集到的图像是彩色图像或灰度图像,数据量较大,不利于识别,因此有必要对原图进行二值化处理。二值化过程的关键是确定二值化阈值,阈值选取算法可以分为全局阈值法和局部阈值法两类。
全局阈值法[4]使用固定值对图像进行二值化,对直方图中存在明显双波峰的图像效果最佳。但由于QR码本身由黑白两色组成,在光照条件不好时,其直方图中并没有明显的波峰信息,即便是目前公认最有效的OTSU算法也无法很好地解决QR码原始图像的二值化问题。
局部阈值法中每个像素位置的二值化阈值是由其邻域像素状态所决定。不同亮度、对比度的图像区域将会有相对应的局部阈值。在文献[5]中,提出了一种改进的Bernsen算法,对于光照不匀的QR码图像有很好的处理效果,但是其占用资源多,在Android系统中运行较慢。
3.3图像矫正
由于采集角度、QR码附着对象本身不是平面等原因,可能造成原始图像中存在几何失真。可以通过定位QR码的3个位置探测图形确定QR码的位置和畸变角度,将其从原图中提取并加以修正。
QR码中位置探测图形是整个图像中的特有部分,可以通过边缘检测算法进对其进行搜索和定位。图像边缘检测是指通过算法搜索邻近像素点的灰度值具有阶跃变化或者屋顶变化特性的那些像素集合,经过二值化后,图像中的像素值只有255和0两种,边缘检测比较容易。本文使用了第三方openCV库中的一阶搜索算子Sobel算子[6]实现。
将得到的3个探测图形连成三角形,如果图像无畸变,则该三角形为等腰直角三角形,图像可直接识别;如果图像有畸变,则三角形斜边所对的顶点即为QR码中左上角探测图形的中心点,其夹角减去π/2即为畸变角度。获取图像顶点和畸变角度后,既可通过文献[7]提出的透视变换算法对图像进行矫正。
为测试版本方案对QR码畸变图像的处理时间和处理后的图像识别率,现使用QR码版本3、Level M生成一幅480X480像素的QR码图像作为标准图像;使用PhotoShop编辑标准图像,产生畸变角度为15°、30°、45°的失真图像;使用红米Note手机同时安装本方案APK和谷歌提供的ZXing APK扫描标准图像和3种畸变图像各50次,记录识别次数和解码时间,测试数据如表1所示。
表1 测试结果统计表
可见,本方案对于畸变角度不大于30°的QR码图片有很好的矫正效果,矫正后的图片识别成功率明显提高。但由于手机处理器性能不足,修正和变换图片消耗时间比较长,下一步还需要优化处理算法的时间复杂度,尽量减少运算时间。
[1]快速响应矩阵码GB/T18284-2000.国家质量技术监督局. 2000
[2]一种基于图像增强的图像滤波方法.康牧.武汉大学学报.2009-9
[3]一种基于自适应神经模糊推理系统的图像滤波方法.罗海驰;李岳阳;孙俊.计算机科学.2013-7
[4]Otsu准则的阈值性质分析.许向阳;宋恩民;金良海.电子学报.2009-12
[5]改进的Bernsen算法实证研究.张红颖.电子世界.2013-02
[6]基于改进Sobel算子的边缘检测算法的研究.何春华;张雪飞;胡迎春.光学技术.2012-05
[7]基于改进Hough变换和透视变换的透视图像矫正.代勤;王延杰;韩广良.液晶与显示.2012-08
Research of QR Code Image Preprocessing Scheme
LI Xiao-nan ZHENG Hua LIU Hui-jie
(Shijiazhuang Institute of Railway Technology ShijiazhuangHebei050041China)
Image preprocessing is an important step in the process of QR code decoding. In this paper, a practical image preprocessing method for QR code recognition is proposed. Image binarization can reduce process computation, and locate QR code based on its symbol characteristics. Experimental results demonstrate that the proposed approach can overcome the influence from noise,inhomogeneous light and geometric distortion, and thus increase the recognition rate of the QR code
QR code filtering binarization perspective transformation
文献标识码:A文章编号:1673-1816(2016)03-0069-03
2016-06-18
李筱楠(1981-),男,汉,河北石家庄人,讲师,学士,研究方向网络通信。
河北省科技计划项目(15270330);河北省高等学校科学技术研究青年基金项目(QN2016215);河北省高等学校科学技术研究自筹项目(ZC2016109)