一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种适应杂散光干扰的星点提取算法

2023-09-07 18:34:18 来源:中国专利 TAG:


1.本发明属于目标检测领域,具体涉及一种适应杂散光干扰的星点提取算法。


背景技术:

2.星光导航设备作为高精度、高可靠的在轨姿态测量设备,其中比较关键的技术包括有星点检测技术。星点检测技术即在星空中检测并计算恒星的质心位置。然而在实际使用过程中,由于太空中常常存在太阳光、月光、地气光(统称杂散光)等干扰的存在,会导致星点检测过程中会提取到大量虚假目标,影响后续识别操作。因此,有必要提出一种可靠的适应杂散光干扰的星点提取算法。
3.目前针对杂光干扰下的星点检测算法,包括有背景预测法,局部自适应阈值计算法,以及连通域标记法。但是这些算法都有各自的局限性,包括复杂度高、适应能力差或者对存储空间和运算时间消耗大。


技术实现要素:

4.本发明要解决技术问题为:针对上述传统算法的不足,本发明提出一种复杂度低、实时性高且对杂散光适应能力强的星点检测算法。该方法采用背景抑制,星图二值化,噪声抑制,星点标记,质心计算这5步确定星图中的星点位置。
5.本发明采用的技术方案为:一种适应杂散光干扰的星点提取算法,具体包含如下步骤:
6.步骤1:输入带杂散光干扰的星图image;
7.步骤2:杂光抑制。首先进行高亮像素的统一化,将星图中灰度值大于阈值moon_seg的像素均设置为固定值moon_seg,得到图像image1;
[0008][0009]
考虑到星点目标通常尺寸较小,而且杂散光呈现大面积、连续性的特点,因此采用大模板下的先腐蚀、后膨胀的操作先消除星点等小目标,得到图像image2。
[0010][0011]
其中,se1为腐蚀模板;se2为膨胀模板;为腐蚀操作;为膨胀操作,
[0012]
通过背景减除的方式,可以获得杂光抑制后的图像image3:
[0013]
image3=image2-image1
[0014]
步骤3:星图二值化。从水平和垂直两个维度方向出发,分别判断中心像素之和与边缘像素之和是否同时满足阈值关系:
[0015]
8*(m0 m1 m2)>3*(e1 e2 e3 e4 e5 e6 e7 e8) line_thred
[0016]
8*(m0 m3 m4)>3*(f1 f2 f3 f4 f5 f6 f7 f8) line_thred
[0017]
其中,m0,m1,m2为水平方向中心3像素;m0,m3,m4为垂直方向中心3像素;e1~e8为水平方向两侧边缘的像素;f1~f8为垂直方向两侧边缘的像素;line_thred为阈值;
[0018]
对于满足阈值关系的像素进行二值化处理,等到整张星图遍历完成后,即可得到二值化星图image4;
[0019]
步骤4:噪声抑制。采用小模板下的腐蚀和膨胀操作,进一步抑制单像元噪声。
[0020][0021]
步骤5:星点标记。星点标记采用基于前序像素的4连通域法进行连通域标记。前序像素表示当前像素行的前一列像素以及上一行的像素,利用当前像素和前序像素之间的关系进行连通域的划分。如果同时满足条件:
[0022]
x(i,j)>0&x(i-1,j-1)=0&x(i-1,j)=0&x(i-1,j 1)=0&x(i,j-1)=0
[0023]
则标记为新的连通域a(i,j)且标记号为m。
[0024]
而对于x(i,j)>0且前序像素中有一个像素不为0,则选取前序像素中连通域c(i,j)标记号m的最大值作为当前像素对应的连通域标记号。并且在遍历整张图像的过程中,需要计算相同连通域的星点灰度累加和g(c)以及x方向的灰度与坐标加权值x(c)、y方向的灰度与坐标加权值y(c):
[0025]
g(c(i,j))=g(c(i,j)) image5(i,j)
[0026]
x(c(i,j))=x(c(i,j)) i
×
image5(i,j)
[0027]
y(c(i,j))=y(c(i,j)) j
×
image5(i,j)
[0028]
其中,c(i,j)表示坐标位置为(i,j)的像素点所属于的连通域;g(c(i,j))表示连通域c(i,j)的灰度累加和,image5(i,j)表示坐标位置为(i,j)的像素点对应的灰度值;x(c(i,j))表示连通域c(i,j)的灰度与水平坐标i的乘积的累加和;y(c(i,j))表示连通域c(i,j)的灰度与垂直坐标j的乘积的累加和,
[0029]
当整张图像遍历完成后,可以计算粗质心位置:
[0030][0031][0032]
其中,x(n)表示第n个连通域对应的灰度与水平坐标的乘积的累加和;y(n)表示第n个连通域对应的灰度与垂直坐标的乘积的累加和;g(n)表示第n个连通域对应的灰度累加和;starx
(n)
和stary
(n)
表示第n个连通域计算到的粗质心坐标;
[0033]
步骤6:利用步骤6计算到的粗质心坐标,在原始图像image1中计算精确坐标。以粗质心取整后的坐标为原点,计算15*15区域内的星点质心坐标。
[0034]
计算方法采用带阈值的质心法。先计算边缘区域共56个像素的平均灰度值作为背景值b,然后利用14*14中心区域内各个像素值减去背景值b,再与星点的坐标值相乘,即可求得精确坐标(x0,y0):
[0035][0036]
[0037][0038]
进一步的,所述阈值moon_seg通常设置为200。
[0039]
进一步的,所述大模板腐蚀膨胀操作对应的腐蚀模板为1*20,膨胀模板为1*40。腐蚀模板通常需要大于星点目标尺寸。
[0040]
进一步的,所述线段阈值line_thred通常设置为50。
[0041]
进一步的,所述小模板腐蚀膨胀操作对应的腐蚀模板为1*2,膨胀模板为1*2。
[0042]
进一步的,步骤2中,高亮像素的统一化目的是为了让亮度不均匀的杂散光背景均匀化,从而只保留杂散光的位置信息。这一操作可以确保在背景减除操作完成后,杂散光背景基本被抑制充分。
[0043]
进一步的,步骤4中开展了小模板的腐蚀膨胀操作。是由于步骤2中开展了腐蚀操作,星图中所存在的单像元的噪声(探测器坏点或者是辐射噪声)跟随星点被一同掩盖,因此二值化星图image4中可能会存在大量的单独亮像素。因此采用小模板下的腐蚀和膨胀操作,进一步抑制单像元噪声。
[0044]
本发明与现有技术相比,其显著优点为:
[0045]
(1)对杂散光背景的适应能力强。通过对背景亮像素的统一化以及背景减除的方法能够有效抑制杂散光的影响,可以适应不同杂散光的干扰;
[0046]
(2)实时性高。算法的执行流程主要包括两次腐蚀膨胀以及背景减除、质心计算操作,算法复杂度低,易于在嵌入式平台实现。
附图说明
[0047]
图1为工作流程示意图;
[0048]
图2为水平和垂直方向阈值判断示意图;
[0049]
图3为4连通域示意图;
[0050]
图4为带阈值的质心法示意图;
[0051]
图5带杂散光干扰的星图image;
[0052]
图6杂光抑制后的星图image3;
[0053]
图7二值化后的星图image4;
[0054]
图8噪声抑制后的星图image5;
[0055]
图9在image3中标记提取到的星点。
具体实施方式
[0056]
下面结合附图以及具体实施方式进一步说明本发明。
[0057]
结合图1,本发明适用于一种适应杂散光干扰的星点提取算法,具体步骤如下:
[0058]
步骤1:如图5所示,输入带杂散光干扰的星图image;
[0059]
步骤2:杂光抑制。首先进行高亮像素的统一化,将星图中灰度值大于阈值moon_seg的像素均设置为固定值moon_seg,得到图像image1;
[0060]
[0061]
考虑到星点目标通常尺寸较小,而且杂散光呈现大面积、连续性的特点,因此采用大模板下的先腐蚀、后膨胀的操作先消除星点等小目标,得到图像image2。
[0062][0063]
其中se1为腐蚀模板;se2为膨胀模板;为腐蚀操作;为膨胀操作,
[0064]
如图6所示,通过背景减除的方式,可以获得杂光抑制后的图像image3:
[0065]
image3=image2-image1
[0066]
其中,对于减除后为负值的像素统一设置为0。
[0067]
步骤3:星图二值化。如图2所示,从水平和垂直两个维度方向出发,分别判断中心像素之和与边缘像素之和是否同时满足阈值关系:
[0068]
8*(m0 m1 m2)>3*(e1 e2 e3 e4 e5 e6 e7 e8) line_thred
[0069]
8*(m0 m3 m4)>3*(f1 f2 f3 f4 f5 f6 f7 f8) line_thred
[0070]
其中,m0,m1,m2为水平方向中心3像素;m0,m3,m4为垂直方向中心3像素;e1~e8为水平方向两侧边缘的像素;f1~f8为垂直方向两侧边缘的像素;line_thred为阈值,
[0071]
对于满足阈值关系的像素进行二值化处理,等到整张星图遍历完成后,如图7所示,即可得到二值化星图image4;
[0072]
步骤4:噪声抑制。如图8所示,采用小模板下的腐蚀和膨胀操作,进一步抑制单像元噪声。
[0073][0074]
步骤5:星点标记。如图3所示,星点标记采用基于前序像素的4连通域法进行连通域标记。前序像素表示当前像素行的前一列像素以及上一行的像素,利用当前像素和前序像素之间的关系进行连通域的划分。如果同时满足条件:
[0075]
x(i,j)>0&x(i-1,j-1)=0&x(i-1,j)=0&x(i-1,j 1)=0&x(i,j-1)=0
[0076]
则标记为新的连通域a(i,j)且标记号为m。
[0077]
而对于x(i,j)>0且前序像素中有一个像素不为0,则选取前序像素中连通域c(i,j)标记号m的最大值作为当前像素对应的连通域标记号。并且在遍历整张图像的过程中,需要计算相同连通域的星点灰度累加和g(c)以及x方向的灰度与坐标加权值x(c)、y方向的灰度与坐标加权值y(c):
[0078]
g(c(i,j))=g(c(i,j)) image5(i,j)
[0079]
x(c(i,j))=x(c(i,j)) i
×
image5(i,j)
[0080]
y(c(i,j))=y(c(i,j)) j
×
image5(i,j)
[0081]
其中,c(i,j)表示坐标位置为(i,j)的像素点所属于的连通域;g(c(i,j))表示连通域c(i,j)的灰度累加和,image5(i,j)表示坐标位置为(i,j)的像素点对应的灰度值;x(c(i,j))表示连通域c(i,j)的灰度与水平坐标i的乘积的累加和;y(c(i,j))表示连通域c(i,j)的灰度与垂直坐标j的乘积的累加和;
[0082]
当整张图像遍历完成后,可以计算粗质心位置:
[0083]
[0084][0085]
其中,x(n)表示第n个连通域对应的灰度与水平坐标的乘积的累加和;y(n)表示第n个连通域对应的灰度与垂直坐标的乘积的累加和;g(n)表示第n个连通域对应的灰度累加和;starx
(n)
和stary
(n)
表示第n个连通域计算到的粗质心坐标;步骤6:利用步骤6计算到的粗质心坐标,在原始图像image1中计算精确坐标。以粗质心取整后的坐标为原点,计算15*15区域内的星点质心坐标。
[0086]
如图4所示,计算方法采用带阈值的质心法,图4中m表示中心区域图像,n表示边缘区域图像。先计算边缘区域共56个像素的平均灰度值作为背景值b,然后利用14*14中心区域内各个像素值减去背景值b,再与星点的坐标值相乘,即可求得精确坐标(x0,y0):
[0087][0088][0089][0090]
图5为输入的带杂散光干扰的星图,图9为通过本发明方法提取到的星点在杂光抑制后星图上标记的效果。可以看出利用本发明方法可以有效的在杂光干扰的情况下提出星点目标,其中包括一部分被杂散光掩盖的亮星。而且本发明方法在杂光区域没有提取到虚假目标。可以证明本发明所述星点提取算法具有较好的提取能力和鲁棒性。
[0091]
本发明未详细阐述部分属于本领域公知技术。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表