基于LabVIEW的二维码高效识别系统设计与实现

2019-09-24 08:50
关键词:灰度预处理二维码

(1.石家庄铁道大学 电气与电子工程学院,河北 石家庄 050043;2.清华大学 汽车安全与节能国家重点实验室,北京 100084)

0 引言

二维码是由一系列黑白点(方点,圆点或其它形状)构成的几何图案。每个信息字节通过对应的ASCII码转化为二进制即可保存在这些黑白点,其中,黑点表示二进制的‘1’,白点表示二进制的‘0’。将这些黑白像素按一定规律排列便可在二维码中存储大量信息。其编码过程有:①数据编码;②结束码和补齐码;③纠错码;④最终编码。第一步数据编码就是将需要存储的信息转化为二进制数据,后面三步是完成将编好的二进制数据存入二维码。常用的条码扫描器一般由光源、光学透镜、扫描模组、模拟数字转换电路加塑料外壳构成。它利用光电元件将检测到的光信号转换成电信号,再将电信号通过模拟数字转换器转化为数字信号传输到计算机中处理。当扫描一副图像的时候,光源照射到图像上后反射光穿过透镜会聚到扫描模组上,由扫描模组把光信号转换成模拟信号(即电压,它与接受到的光的强度有关)[1]再经由模拟-数字转换电路把模拟电压转换成数字信号,传送到电脑。

依托清华大学汽车安全与节能国家重点实验室ESC功能测试平台开发了基于LabVIEW视觉检测系统,旨在通过数字图像处理方法自动定位并识别电子稳定控制系统PCB版上雕刻的QR二维码,为ESC功能检测平台提供一种快速、高效且低成本的信息识读手段。本研究提出的系统实际应用范围并不局限于此,如文献[2]中提出的基于车票识别的铁路客运站旅客引导系统,本系统亦可完美切入,以车票二维码为信息为载体,实现联合识别,更好地为铁路客运系统服务。

1 系统实现过程

典型的图像识别系统主要由4个阶段组成,包括图像采集、图像预处理、图像定位与图像识别。图像采集卡将采集的图像信息导入上位机,设置相应的条件判断与循环执行语句,利用LabVIEW中加载的IMAQ Vision视觉与运动模块循环加载图像信息,加强系统的高效准确运行,再进行后续的图像预处理、图像定位、特征提取与最终实现二维码的识别。

数字图像处理的第一步工作就是图像预处理,主要包括图像的灰度化,滤波以及二值化,以消除图像中的无关信息为目的,保留系统所需的主要信息区域且增强重要信息的可检测性,同时也最大限度地简化了图形数据,从根本上改善特征提取、图像分割、匹配和识别[3]的稳定与精确。文献[4]提出QR码在图像采集过程中会出现椒盐噪声,提出图像先二值化再进行基于滤波窗系数的中值滤波处理。文献[5]提出了一种中值滤波与小波变换相结合的方法实现织物瑕点图像预处理。图形的定位与特征提取是图像处理系统中非常重要的部分,直接关系到二维码有效信息的读取。Chen et al[6]提出了一种基于纹理和边缘信息的图像定位方法。刘海华等[7]与王相海等[8]提出了基于形态学处理的模糊聚类技术与小波图像比率可分级编码研究。Hontani et al[9]开发了一种方法,在不知道图像位置和图像大小的情况下提取出该图形模板。以上文献都是基于图形尺度形状进行分析定位且该方法较为成熟。本系统采用LabVIEW中一些基本的图像处理工具,以及滤波器模块和形态学技术来定位图形。最后使用LabVIEW内置的Instrument Readers工具来识别二维码的信息。系统工作流程如图1所示。

图1 系统工作流程

2 软件设计

LabVIEW提供的IMAQ Vision视觉与运动模块是图形化编程语言,程序设计中需要完成前面板人机交互界面,程序框图算法设计以及各个模块间的端口连接,保证系统正常运行。

