一种用于移动机器人的二维码结构及解码方法

文档序号:6610377阅读:252来源:国知局
专利名称:一种用于移动机器人的二维码结构及解码方法
技术领域
本发明涉及一种用于机器人进行室内环境定位以及标识物体的二 维码结构及其解码方式。
背景技术
在机器人视觉中,环境特征的提取与识别一直是一个难题。 一般的 环境特征如直线等不具有唯一性,即使组合使用也有很大难度,需要建立CAD模型或是结合基于概率的定位方法进行使用,复杂的环境特征 如SIFT等运算量较大,因此不适合对实时性要求很高的机器人使用。 此外,场景中的环境特征往往非常单一且不断重复,利用这些环境特征 进行物体识别和定位将有很大难度。因此,在目前的技术条件下,利用 人工标志辅助移动机器人进行物体识别和定位将是一种行之有效的解 决方案。二维码具有信息容量大、纠错能力强、适合于CCD摄像机识别等 特点,已经在商业流通、物流、生产自动化管理等领域得到了广泛应用。 二维码的这些特点使得它非常适合于作为机器人应用中的人工标志。但 是,因为目前的二维码大都是为近距离识别而设计的,在进行解码时可 以保证二维码在译码设备获取的图像之中,与移动机器人的应用环境有 较大区别,因此不能直接用于移动机器人的目标识别任务。发明内容为了有效解决机器人目标识别与定位问题,本发明提出了用于移动 机器人的MR (Mobile Robot) 二维码结构和其解码方法。本发明的目的是设计一种可以供机器人进行自主定位和目标识别用的二维码结构 以及对应的解码方法,在编码上仍使用和普通二维码相同的编码方式。
为了实现所述目的,本发明一方面,提供一种二维码结构,包括 在正多边形平面图形基底上具有码图符号,其码图符号由具有与基底不 同光学反射率的定位模块和单元模块组成,定位模块和单元模块排列在 平面图形上,定位模块和单元模块之间、单元模块之间留有间隙。根据本发明的实施例,所述定位模块为实心圆形图案,其直径为大 于或等于单元模块直径的两倍,定位模块与单元模块的之间的最短距离 不小于定位模块的自身直径,定位模块的位置为顶部接近正多边形顶点 处。根据本发明的实施例,所述单元模块为大小相同、nxn个等间距排列的实心圆形图案,排列于正多边形平面图形基底的中、下部,单元模 块的圆心距离不小于单元模块直径的两倍,单元模块以长宽相等的矩阵 方式排列。根据本发明的实施例,所述单元模块的几何尺寸和二维码结构的几 何尺寸根据实际需求改变。为了实现所述目的,本发明另一方面,提供一种用于移动机器人的 二维码的解码方法,包括如下步骤l:获取码图符号图像; 步骤2:对获取的码图符号图像进行校正; 步骤3:对校正后的图像进行二值化; 步骤4:对二值化图像进行边缘提取;步骤5:用计算不变量方法从边缘中检测二维码外轮廓边缘中的五 条边;步骤6:利用五条边对模块检测找出定位模块,确定当前的码图符 号主方向;步骤7:利用主方向计算从二维码的标准码图到当前获取图像的单 映矩阵;步骤8:利用单映矩阵将当前图像映射至标准码图;步骤9:在映射后的图像中相应位置寻找单元模块,生成对应码词;步骤10:码词还原及纠错。根据本发明的实施例,使用最优阈值算法对图像二值化,具体步骤 如下步骤31:设定初始阈值To;步骤32:在第t步,计算前景和背景的灰度均值,设前景均值为 Uf,背景均值为Ub;步骤33:计算第t+l步的阈值T(t")二 (Uf+Ub) /2;步骤34:如果丁(1+1)=丁(1)则停止,否则返回步骤32。根据本发明的实施例,所述边缘提取,包括步骤如下 步骤41:使用坎尼边缘检测算子处理二值化图像得到边缘图像; 步骤42:使用边缘细化技术将边缘细化为八邻域意义上的单像素连 接边缘;步骤43:对单像素连接边缘去除其大量短且曲率不近似为零即不是直线的边缘。根据本发明的实施例,所述检测外轮廓,包括步骤如下步骤51:遍历当前获取图像中的线段,根据这些线段的端点是否相互接近将其所有线段分组,所有端点接近的线段分在一组;步骤52:对包含小于五条线段的组不作处理,对包含五条线段的组计算不变量,对包含N〉5条线段的组做N中取5的组合,对每种组合 情况计算不变量;步骤53:将各不变量与标定得到的不变量进行比较,与其最接近的 不变量对应的五条线段即为检测到的外轮廓之一部分,该五条线段所在 的线段组中各线段为外轮廓的所有边。根据本发明的实施例,所述检测定位模块,包括步骤如下 步骤61:在获取的图像中计算检测到的外轮廓所有边的交点位置; 步骤62:在交点位置DxD的邻域内搜索定位模块,D为定位模块直径;步骤63:对各个模块大小进行比较,最大的为定位模块。 根据本发明的实施例,利用检测到的定位模块确定当前获取图像中 外轮廓的各顶点与标准码图中各顶点的对应关系以及当前获取图像中 外轮廓的各顶点的位置,标准码图中各顶点的位置已知,故使用最小二 乘法计算单映矩阵。
根据本发明的实施例,所述映射步骤如下,设标准码图中某点坐标 为(Xi, Y。,其齐次坐标为(Xi, Yi, 1),该向量乘以单映矩阵算得向量(X,i, Y,i,人i),对其进行归一化,使^等于1并取整,得到对应 的当前图像中的坐标(x,, yi),将该处的像素值赋给标准码图中(Xi, Y。处像素,如此遍历标准码图中各个像素,得到映射图。根据本发明的实施例,所述生成码词步骤如下,标准码图中的各单 元模块位置即坐标已知,在映射后的图像中这些坐标处dxd的邻域内搜 索模块,d为圆形单元模块直径,若搜索到模块就将当前比特位置为1, 不能搜索到则置为零。本发明的积极效果本发明在外轮廓设计上采用正多边形结构,从而可以采用计算不变量的方法检测到二维码的外轮廓,与一般二维码相 比从场景中提取更容易、速度更快,受视角以及光照影响更小,此外, 单元模块采用实心圆形图案,并保持了一定间距,降低了在低照度和远 距离情况下进行识别时单元模块粘连的可能性,与一般二维码相比识别 效果更好,这些特点使本发明非常适合于移动机器人进行室内环境定位 以及标识物体。


图1是本发明的一个码图符号实例;图2是MR 二维码的数据块和纠错块分配的一个实例;图3是实际采集的二维码原始图像;图4是本发明的解码流程示意图;图5是经过校正后的图像;图6是二值化后的图像;图7是提取的边缘图像;图8是检测到的二维码外轮廓;图9是将当前图像映射至标准码图的结果。
具体实施例方式
下面结合附图详细说明本发明技术方案中所涉及的各个细节问题。 应指出的是,所描述的实施例仅旨在便于对本发明的理解,而对其不起 任何限定作用。本发明提出的二维码结构为正多边形基底上具有码图符号,其码图 符号是由具有与基底不同光学反射率的定位模块和单元模块组成,定位 模块和单元模块排列在平面图形上,定位模块和单元模块之间、单元模 块之间留有间隙。上述的二维码结构中,定位模块为实心圆形图案,位置为顶部接近 正多边形顶点处,用于标明二维码的方向。上述的二维码结构中,单元模块为大小相同、nxn个等间距排列的实心圆形图案,排列于正多边形平面图形基底的中、下部,以长宽相等的矩阵方式排列,n=3,4,5,6,......。上述的二维码,编码步骤如下1)确定二维码的外轮廓及单元模 块的个数;2)对单元模块进行数据块和纠错块的分配;3)对输入数据 进行编码产生数据块和纠错块;4)生成码图符号。上述的二维码,解码步骤如下1)获取码像,2)对获取的当 前码像进行校正,3)对校正后的图像进行二值化,4)对二值化图 像进行边缘提取,5)用不变量方法检测二维码外轮廓中的五条边,6) 检测定位模块,确定码图方向,7)计算从标准码图到当前获取图像的 单映矩阵,8)将当前图像映射至标准码图,9)在映射后的图像中相应 位置寻找单元模块,生成对应码词,10)码词还原,这一步骤也包含了 纠错。图1所示为一个二维码标准码图实例,图中1为黑色正五边形基底, 2为圆形定位模块,3为单元模块共8x8个等间距排列于图形中部,定 位模块和单元模块均为白色。每个单元模块对应一个比特位,64个单元 模块按照从左至右、从上至下的顺序排列成为一个64比特的二进制码 词,比特位为'T,对应单元模块为白色,为"0"对应单元模块为黑色,即 不显示。该标准码图可以通过编写生成程序产生也可以通过一般的绘图 软件如微软windows操作系统自带的画图程序手工绘制。图2分配是数据块和纠错块的一个实例,图中将64个单元模块分
割为5个数据块A、 B、 C、 D、 E和3个纠错块F、 G、 H,这种分配方 式与使用的编解码码制有关,如果环境条件恶劣,可以选用纠错能力强 的码制,在模块分配上减少数据块,增加纠错块,从而提高识别的鲁棒 性,此外每块包含八个单元模块也是由编解码码制决定的,在该例中为 RS码制,如果使用二进制码制就不需要进行数据块的分配,对于码词 长度不符合nxn的情况,用零补齐剩余比特位,如使用BCH(63, 45, 3)码进行编码后码词长度为63,在其后加一位零使之可以用8x8的二 维码结构。图3显示了由机器人获取的一副码像,在该例中二维码标准码 图以A4纸张打印,粘贴于天花板。作为机器人进行定位的标志,二维 码的定位模块方向是指定的,而且使用多个MR二维码时,每个二维码 的数据块是不同的,即可以作为ID,在房间内不同位置贴上MR二维 码,机器人在读取一个MR二维码后,就可以利用该MR二维码的ID 值和方向信息确定自己所处的位置和朝向,从而实现自主定位。如果根 据机器人的实际工作环境与运行路线,将MR 二维码按照一定的顺序作 为人工路标布置在机器人的工作环境内,则可以构成基于MR 二维码的 非完整栅格地图(即只考虑机器人实际运行路线附近的栅格),根据具 体任务需要,还可以加入拓扑地图信息。在完成地图构建后,机器人的 路径规划任务就转换为确定一个MR 二维码序列的任务;而机器人的自 主导航工作也就转换为机器人依次通过事先确定的MR二维码序列所对 应的各个位置的工作。因为每个MR二维码不但包括位置信息而且也包 括方向信息,因此,机器人在实际工作过程中很容易通过读取相邻MR 二维码的信息而完成通过给定路径的工作,从而实现自主导航。图4所示为解码过程的九个步骤。解码所用原始图像为图3,该图 像先由机器人装备的摄像机SONY FCB-EX45AP获取视频流,然后由大 恒CG300图像采集卡抓取其中一帧得到,该图像为分辨率640x480的 24位RGB彩色图像。 一、 图像校正从图3可看出图像中天花板的接缝有一些弯曲,这是由镜头的畸变 造成的,畸变包含两部分,径向畸变和离心畸变,其数学模型为^(x,y) =klX(X2+y2)+(Pl(3X2+y2)+2p2Xy), Sy(x, y) = k2y(Xz+/)+(p2(3xz+yz)+2plXy), 使用棋盘状标定图案对其进行标定可计算得到非线性畸变参数(k,, k2, Pl, p2),利用标定得到的参数对原图像进行校正后的结果如图5所示, 从图5可以看出,弯曲的直线经过校正后变直了。二、 图像二值化为了将单元模块对应为二进制数,需要对图像进行二值化。因为本 例中原始图像为彩色图,需要先将24位RGB彩色图用公式Gray = 0.299xR+0.587xG+0.114xB转换为灰度图,得到的灰度图为256级灰 度图,每个像素的亮度用一个字节定义,取值范围为0到255,然后再 用最优阈值方法计算阈值T,得到阈值T后,将亮度大于T的像素置为 255,其它像素置为O, 二值化后的图像如图6所示。三、 边缘提取对二值化后的图像进行边缘提取。首先对图像用坎尼(Canny)算 子处理,用坎尼算子处理后图像中的边缘都已经提取出来,但是其中有 些是直线,有些像单元模块的边缘不是直线,此外有些边缘连接在一起, 因此需要对它们进行进一步的处理,首先对进行几次迭代细化,因为坎 尼算子处理后的图像中的边缘可能不是单像素宽度,通常迭代两次就够 了,然后需要将所有连接在一起的边缘断开,这一步是通过去除多邻接 的点完成的,具体如下对图像中每个点判断其八邻域内有几个点与其 相邻,如果相邻点超过三个,则该点被清除,最后判断各个边缘片断的 曲率,保留曲率接近零的边缘片断,即可能是直线的片断。处理结果如 图7所示,从图7中可以看出,只有近似为直线的边缘保留了下来,而 圆形的单元模块的边缘已经除去,外轮廓端点处没有连接,这正是由去 除多邻接的点造成的。四、 检测外轮廓这一步需要对第三步中处理得到的多条近似直线进行操作选择出 其中属于码图外轮廓的线段。首先根据端点是否接近将其分组,这一步 通过如下方式实现建立一个与原图像大小相等的二维二值数组,对应 位置上在原图像中为直线端点则将该数组的此位置为1,其余置为O, 然后在此二维数组中搜索,对每个为1的位置检测其LxL的邻域内的是 否有l,如果有将该两点间的线段归到某一组中,并在刚检测到的有l 的位置附近重复搜索过程直至再没有新的线段可以归到这一组;然后在 各个组内计算不变量,对包含小于五条线段的组不做处理,对包含n (n>5)条线段的组做n中取5的组合,对每种组合情况计算不变量,不变量的计算公式如下 M521其中M,w =(1,,1"1A), 1 = (/',/2,/3^表示直线方程/';c + /2_y + /3=0) , |M|为矩阵的行列式。最后将各不变量与由标定得到的不变量进行比较,与其最接近的不变量对应的五条边即构成检测到的外轮廓。图8所示为在二值图像上绘出检测到的五条直线。五、 确定主方向在这一步中,首先计算五条边的交点的坐标,然后在交点处DxD 的邻域内搜索像素值为255的区域,将找到的各个区域进行大小比较, 其中最大的为定位模块,其中D为标准码图中定位模块的直径,单位为 像素,当获取图像大小与标准码图差距太大时,还需要将D乘以比例因 子k, k等于获取的二维码图像大小除以标准码图大小,由于二维码的轮廓为正五边形,所以难以计算其实际面积,而用外接矩形的面积近似。六、 计算单映矩阵确定了定位模块的位置后,在第五步中计算得到的顶点坐标与标准 码图中顶点的对应关系也就确定了,五个顶点坐标每个坐标有两个值, 可以列出十个方程,使用最小二乘法就可以计算单映矩阵的八个参数。具体过程如下设单映矩阵M为<formula>formula see original document page 12</formula>向量m二[m,W2…附8y ,则m可用式M 二 t/计算,糾<formula>formula see original document page 13</formula>为获取的图像中五个顶点的坐标, (x, ) (/ = 1,…,5)为标准码图中五个顶点的坐标。七、 图像映射
一般情况下,标准码图要比当前图像中得到的码图符号大,因此用 如下方式完成图像映射,设标准图像中某点坐标为(Xi, Yj),其齐次 坐标为(Xi, Yi, 1),该向量乘以单映矩阵算得向量(X'i, Y'i,、),对其进行归一化,使人i等于1并取整,得到对应的当前图像中的坐标(Xi,yi),将该处的像素值赋给标准图像中(Xi, Yj)处像素,如此遍历标 准图像各个像素,得到映射图如图9所示。'八、 生成码词标准图像中的各单元模块位置即坐标是已知的,按由左至右、由上 至下的顺序在映射后的图像中相应坐标处dxd (d为圆形单元模块直径) 的邻域内搜索模块,可以搜索到就将当前比特位置1,搜索不到则置为零。九、 信息还原及纠错运用纠错算法进行码词还原以及纠错,本例中为RS算法。 以上所述,仅为本发明中的具体实施方式
,但本发明的保护范围并 不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理 解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发 明的保护范围应该以权利要求书的保护范围为准。
权利要求
1、一种二维码结构,其特征在于在正多边形平面图形基底上具有码图符号,其码图符号由具有与基底不同光学反射率的定位模块和单元模块组成,定位模块和单元模块排列在平面图形上,定位模块和单元模块之间、单元模块之间留有间隙。
2、 根据权利要求1所述的二维码结构,其特征是所述定位模块 为实心圆形图案,其直径为大于或等于单元模块直径的两倍,定位模块 与单元模块的之间的最短距离不小于定位模块的自身直径,定位模块的位置为顶部接近正多边形顶点处。
3、 根据权利要求1所述的二维码结构,其特征是所述单元模块 为大小相同、nxn个等间距排列的实心圆形图案,排列于正多边形平面图形基底的中、下部,单元模块的圆心距离不小于单元模块直径的两倍, 单元模块以长宽相等的矩阵方式排列。
4、 根据权利要求1所述的二维码结构,其特征是所述单元模块 的几何尺寸和二维码结构的几何尺寸根据实际需求改变。
5、 一种用于移动机器人的二维码的解码方法,包括如下 步骤l:获取码图符号图像;步骤2:对获取的码图符号图像进行校正; 步骤3:对校正后的图像进行二值化; 步骤4:对二值化图像进行边缘提取;步骤5:用计算不变量方法从边缘中检测二维码外轮廓边缘中的五 条边;步骤6:利用五条边对模块检测找出定位模块,确定当前的码图符 号主方向;步骤7:利用主方向计算从二维码的标准码图到当前获取图像的单 映矩阵;步骤8:利用单映矩阵将当前图像映射至标准码图;步骤9:在映射后的图像中相应位置寻找单元模块,生成对应码词;步骤10:码词还原及纠错。
6、 根据权利要求5所述的方法,其特征是使用最优阈值算法对 图像二值化,具体步骤如下步骤31:设定初始阈值To;步骤32:在第t步,计算前景和背景的灰度均值,设前景均值为 Uf,背景均值为Ub;步骤33:计算第t+l步的阈值T(W)二 (Uf+Ub) /2; 步骤34:如果丁(1+1)=,则停止,否则返回步骤32。
7、 根据权利要求5所述的方法,其特征是所述边缘提取,包括 步骤如下步骤4h使用坎尼边缘检测算子处理二值化图像得到边缘图像; 步骤42:使用边缘细化技术将边缘细化为八邻域意义上的单像素连 接边缘;步骤43:对单像素连接边缘去除其大量短且曲率不近似为零即不是 直线的边缘。
8、 根据权利要求5所述的方法,其特征是所述检测外轮廓,包 括步骤如下步骤51:遍历当前获取图像中的线段,根据这些线段的端点是否相 互接近将所有线段分组,所有端点接近的线段分在一组;步骤52:对包含小于五条线段的组不作处理,对包含五条线段的组 计算不变量,对包含N〉5条线段的组做N中取5的组合,对每种组合 情况计算不变量;步骤53:将各不变量与标定得到的不变量进行比较,与其最接近的 不变量对应的五条线段即为检测到的外轮廓之一部分,该五条线段所在 的线段组中各线段为外轮廓的所有边。
9、 根据权利要求5所述的方法,其特征是所述检测定位模块,包括步骤如下步骤6h在获取的图像中计算检测到的外轮廓所有边的交点位置; 步骤62:在交点位置DxD的邻域内搜索定位模块,D为定位模块 直径;步骤63:对各个模块大小进行比较,最大的为定位模块。
10、 根据权利要求5所述的方法,其特征是利用检测到的定位模 块确定当前获取图像中外轮廓的各顶点与标准码图中各顶点的对应关 系以及当前获取图像中外轮廓的各顶点的位置,标准码图中各顶点的位 置已知,故使用最小二乘法计算单映矩阵。
11、 根据权利要求5所述的方法,其特征是所述映射步骤如下, 设标准码图中某点坐标为(Xi, Yj),其齐次坐标为(Xi, Yi, 1),该向量乘以单映矩阵算得向量(X'i, YV人i),对其进行归一化,使入i 等于1并取整,得到对应的当前图像中的坐标(Xi, yi),将该处的像 素值赋给标准图像中(Xi, Y》处像素,如此遍历标准码图中各个像素, 得到映射图。
12、 根据权利要求5所述的方法,其特征是所述生成码词步骤如下,标准码图中的各单元模块位置即坐标已知,在映射后的图像中这些坐标处dxd的邻域内搜索模块,d为圆形单元模块直径,若搜索到模块就将当前比特位置为l,不能搜索到则置为零。
全文摘要
本发明公开了一种用于移动机器人的二维码结构及解码方法。其结构为在正多边形平面图形基底上具有码图符号,其码图符号由具有与基底不同光学反射率的定位模块和单元模块组成,所有模块排列于平面图形上,相互之间留有间隙。解码方法利用计算不变量的方法检测二维码外轮廓中的五条边将二维码从图像中提取,通过计算单映矩阵将当前获取的二维码图像映射至标准码图读取码词然后解码。采用正多边形使二维码能被鲁棒地从环境中检测到;模块采用圆形降低了相邻模块粘连的可能性,在远距低照度时仍能可靠地分离出各个模块;带纠错的解码方法保证了识别率。因此,本发明适合移动机器人用于进行室内环境定位以及标识物体。
文档编号G06K9/46GK101398907SQ20071012247
公开日2009年4月1日 申请日期2007年9月26日 优先权日2007年9月26日
发明者魁 原, 园 李, 睿 郑 申请人:中国科学院自动化研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1