基于滚转目标的环绕式圆形标记点的匹配方法与流程

文档序号:18512712发布日期:2019-08-24 09:14阅读:367来源:国知局
基于滚转目标的环绕式圆形标记点的匹配方法与流程

本发明涉及外挂物分离的风洞试验技术领域,特别涉及一种外挂物风洞模型环绕式圆形标记点匹配方法。



背景技术:

高速复杂流场中运动物位姿测量是确定运动物飞行轨迹、运动模态等气动性能的重要手段。随着科学技术不断进步,当被测物体具有高速运动的特性且被测环境在复杂的流场下,对位姿测量精度的要求不断提高,尤其是在风洞投放试验中对投放物位姿测量高精度的要求。近年来,单目视觉位姿测量具有测量运动范围广,对实验模型设计无特殊要求,不改变模型气动外形,能够适应复杂实验环境和高速运动的被测物体,处理时间快,测量精度高等优点,逐渐成为投放物位姿测量的研究热点。

单目位姿测量核心内容之一是目标特征提取与匹配。主要工作包括标记点的设计、识别、中心定位和同名标记点匹配。常见的标记点形状有圆形、十字形、方形等。标记点的匹配是对标记点进行编码解码得到唯一的身份信息,编码标记点的种类分为颜色信息类标记点、圆环标记点、环绕式标记点等形式。对于滚转体类投放物的同名标记点匹配问题,美国宇航局langley研究中心早在2001年建立了单目视频测量的智能风洞测量系统用来测量模型姿态、变形和弯曲,其中16-ft跨音速隧道标准模型具有滚转型,采用环绕式反光标记点配合外置光源进行图像采集。2017年英国伦敦理工学院linzhang等人对超声探头进行实时跟踪,以圆柱目标为被测体,设计棋盘顶点和圆形标记点集合解决了位姿模糊问题。liu等人设计了螺旋式环绕圆形标记点以及基于颜色编码反光标记点进行副油箱分离标记点匹配工作。

滚转型的投放物被测物体存在6个自由度的运动,滚转型的被测物体尺寸小,增加了标记点的识别和匹配的难度。为了实现尺寸小的滚转型被测目标上标记点准确且快速的匹配,本文提出了一种基于滚转目标的环绕式匹配方法。



技术实现要素:

本发明所要解决的技术问题是:高速复杂流场中外挂物上特征标记点的识别定位与匹配是确定外挂物的分离特性、飞行轨迹的重要基础数据。针对小型滚转体类投放物的特征标记点匹配问题,设计了一种环绕式标记点编码解码方法。该方法具有不破坏气动外形、不开孔布线、设计简单、制造成本低等优点。解决了小型滚转体类投放物存在6个自由度方向运动的标记点匹配难题。

本发明采取的技术方案如下:

基于滚转目标的环绕式圆形标记点的匹配方法,包括以下步骤:

步骤一、创建特征编码标记点,所述的特征编码标记点是指1个或多个相同圆形标记点的组合;

步骤二、创建环绕式编码圆形标记点,环绕式圆形标记点是指布置在投放物滚转模型表面分为头部和尾部的特征编码标记点组合,头部圆形标记点集合记为{head},尾部标记点集合记为{tail}。

步骤三、提取圆形标记点,具体步骤如下:

s31:使用相机拍摄贴有环绕式圆形标记点的被测物体,将采集的图像传输到计算机中;

s32:本专利使用的摄像机是单反相机,成像的图片是彩色图像,若是使用工业相机采集的原始图像是灰度图像,则可省去彩色图像灰度化步骤;由于受到现场环境和图像传输过程中会产生噪声,需对灰度图像进行高斯滤波;滤波后的图像进行灰度拉伸,增加被测物体与背景对比度,有利于标记点的边缘识别;接着在灰度图像进行自适应二值化,转换成二值化图像;最后在二值化图像上进行八邻域边界跟踪,计算轮廓的面积s和周长c。

