APP下载

一种采用行列聚类并行的星像坐标提取方法

2021-02-03周建涛武延鹏

导航定位与授时 2021年1期
关键词:星图像素点进程

苏 畅,王 立,郑 然,周建涛,武延鹏

(北京控制工程研究所空间光电测量与感知实验室,北京 100190)

0 引言

星敏感器作为一种高精度姿态测量敏感器被广泛应用于各类航天器中[1]。根据星敏感器的工作流程可知,获取星像坐标占了绝大部分时间,因此为了提高星敏感器的数据更新率,必须减少星像坐标的提取时间[2]。

目前,星敏感器采用的星像坐标提取方法主要有以下两种方式:一种是采用串行模式提取星像坐标;另外一种是采用现场可编程门阵列(Field Programmable Gate Array,FPGA)提取星像坐标[3]。采用串行模式提取星像坐标首先把星图保存在存储器中(SRAM或者DDR),然后处理器从存储器中逐个读取星图中的像素灰度值,利用重心法提取星像坐标,采用这种方式提取坐标需要对同一幅星图进行2次操作,即保存星图到存储器中和从存储器中读取星图,因此增加了提取时间;而且随着星敏感器的图像传感器面阵越大,保存和读取图像的时间也随之增加,提取星像坐标的时间也就越长,然而大面阵图像传感器是星敏感器发展的必然趋势,因此基于串行模式提取星像坐标难以提高星敏感器的数据更新率。为此,文献[3]提出了一种采用FPGA实现星像坐标提取的方法,这种方法不需要把星图保存到存储器中,而是在FPGA获取星图的一个像素后,立刻对该像素进行聚类并实时完成星像坐标提取,提取过程需要对相邻上、左、左上的像素点进行判断、灰度乘法和加法计算,一共需要5个周期才能完成1个像素的处理,即FPGA获取星像坐标的工作频率也至少要设定为探测器像素输出速率的5倍;而随着探测器像素时钟的提高,此时FPGA获取星像坐标的工作频率也需要相应地提高5倍;而FPGA性能有限,且极高频率工作时,稳定性也随之降低,因此采用该方法提取星像坐标也受到了FPGA器件的限制。

基于以上问题,本文提出了一种采用行列聚类并行的星像坐标提取方法,将逐个像素聚类的方式优化成像素队列聚类的方式,在实现对恒星星像坐标实时提取的同时,可以解决文献[3]提出的实时提取星像坐标过程中坐标提取频率是像素输出频率5倍的问题,保证提取坐标过程中每个像素在1个时钟周期处理完,从而使像素输出时钟与星像坐标提取时钟完全匹配。因此,该方法可在探测器高像素输出速率条件下实现对恒星星像坐标的实时提取,不但提高了数据更新率,而且随着FPGA工作频率的降低,星敏感器的稳定性得到大幅提升且功耗也随之减少[4-7],对提高星敏感器工作可靠性具有重要意义。

1 采用行列聚类并行的星像坐标提取方法

采用行列聚类并行的星像坐标提取方法的主要原理为将星象坐标提取过程分为3个进程,分别为行聚类进程、列聚类进程和质心计算进程,3个进程并行工作,当星图数据读出完毕时,完成对该帧星图中星像坐标的提取工作,实时输出星像质心坐标至处理器,供后续模块进行星图识别和姿态解算工作。

行聚类进程工作流程如下:

1)从探测器读取像素点的灰度值,并将该值与滤波后的背景阈值进行比较,若小于背景阈值,则该像素点视为背景,不作处理,等待读取下一个像素点的灰度值;若大于背景阈值,表明其是星像点,记录该像素的灰度I、灰度与列位置的乘积xI等相关信息,转到步骤2)。

2)继续判断下一像素点灰度值是否大于背景阈值,若大于背景阈值,表明该像素点与前一像素点属于同一星像,将灰度I、灰度与列位置的乘积xI累加到步骤1)中的相应寄存器中,并将行块长度等信息进行更新,保持在步骤2);若小于背景阈值,表明该像素点不在其前一像素所属的星像中,表明上一行块行聚类结束,转到步骤3)。

3)将行聚类结束的行块信息灰度和ΣI、灰度与列位置的乘积和ΣxI、灰度与行位置的乘积和ΣyI、行块起始列位置、行块长度以及行块所在行位置等传递给列聚类进程,并触发列聚类进程工作;同时回到步骤1),继续对后面满足要求的像素点进行行聚类。

列聚类进程工作流程如下:

在列聚类进程中,主要对行聚类进程传递的行块信息进行列聚类,并输出完整的星像信息至质心计算进程。具体方法为由于已知行块的灰度和ΣI、灰度与列位置的乘积和ΣxI、灰度与行位置的乘积和ΣyI、行块起始列位置、行块长度以及行块所在行位置,可据此作为判断2个行块是否关联和列聚类是否结束的标志。设行块1的行位置为ROW1,列起始位置为COL_START1,行块长度为ROW_LENGTH1;行块2的行位置为ROW2,列起始位置为COL_START2,行块长度为ROW_LENGTH2,且行块1优先于行块2被探测到。可分为以下情况:

1)若ROW1=ROW2,则表明2个行块位于同一行,且无交集,是2个独立的行块,此时将行块信息按照先后顺序存入先入先出(First In First Out, FIFO)中,等待与其他行块进行列聚类;

2)若ROW1=ROW2-1 AND COL_START2+ROW_LENGTH2

