CN114255349A - 一种全天时星敏感器实时星点提取方法 - Google Patents
一种全天时星敏感器实时星点提取方法 Download PDFInfo
- Publication number
- CN114255349A CN114255349A CN202111349656.0A CN202111349656A CN114255349A CN 114255349 A CN114255349 A CN 114255349A CN 202111349656 A CN202111349656 A CN 202111349656A CN 114255349 A CN114255349 A CN 114255349A
- Authority
- CN
- China
- Prior art keywords
- pixel
- current
- row
- star
- connected domain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000605 extraction Methods 0.000 title claims abstract description 28
- 238000000034 method Methods 0.000 claims abstract description 68
- 238000012545 processing Methods 0.000 claims abstract description 18
- 238000003860 storage Methods 0.000 claims description 50
- 238000005096 rolling process Methods 0.000 claims description 19
- 238000003384 imaging method Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000005484 gravity Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 14
- 238000009826 distribution Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000007797 corrosion Effects 0.000 description 1
- 238000005260 corrosion Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/02—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by astronomical means
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Astronomy & Astrophysics (AREA)
- Automation & Control Theory (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种全天时星敏感器实时星点提取方法,首先将原始图像数据的格式转换成AXI Stream的流媒体格式,以实现流水线过程的速率控制;以TopHat算法为核心进行星点图像与背景图像的剥离;利用邻域的灰度均值信息进行局部法提取有效的星点区域;最后再通过流水线顺序遍历的连通域标记方法得到图像上星点的准确质心位置;一方面,该方法相比简单的全局方法具有较强的背景噪声抗性,能够在白昼高背景干扰的情况下实现天体的稳定捕获;另一方面,本发明的全天时星敏感器星点提取方法还可以借助高阶综合编译工具在FPGA平台上得以以流水线处理的形式实现。
Description
技术领域
本发明属于绝对姿态测量领域,尤其涉及一种全天时星敏感器实时星点提取方法。
背景技术
全天时星敏感器旨在解决全天时条件下高精度天文位姿测量的问题,昼间天文观测时剧烈的天空背景照射引起的极低信噪比是该装置的关键技术难点。在光机硬件上,全天时星敏感器普遍采用了小探测视场和偏红外探测谱段的设计。实际观测结果表明,纵使采用角分级的视场和短波红外的探测谱段,天体成像的信噪比仍然较低。为弥补小视场的光机设计,全天时星敏感器采用伺服式寻星动态观测多个指向上的不同天体。这就要求每次观测图像的星点提取必须实时快速。
关于适用于全天时星敏感器的星点提取方法,尚未有公开专利。
根据相关检索,目前全天时星敏感器的星点提取方法分为两类。一类沿袭自传统星敏感器,采用全局阈值分割的方法将星点从背景中分割出来。虽然一些改进方法会根据图像统计信息对阈值进行实时调整,但在复杂背景下星点的实际提取效果并不理想。另一类方法以天体成像光斑的灰度梯度分布为特征进行目标提取,这类方法需要进行大量的数值计算。数值计算则依赖于DSP、ARM等嵌入式处理器,运算串行执行,运算耗时长,方法实时性差。而改用多核嵌入式处理器虽然能提高运算效率,但内存共享调度机制难以满足并行计算的需求。
综上所述,目前还没有一种针对全天时条件下复杂强烈天空背景中星点实时提取的方法。现有的处理方法或过于简单对背景干扰的抗性不足,或数值计算量较大且依赖于嵌入式处理器的顺序运算执行而导致运行时间过长,无法满足实时观测需求。
发明内容
为解决上述问题,本发明提供一种全天时星敏感器实时星点提取方法,能够在白昼高背景干扰的情况下实现星点区域的稳定捕获。
一种全天时星敏感器实时星点提取方法,包括以下步骤:
S1:将星敏感器成像端获取的原始星图数据的格式转换为AXI Stream的流媒体格式后,再采用TopHat算法对格式转换后的星图数据进行背景去噪处理,得到背景滤除后的星图;
S2:将背景滤除后的星图经过盒装滤波器后得到一幅均值图像,将均值图像的各像元分别作为中心像元,并根据中心像元的灰度均值是否大于其任一斜四邻域的灰度均值来判断当前中心像元是否为星点像元;
S3:根据各星点像元所在行和所在列是否相邻来实现星点像元的连通域划分;
S4:采用重心法获取各个连通域所表征的星点区域的坐标。
进一步地,在判断当前中心像元是否为星点像元时,其斜四邻域像元在内存中的调用方法如下:
构建一个包括七个缓存行的滚动存储结构,且所述滚动存储结构的缓存行号按照0~6进行编号,滚动存储结构用于存储均值图像上当前中心像元所在行的像元、当前中心像元所在行的前三行像元以及后三行像元;其中,若当前中心像元为其所在行的最后一个像元且当前中心像元已完成是否为星点像元的判断后,将排在当前中心像元所在行前面的第三行像元所在的缓存行进行清空,并将当前中心像元所在行的下一行作为下一个中心像元的所在行,还将排在下一个中心像元的所在行后面的第三行像元存储于被清空的缓存行中,并将该缓存行的行号记为k;
按照如下公式获取当前中心像元及其斜四邻域像元在滚动存储结构中的缓存行号:
rdown=k
其中,k为存储有排在当前中心像元所在行后面的第三行像元的缓存行号,rmid为当前中心像元所在行的缓存行号,rup为当前中心像元所在行的左上邻域像元和右上邻域像元的缓存行号,rdown为当前中心像元所在行的左下邻域像元和右下邻域像元的缓存行号;
按照如下公式获取当前中心像元及其斜四邻域像元在滚动存储结构中的缓存列号:
其中,t为当前中心像元的右上邻域像元和右下邻域像元的缓存列号,cleft为当前中心像元的左上邻域像元和左下邻域像元的缓存列号,cmid为当前中心像元的缓存列号,cright为当前中心像元的右上邻域像元和右下邻域像元的缓存列号;
根据当前中心像元及其斜四邻域像元的缓存行号和缓存列号从滚动存储结构中调用对应的灰度均值,并根据调用的灰度均值来判断当前中心像元是否为星点像元。
进一步地,各星点像元的连通域划分方法为:分别将各星点像元作为当前星点像元执行以下步骤:
S31:判断当前星点像元相对于前一个星点像元是否发生换行,若未换行,则进入步骤S32,若已换行,则将当前星点像元的左侧像元标号leftLabel置0后再进入步骤S33;
S32:判断当前星点像元所在列与前一个星点像元所在列是否相邻,若相邻,则当前星点像元与前一个星点像元属于同一个行连通域,将当前星点像元的左侧像元标号leftLabel设置为与前一个星点像元的左侧像元标号leftLabel相同,然后再进入步骤S34;若不相邻,则将当前星点像元的左侧像元标号leftLabel置0后再进入步骤S34;
S33:判断当前星点像元所在行与前一个星点像元所在行是否相邻,若相邻,则将上一行行连通域区块数lastSectNum设置为前一个星点像元所在行包含的行连通域数量后再进入步骤S34;若不相邻,则将上一行行连通域区块数lastSectNum置0后再进入步骤S34;
S34:判断当前星点像元的左侧像元标号leftLabel是否为0,若不为0,则将当前左侧像元标号leftLabel对应的行连通域的右界更新为当前星点像元的列号curPixCol,然后进入步骤S35;若为0,直接进入步骤S35;
S35:按照设定判据判断当前星点像元是否归属于前一个星点像元所在行包括行连通域,其中,所述设定判据为:上一行行连通域区块数lastSectNum不等于0且当前星点像元的列号curPixCol落入前一个星点像元所在行包含的任意一个行连通域的左界和右界之间;若不归属,进入步骤S37;若归属,将当前星点像元所归属的行连通域记为A,并进入步骤S36;
S36:判断当前星点像元的左侧像元标号leftLabel是否为0,若为0,则当前星点像元仅归属于行连通域A;若不为0,则当前星点像元同时归属于行连通域A和当前左侧像元标号leftLabel对应的行连通域,并判断两个行连通域的标号是否相同,若不相同,则将当前左侧像元标号leftLabel对应的行连通域归属于行连通域A,并将当前星点像元的左侧像元标号leftLabel变换为行连通域A的标号;若相同,则行连通域A和当前左侧像元标号leftLabel对应的行连通域为同一个连通域;
S37:判断当前星点像元的左侧像元标号leftLabel是否为0,若为0,则当前星点像元不归属于已有的行连通域,在当前星点像元所在行建立一个新的行连通域,并获取当前星点像元形成的新的行连通域的左界、右界、行连通域所属标号以及当前星点像元所在行的本行行连通域区块数curSectNum。
进一步地,构建行连通域左界数组leftList、行连通域右界数组rightList、行连通域标号数组labelList,并将行连通域左界数组leftList、行连通域右界数组rightList、行连通域标号数组labelList的存储空间均划分为上一行存储空间和当前行存储空间,分别对应的存储有前一个星点像元所在行和当前星点像元所在行对应的行连通域左界、行连通域右界以及连通域标号,且行连通域左界、行连通域右界以及连通域标号带有用于区分自身属于上一行或当前行的下标;
若当前星点像元相对于前一个星点像元发生换行后,将行连通域左界数组leftList、行连通域右界数组rightList、行连通域标号数组labelList中原本的当前行存储空间作为上一行存储空间,并清空此时的上一行存储空间,将清空后的上一行存储空间作为当前行存储空间,用于存储当前星点像元所在行即将生成的行连通域左界、行连通域右界以及连通域标号。
进一步地,通过交换上一行存储空间和当前行存储空间对应的指针实现两个存储空间所属行之间的切换。
进一步地,分别将各连通域作为当前连通域执行以下步骤:
将当前连通域的各个像元的行号与各自对应的灰度值相乘,再将所有乘积进行求和,得到第一和值;
将当前连通域的各个像元的列号与各自对应的灰度值相乘,再将所有乘积进行求和,得到第二和值;
将各像元的灰度值相加,得到第三和值;
将第一和值与第三和值的比值、第二和值与第三和值的比值作为当前连通域所表征的星点区域的坐标。
进一步地,所述AXI Stream的流媒体格式包括数据端口(TDATA)、数据有效标志(TKEEP)、数据类型标志(TSTRB)、用户定义字段(TUSER)、数据包结尾标志(TLAST)、数据ID字段(TID)、数据路由字段(TDEST)以及总线准备标志(TREADY)。
进一步地,采用白TopHat方法对格式转换后的星图数据进行背景去噪处理。
有益效果:
1、本发明提供一种全天时星敏感器实时星点提取方法,首先将原始图像数据的格式转换成AXI Stream的流媒体格式,以实现流水线过程的速率控制;以TopHat算法为核心进行星点图像与背景图像的剥离;利用邻域的灰度均值信息进行局部法提取有效的星点区域;最后再通过流水线顺序遍历的连通域标记方法得到图像上星点的准确质心位置;一方面,该方法相比简单的全局方法具有较强的背景噪声抗性,能够在白昼高背景干扰的情况下实现天体的稳定捕获;另一方面,本发明的全天时星敏感器星点提取方法还可以借助高阶综合编译工具在FPGA平台上得以以流水线处理的形式实现。
2、本发明提供一种全天时星敏感器实时星点提取方法,首先是对原始图像数据的格式转换,图像传感器或者机芯的原始图像数据格式各异,可以经过FPGA转换成AXIStream总线的图像流格式,由于该总线本身具有流媒体协议控制的信号,可以有效地防止流水线过程中出现的总线速度匹配问题。
3、本发明提供一种全天时星敏感器实时星点提取方法,在星点提取的过程中,针对FPGA平台均进行了必要的硬件优化,以满足嵌入式平台下算法在流水线条件下的正确进行,具体的,设置滚动存储结构,新加进来的数据直接存储于最新清空的缓冲行中,其余数据的存储位置不变,有利于利用FPGA平台进行流水线处理,大大提高了算法的运行效率,质心信息能够在图像输入结束后的几乎同时给出,有效地保证了全天时星敏感器的动态性能,使得本发明能够在FPGA平台上实现全天时条件下星点的提取。
4、本发明提供一种全天时星敏感器实时星点提取方法,采用来自图像形态学中的TopHat算法对格式转换后的星图数据进行背景去噪处理,能够把低频分布的背景从图像中滤除,提高高频分布星点的信噪比。
附图说明
图1为本发明提供的全天时星敏感器实时星点提取方法流程;
图2为本发明提供的背景去噪处理流程;
图3为本发明提供的局部法星点提取流程;
图4为本发明提供的斜四邻域判决示意图;
图5为本发明提供的滚动存储情况下斜四邻域的示意图;
图6为本发明提供的连通域标记及质心定位流程。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本发明提供一种全天时星敏感器实时星点提取方法,借助HLS(高阶综合)编译工具实现拍摄星图图像流格式在FPGA平台上的实时处理。方法先后经过背景去除、星点区域分割、星点质心定位三个步骤。为适配嵌入式并行计算的需求,星点提取方法进行了硬件实现的改进。本方法能够有效地抵抗白昼条件下复杂的天空背景干扰,并且方法的流水线并行运行可以满足全天时星敏感器动态观测对星点提取的实时性需求。
如图1所示,全天时星敏感器星点提取方法包括以下步骤:
S1:将星敏感器成像端获取的原始星图数据的格式转换为AXI Stream的流媒体格式后,再采用TopHat算法对格式转换后的星图数据进行背景去噪处理,得到背景滤除后的星图。
也就是说,本发明首先是对原始图像数据进行格式转换,图像传感器或者机芯的原始图像数据格式各异,需要经过FPGA转换成AXI Stream总线的图像流格式。该总线加入了流媒体协议控制的信号,可以有效地防止流水线过程中出现的总线速度匹配问题。例如,星图数据来自星敏感器前端成像器件或机芯,不同的组件输出格式可能是DVP、Cameralink、LAN等,这些格式的数据按照成像端的固定时序输出。由于本星点提取方法采用流水线模式,在各步骤的处理过程中极易出现速率匹配问题,为此须先将各类输出格式转换为AXI Stream总线的图像流格式。该总线包括数据端口(TDATA)、数据有效标志(TKEEP)、数据类型标志(TSTRB)、用户定义字段(TUSER)、数据包结尾标志(TLAST)、数据ID字段(TID)、数据路由字段(TDEST)和总线准备标志(TREADY)。
进一步地,对格式转换后的星图数据,也即对图像流媒体进行背景去噪处理,其流程核心思想是利用星点在局部区域具有快速灰度递增分布的特征来实现星点和背景目标的分割。本步骤核心的方法来自图像形态学中的TopHat算法,旨在把低频分布的背景从图像中滤除,提高高频分布星点的信噪比。
如图2所示,是星点提取方法的背景去噪处理流程。星图背景被假定是灰度变化缓慢的低频内容,而星点则是高频变化的目标。在此假设前提下可运用白TopHat方法对背景进行滤除:
图像数据按照流媒体形式进行流水线操作,像素信息按照先行后列的次序进入到处理步骤中,整个过程将不进行全图缓存。根据TopHat的计算公式,图像流被分为两个分支:其一依此进行腐蚀操作和膨胀操作,完成图像开运算;其二保持不变即可。两个分支做减法即可得到白TopHat的处理结果。需要说明的是,由于目前星敏感器对星点目标的成像一般为5*5~7*7的像素,背景去噪的模板需要略大于目标,则本发明采用的腐蚀和膨胀均采用9×9的矩形结构元素,因此上述两个步骤各需要8行图像,为了保证到达减运算时两个分支能够同步到达,需要在保持不变的分支上加入流数据缓存,缓存容量不应少于16行图像数据。
S2:将背景滤除后的星图经过盒装滤波器后得到一幅均值图像,将均值图像的各像元分别作为中心像元,并根据中心像元的灰度均值是否大于其任一斜四邻域的灰度均值来判断当前中心像元是否为星点像元。
需要说明的是,本发明是采用局部法在信噪比提升后的图像上进行星点像元提取,其基本思想是比较中心像元邻域与四周的灰度分布差异,如判断各个像元自身邻域灰度均值是否大于周围像元灰度均值,若差异明显则将该像元记为星点区域。如图3所示,原始图像经过3×3盒装滤波器以得到一幅均值图像M和N分别为均值图像的行数和列数。该图像被用来判断灰度分布差异,而经过流数据缓存的原始图像数据Iij则被用来参加后续的星点质心计算。
局部法的核心是均值图像的斜四邻域判断,如图4所示中四周的四个深灰色像元,即为中心像元的斜四邻域;以当前像元Iij为中心的3×3像元区域取均值,即均值图像该位置处的灰度值同理,图4中左上邻域的灰度均值可以使用表示;右上邻域的灰度均值可以使用表示;左下邻域的灰度均值可以使用表示;右下邻域的灰度均值可以使用表示。如果中心区域的灰度均值超过任一斜四邻域一定阈值,则该位置的原始图像灰度Iij和行列信息将被计入星点区域内。
为了提高FPGA平台下的处理效率,本发明采用了一些处理和缓存技巧以保证图像流数据按照流水线的方式输入输出。由图4可知,要完成i行j列的图像判断,则必须已经完成i+3行j+3列的均值图像和原始图像的输出,并且存储有最近7行的图像数据。为了节约存储空间和转存过程所耗费的时间,采用滚动存储结构。
具体的,在判断当前中心像元是否为星点像元时,其斜四邻域像元在内存中的调用方法如下:
如图5所示,构建一个包括七个缓存行的滚动存储结构,且所述滚动存储结构的缓存行号按照0~6进行编号,滚动存储结构用于存储均值图像上当前中心像元所在行的像元、当前中心像元所在行的前三行像元以及后三行像元;其中,若当前中心像元为其所在行的最后一个像元且当前中心像元已完成是否为星点像元的判断后,将排在当前中心像元所在行前面的第三行像元所在的缓存行进行清空,并将当前中心像元所在行的下一行作为下一个中心像元的所在行,还将排在下一个中心像元的所在行后面的第三行像元存储于被清空的缓存行中,并将该缓存行的行号记为k;
按照如下公式获取当前中心像元及其斜四邻域像元在滚动存储结构中的缓存行号:
rdown=k
其中,k为存储有排在当前中心像元所在行后面的第三行像元的缓存行号,rmid为当前中心像元所在行的缓存行号,rup为当前中心像元所在行的左上邻域像元和右上邻域像元的缓存行号,rdown为当前中心像元所在行的左下邻域像元和右下邻域像元的缓存行号;
按照如下公式获取当前中心像元及其斜四邻域像元在滚动存储结构中的缓存列号:
其中,t为当前中心像元的右上邻域像元和右下邻域像元的缓存列号,cleft为当前中心像元的左上邻域像元和左下邻域像元的缓存列号,cmid为当前中心像元的缓存列号,cright为当前中心像元的右上邻域像元和右下邻域像元的缓存列号;
根据当前中心像元及其斜四邻域像元的缓存行号和缓存列号从滚动存储结构中调用对应的灰度均值,并根据调用的灰度均值来判断当前中心像元是否为星点像元。
S3:根据各星点像元所在行和所在列是否相邻来实现星点像元的连通域划分。
需要说明的是,由局部法星点提取获得的星点图像信息包含灰度、行号、列号3维信息,随着流水线操作按照先行后列、从左上至右下的次序送入本步骤处理。同时,各星点像元从行号和列号来看,不是全部连续的,可能成断断续续或者单个独立分布,因此本步骤意在将这些图像信息按照连通域分组,并将其相关中间变量存储下来以进行质心定位。
本连通域标记方法主要应用到如下中间变量进行处理:
(1)单像元类变量
前一星点像元行号prePixRow
前一星点像元列号prePixCol
当前星点像元行号curPixRow
当前星点像元列号curPixCol
当前星点像元灰度curPixHui
左侧像元所属的连通域的标号leftLabel,其中,每个不同的连通域具有不同的标号,可以按发现顺序依次编号,leftLabel=0表示左侧像元不属于任何连通域。
(2)行信息变量
行连通域左界数组(包括本行和上一行)leftList,其中,行连通域左界数组存储的是两行像元包含的各个行连通域最左边像元的列号;
行连通域右界数组(包括本行和上一行)rightList,其中,行连通域右界数组存储的是两行像元包含的各个行连通域最右边像元的列号;
行连通域标号数组(包括本行和上一行)labelList,其中,行连通域标号数组存储的是两行像元所形成的各个行连通域所属的大连通域的编号;
本行行连通域区块数curSectNum,表示本行包含的行连通域个数;
上一行行连通域区块数lastSectNum,表示上一行包含的行连通域个数;
(3)连通域信息变量
最新连通域标号latestSectNum
x坐标与灰度乘积的求和量sectXHui
y坐标与灰度乘积的求和量sectYHui
灰度求和量sectHui
当前连通区域像素数量sectPixNum
下面对连通域标记过程进行描述:
如图6所示,各星点像元的连通域划分方法为:分别将各星点像元作为当前星点像元执行以下步骤:
S31:根据当前星点像元的行号curPixRow与前一个星点像元的行号prePixRow是否相同来判断当前星点像元相对于前一个星点像元是否发生换行,若未换行,则进入步骤S32;若已换行,则将当前星点像元的左侧像元标号leftLabel置0后再进入步骤S33(说明此时当前星点像元的左侧没有像元,更不会有被选作星点区域的像元);
S32:若未发生换行,则判断当前星点像元所在列与上一个星点像元所在列是否相邻,如果相邻(说明当前星点像元有可能与上一个星点像元属于同一个连通域),则将当前星点像元的左侧像元标号leftLabel设置为与上一个星点像元的左侧像元标号leftLabel相同(例如上一个星点元的左侧像元标号leftLabel设置为2,说明上一个星点像元的左侧像元、上一个星点像元以及当前星点像元都属于2号连通域),并进入步骤S34;如果不相邻,则将当前星点像元的左侧像元标号leftLabel置0(即不作标记、清空,同时说明此时当前星点像元的左侧不是被选作星点区域的像元),再进入步骤S34;
S33:若发生换行,则清空行连通域左界数组leftList、行连通域右界数组rightList、行连通域标号数组labelList中的上一行存储空间,且空出来的存储空间作为当前行存储空间,用于存储当前星点像元所在行即将生成的连通域左界、连通域右界以及连通域标号,同时,将行连通域左界数组leftList、行连通域右界数组rightList、行连通域标号数组labelList中原本作为当前行存储空间的存储空间作为上一行存储空间,原本作为当前行对应的行连通域左界、行连通域右界以及行连通域标号的存储空间变为上一行对应的行连通域左界、行连通域右界以及行连通域标号;同时,清空原本存储上一行行连通域区块数lastSectNum的存储空间,将其用于存储当前星点像元所在行即将生成的行连通域区块数,原本作为当前行对应的当前行行连通域区块数lastSectNum的存储空间变为上一行行连通域区块数lastSectNum的存储空间;
判断当前像元所在行与此时上一行存储空间中存储的上一行的行号是否相邻,如果相邻,则上一行行连通域区块数lastSectNum设置为前一个星点像元所在行包含的行连通域数量后再进入步骤S34;如果不相邻,则将上一行行连通域区块数lastSectNum置0,再进入步骤S34;
S34:判断当前星点像元的左侧像元标号是否为0,如果不为0(有标记,例如为2),则把当前星点像元的信息(即原始图像灰度Iij和行列信息)加入到x坐标与灰度乘积的求和量数组sectXHui、y坐标与灰度乘积的求和量数组sectYHui、灰度求和量数组sectHui与当前左侧像元标号对应的那个行连通域中(例如当前左侧像元标号为2,则把当前星点像元归属为2号行连通域),并且将当前行连通区域像素数量sectPixNum这个数组中,当前左侧像元标号对应的连通域的像素数量自增1(仍以2举例,则2号行连通域的像元数量加1),还要把行连通域右界数组rightList中当前左侧像元标号对应的行连通域的右界的值更新为当前星点像元的列号curPixCol(也就是说,仍以2举例,则当前星点像元是2号行连通域更右边的一个像元,则需要更新2号行连通域右界的值),然后进入步骤S35(由于当前星点像元有可能既属于左侧行连通域又属于上层行连通域,因此本步骤当前星点像元虽然已找到其所属的左侧行连通域了,还要进入步骤S35判断当前星点像元是否也属于上层行连通域,即判断左侧行连通域和上层行连通域是否实际为同一个大连通域);
如果为0(说明当前星点像元的左边没有跟它相关的行连通域,需要进入步骤S35判断是否属于上一行的行连通域),则直接进入步骤S35;
S35:按照设定判据判断当前星点像元是否归属于前一个星点像元所在行包括行连通域,其中,所述设定判据为:上一行行连通域区块数lastSectNum不等于0(说明当前星点像元所在行与上一行相邻,当前星点像元有可能落入上层连通域中),当前星点像元的列号curPixCol落入前一个星点像元所在行包含的任意一个行连通域的左界和右界之间;若不归属,进入步骤S37;若归属,将当前星点像元所归属的行连通域记为A,并进入步骤S36;
S36:判断当前星点像元的左侧像元标号leftLabel是否为0,若leftLabel为0(即无标记,也说明当前星点像元左侧没有行连通域,则不涉及与上层连通域融合的问题),则当前星点像元仅归属于行连通域A,把当前星点像元的信息(即原始图像灰度Iij和行列信息)加入到x坐标与灰度乘积的求和量数组sectXHui、y坐标与灰度乘积的求和量数组sectYHui、灰度求和量数组sectHui与行连通域A对应的那个连通域中,并且将当前连通区域像素数量sectPixNum这个数组中,A连通域的像素数量自增1;
若leftLabel不为0(即有标记,假设为2,则涉及左侧连通域与上层连通域的融合问题),则当前星点像元同时归属于行连通域A和当前左侧像元标号leftLabel对应的行连通域,并判断两个行连通域的标号是否相同,若不相同,则将当前左侧像元标号leftLabel对应的行连通域归属于行连通域A,并将当前星点像元的左侧像元标号leftLabel变换为行连通域A的标号,具体的,将sectXHui、sectYHui、sectHui、sectPixNum数组中左侧连通域标号的对应内容加入到上连通域A标号对应的数据中;若相同,则行连通域A和当前左侧像元标号leftLabel对应的行连通域为同一个连通域;
S37:判断当前星点像元的左侧像元标号leftLabel是否为0,若为0,则当前星点像元不归属于已有的行连通域,在当前星点像元所在行建立一个新的行连通域,并获取当前像元形成的新的行连通域的左界、右界、行连通域所属标号以及当前像元所在行的本行行连通域区块数curSectNum,还要将该部分信息存储到行连通域左界数组leftList、行连通域右界数组rightList、行连通域标号数组labelList划定的当前行存储空间中;
至此,完成寻找当前像元的所属连通域的全部判断,再判断下一个像元的连通域;完成所有像元的连通域判断后,得到最终的sectXHui、sectYHui、sectHui、sectPixNum数组。
由此可见,本发明在连通域标记及质心定位过程中,输入的是星点提取方法得到的全部像元信息(行号、列号、灰度值),根据位置的相对关系进行连通域标记。整个判断流程根据左连通域和上行的连通域分布进行全图连通域信息的迭代更新,方法快捷简单且对于形状任意凹凸的目标均适用。
S4:采用重心法获取各个连通域所表征的星点区域的坐标。
具体的,遍历全部的sectXHui、sectYHui和sectHui,找到非空的数组项,假设里面有8个连通域,分别将每一个连通域作为当前连通域执行以下步骤:
将sectXHui、sectYHui和sectHui数组中提取出属于当前连通域的各个像元的信息,将各像元的行号与各自对应的灰度值相乘,再将所有乘积进行求和,得到第一和值;
将各像元的列号与各自对应的灰度值相乘,再将所有乘积进行求和,得到第二和值;
将各像元的灰度值相加,得到第三和值;
将第一和值与第三和值的比值、第二和值与第三和值的比值作为当前连通域所表征的星点区域的坐标,即可得到全部质心的亚像素细分位置。
本全天时星敏感器星点提取方法借助高阶综合编译工具在FPGA平台上得以以流水线处理的形式实现。本方法首先将原始图像数据的格式转换成AXI Stream的流媒体格式,以实现流水线过程的速率控制;以TopHat算法为核心进行星点图像与背景图像的剥离;利用邻域的灰度均值信息进行局部法提取有效的星点区域;最后再通过流水线顺序遍历的连通域标记方法得到图像上星点的准确质心位置。在星点提取的过程中,各步骤针对FPGA平台均进行了必要的硬件优化,以满足嵌入式平台下算法在流水线条件下的正确进行。
本方法在FPGA平台上实现了全天时条件下星点的提取。一方面,该方法相比简单的全局方法具有较强的背景噪声抗性,能够在白昼高背景干扰的情况下实现天体的稳定捕获;另一方面,该方法利用FPGA平台进行流水线处理,大大提高了算法的运行效率,质心信息能够在图像输入结束后的几乎同时给出,有效地保证了全天时星敏感器的动态性能。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当然可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种全天时星敏感器实时星点提取方法,其特征在于,包括以下步骤:
S1:将星敏感器成像端获取的原始星图数据的格式转换为AXI Stream的流媒体格式后,再采用TopHat算法对格式转换后的星图数据进行背景去噪处理,得到背景滤除后的星图;
S2:将背景滤除后的星图经过盒装滤波器后得到一幅均值图像,将均值图像的各像元分别作为中心像元,并根据中心像元的灰度均值是否大于其任一斜四邻域的灰度均值来判断当前中心像元是否为星点像元;
S3:根据各星点像元所在行和所在列是否相邻来实现星点像元的连通域划分;
S4:采用重心法获取各个连通域所表征的星点区域的坐标。
2.如权利要求1所述的一种全天时星敏感器实时星点提取方法,其特征在于,在判断当前中心像元是否为星点像元时,其斜四邻域像元在内存中的调用方法如下:
构建一个包括七个缓存行的滚动存储结构,且所述滚动存储结构的缓存行号按照0~6进行编号,滚动存储结构用于存储均值图像上当前中心像元所在行的像元、当前中心像元所在行的前三行像元以及后三行像元;其中,若当前中心像元为其所在行的最后一个像元且当前中心像元已完成是否为星点像元的判断后,将排在当前中心像元所在行前面的第三行像元所在的缓存行进行清空,并将当前中心像元所在行的下一行作为下一个中心像元的所在行,还将排在下一个中心像元的所在行后面的第三行像元存储于被清空的缓存行中,并将该缓存行的行号记为k;
按照如下公式获取当前中心像元及其斜四邻域像元在滚动存储结构中的缓存行号:
rdown=k
其中,k为存储有排在当前中心像元所在行后面的第三行像元的缓存行号,rmid为当前中心像元所在行的缓存行号,rup为当前中心像元所在行的左上邻域像元和右上邻域像元的缓存行号,rdown为当前中心像元所在行的左下邻域像元和右下邻域像元的缓存行号;
按照如下公式获取当前中心像元及其斜四邻域像元在滚动存储结构中的缓存列号:
其中,t为当前中心像元的右上邻域像元和右下邻域像元的缓存列号,cleft为当前中心像元的左上邻域像元和左下邻域像元的缓存列号,cmid为当前中心像元的缓存列号,cright为当前中心像元的右上邻域像元和右下邻域像元的缓存列号;
根据当前中心像元及其斜四邻域像元的缓存行号和缓存列号从滚动存储结构中调用对应的灰度均值,并根据调用的灰度均值来判断当前中心像元是否为星点像元。
3.如权利要求1所述的一种全天时星敏感器实时星点提取方法,其特征在于,各星点像元的连通域划分方法为:分别将各星点像元作为当前星点像元执行以下步骤:
S31:判断当前星点像元相对于前一个星点像元是否发生换行,若未换行,则进入步骤S32,若已换行,则将当前星点像元的左侧像元标号leftLabel置0后再进入步骤S33;
S32:判断当前星点像元所在列与前一个星点像元所在列是否相邻,若相邻,则当前星点像元与前一个星点像元属于同一个行连通域,将当前星点像元的左侧像元标号leftLabel设置为与前一个星点像元的左侧像元标号leftLabel相同,然后再进入步骤S34;若不相邻,则将当前星点像元的左侧像元标号leftLabel置0后再进入步骤S34;
S33:判断当前星点像元所在行与前一个星点像元所在行是否相邻,若相邻,则将上一行行连通域区块数lastSectNum设置为前一个星点像元所在行包含的行连通域数量后再进入步骤S34;若不相邻,则将上一行行连通域区块数lastSectNum置0后再进入步骤S34;
S34:判断当前星点像元的左侧像元标号leftLabel是否为0,若不为0,则将当前左侧像元标号leftLabel对应的行连通域的右界更新为当前星点像元的列号curPixCol,然后进入步骤S35;若为0,直接进入步骤S35;
S35:按照设定判据判断当前星点像元是否归属于前一个星点像元所在行包括行连通域,其中,所述设定判据为:上一行行连通域区块数lastSectNum不等于0且当前星点像元的列号curPixCol落入前一个星点像元所在行包含的任意一个行连通域的左界和右界之间;若不归属,进入步骤S37;若归属,将当前星点像元所归属的行连通域记为A,并进入步骤S36;
S36:判断当前星点像元的左侧像元标号leftLabel是否为0,若为0,则当前星点像元仅归属于行连通域A;若不为0,则当前星点像元同时归属于行连通域A和当前左侧像元标号leftLabel对应的行连通域,并判断两个行连通域的标号是否相同,若不相同,则将当前左侧像元标号leftLabel对应的行连通域归属于行连通域A,并将当前星点像元的左侧像元标号leftLabel变换为行连通域A的标号;若相同,则行连通域A和当前左侧像元标号leftLabel对应的行连通域为同一个连通域;
S37:判断当前星点像元的左侧像元标号leftLabel是否为0,若为0,则当前星点像元不归属于已有的行连通域,在当前星点像元所在行建立一个新的行连通域,并获取当前星点像元形成的新的行连通域的左界、右界、行连通域所属标号以及当前星点像元所在行的本行行连通域区块数curSectNum。
4.如权利要求3所述的一种全天时星敏感器实时星点提取方法,其特征在于,构建行连通域左界数组leftList、行连通域右界数组rightList、行连通域标号数组labelList,并将行连通域左界数组leftList、行连通域右界数组rightList、行连通域标号数组labelList的存储空间均划分为上一行存储空间和当前行存储空间,分别对应的存储有前一个星点像元所在行和当前星点像元所在行对应的行连通域左界、行连通域右界以及连通域标号,且行连通域左界、行连通域右界以及连通域标号带有用于区分自身属于上一行或当前行的下标;
若当前星点像元相对于前一个星点像元发生换行后,将行连通域左界数组leftList、行连通域右界数组rightList、行连通域标号数组labelList中原本的当前行存储空间作为上一行存储空间,并清空此时的上一行存储空间,将清空后的上一行存储空间作为当前行存储空间,用于存储当前星点像元所在行即将生成的行连通域左界、行连通域右界以及连通域标号。
5.如权利要求4所述的一种全天时星敏感器实时星点提取方法,其特征在于,通过交换上一行存储空间和当前行存储空间对应的指针实现两个存储空间所属行之间的切换。
6.如权利要求1所述的一种全天时星敏感器实时星点提取方法,其特征在于,分别将各连通域作为当前连通域执行以下步骤:
将当前连通域的各个像元的行号与各自对应的灰度值相乘,再将所有乘积进行求和,得到第一和值;
将当前连通域的各个像元的列号与各自对应的灰度值相乘,再将所有乘积进行求和,得到第二和值;
将各像元的灰度值相加,得到第三和值;
将第一和值与第三和值的比值、第二和值与第三和值的比值作为当前连通域所表征的星点区域的坐标。
7.如权利要求1所述的一种全天时星敏感器实时星点提取方法,其特征在于,所述AXIStream的流媒体格式包括数据端口(TDATA)、数据有效标志(TKEEP)、数据类型标志(TSTRB)、用户定义字段(TUSER)、数据包结尾标志(TLAST)、数据ID字段(TID)、数据路由字段(TDEST)以及总线准备标志(TREADY)。
8.如权利要求1所述的一种全天时星敏感器实时星点提取方法,其特征在于,采用白TopHat方法对格式转换后的星图数据进行背景去噪处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111349656.0A CN114255349A (zh) | 2021-11-15 | 2021-11-15 | 一种全天时星敏感器实时星点提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111349656.0A CN114255349A (zh) | 2021-11-15 | 2021-11-15 | 一种全天时星敏感器实时星点提取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114255349A true CN114255349A (zh) | 2022-03-29 |
Family
ID=80792495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111349656.0A Pending CN114255349A (zh) | 2021-11-15 | 2021-11-15 | 一种全天时星敏感器实时星点提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114255349A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115375695A (zh) * | 2022-10-27 | 2022-11-22 | 之江实验室 | 一种动态星敏感器暗弱恒星光斑的检测方法及装置、介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106651904A (zh) * | 2016-12-02 | 2017-05-10 | 北京空间机电研究所 | 一种宽尺寸范围多空间目标捕获跟踪方法 |
CN107504966A (zh) * | 2017-07-10 | 2017-12-22 | 北京控制工程研究所 | 一种白昼有云环境下导航星星点提取的方法 |
CN108716916A (zh) * | 2018-05-31 | 2018-10-30 | 北京航空航天大学 | 一种基于超级块的分布式并行星点质心提取方法及fpga实现装置 |
CN109949204A (zh) * | 2019-03-29 | 2019-06-28 | 江苏亿通高科技股份有限公司 | 流水线结构的星点质心提取电路 |
CN112270704A (zh) * | 2020-10-26 | 2021-01-26 | 吉林大学 | 一种基于数据链表结构的星点质心提取方法 |
-
2021
- 2021-11-15 CN CN202111349656.0A patent/CN114255349A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106651904A (zh) * | 2016-12-02 | 2017-05-10 | 北京空间机电研究所 | 一种宽尺寸范围多空间目标捕获跟踪方法 |
CN107504966A (zh) * | 2017-07-10 | 2017-12-22 | 北京控制工程研究所 | 一种白昼有云环境下导航星星点提取的方法 |
CN108716916A (zh) * | 2018-05-31 | 2018-10-30 | 北京航空航天大学 | 一种基于超级块的分布式并行星点质心提取方法及fpga实现装置 |
CN109949204A (zh) * | 2019-03-29 | 2019-06-28 | 江苏亿通高科技股份有限公司 | 流水线结构的星点质心提取电路 |
CN112270704A (zh) * | 2020-10-26 | 2021-01-26 | 吉林大学 | 一种基于数据链表结构的星点质心提取方法 |
Non-Patent Citations (1)
Title |
---|
秦天沐;王伟东;王海涌;刘佳琪;: "实时星图预处理的并行流水线算法", 半导体光电, no. 02, 15 April 2017 (2017-04-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115375695A (zh) * | 2022-10-27 | 2022-11-22 | 之江实验室 | 一种动态星敏感器暗弱恒星光斑的检测方法及装置、介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113450307B (zh) | 一种产品边缘缺陷检测方法 | |
CN105761288B (zh) | 一种基于fpga的实时星点质心定位方法及装置 | |
CN110782477A (zh) | 基于序列图像的运动目标快速检测方法、计算机视觉*** | |
CN109740665A (zh) | 基于专家知识约束的遮挡图像船只目标检测方法及*** | |
CN102278990A (zh) | 基于fpga的星敏感器图像处理方法 | |
CN108716916B (zh) | 一种基于超级块的分布式并行星点质心提取方法及fpga实现装置 | |
CN104143186A (zh) | 一种slic超像素分块优化方法 | |
CN114255349A (zh) | 一种全天时星敏感器实时星点提取方法 | |
CN111294520B (zh) | 一种基于fpga的实时幸运成像方法及*** | |
CN113313047A (zh) | 一种基于车道结构先验的车道线检测方法及*** | |
CN116091574A (zh) | 一种基于平面约束与位置约束的3d目标检测方法及*** | |
CN112766102A (zh) | 一种基于空谱特征融合的无监督高光谱视频目标跟踪方法 | |
CN105405152B (zh) | 基于结构化支持向量机的自适应尺度目标跟踪方法 | |
CN105046713A (zh) | 一种基于形态学的鲁棒的星点分割方法与fpga实现装置 | |
CN116664892A (zh) | 基于交叉注意与可形变卷积的多时相遥感图像配准方法 | |
CN113486819A (zh) | 一种基于YOLOv4算法的船舶目标检测方法 | |
CN110246201B (zh) | 一种基于线程级并行的铅笔画生成方法 | |
CN111507340A (zh) | 一种基于三维点云数据的目标点云数据提取方法 | |
CN110321888A (zh) | 一种基于fpga的星载红外小目标检测方法 | |
CN114170596A (zh) | 姿态识别方法、装置、电子设备、工程机械和存储介质 | |
CN113435266A (zh) | 基于极值点特征增强的fcos智能目标检测方法 | |
CN110569853B (zh) | 一种基于目标定位的独立公式的分割方法 | |
Ling et al. | Flowacc: Real-time high-accuracy dnn-based optical flow accelerator in fpga | |
CN106709977A (zh) | 一种基于场景夜景图的光源自动排列方法 | |
CN116403200A (zh) | 基于硬件加速的车牌实时识别*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |