1 引言
近年来,由于制造业自动化需求的不断增长,机器人、物联网、人工智能等技术相继进入工厂,生产线逐步向智能化升级,开启了工业4.0新生产模式。由于QR(Quick Response)码存储信息容量大、编码范围广、数据信息采集和数据信息处理的速度快等,[1]QR二维码表现出巨大的发展潜力,地位也日益提升,。然而在实际的情况中会有各种原因如光照不均所出现的图像出现噪声污染(椒盐噪声),会出现图像识别困难,需要进行滤波降噪、腐蚀、膨胀等操作。
2 原理及识别流程
QR码是二维条码的一种,呈正方形,在外观来看是由黑白的小方块组成正方矩阵,包括功能图像和编码区两个主要区域。编码区包含数据以及纠错码字,按照特定的规律记录数据符号的二维信息图形。在矩阵相应元素位置上,用点的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列组合确定了矩阵式二维条码所代表的意义。在四个角落有三个较大的回字,用于解码软件的定位。
(1)首先采集QR码图像的三分量图像,图像的等级为256会占据比较大的内存空间,所以把采集到的彩色图像使用加权平均法转化为灰度图像可以节省更大的内存空间,并且在实际中更具有实际意义,
(2)然后对灰度图像进行滤波处理,减少噪声对和图像的干扰。
(3)接下来是对QR码灰度图像[2]采取改进算法进行二值化,并将二维码提取出来;最后是对图像进行识别,结合QR码的符号特征,读取QR二维码内储存的信息(如图1所示)。
图1 流程图
3 图像识别
由于成像系统的硬件限制,导致对比度不足,图像视觉效果比较差。为降低后续处理与计算的复杂度,所以有必要对采集到的图像进行灰度化处理。在工厂环境中识别QR二维码信息时,由于外部环境的污染等会产生不同的噪声,这时滤波可以对污染受损、边缘模糊的图像提高清晰度;同时形态学处理对图像中的边界点进行抹除试图像进行细化,模板与图像背景点合并试图像边界加长或变粗对图像分割后物体间的空孔洞填充。
3.1 图像预处理
受外部环境的干扰,产生高斯噪声,这时需对整幅图像进行加权平均,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到信号的滤波器公式(1)。
(1)
高斯滤波后图像被平滑的程度取决于标准差。[3]输出是邻域像素的加权平均,像素离中心越近,权重越高。相对于均值滤波,平滑效果更柔和,而且边缘也更好地保留下来,参见图2所示。
图2 高斯滤波后的图像
由于图像以数字图像的形式存储在计算机中,即图像是离散的数字信号,因此对数字图像的梯度使用差分来代替连续信号中的微分。Solbe算子式(2)(3)抑制(平滑)噪声,估计边缘的强度和方向参见图3所示。
图3 Solbe算子后的图像
3.2 形态学处理
为减少光照不均产生的噪声,使用数学形态学的基础运算腐蚀与膨胀对灰度图像二值化操作。即对转换后的图像进行“最大值”和“最小值”操作,保存灰度信息。
在图像处理时希望去除除了感兴趣的区域外的的噪声,利用式(4)去除孤立的点进行腐蚀操作。如图4中,不希望存在二维码图像周围的线条,使用一个原素全是1的方形结构元腐蚀该图像,腐蚀后如图5所示,可以得到大多数为1的线条都被去除。
(4)
图4 二值化后图像
图5 腐蚀后图像
与腐蚀不同,腐蚀是一种收缩和细化的操作,膨胀则是对二值化的图像中的图像进行“增长”或者是说将图像“粗化”是利用特殊的方式和粗化的宽度由所用的结构元来改变。使用式(5)填充条形码间空隙,根据核的大小,有可能需要2~3次膨胀操作。如图6所示是对图像进行3次膨胀后得到的图像。
(5)
图6 形态学膨胀后图像
由于噪声的影响,阈值化后所得到的图像边界通常是非常不平滑的,在物体区域会出现噪声孔,而在背景区域上散布着一些小的噪声物体。对图像进行连续的开合闭运算可以填充条码间的细小空格、连接邻近物体、平滑其边界的同时并不明显改变其面积。经过多次膨胀之后加上相同次数的腐蚀,才可以产生比较好的效果。经过式(6)的闭运算如图7所示。
(6)
图7 闭运算后图像
4 图像译码
从第一行开始,对图像进行逐行扫描,通过深浅模块比例为1:1:3:1:1的区域时,对行像素的中心位置以及中心区域的像素宽度,扫描完毕进行逐列扫描,同样获得列像素的中心位置,最终获得左上角位置“回”字的图像中心。[4]确定左上角位置“回“字宽度及中心列坐标和右上角的“回”字宽度及中心。通过式(7)确定QR码的版本。
(7)
QR码解码流程如下所示:
对得到的二进制信息进行译码和纠错。译码是对版本格式信息,数据和纠错码进行解码和比较。并且纠错和译码同时进行。得到如图8所示的信息。
图8 译码结果
5 结束语
针对智能工厂中的QR码识别过程中的椒盐噪声,在光照不均的情况下通过形态学方法对图像进行处理,消除噪声的影响提高二维码的识别。本文首先对图像的预处理过程进行详细剖析,在复杂背景下的图像的定位与特征提取,加快特征目标的检测速度和准确率。