一种基于人工地标解码的定位方法

2021-06-25 14:18龚征绛费焕强喻擎苍
软件导刊 2021年6期
关键词:码字六边形像素点

龚征绛,陈 武,查 杨,周 磊,费焕强,喻擎苍

(浙江理工大学信息学院,浙江 杭州 310000)

0 引言

机器人在人工智能领域[1-5]一直具有重要应用,在机器人协同[6-12]、运动学参数辨识[13-18]、机器人定位导航[19-23]和机器人离线编程等作业[24-29]中,首先要解决的问题是机器人定位问题[30-35]。机器人定位的精确与否,很大程度上决定该领域的发展。由于定位过程烦琐,所以寻找一种快速的定位方法越来越重要。

目前的定位方式主要分为基于立体视觉的机器人定位[36-38]、基于全局视觉的机器人定位[39]和基于单目视觉的机器人定位[40-43]3 种方式。

通过地标提供信息是机器人进行探索和寻找的主要方法。地标指能够为机器人提供外部导航定位信息的载体。地标分为人工视觉地标和自然地标[44-47]。与自然地标相比,人工视觉地标特征显著、贴放位置随意和可嵌入特定信息的特点更加实用。

D.Scharstein 等利用尺度相似模式构造了一种自相似人工视觉地标,将一维尺度自相似方波进行二维图形映射;司秉玉利用小波和分形技术,从信号频谱角度分析如何设计地标使其能较高效率地识读,进而提出一种改进的信息嵌入式地标模式;李国栋等[48-49]利用QRCode 作为地标信息载体,控制移动机器人对QRCode 内存储信息进行提取。

对比以上几种人工视觉地标发现,机器人采集到这些地标不可避免会产生畸变,导致无法对当前机器人位置进行精确定位。本文提出一种基于单目视觉的人工视觉地标编码及解码方法,能够对机器人摄像头中心进行快速准确定位。

1 人工视觉地标编码设计

1.1 单个编码片编码方式

采用颜色+图形设计地标,颜色总体采用黑红绿蓝4 种颜色,0 代表黑色、1 代表红色、2 代表绿色、3 代表蓝色。图形采用六边形和圆形。

地标中包含多个编码片,每个编码片由中心标定环和外圈6 个六边形编码块组成。

中心标定环有0、1、2、3(黑红绿蓝)4 种颜色可以选择,外圈的六边形有且仅有一个六边形编码块为0(黑色),其余5 个编码块可以是1、2、3(红绿蓝)中的任意色自由组合。

对单个形态编码片进行编码设计,采用0、1、2、3 即黑红绿蓝4 种颜色能够实现,黑色编码片是不变的,按其余5个编码片包括一个中心标定环可以有5 832 种组合。而以黑色编码片为基准有顺时针和逆时针两种旋转编码方向,旋转无关性指无论以哪种旋转编码方向进行编码码字都不变,所以有5 832 种组合,编码片有972 个与旋转无关的码字。以黑色编码块为基准顺时针方向旋转进行编码,表现为如下编码形式(这里黑色编码块不列入码字)。

(1)编码形式前5 位为1 或2 或3。

(2)编码形式第6 位可以为0 或1 或2 或3。

(3)编码形式第7 位为“-”,编码形式第8 位表示从编码片右上角开始数,黑色编码块所在位置的序号数(不是颜色数)。

(4)编码形式的前6 位为挡片编码片码字。

以图1(彩图扫OSID 码可见,下同)为例,单个形态编码片颜色形态编码形式为232211-5,码字为232211。

Fig.1 Encoding of single coding slice图1 单个编码片编码

1.2 多个编码片拼接方式

研究多个编码片的连接关系实现多片的拼接表达,在整个地标中能拆解成两种基础连接方式,一种是两片编码片的拼接方式,另一种是三片编码片的拼接方式。两片编码片拼接又能分为左拼接和右拼接两种形式。

