一种用于平面连续定位的QRL码及其连续定位的方法与流程
本发明涉及一种二维码技术,具体涉及一种用于平面连续定位的QRL二维码技术及其定位方法。
背景技术:
QR二维码(Quick Response Code)是目前最广泛被使用的二维条码之一,源自发明者希望QR码可让其内容快速被解码。QR码比普通条码可储存更多资料,亦无需像普通条码般在扫描时需直线对准扫描器。构成QR码的最小构件是码块(module),它是黑色或白色的小正方形。在下面的叙述中,我们将以码块的边长作为计量单位的度量称为码块单位。QR 码呈正方形,由N*N个码块组成,即每边的长度为N个码块单位;QR码分为VERSION 1 到 VERSION 40等40中不同的版本,每个版本的边长N均不相同。VERSION 1占用最小的空间,N=21;VERSION 2比VERSION 1每边多4个码块,N=25;以此类推……。在4个角落的其中3个,印有较小,像“回”字的的正方图案,称为定位图案(Finder Pattern),如图1所示,该定位图形是一个7*7个码块构成的特定图案,是帮助解码软件定位的图案,软件算法在获取二维码图像后,通过任意两个正交方向扫描,寻找满足比例为1:1:3:1:1黑白相间条纹(黑/白/黑/白/黑)来获取定位图案的中心点;通过发现多个定位图案的中心点并确定它们之间的联系来找出并确定二维码中每个码块的具体物理坐标,并使用与编码反向的算法最终解码这个二维码。除了上述定位图案以外,QR码中还可以有对准图案(Align Pattern),定标图案(Timing Pattern),格式信息(Format Information)、空白区(Quiet Zone)以及编码区(Encoding Region),其中最后一项的编码区是我们最关注的。编码区中包含原始数据代码和纠错代码,原始数据代码和纠错代码均有若干数据位构成,每个数据位使用一个码块,按照一定规律摆放。原始数据是我们解码的目标数据,而纠错代码的存在,使得当QR码被轻度污损的情况下,仍能获取正确的原始数据。近年来,随着互联网+的快速发展,QR码以其优异的特性成为仓储、物流、手机应用等领域中被广泛使用的一种二维码。
QR除了有上述领域的应用之外,有人还试图将其用于平面运动物体(下称动子)的持续定位。譬如专利申请号为2015109690628名称为一种基于二维码图像标签的AGV导航控制方法的中国专利申请中描述的AGV小车(Automated Guided Vehicle)就是一例。一般来说,在这类应用中,QR码是印刷在动子上方或动子下方的静止平面上,动子上安装有摄像头之类的设备,任何时候动子的摄像头对准平面上的QR码进行拍摄和识别,就可以获取动子的基准点和QR图案的参考点之间的相对位置以及摄像头相对于QR码图案的偏离角度。通常,摄像头拍摄的图案存储在摄像头的图像阵列(Image Array)中,每次完成一幅图像的拍摄后,可通过通信端口传送到摄像头外部由其它硬件和软件进行处理。为了量化二维码构件和像素之间的关系,我们定义将摄像头的图像阵列中,一个码块单位所包含的像素数(可以不为整数)称为码块分辨率(mResolution, module Resolution)。为了能够持续地利用当前位置上的QR码进行定位,摄像头获取的图形必须能够在任何时候、任何角度下至少包含一个完整的QR码。这就意味着图像阵列的大小必须满足如下条件,即假定码块分辨率为mResolution,QR码的边长为N个码块单位,则图像阵列的短边所含像素数必须>=(2*N+1)*√2*mResolution,如图2所示。以最小的QR码VERSION 1为例,其码块长度为21,计算结果约为(2*21+1)*1.414*mResolution ≈61个码块长,即只有当摄像头的图像阵列至少可以包含61*61个码块的情况下,理论上才有可能在任何位置任何角度包含一个完整的QR-VERSION 1二维码,如图2所示。
一般来说,图像阵列大的摄像头价格更高。如果让一个固定大小的图像阵列中包含越多的码块,那么每个码块拥有的像素就越少,也就意味着码块分辨率越低,误码的可能性越高;为了提高码块的分辨率,可以使用图像阵列更大、像素更多的更高档的摄像头,这却意味着成本的提高,同时也意味着来自摄像头的数据通信量和处理负荷的增加。因此如果能够找到一种针对定位应用的新的二维码方案,使得任何位置任何角度包含一个完整二维码所需要包含的码块数显著减少,从而降低对摄像头性能的要求,继而降低成本并降低数据通信量,是具有重要意义的。
技术实现要素:
本发明公开一种二维码技术,它是根据定位应用的特点,在借鉴了QR码的一些有用元素的基础上,量身打造的一种平面可连续定位的改进型二维码技术,我们将其命名为QRL码(Quick Response code for Locating ),下文中统一称QRL码。
本发明采用的技术方案如下:一种用于平面连续定位的QRL码,包括至少一个识别单元,识别单元中包括定位部分和数据部分:
所述定位部分包括两个定位图案块:所述定位图案块的边长都是7个码块单位,且都是按纵向和横向1:1:3:1:1的比例排列;
所述数据部分包括两个编码子图块;
上述两个定位图案块和两个编码子图块排布呈一个正方形区域,且两个定位图案块位于正方形区域的正对角位置,两个编码子图块位于正方形区域的另一正对角位置。
作为优选,本发明的一种用于平面连续定位的QRL码,所述数据部分的两个编码子图块包括一个行编码子图块和一个列编码子图块。
本发明的一种用于平面连续定位的QRL码,每个行编码子图块或列编码子图块最多可同时处在4个不同的QRL码的识别单元中。
作为优选,本发明的一种用于平面连续定位的QRL码,所述行编码子图块或列编码子图块是9*9规格码块单位的正方形;行编码子图块或列编码子图块中的纠错编码均使用Reed-Solomon编码,并选择GF(16)作为有限域,使用的本原多项式为x^4+x+1,其数据块为4元组。
作为优选,本发明的一种用于平面连续定位的QRL码,所述行编码子图块或列编码子图块是7*7规格码块单位的正方形,行编码子图块或列编码子图块中的纠错编码均使用Reed-Solomon编码,并选择GF(16)作为有限域,使用的本原多项式为x^4+x+1,其数据块为4元组。
本发明的一种用于平面连续定位的QRL码,当所述QRL码具有多个识别单元时,各个识别单元中的所有行编码子图块或列编码子图块均沿X轴向或沿Y轴向对齐;上述具有多个识别单元的QRL码构成一个布局。
作为优选,本发明的一种用于平面连续定位的QRL码,所述QRL码的每个布局的边界通过左上、右上、左下、右下四个方向上的边界特征位来表述,且所述边界特征位设置在QRL码的每个行编码子图块中和列编码子图块中。
作为优选,本发明的一种用于平面连续定位的QRL码,所述QRL码的每个布局的边界通过左上、右上、左下、右下四个方向上的边界特征位来表述,且所述边界特征位存储在控制单元中。
本发明的一种用于平面连续定位的QRL码,在定位图案和行编码子图块之间或者定位图案和列编码子图块之间具有n个码块单位的空白作为分隔,所述1≤n≤5,且n可以不为整数。
本发明的一种利用权利要求1所述的QRL码进行连续定位的方法,具体步骤如下:
(1)、首先通过摄像头识别出多个定位图案,并获取它们在XOY坐标系中的中心坐标, 所述XOY坐标系是以摄像头图像阵列的单元0为原点,以阵列的X轴为X轴,以阵列的Y轴为Y轴构成的坐标系;在任意两个正交的方向上间隔相同间距虚拟画线并找出所有彼此相邻并满足条件1:1:3:1:1(黑/白/黑/白/黑)的线段;在两个方向上数个平行的满足条件的线条的中心线一定穿过或非常接近定位图案的中心点,而两根这样的中心线的交点便被认为是定位图案的中心点;
(2)、找出所有对角相邻的定位图案的中心坐标对:将两个定位图案的中心连线两端延长至两个定位图案的边缘,可以得到1:1:3:1:1:x:1:1:3:1:1(黑/白/黑/白/黑/白/黑/白/黑/白/黑)的黑白相间图案;当满足1≤x≤6,则认为是对角相邻的;找出所有满足上述条件的定位图案,并确定所有对角相邻的定位图案的中心坐标对;进一步的,当识别单元中的编码子图块是9*9规格码块时,满足2≤x≤6;当识别单元中的编码子图块是7*7规格码块,满足1≤x≤5;所以如果x值小于2,可直接判定识别单元中的编码子图块是7*7规格码块,如果x值大于5,则可直接判定识别单元中的编码子图块是9*9规格码块, 当2≤x≤5的时候,有可能是7*7规格码块,也有可能是9*9规格码块,需要进一步判断,见步骤(6);
(3)、检查每个中心坐标对所对应的定位图案外加相应的行编码子图块和列编码子图块是否包含在图像阵列中,选择所有符合条件的定位图案对之一作为目标定位图案对;
(4)、使用XOY坐标系中定位图案的对角线距离dd,可以计算出码块分辨率如下mResolution = dd/√2/7;
(5)、针对选定的目标定位图案对,沿其中心连线45度角作虚线,其交点即为两个行编码子图块和列编码子图块的中心位置,使用mResolution、中心点以及两条虚线所提供的方向信息,可以绘制出行编码子图块和列编码子图块的码块栅格,从而获取每个码块的状态信息;
(6)、使用行编码子图块和列编码子图块的特征码块确认行编码子图块和列编码子图块位置的正确性以及行编码子图块、列编码子图块的正方向和定位图案与行编码子图块/列编码子图块之间的空白间隔,其中,行编码子图块、列编码子图块的正方向也即X’O’Y’的方向,所述X’O’Y’坐标系的原点是一个虚拟的、其行编码和列编码均为0的定位图案中心点所在的位置;如果在步骤2中已经判定是9*9规格码块或7*7规格码块,则只要确认相应的特征码块以及空白间隔与预期相同,否则,如果在步骤2中x在2和5之间,则先假定是9*9规格码块, 验证相应的特征位和空白间隔,如果不对,再验证是否是7*7规格码块;
(7)、对行编码子图块和列编码子图块进行解码,并据此确定两个定位图案中心点在X’O’Y’坐标系中的坐标;
(8)、根据两个定位图案中心连线( (x1,y1),(x2,y2) )在XOY坐标系中相对于Y轴的角度β可以确定XOY坐标系相对于X’O’Y’坐标系的偏差角度α;
(9)、假定(x1,y1)是行编码和列编码所代表的那个定位图案中心点在XOY坐标系的坐标,穿过该点做X’和Y’轴的平行线lx,ly;
(10)、CAM_REF(Camera Reference)是动子在XOY坐标系中的一个固定参考点,一般选择摄像头镜头中心点所代表的那个像素,其坐标始终固定为(xc,yc);计算(xc,yc)到lx,ly的距离记为dx和dy;
(11)、计算CAM_REF在X’O’Y’坐标系中的坐标如下:如果COL的值为Cmax,则xc’=Cmax, 否则xc’ = COL + dx/(dc *√2);如果ROW的值为Rmax,则yc’ = Rmax, 否则yc’ = ROW + dy/(dc *√2),其中dc为XOY坐标系中两个相邻定位图案中心之间的距离;(xc’,yc’)和α便是定位的结果。
本发明的积极效果如下:
1.本发明所描述的QRL码选择交叉使用定位图案和行/列编码子图块,既使得QR二维码的快速解码特性得到继承,又使得要识别一个完整二维码摄像头的图像阵列所必须包含的单边的码块数比最小的QR码减少将近一半。这意味着,如果保持码块分辨率不变,那么使用QRL码可以用更低档的照相机来完成同样的任务(譬如原来需要使用100万像素的照相机,现在30万像素的照相机就OK了);如果保持相机不变,使用QRL可使得码块分辨率提高将近1倍。
2. 本发明通过采用对角交叉放置定位图案和行/列编码的方法,使得多个QRL码可以共享行/列编码子图块,它的直接后果是每次只要向QRL码的X’方向或Y’方向移动8~10个码块长度(而即使使用最小的QR码连续排布需要移动22个码块长度),就可以平滑地从一个QRL码过渡到另一个QRL码,使得定位精度更高。
3. 由于采用QF(16)的Reed-Solomon码降低了数据块的颗粒度,较之QR码,在同等情况下,允许有更多数据块被污染后,可以完全恢复原始信息,提高了编码的容错性。
4.作为QRL应用的特例,QRL码可以方便地用来做一维定位相关的应用。
附图说明
图1是现有技术二维码中的定位图案结构示意图;
图2是现有技术中摄像头对准平面上的QR二维码进行拍摄和识别的一种示例图;
图3是本发明一种内嵌9*9规格行列编码子图块用于平面连续定位的QRL码的一种布局实例;
图4~图7是图3的局部分解图;
图8是摄像头对准本发明内嵌9*9规格行列编码子图块的QRL码进行拍摄和识别时的一种示例图;
图9是本发明内嵌9*9规格行列编码的QRL码中的行编码子图块或列编码子图块的结构(不区分信息块和纠错块);
图10是本发明内嵌9*9规格行列编码子图块的QRL码中的行编码或列编码子图块中数据排布和扫描次序示意图;
图11是本发明内嵌9*9规格行列编码子图块的QRL码按图10所示次序排布后的结果;
图12是本发明内嵌9*9规格行列编码子图块的QRL码中的行编码或列编码子图块的一种结构实例(区分信息块和纠错块);
图13是本发明内嵌9*9规格行列编码子图块的QRL码中的行编码或列编码子图块的另一种结构实例(区分信息块和纠错块);
图14~图17是本发明内嵌9*9规格行列编码的QRL码中的行编码或列编码子图块中信息块的位定义的4个实例;
图18是本发明的QRL码的一种定位示意图;
图19是本发明的QRL码的定位图案中心点的识别方法示意图;
图20是本发明的QRL码的对角相邻定位图案对的识别方法示意图;
图21是本发明的QRL码的非对角相邻定位图案的排除方法示意图;
图22是本发明的QRL码获取行编码或列编码子图块中心点的方法示意图;
图23是本发明一种内嵌7*7规格行列编码子图块用于平面连续定位的QRL码的一种布局实例;
图24是摄像头对准本发明内嵌7*7规格行列编码子图块的QRL码进行拍摄和识别时的一种示例图;
图25是本发明内嵌7*7规格行列编码的QRL码中的行编码子图块或列编码子图块的结构(不区分信息块和纠错块);
图26是本发明内嵌7*7规格行列编码的QRL码中的行编码或列编码子图块中数据排布和扫描次序示意图;
图27是本发明内嵌7*7规格行列编码的QRL码按图26所示次序排布后的结果;
图28~图29是本发明内嵌7*7规格行列编码的QRL码中的行编码或列编码子图块的两种结构实例(区分信息块和纠错块);
图30~图32是本发明内嵌7*7规格行列编码的QRL码中的行编码或列编码子图块中信息块的位定义的3个实例;
图33是本发明QRL码在一个应用中使用两个布局的实例;
图34是本发明QRL码用于X方向一维定位的实例;
图35是本发明QRL码用于Y方向一维定位的实例。
具体实施例
下面结合具体实施例对本发明作进一步的阐述,但本发明并不限于以下实施例。
实施例1
所谓QRL码其实涉及到两层概念:QRL布局和QRL单元;其中QRL单元是QRL码得以完整识别的基本单元,而QRL布局是将多个QRL单元按相同的规律连续排布后构成的任意形状的图案。每个QRL单元包含有两个定位图案(Finder Pattern)、一个行编码子图块(Row Encoding)和一个列编码子图块(Column Encoding);所述定位图案和QR码的定位图案完全相同,其边长都是7个码块单位,且都是按纵向和横向1:1:3:1:1(黑/白/黑/白/黑)的比例排列。行编码子图块和列编码子图块在外形上没有任何差别,统称为行列编码,共有9*9和7*7两种规格,9*9规格的行列编码有9*9个码块排列成正方形,然后去掉4个角上的4个码块构成(参见图11);而7*7规格的行列编码有7*7个码块排列成正方形(参见图27);对于一个行列编码究竟是行编码子图块还是列编码子图块,需要通过解码该行列编码后才能确定(参见图14~图17以及图30~图32中的cr);在任何一个QRL布局中(参见图3和图23),定位图案、行编码子图块,列编码子图块是交替摆放的:相邻的定位图案之间总是呈正对角排列,而相邻的行编码子图块和列编码子图块也总是呈正对角排列;相邻的两个定位图案决定了与之相关的两个行编码子图块和列编码子图块的中心位置。行编码子图块和行编码子图块之间、列编码子图块和列编码子图块之间,分别纵向横向对齐;一般来说,处于同一列的列编码子图块的列编码数值相同,处于同一行的行编码子图块的行编码数值相同,相邻列的列编码子图块的列编码数值相差1,相邻行的行编码子图块的行编码数值相差1。在定位图案和行编码子图块之间或者和列编码子图块之间,根据其相对位置关系,中间都留有最小为一个码块单位的空白作为分隔,分隔最大不超过5个码块单位。即在定位图案和行编码子图块之间或者定位图案和列编码子图块之间具有n个码块单位的空白作为分隔,所述1≤n≤5,且n可以不为整数。
图3给出了具有9*9行列编码的QRL布局的一个实例。在图3中,所有的定位图案、行编码子图块和列编码子图块有机地结合在一起。以C打头的C301,C302,C303表示这些是列编码子图块,编码数值分别为301,302和303;而以R打头的R939,R940表示这些是行编码子图块,编码数值分别为939和940;在布局的任何位置,选取两个对角相邻的定位图案以及一个与这两个定位图案均相邻的行编码子图块和一个与这两个定位图案均相邻的列编码子图块,便构成了一个完整的QRL识别单元。如前所述,QRL识别单元是供摄像头捕捉并由系统识别的基本单元。一个合法的QRL识别单元总是由两个定位图案、一个行编码子图块,一个列编码子图块组成,其中定位图案呈对角摆放,而行编码子图块和列编码子图块在另一个方向上呈对角摆放;根据QRL识别单元在一个QRL布局中所处的位置的不同,它们可以构成4种不同的组合,如图4~图7所示。仔细观察图3可知,在QRL布局中,每个定位图案,或行编码子图块,或列编码子图块,可以同时处于最多4个不同的QRL单元中(分别对应了图4~图7),即由最多4个不同的QRL识别单元共享,这是QRL码的显著特征之一。
与QR码类似,为了能够持续地利用当前位置上的QRL码进行定位,摄像头获取的图形必须能够在任何时候、任何角度下至少包含一个完整的QRL识别单元。根据图8可知,为了满足上述条件,摄像头的图像阵列(Image Array)像素较少的那条边的像素数目MinNumPixels必须满足如下条件:
MinNumPixels >=(7+1+9+1+7)*√2 *mResolution= 35.4*mResolution = 35.4码块单位
上述计算表明,当使用9*9规格的行列编码并且分隔为1个码块单位时,与QR码用于定位应用的情形下图像阵列单边至少覆盖61个码块相比,使用相同的摄像头,QRL码需要的码块单位数减少了42%。
规格为9*9的行编码子图块和列编码子图块的结构在形式上完全相同,如图9所示。每个行编码子图块或列编码子图块都包含2个固定白码块(图中标识为W的),15个固定黑码块, 以及15个数据块(B1~B15),每个数据块由4个码块构成,形成一个4元组(4-tuple)。其中,四个角上的8个固定码块标识行列编码的边界;设置在中间的7个固定黑码块和2个固定白码块,其作用有三:一是用来标识行列编码的正方向,二是保证在行编码子图块或列编码子图块的结构中绝对不会出现冒牌的定位图案,三是在定位过程中用来强化对行编码子图块或列编码子图块的位置确认;15个数据块的排布按B1到B15的次序,低位优先,以两列为单位,自右至左,先自下而上然后自上而下然后再自下而上,以此类推地排布,遇到固定码块直接跳过,直至全部布满。完整的数据块排布次序和和排布结果,如图10,图11所示。
为了使QRL具有抗“污”能力,需要引入冗余编码,15个数据块被分成两组,一组为原始数据,称为信息块(由k个数据块构成),另一组为纠错数据,称为纠错块(由n-k个数据块构成,其中n为总的数据块数,这里为15)。与QR码类似,QRL码也使用Reed-Solomon(RS)码对数据块进行编码。Reed-Solomon码,作为差错控制领域中一类重要的线性分组码之一,具有较强的纠正突发错误和随机错误的能力,广泛用于各种差错控制领域。在编码时,Reed-Solomon码以信息块D1~Dk为输入,通过运算获得纠错块(如E1~En-k),然后将信息块和纠错块合并一起放到信息载体(如此处的行列编码)上;在解码时,取所有这些信息块和纠错块为输入,经过运算,将信息块(D1~Dk)作为结果返回。其奥妙在于由于信息块和纠错块之间存在关联性,使得即使部分信息块或纠错块受到破坏(最多允许(n-k)/2个破坏),这些信息块和纠错块仍然可以得到完全恢复。
Reed-Solomon码定义在伽罗华域GF(q) 上。QR码为了兼顾较大规模的二维码,使用GF(256)作为有限域,使用的本原多项式为x^8+x^4+x^3+x^2+1,其数据块为8元组(由8个位组成)。与QR码不同,本发明的QRL码作为一种定位工具,承载数据量有限,选择使用GF(16)作为有限域,使用的本原多项式为x^4+x+1,其数据块为4元组。相比QR码,QRL码将数据块的颗粒度降低一半后使得允许更多的污损点出现在行列编码的不同位置上,从而提高了QRL的容错性。具体地说,以图12为例,k=5,一共可以有20位用于信息编码;剩余10个(n-k)纠错块使得当有任意5个((n-k)/2)信息块或纠错块受到破坏时,仍然能够找回正确的信息块和纠错块。以图13为例,k=7,一共可以有28位用于信息编码,剩余8个(n-k)纠错块使得当有任意4个((n-k)/2)信息块或纠错块受到破坏时,仍然能够找回正确的原始信息。
图14~图15展示了k=5时可能的编码方式,图16~图17展示了k=7时可能的编码方式。对于每一个图,最下面一排为信息块的编号,中间一排是每个信息块的位次序,最上面一排是每个位的含义,解释如下:
cr : 行/列指示,表示这个行列编码代表一个行编码还是一个列编码,当cr=1时,表示这是一个行编码,当cr=0时,表示这是一个列编码;
b0,b1,b2,b3,b4... : 行编码或列编码的值。
tl : 左上top-left
tr : 右上top-right
bl: 左下bottom-left
br: 右下bottom-right
表示边界特征。边界特征是用来标识一个布局的边界的,具体地说是用来标识某个行列编码在左上、右上、左下、右下四个方向上是否可以和另一个列编码或行编码加上相应的定位图案构成一个完整的QRL单元。如果答案为真,则对应的边界特征位(tl,tr,bl,br)为1。以图3为例,靠右的R940的左上角和左下角有C302,右上角和右下角有C303,所以对它来说,tl=1,tr=1,bl=1,br=1;而对于左上角的C301来说,左上角、右上角,左下角没有行列编码,右下角有R940,所以对它来说,tl=0,tr=0,bl=0,br=1。当动子在平面上移动时,使用边界特征位的目的是让控制装置明白,在特征位为0的方向上,以及由多个特征位为0的方向构成的组合方向上,已经到达了当前布局的一个边界,继续朝这个方向运动可能无法识别有效的QRL码。值得注意的是,一个布局的边界特征位既可以放置在QRL的行列编码中,也可以存储在控制单元中,但放置在QRL的行列编码中可以使动子获得在不同布局下的通用性,但减少了行列编码可用的编码长度。使用者要通过评估,灵活地使用。
为了清晰地解释QRL码的解码定位过程,我们把一个QRL码同时放置在两个不同的坐标系中,如图18所示。一个坐标系是以行编码子图块和列编码子图块都为0的那个定位图案中心为原点,分别以定位图案的X’轴和Y’轴为坐标系的X’轴和Y’轴,这个原点可以是虚拟的,也就是说一个应用并不强制行编码和列编码都从0开始编码(可参考图3);另一个坐标系是以摄像头图像阵列的单元0为原点,以阵列的X轴为X轴,以阵列的Y轴为Y轴构成的坐标系。首先,摄像头获取一个未识别的图像;根据前面的陈述,摄像头的图像阵列一定至少包含一个完整的QRL码;其解码定位过程如下:
1.使用与QR码相同的手段,可以识别出多个定位图案,并获取它们在XOY坐标系中的中心坐标;其方法如图19所示,在任意两个正交的方向上间隔相同间距虚拟画线并找出所有彼此相邻并满足条件1:1:3:1:1(黑/白/黑/白/黑)的线段,从图19中可以看出,在两个方向上数个平行的满足条件的线条的中心线(图中加粗的线段)一定穿过或非常接近定位图案的中心点,而两根这样的中心线的交点便被认为是定位图案的中心点;
2.找出所有对角相邻的定位图案的中心坐标对;其方法如图20所示。在图20中,两个定位图案是对角相邻的,将其中心连线扩展到两个定位图案的边缘,可以得到如图的1:1:3:1:1:x:1:1:3:1:1(黑/白/黑/白/黑/白/黑/白/黑)的黑白相间图案,其中2≤x≤6,因此被判定为对角相邻;作为比较,在图21中,两个横向分开的定位图案虽然也有可能得到1:1:3:1:1:x:1:1:3:1:1(黑/白/黑/白/黑/白/黑/白/黑)的黑白相间图案,但很明显不能满足2≤x≤6的条件,所以可被判定为不是对角相邻;
3.检查每个中心坐标对所对应的定位图案外加相应的行编码子图块和列编码子图块是否包含在图像阵列中;根据前面的分析,总能找到至少一对这样的定位图案;
4.如图20所示,使用XOY坐标系中定位图案的对角线距离dd(diagnaldistance),可以计算出码块分辨率如下mResolution = dd/√2/7
5.如图22所示,针对选定的定位图案对,沿其中心连线45度角(角度在图中未画出)作虚线,其交点即为两个行编码子图块和列编码子图块的中心位置,使用mResolution、中心点以及两条虚线所提供的方向信息,可以绘制出行编码子图块和列编码子图块的码块栅格,从而获取每个码块的状态信息(黑或白)
6.使用它们的特征码块确认行编码子图块和列编码子图块位置的正确性以及行编码子图块或列编码子图块的正方向,也即X’O’Y’的方向;
7.对行编码子图块和列编码子图块进行解码,并据此确定两个定位图案中心点在X’O’Y’坐标系中的坐标;
8.根据图18中两个定位图案中心连线((x1,y1),(x2,y2))在XOY坐标系中相对于Y轴的角度β可以确定XOY坐标系相对于X’O’Y’坐标系的偏差角度α,在图18的例子中,它们的关系是β = α + 45°
9.假定(x1,y1)是行编码ROW和列编码COL所代表的那个定位图案中心点在XOY坐标系的坐标,穿过该点做X’和Y’轴的平行线lx,ly;
10.CAM_REF(Camera Reference)是动子在XOY坐标系中的一个固定参考点,一般选择摄像头镜头中心点所代表的那个像素,其坐标始终固定为(xc,yc);计算(xc,yc)到lx,ly的距离(带符号)记为dx和dy;
11.计算CAM_REF在X’O’Y’坐标系中的坐标如下:
xc’ = COL + dx/(dc *√2),yc’ = ROW + dy/(dc *√2),其中dc(distance of centers)为XOY坐标系中两个相邻定位图案中心之间的距离。
12.(xc’,yc’)和α便是定位的结果。
实施例2
本实施例给出了具有7*7规格行列编码的一个QRL布局实例,如图23所示。本实施例与实施例1相比,除了行列编码的规格由9*9改变为7*7,其余完全相同。但行列编码规格的改变,会导致minNumPixels的值的改变,如图24所示:
minNumPixels >=(7+1+7+1+7)*√2 *mResolution= 32.5*mResolution = 32.5码块单位
上述计算表明,当使用7*7规格的行列编码并且分隔为1个码块单位时,与QR码用于定位应用的情形下图像阵列单边至少覆盖61个码块相比,使用相同的摄像头,QRL码需要的码块单位数减少了47%,也就是说,码块分辨率可以提高将近一倍。
规格为7*7的行编码子图块和列编码子图块的结构在形式上完全相同,如图25所示。每个行编码子图块或列编码子图块都包含1个固定白码块(图中标识为W的),4个固定黑码块,以及11个数据块(B1~B11)。其中,固定的黑白码块标识行列编码的边界,同时标识行列编码的正方向; 和9*9规格的情况类似,11个数据块的每个数据块为一个4元组(4-tuple),即由4个位组成。数据块的排布按B1到B11的次序,低位优先,以两列为单位,自右至左,先自下而上然后自上而下然后再自下而上,以此类推地排布,遇到固定码块直接跳过,直至全部布满。完整的数据块排布次序和和排布结果,如图26,图27所示。
与9*9规格的情况类似,数据块被分为信息块(由k个数据块组成)和纠错块(由n-k个数据块组成),这里n为11;使用GF(16)作为有限域,使用的本原多项式为x^4+x+1,其数据块为4元组。具体地说,以图28为例,k=3,一共可以有12位用于信息编码;剩余8个(n-k)纠错块使得当有任意4个((n-k)/2)信息块或纠错块收到破坏时,仍然能够找回正确的信息块和纠错块。以图29为例,k=5,一共可以有20位用于信息编码,剩余6个(n-k)纠错块使得当有任意3个((n-k)/2)信息块或纠错块受到破坏时,仍然能够找回正确的信息块和纠错块。图30展示了k=3时可能的编码方式,图31~图32展示了k=5时可能的编码方式。编码含义和9*9规格的情况完全相同;而解码定位过程与实施例1基本相同,只是具体步骤中的步骤2更改为
2.找出所有对角相邻的定位图案的中心坐标对;其方法如图20所示。在图20中,两个定位图案是对角相邻的,将其中心连线扩展到两个定位图案的边缘,可以得到如图的1:1:3:1:1:x:1:1:3:1:1(黑/白/黑/白/黑/白/黑/白/黑)的黑白相间图案,其中1≤x≤5,因此被判定为对角相邻;作为比较,在图21中,两个横向分开的定位图案虽然也有可能得到1:1:3:1:1:x:1:1:3:1:1(黑/白/黑/白/黑/白/黑/白/黑)的黑白相间图案,但很明显不能满足1≤x≤5的条件,所以可被判定为不是对角相邻。
其余步骤与实施例1完全相同。
实施例3
本实施例给出了一个应用中使用多个布局的情况,如图33所示。图中,我们把左侧的布局称为布局1,把右侧的布局称为布局2。在两个布局中使用完全不同的行列坐标范围,并且有完全独立的X’O’Y’坐标系。当动子在同一个布局中运动并定位时,其情况同实施例1或实施例2。如果动子需要从布局A进入布局B,应该怎么处理,答案是使用边界特征位。譬如当前的QRL单元为R940/C303,会发现R940的tl,tr,br位为0,表示R940的上方和右方为边界;为了进入布局2,动子必须先关闭QRL码识别功能,让动子”自由地”向右或右上或右下移动若干距离,直到“估计”动子已经进入到布局2,才打开QRL码识别功能,在布局2中继续导航。
实施例4
本实施例给出了使用QRL码进行一维编码的实例,如图34所示。在这个实例中,只有一排QRL单元构成一个QRL布局,与前述的QRL布局不同,这个布局中的行编码为Rmax, 其中Rmax为一特殊值(譬如取编码范围内的最大值),表示忽略该值。其解码定位方法同实施例1,只是步骤11修改为:
11.计算CAM_REF在X’O’Y’坐标系中的坐标如下:
xc’ = COL + dx/(dc *√2),yc’ = Rmax,其中dc(distance of centers)为XOY坐标系中两个相邻定位图案中心之间的距离。
所得结果中xc’即为X轴方向上的一维定位数据;
实施例5
本实施例给出了使用QRL码进行一维编码的另一个实例,如图35所示。在这个实例中,只有一列QRL单元构成一个QRL布局,与前述的QRL布局不同,这个布局中的列编码为Cmax, 其中Cmax为一特殊值(譬如取编码范围内的最大值),表示忽略该值。其解码定位方法同实施例1,只是步骤11修改为:
11.计算CAM_REF在X’O’Y’坐标系中的坐标如下:
xc’ = Cmax,yc’ = ROW + dy/(dc *√2),其中dc(distance of centers)为XOY坐标系中两个相邻定位图案中心之间的距离。
所得结果中yc’即为Y轴方向上的一维定位数据;
以上详细描述了本发明的多个较佳具体实施例,应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明构思在现有技术基础上通过逻辑分析、推理或者根据有限的实验可以得到的技术方案,均应该在由本权利要求书所确定的保护范围之中。
网址:一种用于平面连续定位的QRL码及其连续定位的方法与流程 http://c.mxgxt.com/news/view/684469
相关内容
参数标定的方法及装置与流程《民法典》中的25种连带责任及其适用指引
一种基于社交媒体平台数据的用户年龄标注方法与流程
一种浓香型红花籽油及其制备方法与流程
书豪连续20次登名报封面平纪录 热度追伍兹偷腥门
山东精工电子科技申请一种钠离子电池用新型复合负极结构及其制备方法专利,避免震动致连接焊点脱落,保障电池工作稳定性
大尺寸二硅化钼棒材连续挤出成型技术的研究
小麦粉半连续加热过程中挥发性代谢物分析
一种模具材料配方及其制备方法与流程
游戏娱乐行业中的市场定位培训课程