2.1 图像采集模块

在LabVIEW程序面板中调用驱动摄像头vi,选择相应串口连接,配置驱动文件。系统运行前先进行图像采集卡初始化(img0),再进行指令触发,采集图形信息和实时显示图像,最后关闭图像采集卡。在这一过程中由IMAQ Create.vi建立一组记忆空间作为缓存区来存储外部取得的图形影像。采集程序结构由While循环组成,因此循环采集的图形信号会被不断输入覆盖到记忆空间内,构成图形的实时显示(Image Out)[10]。图像采集程序如图2所示。

图2 图像采集程序

2.2 图像预处理

二维码的实际雕刻面积在PCB整块版面上不到1/20,然而摄像头拍摄会将整块PCB版面以及PCB版面以外的信息全扫描到计算机,此时需要图像预处理来消除图片中绝大多数无用信号,只保留系统需采集的有效信息,即二维码区域。预处理在此过程中起到2个作用:(1)去除无用信息,保存有效信号并增强有效信息,提高系统的检测性与可靠性;(2)最大限度简化图形数据,提高系统运行效率与识别速度。

2.2.1 图像滤波

摄像头传感器在采集图像信息时把光线作为输入/输出信号,在这一过程中无可避免会产生干扰因数,如噪声、曝光程度等。这些干扰因数将导致图像信息夹杂粗糙像素,通常所说的噪点就是指这些粗糙的像素。根据文献[3]提出在二维码图像采集的过程中通常会产生典型的椒盐噪声,因此采集图像后需要进行滤波处理,从而提高图像精度。通常针对椒盐噪声的滤除有中值滤波与领域滤波2种方法。比较如下:

(1)均值滤波器是一种最常用的线性低通平滑滤波器,可抑制图像中的加性噪声,但同时也使图像变得模糊。

图3 中值滤波

(2)中值滤波器是一种最常用的非线性平滑滤波器,可消除图像中孤立的噪声点,又可产生较少的模糊。

一般情况下中值滤波的处理效果要比邻域均值处理的低通滤波效果要好,主要技术特点是中值滤波后能保留图像中的轮廓清晰不变。因此,本系统图像中的椒盐噪声滤除采用中值滤波。利用LabVIEW中的Matlab script节点调用Matlab进行中值滤波。中值滤波设计如图3所示。

在Matlab中中值滤波medfilt2函数为单通道滤波,系统采集的彩色图像为三通道。因此在调用Matlab进行滤波前还需先将图片进行灰度化处理I=rgb2gray(G)。在测试程序中给原图加入了10%的椒盐噪声,分别用均值滤波器与中值滤波器处理以后效果对比如图4所示。显然从对比图中可以看出经过中值滤波后的图形更为清晰。

图4 滤波效果对比

2.2.2 二值化二维码信息像素

二值化是比灰度化更进一步的图像处理技术,灰度化是通过处理将彩色图像中的RGB 3个色素分量的值都相等,在256(0~255)个调色板中选择灰度级。而二值化是将图像上像素点灰度值设置为0或者255,也就是将图像完全变成了黑白色调。因为二维码图像本身就是由一系列黑白的小方格组成,分别代表了二进制的0和1(0代表白色,1代表黑色)。二维码在二值化时会将二维码图像变成只有黑白色的条码,然后根据解析公式转化为二进制信息。这就极大地节约了存储空间,并减少了后期的运算量。

实现过程:在LabVIEW中调用IMAQ ImageToArray VI函数,功能是把滤波后图形中的所有像素的点转化为二维数组。将该数组输入一个双层FOR循环,循环次数由数组大小决定,在FOR循环设定一个阈值,大于该阈值的点输出255,小于该阈值的点输出0。这样就可以生成一个新的二维数组,且数组中元素只为0或255。最后再调用IMAQ ArrayToImage VI函数即可将二位数组转化为二值化图像。该部分的设计难点在于阈值的选取,通常在图像二值化阈值选取中常用的方法有:直方图双峰法、P参数法、最大类间方差法、最大熵阈值法、迭代法(也叫最佳阈值法)。

