一种用于圆柱面二维码贴的预畸变二维码生成方法与流程

文档序号:11231338阅读:1968来源:国知局
一种用于圆柱面二维码贴的预畸变二维码生成方法与流程

本发明涉及二维码识别技术领域,具体涉及一种用于圆柱面二维码贴的预畸变二维码生成方法。



背景技术:

目前,随着二维码编码解码技术的日益成熟,二维码在日常生活中的应用日趋广泛,媒体广告、防伪标签、名片社交、票证管理及电子支付等领域都以二维码为传播信息的载体来连通线上线下。

在较早期的技术中,二维码的印刷和放置受到一定限制,需要将二维码印制在平面或近似平面的印品上、或显示在平面的终端显示屏上,才能使得二维码识读设备能够对其成功的解码识别;识别时,由二维码识读设备通过摄像头采集到的平面的二维码图像,由于摄像头和二维码标记之间的位置关系,通常存在倾斜畸变,因此在识别二维码之前,需要要对图像进行校正处理,例如采用hough变换、中心走势线以及主方向检测等方法进行校正后,得到校正的二维码图像进行解码识别。

随着二维码应用技术的进步,目前,二维码也开始逐渐应用在不同形状物体的表面,例如:将二维码印于圆柱形药瓶、水杯等圆柱状物体表面用于记录相关信息;展会或促销时,将包含产品信息或宣传信息的二维码贴纸贴在展销人员的手臂上;等等。在这些应用场景下,因为二维码都位于圆柱面或类圆柱面物体上,二维码码识读设备拍摄到的二维码图像相较于平面的二维码图像而言存在一定的变形和失真,通用的二维码识读设备便无法直接对其进行解码识别,需要专用的具备曲面校正运算处理能力的二维码识读设备才能对拍摄图像进行畸变校正后正确的进行解码识别。现有技术中,在解决二维码识读设备拍摄到的贴在圆柱面上的条码的解码上有较大的局限性。一方面是需要二维码识读设备具备曲面校正运算处理能力,二维码识读设备对位于圆柱面物体表面的二维码解码效率较低,另一方面是通常需要用户手持具备曲面校正运算处理能力的二维码识读设备以不同角度捕获条码图像,然后进行解码尝试,解码成功率较低。

然而,如何能够使得通用的二维码识读设备也能够方便、快速、高效的解码识别出圆柱面物体表面上的二维码,成为了一个有待解决的问题。



技术实现要素:

针对现有技术中存在的不足,本发明的目的在于提供一种用于圆柱面二维码贴的预畸变二维码生成方法,用于将平面二维码进行预畸变处理得到能够抵消圆柱面拍摄透视畸变的预畸变二维码,用于作为圆柱面二维码贴,使得其贴设或印刷在圆柱面上之后,通过二维码识读设备对其直接拍摄获得的二维码图像趋同于拍摄平面二维码图像的效果,从而使得通用的二维码识读设备也能够方便、快速、高效的解码识别出圆柱面物体表面上的二维码,用以解决平面二维码贴直接贴设或印刷在圆柱体上无法被识别或识别率低的问题。

为实现上述目的,本发明采用了如下技术方案:

一种用于圆柱面二维码贴的预畸变二维码生成方法,包括如下步骤:

1)获得平面二维码图像,并获得对象圆柱面的截面圆半径r,预设拍摄俯仰角度θ;

2)建立平面坐标系,将平面二维码图像输入至平面坐标系中,使得平面二维码图像的中心点与平面坐标系的原点相重合,从而获得平面二维码图像中各像素点在平面坐标系中的像素坐标;

3)建立截面圆半径为r的圆柱面坐标系,使得圆柱面坐标系与平面坐标系的原点和纵坐标轴相重合,并建立圆柱面坐标系与平面坐标系之间的投射方程:

其中,k为投射比例系数;x、y分别为平面坐标系的横坐标值和纵坐标值;u、v分别为圆柱面坐标系的横坐标值和纵坐标值;m11~m33为投射矩阵元素,构成圆柱面坐标系与平面坐标系之间的投射矩阵;

4)获取平面二维码图像中除纵坐标轴上之外的四个像素点在平面坐标系中的像素坐标(xj,yj),j∈{1,2,3,4},按下式求出该四个像素坐标(xj,yj)投射在圆柱面坐标系中的对应像素坐标(uj,vj):

其中,π为圆周率;

5)将平面二维码图像中的四个像素点在平面坐标系中的像素坐标(xj,yj)与其投射在圆柱面坐标系中的对应像素坐标(uj,vj)的值作为输入量分别代入到圆柱面坐标系与平面坐标系之间的投射方程中,j∈{1,2,3,4},对投射方程进行联合求解,即求解出投射矩阵元素m11~m33的值,从而确定圆柱面坐标系与平面坐标系之间的投射矩阵;