两片编码片存在相对位置关系,基编码片自身存在一个基位置,目标编码片存在一个目标位置。若目标编码片在基编码片的左侧视为左拼接,若目标编码片在基编码片的右侧则视为右拼接。通过两个位置实现两片编码片拼接表达式。同样的,三片编码片也存在相对位置关系,有两个基编码片和一个目标编码片。以编码片右上角为基准顺时针旋转,标定编码块序号为1、2、3、4、5、6(仅为序号,这里不代表颜色)。

如图2 所示,对于P1 号编码片来说,它的右连接编码片是P2 号编码片,表示如下:

对于P2 号编码片来说,它的右连接编码片是P1 号编码片,表示为式(2):

编码片P1,P2,P3 连接,表示为式(3):

Fig.2 Encoding slice connection图2 编码片连接

1.3 全局唯一人工视觉地标

设计如下算法实现人工视觉地标生成,算法需满足以下拼接条件:

(1)每一个编码片αm的码字不能与其他编码片αn的码字重复,见式(4)。

(2)编码片与相邻编码片间有且仅有一个编码片同色。

(3)中心标定环的图像面积相同,外圈六边形编码块的图像面积相同。

(4)中心标定环的图像面积大于六边形编码块的图像面积。

在算法生成地标时采用M 阵列思想,采用拼片算法,1×1 尺寸的子窗体在这里体现为单个编码片,每个子窗体(编码片)有且仅出现一次,最终实现编码的全局唯一性。

首先生成编码片,开辟一块内存空间用来存放编码片的码字。通过初始化函数对编码片码字进行枚举,存放在集合中。每次生成编码片时,将集合中的元素遍历取出,和上一块编码片进行拼接,同时在集合中删除该元素。这里有两种情况:①编码片实现拼接过程中完全符合拼接条件,直接生成人工视觉地标;②实现拼接过程中无法找到满足条件的码字,此时回溯到当前编码片的前一个编码片,在集合中重新选择,程序继续运行直到完成拼接。生成人工视觉地标要保证生成过程的准确无误,可生成10×10 至31×31 的人工视觉地标,生成过程如图3 所示。

Fig.3 Generation of artificial vision landmark图3 人工视觉地标生成

10×10 规模大小的人工视觉地标如图4 所示。

Fig.4 Artificial visual landmarks图4 人工视觉地标

人工视觉地标生成时,存在一个全局唯一的M 阵列(Mij)能够表示整个人工视觉地标,如式(5)所示。

2 人工视觉地标解码定位

2.1 码字方法研究

2.1.1 编码组件提取方法研究

得到摄像头光学中心在人工视觉地标上的像素点坐标后,识别出这个中心点所在的编码片位置,提取这个编码片的编码组件。编码组件包括此编码片的中心标定环和6 个外圈编码块,识别中心点所在位置步骤如下:

(1)整个人工视觉地标进行轮廓链连通域提取(原始图像经过多值化处理,对相同颜色的像素点提取整合形成连通域),并用Image Moments 算法进行图像处理,提取出所有连通域的像素点(大小、质心)。遍历选择连通域中像素点大小最大(上述所设计的人工视觉地标中心标定环的像素点大小远大于六边形编码块的像素点大小,所以一定是中心标定环)并且与中心点坐标进行差运算值最小的即为距离中心点最近的中心标定环。

(2)中心标定环质心与其他所有连通域质心进行差运算,取绝对值,提取其最小的6 个连通域是中心标定环周围的6 个外圈编码块。

2.1.2 码字识别方法研究

对一个中心标定环和6 个六边形编码块共7 个编码组件进行颜色提取,采用RGB 颜色空间到HSV 颜色空间的转换。

定义颜色分类,当H≥60 &&H<60 时,提取的是红色,当H>110 &&H<150 时,提取的是绿色,当H>180 &&H<260时,提取的是蓝色,当V≥0&&V≤180时,提取的是黑色。

对编码块进行位置定义如图5(编码形式为232211-5)所示。

(1)遍历6 个编码块与中心标定环质心坐标进行对比,横坐标最小的标记为4 号位置,横坐标最大的标记为1 号位置。

(2)遍历其余4 个编码块与中心标定环质心坐标进行对比,横坐标最小且纵坐标最大的标记为5 号位置,横坐标最大且总坐标最小的标记为3 号位置。

(3)遍历最后两个编码块,纵坐标最大的是0 号位置,纵坐标最小的是2 号位置。

以0、1、2、3、4、5 号位置依次顺时针提取编码块的颜色信息,随后进行排序,以黑色编码片为第一位并记录黑色编码片所在位置,依次排列,进行编码片解码,得到的码字为232211。

Fig.5 Decoding position of a single code slice图5 单个编码片解码位置

2.2 解码定位方法研究

2.2.1 中心线拟合求特征点

为解决摄像头存在的畸变问题,需要建立拟合曲面来消除此畸变,首要解决的问题是确定拟合曲面所需要的特征点。在此,对六边形编码块进行中心线提取。中心线提取首先要提取六边形编码块的锐角顶点坐标,对六边形编码块轮廓链进行处理。

(1)计算出与六边形编码块质心坐标距离最近的像素点g,以这个像素点g 为起始点,遍历一半轮廓链的像素点。

(2)计算出在这半个轮廓链上与六边形编码块距离最远的像素点h,这个像素点h 就是解决拟合问题的一个锐角顶点。

(3)再从像素点g 开始遍历另外一半轮廓链。

(4)计算出在这半个轮廓链上与六边形编码块距离最远的像素点k,这个像素点k 就是解决拟合问题的一个锐角顶点,如图6 所示。

对上述锐角顶点进行多次搜索实验,得到多组6 个编码块锐角顶点数据(x 坐标,y 坐标),对此数据进行最小二乘法拟合,原理见式(6)(其中a,b 为y=a+bx 的系数),快速实现直线的最小二乘法拟合,拟合之后每相邻两条直线有交点,这6 个交点即得到的特征点,结果如图7 所示。

Fig.6 Acute angle vertex search图6 锐角顶点搜索

Fig.7 Line fitting图7 直线拟合

2.2.2 二次拟合曲面模型

摄像头在进行图像采集任务时,难以避免的问题是会有摄像头畸变存在。为了减少摄像头产生的畸变误差,使摄像头中心点在人工视觉地标下的坐标尽量准确,需要进行二次曲面拟合,一般的二次曲面方程如式(7)所示。考虑到要调整坐标误差,保持摄像头离地高度Z 的值不变,将式(7)转变成式(8),之后得到变形如式(9)、式(10)所示,其中x,y 是特征点像素坐标,XY 是实际坐标。

6 个特征点的xy 坐标必定不都相等,满足线性无关性,也即实现了满秩。

原点设置为照片左上角顶点位置,记为(0,0)。将6个特征点的坐标(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)、(x5,y5)、(x6,y6)以及现实坐标X1、X2、X3、X4、X5、X6进行方程组求解,得到未知数a1、b1、c1、d1、e1、f1,从而进行横坐标方向上的曲面拟合。同样地,进行纵坐标方向上的曲面拟合,将6 个特征点 的坐标(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)、(x5,y5)、(x6,y6)以及现实坐标Y1、Y2、Y3、Y4、Y5、Y6进行方程组求解求得曲面,其中(X1,Y1)、(X2,Y2)、(X3,Y3)、(X4,Y4)、(X5,Y5)、(X6,Y6)为现实坐标,用千分尺进行精确测量,在二次曲面基础上定位得到摄像头中心像素坐标到现实坐标的转换。

3 实验结果分析

人工视觉地标生成编码采用Intel Core i5-4200U 2.3GHz处理器,16G 内存。人工视觉解码采用树莓派3B+,摄像头采用Raspberry P(iB)型。

3.1 地标生成编码实验

改进后的单个编码片总共有972 种,可以编码生成10×10 至31×31 大小的人工视觉地标,将10×10 至30×30(31×31的人工视觉地标生成运行时间不稳定,不列入统计)的运行时间绘制成表格1 并做成折线图8。

Table 1 Matrix generation time表1 矩阵生成时间

Fig.8 Artificial visual landmark generation time图8 人工视觉地标生成时间

在生成人工视觉地标时,同时生成唯一一个人工视觉地标编码矩阵,图4 的对应编码矩阵如表2 所示。

3.2 地标解码定位实验

将树莓派摄像头固定在人工视觉地标正上方进行解码定位实验,摄像头拍摄的是640×480 像素照片,如图9 所示。摄像头中心所在编码片的6 个特征点(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)、(x5,y5)、(x6,y6)进行二次曲面拟合,得到曲面图如图10、图11 所示。其中图10 是X 方向上拟合后的二次曲面,图11 是Y 方向上拟合后的二次曲面。

Table 2 Coding matrix表2 编码矩阵

Fig.9 Original image图9 原图

Fig.10 X direction quadratic surface图10 X 方向二次曲面

Fig.11 Y direction quadratic surface图11 Y 方向二次曲面

通过这两个拟合曲面实现摄像头中心所在六边形编码片图像像素点坐标到现实坐标的变换,省却了传统标定方法的繁杂步骤,能够快速进行坐标变换。

将拟合直线交点得到的6 个特征点经过二次曲面拟合程序编译运行,得到摄像头中心坐标、摄像头中心所在编码片的码字,如图12 所示。摄像头中心现实坐标通过拟合曲面得到如下坐标:(126.452,107.187),这里世界单位坐标以毫米为单位。摄像头中心所在编码片的编码形式为311222-4,码字为311222。

Fig.12 Decoding diagram图12 解码

3.3 插值点误差分析

控制电机将摄像头移动,得到移动前后摄像头中心像素点坐标位置。图13 为移动后的解码图。

如图13,移动前摄像头中心现实坐标为(126.452,107.187),其像素坐标为(320,240)。移动一次后,摄像头中心现实坐标为(127.775,111.262),其像素坐标为(330,246)。

Fig.13 Decoded image after moving图13 移动后的解码

移动两次后,摄像头中心现实坐标为(129.098,115.337),进行插值点误差分析,得到此时摄像头中心像素坐标为(342,253),比较前两次的像素坐标差,X 方向有2个像素点误差,Y 方向有1 个像素点误差。

进行100 次插值点误差分析实验,得到其中5 次实验的结果如表3 所示。其中X 方向上最大误差为3 个像素,最小误差为0 个像素;Y 方向最大误差为2 个像素,最小误差为0 个像素,满足定位精度要求,换成像素精度是0.047mm/像素,而黑白棋盘格标定板定位的像素精度是0.17mm/像素,提高了0.123mm/像素精度。

Table 3 Comparison of interpolation point results表3 插值点结果对比

4 结语

本文分析了现有人工视觉地标现状,针对摄像头中心点定位问题提出一种新型人工视觉地标的编码以及解码方法,快速实现人工视觉地标生成,并采取特征点拟合定位方法针对此地标进行解码。实验表明,人工视觉的编码生成速度快,根据此人工地标进行的解码完成度高,中心定位准确,比传统棋盘格标定定位提高了0.123mm/像素的精度。后续工作要进行机械臂相对运动进行机械臂误差纠正,以此调整机械臂,检测机械臂运动过程中的失步问题以及安装误差。

猜你喜欢
码字六边形像素点
知识快餐店 到处都是六边形
创意六边形无限翻
放 下
基于5×5邻域像素点相关性的划痕修复算法
数据链系统中软扩频码的优选及应用
基于canvas的前端数据加密
怎样剪拼
怎样剪拼
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
长为{4,5,6}的完备删位纠错码的存在性*