APP下载

一种改进的星图降噪算法研究

2022-08-05影,李群,何杰,葛

导航定位与授时 2022年4期
关键词:星点灰度高斯

刘 影,李 群,何 杰,葛 飞

(北京自动化控制设备研究所,北京 100074)

0 引言

星敏感器是一种姿态敏感测量器件,可靠性高,其以恒星目标为参照系,测量运载体在惯性空间中的三轴姿态。由于星敏感器具有精度高、功耗低、自主性好、抗干扰能力强、工作方式灵活等特点,使其在卫星、导弹、舰船等相关平台姿轨控制系统应用极为广泛。

为了保证最后星点提取及质心计算结果的准确性,需要对各种杂散光以及系统自身存在的噪声带来的影响进行处理。目前主流的一些星图去噪技术手段:1)空间域滤波处理:包括邻域均值滤波、高斯低通滤波和中值滤波等;2)阈值分割:全局阈值法或局部阈值法;3)静态背景噪声法:通过选取轨道相同、位置间隔的两帧星图,对这两幅图像中同一像素点的灰度值取中值,并将该值作为背景噪声,从而达到分离目标与噪声的目的。人们在提高星点的提取精度上进行了大量研究,基于传统方法不断改进。文献[5]提出了一种将中值滤波和改进的阈值函数相结合的图像去噪方法,该方法对椒盐噪声具有很好的处理效果。文献[6]提出了一种基于斜率差值的自适应滤波算法,在有效保留极值附近信号的同时,滤波的保真性也得到了提高。文献[7]在常规的多窗口抽样自适应阈值选取方法的基础上进行改进,不仅满足星图去噪的要求,而且可以很好地保留灰度值较低的星点。文献[8]提出了一种改进的中值算法,通过确定角度大小和与邻域信号点之间的关系来定位噪声点,然后对窗口中求得的均值和中值进行加权滤波,进而有效地抑制背景噪声。但是这些算法实施起来较为复杂,不便于在硬件平台上进行测试和使用,而且这些算法对例如元器件产生的坏点的优化作用较小。

本文在传统的高斯低通滤波算法的基础上进行改进,首先对星图中的坏点进行剔除,然后采用高斯低通滤波算法对噪声进行平滑降噪,最后采用高通滤波抑制星图中的强光背景信号。通过对Matlab模拟出的星图影像进行星点提取工作,验证了该算法的有效性。

1 星图特性分析

1.1 星敏感器工作原理

星敏感器的硬件组成部分主要为遮光罩、光学镜头、图像传感器、成像电路、图像处理电路以及数据处理单元等。星敏感器的工作过程是在一定的视场范围内,恒星通过光学镜头成像到光电传感器的光敏面上,由光电传感器将光能转化为视频电模拟信号,经过放大、滤波、相关双采样、A/D转换等一系列处理为灰度数据;然后将采集到的数据保存为数字图像,对数字图像进行星点提取和质心计算,得到星点位于像平面上的坐标;接着通过星图识别算法,与导航星库对比,找到与其相匹配的导航星,最后根据识别的结果由姿态解算得到星敏感器的三轴姿态信息。其工作示意图如图1所示。

图1 星敏感器工作原理示意图Fig.1 Schematic diagram of the working principle of star sensors

通过分析其工作原理可知,星图预处理是星敏感器工作过程中的重要一步,不仅影响了星图识别的效率,而且对最后的姿态解算精度也有很大的影响,所以准确地对星图进行处理是一项非常重要的工作。

1.2 星图数学模型

通常星图是由星点目标、背景和噪声三部分组成,用数学模型表示如下

(,)=(,)+(,)+(,)

(1)

式中,(,)表示像素点(,)处的灰度值;(,)、(,)、(,)分别为恒星目标亮度、背景灰度及噪声信号。通过实际观测可以看出,天空中大部分的恒星是低亮度的,其灰度值比较低,所占据的像元面积也比较小,很容易被噪声及背景淹没,所以直接对星图进行星点提取是很困难的,容易忽略掉星点或误提噪声点。因此,对星图进行去噪处理,提高图像的信噪比是很有必要的。

星敏感器在使用过程中产生的噪声主要分为两部分:一是星空背景噪声,属于随机突发噪声,通常看成椒盐噪声去处理;二是感光元器件产生的噪声,主要包含光子散粒噪声、暗电流噪声、固定图形噪声、量化噪声等。在这些噪声中,光子散粒噪声是传感器本身的噪声,就目前的技术手段而言没法被消除或抑制,其他的噪声均可以采用相应的硬件手段进行处理。图2所示为使用星敏感器拍摄的一幅实际星图,任意选取图中一星点周围的局部星图,如图中标记所示,对该部分进行灰度分析,灰度范围为[0.255],其灰度分布如图3所示。

