一种基于靶标识别定位算法的视觉测量技术
2023-02-13熊雨农
熊雨农,李 宏
(中国飞行试验研究院,陕西 西安 710089)
在飞行试验测试任务中,视觉测量因测量精度高,与被测对象非接触和测量信息直观、信息量大等特点,被广泛应用于武器投放、空中加油和结构形变等试验科目中。视觉测量的前提和基础是对测试对象上的一个或多个特征点的稳定、可靠识别和跟踪。由于被测试对象经常存在图像信息单一和背景纹理不够丰富等问题,例如机翼和直升机旋翼表面在整个测量视场中,形成的图像梯度达不到跟踪和识别条件,因此,在测试中,往往需要人工在被测试对象中增加人工合作标志。
人工合作标志分为非编码标志点和编码标志点两大类。非编码标志点包括圆形、环形和四象限标志等典型代表,结构简单且容易识别,但其自身不具有唯一性,在多点或密集点测量时,无外加约束条件将无法实现快速可靠的自动匹配。而编码标志点附有唯一的身份信息,对每个标志进行唯一的身份解码后即可根据其编码配准实现自动匹配。环形编码标志具有旋转不变性、缩放不变性等优点,应用最为广泛,不少学者针对环状编码标志的识别检测和解码算法展开了研究。针对在视觉测量中环形编码标志的识别检测,段康容等[1]运用基于二值化分割的图像处理算法检测标志点。刘建伟等[2]提出了一种基于Canny算法的边缘检测算法,得到图像边缘后对错误目标过滤筛选,提高了标志点的检测准确率。解则晓等[3]提出了一种基于六点定位获取成像中心的方法,在此基础上对环形编码标志进行识别定位。倪章松等[4]设计了编码标志点,提取椭圆边缘环状领域,随后通过基于对偶二次曲线的目标函数模型求取标志点中心,并通过标志的几何特征实现筛选。熊雪菲等[5]设计了一种环形圆点编码标志点,并通过椭圆的极点-极弦特性设计算法实现标志点的识别定位。上述文献提出的标志点结构简单、识别容易,配合相应的检测算法在多数情况下识别效果良好,但当投影角度过大时,图像畸变严重,识别效果欠佳,准确率下降。针对环形编码标志的解码问题,黄雪梅等[6]为解决任意起始点解码的方式容易错解的问题,提出解码时选取最佳起始点的方法。张小迪等[7]提出一种将解码结果与预设编码ID进行匹配的解码方法。可以看出,在视觉测量中的标志点检测工作中,编码标志的识别定位是众多学者密切关注的问题,提高其识别和定位精度是研究的热点方向。
本文以实现飞行试验测试任务中多特征点的识别追踪为需求导向,针对常用靶标检测算法在大倾角环境下检测率较低、编码标志解码匹配难度大等问题,设计了一种用于物体运动状态测量的环形编码对角标志,并通过对已有椭圆识别和角点定位等算法的学习改进,提出了一种基于EDCircles[8]的环形编码对角标志识别和定位算法的视觉测量技术。经实验验证,该技术鲁棒性强、识别准确、定位精度高,能够满足飞行试验测试任务的需求。
1 编码标志点的设计
在视觉测量中,待测对象的测量结果与靶标的识别定位效果密切相关,因此,在设计时就应严加考虑,并应注意以下原则:
① 编码标志点应具有互异性。
② 编码信息包含足够多的编码数目。
③ 标志点结构简单、特征鲜明、容易识别。
依据上述要求,本文设计了一种新的环形编码对角标志,如图1所示。该编码标志结构主要由4个部分组成:外部黑圆、编码环、内部白圆和对角标志。其中外部黑圆用于确定靶标区域,内部白圆用于粗定位,对角标用于精定位,内部白圆配合中心对角标志的设计可提高定位精度。
图1 环形编码对角标志结构图
靶标编码信息带均分为12段,每隔30°为一个编码元,每个编码元可以使用黑色(灰度0)或白色(灰度255),按照顺时针顺序组成12位二进制数,在解码时,选择其中对应十进制值最小的数作为编码值。
2 编码标志的定位与识别
2.1 图像预处理
飞行试验环境复杂,图像采集时会受到周围环境中多种因素的影响,造成图像的亮度不均衡、影像模糊、噪声、变形等问题,从而影响到编码标记的检测识别。因此,本文采用图像预处理方法为下一步的识别、定位做准备。
首先对采集到的图像进行gamma矫正及高斯滤波,然后采用EDPF(Earliest Deadline and Processing Timefirst)算法,实现图像边缘的检测,该算法全部参数处于上限状态,因此无须调整参数,适应性强。该算法通过计算图像梯度信息,对比临近点之间的梯度值,将局部梯度极大值点定为锚点。确定锚点时,F(x,y)为像素点的对比值为
F(x,y)=16G(x,y)-2G(x+1,y)-
2G(x,y+1)-2G(x-1,y)-
2G(x,y-1)-2G(x,y-2)-
G(x+1,y-1)-G(x+2,y)-
G(x+1,y+1)-G(x,y+2)-
G(x-1,y+1)-G(x-2,y)-
G(x-1,y-1)
(1)
式中:在F(x,y)≥Fth(Fth为像素阈值)的条件下,G(x,y)被定义为锚点,相反则被定义为普通边缘点。求取出锚点后,EDPF算法以一种独特的连接方式,将求取到的锚点连接,获得一个由众多边缘像素组成的边缘段,通过最小二乘直线拟合方法将这些边缘段拟合成直线段。
得到众多直线段后,运用Helmholtz原理验证这些直线段是否有效,其指出,在随机情况下,偶然出现一个“具有意义”的几何结构事件的期望是非常低的[9]。
该原理提出了误检数量(Number of False Alarms,NFA)的概念,若某一线段的长度为n,在大小N×N像素的图像中,至少有k个像素点与该线段同向,则该线段的NFA为
(2)
式中:N4为在大小N×N像素的图像中可能存在的线段数,当NFA(n,k)≤ε时,认为线段是有效的。Desolneux等[10]也指出,这一步骤并非必要的。因为这一验证方法往往拒绝较短的线段,对于长线段则基本不会拒绝。因此当感兴趣的线段都是长线段时,可以略过这一步骤。
2.2 环形编码对角标志检测识别
2.2.1 圆弧段检测
经过最小二乘直线拟合及Helmholtz原理验证后,得到了许多边缘线段。接着EDCircles算法提出了一种圆弧段检测方法,该方法通过判定,将满足条件的边缘线段拟合成弧段。算法提出,组成弧段需要至少3条直线段。首先,依次计算相邻两条线段之间的夹角和方向,当至少有3条线段方向相同,且满足夹角阈值条件(6°~60°)[10],则组合这些直线段为圆弧段。圆弧段检测原理如图2所示。
图2 圆弧段检测原理示意图
上述约束可通过向量的内外积计算,若向量集合为{v1,v2,…,vi,…,vn},其中,vi=(xi,yi),vi+1=(xi+1,yi+1);则向量vi与vi+1之间的夹角θi和向量vi的方向signi可由式(3)计算得出:
(3)
图2中θ1、θ2、θ7均大于60°,{v3,v4,v5,v6,v7}组成一段弧,{v1,v2,v8}被排除。
2.2.2 候选圆和椭圆检测
提取出满足算法约束的弧段后,对弧段根据长短排序。随后从最长弧段开始,按照一定的圆拟合原则将圆弧段拟合成圆,具体的拟合原则遵循如下。
① 半径差约束。两圆弧半径之间的差值小于较长圆弧半径值的25%。
② 圆心距约束。两圆弧的圆心之间的距离小于较长圆弧半径值的25%。
③ 角度约束。待拟合圆弧段的长度至少达到拟合后圆周长的50%。
圆弧检测原理示意图如图3所示。图3(a)满足圆心距约束,不满足半径差约束;图3(b)满足半径差约束,不满足圆心距约束;图3(c)满足圆心距约束和半径差约束,不满足角度约束。因此这3种情况下均不能成功拟合。
图3 圆弧检测原理示意图
完成圆的拟合后,其余弧段用来拟合椭圆。拟合椭圆的方法与圆拟合方法基本类似,不同的是在拟合椭圆时,半径差约束和圆心距约束的阈值均为 50 %。
2.2.3 使用Helmholtz准则验证候选圆与椭圆
在上一节介绍了Helmholtz原理验证直线段的方法。同样,Helmholtz原理也适用于圆和椭圆的验证。扩展到椭圆验证中,若存在位于椭圆边缘上的点P,该点的角度和该点对应圆切线的角度差小于pπ,其中p=1/n(即pπ=π/n),认为点P和椭圆是对齐的。则椭圆的NFA为
(4)
当满足NFA(n,k)<ε时认为椭圆是有效的。
2.3 过滤干扰对象
在实际测试环境中,针对不同的测试任务和测量目标,待测对象表面往往粘贴不止一种人工标志,因此能够准确地识别出目标靶标对后需测试任务的顺利完成尤为关键。本文通过上述步骤,得到候选圆和椭圆的图像后,通过靶标本身的结构特征对所有对象进行筛选。在对编码标志识别时,产生透视形变的图像往往识别率及解码率较低。为了便于处理,首先,需要对所有椭圆进行透视变换,先校正为正圆;接着对正圆进行大津法(OTSU)二值化,根据靶标的结构特征(中心有个白色的圆,外部为黑色的圆),过滤候选靶标。
透视变换是将图片投影到一个新的视平面,也称作投影映射。其变换公式为
(5)
(6)
通过运算可得:
(7)
(8)
式中:u、v为原始图像坐标;x、y为经透视变换后的图像坐标;变换矩阵为3×3矩阵。
透视变换后,对图像进行OTSU二值化,然后根据靶标的结构特征(中心有个白色的圆,外部为黑色的圆,中心为对角标志)过滤候选靶标。
2.4 特征点定位
经过筛选得到目标靶标,并对其进行定位。根据标志点的结构,首先通过求取内部白色圆的圆心实现粗定位,然后以粗定位结果作为初始位置,采用Harries角点检测算法实现亚像素级定位。该算法基本思想如下(如图4所示):首先,设定一个固定大小的窗口,如本文选择5×5的固定窗口;然后,在图像上以不同方向任意滑动窗口,比较窗口滑动时的灰度值变化。若窗口滑动到某一像素点或区域时,灰度值变化明显,则判定该像素点为角点或者区域内存在角点。
图4 角点检测原理示意图
图像在点(x,y)处平移(u,v)后的自相关性用E(u,v)表示为
(9)
式中:w为窗口函数;本文设置w(x,y)为高斯分布,其原点位于窗口中心。这样如果窗口中心为角点,滑动窗口前后该点灰度变化非常剧烈;I(x+u,y+v)是平移后的图像灰度;I(x,y)为(x,y)处的灰度值;泰勒展开为
I(x+u,y+u)=I(x,y)+Ixu+Iyv+O(u2,v2)
(10)
将式(10)代入式(9)可得:
E(u,v)=
(11)
其中:
(12)
矩阵M的两个特征值,与角点、边缘、平滑区域的关系如图5所示。
图5 M的特征值选择
由图5可以看出,当两个特征值均比较大时认为图像被检测区域存在角点;当一个特征值大,一个特征值小时,认为其处在边缘区域;两个特征值均很小时,认为其处在平滑区域。
最终Harries给出度量角点相应的数学模型:
R=detM-k(trM)2
(13)
式中:k为常量,取0.04~0.06。当R大于设定的阈值时,判定相应点为角点,并得到相应整像素级角点坐标。
为进一步得到精确的角点坐标,进行高斯曲面拟合,求曲面的极值点,该点坐标即为高精度的角点亚像素级坐标。二维高斯曲面拟合公式为
f(x,y)=Aexp(((x-x0)+(y-y0))/(2σ2))
(14)
一维高斯方程公式为
(15)
求得曲面极值点坐标(x0,y0)即为角点亚像素级坐标。
2.5 解码识别
编码标志相比于非编码标志最大的优点就是具有独立的身份信息,通过对编码信息的提取,实现点位信息的一一对应,是视觉测量中重要的一环。对于本文来说,算法能否实现编码信息的准确解码,直接影响后续的点位匹配和三维信息测量工作。
靶标编码信息由12个编码元组成环形编码信息带,每个编码元灰度值为白色(255)或黑色(0)。解码时,首先将正圆图像进行极坐标变换,提取编码环区域,呈现为一个竖条矩形图像。其中极坐标变换公式为
(16)
(17)
式中:(xd,yd)为变换后的图像点;(xs,ys)为源图像的点;(xc,yc)为变换中心;L为椭圆长轴;S为短轴;θ为偏角。
在变换后的矩形图中,从上往下扫描,获得每一段的黑白像素个数,由于标志是循环编码,当首尾都是相同颜色时,需要将首尾像素进行合并,计算合并调整后每段矩形图像素个数,求取该段的编码。
解码原理示意图如图6所示。通过极坐标变换得到矩形编码信息带,最后得到的编码是110010000000,对此编码求最小的十进制数是19。
图6 解码原理示意图
通过解码算法,可获得采集到的图像数据中所有标记点的编码值,这样每个标记点就具有独一无二的身份信息,可以实现特征点的匹配。
3 实验验证
为验证本文算法效果,设计了模拟实验和实测实验。硬件环境为计算机,处理器为Inter Core i5-8300CPU,操作系统为Windows10,相机焦距为8 mm,分辨率为1920像素×1080像素,软件环境为Python3.7。
3.1 仿真实验
为验证在多标志点识别时,本文算法能否过滤干扰点,对目标靶标准确识别解码,设计了仿真实验。实验中每幅图片均匀分布25个本文设计的编码标志及其他编码标志,如图7所示。对共计200幅图片进行识别,并统计本文算法的识别结果,如表1所示。
表1 多标志点识别效果
图7 识别效果图
由表1可以看出,在对多标志点识别解码时,本文算法识别率达到99.5%,正确解码率达到99%,即便存在较多干扰靶标,该算法仍能够过滤干扰点,准确识别解码。其原因为:① 在圆弧检测时,该算法的判定原则科学有效,同时配合Helmholtz原理对拟合得到的圆进一步验证,极大地降低了干扰特征产生的影响。② 针对靶标特有的结构特征(中心有个白色的圆,外部为黑色的圆,内部为对角标志),配合候选过滤算法,过滤候选靶标。③ 在提取编码信息带的有效信息时,通过极坐标变换将正圆图像转换成矩形,保证了解码的准确率。
3.2 实测实验
为验证拍摄角度及拍摄距离对本文算法识别解码效果的影响,实验对部分标志点按投影角度0°~80°和拍摄距离3~7 m进行图像采集和识别,效果如图8所示。实验中匀速改变靶标投影角度,从0°~80°往复运动3次,高速相机以60 f/s的拍摄速度对靶标进行拍摄,共获得300幅图像。
图8 识别效果图
完成图像采集和识别后,分析图像数据并统计试验结果,得到投影角度、拍摄距离与识别率之间的关系,如图9所示。
图9 投影角度、拍摄距离与识别准确率之间的关系
可见在一定的拍摄距离下,投影角度对靶标识别准确率的影响较大。在投影角度小于 60°时,本文算法的识别准确率达到 100%;当角度大于 60°时,算法的识别准确率下降,当投影角度为 80°时,靶标识别率依然能够达到 92%。
为验证本文算法在复杂环境下的检测和解码效果,在实验室中将本文设计的5个不同ID的环形编码对角标志与多种其他编码标志与非编码标志混合,并按照不同角度与布置。通过相机采集图像并用算法进行检测解码,实验效果如图10所示。
图10 复杂环境下算法的检测解码效果
由图10可以看出,算法能够在复杂的环境中准确识别出5个环形编码对角标志,且能准确检测出节点,正确解码。
本文设计的环形编码对角标志和相应的视觉测量技术已在某旋翼测量地面实验中应用。实验基于本文所提技术,实现旋翼桨叶上特征点的追踪和定位。旋翼测量地面试验检测效果图11所示。
图11 旋翼测量地面试验检测效果
地面实验中图像投影角度约为60°,靶标距离相机约3~5 m。由图11可以看出,在旋翼测量地面试验中,所有靶标全部准确识别,检测效果良好。
为验证标记点重复定位精度,设计实验对同一标记点进行多个角度多次拍摄,检测其关键特征点的亚像素坐标。选取2个角度,角度一为15°,角度二为45°。每个角度拍摄20幅图像,计算并统计其重复精度,如图12和图13所示。
图12 角度一拍摄下重复定位精度
图13 角度二拍摄下重复定位精度
对图12、图13的实验数据进行统计,得到实验重复定位精度统计结果如表2所示。
表2 重复定位精度统计
由表2可以看出,X坐标重复定位误差优于0.1 px,Y坐标重复定位误差优于0.05 px,总体重复定位误差优于0.15 px,可见该技术具有较高的定位精度。
4 结束语
在飞行试验测试任务中,能否通过视觉测量的手段有效获取被测物的信息,直接影响后续任务的进展,因此对飞行试验来说,实现对多标志的稳定识别及高精度定位意义非凡。针对飞行试验测试任务需求,设计了一种易于识别和高精度定位的环形编码对角标志,提出了一种基于EDCircles的环形编码对角标志识别和定位算法的视觉测量技术。试验结果表明,该视觉测量技术识别准确、鲁棒性强、定位精度高,能够有效解决多标志点识别定位存在误识别、定位精度低等问题,可以满足飞行试验测试任务中对关键目标实现稳定识别跟踪的任务需求。