6)设定投射比例系数k的取值,从而利用确定投射矩阵的圆柱面坐标系与平面坐标系之间的投射方程,根据平面二维码图像中各个像素点在平面坐标系中的像素坐标(xi,yi)计算确定其各自在圆柱面坐标系中的对应像素坐标(ui,vi),i∈{1,2,…,n},n表示平面二维码图像中包含的像素点总个数;

7)根据预设拍摄俯仰角度θ,对平面二维码图像中各个像素点在圆柱面坐标系中的对应像素坐标(ui,vi)进行俯仰角度拉伸变换:

u′i=ui,v′i=viarccosθ,i∈{1,2,…,n};

(u′i,v′i)表示平面二维码图像中各个像素点在圆柱面坐标系中的对应像素坐标(ui,vi)进行俯仰角度拉伸变换后的像素坐标值,i∈{1,2,…,n};

8)对平面二维码图像按照步骤7)所得的俯仰角度拉伸变换后的像素坐标值(ui′,vi′)进行平面拉伸,i∈{1,2,…,n},得到平面二维码图像用于对象圆柱面二维码贴所对应的预畸变二维码图像。

上述用于圆柱面二维码贴的预畸变二维码生成方法中,作为优选方案,所述步骤4)中,优选获取平面二维码图像中的四个角像素点在平面坐标系中的像素坐标用以求取投射在圆柱面坐标系中的对应像素坐标。

相比于现有技术,本发明具有如下有益效果:

本发明用于圆柱面二维码贴的预畸变二维码生成方法,其通过将平面二维码图像进行预畸变处理,得到对应的预畸变二维码图像,可用于打印成为二维码贴贴附于对象圆柱面上,或者直接印刷在对象圆柱面上,在预设的拍摄俯仰角度θ附近采用二维码识读设备对其直接进行拍摄,由于预畸变二维码能够抵消对圆柱面拍摄的透视畸变,使得二维码识读设备对其直接拍摄获得的二维码图像趋同于拍摄平面二维码图像的效果,从而使得通用的二维码识读设备也能够方便、快速、高效的解码识别出圆柱面物体表面上的二维码,解决了平面二维码贴直接贴设或印刷在圆柱体上无法被识别或识别率低的问题。

附图说明

图1为一个平面二维码贴的原始图像。

图2为图1所示平面二维码贴贴设于圆柱形杯子外侧面上的拍摄效果图。

图3为对图2所示杯子外侧面上的二维码进行畸变校正后得到二维码图像。

图4为平面二维码上的一点p的位置示意图。

图5为图4所示平面二维码上的一点p贴设在圆柱面上后的位置及其投射到平面上的投射位置关系示意图。

图6为θ度平面与0度平面之间的投射位置关系示意图。

图7为将图1所示平面二维码按照本发明方法处理得到的对应预畸变二维码图像。

图8为图7所示预畸变二维码图像贴设于圆柱形杯子外侧面上的拍摄效果图。

具体实施方式

本发明提出了一种用于圆柱面二维码贴的预畸变二维码生成方法,目的是使得平面二维码进行预畸变处理后得到的预畸变二维码贴设或印刷在圆柱面上之后,对其直接拍摄获得的二维码图像能够趋同于拍摄平面二维码图像的效果。要解决这一问题,需要解决透视和圆柱面畸变两个层面的问题。

现实生活中的景物,由于观察距离及方位不同在视觉上会引起不同的反映,这种现象就是透视现象。

1.透视变换的基本原理:

将z轴作为导出视点所在坐标轴,并且取与此轴垂直的坐标平面为画面的透视投影公式。设视点e(0,0,ze)在z轴上,空间点为s(xs,ys,zs),则视线es的直线方程为:

此直线和画面z=0相交时的参数为t=-ze/(z1-ze),将此参数t代入式(1)前面两个式子,并把变换式应用于三个坐标,且由于s是空间的任意一点,取消足坐标并用齐次坐标写出,式(1)的变换即是:

矩阵:

叫做视点在z轴上的透视变换阵。同理,视点在x轴上和y轴上的变换阵,分别为:

2.二维码预畸变实现方案:

根据透视变换理论,在使用线性摄像头拍摄二维码的场景中,可以使用3×4的矩阵来建模从世界坐标[5]到图像坐标的变换,用下述等式(5)描述。

其中,u和v代表一个点在图像平面中的坐标值;(x,y,z)描述了这个点在世界坐标系中的位置;k为比例系数,m11~m34构成摄影矩阵。

以圆柱形畸变为例,将如图1所示的平面二维码贴帖于圆柱形杯子的外侧面上,贴设效果如图2所示。圆柱形杯子直径为6cm,二维码尺寸为6×6cm,此时由于二维码的尺寸和圆柱的半径相当,圆柱瓶身所导致的畸变使得二维码无法识别。