图2 星敏感器拍摄的星图Fig.2 Star map taken by a star sensor

图3 局部星图灰度分析Fig.3 Gray value analysis of local star image

通过分析局部星图的灰度值,可以看出:恒星目标区域为低频部分,背景及噪声属于高频部分,并且背景及噪声的灰度值远小于星点的灰度值。该特性为星图去噪及阈值分割提供了理论依据。

2 星图去噪算法

由前文分析可知,星图噪声为高频信号,并且星点的灰度能量分布可以近似看成是二维高斯分布。在数字图像处理中,两个同分布的函数经过卷积运算后,它们的函数类型不会发生变化,仅仅是尺度跟幅值发生变化。因此,可以采用高斯低通滤波对星图进行去噪处理,这样处理完的星图其质心位置几乎没有改变,避免对后续过程造成影响。

2.1 高斯低通滤波

高斯滤波算法是基于均值滤波加以改进而推演出来的,对图像的高斯噪声具有很好的抑制效果。其算法过程就是将滤波窗口的中心点与高斯滤波模板的中心位置重合,并进行卷积运算,得到的结果即为窗口中心点的灰度值。其中,窗口大小一般可选择3×3或5×5的矩阵框,如式(2)所示。

(,)=(,)⊗

(2)

式中,(,)表示滤波后的结果;(,)表示以(,)为中心的滤波窗口内各点的灰度值;表示高斯滤波模板。

其中,归一化的高斯滤波系数通过高斯函数计算得到,如式(3)

(3)

式中,、为滤波窗口内各像素点到窗口中心点的距离;为高斯函数的标准差。模板中心点占整个窗口的比重与成反比,越小,中心占比越大,滤波效果甚微;越大,则模板与均值滤波模板的滤波效果近似,变化显著,但图像也相应变得模糊。

高斯滤波模板操作方法简单,并且有一定的效果,但也存在着局限性,即不能真正去除噪声信号。在处理过程中,往往会引入窗口邻域内的噪声,特别是当窗口内有坏点存在时,滤波效果将大大降低。而且高斯滤波模板的值是确定的,这就导致其在使用过程中无法顺应图像变化特点进行修正。

2.2 改进的高斯滤波算法

针对单一滤波模板存在的问题,对高斯滤波进行改进,以提高滤波质量。改进的方法分为三点,下面分别进行阐述:

2.2.1 数据扩展

由于模板使用的是3×3窗口,且所有的操作都是对窗口中心点进行的,这就导致图像第一行(列)和最后一行(列)的数据不能被处理到。为了保证数据的完整性,需要对图像数据进行扩展。一般可以用0,255或者与其相邻的行(列)灰度值对外围数据进行填充。根据图像的相关性,在一幅图像的平滑位置,它的灰度变化规律近似服从线性关系,由此进行数据填充。下面以第一列为例,详细描述该填充过程。图4所示为数据扩展示意图,其中阴影部分为扩展的数据。

图4 数据扩展示意图Fig.4 Diagram of data expansion

以图像左上角为坐标原点,(,)表示点(,)处的灰度值,则填充规则如下

(-1,-1)=(,)

(4)

=2(,)-(+1,)

(5)

(6)

2.2.2 坏点剔除

由于外界环境以及硬件自身存在的噪声影响,即使在星图的平滑区域,某一点的灰度值与它邻域内的灰度值也会不可避免地存在一定的差异,但一般不会太大。通常将与其邻域灰度差异较大的点认为是坏点,往往是孤立存在的。在进行滤波去噪处理时,如果直接处理这些点,容易对其周围的像素点造成影响,这时图像中就会有亮斑或暗斑出现。所以在滤波前可以先对坏点进行检测,消除其带来的影响。

对检测出来的坏点用其邻域内的中值进行代替是一种处理的技术手段,其算法流程示意图如图5所示。对含有坏点的局部星图进行剔除工作,处理前后的星图如图6所示。从图中可以看出,经过处理后坏点被有效去除,并且星点信号几乎没有受到影响。

2.2.3 抑制强光背景

