基于图像处理的复杂条件下手机二维码识别
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于图像处理的复杂条件下手机二维码识别
黄宏博1 ,穆志纯2
( 1.北京信息科技大学计算中心,北京100192; 2.北京科技大学信息工程学院,北京100083)
0 引言
在自动识别技术中,二维条码技术以其低成本、快速识读、大信息量、高安全性等优点,在社会生活中应用越来越广泛。物联网技术的蓬勃发展,也对二维条码技术提供了广阔的应用空间。相应的二维条码编码、解码技术研究已经很多,应用上也基本成熟。目前,随着移动通信技术的飞速发展,手机的拥有量和使用量越来越大,功能也越来越强。二维条码技术和移动通信技术的结合,促成了手机二维码的诞生。因此,研究在手机等带有摄像头的智能嵌入式设备中的解码技术变得非常必要。与PC 系统下的解码方式相比,手机型号多种多样,性能差别很大,摄像头拍摄时受环境干扰也多。在复杂条件下如何有效进行二维条码解码的研究就显得非常必要。本文以QR 二维条码为例,通过图像处理技术对带有摄像头的智能设备采集的二维条码图像进行分析处理,解码出二维条码的编码信息,为手机二维码的广泛应用打下一定的技术基础。
1)QR 码简介
QR 码是快速识别矩阵码( quick response code)的简称,最早由日本Denso 公司在1994 年9 月推出,我国于2000 年底颁布了QR 码的国家标准。QR码符号呈正方形,由空白区、功能图形区、数据图形区组成。功能图形区又分为位置探测图形、校正图形、格式信息、版本信息、定位图形等不同图形格式,如图1 所示。各部分图形都由深色模块( 代表二进制1) 或浅色模块( 代表二进制0) 组成,位置清晰,功能性强,有利于进行图像处理和识别。根据编码数据量的多少,QR 码可以分为40 个版本,版本1 符号大小为21 ×21 模块。从版本1 到版本40,符号容量越来越大,相应的图像所占打印面积也随之增大,每增大一个版本,符号图像的每边就增加4 个模块。QR 码有较强的数据容错能力,使用Reed -Solomon 码进行差错控制。根据需要,可以设定L、M、Q、H 四个纠错等级,分别可恢复传输或识读出错的约7%、15%、25%、30% 的码字信息。
2) 系统结构
QR 码作为手机二维码,其应用模式如图2 所示。手机等智能设备通过摄像头采集带有条码符号的图像,对图像进行灰度化、二值化、旋转校正等预处理,进行条码检测。如果检测到非QR 码,则重新采集; 如果是QR 码,则进行图像信息的取样。用Reed - Solomon 码的译码算法对取到的数据进行纠错译码,统计出现的错误数量。如果错误数量超出纠错容量,则纠错译码失败,重新采集图像; 如果可以正确进行纠错译码,则把纠错后的信息进行各种数据模式下的译码,恢复出编码信息,继而根据应用模式进行信息输出、发送短信或网址跳转等后续处理。
1 图像预处理
1. 1 灰度化
智能设备通过摄像头采集到的图像一般是彩色图像。因为QR 码携带的信息只需深浅两色即可表征,所以可以把彩色图转换为灰度图,继而转换为二值图像来处理,灰度化和二值化后可以显著降低图像处理的复杂度。摄像头采集到的彩色图像,一般是在RGB 空间编码的。每个像素分别用1 个字节表示R、G、B 三原色。如果把RGB 空间转换为YUV色彩空间,那么Y 分量刚好表示像素的亮度,可以作为灰度值。转换公式为
转换时,不必计算U 和V 两个分量的值,只需按照Y = 0. 299R + 0. 587G + 0. 114B ( 2)计算每个像素对应的灰度值,存储为1 个字节( 即256 灰度级) 即可。
1. 2 二值化
在用手机摄像头采集图像时,由于拍摄条件不同,环境光源的干扰较多,采集的图像经过灰度化后光线往往是不均衡的,如图3( a) 所示。如果直接对其进行二值化,使用单一阈值,则会把灰色的背景区域处理成为黑色前景,掩盖了条码符号的信息。图3( b) 所示为使用全局阈值算法生成自动阈值进行二值化的结果。可见,用这种方法二值化的图像难以恢复条码信息。对照该图像的直方图可见,直方图信息明显分为3 个波峰: 第1 个波峰对应黑色的条码模块; 第2 个波峰对应灰色背景; 第3 个波峰对应白色模块和空白区域。为此,考虑对图像进行分块,应用改进的Niblack 局部阈值化算法,分别进行二值化[3 - 4]。图像的直方图如图3( c) 所示,明显具有3 峰结构。按照直方图计算3 峰的区间,按区间边界的灰度值对图像进行分区。对每个区域分别二值化,再叠加,得到全局的二值化图像,如图3( d) 所示。可见,多阈值进行的二值化效果明显高于单一阈值,可以有效去除光线不均的影响。为增强算法的适应性,避免对光线均衡图像处理的复杂化,可按照以下步骤分类进行:
1) 计算并考察输入图像的直方图,如果直方图呈现明显的双峰结构,说明该图像的光线均衡,直接用直方图双峰法计算全局阈值,对图像进行二值化;
2) 如果图像直方图呈现单峰或弱双峰结构,说明图像偏亮或偏暗,可使用Otsu 算法计算全局阈值进行二值化;
3) 如果图像直方图具有明显的3 峰结构,说明图像光照不均,可对图像进行分块,使用改进的Niblack 多阈值方法二值化图像。
图3 多阈值二值化
1. 3 畸变校正与图像裁切因为手机摄像头拍摄时物距较短,存在较明显的透视现象,所以拍出来的
条码图像常常出现几何失真。QR 码图像本应是一个正方形,拍摄的图像却畸变成一个不规则的四边形。出现几何失真的QR 码图像,很难通过解码算法译出编码信息,必须进行校正。利用二维图像的投影变换,可以对失真图形进行校正。对手机拍摄的图像进行Hough 变换,求出条码的4 条边界线。由边界线求出A、B、C、D 四个交点,如图4 所示。
图4 图像的投影变换
设P 为拍摄图像中任意一点,用齐次坐标表示为( x,y,1) '。在校正图像中存在唯一的一点P'与P 对应,其齐次坐标设为( xh,yh,h) ',则存在投影变换矩阵T,满足P' = TP,即
把'的齐次坐标转换为普通坐标,有
其中t22为比例因子,可取为1。将图4 中A、B、C、D四个顶点坐标以及对应的校正图中的A'、B'、C'、D'分别代入式( 4) 、式( 5) ,可得8 个方程,解出矩阵T中的8 个未知数[5]。对拍摄图中的各像素,用式( 3) 计算得到校正值的坐标,再利用双线性插值方法进行插值,可直接得到旋转到水平方向的校正图,不需要再进行旋转校正。校正效果如图5 所示。
图5 畸变校正
手机拍摄QR 码图像时,可能会同时采集到条码周围其他的图像。这些干扰图像会增加图像处理的复杂度,因此,可以把这些没必要的干扰图像通过裁切的方式去除。校正后,直接对正方形A'B'C'D'外的区域裁切,就可以去除其余背景。1. 4 符号定位QR 码符号中有3 个位置探测图形,分别位于符号图像4 个角中的3 个角,每个位置探测图像都是由固定深浅颜色的模块组成。模块深浅颜色顺序为深色—浅色—深色—浅色—深色,各元素宽度的比例为1∶ 1∶ 3∶ 1∶ 1。即使图像有旋转,位置探测图像的模块颜色顺序和宽度比例也不变。对二值化后的图像按行、列分别逐点扫描,把同一灰度级的相邻像素记录为线段。如果有5 段线段的长度比例符合1∶ 1∶ 3 ∶ 1 ∶ 1,且深浅颜色顺序为深—浅—深—浅—深,则记录该线段。扫描完后,把行相邻的线段分为1 组,去除与所有线段都不相邻的行线段( 可能是随机的干扰线段) 。同样处理列线段,把行线段组和列线段组中相互交叉的组分类,求出交叉的行、列线段组的中心点,即为位置探测图形的中心。
2 信息采样