APP下载

一种基于同心圆的环形编码标志设计与检测

2020-04-24张小迪崔海华程筱胜韦号张逸

机械制造与自动化 2020年2期
关键词:标志点同心圆二进制

张小迪,崔海华,程筱胜,韦号,张逸

(南京航空航天大学 机电学院,江苏 南京 210016)

0 引言

在视觉测量的许多应用中,可以通过对标志点进行编码,提高标志点的定位精度与检测效率,保证后续数据处理的可靠性。根据图案特征的不同,编码标志主要分为圆形编码标志、方形编码标志和分布式编码标志。目前,国内外学者对编码标志的检测识别做了大量研究工作。金滔等[1]在圆形编码标志上添加了3个定位符,提高了标志点容量,但同时也增大了标志点尺寸,降低了灵活性;宋丽梅等[2]提出一种对数极坐标变换,将椭圆映射为直线,在直线路径下实现标志点的解码工作,但该方法运算较为复杂,影响识别效率;OLSON[3]等设计的方形编码标志在位姿估计、增强现实等领域具有较高应用价值,但方形标志角点的提取精度会随着测量距离的增加而降低;DEGOL[4]、YANG[5]设计的彩色编码标志,可以有效提高识别效率,但需要在不同色彩空间进行转换,且颜色信息对光照等环境因素较为敏感,图像质量易受影响。

圆形特征不仅设计简单、抗噪性强,而且具有优良的旋转平移和缩放无关性,广泛应用于视觉测量领域中。本文提出一种改进的环形编码标志设计与检测算法,在传统圆形编码标志的基础上采用同心圆约束有效提高识别效率与稳定性,同时基于交比不变性原理使用同心圆特征进行圆心定位修正。实验表明,编码标志具有良好的识别效果和检测效率,且可以避免测量距离和透视投影角度引起的圆心定位误差。

1 环形编码标志的设计

编码标志的设计应综合考虑编码容量、结构尺寸、识别唯一性和定位可靠性等因素,本文将传统圆形编码标志改进为一种环形编码标志。如图1所示,圆A和圆B、圆C和圆D分别组成内圆环和外圆环,用于标志点特征识别与圆心定位修正。各圆直径满足A∶B∶C∶D= 2∶3∶5∶6,根据实际需要可动态调整其结构尺寸与比例关系。圆B和圆C之间为编码区,黑色和白色分别以二进制数0和1表示,以任一位编码开始逆时针读取得到12位二进制数,对此12位二进制数进行循环移位可得到12个二进制数,其中最小值对应的十进制数即环形标志的编码。编码区可进行不同数目的等分,如10、12、16,不同信息位对应的理论编码容量如表1所示。

表1 信息位与编码容量的关系

信息位10121620编码容量1063504 11452 486

2 环形编码标志的检测

2.1 编码标志的检测识别流程

环形编码标志的检测识别大概分为特征提取、解码纠错和定位修正三步,具体流程如图2所示。首先对原始图像进行预处理,以提高后续算法的执行效率,主要包括图像灰度化、高斯降噪、Canny边缘检测[6]与轮廓提取;其次对提取的轮廓进行椭圆拟合,进而提取同心圆特征;然后对候选编码标志区域进行透视校正、信息解码与查询纠错;最后对具有正确ID的编码标志进行圆心精确定位,输出最终结果。

图2 环形编码标志检测识别流程图

2.2 图像预处理

图像预处理的目的是提取满足编码标志特征的椭圆轮廓。首先对图像进行灰度化处理,根据加权平均公式得到较合理的灰度图像;原始图像往往含有噪声,考虑效率与实用性,采用高斯滤波对图像进行降噪处理;然后使用Canny算子进行边缘检测得到具有强边缘信息的二值图像,排除过短、过长以及曲率过小、过大等明显不符合椭圆约束的边缘特征;最后使用Suzuki算法[7]提取候选椭圆轮廓。

2.3 特征提取

为了确定编码标志圆心位置以及对编码区进行解码,首先对提取轮廓进行椭圆拟合。椭圆的一般方程如下:

f(x,y)=ax2+bxy+cy2+dx+ey+f=0

(1)

最小二乘椭圆拟合的最优化目标函数为:

f(a)=min‖Da‖2s.t. 4ac-b2=1

(2)

式中:D=[x2xyy2xy1]为n×6矩阵;a=[abcdef]T为最优椭圆系数向量。将椭圆的一般方程整理为标准方程:

(3)

式中:(x0,y0)为椭圆中心;2ra、2rb分别为椭圆长轴、短轴;θ为椭圆长轴与x轴夹角。根据椭圆几何参数设置阈值条件进行初步过滤,排除不完整与误差较大的椭圆:

0<|x0±r|

(4)

ra/rb>ξ1

(5)

ξ2

(6)

式中:w、h分别为图像宽度与高度;r=max(ra,rb);l、s分别为轮廓周长和面积;ξ1-ξ3为控制阈值。

编码标志具有明显的同心圆环特征,以此为约束条件,在上述过滤椭圆中进一步筛选候选标志点区域:

‖oin-oout‖

(7)

(8)

式中:oin、oout分别表示内、外椭圆圆心;t为设计编码标志时圆A和圆D直径之比;ξ4为控制阈值。

2.4 解码纠错

经过上述特征提取后,已可排除绝大部分非标志点特征,确定候选编码标志在图像中的具体位置。在进行解码操作之前,首先将候选区域进行透视校正,将椭圆映射为标准圆。其坐标变换公式为:

(9)

如图3所示,由于任意椭圆均存在最小外接矩形,因此使用同心圆中较大椭圆外接矩形的4个顶点q1-q4作为变换点,以及对应的4个目标点q′1-q′4,计算变换矩阵H,然后基于双线性插值对局部图像进行透视校正。

图3 椭圆透视校正示意图

得到校正图像后即可进行编码标志的解码操作,本文采取的基于圆环路径进行像素点区域采样的解码方法如下:

1) 编码标志设计为黑白两色,因此校正图像直方图存在比较明显的双峰。使用Otsu算法[8],通过搜索计算类间方差最大值,得到图像前景与背景的最佳分割阈值T;

2) 如图4所示,将编码区分为内编码区(圆环BM)与外编码区(圆环MC)。首先在内编码区进行解码,从0°开始将圆环BM等分为360份,按逆时针方向分别在每份区域中进行像素点均匀采样,计算灰度平均值G,如G

3) 将上一步得到的内编码区二进制编码进行调整,以第1个突变位作为起始位,将该位之前的二进制数全部移动至末尾,组成一个新的二进制编码。搜索新编码中的全部突变位,将360位二进制编码按式(10)进行缩减:

(10)

式中:Round表示取整操作;di为每相邻突变位的距离,bits为编码标志的信息位位数(本文为12),ni为相邻突变位之间相同编码缩减后的位数。

图4 编码标志解码原理示意图

经过上述计算,360位二进制编码缩减为12位,对此12位编码进行循环移位得到12个二进制编码,其中最小值对应的十进制数即为内编码区Codein,同理也可得到外编码区Codeout。如Codein=Codeout,则表示解码成功。

编码字典本质上是由一系列预设Code与对应ID组成的查找表。为提高查询效率,本文使用散列表作为字典底层数据结构。考虑实际情况,环境光照等因素可能会造成解码错误,其中只有某一信息位发生错误的概率最大,因此本文设计如下查询纠错方法:

①解码成功后,将得到的Code在字典中进行查询,如存在则认为Code正确并保存相应ID;

②如查询失败,将Code重新写为12位二进制编码,分别对每一位进行取反操作,得到12个二进制编码;

③将12个二进制编码分别进行循环移位,得到12个对应的Code,重新进行查询操作,如成功则保存相应ID;

④输出具有正确ID编码标志的圆心坐标。

选取一组图片对上述特征提取与解码纠错算法进行验证,实验结果如图5所示。可以看出本文算法可行有效。