20世纪60年代中期,Prewitt等提出直方图双峰法,其实质是一种典型的全局单阈值分割方法,当图像简单且所需信息在图像中十分突出与背景呈明显分别时,灰度化后的直方图会出现双峰分布,选择双峰之间的谷底对应的灰度值作为阈值即可实现2个区域分割。当图像复杂,目标信息与背景图案分布零散时,则会出现多个波峰或双峰之间波谷较宽阔且平坦,很难确定阈值。本系统所需采集信息是雕刻在PCB板上的二维码,符合后一种情况:目标信息与背景图像分布零散。

P参数法常用于所需目标区域在整个图像中所占比例已知,且采集图像分辨率不变的情况。本系统满足P参数法的使用要求,具体步骤如下:

(1)求出图像直方图分布P(t),t=0,1,…,255。

最大间类法、最大熵阈值法与最佳阈值法应用也十分广泛,在不同情况的图像处理中都具有各自的独特的地位,但应用于本系统中最大的缺点是计算量大,拖延了识别速率,因此最终选取P参数法作为阈值选取方案。

图5 灰度化到二值化

图5为原始灰度图通过P参数法求取阈值再二值化的图形,可以看出二值化后,图形中重要细节明显增强,从根本上改善了视觉质量,提高了图像清晰度。

2.3 图像定位

图6 系统实现

在整张图中对二维码区域的定位是最重要的一环。采用基于形态学的ROI定位法,在NI Vision视觉模块中,调用IMAQ Construct ROI创建图像显示与相应工具,选择ROI工具。ROI的内容代表是一簇数据。包括一个整数数组和一个簇组成的数组。整数数组内有4个元素,在前面板上框出二维码的4条边坐标,而每一个簇数组都是由轮廓类型、ROI类型以及图形坐标点组成[11],即用各种图形框出在整个图片中需要处理和定位的区域,称为感兴趣区域ROI。二维码所在区域即为感兴趣区域,经过图像预处理后,二维码图像的梯度,颜色与纹理更为明显。采用TransformROI VI函数即可自动坐标定位,从而完成通过ROI定位方式找到目标图像中的二维码。图6为最终的系统实现。

3 测试结果

目前已经使用130个图像样本来测试该系统,图像样本经过电脑硬盘导入系统。所用图像都是640×480像素。其中有50个二维码区域干净完整,照明条件好,测试成功率可达100%。其余80个图像样本都存在不同程度瑕疵,包括光照强度过高导致反光与光照强度过低导致图形阴暗,二维码局部破损或被异物遮挡等。经过一系列预处理与图形增强后,总体识别成功率达到94%,且平均速率38 ms/板,优于大多数现有系统。

4 结论

通过将摄像头、图像采集卡、LabVIEW软件与NI Vision机器视觉检测技术相结合,研制出工业级高精度的二维码识别系统,同时对软件中的视觉与运动模块进行了深层次的研究,分析对比了图像预处理部分与定位识别部分各种方法之间的优缺点,采用以中值滤波,二值化图像为基准的图像预处理,以ROI定位法确定二维码的特征提取,并进行最终的二维码信息识别。通过测试,系统扫描条码准确率高,识别速度快,证明了系统中算法的优越性,且成本低廉,利用普通摄像头即可完成专业扫码设备功能。在工业应用与社会生活中都具有较高的应用价值与推广意义。

猜你喜欢
灰度预处理二维码
采用改进导重法的拓扑结构灰度单元过滤技术
求解奇异线性系统的右预处理MINRES 方法
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
高COD二噻烷生产废水预处理研究
二维码
小康二维码
基于预处理MUSIC算法的分布式阵列DOA估计
基于最大加权投影求解的彩色图像灰度化对比度保留算法
二维码让政务公开更直接
二维码,别想一扫了之