对星图中强光背景信号带来的影响,可以采用高通滤波的方式对图像进行处理。但直接使用传统的高通滤波算子,会对图像噪声比较敏感,导致处理效果不好。于是将高斯滤波后的图像与该图经过低通滤波处理后的图像逐像素求差值,得到新图像,从而实现高通滤波处理的目的。实现低通滤波的算法有很多种,包括中值滤波、均值滤波等,考虑到处理效果及运算量,邻域均值滤波是一种比较好的选择。式(7)为邻域均值滤波的计算公式,则高通滤波的数学表达式如式(8)

图5 坏点剔除流程示意图Fig.5 Schematic diagram of dead pixel removal process

(a)处理前

(b)处理后

(7)

(,)=′(,)-(,)

(8)

其中,(,)是经过高通滤波以后最终输出的图像中(,)处的灰度值;′(,)是经过高斯滤波后(,)处的灰度值;(,)为′(,)经过邻域均值滤波后(,)处的灰度值;为滤波模板的半边长。

3 仿真实验及结果分析

本文采用模拟的星图影像,并对其进行星点提取实验,以验证提出算法的可行性。模拟星图的生成采用史密森星表(Smithsonian Astrophysical Observatory Star Catalog,SAO)数据,该星表包含亮于11.3等的星号、赤经、赤纬、星等等信息。视场大小为10°×10°,像元大小为1024pixel×1024pixel,选取的星点等级大于6等,当星等为2.5时达到饱和。由前面对星图的分析可知,星点目标的能量分布近似为二维高斯分布,且大小一般为3~5个像元。因此,要产生模拟的星体目标需要根据二维高斯函数做灰度弥散,其数学表达式如式(9)

(9)

其中,表示恒星成像到图像传感器光敏面上的总能量,其中心点坐标为(,);为高斯弥散半径,这里取=0671。星敏感器的光轴指向旋角为20°,赤经为137°,赤纬为52°,生成的模拟星图如图7所示,其中标记点为星点的位置。

在得到的模拟星图背景上添加均值为0、方差=0.00001的高斯噪声。对该图分别采用传统高斯滤波模板及本文提出的方法进行滤波处理,并对质心坐标进行计算,其对应的像平面坐标结果如表1所示。

图7 模拟星图影像Fig.7 Simulated star image

表1 模拟星图星点计算结果

图8和图9所示为传统方法与改进方法提取坐标的相对误差曲线。通过对实验结果分析可知,利用本文提出的方法对模拟星图影像进行星点提取比传统高斯滤波模板进行处理的效果明显提高,其中横坐标提高了0.00538个像素点,纵坐标提高了0.0077个像素点。其结果与实际星点位置误差均值为=-0.00537pixel,=-0.00305pixel,偏差更小。实验结果表明,改进后的高斯滤波算法能很好地抑制星图背景噪声,并且几乎不会对质心位置造成影响。

图8 传统法与改进法的横坐标相对误差Fig.8 The relative error of abscissa of the traditional method and the improved method

图9 传统法与改进法的纵坐标相对误差Fig.9 The relative error of ordinate of the traditional method and the improved method

4 结束语

本文通过分析和总结星图的特点,对星图去噪处理方法进行研究,针对传统的高斯滤波存在的问题加以改进,研究结果表明:

1)对星图进行坏点剔除工作后,星图中的一些孤立噪点被有效去除,避免在后续滤波处理中将其引入到星点邻域内。通过对比处理前后的局部星图可以看出,恒星目标位置基本不会发生变化。

2)在模拟出的星图上分别采用传统的高斯滤波算法与本文提出的算法进行星点提取工作,并将所得到的结果与星点实际坐标位置进行对比可知,该方法得到的星点位置精确度更高,其中横坐标提高了0.00538个像素点,纵坐标提高了0.0077个像素点。

随着人们对航天器姿态控制精度的要求越发苛刻,研究星敏感器星图处理工作极具意义。本文提出的算法实现简单、灵活性强,便于在可编程逻辑门阵列(Field Programmable Gate Array,FPGA)、数字信号处理器(Digital Signal Processing,DSP)等硬件平台上开展,具有工程实用价值。

猜你喜欢

星点灰度高斯
星点设计效应面法优选中药复方乳腺增生按摩油提取工艺研究
歌颂
天津港智慧工作平台灰度发布系统和流程设计
华为“灰度”哲学
Arduino小车巡线程序的灰度阈值优化方案
数学王子高斯
动脑算算题
一种基于灰度分割的调焦评价函数
黄腻苔干咳证的探讨