二维码的检测方法、装置和存储介质与流程

文档序号:17775506发布日期:2019-05-28 20:03阅读:307来源:国知局
技术简介:
本发明针对二维码图像因形变导致检测误差大的问题,提出一种基于平面投影转换的检测方法。通过预处理、边框提取、顶点定位及图像修正,有效消除形变影响,提升检测精度与效率。
关键词:二维码检测,平面投影转换

本发明涉及地图信息采集领域,尤其涉及一种二维码的检测方法、装置和存储介质。



背景技术:

二维码是一种具有可读性的条码,通过某种特定的几何图形按照一定规律在平面上分布的黑白相间的图像记录数据。二维码具有信息容量大、可靠性高等特点,因此在诸如仓库存储或是车间搬运等应用环境下,二维码定位技术作为agv设备控制中的关键技术之一,常用于对agv设备进行导航和定位。

在现有技术中,通常是根据获取到的原始图像,通过边框提取,检测图像中是否包括二维码的三个位置探测图形,根据检测到的三个位置探测图形确定二维码的位置。在实施本发明的过程中,发明人发现,由于获取到的原始图像中,二维码图像可能存在变形,导致对原始图像中的二维码出现误判,二维码检测的效率较低。



技术实现要素:

本发明实施例的目的是提供一种二维码的检测方法、装置和存储介质,能有效地检测出图像中的二维码图像,提高二维码检测的检测效率。

为实现上述目的,本发明实施例提供了一种二维码的检测方法,包括步骤:

对原始图像进行预处理,得到预处理图像;

提取所述预处理图像中各个图形区域的边框,得到图形边框;

对所述图形边框进行顶点提取,以得到待定区域;其中,所述待定区域的顶点数量为四个;

对所述待定区域的图像进行平面投影转换,得到修正图像;

检测所述修正图像中,三个位置探测图形对应的图像。

作为上述方案的改进,所述预处理包括灰度处理、二值化处理、降采样处理、中值滤波处理和取反运算中的一项或多项。

作为上述方案的改进,在所述预处理包括降采样处理和中值滤波处理的情况下,所述中值滤波处理包括步骤:

针对降采样处理后的原始图像中的每一像素,以该像素为中心像素,获取预设大小的窗口内所有像素的像素值;

若所述所有像素的像素值均值大于二分之一,则所述中心像素的像素值置为一;

若所述所有像素的像素值均值小于或等于二分之一,则所述中心像素的像素值置为零。

作为上述方案的改进,所述提取所述预处理图像中各个图形区域的边框,得到图形边框,包括步骤:

对所述预处理图像进行膨胀处理,得到膨胀图像;

计算所述膨胀图像中的连通域,确定面积最大的连通域,作为最大连通域;

获取所述最大连通域的图像;

对所述最大连通域的图像进行边框提取,得到所述图形边框。

作为上述方案的改进,通过霍夫变换以进行所述顶点提取。

作为上述方案的改进,通过perspectivetransform平面投影转换公式以进行所述平面投影转换。

作为上述方案的改进,所述对所述待定区域的图像进行平面投影转换,得到修正图像,包括步骤:

根据perspectivetransform平面投影转换公式,计算所述待定区域的四个顶点转换后的坐标;

根据所述四个顶点转换后的坐标进行插值,以得到所述待定区域的像素点转换后的坐标。

作为上述方案的改进,所述检测所述修正图像中,三个位置探测图形对应的图像,包括步骤:

搜索分别与所述修正图像的四个顶点距离最小的四个非零连通域,作为四个目标连通域;

获取所述四个目标连通域中,形态满足预设关系的三个所述目标连通域,作为三个位置探测图形的位置,从而得到所述三个位置探测图形的图像;其中,对于所述四个目标连通域中,面积差距小于预设阈值的、且为唯一组合的三个所述目标连通域,则认为所述唯一组合的三个所述目标连通域的形态满足预设关系。

本发明还提供了一种二维码的检测装置,包括:

预处理模块,用于对原始图像进行预处理,得到预处理图像;

边框提取模块,用于提取所述预处理图像中各个图形区域的边框,得到图形边框;

顶点提取模块,用于对所述图形边框进行顶点提取,以得到待定区域;其中,所述待定区域的顶点数量为四个;

平面转换模块,用于对所述待定区域的图像进行平面投影转换,得到修正图像;

检测模块,用于检测所述修正图像中,三个位置探测图形对应的图像。

本发明还提供了一种二维码的检测装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上任意一项所述的检测方法。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上任意一项所述的检测方法。