s33:根据标记点的尺寸、特性,设置约束准则筛选出圆形标记点的轮廓。本专利采用的圆形标记点,根据圆的特性设计约束准则为面积周长约束、目标轮廓的包围盒长短轴(长宽)之比、轮廓的面积与包围盒的面积之比,设定阀值,可筛选出圆形标记点的轮廓,约束准则为:

其中,s1,s2为面积的阀值,c1,c2为周长的阀值,a,b为包围盒的长短轴,通过轮廓的行列最大最小值计算,t1,t2为a,b之比的阀值。

s34:对圆形标记点进行中心定位,查阅相关文献,中心定位算法中鲁棒性最优的是灰度重心定位[3,4]。本文的圆形标记点设计的全白或者全黑,在二值化上标记点像素区域的灰度值分布均匀,所以采用灰度重心定位,其公式为:

其中,(x0,y0)是该轮廓的中心像点坐标,x=1…m,y=1…n是该圆形标记点的轮廓区域内像素坐标个数,i(x,y)是像素坐标(x,y)处的灰度值。

步骤四、圆形标记点的匹配,具体步骤如下:

s41:记圆形标记点的中心坐标为集合q(q1,…qn),求q中每个中心坐标与其他中心坐标之间的距离,记为矩阵其中行向量代表第qi像点坐标与其他像点之间的距离,具体表示为:

dij表示为第qi像点与第qj像点的距离,公式为:

其中,i=(q1,…,qn),j=(q1,…,qn|j≠i)。计算矩阵d中元素最小值,记为dmin_i,记录dmin_i所在的行向量记为dmin_q,根据编码设计原则中第一条原则中可知dmin_i为某个b、c、d、e样式中相邻标记点的距离,则dmin_q所在行序号代表是头部的点,放入头部集合{head}中。

s42:计算dmin_q行向量中元素最大值,记为dmax。根据编码第二条原则知与头部标记点最远的距离一定是尾部的标记点,故该元素dmax所在列序号是尾部的点,记为q_max放入集合{tail}中。

s43:对头尾部的圆形标记点进行分类,分别放入集合{head}、{tail}中:

s431:计算像点q_max在d中所在的行向量中最小值元素,该元素列序号是尾部的点,记为q_max_min,放入集合{tail}中。

s432:集合q中剩余的点与q_max、q_max_min三点是否共线,若是共线为尾部的点,放入集合{tail}中,否则是头部的点,放入集合{head}。共线计算公式为:

s44:根据头部标记点与尾部向量是否垂直,对头部集合{head}进行同组分类,解码。

s441:对{head}集合进行每组样式分类。{head}集合中第i像点与{head}中其他像点组成的向量,求该向量与尾部向量是否垂直,向量之间的夹角满足85°<θ<95°,则是同组样式的圆形标记点,放入集合code_i(i为{head}中第i像点同组集合),若第i像点与其他像点组成向量与尾部向量都不垂直则是a样式。

s442:统计code_i中每组标记点个数,则是这组样式的编码。编码集合记为decode_i。

s443:计算code_i第i组样式中像点与q_max之间的距离,code_i根据距离排序后放入集合sortcode_i。最远的像点为这组样式的起始圆,起始圆坐标放入集合startcode_i。

s444:判断每组样式中是否有断裂的点,断裂导致错误判断该样式的编码。计算sortcode_i中起始圆与该组样式最后圆的距离与dmin_i的倍数,若倍数大于decode_i值则存在断裂,更新序号,重新计算该样式编码decode_i。例如d样式,若缺失中间第2圆,判断该样式为c,计算倍数是3倍,则该圆序号为4,重新定义这组样式为d。

s445:判断startcode_i中每个起始圆是否共线,共线则说明未漏识别起始圆,如存在不共线的起始圆则舍弃该像片。根据startcode_i的行坐标或者列坐标升序排序startcode_i、decode_i以及startcode_i(startcode_i中行列坐标差值大作为排序的坐标)。则排序后decode_i为编码片段。

s446:decode_i编码片段顺序依次与编码原则第三条中头部编码片段以顺序或者倒序依次查找,找出decode_i编码片段对应的编码序号,记为decode_number_i。

