一种二维码识别方法、模块及计算机可读存储介质与流程

文档序号:15518543发布日期:2018-09-25 18:53阅读:162来源:国知局

本发明涉及二维码识别领域,具体涉及一种二维码识别方法、模块及计算机可读存储介质。



背景技术:

现有技术中,读码器可以基于激光反射原理,从读码器的激光二极管发射出一束光线,照射到一个旋转的棱镜或来回摆动的镜子上,反射后的光线穿过阅读窗照射到条码表面,光线经过条码上的条和空,反射后返回读码器,由一个镜子进行采集、聚焦,通过光电转换器转换成电信号,该信号将通过读码器或终端上的译码软件进行译码;该方案的读码器只适用于读码器已经瞄准条码的情况,对条码的大小和印刷条码的材质有较高要求,通常只适合读取一维码,无法对二维码进行任意角度读取。

读码器还可以基于图像处理原理,通过光学系统采集图像,再对图像内的条码进行译码。该方案的读码器要求用户将条码置于图像中采集条码的明显区域,让条码尽可能充斥图像采集区,要求背景必须非常干净、条码清晰、对比度强,对成像质量有较大要求,并不适用于应对工业中复杂多变的需求。



技术实现要素:

根据本申请的一方面,提供一种二维码识别方法,其包括如下过程:

条码候选区域定位过程:

根据待处理图像的角点特征,定位出至少一个符合预设区域候选条件的条码候选区域,所述条码候选区域为原图像中可能为目标条码的区域;

候选子图像提取过程:

从原图像中提取所述至少一个条码候选区域所对应的至少一个候选子图像,所述候选子图像为原图像中可能为目标条码的图像块;

条码候选边缘获取过程:

根据所述至少一个候选子图像,提取其对应的边缘;

根据所述至少一个候选子图像的边缘,提取符合预设边缘候选条件的条码候选边缘,所述条码候选边缘为原图像中目标条码的边缘;

目标条码定位过程:

根据所述条码候选边缘,定位出目标条码在原图像中的位置。

根据本申请的第二方面,提供一种二维码识别模块,其包括:

条码候选区域定位单元,用根据待处理图像的角点特征,定位出至少一个符合预设区域候选条件的条码候选区域,所述条码候选区域为原图像中可能为目标条码的区域;

候选子图像提取单元,连接至所述条码候选区域定位单元,用于从原图像中提取所述至少一个条码候选区域所对应的至少一个候选子图像,所述候选子图像为原图像中可能为目标条码的图像块;

条码候选边缘获取单元,连接至所述候选子图像提取单元,用于根据所述至少一个候选子图像,提取其对应的边缘;根据所述至少一个候选子图像的边缘,提取符合预设边缘候选条件的条码候选边缘,所述条码候选边缘为原图像中目标条码的边缘;

目标条码定位单元,连接至所述条码候选边缘获取单元,用于根据所述条码候选边缘,定位出目标条码在原图像中的位置。

根据本申请的第三方面,提供一种计算机可读存储介质,其包括程序,所述程序能够被处理器执行以实现如上述方法。

采用本申请的二维码识别方法、模块及计算机可读存储介质,可实现在大视野、复杂背景图像中二维码图像进行快速、精确定位。

附图说明

图1为实施例一的二维码识别方法流程示意图;

图2为实施例一的二维码识别模块结构示意图;

图3为实施例一的原图像示意图;

图4为实施例一的原图像经高斯模糊示意图;

图5为实施例一的条码候选区域定位过程示意图

图6为实施例一的原图像的角点密度图;

图7为实施例一的角点密度图二值化处理示意图;

图8为实施例一的角点密度图填孔及断开薄弱连接处理示意图;

图9为实施例一的条码候选区域示意图;

图10为实施例一的候选子图像示意图;

图11为实施例一的条码候选边缘获取过程示意图;

图12为实施例一的候选子图像的边缘图像示意图;

图13为实施例一的目标条码定位过程示意图;

图14为实施例一的目标条码实线边示意图;

图15为实施例一的目标条码虚线边求解示意图。

具体实施方式

下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。

另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。

本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。

实施例一:

如图1所示为本实施例的二维码识别方法流程示意图,该方法可用于图像中dm(datamatrix)码的识别,图2为实现该方法的二维码识别模块,模块中,原图像预处理单元10、条码候选区域定位单元20、候选子图像提取单元30、条码候选边缘获取单元40、目标条码定位单元50、目标条码提取单元60依次连接,并分别用于实现st1、st2、st3、st4、st5、st6过程。