与现有技术相比,本发明公开的一种二维码的检测方法、装置和存储介质,通过对原始图像进行预处理,得到预处理图像;提取所述预处理图像中各个图形区域的边框,得到图形边框;对所述图形边框进行顶点提取,以得到待定区域;其中,所述待定区域的顶点数量为四个;对所述待定区域的图像进行平面投影转换,得到修正图像;检测所述修正图像中,三个位置探测图形对应的图像。通过对图像进行平面投影转换,再检测其中存在的三个位置探测图形,解决了由于二维码图像形变而引入较大检测误差的技术问题,有效地实现了对图像中的二维码图像的检测,并且提高二维码检测的检测效率。

附图说明

图1是本发明实施例1中一种二维码的检测方法的流程示意图。

图2是如图1所示的检测方法的中值滤波处理的流程示意图。

图3是如图1所示的检测方法的步骤s120的流程示意图。

图4是如图1所示的检测方法的步骤s140的流程示意图。

图5是如图1所示的检测方法的步骤s150的流程示意图。

图6是本发明实施例2中一种二维码的检测装置的结构示意图。

图7是本发明实施例3中一种二维码的检测装置的结构示意图。

具体实施方式

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

本发明实施例1提供了一种二维码的检测方法,该检测方法可以运行在具有摄像设备或是具有图像采集功能的agv设备上,例如配置有摄像头的agv设备等,也可以是由其他具有图像处理能力的计算设备运行,例如与上述agv设备通信连接的服务器等,均不影响本发明可取得的有益效果。

参见图1,是实施例1提供的一种二维码的检测方法的流程示意图,该定位方法包括步骤s110至步骤s150。

s110、对原始图像进行预处理,得到预处理图像。

其中,所述原始图像可以是由执行本方法的agv设备的所具备的摄像设备拍摄所述原始图像,也可以是由执行本方法的计算设备,获取与之通信连接的agv设备拍摄的所述原始图像,均不影响本发明可取得的有益效果。

优选地,所述预处理可以包括灰度处理、二值化处理、降采样处理、中值滤波处理和取反运算中的一项或多项。以所述预处理包括灰度处理、二值化处理和取反运算为例,可以减少完成步骤s120的过程中所需的运算次数,从而提高图像处理效率。可以理解地,所述预处理不限于该例子中所举的实施方式,还可以是进行如灰度处理、二值化处理、降采样处理和中值滤波处理等其他的预处理流程,均不影响本发明可取得的有益效果。

更优选地,所述预处理同时包括降采样处理和中值滤波处理的基础上,参见图2,可以通过步骤s111至步骤s113所示流程进行所述中值滤波处理。

s111、针对降采样处理后的原始图像中的每一像素,以该像素为中心像素,获取预设大小的窗口内所有像素的像素值。

s112、若所述所有像素的像素值均值大于二分之一,则所述中心像素的像素值置为一。

s113、若所述所有像素的像素值均值小于或等于二分之一,则所述中心像素的像素值置为零。

例如,以所述窗口的大小为(2k+1)×(2k+1)为例,对所述降采样后的原始图像中的每一像素,以该窗口进行搜索,例如对像素i得到其对应窗口区域中的所有像素的像素值均值pi。若pi>1/2,则将像素i的像素值置为1;若pi≤1/2,则将像素i的像素值置为0。可以理解地,所述窗口的大小不限于上述举例。此外,在其他情况下,也可以是在pi>1/2时,则将像素i的像素值置为0,在pi≤1/2时,则将像素i的像素值置为1,均不影响本发明可取得的有益效果。

s120、提取所述预处理图像中各个图形区域的边框,得到图形边框。

优选地,参见图3,步骤s120可以是通过如步骤s121至步骤s124所示流程执行。

s121、对所述预处理图像进行膨胀处理,得到膨胀图像。

s122、计算所述膨胀图像中的连通域,确定面积最大的连通域,作为最大连通域。

优选地,当所述膨胀图像中出现多个目标时,可以选取其中面积最大的一个目标,即选取所述面积最大的连通域,作为所述最大连通域。

具体地,还可以是对所述膨胀图像进行扫描,例如按照从左至右、从上至下的顺序进行扫描,通过比较每一前景像素的领域进行连通域标记,从而得到所述膨胀图像中的连通域,并进一步确定所述面积最大的连通域。

s123、获取所述最大连通域的图像。

例如,可以是将除所述最大连通域以外的其他像素均置为零,从而获取所述最大连通域的图像,节省后续步骤的计算量。

