二维码识别方法、装置及系统与流程

文档序号:16210603发布日期:2018-12-08 07:41阅读:2172来源:国知局
二维码识别方法、装置及系统与流程

本发明涉及图像识别技术领域,尤其是涉及一种二维码识别方法、装置及系统。

背景技术

市场上工业级扫码设备原理通常是:扫描枪通过一个激光二极管发出一束光线,照射到一个旋转的棱镜或来回摆动的镜子上,反射后的光线穿过阅读窗照射到条码表面,光线经过条码反射后返回阅读器,由一个镜子进行采集、聚焦,通过光电转换器转换成电信号,该信号将通过扫描器或终端上的译码软件进行译码。

现有工业扫码设备防尘抗摔,识别速率也快,伴随的硬性缺点也很明显:价格昂贵。一般普通专业设备价格在1000元左右,而一些大品牌的则要6.7千甚至上万。



技术实现要素:

有鉴于此,本发明的目的在于提供一种二维码识别方法、装置及系统,能够基于labview开发的二维码机器视觉检测系统,通过数字图像处理方法实现快速、高效且低成本的二维码信息识读,通过普通摄像头进行摄像,利用软解码识别,从根本上降低扫码成本。

第一方面,本发明实施例提供了一种二维码识别方法,包括:

获取待识别二维码图像;

对待识别二维码图像进行预处理;

对预处理后的二维码图像进行定位,得到目标二维码区域;

对目标二维码区域进行特征提取及识别,得到待识别二维码图像的识别结果。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,获取待识别二维码图像,具体包括:

接收用户的操作指令,操作指令为启用驱动摄像头的指令及串口选择指令;

根据操作指令,从labview程序面板中调用驱动摄像头,选择相应串口连接,配置驱动文件,以采集二维码图形信息;

并对二维码图形信息进行实时显示,将显示的图形信息作为待识别二维码图像。

结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,在根据操作指令,从labview程序面板中调用驱动摄像头,选择相应串口连接,配置驱动文件之前,还包括:

对图像采集卡进行初始化操作。

结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,还包括:

由imaqcreate.vi建立一组记忆空间作为缓存区来存储待识别二维码图像。

结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,对待识别二维码图像进行预处理,具体包括:

接收用户的滤波指令;

根据滤波指令,利用labview中的matlabscript节点调用matlab进行中值滤波。

结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,在根据滤波指令,利用labview中的matlabscript节点调用matlab进行中值滤波之前,还包括:

对待识别二维码图像进行灰度化处理。

结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,在对待识别二维码图像进行灰度化处理之后,还包括:

对灰度化处理后的二维码图像进行二值化处理;二值化处理的方法包括:直方图双峰法、p参数法、最大类间方差法、最大熵阈值法和迭代法中任一种。

结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,对预处理后的二维码图像进行定位,得到目标二维码区域,具体包括:

采用transformroivi函数进行自动坐标定位,得到目标二维码区域。

第二方面,本发明实施例还提供一种二维码识别装置,包括:

图像采集模块,用于获取待识别二维码图像;

预处理模块,用于对待识别二维码图像进行预处理;

定位模块,用于对预处理后的二维码图像进行定位,得到目标二维码区域;

识别模块,用于对目标二维码区域进行特征提取及识别,得到待识别二维码图像的识别结果。

第三方面,本发明实施例还提供一种二维码识别系统,包括:摄像装置及服务器;

服务器上安装有如第二方面所述的二维码识别装置。

本发明实施例带来了以下有益效果:

本发明实施例提供的二维码识别方法包括:获取待识别二维码图像;对待识别二维码图像进行预处理;对预处理后的二维码图像进行定位,得到目标二维码区域;对目标二维码区域进行特征提取及识别,得到待识别二维码图像的识别结果。本发明实施例能够基于labview开发的二维码机器视觉检测系统,通过数字图像处理方法实现快速、高效且低成本的二维码信息识读,通过普通摄像头进行摄像,利用软解码识别,从根本上降低扫码成本。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一提供的一种二维码识别方法的方法流程图;

图2为本发明实施例一提供的另一种二维码识别方法的方法流程图;

图3为本发明实施例一提供的一种二维码识别方法中图像采集的示意图;

图4为本发明实施例一提供的一种二维码识别方法中中值滤波的示意图;

图5为本发明实施例一提供的一种二维码识别方法中中值滤波后的效果对比图;

图6为本发明实施例一提供的一种二维码识别方法中二值化后的效果对比图;

图7为本发明实施例一提供的一种二维码识别方法中定位示意图;

图8为本发明实施例二提供的一种二维码识别装置的结构示意图;

图9为本发明实施例三提供的一种二维码识别系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

现有工业扫码设备识别速率快但是价格昂贵。基于此,本发明实施例提供一种二维码识别方法、装置及系统,能够基于labview开发的二维码机器视觉检测系统,通过数字图像处理方法实现快速、高效且低成本的二维码信息识读,通过普通摄像头进行摄像,利用软解码识别,从根本上降低扫码成本。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种二维码识别方法进行详细介绍。

实施例一:

本发明实施例提供了一种二维码识别方法,参见图1所示,该方法是基于labview开发的二维码机器视觉检测系统实现的,该方法在服务器端被执行,在方法执行之前,需要通过labview提供的imaqvision视觉与运动模块,即图形化编程语言,完成人机交互界面,程序框图算法设计以及各个模块间的端口连接,保证系统正常运行。二维码识别方法具体包括以下步骤:

s11:获取待识别二维码图像。

该步骤通过服务器中的图像采集模块来实现,具体的过程包括以下几个步骤,参见图2所示:

s111:接收用户的操作指令,操作指令为启用驱动摄像头的指令及串口选择指令。

s112:根据操作指令,从labview程序面板中调用驱动摄像头,选择相应串口连接,配置驱动文件,以采集二维码图形信息。

s113:对二维码图形信息进行实时显示,将显示的图形信息作为待识别二维码图像。

在上述根据操作指令,从labview程序面板中调用驱动摄像头,选择相应串口连接,配置驱动文件之前,还包括步骤,对图像采集卡进行初始化操作。

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

s12:对待识别二维码图像进行预处理。

通过摄像头拍的图片不可能只有二维码,还包含了许多其他无关信息,此时需要图像预处理来消除图片中绝大多数无用信号,只保留系统需采集的二维码有效信息。

摄像头传感器在采集图像信息时把光线作为输入/输出信号,在这一过程中无可避免会产生干扰因数,如噪声,曝光程度等。这些干扰因数将导致图像信息夹杂粗糙像素,即通常所说的噪点。在二维码图像采集的过程中通常会产生典型的椒盐噪声,因此采集图像后需要进行滤波处理,从而提高图像精度。

具体的,接收用户的滤波指令;根据滤波指令,利用labview中的matlabscript节点调用matlab进行中值滤波。

中值滤波器是一种非线性平滑滤波器,可消除图像中孤立的噪声点,又可产生较少的模糊。利用labview中的matlabscript节点调用matlab进行中值滤波。中值滤波设计如图4所示。

在matlab中中值滤波函数medfilt2()为单通道滤波,系统采集的彩色图像为三通道。因此在调用matlab进行滤波前还需先将图片进行灰度化处理i=rgb2gray(g)。在测试程序中给原图加入了10%的椒盐噪声,用中值滤波器处理以后效果对比如图5中的(a)、(b)、(c)、(d)所示。

(a)为原始二维码图像,(b)为加入10%的椒盐噪声的二维码图像,(c)为灰度化后的图片,(d)为中值滤波后的图像,显然从对比图中可以看出经过中值滤波后的图形更为清晰。

为了进一步提高二维码图像的清晰度,达到工业级别的要求,在上述对二维码图像进行灰度化处理后,再对其进行二值化处理。

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

具体实现过程为:在labview中调用imaqimagetoarrayvi函数,功能是把滤波后图形中的所有像素的点转化为二维数组。将该数组输入一个双层for循环,循环次数由数组大小决定,在for循环中设定一个阈值,大于该阈值的点输出255,小于该阈值的点输出0。这样就可以生成一个新的二维数组,且数组中元素只为0或255。最后再调用imaqarraytoimagevi函数即可将二位数组转化为二值化图像。该过程的关键点在于阈值的选取,通常在图像二值化阈值选取中常用的方法有:1.直方图双峰法,2.p参数法,3.最大类间方差法,4.最大熵阈值法,5.迭代法(也叫最佳阈值法)。

p参数法常用于所需目标区域在整个图像中所占比例已知,且采集图像分辨率不变的情况。

1)、求出图像直方图分布p(t),t=0,1,...255。

2)、计算阈值:

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

通过上述中值滤波、灰度化及二值化预处理后,可以有效去除无用信息,保存有效信号并增强有效信息,提高系统的检测性与可靠性。最大限度的简化了图形信息,提高系统运行效率与识别速度。

s13:对预处理后的二维码图像进行定位,得到目标二维码区域。

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

s14:对目标二维码区域进行特征提取及识别,得到待识别二维码图像的识别结果。

在得到目标二维码区域后,对其进行特征提取,得到最终的识别结果。

本发明实施例,通过将摄像头,图像采集卡,labview软件与nivision机器视觉检测技术相结合,提供一种工业级高精度的二维码识别方法,采用中值滤波,灰度化,二值化预处理后的图像为基准图像,以roi定位法确定二维码的特征提取,并进行最终的二维码信息识别。通过测试,该方法扫描条码准确率高,识别速度快,且成本低廉,利用普通摄像头即可完成专业扫码设备功能。在工业应用与社会生活中都具有较高的应用价值与推广意义。

实施例二:

本发明实施例还提供一种二维码识别装置,参见图8所示,该装置包括:图像采集模块21、预处理模块22、定位模块23和识别模块24。

其中,图像采集模块21,用于获取待识别二维码图像;预处理模块22,用于对待识别二维码图像进行预处理;定位模块23,用于对预处理后的二维码图像进行定位,得到目标二维码区域;识别模块24,用于对目标二维码区域进行特征提取及识别,得到待识别二维码图像的识别结果。

本发明实施例所提供的二维码识别装置中,包括与前述二维码识别方法相同的技术特征,因此,同样可以实现上述功能。本装置中各个模块的具体工作过程参见上述方法实施例,在此不再赘述。

实施例三:

本发明实施例还提供一种二维码识别系统,参见图9所示,该系统包括:摄像装置31及服务器32。该服务器32上安装有如实施例二所述的二维码识别装置321。该摄像装置31可以是普通的摄像头,也可以是比较昂贵的工业用摄像头,在此不做具体限定。

本发明实施例所提供的二维码识别装置中,包括与前述二维码识别装置相同的技术特征,因此,同样可以实现上述功能。本系统中各个模块的具体工作过程参见上述装置实施例,在此不再赘述。

本发明实施例所提供的二维码识别方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置及电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

附图中的流程图和框图显示了根据本发明的多个实施例方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1