二维码校正方法、装置及设备与流程

文档序号:18010921发布日期:2019-06-26 00:03阅读:488来源:国知局
二维码校正方法、装置及设备与流程

本说明书一个或多个实施例涉及图像处理技术领域,尤其涉及一种二维码校正方法、装置及设备。



背景技术:

二维码(2-dimensionalbarcode)是通过按一定规律在平面的二维方向上分布的图形来记录信息的条码。在日常生活和工业应用中,二维码的使用越来越广泛,例如,其被广泛应用于零售行业、物流行业以及金融行业等。随着二维码的普遍流行,其应用形式也越来越多样化,其不仅可以应用于平面印刷品,还可以应用在不同形状物体的表面。例如:将二维码印于圆柱形药瓶表面用于记录药品相关信息;展会或促销时,将包含产品信息或宣传信息的二维码贴纸贴在展销人员的手臂上。在这些应用场景下,即二维码位于曲面物体上时,所拍摄到的图像中的二维码相往往存在一定的变形和失真。为实现对存在形变和失真的二维码进行解码,就需要对其进行校正。

因此,如何对存在形变和失真的二维码进行校正就成为要解决的问题。



技术实现要素:

本说明书一个或多个实施例描述了一种二维码校正方法、装置及设备,可以对存在形变和失真的二维码进行校正。

第一方面,提供了一种二维码校正方法,包括:

获取多帧包含同一二维码的图像;

从所述多帧图像中任意的第一图像中提取特征点,并在所述多帧图像中的其它图像中对所述特征点进行跟踪;

基于所述特征点在所述第一图像中的坐标、所述特征点在所述其它图像中的坐标以及三维重建算法,确定所述特征点在三维空间中的三维坐标;

基于所述多帧图像中的至少一帧图像,获取与所述二维码的版本对应的二维码模板;

从所述二维码模板中确定出所述特征点对应的特征位置;

基于所述特征点的三维坐标、所述特征位置在所述二维码模板中的坐标以及弹性配准算法,对所述二维码模板进行变换,使得所述二维码模板产生与所述第一图像中的二维码相同的形变;

将变换后的二维码模板投影到所述第一图像上或者将所述第一图像投影到所述变换后的二维码模板上;

对投影后的二维码模板进行采样,以得到校正后的二维码。

第二方面,提供了一种二维码校正装置,包括:

获取单元,用于获取多帧包含同一二维码的图像;

提取单元,用于从所述多帧图像中任意的第一图像中提取特征点,并在所述多帧图像中的其它图像中对所述特征点进行跟踪;

确定单元,用于基于所述特征点在所述第一图像中的坐标、所述特征点在所述其它图像中的坐标以及三维重建算法,确定所述特征点在三维空间中的三维坐标;

所述获取单元,还用于基于所述多帧图像中的至少一帧图像,获取与所述二维码的版本对应的二维码模板;

所述确定单元,还用于从所述获取单元获取的所述二维码模板中确定出所述特征点对应的特征位置;

变换单元,用于基于所述确定单元确定的所述特征点的三维坐标、所述特征位置在所述二维码模板中的坐标以及弹性配准算法,对所述二维码模板进行变换,使得所述二维码模板产生与所述第一图像中的二维码相同的形变;

投影单元,用于将所述变换单元变换后的二维码模板投影到所述第一图像上或者将所述第一图像投影到所述变换后的二维码模板上;

采样单元,用于对投影后的二维码模板进行采样,以得到校正后的二维码。

第三方面,提供了一种二维码校正设备,包括:

存储器;

一个或多个处理器;以及

一个或多个程序,其中所述一个或多个程序存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序被所述处理器执行时实现以下步骤:

获取多帧包含同一二维码的图像;

从所述多帧图像中任意的第一图像中提取特征点,并在所述多帧图像中的其它图像中对所述特征点进行跟踪;

基于所述特征点在所述第一图像中的坐标、所述特征点在所述其它图像中的坐标以及三维重建算法,确定所述特征点在三维空间中的三维坐标;

基于所述多帧图像中的至少一帧图像,获取与所述二维码的版本对应的二维码模板;

从所述二维码模板中确定出所述特征点对应的特征位置;

基于所述特征点的三维坐标、所述特征位置在所述二维码模板中的坐标以及弹性配准算法,对所述二维码模板进行变换,使得所述二维码模板产生与所述第一图像中的二维码相同的形变;

将变换后的二维码模板投影到所述第一图像上或者将所述第一图像投影到所述变换后的二维码模板上;

对投影后的二维码模板进行采样,以得到校正后的二维码。

本说明书一个或多个实施例提供的二维码校正方法、装置及设备,获取多帧包含同一二维码的图像。从多帧图像中的任意的第一图像中提取特征点,并在多帧图像中的其它图像中对特征点进行跟踪。基于特征点在第一图像中的坐标、特征点在其它图像中的坐标以及三维重建算法,确定特征点在三维空间中的三维坐标。基于多帧图像中的至少一帧图像,获取与二维码的版本对应的二维码模板。从二维码模板中确定出特征点对应的特征位置。基于特征点的三维坐标、特征位置在二维码模板中的坐标以及弹性配准算法,对二维码模板进行变换,使得二维码模板产生与第一图像中的二维码相同的形变。将变换后的二维码模板投影到第一图像上或者将第一图像投影到变换后的二维码模板上。对投影后的二维码模板进行采样,以得到校正后的二维码。也即本说明书提供的方案中,首先通过恢复二维码的三维结构来确定二维码所产生的形变,之后通过弹性配准算法将形变应用到二维码模板上,最后通过对形变后的二维码模板进行投影和采样来得到校正后的二维码。由此,可以对产生不同形变的二维码进行准确校正,从而具有较好的通用性。

附图说明

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

图1为本说明书提供的形变二维码示意图;

图2为本说明书提供的二维码解码系统示意图;

图3为本说明书一个实施例提供的二维码校正方法流程图;

图4为本说明书提供的二维码模板示意图;

图5为本说明书一个实施例提供的二维码校正装置示意图;

图6为本说明书一个实施例提供的二维码校正设备示意图。

具体实施方式

下面结合附图,对本说明书提供的方案进行描述。

在对本说明书提供的方案进行描述之前,先对本方案的发明构思作以下说明。

如背景技术的内容所述,随着二维码的应用形式的多样化,二维码自身会存在一些形变和失真。为实现对存在形变和失真的二维码进行校正,其实现思路可以如下:

首先,恢复形变二维码的三维结构。具体地,可以获取多帧包含同一形变二维码的图像。在一个例子中,该形变二维码可以如图1所示。针对该多帧图像中的任一帧图像,可以从中提取若干个特征点。之后,针对每个特征点,可以跟踪该特征点在其它帧图像中的位置,并基于该特征点在上述一帧图像以及其它帧图像中的位置以及三维重建算法,来确定该特征点在三维空间中的位置。基于所确定的若干个特征点在三维空间中的位置,来恢复形变二维码的三维结构。

可以理解的是,在恢复出形变二维码的三维结构之后,实际上就确定出了二维码所产生的形变和失真。

其次,通过弹性配准算法将形变应用到对应的二维码模板上。本说明书所述的二维码模板可以包含若干个已知坐标的特征位置。该特征位置可以与二维码模板中的模块相对应。这里的模块可以理解为是二维码中的黑白模块,即其可以包含若干个像素点,只不过这些像素点的像素值还不确定,从而该模块的颜色值为空。具体地,针对上述提取的特征点,从二维码模板中确定出对应的特征位置。基于该特征点在三维空间中的位置以及在二维码模板中对应的特征位置,来确定特征点与特征位置之间的第一变换关系,并基于该第一变换关系,对二维码模板执行第一变换。这里的第一变换可以是指相似变换,可以包括但不限于平移、旋转和缩放等。可以理解的是,在对二维码模板执行第一变换之后,二维码模板就可以与待重构的二维码位于同一坐标系下,至此就实现了二维码模板与待重构的二维码的初步配准。

需要说明的是,在执行上述初步配准之前,由于特征点与二维码模板中的各个特征位置并不在同一坐标系下,因此,通过上述步骤所确定的对应的特征位置通常不够精确。因此,在完成上述初步配准之后,针对上述特征点,可以通过弹性配准算法,在执行第一变换后的二维码模板中重新确定特征点对应的特征位置,并确定特征点与重新确定的对应的特征位置之间的第二变换关系。基于该第二变换关系,对二维码模板执行第二变换。这里的第二变换可以是指非刚性变换,可以包括但不限于旋转、平移、缩放以及扭曲等。至此,二维码模板就产生了与形变二维码相同的形变。

最后,对产生形变的二维码模板进行投影和采样。需要说明的是,通过上述各步骤只是使得二维码模板产生了与形变二维码相同的形变,但由于该二维码模板中各个特征位置所对应模块的颜色值为空,因此还不能将该产生形变的二维码模板作为重构的二维码。为得到重构的二维码,还可以执行以下步骤:将执行第二变换后的二维码模板投影到上述多帧图像中的任一帧图像上或者将上述多帧图像中的任一帧图像投影到执行第二变换后的二维码莫班上,至此就得到了重构后的二维码。可以理解的是,这里重构后的二维码为产生形变的二维码。因此,还可以对投影后的二维码模板进行采样,即将模块投影后对应的颜色值填充到对应的非形变二维码模版上,以得到去除形变后的二维码,该去除形变后的二维码也称为校正后的二维码。

以上就是本说明书提供的发明构思,基于该发明构思就可以得到本方案。以下对本方案进行详细阐述。

图2为本说明书提供的二维码解码系统示意图。如图2所示,该系统可以包括:获取模块202、校正模块204以及解码模块206。

获取模块202,用于获取多帧包含同一形变二维码的图像。

校正模块204,用于基于获取模块202获取的多帧图像,恢复二维码的三维结构。基于恢复的二维码的三维结构,确定二维码所产生的形变。通过弹性配准算法将形变应用到二维码模板上。对形变后的二维码模板进行投影和采样以得到校正后的二维码。其具体校正过程后续说明。

解码模块206,用于对校正后的二维码进行解码。

图3为本说明书一个实施例提供的二维码校正方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者系统或者模块,如,可以为图2中的校正模块204等。如图3所示,所述方法具体可以包括:

步骤302,获取多帧包含同一二维码的图像。

这里的二维码可以是指产生形变的二维码(简称形变二维码)。而这里的多帧图像可以是指用户所拍摄的在时间上连续或非连续的多帧图像。

步骤304,从多帧图像中任意的第一图像中提取特征点,并在多帧图像中的其它图像中对该特征点进行跟踪。

例如,可以通过角点检测算法,从第一图像中提取若干个特征点。这里的角点检测算法可以包括但不限于哈里斯(harris)算法、尺度不变特征变换(scale-invariantfeaturetransform,sift)算法、加速稳健特征(speededuprobustfeatures,surf)算法以及带旋转的二元特征(orientedfastandrotatedbrief,orb)算法等。

本说明书所提取到的特征点可以包括两种类型:第一类特征点和第二类特征点。其中,第一类特征点也可以称为关键特征点,其可以与目标图形的角点相对应。这里的目标图形可以包括但不限于探测图形、校正图形或者定位图形等。第二类特征点也可以称为其它特征点,其可以从二维码的任一位置所提取的具有角点特征的特征点。

在从第一图像中提取到若干个特征点之后,针对每个特征点,对该特征点在多帧图像中除第一图像外的其它图像中对该特征点的跟踪过程可以为:

基于特征点在第一图像中的坐标,在第一图像中框选出相应的区域。从其它图像,例如第二图像中确定出该区域的对应区域。在对应区域中查找与第一图像中提取的特征点相匹配的特征点。将该相匹配的特征点确定为第二图像中的对应特征点。需要说明的是,由于在时间上连续的多帧图像之间图像内容的变化通常比较小,因此,通过该方法通常能准确而高效地对特征点进行跟踪。

当然,在实际应用中,特征点的跟踪过程也可以为:从其它图像中提取若干个特征点。基于特征点的特征描述字,对从第一图像中所提取的各个特征点与从所述其它图像中所提取的各个特征点进行特征匹配。对于从第一图像中提取的任一特征点,将其它图像中与之相匹配的特征点确定为对应特征点。

步骤306,基于特征点在第一图像中的坐标、特征点在其它图像中的坐标以及三维重建算法,确定特征点在三维空间中的三维坐标。

这里的三维重建算法例如可以为运动恢复结构(structurefrommotion,sfm)算法等。sfm算法的基本原理是:基于成像原理通过双视或多视推算特征点的三维坐标,然后通过最小化重投影误差得到特征点在三维空间中位置的最优估计。

步骤308,基于多帧图像中的至少一帧图像,获取与二维码的版本对应的二维码模板。

在本说明书中,可以通过如下两种方式来确定二维码的版本。

在一种实现方式中,可以在多帧图像中的至少一帧图像中检测三个探测图形及探测图形的中心点。从三个探测图形中选取位于同侧的两个探测图形。基于两个探测图形的中心点,计算两个探测图形之间的距离。根据距离,确定二维码的版本。需要说明的是,该二维码的版本的确定方法,可以适用于任意版本的二维码,从而具有较好的通用性。

