APP下载

基于线段融合的空间非合作目标稳健特征提取算法

2022-12-26周啸风刘寒寒

计算机测量与控制 2022年12期
关键词:端点特征提取线段

周啸风,汪 玲,刘寒寒,张 翔

(1.南京航空航天大学 电子信息工程学院,南京 211106;2.南京理工大学 机械工程学院,南京 210094)

0 引言

在轨服务、主动碎片探索等任务中,目标飞行器或者卫星的姿态估计[1]都是一个重要的问题。相对姿态估计对于卫星之间交会、接近、对接是必不可少的。根据目标是否是合作的,目标可分为合作目标和非合作目标[4]。在非合作目标的情况下(没有任何人工标记,结构形状大小全部未知),一般采用基于视觉[7]的算法对卫星进行位姿估计。位姿估计一般分为特征提取、特征匹配、位姿计算三大步骤。特征提取的精度直接影响了位姿测量的准确性。针对在太空中,受光照、复杂背景等影响提取特征困难的问题,本文的目标是给出一套稳健的特征提取方案,提取出非合作目标的显著特征。

在太空中,由于光照变化、背景中经常出现地球等其它物体、距离太远等影响,特征提取难度增加,容易提取出错误的特征。传统的特征提取算法,大多数是提取孤立的点、线特征。以提取特征点为主要特征的特征提取算法有ORB特征提取算法[9]、SIFT特征提取算法[10]、SURF特征提取算法[11]等等。以基于线段为主要特征的特征提取算法有HoughLines检测算法、LSD算法等等。在Hough Lines检测算法的基础上前人也改进了一些算法,比如多尺度霍夫变换算法[12]、累积霍夫变换算法[13]。上述的这些特征检测算法都是传统的特征检测算法,已经被广泛地应用到图像处理领域。针对航天应用背景,也出现了一些特征提取相关研究,例如文献[14]采用基于Harris角点的特征提取算法用于后续空间目标初始位姿估计;文献[15]融合Shi-Tomasi角点检测和SURF特征点检测进行特征提取;文献[16]提出了一种融合多处理流的特征提取算法,该算法通过融合不同算法提取的特征点,继而将特征点合并为线段特征结构,提高了特征提取的稳健性。国内对特征提取算法也展开了相关的研究,例如文献[17]提出了基于纹理边界检测的航天器椭圆特征提取算法,该算法对光照变换具有鲁棒性,在光照变化和星体表面不均匀的情况下能准确地提取特征。文献[18]针对SIFT特征点提取算法实时性差的问题,提出了对比度增强和DAISY描述符的SIFT特征提取算法。文献[19]提出了一种在月面环境下基于SIFT的特征提取算法。文献[20]也提出了一种基于SIFT图像特征提取与FLANN匹配的算法,该算法通过用SIFT特征提取算法提出特征点,然后用FLANN匹配算法对特征点进行匹配,SIFT特征提取算法对于图像的尺度变换、光照变换具有很强的适应性。

上述研究除[16]之外都是提取点或线段特征,这些特征都比较孤立,无法形成一个有效的整体来表征真实的目标结构。而[16]则考虑提取能够反映目标结构的特征信息,本文借鉴[16]提出的特征点融合的思想,给出一种基于线段融合的特征提取算法。鉴于HoughLines线段检测算法效率高、抗干扰能力强、对噪声不敏感,LSD线段检测算法能够提取亚像素精度的特征,Shi-Tomasi角点检测算法可以检测对特征跟踪有意义的角点的优势,联合采用这3种算法对特征点进行提取,保证提取到所有关键的特征点。然后对特征点进行筛选,保留能够反映目标特征的较少数量的特征点,之后进行线段合成,并进一步进行线段融合。最后,设计了两组实验,对仿真图像以及半物理仿真图像进行特征提取。仿真实验和半物理仿真实验结果表明,该特征提取方法的鲁棒性强,在光照条件欠佳以及复杂背景环境下仍能稳健地提取目标特征。需要指出的是,本文与[16]采取了相同的多种特征提取算法并行处理然后融合的策略,但是不同的是,本文详细给出了进一步线段合成和融合的具体算法。

本文的结构安排如下:第1节给出特征提取流程,第2节详细阐述特征提取的主步骤,第3节为实验验证与分析,第4节是结束语。

1 特征提取流程

特征提取的整个流程大致分为背景滤除、特征点提取与融合、直线合成与融合三大步骤。在预处理过程中,首先对原始图像进行高斯滤波、灰度化处理,可以有效地减少噪声对后续特征提取工作的影响。