3)若ROW1=ROW2-1 AND COL_START2+ROW_LENGTH2>COL_START1 AND COL_START2

4)若ROW1=ROW2-1且COL_START2>COL_START1+ROW_LENGTH1,则表明行块2在行块1的下一行,位于行块1的右侧且与之无交集,是2个独立的行块,同时说明行块1所在的星像列聚类已完成,已构成完整的星像,并向质心计算进程输出完整的星像信息,此时将行块2存入FIFO中,等待与其他行块进行列聚类;

5)若ROW1

质心计算进程工作流程如下:

在质心计算进程中,主要对列聚类进程传递过来的星像信息进行质心计算,由于已知灰度和ΣΣI、灰度与列位置的乘积和ΣΣxI、灰度与行位置的乘积和ΣΣyI,根据重心法公式即可得到该星像的质心位置。

按照上述流程,在一帧图像读出完毕时,可以依次得到该帧星图中所有星像的质心坐标,将得到的全部星点坐标传递给星图识别与姿态解算模块,进而输出星敏感器光轴在惯性空间的指向。

2 实验结果

选用某型号星敏感器进行实验,实验示意图如图1所示,该星敏感器的处理器采用Microsemi公司某系列的SOC FPGA。FPGA侧主要完成对探测器的驱动、星图数据接收、星像坐标提取等操作,ARM主要完成星图识别和姿态解算。探测器面阵为2048×2448,像素输出速率为120MHz,FPGA内部处理时钟频率为120MHz。下面对FPGA提取结果以及数据更新率进行验证。

图1 实验示意图Fig.1 Schematic diagram of experimental equipment

2.1 坐标提取精度测试

测试方法为将两种方法集成到一个硬件平台上,固定星敏感器与星模拟器相对位置不动,采集1000帧星图,分别采用文献[3]提出的传统星像坐标实时提取方法和本文叙述的星像坐标实时提取方法对这1000帧星图进行坐标提取,并将各自的坐标提取结果输出至上位机。对两种方法的提取结果进行比较,星图中某一恒星星像坐标曲线分别如图2和图3所示。

(a) x方向星点位置

(b) y方向星点位置图2 文献[3]方法坐标计算结果Fig.2 Coordinate calculation results with method presented in Ref[3]

(a) x方向星点位置

(b) y方向星点位置图3 本文叙述方法坐标计算结果Fig.3 Coordinate calculation results with the method presented in this paper

从图2和图3可知,二者对同一恒星星像坐标的计算结果完全相同,这是由于二者均采用重心法[12]进行坐标计算;而不同之处在于,文献[3]提取坐标时处理1个像素需要5个时钟周期,而本文叙述方法由于优化了处理流程,将逐个像素聚类的方式优化成像素队列聚类的方式,处理1个像素仅需要1个时钟周期。所以二者提取的星像坐标标准差均为0.0223像素,即采用本文方法提取的星像坐标精度与文献[3]提取的星像坐标精度一样。

2.2 数据更新率测试

测试方法为在FPGA中设计一个计数器,每1μs增加1个计数值,当坐标提取结束后读取该计数器的值连同当前帧的坐标值一同输出。应用同一硬件平台分别采用文献[3]提出的传统星像坐标实时提取方法和本文叙述的星像坐标实时提取方法,得到的结果如表1和表2所示。

表1 文献[3]方法数据更新率测试结果

表2 本文叙述方法数据更新率测试结果

根据表1可知,采用文献[3]方法提取星像坐标的提取周期稳定在218ms,数据更新率约为4.5Hz,这是因为文献[3]提出的传统实时提取方法处理1个像素需要5个时钟周期,所以在FPGA处理频率设为120MHz的条件下,仅能将探测器的数据读出速率限制为24MHz。而本文叙述方法处理1个像素只需要1个时钟周期,同样在FPGA处理频率设为120MHz的条件下,探测器的数据读出速率能够达到120MHz。从表2可知,星敏感器输出星像坐标的周期稳定在46ms,所以星敏感器的数据更新率能够达到21.7Hz。因此采用本文方法提取星像坐标时,星敏感器的数据更新率明显提高。

从实验结果可以得出,采用行列聚类并行的星像坐标方法提取坐标时,在相同工作频率且不降低星像坐标精度的前提下,提取星像坐标的时间仅为文献[3]叙述方法的21.1%,大大减少了提取星像坐标的时间,为进一步提高星敏感器的数据更新率奠定了基础。

3 结论

采用大面阵图像传感器是星敏感器提高精度的重要手段,也是发展的必然趋势[13-14]。而随着传感器面阵的增加,数据读出时间也必然增加,传统方法难以提高星敏感器的数据更新率。本文叙述方法可在探测器高数据输出速率的条件下,实现对恒星星像坐标的实时提取,并达到1个时钟周期处理完1个像素的目的,与现有的实时提取方法相比,可使星敏感器的数据更新率提高近5倍,因此该方法不但具有实时性,而且具有较好的鲁棒性。

猜你喜欢

星图像素点进程
星图上非线性分数阶微分方程边值问题解的存在唯一性
债券市场对外开放的进程与展望
诗意联结 水漾星图——上海龙湖·星图美学展示中心
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
基于Node-Cell结构的HEVC帧内编码
社会进程中的新闻学探寻
我国高等教育改革进程与反思
Linux僵死进程的产生与避免
天文测量仿真器模拟星图精度分析