本实施例的二维码识别方法包括如下过程:

st1、原图像预处理过程:

st1.1、接收原图像,例如如图3所示的图像,判断原图像是否需要进行优化处理;可以是人为地目视并根据业务经验做判断,也可以是在本方法中设置预设条件,根据预设条件做判断;具体可以是判断原图像是否需要进行模糊处理;

若是,则进入st1.2步骤;

若否,则进入st2过程;

st1.2、对原图像进行优化处理,使其更加便于进行后续的角点提取;具体地,对原图像进行高斯模糊,例如对图3进行高斯模糊后得到图4,滤除由于传感器噪声和漫反射产生的大量亮点,从而避免对后续角点提取产生影响;

或者,在本发明其他的实施方式中,也可以不需要先对原图像进行判断,而是接收原图像后直接对原图像进行优化处理即高斯模糊,使其更加便于进行角点提取。

st2、条码候选区域定位过程,主要是根据原图像的角点特征,定位出至少一个符合预设区域候选条件的条码候选区域,条码候选区域为原图像中可能为目标条码的区域;如图5所示,包括如下步骤:

st2.1、对如图4的待处理图像进行角点提取,得到原图像的角点图像;

st2.2、对角点图像进行网格划分,统计格子内的角点数量,得到角点密度图即图6;具体地,网格大小可以根据目标条码在图像中的尺寸作出设定,本实施例采用8*8的正方形网格;

st2.3、对角点密度图进行otsu(最大类间方差法)二值化处理,从而划分出密集区域,得到图7;

st2.4、使用基于形态学的方法对图7进行填孔及断开薄弱连接,得到图8;

st2.5、对图8进行区域生长,将每块格子用gi表示,gi.corners表示方格gi内角点的数量,统计区域内的格子数量cnt,计算各区域的角点密度ρ;

st2.6、判断各区域是否符合预设区域候选条件,筛选出符合预设区域候选条件的区域作为条码候选区域;

具体地,判断各区域是否满足以下条件:

(1)cnt>min_region_area;

(2)若目标条码为正方形条码,则r<max_region_rate;

(3)min_region_density<ρ<max_region_density;

r为待判断区域的高宽比,cnt为待判断区域内的格子数,ρ为角点密度,min_region_area为预设最小格数,max_region_rate为预设的第一网格高宽比,min_region_density为预设最小角点密度,max_region_density为预设最大角点密度;

关于r,令某区域的宽度为w,高度为h,则该区域的高宽比r=max(w,h)/min(w,h);

本实施例取min_region_area=6,max_region_rate=1.8,min_region_density=5,max_region_density=100;

符合上述条件的区域即作为条码候选区域;针对本实施例的原图像,dm码粗定位所得的图如图9所示;

在本发明其他的实施方式中,可以只利用上述条件(1)、(2)、(3)中的一个或两个进行判断;

st2.7、对条码候选区域进行优先级排序,具体地,对连通域按p1值从大到小排序,若有两个连通域的p1值相等,则按p2值从大到小排序;其中,p1表示连通域所占面积,p2表示连通域内平均角度密度;本实施例中,条码候选区域即为连通域;

从本实施例所例举的原图像即图3可知,原图像中实际只有一个dm码,因此本实施例经过上述各步骤后,所得到的条码候选区域实际只有图9,故排序只涉及图9;

在本发明其它的实施方式中,对某些原图像可以粗定位出若干幅候选区域,故会涉及顺序排序;

st2.8、将当前得到的条码候选区域的宽高从中心扩展为原来的两倍,以保证条码候选区域涵盖了完整的条码。

st3、候选子图像提取过程:

从原图像中提取至少一个条码候选区域所对应的至少一个候选子图像,候选子图像为原图像中可能为目标条码的图像块。

本实施例中,从原图像中提取的候选子图像如图10所示。

st4、条码候选边缘获取过程,主要是根据至少一个候选子图像,提取其分别对应的边缘;根据至少一个候选子图像的边缘,提取符合预设边缘候选条件的条码候选边缘,条码候选边缘为原图像中目标条码的边缘;如图11所示,包括如下步骤:

st4.1、对至少一个候选子图像进行otsu二值化,得到候选子图像的条码图像;

st4.2、对候选子图像的条码图像进行3*3的闭运算,去除条码周围的杂散点,得到较为干净的条码二值图像;对条码二值图像进行开运算,以减少条码内部的细节;