s124、对所述最大连通域的图像进行边框提取,得到所述图形边框。

例如,可以是按照从上往下、从左往右的顺序,将搜索过程中遇到第一个像素值为1的点记为边框点,通过遍历搜索获得所述图形边框。

可以理解地,在具体应用中,获取所述最大连通域的图像的方式、以及获取所述图像边框的方式可以根据实际情况进行调整,均不影响本发明可取得的有益效果。

s130、对所述图形边框进行顶点提取,以得到待定区域;其中,所述待定区域的顶点数量为四个。

优选地,可以是通过霍夫变换实现所述顶点提取。

s140、对所述待定区域的图像进行平面投影转换,得到修正图像。

优选地,可以是通过perspectivetransform平面投影转换公式以进行所述平面投影转换。更优选地,参见图4,步骤s140还可以通过如步骤s141至步骤s142所示的流程执行。

s141、根据perspectivetransform平面投影转换公式,计算所述待定区域的四个顶点转换后的坐标。

例如,设(x,y)为所述待定区域的四个顶点的原始坐标,(u,v)为所述四个顶点转换后的坐标,则有:

x=(au+bv+c)/(gu+hv+1)

y=(du+ev+f)/(gu+hv+1)

其中,a,b,c,d,e,f,g和h八个参数均为常量,通过预先求解所述八个参数,再分别代入所述待定区域的四个顶点的原始坐标,从而得到所述四个顶点转换后的坐标。

s142、根据所述四个顶点转换后的坐标进行插值,以得到所述待定区域的像素点转换后的坐标。

由于得到所述四个顶点转换后的坐标之后,所述待定区域的其他点的转换后的坐标可能为非整数点,因此可以进行插值以避免非整数点引入的误差。

更优选地,所述插值还可以是双线性插值。

s150、检测所述修正图像中,三个位置探测图形对应的图像。

由于所述修正图像中的二维码图像的形变已得到修正,对所述修正图像进行检测,可以更加高效地得到二维码图像的三个位置探测图形对应的图像。

具体地,参见图5,步骤s150还可以通过如步骤s151至步骤s152所示的流程执行。

s151、搜索分别与所述修正图像的四个顶点距离最小的四个非零连通域,作为四个目标连通域。

可以是对所述修正图像中的非零连通域进行搜索,选取每个所述顶点最接近的非零连通域,从而得到所述四个目标连通域。

例如,可以是分别从所述修正图像的四个顶点出发,对所述修正图像进行连通域搜索。再根据所述连通域搜索,获取每个顶点最近的非零连通域,得到四个目标连通域。

具体地,可以设所述修正图像的四个顶点分别为d1至d4,以顶点d1为例,从顶点d1出发,搜索最接近的非零像素点,并根据该非零像素点,得到相应的连通域,即为顶点d1最接近的非零连通域e1。通过与顶点d1相同的处理,分别从顶点d2至d4出发,得到顶点d2至顶点d4最接近的非零连通域e2至e4。以非零连通域e1至e4作为所述四个目标连通域。

s152、获取所述四个目标连通域中,形态满足预设关系的三个所述目标连通域,作为三个位置探测图形的位置,从而得到所述三个位置探测图形的图像;其中,对于所述四个目标连通域中,面积差距小于预设阈值的、且为唯一组合的三个所述目标连通域,则认为所述唯一组合的三个所述目标连通域的形态满足预设关系。

结合上述举例,所述四个目标连通域为连通域e1至e4,连通域e1至连通域e3的面积差距小于所述预设阈值,而连通域e1至连通域e4中其他任意三个的组合,面积差距均大于所述预设阈值,则以连通域e1至连通域e3作为所述三个位置探测图形的位置。可以理解地,所述预设关系不限于所述目标连通域的面积差距,还可以形状等形态特征之间的关系,均不影响本发明可取得的有益效果。

更优选地,对于任一组合的三个所述目标连通域中,最大的目标连通域的面积不超过最小的所述目标连通域的面积的1.1倍,则认为该组合的面积差距小于所述预设阈值。可以理解地,所述目标连通域的面积差距不限于1.1倍,还可以更高或更低倍数,或是其他的面积关系,均不影响本发明可取得的有益效果。

更进一步地,还可以是通过判断所述四个目标连通域中,是否存在面积差距小于预设阈值的、且为唯一组合的三个所述目标连通域。若存在,则以满足上述条件的三个所述目标连通域作为所述三个位置探测图形的位置;若不存在,将所述四个目标连通域的值置零,得到新的修正图像,确定四个新的目标连通域。