在滤除背景的过程中,根据图像的前景与背景灰度有较大差异的特点,本文采用基于图像梯度阈值的方法对图像进行背景滤除。将滤除背景的图像用3种特征点提取算法分别提取三组不同的特征点,将提取出来的特征点构建K-D空间划分树,用K最近邻搜索算法对特征点进行融合,得到三组特征点的公共集合。

本文介绍了一种线段合成算法,通过计算两点之间非零像素点个数占总个数的比值来判断两点之间有无合成线段的可能。最后,本文提出了一种基于线段端点的直线融合算法,通过线段端点的关系,判断线段之间有无共线、重合、是否可以合并等情况,根据不同情况采取不同的融合策略,对线段进行融合。特征提取的流程如图1所示。

图1 特征提取流程图

2 特征提取步骤

2.1 背景滤除

从航天器中获得的原始图像,由于在采集、传输以及处理的过程中,容易受到噪声的影响,对后续的背景滤除、特征提取工作造成影响,因此需要在开始的时候对图像进行一系列的预处理工作。预处理工作主要是对图像进行高斯滤波、灰度化处理。通过高斯滤波处理可以有效地降低图像中的噪声,灰度化处理可以将图像转换成灰度图。

由于在太空中,背景比较复杂,图像当中常常会出现地球、云层、其它星球等复杂多样的背景,这些背景会干扰特征提取,因此首先需要对图像的背景进行滤除。本文采用文献[21]提出的基于Prewitt的梯度算法对背景进行滤除。

在对图像进行滤波,灰度化处理后,图像背景灰度与前景灰度往往会有较大的差异,这个差异可以用梯度来描述。该方法使用Prewitt算子计算每个像素点的梯度。首先,用两个3×3的核与原始图像进行卷积,来计算水平导数与垂直导数的近似值。如果把输入的图像定义为F,图像中每个点的水平方向的导数近似值为Gx,垂直方向的导数近似值为Gy。则Gx,Gy的计算公式如式(1)、(2)所示:

(1)

(2)

其中:*表示卷积。对于F中每一个像素点,可以通过式(3)得到梯度的近似值,式(3)如下所示:

|Gx(u,v)|+|Gy(u,v)|

(3)

通过上述公式,可以得到图像中每一个点的梯度值。然后对这些梯度值进行排序,均匀划分成100个区间,构建梯度直方图,并将直方图拟合成一条曲线。之后通过计算曲线积分,找到曲线所围面积为总面积0.99对应的梯度阈值点,最后将小于阈值的像素点滤除,即像素值设为0。图2给出了对仿真的复杂背景图像采用梯度方法进行背景滤除的处理结果,其中图2(a)是原始图像,图2(b)是背景滤除结果。

图2 基于梯度的背景滤除算法处理结果

2.2 特征点并行提取与融合

HoughLines检测算法[22](以下简称HLT)具有检测效率高、抗干扰能力强、对噪声不敏感的特点,已被用于卫星目标的特征提取。标准的HLT算法是提供一组角度和半径的参数来表示检测到的线段,而本文采用统计概率霍夫线变换算法,它可以返回检测到的线段端点(x0,y0,x1,y1)来表示检测到的线段。它在opencv中可以通过HoughLinesP函数实现。

LSD检测算法[23]不需要调整参数、检测速度快、可以返回亚像素精度的检测结果,在opencv中主要是通过createLineSegmentDetector函数实现。相对于一般的点特征,HLT算法和LSD算法都是通过检测线段,然后提取线段端点的方式提取特征点,线段特征对于光照变换具有更强的鲁棒性,而Shi-Tomas角点检测算法[24](以下简称S-T)主要检测角特征,对特征跟踪起到很大作用,在opencv中主要是通过goodFeaturesToTrack函数实现。鉴于这3种特征点提取算法的优势,本文使用这3种方法提取特征点。图3给出了上述几种方法的特征提取结果,图3(a)~(c)分别为Shi-Tomas算法、LSD算法和HLT算法的处理结果。由图可见,Shi-Tomas特征提取算法可以有效地提取出图像角点,它提取出来的特征点分布在图像四周。而LSD和HLT算法可以提取出线段的端点,它提取出来的特征点分布在线段周围。

图3 提取的三组特征点

由图3(a)可见,Shi-Tomasi算法检测出来的特征点比LSD、HLT算法检测出来的特征点多,但是也检测到周围的噪声点。由图3(b)和图3(c)可见,LSD算法和HLT算法检测出的有些特征点不能较好地反映目标的结构特征,形成干扰。但是LSD算法检测到的特征点不包含来自于HLT的错误端点,HLT算法检测到的特征点不包含来自于LSD的错误端点。因此,融合三组特征检测结果可以弥补3种特征提取算法各自的不足,保留反映目标结构特征的较少数量的关键特征,减少线段合成的运算量。本文采用K-D空间划分树和KNN算法[25]对3种算法的特征提取结果进行融合。