st4.3、对候选子图像的条码图像进行canny运算,得到候选子图像的边缘图像即图12;

st4.4、求候选子图像的边缘图像的连通域,得到候选子图像所对应的边缘集合c;

由于本实施例中,原图像中实际只有一个dm码,因此本实施例经过上述各步骤后,所得到的边缘集合c只涉及图12的边缘;

在本发明其它的实施方式中,对某些原图像可以粗定位出若干幅候选区域,故边缘集合c中会含有若干边缘元素;

st4.5、对边缘集合按照预设边缘候选条件进行筛选,得到条码候选边缘集合s;

具体地,令边缘集合为c,条码候选边缘集合为s;则条码候选边缘集合s需满足以下条件:

s={s|f(s)<t1,|g(s)>t2,s|c}(1)

其中,s表示边缘集合c的元素,s.w表示s的宽,s.h表示s的高,f(s)表示目标条码轮廓的高宽比,g(s)表示目标条码轮廓所框定的面积;

st4.6、按照条码候选边缘集合中条码候选边缘所框定的面积对条码候选边缘集合进行排序;

本实施例经过上述各步骤后,条码候选边缘集合s的排序只涉及图12的边缘这一元素;

在本发明其它的实施方式中,条码候选边缘集合s会涉及对若干边缘元素顺序排序。

st5、目标条码定位过程,主要是根据条码候选边缘,定位出目标条码在原图像中的位置;如图13所示,包括如下步骤:

st5.1、对条码候选边缘集合的某一条码候选边缘轮廓(本实施例即图13)进行霍夫变换(houghtransform),在变换图像中取定位得分最高的点,即得到极大值点,该极大值点对应目标条码的一条实线边;

st5.2、根据该极大值点求得其对应的另一极大值点,该另一极大值点对应目标条码的另一条实线边;

具体地,由于目标条码的两条实线边相互垂直,则可以根据目标直线互相垂直的关系,建立屏蔽区,在屏蔽区内再寻找另一个极大值点;

st5.3、根据hough变换域中的两个极大值点计算其在图像域中分别对应的两条实线边的位置;

st5.4、分别取定两条实线边附近的像素点作为样本点,对样本点进行迭代加权最小二乘法直线拟合,从而分别计算出两条实线边对应的拟合直线的方程;

st5.5、根据目标条码的两条实线边定位目标条码的虚线边;

通过以上步骤,如图14所示,已经定位出目标条码的实线边ab以及实线边bc,该两条实线边还分别对应两条虚线边;因此,只需要找出两条虚线边的交点坐标,即可定位两条虚线边;

具体定位虚线边方法可以是:

方法一,本实施例确定了点a、点b及点c的坐标从而实现了实线边ab和实线边bc的定位,结合平行四边形原理,如图15所示,根据该三个端点即可定位出第四个端点即目标条码的两条虚线边的交点d;

或者,方法二,根据目标条码的两条实线边,进行扫描,定位出其分别对应的两条虚线边的位置,从而计算得到该两条虚线边的交点。

st6、目标条码提取过程:

经过上述步骤,已经得到目标条码的四个顶点即点a、点b、点c及点d,即确定了目标条码在原图像中的位置,即可从原图像中提取目标条码图像;再使用双线性插值,则得到一幅完整的、校正后的条码图像。

本实施例通过先统计图像的角点分布情况,粗定位dm码可能存在的候选区域,再对候选图像区域进行缩放、直线检测等操作,从而实现快速定位dm码位置,减少了后续定位算法的运算量,并增大了后续定位算法的准确率,提高了算法的识别速度。进一步地,通过改进hough变换粗定位dm码的特征边,再对特征边上的像素点进行迭代加权最小二乘法拟合,从而精确定位dm码的特征边,进而精确定位dm码,从整体上提高算法的识别率。对图像中包含多个dm码的情况,在条码候选区域定位及条码候选边缘获取等过程即可正确分割图片,将多个条码进行提取并分别定位。

从而,本实施例可实现在大视野、复杂背景下对多个dm二维码图像进行快速、精确定位的技术效果,大幅度地提高了复杂背景下dm码区域定位的精度、速度和鲁棒性。解决了由于印刷质量问题导致的码块间距不均,或部分条码污染、缺失所导致的无法准确定位和解码等问题。

本实施例的方法可以编写成程序并写入计算机可读存储介质中,该程序能够被处理器执行以实现本实施例的方法

领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。

以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。

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