图5 编码标志解码查询与纠错效果

2.5 圆心精确定位

2.3节提取的同心圆特征是由像素级边缘拟合得到的,为满足高精度定位要求,需要进行亚像素边缘提取。由公式(1)可知,椭圆圆周上任意一点p(x,y)的法向量为n=(2ax+by+d,2cy+bx+e),沿梯度方向在边缘点两侧各取k点,分别记为pi(i=-k,-k+1,…,k),其中相邻点间距为一个像素。采用双线性插值计算各点的灰度值,取前向差分和后向差分的平均值作为各对应点在法线方向的灰度导数:

(11)

(12)

遍历全部像素级边缘点,即可完成椭圆的亚像素边缘提取,得到具有较高定位精度的椭圆特征。

图6 椭圆的亚像素边缘提取

空间圆经透视投影变换后存在圆心偏差[9],即空间圆圆心的真实投影点与图像中的椭圆圆心并不一致,因此本文提出基于交比不变性的圆心修正方法。首先介绍两个结论:

1) 假设相机内参一定,则圆心偏差与空间圆半径及相机外参有关。半径增大,偏差也随之增大;倾角增大,则偏差一般先增大后减小;

2) 图像中的椭圆圆心与空间圆圆心在图像上的真实投影点,两点之间的斜率与空间圆半径无关。

由结论2)可知,以空间同心圆在图像中形成的两个椭圆圆心确定一条直线,则该直线必然通过空间同心圆圆心的真实投影点。如图7所示,pout、pin分别为空间同心圆在图像上形成的椭圆圆心,而空间同心圆圆心ps的真实投影点为pt。直线lt通过pout、pin,且与椭圆分别交于at、bt、ct、dt,而对应的空间直线为ls,其与空间同心圆分别交于as、bs、cs、ds。由交比不变性原理可知:

(13)

(14)

图7 空间同心圆及其图像投影

图8 圆心偏差及修正效果

3 实验结果及分析

本文提出的算法已全部使用C++进行实现,为验证环形编码标志的检测识别效果,以不同拍摄角度、测量距离以及在复杂背景环境下分别采集编码标志图像进行检测实验。实验使用的相机是映美精DMK 33GP031,分辨率为2592pixel×1944pixel。程序的开发环境为Visual Studio 2015,运行环境为处理器Intel Core i5-4460、主频3.20GHz、内存8GB的PC。部分图像的检测效果以及不同角度、距离与复杂背景下对应的识别正确率如图9所示。

图9 编码标志检测识别效果

由图9(c)可知,拍摄角度<60°的平均识别正确率为99.8%。当角度>70°时,识别正确率迅速下降,但此时仍有95%的识别正确率。图9(f)、图9(i)表明,在一定测量距离和复杂环境背景下,识别正确率可达90%以上。对实验结果进行统计,编码标志的平均识别正确率为98%,平均误识别率为0.5%,平均检测效率为0.24s/幅。可以看出本文提出的环形编码标志在各种条件下均具有良好的识别效果和检测效率。

4 结语

在视觉测量领域中,编码标志的定位精度和识别效率对于后续空间点的三维重建具有重要意义。本文提出一种环形编码标志设计与检测方法,采用同心圆约束与字典查询纠错算法有效提高识别效率与稳定性,基于交比不变性的圆心偏差修正则避免了测量距离和透视投影角度对圆心定位精度的影响。实验结果表明,本文提出的编码标志在各种环境条件下,均具有良好的检测识别效果,实用性较高。但是本文算法需要预设控制阈值,如何进行阈值的自适应选取和调整,提高自动化程度,是下一步拟解决的问题。

猜你喜欢

标志点同心圆二进制
头影测量标志点自动识别算法研究进展
测量标志现状分析及保护措施
同心圆梦再出发
用二进制解一道高中数学联赛数论题
同心圆梦再出发
绣出里下河畔最美“同心圆”
同心圆变变变
有趣的进度
二进制在竞赛题中的应用
视觉测量中环形编码标志点的精确识别算法研究