K-D空间划分树是一种可以将K维点集进行划分的数据结构。在二维平面中K就代表2,它是一个根据树的深度轮流选择轴作为分区面将一个平面划分为两个平面的过程。首先,将所有特征点按照横坐标的大小顺序进行排序,选择横坐标的值是中位数的那个点当作根节点,将所有小于根节点横坐标的点作为左子树,所有大于根节点横坐标的点作为右子树。这样左右子树就各自形成了两个平面。然后以纵坐标的大小为划分依据对两个平面做同样的处理。以不断轮换轴平面的方式对所有特征点进行处理,这样就能把一个点集构建成一个K-D空间划分树。KNN算法指的是K最近邻搜索算法,对于给定一个点,可以在K-D空间划分树中找到与这个点最近的点。因此,可以将提取到的点集构建K-D空间划分树,选择另一点集的点作为匹配点,找到两个点集的重复点集。

由于可以控制用Shi-Tomasi方法提取出来的特征点的数目,因此先用LSD提取出来的特征点构造K-D树,然后用S-T提取出来的特征点逐个与K-D树进行匹配,筛选出重合的点,得到一个过滤点集。然后用HLT点构造K-D树,再用过滤点集来匹配,最后得到三组点的共同点。图4给出了最后的过滤点集。

图4 特征点融合结果

2.3 线段合成与融合

融合三组特征点之后,进行线段合成,然后进行筛选并融合成更高级的结构。

1)线段合成:遍历所有的特征点,判断两两特征点之间能否构成线段。具体做法是,两个特征点之间每隔5个像素取出一个像素点,将像素点的个数记为A,计算这些像素点的灰度值是否大于阈值,将所有大于阈值的个数记为B。如果B/A的比值大于一定的比例,则这两点连接合成一条线段,并将该线段存入容器A1中。

2)线段融合:第一步合成的线段可能会存在共线和重合,也可以形成更高级的折线特征,因此需要进一步筛选并进行融合。图6给出了线段融合的算法流程。具体做法是,将所有待判断的线段存入容器A1中,判断过的线段存入容器A2中。将待判断的线段与A2中线段进行比较:如果与所有已判断过的线段都不共线,将当前待判断的线段视作一条独立的线段同时添加到A2中;如果存在共线的情况,继续分为以下几种情况进行处理:

图5 线段融合示意图

图6 线段融合流程图

第一种情况:如果待判断的线段两个端点都在已经判断过的线段里面,这时已经判断过的线段就包含待判断的线段,则不需要额外处理,直接进入下一条线段的判断。

第二种情况:如果已经判断过的线段两个端点在待判断的线段里面,这时待判断的线段包含已经判断过的线段,此时用待判断的线段替换这条已经判断过的线段。如图5所示,待判断线段p1p3包含了已判断线段p1p2,因此将线段p1p3代替线段p1p2。

第三种情况:待判断的线段和已判断的线段有共线部分,则合并这两条线段并替换原来的已判断过的线段。如图5所示,线段p4p6与线段p5p7有重合部分,因此将两个线段合并成一条更长的线段p4p7,同时替换掉原来的线段p5p7。

第四种情况:待判断的线段与已判断的线段共线,但是没有重合部分,且线段间有一段距离。如果距离小于阈值,则进行线段合并和替换。如图5所示,线段p8p9与线段p10p11可以合并成一条更长的线段p8p11。反之,将待判断的线段视作一条新的线段。

在判断两条线段是否共线的时候,记已经存储的线段p1p2两个端点分别为p1和p2,待判断的线段p3p4的两个端点分别为p3和p4。分别计算端点p3、p4到线段p1p2的法向距离Dp3、Dp4以及端点p1、p2到线段p3p4的法向距离Dp1、Dp2。法向距离Dp1计算如公式(1)所示,其中(x1,y1)是点p1的坐标,(x3,y3)是点p3的坐标,(x4,y4)是p4的坐标。

(4)

如果Dp1、Dp2小于阈值或者Dp3、Dp4小于阈值,就将线段p1p2、p3p4视为共线。

但是经过上述操作,可能仍存在遗漏,比如应该合并的线段并没有合并。为减少此类情况的发生,可改变线段的存储顺序,对上述流程进行迭代,直到提取出来的线段数量不再增加。

对图4中融合后的特征点进行线段合成,结果如图7所示,白色线段为提取出来的线段结构。

图7 线段合成和融合结果

3 实验验证