本说明书所述的探测图形可以看作是由3个重叠的同心的正方形组成。在二值化的图像中,该探测图形的线段黑白长度比例满足1:1:3:1:1。因此,可以基于探测图形的该特点,在第一图像中对探测图形及其中心点进行检测。由于探测图形及其中心点的检测为传统常规技术,因此在此不作赘述。

在一个例子中,二维码的版本确定公式可以为:(distance(f1,f2)/(modulesize*cos(theta)-10))/4;其中,f1,f2为位于同侧的两个探测图形的中心点,modulesize为模块长度,theta为扫描线与在横向或纵向上的两个探测图形中心点连线的夹角。这里的模块可以是指构成二维码的黑或白模块,该黑或白模块通常由若干个像素点构成。上述模块长度可以是指上述一个黑或白模块的边长。

在另一种实现方式中,也可以从二维码的指定区域中读取二维码的版本。例如,对于版本号大于或者等于7的qr码,由于在其功能区域会包含二维码的版本,因此可以直接从功能区域读取二维码的版本。

在确定二维码的版本之后,就可以基于该版本,获取对应的二维码模板。

本说明书中的二维码模板可以包含若干个已知坐标的特征位置,该特征位置的个数可以根据二维码模板的大小确定。在一个例子中,二维码模板的大小可以为:(17+4*n)*(17+4*n),其中,n为版本号。以版本号为1为例来说,二维码模板的大小可以为:21*21,从而该二维码模板可以包含21*21个特征位置。

需要说明的是,上述特征位置可以与二维码模板中的模块相对应。以图4为例来说,二维码模板中的一个模块代表一个特征位置。这里的模块可以理解为是二维码中的黑白模块,即其可以包含若干个像素点,只不过这些像素点的像素值还不确定,从而该模块的颜色值为空。另外,图4中的二维码模板的大小可以为:21*21,也即该二维码模板中可以包含21*21个特征位置。各个特征位置的坐标可以分别为:(1,1)、(2,1)、…、(21,1)、…、(1,2)、(2,2)、…、(21,21)。

需要说明的是,该步骤获取的二维码模板为标准的模板,不具有任何的形变。

步骤310,从二维码模板中确定出所提取的特征点对应的特征位置。

具体地,对第一类特征点,确定所对应的目标图形的角点的位置。将二维码模板中该位置确定为对应的特征位置。举例来说,假设某一特征点与qr码中位于左上角的探测图形的右下角的角点相对应,而由于该角点在二维码中的位置为:(7,7),从而可以将二维码模板中坐标为:(7,7)的位置确定为该特征点对应的特征位置。

对第二类特征点,可以计算第二类特征点与二维码模板中的各个特征位置之间的距离,将与最小距离对应的特征位置确定为对应的特征位置。具体地,可以是基于第二类特征点的坐标以及二维码模板中各个特征位置的已知坐标,来计算上述距离。

步骤312,基于特征点的三维坐标、特征位置在二维码模板中的坐标以及弹性配准算法,对二维码模板进行变换,得二维码模板产生与第一图像中的二维码相同的形变。

该变换过程具体可以为:

首先,基于特征点的三维坐标以及特征位置在二维码模板中的坐标,确定特征点与特征位置之间的第一变换关系。基于第一变换关系,对二维码模板执行第一变换。

需要说明的是,由于特征位置在二维码模板中的坐标是二维的,因此,在执行上述确定第一变换关系之前,可以先对特征位置的坐标进行预处理。该预处理具体可以为将特征位置的二维坐标扩展为三维坐标。以特征位置的坐标为:(1,1)为例来说,其扩展后的三维坐标可以为:(1,1,z),其中,z的值可以为0,也可以为任一正整数。

在对特征位置的坐标进行预处理之后,确定第一变换关系的步骤具体可以为:通过最小化特征点的三维坐标与特征位置的三维坐标之间的误差,确定特征点与特征位置之间的第一变换关系。

在确定出上述第一变换关系之后,可以对二维码模板执行第一变换。具体地,可以是对二维码模板中的每个模块(或者特征位置)执行第一变换。这里的第一变换可以是指相似变换,可以包括但不限于平移、旋转和缩放等。可以理解是,在对二维码模板执行第一变换之后,二维码模板就可以与待重构的二维码位于同一坐标系下,至此就实现了二维码模板与待重构的二维码的初步配准。