s45:对尾部进行解码,以头部编码片段依次找出尾部{tail}的编码片段和编码序号。

s451:startcode_i中选取除了a样式,任意一组样式,在tail中找出与该组样式共线的标记点,共线对应头部标记点的编码序号是共线对应尾部标记点的编码序号,若没有找出共线,则在startcode_i选取其他组样式(除a样式)找出共线的标记点。共线的头部标记点记为head_coll,尾部标记点记为tail_coll。

s452:其中head_coll与startcode_i任意起始圆的组成向量判断向量编码序号是顺序还是倒序,计算tail_coll与{tail}中标记点之间的距离,以的方向性判断距离的正负,同向则为正,反之为负。

s453:根据距离升序排序{tail},记为sort_tail,根据tail_coll的编号序号在sort_tail位置依次(以判断是顺序或倒序读编码设计原则第三条中尾部编码)读取sort_tail其他标记点的编码片段和编码序号。

进一步地,所述的环绕式圆形标记点设计具有以下特征:

a、在被测物体表面分为头部和尾部二部分圆形标记点,头部圆形标记点集合记为{head},尾部标记点集合记为{tail}。头部标记点是由一个或多个圆形标记点形成一组编码标记点,均匀分布在滚转型被测物体的表面上。组合样式如图2所示的5种样式分别是由1、2、3、4、5个圆形标记点组成,分别记为a、b、c、d、e样式的编码标记点。任意连续3组编码标记点记为一个编码片段且编码片段组合样式不重复。例如a、b、d样式连续为一个编码片段,其编号为125。尾部标记点只采用a样式,均匀分布在被测物体的表面上。

接着,所述的环绕式圆形标记点的编码原则具有以下原则:

a、设滚转型被测物体直径为lmm,除圆锥之外,中间圆柱的长度满足>2lmm,考虑任意姿态下采集的图像中包含头尾部至少4组编码标记点,且每组样式中相邻圆形标记点的间距小于上下组样式的间距(间距指的是圆与圆之间的外表面的间距)。故设计圆形标记点直径为1/10lmm,且每组样式中圆与圆之间的间距为1~2mm,避免成像后轮廓相连无法形成单个圆形标记点的封闭轮廓。每组样式间距为1/10lmm。

b、设计头尾部每组的圆形标记点圆心共线。头尾部的距离间距大于被测物体的直径(头部内任意圆的间距都小于头尾部的距离)。

c、头部中任意一个编码片段(连续3组样式的编码标记点)是唯一的编码号,部分编码片段如图3所示。其中尾部的每个圆形标记点的编码号为与之共线的头部编码号,赋予头尾部每组圆形标记点为唯一编码序号。假设头部有15组编码标记点,头部编码片段依次为123124135145214,对应共线的尾部圆形标记点编码片段为123124135145214。则头部编码序号为1-15,尾部编码序号为16-30。例如某张像片成像中头部编码片段为3124,则对应的编码序号3-6,尾部为1241,编码序号为19-22。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

本发明提出的基于滚转目标的环绕式圆形标记点的匹配方法,不仅解决了外挂物风洞模型在6个自由度方向运动时的标记点识别和匹配难题,且与现有嵌装编码发光装置的技术相比,无需对外挂物风洞模型开孔布线,不会破坏外挂物风洞模型的气动外形,不改变其结构强度和刚度,降低了外挂物风洞模型的设计难度和成本。与环绕式编码方法相比,提高了解码效率,具有快速性。

附图说明

图1为本发明实施例的特征编码圆形标记点示意图。

图2为本发明实施例的环绕式圆形标记点在投放物模型示意图。

图3为本发明实施例的部分编码片段示意图。

图4为本发明实施例的圆形标记点识别定位流程图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明做进一步详细说明。

基于滚转目标的环绕式圆形标记点的匹配方法。包括以下具体步骤:

步骤一:设计特征编码标记点,所述的特征编码标记点是指1个或多个相同圆形标记点的组合,如图1所示,具有以下特征:

a、组合样式如图1所示的5种样式分别是由1、2、3、4、5个圆形标记点组成,分别记为a、b、c、d、e样式的编码标记点。