本发明实施例1公开的一种二维码的检测方法,通过对原始图像进行预处理,得到预处理图像;提取所述预处理图像中各个图形区域的边框,得到图形边框;对所述图形边框进行顶点提取,以得到待定区域;其中,所述待定区域的顶点数量为四个;对所述待定区域的图像进行平面投影转换,得到修正图像;检测所述修正图像中,三个位置探测图形对应的图像。通过对图像进行平面投影转换,再检测其中存在的三个位置探测图形,解决了由于二维码图像形变而引入较大检测误差的技术问题,有效地实现了对图像中的二维码图像的检测,并且提高二维码检测的检测效率。

本发明实施例2提供了一种二维码的检测装置20。参见图6,本发明实施例2提供的定位装置20包预处理模块21、边框提取模块22、顶点提取模块23、平面转换模块24和检测模块25。

所述预处理模块21,用于对原始图像进行预处理,得到预处理图像。所述边框提取模块22,用于提取所述预处理图像中各个图形区域的边框,得到图形边框。所述顶点提取模块23,用于对所述图形边框进行顶点提取,以得到待定区域;其中,所述待定区域的顶点数量为四个。所述平面转换模块24,用于对所述待定区域的图像进行平面投影转换,得到修正图像。所述检测模块25,用于检测所述修正图像中,三个位置探测图形对应的图像。

本发明实施例2提供的检测装置20的工作过程如实施例1提供的检测方法所述,在此不作赘述。

本发明实施例2公开的一种地图信息采集的内存管理装置,通过对原始图像进行预处理,得到预处理图像;提取所述预处理图像中各个图形区域的边框,得到图形边框;对所述图形边框进行顶点提取,以得到待定区域;其中,所述待定区域的顶点数量为四个;对所述待定区域的图像进行平面投影转换,得到修正图像;检测所述修正图像中,三个位置探测图形对应的图像。通过对图像进行平面投影转换,再检测其中存在的三个位置探测图形,解决了由于二维码图像形变而引入较大检测误差的技术问题,有效地实现了对图像中的二维码图像的检测,并且提高二维码检测的检测效率。

本发明实施例3提供了另一种二维码的检测装置30。参见图7,本发明实施例3提供的检测装置30包括:处理器31、存储器32以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如检测程序。所述处理器31执行所述计算机程序时实现上述各个测试方法实施例中的步骤,例如图1所示的步骤s120。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块的功能,例如上述实施例中所述的检测装置。

示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器32中,并由所述处理器31执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述检测装置30中的执行过程。例如,所述计算机程序可以被分割成预处理模块、边框提取模块、顶点提取模块、平面转换模块和检测模块,各模块具体功能如下:所述预处理模块,用于对原始图像进行预处理,得到预处理图像。所述边框提取模块,用于提取所述预处理图像中各个图形区域的边框,得到图形边框。所述顶点提取模块,用于对所述图形边框进行顶点提取,以得到待定区域;其中,所述待定区域的顶点数量为四个。所述平面转换模块,用于对所述待定区域的图像进行平面投影转换,得到修正图像。所述检测模块,用于检测所述修正图像中,三个位置探测图形对应的图像。

所述检测装置30可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述检测装置30可包括,但不仅限于,处理器31、存储器32。本领域技术人员可以理解,所述示意图仅仅是图像增强设备的示例,并不构成对检测装置30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述检测装置30还可以包括输入输出设备、网络接入设备、总线等。

所称处理器31可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器31是所述检测装置30的控制中心,利用各种接口和线路连接整个检测装置30的各个部分。

所述存储器32可用于存储所述计算机程序和/或模块,所述处理器31通过运行或执行存储在所述存储器32内的计算机程序和/或模块,以及调用存储在存储器32内的数据,实现所述检测装置30的各种功能。所述存储器32可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述检测装置30集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。

本发明实施例3公开的一种二维码的检测装置和存储介质,通过对原始图像进行预处理,得到预处理图像;提取所述预处理图像中各个图形区域的边框,得到图形边框;对所述图形边框进行顶点提取,以得到待定区域;其中,所述待定区域的顶点数量为四个;对所述待定区域的图像进行平面投影转换,得到修正图像;检测所述修正图像中,三个位置探测图形对应的图像。通过对图像进行平面投影转换,再检测其中存在的三个位置探测图形,解决了由于二维码图像形变而引入较大检测误差的技术问题,有效地实现了对图像中的二维码图像的检测,并且提高二维码检测的检测效率。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

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