需要说明的是,在执行上述初步配准之前,由于特征点与二维码模板中的各个特征位置不在同一坐标系下,因此,通过上述步骤所确定的特征位置通常不够精确。因此,在完成上述初步配准之后,针对上述特征点,通过弹性配准算法,在执行第一变换后的二维码模板中重新确定特征点对应的特征位置,并确定特征点与重新确定的特征位置之间的第二变换关系。根据第二变换关系,对执行第一变换后的二维码模板执行第二变换。

还需要说明的是,由于第一类特征点与目标图形的角点相对应,也即其具有明确的位置,因此,与第一类特征点对应的特征位置通常也是确定的。从而弹性配准算法可以只针对第二类特征点重新确定对应的特征位置,并确定特征点与重新确定的特征位置之间的第二变换关系。之后,基于该第二变换关系对执行第一变换后的各个模块(或者特征点)再执行第二变换。

上述弹性配准算法可以包括但不限于迭代最近点(iterativeclosestpoint,icp)算法以及径向基函数(radialbasisfunction,rbf)等等。上述第二变换可以是指非刚性变换,可以包括但不限于旋转、平移、缩放以及扭曲等。在二维码模板执行第二变换之后,二维码模板就产生了与形变二维码相同的形变。

需要说明的是,本方案先获取不具有任何形变的二维码模板,之后基于当前恢复的二维码的三维结构,适应性地将当前二维码的形变应用到二维码模板上,从而可以对不同形式的形变二维码进行校正。

步骤314,将变换后的二维码模板投影到第一图像上或者将第一图像投影到变换后的二维码模板上。

通过上述各步骤只是使得二维码模板产生了与形变二维码相同的形变,但由于该二维码模板中各个模块的颜色值还不确定,因此还不能将该产生形变的二维码模板作为重构的二维码。为得到重构的二维码,还可以执行以下步骤:将执行第二变换后的二维码模板投影到上述多帧图像中的任一帧图像上,或者,将上述多帧图像中的任一帧图像投影到执行第二变换后的二维码模板上,至此就得到了重构后的二维码。可以理解的是,这里重构后的二维码为产生形变的二维码。

步骤316,对投影后的二维码模板进行采样,以得到校正后的二维码。

这里可以是对投影后的二维码模板中的每个模块(或者特征位置)进行采样,以获取执行投影后的二维码模板中每个模块所包含的各个像素点的像素值。之后基于采样得到的像素点的像素值,确定每个模块的颜色值。举例来说,假设某个模块包含7个像素点,且采样得到其中6个像素点的像素值为黑,1个像素点的像素值为白,那么该模块的颜色值为黑。

在确定出每个模块的颜色值后,将每个模块的颜色值填充到非形变二维码模版上,就可以得到去除形变后的二维码,该去除形变后的二维码也称为校正后的二维码。这里的非形变二维码模板可以是指步骤310中调用的二维码模板。

综上,本说明书实施例提供的二维码校正方法,可以不预设形变模型(即不设定整体的形变模型),从而能对不同形式的形变二维码进行校正。此外,本方案通过提取图像角点的方式获取形变的特征点,而非单纯依赖校正图形进行形变校正。由于二维码的编码特性,角点在二维码中大量存在,因此以角点作为特征点更加通用。最后,本方案在提供校正图形的情况下,能以更高的效率去除形变,但在没有校正图形的情况下,本方法仍然有效。

与上述二维码校正方法对应地,本说明书一个实施例还提供的一种二维码校正装置,如图5所示,该装置可以包括:

获取单元502,用于获取多帧包含同一二维码的图像。

提取单元504,用于从获取单元502获取的多帧图像中任意的第一图像中提取特征点,并在多帧图像中的其它图像中对特征点进行跟踪。

提取单元504具体可以用于:

基于特征点在第一图像中的坐标,在第一图像中框选出相应的区域。

从其它图像中确定出框选区域的对应区域。

在对应区域中查找与第一图像中的特征点相匹配的特征点。

将相匹配的特征点确定为第一图像中的特征点在其它图像中的对应特征点。

确定单元506,用于基于特征点在第一图像中的坐标、特征点在其它图像中的坐标以及三维重建算法,确定特征点在三维空间中的三维坐标。

获取单元502,还用于基于多帧图像中的至少一帧图像,获取与二维码的版本对应的二维码模板。

获取单元502具体用于:

在多帧图像中的至少一帧图像中检测三个探测图形及探测图形的中心点。

从三个探测图形中选取位于同侧的两个探测图形。

基于两个探测图形的中心点,计算两个探测图形之间的距离。