b、对于b、c、d、e样式的编码标记点圆心共线,且每组样式中圆心之间的间距为1.1dmm(d为圆形标记点的直径),避免成像后轮廓相连无法形成单个圆形标记点的封闭轮廓。

c、若滚转型被测物体直径为lmm,设计圆形标记点直径至多为1/10lmm。

步骤二:创建基于滚转目标的环绕式圆形标记点,分布在投放物的模型的表面,具体的设计如图2所示。在被测物体表面分为头部和尾部二部分圆形标记点,头部圆形标记点集合记为{head},尾部标记点集合记为{tail}。其中具体的编码原则如下:

a、定义头部编码标记点head是由a、b、c、d、e样式组成,尾部tail只有a样式组成。头部标记点中任意连续3组编码标记点记为一个编码片段且编码片段组合样式不重复。例如a、b、d样式连续为一个编码片段,其编号为125。尾部标记点只采用a样式,均匀分布在被测物体的表面上。

b、若滚转型被测物体直径为lmm,除圆锥之外,中间圆柱的长度满足>2lmm,考虑任意姿态下采集的图像中包含头尾部至少4组编码标记点,且每组样式中相邻圆形标记点的间距小于上下组样式的间距(间距指的是圆与圆之间的外表面的间距)。故设计圆形标记点直径为1/10lmm,且每组样式中圆与圆之间的间距为1~2mm,避免成像后轮廓相连无法形成单个圆形标记点的封闭轮廓。每组样式间距为1/10lmm。

c、设计头尾部每组的圆形标记点圆心共线。头尾部的距离间距大于被测物体的直径(头部内任意圆的间距都小于头尾部的距离)。

d、头部中任意一个编码片段(连续3组样式的编码标记点)是唯一的编码号,部分编码片段如图3所示。其中尾部的每个圆形标记点的编码号为与之共线的头部编码号,赋予头尾部每组圆形标记点为唯一编码序号。假设头部有15组编码标记点,头部编码片段依次为123124135145214,对应共线的尾部圆形标记点编码片段为123124135145214。则头部编码序号为1-15,尾部编码序号为16-30。例如某张像片成像中头部编码片段为3124,则对应的编码序号3-6,尾部为1241,编码序号为19-22。

步骤三、提取圆形标记点,进行识别定位,设计流程如图4所示,具体步骤如下:

s31:使用相机拍摄贴有环绕式圆形标记点的被测物体,将采集的图像传输到计算机中;

s32:本专利使用的摄像机是单反相机,成像的图片是彩色图像,若是使用工业相机采集的原始图像是灰度图像,则可省去彩色图像灰度化步骤;由于受到现场环境和图像传输过程中会产生噪声,需对灰度图像进行高斯滤波;滤波后的图像进行灰度拉伸,增加被测物体与背景对比度,有利于标记点的边缘识别;接着在灰度图像进行自适应二值化,转换成二值化图像;最后在二值化图像上进行八邻域边界跟踪,计算轮廓的面积s和周长c。

s33:根据标记点的尺寸、特性,设置约束准则筛选出圆形标记点的轮廓。本专利采用的圆形标记点,根据圆的特性设计约束准则为面积周长约束、目标轮廓的包围盒长短轴(长宽)之比、轮廓的面积与包围盒的面积之比,设定阀值,可筛选出圆形标记点的轮廓,约束准则为

其中,s1,s2为面积的阀值,c1,c2为周长的阀值,a,b为包围盒的长短轴,通过轮廓的行列最大最小值计算,t1,t2为a,b之比的阀值。

s34:对圆形标记点进行中心定位,查阅相关文献,中心定位算法中鲁棒性最优的是灰度重心定位[3,4]。本文的圆形标记点设计的全白或者全黑,在二值化上标记点像素区域的灰度值分布均匀,所以采用灰度重心定位,其公式为

其中,(x0,y0)是该轮廓的中心像点坐标,x=1…m,y=1…n是该圆形标记点的轮廓区域内像素坐标个数,i(x,y)是像素坐标(x,y)处的灰度值。