为了验证特征提取的准确度以及算法对于光照、复杂背景的鲁棒性,本文设计了两部分实验进行验证。第一部分是为了验证特征提取的准确度,开展半物理仿真实验,测量物体是一个立方星。该立方星的尺寸已知,实验通过跟踪检测到的特征点,记录特征点的坐标信息,分析特征特征点的坐标变化情况,同时跟踪提取到的特征线段,计算提取的线段长度,与真实的线段长度进行比较。从定量的角度来分析特征提取的精度。第二部分是为了验证算法在不同背景情况下的鲁棒性,开展了仿真实验。为了验证在复杂背景环境下的鲁棒性,本文仿真了两组在不同太空背景情况下的卫星图像,根据特征提取结果,从定性的角度分析特征提取对于复杂背景的鲁棒性。

为了验证特征提取算法的精度,开展半物理仿真实验验证。本文使用软件Visual Studio 2017及Opencv3.4.2库对图像进行特征提取工作。由于在特征提取过程中,提取出来的特征点,特征线段都很容易受到光照、环境变化的干扰,因此可以通过跟踪特征明显的点,记录特征点的位置坐标,以及提取出来的线段的长度来分析误差。该实验的目标为立方星,如图8所示,中间主体为长方体,尺寸为103.2 mm×103.2 mm×227 mm,两个太阳翼的尺寸为82.802 mm×227 mm。

图8 卫星模型

设置不同光照条件、不同的相机距离和不同目标位姿进行图像采集,共采集60张图像,其中有6个强度的光照变换,相机距离变化为0.75~1.75 m,滚动角变化为-10~ 10°。

对其中10幅图像进行处理,提取两条特征边p1p2,p3p4(如图8所示),图9给出了强光与弱光两种情况下的特征提取结果,分别如图9(b)和图9(d)所示。

图9 卫星图像特征提取结果

将提取到的线段长度与真实长度进行对比,测量结果如图10所示,其中图10(a)是线段p1p2的测量结果,图10(b)是线段p3p4的测量结果。记录线段p1p2的端点p1,p2坐标的测量结果,结果如图11所示。其中图11(a)是点p1在x轴坐标系下的坐标,图11(b)是点p1在y轴坐标系下的坐标,图11(c)是点p2在x轴坐标系下的坐标,图11(d)是点p2在y轴坐标系下的坐标。

图10 两条特征线段提取结果长度误差图

图11 p1、p2在坐标系下的坐标

由图9可知,在没有背景干扰的情况下,在强光和弱光两种情况下,都能提取出目标的结构特征,并且提取出来的特征结构清晰,可以很好的表示原始目标。由图10可知,提取出来的线段p1p2平均长度为100.691 2 mm,实际长度为103.2 mm,平均误差为2.509 mm,提取出来的线段p3p4平均长度为82.499 mm,实际长度为82.802 mm,平均误差为2.551 57 mm,特征提取误差小,满足特征提取的精度要求。由图11可知,特征点波动的最大误差在3 mm以内,波动误差小。因此,特征提取算法对于特征点提取比较准确,可以满足特征提取的精度要求。

为了测试该算法在复杂背景情况下的鲁棒性,本文开展仿真实验,对背景中都是地球以及背景中部分出现地球两种情况的卫星图像进行特征提取,根据特征提取结果,从定性的角度分析特征提取的效果。对不同背景的卫星仿真图片进行处理,处理结果如图12所示。

图12 不同背景的卫星特征提取结果

从图12可知,在背景中全都是地球以及部分是地球的两种情况下,特征提取算法都能提取出目标的关键特征,结果表明该算法也能很好地克服背景环境带来地干扰,没有提取出除目标外的其它不重要特征。

4 结束语

针对在太空中对于非合作目标受光照、背景等影响,特征提取困难的难题,本文给出了一种基于线段融合的特征提取算法。该算法首先通过基于梯度的背景滤除算法滤除背景,然后用3种不同的特征提取算法提取出三组不同的特征点,用K-D空间划分树以及KNN算法将三组特征点融合,最后进一步进行线段合成与融合。在半物理仿真实验中,特征点的位置误差在3 mm以内,提取的两条线段误差分别为2.509 mm与2.551 57 mm。实验结果表明,在光照变化等复杂背景条件下,该算法能够稳健地提取反映目标结构的线段特征,该算法将应用于后续的位姿测量算法。同时,后续也会开展对其它特征结构的特征提取工作。

猜你喜欢

端点特征提取线段
非特征端点条件下PM函数的迭代根
画出线段图来比较
不等式求解过程中端点的确定
基于Gazebo仿真环境的ORB特征提取与比对的研究
怎样画线段图
我们一起数线段
数线段
基于Daubechies(dbN)的飞行器音频特征提取
Bagging RCSP脑电特征提取算法
基丁能虽匹配延拓法LMD端点效应处理