根据距离,确定二维码的版本。

获取与二维码的版本对应的二维码模板。

确定单元506,还用于从获取单元502获取的二维码模板中确定出特征点对应的特征位置。

变换单元508,用于基于确定单元506确定的特征点的三维坐标、特征位置在二维码模板中的坐标以及弹性配准算法,对二维码模板进行变换,使得二维码模板产生与第一图像中的二维码相同的形变。

变换单元508具体可以用于:

基于特征点的三维坐标以及特征位置在二维码模板中的坐标,确定特征点与特征位置之间的第一变换关系。

基于第一变换关系,对二维码模板执行第一变换。

通过弹性配准算法,在执行第一变换后的二维码模板中重新确定特征点对应的特征位置,并确定特征点与重新确定的特征位置之间的第二变换关系。

根据第二变换关系,对执行第一变换后的二维码模板执行第二变换。

这里的第一变换可以是指相似变换,包括平移、旋转和缩放等。第二变换可以是指非刚性变换,包括平移、旋转、缩放以及扭曲等。

投影单元510,用于将变换单元508变换后的二维码模板投影到第一图像上或者将第一图像投影到变换后的二维码模板上。

采样单元512,用于对投影单元510投影后的二维码模板进行采样,以得到校正后的二维码。

可选地,上述特征点可以包括第一类特征点和第二类特征点。第一类特征点与二维码中目标图形的角点相对应,该目标图形包括以下一种或多种:探测图形、校正图形以及定位图形。

选取单元506具体可以用于:

对第一类特征点,确定所对应的目标图形的角点的位置。将二维码模板中该位置确定为对应的特征位置。

对第二类特征点,计算第二类特征点与二维码模板中的各个特征位置之间的距离,将与最小距离对应的特征位置确定为对应的特征位置。

变换单元508还具体可以用于:

将特征位置在二维码模板中的坐标扩展为三维坐标。

通过最小化特征点的三维坐标与特征位置的三维坐标之间的误差,确定特征点与特征位置之间的第一变换关系。

本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。

本说明书一个实施例提供的二维码校正装置,获取单元502获取多帧包含同一二维码的图像。提取单元504从多帧图像中任意的第一图像中提取特征点,并在多帧图像中的其它图像中对特征点进行跟踪。确定单元506基于特征点在第一图像中的坐标、特征点在其它图像中的坐标以及三维重建算法,确定特征点在三维空间中的三维坐标。获取单元502基于多帧图像中的至少一帧图像,获取与二维码的版本对应的二维码模板。确定单元506从二维码模板中确定出特征点对应的特征位置。变换单元508基于特征点的三维坐标、特征位置在二维码模板中的坐标以及弹性配准算法,对二维码模板进行变换,使得二维码模板产生与第一图像中的二维码相同的形变。投影单元510将变换后的二维码模板投影到第一图像上或者将第一图像投影到变换后的二维码模板上。采样单元512,用于对投影后的二维码模板进行采样,以得到校正后的二维码。由此,可以对产生不同形变的二维码进行准确校正,从而具有较好的通用性。

本说明书一个实施例提供的二维码校正装置可以为图2中校正模块204的一个子模块或者子单元。

与上述二维码校正方法对应地,本说明书一个实施例还提供的一种二维码校正设备,如图6所示,该设备可以包括:存储器602、一个或多个处理器604以及一个或多个程序。其中,该一个或多个程序存储在存储器602中,并且被配置成由一个或多个处理器604执行,该程序被处理器604执行时实现以下步骤:

获取多帧包含同一二维码的图像。

从多帧图像中任意的第一图像中提取特征点,并在多帧图像中的其它图像中对特征点进行跟踪。

基于特征点在第一图像中的坐标、特征点在其它图像中的坐标以及三维重建算法,确定特征点在三维空间中的三维坐标。

基于所述多帧图像中的至少一帧图像,获取与二维码的版本对应的二维码模板。

从二维码模板中确定出特征点对应的特征位置。

基于特征点的三维坐标、特征位置在二维码模板中的坐标以及弹性配准算法,对二维码模板进行变换,使得二维码模板产生与第一图像中的二维码相同的形变。

将变换后的二维码模板投影到第一图像上或者将第一图像投影到变换后的二维码模板上。

对投影后的二维码模板进行采样,以得到校正后的二维码。

本说明书一个实施例提供的二维码校正设备,可以对产生不同形变的二维码进行准确校正,从而具有较好的通用性。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、移动硬盘、cd-rom或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。

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