(1)求解摄影矩阵:

由等式(5)世界坐标系到图像平面坐标系的变换,消去k,可以得到等式(6)所描述的关系。由等式(6)可知,方程中有12个未知数,对于矩阵来说只有11个自由度,可以令m34=1,从而求出摄影矩阵。因此需要6个点在两个坐标系中的对应位置(xi,yi)和(ui,vi),就可以解出摄影矩阵m11~m33。

(2)验证摄影矩阵:

出摄影矩阵后,为了验证该矩阵的正确性,将图2中畸变二维码通过摄影矩阵正向解码。扫描三维世界坐标系中的二维码坐标信息,通过摄影矩阵寻找各个点在图像中对应的灰度值,最终生成二维平面下的经过矫正的二维码,如图3所示,可以看出,二维码恢复的效果不错,将经过矫正的二维码(图3)与原始的平面二维码(图1)进行对比计算,得知矫正二维码的错误率仅为0.74%,因此可以判定摄影矩阵的求解是正确的。

(3)二维码预畸变:

在已知摄影矩阵的情况下,进行逆向预畸变。这里根据拍摄俯仰角度的不同分两种情况讨论。

a、当拍摄俯仰角度为0°的情况。

当拍摄俯仰角度为0°的时候,可以先将二维码映射到和二维码曲面相切的0°平面上。此时,对于这个平面,式(5)中的z轴坐标全为0,故可简化为式(7):

则式(6)相应的可以化简为式(8):

通过上文介绍的方法,此时只要得到4个点在两个坐标系中的对应位置(xi,yi)和(ui,vi)便可以求出摄影矩阵m11~m32。下面介绍这4个点在坐标系中的对应位置的求解方法。

对于圆柱形,在预畸变时只需要在x轴一个方向上进行拉伸即可。设平面二维码上的一点p,坐标为(x,y),如图4所示;若将该平面二维码贴设在圆柱面上,取包含p点的圆柱横截面,如图5所示。该横截面是一个半径为r的圆,由于圆柱曲面导致二维码产生畸变,在此将p点映射到平面上一点(x,y),即所对应弧度为α。设op1=x=l1,op2=x′=l2,则:

即可得出l1,l2的关系:

预畸变的坐标关系为:

通过式(12)的关系,即可找出4个点在两个坐标系中的对应位置(xi,yi)和(ui,vi),通常选取二维码的如四个角点,接着就可以求出摄影矩阵m11~m32。对摄影矩阵进行逆向畸变,即只需要将每个点按上述关系进行拉伸,则当二维码贴于圆柱面时,由于圆柱面的视觉压缩,此时二维码就会呈现等同于贴在水平面上的效果。

b、当拍摄俯仰角度不为0°的情况。

当拍摄俯仰角度不为0°时,需要进行两次坐标映射。

(1)首先,设二维码扫描识别设备的拍摄俯仰角度为θ,对于这种情况,可以近似等价于如6所示。图6中,θ度平面是标准二维码成像所在的平面,首先将θ度平面的二维码坐标映射到0度平面,考虑二维码上任意一点p,其坐标为(x,y),p1的坐标为(x1,y1)。分别过p、p1做垂直与x轴的垂线并相交于o,则可以推导出坐标映射关系为:

y1=yarccosθ;(13)

同理,按照此方法可以求出标准二维码映射到0度平面之后四个顶点的坐标。然后,通过已知的四个点,按照拍摄俯仰角度为0时的方法,即可求出对应的0度平面预畸变二维码。

(2)接着,通过第一次映射得到的0度平面的二维码的四个顶点与圆柱体的直径,可以求出最后贴于圆柱体的二维码四个顶点映射到0度平面后的坐标。最后再根据0度平面二维码的四个顶点与曲面映射到0度平面时的四个顶点的坐标,通过空间投影倾斜校正逆向求解的方法得到最终需要的预畸变的二维码。

由此,本发明用于圆柱面二维码贴的预畸变二维码生成方法,其整体处理流程包括如下步骤:

1)获得平面二维码图像,并获得对象圆柱面的截面圆半径r,预设拍摄俯仰角度θ。

2)建立平面坐标系,将平面二维码图像输入至平面坐标系中,使得平面二维码图像的中心点与平面坐标系的原点相重合,从而获得平面二维码图像中各像素点在平面坐标系中的像素坐标。

3)建立截面圆半径为r的圆柱面坐标系,使得圆柱面坐标系与平面坐标系的原点和纵坐标轴相重合,并建立圆柱面坐标系与平面坐标系之间的投射方程:

其中,k为投射比例系数;x、y分别为平面坐标系的横坐标值和纵坐标值;u、v分别为圆柱面坐标系的横坐标值和纵坐标值;m11~m33为投射矩阵元素,构成圆柱面坐标系与平面坐标系之间的投射矩阵。

4)获取平面二维码图像中除纵坐标轴上之外的四个像素点在平面坐标系中的像素坐标(xj,yj),j∈{1,2,3,4};这里可以优选采用平面二维码的四个角像素点,因为平面二维码的四个角像素点在平面坐标系中的坐标位置相差较大,有利于充分体现两个坐标之间的投射关系,同时,由于平面坐标系与圆柱面坐标系的纵坐标轴相重合,无法用于体现两个坐标之间的投射关系,因此应当排除使用纵坐标轴上的像素点;然后,按下式求出该四个像素坐标(xj,yj)投射在圆柱面坐标系中的对应像素坐标(uj,vj):

其中,π为圆周率。

5)将平面二维码图像中的四个像素点在平面坐标系中的像素坐标(xj,yj)与其投射在圆柱面坐标系中的对应像素坐标(uj,vj)的值作为输入量分别代入到圆柱面坐标系与平面坐标系之间的投射方程中,j∈{1,2,3,4},对投射方程进行联合求解,即求解出投射矩阵元素m11~m33的值,从而确定圆柱面坐标系与平面坐标系之间的投射矩阵。

6)设定投射比例系数k的取值,从而利用确定投射矩阵的圆柱面坐标系与平面坐标系之间的投射方程,根据平面二维码图像中各个像素点在平面坐标系中的像素坐标(xi,yi)计算确定其各自在圆柱面坐标系中的对应像素坐标(ui,vi),i∈{1,2,…,n},n表示平面二维码图像中包含的像素点总个数。

7)根据预设拍摄俯仰角度θ,对平面二维码图像中各个像素点在圆柱面坐标系中的对应像素坐标(ui,vi)进行俯仰角度拉伸变换:

u′i=ui,v′i=viarccosθ,i∈{1,2,…,n};

(u′i,v′i)表示平面二维码图像中各个像素点在圆柱面坐标系中的对应像素坐标(ui,vi)进行俯仰角度拉伸变换后的像素坐标值,i∈{1,2,…,n}。

8)对平面二维码图像按照步骤7)所得的俯仰角度拉伸变换后的像素坐标值(u′i,v′i)进行平面拉伸,i∈{1,2,…,n},得到平面二维码图像用于对象圆柱面二维码贴所对应的预畸变二维码图像。

针对图1所示的平面二维码,在对象圆柱面的截面圆半径r为3cm、预设拍摄俯仰角度θ为0°的条件下,按照本发明方法处理得到的对应预畸变二维码图像如图7所示,将该预畸变二维码图像进行平面打印为二维码贴贴设与截面圆半径为3cm(直径为6cm)的圆柱形杯子外侧面上,从0°的拍摄俯仰角度进行拍摄所得的图像如图8所示。可以看到,通过本发明方法将平面二维码图像处理得到的预畸变二维码图像,可用于打印成为二维码贴贴附于对象圆柱面上,或者直接印刷在对象圆柱面上,在预设的拍摄俯仰角度θ附近采用二维码识读设备对其直接进行拍摄,由于预畸变二维码能够抵消对圆柱面拍摄的透视畸变,使得二维码识读设备对其直接拍摄获得的二维码图像趋同于拍摄平面二维码图像的效果,从而使得通用的二维码识读设备也能够方便、快速、高效的解码识别出圆柱面物体表面上的二维码,解决了平面二维码贴直接贴设或印刷在圆柱体上无法被识别或识别率低的问题。

但是,本发明二维码预畸变处理方案还存在一些局限性:

1.本发明方案能够实现一个拍摄俯仰角度θ的二维码预畸变,并且使用二维码识读设备在预设的拍摄俯仰角度θ附近进行拍摄扫描,都能够正确的解码识别出二维码信息,但对于任意拍摄扫描角度的扫描识别,本发明方案暂时无法满足。

2.如果实际圆柱体的横截面半径与预畸变处理中的圆柱体的横截面半径值不相一致或者存在偏差,会使得采用本发明方法得到的预畸变二维码图像存在误差,可能会导致通用二维码识读设备对其扫描识别失败。

虽然本方案还存在以上问题,但是对于满足特定应用场景的条件下,本发明方法处理得到的预畸变二维码作为圆柱面二维码贴贴设或印刷在圆柱面上之后,能够使得直接拍摄获得的二维码图像趋同于拍摄平面二维码图像的效果,从而使得通用的二维码识读设备也能够方便、快速、高效的解码识别出圆柱面物体表面上的二维码,可以满足正常的使用需求。上述两方面的技术问题,可在后续的研究中进行分析解决。

最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

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