步骤四、圆形标记点的匹配,具体步骤如下:

s41:记圆形标记点的中心坐标为集合q(q1,…qn),求q中每个中心坐标与其他中心坐标之间的距离,记为矩阵其中行向量代表第qi像点坐标与其他像点之间的距离,具体表示为

dij表示为第qi像点与第qj像点的距离,公式为

其中,i=(q1,…,qn),j=(q1,…,qn|j≠i)。计算矩阵d中元素最小值,记为dmin_i,记录dmin_i所在的行向量记为dmin_q,根据编码设计原则中第一条原则中可知dmin_i为某个b、c、d、e样式中相邻标记点的距离,则dmin_q所在行序号代表是头部的点,放入头部集合{head}中。

s42:计算dmin_q行向量中元素最大值,记为dmax。根据编码第二条原则知与头部标记点最远的距离一定是尾部的标记点,故该元素dmax所在列序号是尾部的点,记为q_max放入集合{tail}中。

s43:对头尾部的圆形标记点进行分类,分别放入集合{head}、{tail}中:

s431:计算像点q_max在d中所在的行向量中最小值元素,该元素列序号是尾部的点,记为q_max_min,放入集合{tail}中。

s432:集合q中剩余的点与q_max、q_max_min三点是否共线,若是共线为尾部的点,放入集合{tail}中,否则是头部的点,放入集合{head}。共线计算公式为

s44:根据头部标记点与尾部向量是否垂直,对头部集合{head}进行同组分类,解码。

s441:对{head}集合进行每组样式分类。{head}集合中第i像点与{head}中其他像点组成的向量,求该向量与尾部向量是否垂直,向量之间的夹角满足85°<θ<95°,则是同组样式的圆形标记点,放入集合code_i(i为{head}中第i像点同组集合),若第i像点与其他像点组成向量与尾部向量都不垂直则是a样式。

s442:统计code_i中每组标记点个数,则是这组样式的编码。编码集合记为decode_i。

s443:计算code_i第i组样式中像点与q_max之间的距离,code_i根据距离排序后放入集合sortcode_i。最远的像点为这组样式的起始圆,起始圆坐标放入集合startcode_i。

s444:判断每组样式中是否有断裂的点,断裂导致错误判断该样式的编码。计算sortcode_i中起始圆与该组样式最后圆的距离与dmin_i的倍数,若倍数大于decode_i值则存在断裂,更新序号,重新计算该样式编码decode_i。例如d样式,若缺失中间第2圆,判断该样式为c,计算倍数是3倍,则该圆序号为4,重新定义这组样式为d。

s445:判断startcode_i中每个起始圆是否共线,共线则说明未漏识别起始圆,如存在不共线的起始圆则舍弃该像片。根据startcode_i的行坐标或者列坐标升序排序startcode_i、decode_i以及startcode_i(startcode_i中行列坐标差值大作为排序的坐标)。则排序后decode_i为编码片段。

s446:decode_i编码片段顺序依次与编码原则第三条中头部编码片段以顺序或者倒序依次查找,找出decode_i编码片段对应的编码序号,记为decode_number_i。

s45:对尾部进行解码,以头部编码片段依次找出尾部{tail}的编码片段和编码序号。

s451:startcode_i中选取除了a样式,任意一组样式,在tail中找出与该组样式共线的标记点,共线对应头部标记点的编码序号是共线对应尾部标记点的编码序号,若没有找出共线,则在startcode_i选取其他组样式(除a样式)找出共线的标记点。共线的头部标记点记为head_coll,尾部标记点记为tail_coll。

s452:其中head_coll与startcode_i任意起始圆的组成向量判断向量编码序号是顺序还是倒序,计算tail_coll与{tail}中标记点之间的距离,以的方向性判断距离的正负,同向则为正,反之为负。

s453:根据距离升序排序{tail},记为sort_tail,根据tail_coll的编号序号在sort_tail位置依次(以判断是顺序或倒序读编码设计原则第三条中尾部编码)读取sort_tail其他标记点的编码片段和编码序号。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1