CN108716916A - 一种基于超级块的分布式并行星点质心提取方法及fpga实现装置 - Google Patents
一种基于超级块的分布式并行星点质心提取方法及fpga实现装置 Download PDFInfo
- Publication number
- CN108716916A CN108716916A CN201810543754.XA CN201810543754A CN108716916A CN 108716916 A CN108716916 A CN 108716916A CN 201810543754 A CN201810543754 A CN 201810543754A CN 108716916 A CN108716916 A CN 108716916A
- Authority
- CN
- China
- Prior art keywords
- star
- subgraph
- label
- boundary
- block
- 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.)
- Granted
Links
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
- G01C21/025—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by astronomical means with the use of startrackers
-
- 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/20—Instruments for performing navigational calculations
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Physics & Mathematics (AREA)
- Astronomy & Astrophysics (AREA)
- Image Processing (AREA)
Abstract
本发明公开一种基于超级块的分布式并行星点质心提取方法及FPGA实现装置,包括:根据星敏感器中所使用的图像传感器的参数和硬件平台(FPGA)的综合速度,选择最优的方式将星图划分为多个子图并行处理,采用基于超级块的方法对每个子图中完整存在的星(子图星)完成质心提取,采用分布式共享存储器结构对存在于相邻子图中的星(边界星)完成质心提取,利用FPGA并行流水线运算体系结构设计中的优势,完成基于FPGA的实现装置。本发明适用于星敏感器中提高星点质心提取的速度,以满足各种高分辨率或者高帧频的图像传感器在星敏感器中使用的星图处理速度的需求,从而达到提高星敏感器姿态精度与姿态更新率的目的。
Description
技术领域
本发明涉及星敏感器中星点质心定位技术领域,具体涉及一种基于超级块的分布式并行星点质心提取方法及FPGA实现装置。
背景技术
星敏感器作为具有最高精度的姿态测量设备而广泛应用于飞行器中。随着星敏感器应用范围的扩大,如飞机,迅捷卫星和空间武器,对于其姿态精度与姿态更新率的需求也迅速提升。
为了提升星敏感器的姿态精度与姿态更新率,多种多样的高性能的图像传感器被应用在星敏感器中。这些高性能的图像传感器具有更高的分辨率面阵或者更高的帧频。更高的分辨率的面阵将星敏感器视场角划分为更精细的张角,从而有利于星敏感器的姿态精度的提升。更高帧频的图像传感器的使用允许星敏感器拥有更高的姿态更新率,同时也有利于姿态滤波与姿态估计精度的提升。
但是,这些高性能的图像传感器的使用在带来星敏感器的性能提升的同时也造成了单位时间内待处理数据量的增加。因此,对星敏感器中对星图处理速度的要求也迅速提升。
星敏感器的中对星图处理过程包括了星检测,星质心计算,星识别与姿态估计。由于星识别与姿态估计的速度通常满足大多数情况下的处理速度的要求,因此重点讨论星检测与星质心计算(星点质心提取)的过程。
关于星点质心提取有许多方法。如“高斯拟合法”,根据恒星在成像面上能量分布模型符合二维高斯分布而计算其质心。但是,由于“高斯拟合法”处理速度慢,计算量大,不适合于流水处理,并行计算和硬件实现而应用较少。
现有的星点质心提取方法的实现多数基于连通域标记与灰度加权质心法。通过给所有的连通的像素一个唯一的标记,将不同的目标从图像背景区分出来。然后通过将拥有相同标记的像素的灰度值累加起来并使用灰度加权质心法,即可计算可得星图中所有目标恒星的质心。
但是,现有星点质心提取方法的速度已经远远不能满足现有的星敏感器的需求。这些之前的方法都是一行一行的对星图中每个像素进行处理的。这种处理方式仅在处理低分辨率和低帧频的星图中适用。而对于高分辨率或高帧频的图像传感器而言,现有方法所能达到的最大处理速度远不足以处理由于图像传感器分辨率或者帧率提升所引起的急剧增加的星图数据量,从而限制了星敏感器的姿态精度与姿态更新率的提升。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于超级块的分布式并行星点质心提取方法及FPGA实现装置,主要是解决以下几部分问题:
(1)现有的方法由于其星点质心提取速度的不足,在使用更高分辨率的图像传感器以获得更高姿态精度的同时,不可避免的需要降低姿态更新率;
(2)现有的方法由于其星点质心提取速度的不足,无法提升星敏感器的姿态更新率;
(3)在使用高性能的图像传感器时,现有的方法由于其星点质心提取速度的不足,而造成了对图像传感器使用过程中的性能浪费并阻碍星敏感器姿态精度和姿态更新率的提升。
为达到上述目的,本发明采用的技术方案为:一种基于超级块的分布式并行星点检质心提取方法,该方法步骤如下:
a、根据星敏感器中所使用的图像传感器参数和硬件平台(FPGA)的综合速度,选择最优的方式将星图划分为多个子图并行处理;
b、采用基于超级块的方法对每个子图中完整存在的星(子图星)完成质心提取;
c、采用分布式共享存储器结构对存在于相邻子图中的星(边界星)完成质心提取。
其中,步骤a中选择最优的方式将星图划分为多个子图并行处理的实现步骤如下:
(a1)根据星敏感器中所使用的图像传感器参数,计算得到使用该图像传感器在预定的工作帧频下,将星图分割为多个子图时需要的最小的星点质心提取处理速度;
(a2)根据FPGA综合之后所允许的最大执行时钟,选择满足预定工作速度要求的最优的划分子图的个数。这个最优的划分子图个数在满足图像传感器预定工作帧频的同时占用最少的硬件资源。根据最优划分子图个数将星图划分为多个子图并行处理。由于一个星图被划分为M个子图并行处理,一些星点被完整的划分在单个子图中,称为子图星;另外一些星点存在于相邻子图中,称为边界星。
其中,步骤b中在采用基于超级块的方法对每个子图中完整存在的星(子图星)完成质心提取,实现步骤如下:
(b1)在每个子图中,以双行中的四个像素为最小处理单元,称为block,双行中连续的前景block成为超级块,根据位置状态决策树获得每个block在超级块中的位置,即:起始位置,终止位置或者其他位置;
(b2)由连通关系决策树获得每个block与其四个邻域像素之间的连通关系,根据连通关系,如果一个block在超级块的起始位置,则给超级块定义一个标记;如果一个block在超级块的其他位置,则完成连通超级块之间的标记等价关系处理,最终,每个恒星的处理结果对应一个等价标记集合,该等价标记集合中记录了恒星中所有像素的标记,标记之间的等价关系和每个标记包含的像素灰度值,即星信息;
(b3)将每个超级块中从起始位置到终止位置的所有像素的灰度值累加,即可得到该超级块的星信息,在当前被处理的block位于超级块的终止位置时,将超级块的星信息存储到对应的标记中;
(b4)根据星图处理过程中每颗子图星所建立的等价标记集合,合并该等价标记集合中所有标记的星信息并利用灰度加权质心法计算,即可得到子图中的每颗子图星的质心。
其中,步骤c中采用分布式共享存储器结构对存在于相邻子图中的星(边界星)完成质心提取,实现步骤如下:
(c1)每个子图的存储空间被划分为一个私有存储空间和一个共享存储空间,私有存储空间用来存储当前子图中检测到的所有目标即子图星或者边界星的部分的等价标记集合,共享存储空间用来存储其右侧子图中需要被当前子图访问的边界星的各个部分处理结果;
(c2)根据相邻子图间边界像素的标记结果,通过边界分析可以将边界星的各个部分通关联起来,其等价信息存储在共享存储空间中;
(c3)通过映射管理将边界星在右侧子图中的部分的等价标记集合从私有存空间映射到左侧子图的共享存储空间,从而得到了一个全局等价标记集合,该全局等价标记集合由于包括了边界星在相邻两子图中所有标记,标记之间的等价关系,每个标记的星信息,因而可以正确表征每个边界星;
(c4)根据步骤(c3)得到的边界星的全局等价标记集合,合并所有标记中存储的星信息,并利用灰度加权质心法计算,即可得到边界星的质心。
进一步的,一种基于超级块的分布式并行星点质心提取FPGA实现装置中,利用并行流水线的两种全局模块:每个子图中的子图星和边界星的质心提取模块和相邻子图中的边界像素连通性分析模块,两个模块为并行处理。其中,每个子图中的子图星和边界星质心提取模块包括了6个子处理模块:
(d1)数据预处理模块,该模块由双先入先出(FIFO)缓存和比较器组成,它完成了对图像传感器读出数据的二值化阈值分割和最小处理单元block的生成,同时完成星图输入速度与星图处理速度异步处理时钟速度匹配;
(d2)掩模窗口模块,该模块由一个移位存储FIFO组成,它通过对输入block的移位存储时序控制,将待处理的block数据及其邻域像素组合成为一个移动的掩模窗口,该掩模窗口包括了待处理的block的四个像素,上邻域的四个像素的标记n1,n2,n3,n4,下邻域的四个像素p1,p2,p3,p4;
(d3)基于超级块的星点质心提取模块,该模块由block位置状态决策,连通关系决策树,标记结果FIFO,星信息存储双端口RAM,等价标记集合存储双端口RAM,等价标记集合处理命令FIFO,和星信息读写FIFO命令组成。利用获得的掩模窗口,首先根据block位置状态机得到当前处理的block在超级块中的位置。然后根据连通关系决策树获得每个block与其邻域像素之间的连通关系,实现基于超级块的标记与标记等价处理操作。每个子图中的存储空间(私有或者共享存储)都由等价标记集合存储和星信息存储组成;
(d4)分布式共享存储模块,该模块在每个子图中按照标记范围划分,一定范围内的标记(假设为L)为私有存储空间,另外的范围内的标记(假设为S)为共享存储空间,映射关系为边界星在右侧子图的私有存储器L中的等价关系集合对应了左侧子图共享存储器S。另外,根据等价标记集合处理命令FIFO和星信息读写命令FIFO,完成具体的存储器的读写处理;
(d5)星信息合并与质心计算模块,该模块为并行的对每个子图已用标记中存储的星信息合并的操作。根据每个子图中的私有存储器的标记范围,从起始标记开始,检测每个标记所属等价标记集合的头结点标记是否已经被处理完毕;如果该头结点标记已经被处理完毕,那么将该标记的星信息合并入头结点的标记中;否则,等待该头结点标记被处;
(d6)标记资源循环使用模块和完整性检验模块,由于硬件平台资源有限,每个子图的私有存储器的标记范围有限,那么在FPGA实现过程中需要对标记资源循环使用;当使用的标记达到私有存储器的最大标记范围时,重新从起始标记开始循环使用,标记循环使用是通过校验每颗星所对应的等价标记集合中所有标记是否完成全部星信息合并而实现的。该完整性校验除了完成标记资源循环使用之外,还具有合并共享存储空间中的边界星的星信息的效果;如果当前通过完整性校验的检测目标为子图星,则计算其质心并输出;如果当前通过完整性校验的检测目标为边界星的一部分(在边界分析中被使能),则通过映射管理模块,将该检测目标的等价标记集合的所有标记,标记之间等价关系,星信息整体映射到左侧子图的共享存储中;
(d7)映射管理模块,该模块将边界星在右侧子图中的部分的等价标记集合整体映射到左侧子图的共享存储中。通过利用等价标记集合的线性链表结构,可以查询到从头结点到尾节点的所有标记。所有子标记与头结点标记的等价关系和所有标记的星信息的映射可以通过向左侧子图写入等价标记集合处理命令FIFO和星信息读写命令FIFO实现。
相邻子图间的并行的边界分析模块包括了2个子模块:
(e1)边界掩模窗口模块,该模块由双缓存FIFO组成;该模块将相邻子图的边界像素的标记结果组合成为边界分析掩模窗口,同时完成异步时钟速度同步;
(e2)边界等价处理模块,根据边界分析掩模窗口的连通关系决策树,完成边界星在左右两子图中部分的关联。将相邻子图中不同的边界星部分的标记等价处理写入左侧子图等价标记集合处理命令FIFO中,同时,通过向右侧子图的星信息读写命令FIFO中写入命令,表示该检测目标为边界星的一个部分。
本发明与现有技术相比,其优点和有益效果是:
(1)、本发明成功的解决了阻碍星敏感器姿态精度和姿态更新率提升的星点质心提取速度不足的问题。相比于之前的方法,在每个子图中,星点质心提取速度为之前方法的4倍;当将星图划分为M个子图时,其速度为之前方法的4×M倍。
(2)、本发明解决了各种高性能图像传感器应用在星敏感器中时的星点质心提取速度不足的障碍。针对不同的图像传感器,本发明可以采用一种最优的方式,令星敏感器可以最大效率的使用各种图像传感器,从而同时获得最高的姿态精度与姿态更新率的提升。
(3)、本发明充分利用FPGA在并行流水线运算体系结构设计中的优势,采用并行流水线体系结构组织分布式并行的星点质心提取的模块,大幅提高运算速度,降低系统处理所需资源。
附图说明
图1为以block为最小处理单元的超级块的结构示例;
图2为每个block在超级块中的位置状态决策树;
图3为每个block与其邻域像素的连通关系决策树;
图4为基于block的边界分析掩模;
图5为基于超级块的分布式并行星点质心提取方法流程图;
图6为FPGA硬件实现整体结构;
图7为基于超级块的星点质心提取模块流水结构;
图8为最优划分子图个数M的选择示例;
图9对实际星图中星点质心提取的正确性验证示例。
具体实施方式
下面对本发明作进一步详细说明。
本发明基于超级块的分布式并行星点质心提取方法主要包括以下步骤:
1.算法描述
步骤1:确定最优的可以划分的子图的个数。
根据星敏感器中所使用的图像传感器参数,计算得到使用该图像传感器在预定的工作帧频下,将星图分割为多个子图时需要的最小的星点质心提取处理速度。假设图像传感器包括了5个参数:MaxData_rate为每个端口的最大数据读出速度,Max_Fps为最大的帧频,Row_parallel为行并行结构的端口数目,Bit_depths为每个像素的位深,N为列并行结构的端口数目。
如果使用该图像传感器在星敏感器中以预定工作帧频User_Fps运行,并采用本发明方法将星图划分为M个子图,那么其最小数据处理速度需求可以由式(1)计算得到
步骤2:根据硬件平台(FPGA)的综合速度,即得到在该平台上所允许的最高的星点质心提取处理速度,即Permitted_Max_speed。满足式(2)的最小的划分子图个数M即为最优的划分星图的方式。该最优的划分子图个数在满足使用图像传感器在预定工作帧频下的星点质心提取速度需求的同时占用最少的存储资源。
Minimum speed requirements(User_Fps,M)≤Permitted_Max_speed (2)
将星图按照最优的划分子图个数M将星图划分为M个子图并行处理。由于一个星图被划分为M个子图并行处理,一些星点被完整的划分在单个子图中,称为子图星;另外一些星点存在于相邻子图中,称为边界星。
步骤3:采用基于超级块的方法对每个子图中完整存在的星(子图星)完成质心提取,实现步骤如下。
在每个子图中,以双行中的四个像素为最小处理单元,称为block。如果一个block中的四个像素中有一个像素为前景像素,那么这个像素块即为前景像素块,否则,称之为背景像素块。将双行中连通的前景像素块作为一个整体,称为超级块。每个超级块包括了从两行中从起始到终止位置的所有的前景像素和背景像素,如图1所示。
步骤31:根据当前待处理的block中4个像素和前一个block的状态,由位置状态决策树得到每个block在超级块中位置,即:起始位置,终止位置或者其他位置。
图2显示了每个block在超级块中的位置状态决策树。其中,当前block的四个像素为a,b,c和d。O1表征了像素a与c之间的关系。当像素a或者c中有一个为前景像素时,O1为‘1’,否则为‘0’;同理,O2表征了像素b与d之间的关系。Config为前一个block在超级块中的位置,Endline代表了判断当前的block是否为位于正在处理的双行的行尾。若是,则需要强制结束当前超级块。
一个block在超级块中所有可能出现的位置可以归纳为8个不同的状态,即S0~S7。具体的每个状态对应的block在超级块中的位置情况如图2(b)。其中,Start代表了当前block为超级块中的起始位置;End代表了当前block为超级块中的终止位置;Mid代表了当前block为超级块中的起始与终止之间的位置。另外,idle代表了背景像素块。
步骤32:超级块之间的连通关系分解到每个block中即为每个block的像素a和b与其上邻域的四个像素之间的连通关系。因此,每个block与其四个邻域像素之间的连通关系可以通过block连通关系决策树获得,如图3所示。该连通关系决策树根据block中的像素a与像素b分为四种不同的类型C1,C2,C3和C4。然后针对每种类型,考虑其上邻域的四个像素n1,n2,n3和n4与像素a和像素b之间的连通关系,简便起见,我们采用了8种不同的连通关系actions 1~8去代表所有可能的每个block与其四个邻域像素之间的连通关系,如连通关系表1。
结合步骤31中由状态决策树得到当前处理block在超级块中的位置和其连通关系决策树得到的该block与其邻域像素的连通关系,即可以完成对超级块的标记与标记等价处理:
当一个block为S1,S4,S5,和S6四种状态之一时,意味着该block为超级块的起始位置,按照表1的连通关系给当前超级块定义一个标记;当一个block为S2和S7两种状态之一时,意味着该block为超级块的其他位置,处理当前超级块与其邻域像素的标记之间的等价关系。表2显示了超级块中每个block的具体的标记与标记等价处理操作。其中,Slabel代表了超级块的标记,Labeling(Slabel,n)代表了将像素n的标记分配给当前超级块的标记Slabel,resolve(u,v)表示两标记u和v之间的等价关系的处理,new_label()表示给当前超级块一个新标记。
本发明中采用等价标记集合结构去记录和处理标记之间的等价关系,有关resolve(u,v)和new_label()的详细过程可以参考何立峰所述的“A run-based two-scanlabeling algorithm”中的描述。
步骤33:将超级块中从起始位置到终止位置的所有像素的灰度值(星信息)进行累加,然后在超级块的终止位置将其星信息存储到相应的标记中。
具体实现过程为,根据步骤31中的状态决策树,如果当前block为S1,S4,S5,S6,S2,和S7六种状态之一时,通过式(3)累加block中四个像素的灰度值即得到超级块的星信息。
其中,Inf(super-block)为当前超级块的星信息,∑xIx,y,∑yIx,y和∑Ix,y用来进行灰度加权质心法计算。Size为超级块中的前景像素的个数。
如果当前block为S3,S4,S5,S6和S7五中状态之一时,意味着当前的block位于一个超级块的终止位置,应将当前超级块的星信息Inf(super-block)存入超级块的标记中。
步骤34:根据星图处理过程中每颗子图星所建立的等价标记集合,合并该等价标记集合中所有标记的星信息并利用灰度加权质心法计算,即可得到子图中的每颗子图星的质心。
步骤4采用分布式共享存储器结构对存在于相邻子图中的星(边界星)完成质心提取。
每个子图的存储空间被划分为一个私有存储空间和一个共享存储空间,私有存储空间用来存储当前子图中检测到的所有目标(子图星或者边界星的部分)的等价标记集合,共享存储空间用来存储其右侧子图中需要被当前子图访问的边界星的各个部分处理结果;
步骤41:根据相邻子图间边界像素的标记结果,通过边界分析可以将边界星的各个部分通过边界像素关联起来。
由于每个子图中采用双行四像素为最小单元的处理方式对子图中的像素进行处理,那么根据前一个双行的边界像素标记结果与当前双行的边界像素标记结果可以获得相邻子图的边界分析掩模窗口,如图4所示。其中,边界分析掩模包括了子图N中的边界像素的标记a和b,子图N+1中的边界像素的标记n1,n2,n3和n4。然后,根据像素a和b是否为前景像素可以将其分为四种类型C1,C2,C3和C4。
可以发现边界分析中的四种类型C1,C2,C3和C4与步骤32中的连通关系决策树中的四种类型近似相同。因此,步骤32中的连通关系决策树(图3)与连通关系表(表1)同样适用于边界分析中。针对相邻子图中的边界像素的不同的连通关系将边界星的各个部分关联起来,如表3所示。
其中,Blabel为像素a或者b的标记。根据映射管理,子图N+1中的标记n1,n2,n3和n4分别对应了子图N的共享存储中的n1′,n2′,n3′和n4′。Enable(n1)表示了如果子图N+1中的一个检测目标中包含了标记n1,那么它就是边界星的一部分。resolve(u,v)表示标记u和v之间的等价关系处理。
步骤42:通过映射管理将边界星在右侧子图中的部分的等价标记集合从私有存储空间映射到左侧子图的共享存储空间,从而得到了一个全局等价标记集合。该全局等价标记集合由于包括了边界星在相邻两子图中所有标记,标记之间的等价关系,每个标记的星信息,因而可以正确表征每个边界星;
步骤43:根据步骤42得到的边界星的全局等价标记集合,合并所有标记中存储的星信息,然后利用灰度加权质心法计算即可得到边界星的质心。
基于超级块的分布式并行的星点质心提取方法的综合流程图如图5所示。
2.FPGA实现装置
根据算法描述中得到的最优划分子图个数,将星图分割为M个子图并行处理。因此,FPGA的硬件实现总体框架中包括了M个并行的子图处理模块了M-1个并行的边界分析模块,如图6所示。
每个子图中的子图星和边界星质心提取模块包括了6个子处理模块:
(1)数据预处理模块,该模块由双先入先出(FIFO)缓存和比较器组成,它完成了对图像传感器读出数据的二值化阈值分割和最小处理单元block的生成,同时完成星图输入速度与星图处理速度异步处理时钟速度匹配;
(2)掩模窗口模块,该模块由一个移位存储FIFO组成,它通过对输入block的移位存储时序控制,将待处理的block数据及其邻域像素组合成为一个移动的掩模窗口,该掩模窗口包括了待处理的block的四个像素,上邻域的四个像素的标记n1,n2,n3,n4,下邻域的四个像素p1,p2,p3,p4;
(3)基于超级块的星点质心提取模块,该模块由block位置状态决策,连通关系决策树,标记结果FIFO,星信息存储双端口RAM,等价标记集合存储双端口RAM,等价标记集合处理命令FIFO,和星信息读写FIFO组成,如图7。利用获得的掩模窗口,首先根据block位置状态机得到当前处理的block在超级块中的位置。然后根据连通关系决策树获得每个block与其邻域像素之间的连通关系,实现基于超级块的标记与标记等价处理操作,具体操作如表2。每个子图中的存储空间(私有或者共享存储)都由等价标记集合存储和星信息存储组成。其中,resolve(u,v)代表了等标记u和v对于等价标记集合存储空间的等价处理操作,Record(Inf)代表了对星信息存储空间的读写处理操作;
(4)分布式共享存储模块,该模块在每个子图中按照标记范围划分,一定范围内的标记(假设为L)为私有存储空间,另外的范围内的标记(假设为S)为共享存储空间,映射关系为边界星在右侧子图的私有存储器L中的等价关系集合对应了左侧子图共享存储器S。另外,根据等价标记集合处理命令FIFO和星信息读写命令FIFO,完成具体的存储器的读写处理;
(5)星信息合并与质心计算模块,该模块为并行的对每个子图已用标记中存储的星信息合并的操作。根据每个子图中的私有存储器的标记范围,从起始标记开始,检测每个标记所属等价标记集合的头结点标记是否已经被处理完毕;如果该头结点标记已经被处理完毕,那么将该标记的星信息合并入头结点的标记中;否则,等待该头结点标记被处;
(6)标记资源循环使用模块和完整性检验模块,由于硬件平台资源有限,每个子图的私有存储器的标记范围有限,那么在FPGA实现过程中需要对标记资源循环使用;当使用的标记达到私有存储器的最大标记范围时,重新从起始标记开始循环使用,标记循环使用是通过校验每颗星所对应的等价标记集合中所有标记是否完成全部星信息合并而实现的。该完整性校验除了完成标记资源循环使用之外,还具有合并共享存储空间中的边界星的星信息的效果。
如果当前通过完整性校验的检测目标为子图星,则计算其质心并输出;如果当前通过完整性校验的为边界星的一部分(在边界分析中被使能),则通过映射管理模块,将该检测目标的等价标记集合的所有标记,标记之间等价关系,星信息整体映射到左侧子图的共享存储中;
(7)映射管理模块,该模块将边界星在右侧子图中的部分的等价标记集合整体映射到左侧子图的共享存储中。通过利用等价标记集合的线性链表结构,可以查询到从头结点到尾节点的所有标记。所有子标记与头结点标记的等价关系和所有标记的星信息的映射可以通过向左侧子图写入等价标记集合处理命令FIFO,resolve(u,v),和星信息读写命令FIFO,Record(Inf),实现,如图6。
相邻子图间的并行的边界分析模块包括了2个子模块:
(1)边界掩模窗口模块,该模块由双缓存FIFO组成;该模块将相邻子图的边界像素的标记结果组合成为边界分析掩模窗口,同时完成异步时钟速度同步;
(2)边界等价处理模块,根据边界分析掩模窗口的连通关系决策树,完成边界星在左右两子图中部分的关联。具体实现如表3所示。利用向左侧子图写入等价标记集合处理命令FIFO,resolve(u,v),和向右侧子图的星信息读写命令FIFO中写入命令Record(Inf),实现。
表1 block与其邻域像素的连通关系
表2超级块中每个block的具体的标记与标记等价处理操作
表3基于边界像素连通关系的边界分析处理
3.实施例效果
本发明解决了各种高性能图像传感器应用在星敏感器中时的星点质心提取速度不足的障碍。针对不同的图像传感器,本文发明可以采用一种最优的方式,令星敏感器可以最大效率的使用各种图像传感器,从而同时获得最高的姿态精度与姿态更新率的提升。
为了验证本发明的正确与有效,我们在PC上进行了一系列的仿真测试。测试的具体内容如下:
为了验证本方法可以得到一个最优的划分子图个数,以某高帧频图像传感器为例进行分析。该高帧频图像传感器的参数为:分辨率为2048×2048,MaxData_rate=480Mbps,Max_Fps=180fps,Row_parallel=1,Bit_depths=10,N=16.最终得到的结果如图8所示。如果执行硬件平台FPGA的综合最大速度Permitted_Max_speed=100MHz时,该图像传感器工作在180fps和120fps时,最优的星图划分个数为2;该图像传感器工作在60fps时,最优的星图划分个数为1。
为了验证本方法对实际星图中星点质心提取的正确性,将实际星图分割为8个子图并行处理,最终得到的结果如图9所示。其中,利用ModelSim的8子图并行仿真结果用菱形表示,利用Matlab计算得到的参考标准结果用叉号表示。
Claims (5)
1.一种基于超级块的分布式并行星点质心提取方法,其特征在于,实现步骤如下:
a、根据星敏感器中所使用的图像传感器参数和硬件平台(FPGA)的综合速度,选择最优的方式将星图划分为多个子图并行处理;
b、采用基于超级块的方法对每个子图中完整存在的星(子图星)完成质心提取;
c、采用分布式共享存储器结构对存在于相邻子图中的星(边界星)完成质心提取。
2.根据权利要求1所述的基于超级块的分布式并行星点质心提取方法,其特征在于:步骤a中选择最优的方式将星图划分为多个子图并行处理,实现步骤如下:
(a1)根据星敏感器中所使用的图像传感器参数,计算得到使用该图像传感器在预定的工作帧频下,将星图分割为多个子图时需要的最小的星点质心提取处理速度;
(a2)根据FPGA综合之后所允许的最大执行时钟,选择满足预定工作速度要求的最优的划分子图的个数;这个最优的划分子图个数在满足图像传感器预定工作帧频的同时占用最少的硬件资源;根据最优划分子图个数将星图划分为多个子图并行处理;由于一个星图被划分为M个子图并行处理,一些星点被完整的划分在单个子图中,称为子图星;另外一些星点存在于相邻子图中,称为边界星。
3.根据权利要求1所述的基于超级块的分布式并行星点质心提取方法,其特征在于:步骤b中在采用基于超级块的方法对每个子图中完整存在的星(子图星)完成质心提取,实现步骤如下:
(b1)在每个子图中,以双行中的四个像素为最小处理单元,称为block,双行中连续的前景block成为超级块,根据位置状态决策树获得每个block在超级块中的位置,即:起始位置,终止位置或者其他位置;
(b2)由连通关系决策树获得每个block与其四个邻域像素之间的连通关系,根据连通关系,如果一个block在超级块的起始位置,则给超级块定义一个标记;如果一个block在超级块的其他位置,则完成连通超级块之间的标记等价关系处理,最终,每个恒星的处理结果对应一个等价标记集合,该等价标记集合中记录了恒星中所有像素的标记,标记之间的等价关系和每个标记包含的像素灰度值,即星信息;
(b3)将每个超级块中从起始位置到终止位置的所有像素的灰度值累加,即可得到该超级块的星信息,在当前被处理的block位于超级块的终止位置时,将超级块的星信息存储到对应的标记中;
(b4)根据星图处理过程中每颗子图星所建立的等价标记集合,合并该等价标记集合中所有标记的星信息并利用灰度加权质心法计算,即可得到子图中的每颗子图星的质心。
4.根据权利要求1所述的基于超级块的分布式并行星点质心提取方法,其特征在于:步骤c中采用分布式共享存储器结构对存在于相邻子图中的星(边界星)完成质心提取,实现步骤如下:
(c1)每个子图的存储空间被划分为一个私有存储空间和一个共享存储空间,私有存储空间用来存储当前子图中检测到的所有目标即子图星或者边界星的部分的等价标记集合,共享存储空间用来存储其右侧子图中需要被当前子图访问的边界星的各个部分处理结果;
(c2)根据相邻子图间边界像素的标记结果,通过边界分析可以将边界星的各个部分通关联起来,其等价信息存储在共享存储空间中;
(c3)通过映射管理将边界星在右侧子图中的部分的等价标记集合从私有存空间映射到左侧子图的共享存储空间,从而得到了一个全局等价标记集合,该全局等价标记集合由于包括了边界星在相邻两子图中所有标记,标记之间的等价关系,每个标记的星信息,因而可以正确表征每个边界星;
(c4)根据步骤(c3)得到的边界星的全局等价标记集合,合并所有标记中存储的星信息,并利用灰度加权质心法计算,即可得到边界星的质心。
5.一种基于超级块的分布式并行星点质心提取FPGA实现装置,其特征在于,利用FPGA实现的两种模块:每个子图中的子图星和边界星的质心提取模块,和相邻子图中的边界像素连通性分析模块,两种模块为并行处理,其中每个子图中的子图星和边界星质心提取模块包括了6个子处理模块:
(d1)数据预处理模块,该模块由双先入先出(FIFO)缓存和比较器组成,它完成了对图像传感器读出数据的二值化阈值分割和最小处理单元block的生成,同时完成星图输入速度与星图处理速度异步处理时钟速度匹配;
(d2)掩模窗口模块,该模块由一个移位存储FIFO组成,它通过对输入block的移位存储时序控制,将待处理的block数据及其邻域像素组合成为一个移动的掩模窗口,该掩模窗口包括了待处理的block的四个像素,上邻域的四个像素的标记n1,n2,n3,n4,下邻域的四个像素p1,p2,p3,p4;
(d3)基于超级块的星点质心提取模块,该模块由block位置状态决策,连通关系决策树,标记结果FIFO,星信息存储双端口RAM,等价标记集合存储双端口RAM,等价标记集合处理命令FIFO,和星信息读写FIFO命令组成;利用获得的掩模窗口,首先根据block位置状态机得到当前处理的block在超级块中的位置;然后根据连通关系决策树获得每个block与其邻域像素之间的连通关系,实现基于超级块的标记与标记等价处理操作;每个子图中的存储空间(私有或者共享存储)都由等价标记集合存储和星信息存储组成;
(d4)分布式共享存储模块,该模块在每个子图中按照标记范围划分,一定范围内的标记(假设为L)为私有存储空间,另外的范围内的标记(假设为S)为共享存储空间,映射关系为边界星在右侧子图的私有存储器L中的等价关系集合对应了左侧子图共享存储器S;另外,根据等价标记集合处理命令FIFO和星信息读写命令FIFO,完成具体的存储器的读写处理;
(d5)星信息合并与质心计算模块,该模块为并行的对每个子图已用标记中存储的星信息合并的操作;根据每个子图中的私有存储器的标记范围,从起始标记开始,检测每个标记所属等价标记集合的头结点标记是否已经被处理完毕;如果该头结点标记已经被处理完毕,那么将该标记的星信息合并入头结点的标记中;否则,等待该头结点标记被处;
(d6)标记资源循环使用模块和完整性检验模块,由于硬件平台资源有限,每个子图的私有存储器的标记范围有限,那么在FPGA实现过程中需要对标记资源循环使用;当使用的标记达到私有存储器的最大标记范围时,重新从起始标记开始循环使用,标记循环使用是通过校验每颗星所对应的等价标记集合中所有标记是否完成全部星信息合并而实现的;该完整性校验除了完成标记资源循环使用之外,还具有合并共享存储空间中的边界星的星信息的效果;如果当前通过完整性校验的检测目标为子图星,则计算其质心并输出;如果当前通过完整性校验的检测目标为边界星的一部分(在边界分析中被使能),则通过映射管理模块,将该检测目标的等价标记集合的所有标记,标记之间等价关系,星信息整体映射到左侧子图的共享存储中;
(d7)映射管理模块,该模块将边界星在右侧子图中的部分的等价标记集合整体映射到左侧子图的共享存储中;通过利用等价标记集合的线性链表结构,可以查询到从头结点到尾节点的所有标记;所有子标记与头结点标记的等价关系和所有标记的星信息的映射可以通过向左侧子图写入等价标记集合处理命令FIFO和星信息读写命令FIFO实现;
相邻子图间的并行的边界分析模块包括了2个子模块:
(e1)边界掩模窗口模块,该模块由双缓存FIFO组成;该模块将相邻子图的边界像素的标记结果组合成为边界分析掩模窗口,同时完成异步时钟速度同步;
(e2)边界等价处理模块,根据边界分析掩模窗口的连通关系决策树,完成边界星在左右两子图中部分的关联;将相邻子图中不同的边界星部分的标记等价处理写入左侧子图等价标记集合处理命令FIFO中,同时,通过向右侧子图的星信息读写命令FIFO中写入命令,表示该检测目标为边界星的一个部分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810543754.XA CN108716916B (zh) | 2018-05-31 | 2018-05-31 | 一种基于超级块的分布式并行星点质心提取方法及fpga实现装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810543754.XA CN108716916B (zh) | 2018-05-31 | 2018-05-31 | 一种基于超级块的分布式并行星点质心提取方法及fpga实现装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108716916A true CN108716916A (zh) | 2018-10-30 |
CN108716916B CN108716916B (zh) | 2021-05-25 |
Family
ID=63912519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810543754.XA Active CN108716916B (zh) | 2018-05-31 | 2018-05-31 | 一种基于超级块的分布式并行星点质心提取方法及fpga实现装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108716916B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112200855A (zh) * | 2020-09-29 | 2021-01-08 | 中国科学院长春光学精密机械与物理研究所 | 星敏感器多通道图像的星点质心提取方法及星敏感器 |
CN112231630A (zh) * | 2020-10-26 | 2021-01-15 | 国家超级计算无锡中心 | 基于fpga并行加速的稀疏矩阵求解方法 |
CN112784832A (zh) * | 2021-02-09 | 2021-05-11 | 西南科技大学 | 一种物体标记点识别方法及装置 |
CN114255349A (zh) * | 2021-11-15 | 2022-03-29 | 北京航天计量测试技术研究所 | 一种全天时星敏感器实时星点提取方法 |
CN114442936A (zh) * | 2021-12-29 | 2022-05-06 | 山东云海国创云计算装备产业创新中心有限公司 | 一种闪存转换层的块管理方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673289A (zh) * | 2009-10-10 | 2010-03-17 | 成都市华为赛门铁克科技有限公司 | 分布式文件存储构架的构建方法和装置 |
CN102278990A (zh) * | 2010-06-11 | 2011-12-14 | 上海航天控制工程研究所 | 基于fpga的星敏感器图像处理方法 |
CN103913166A (zh) * | 2014-03-12 | 2014-07-09 | 哈尔滨工程大学 | 一种基于能量分布的星点提取方法 |
CN104461391A (zh) * | 2014-12-05 | 2015-03-25 | 上海宝存信息科技有限公司 | 一种存储设备元数据管理处理方法及系统 |
CN105631870A (zh) * | 2015-12-25 | 2016-06-01 | 北京理工大学 | 基于NoC架构的星图配准与目标轨迹提取方法及装置 |
CN105678682A (zh) * | 2016-01-08 | 2016-06-15 | 西安交通大学 | 一种基于fpga的二值图像连通区域信息快速获取系统及方法 |
CN105761288A (zh) * | 2016-02-02 | 2016-07-13 | 华中科技大学 | 一种基于fpga的实时星点质心定位方法及装置 |
CN106679676A (zh) * | 2017-01-10 | 2017-05-17 | 北京航空航天大学 | 一种单视场多功能光学敏感器及实现方法 |
CN106767769A (zh) * | 2017-01-17 | 2017-05-31 | 上海航天控制技术研究所 | 一种星敏感器高速目标提取方法 |
-
2018
- 2018-05-31 CN CN201810543754.XA patent/CN108716916B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673289A (zh) * | 2009-10-10 | 2010-03-17 | 成都市华为赛门铁克科技有限公司 | 分布式文件存储构架的构建方法和装置 |
CN102278990A (zh) * | 2010-06-11 | 2011-12-14 | 上海航天控制工程研究所 | 基于fpga的星敏感器图像处理方法 |
CN103913166A (zh) * | 2014-03-12 | 2014-07-09 | 哈尔滨工程大学 | 一种基于能量分布的星点提取方法 |
CN104461391A (zh) * | 2014-12-05 | 2015-03-25 | 上海宝存信息科技有限公司 | 一种存储设备元数据管理处理方法及系统 |
CN105631870A (zh) * | 2015-12-25 | 2016-06-01 | 北京理工大学 | 基于NoC架构的星图配准与目标轨迹提取方法及装置 |
CN105678682A (zh) * | 2016-01-08 | 2016-06-15 | 西安交通大学 | 一种基于fpga的二值图像连通区域信息快速获取系统及方法 |
CN105761288A (zh) * | 2016-02-02 | 2016-07-13 | 华中科技大学 | 一种基于fpga的实时星点质心定位方法及装置 |
CN106679676A (zh) * | 2017-01-10 | 2017-05-17 | 北京航空航天大学 | 一种单视场多功能光学敏感器及实现方法 |
CN106767769A (zh) * | 2017-01-17 | 2017-05-31 | 上海航天控制技术研究所 | 一种星敏感器高速目标提取方法 |
Non-Patent Citations (3)
Title |
---|
JIANG JIE等: "High-Accuracy Synchronous Extraction Algorithm of Star and Celestial Body Features for Optical Navigation Sensor", 《IEEE SENSORS JOURNAL》 * |
叶生龙等: "多视场星敏感器工作模式设计", 《北京航空航天大学学报》 * |
王振等: "基于虚拟磁盘块存储的分布式文件系统研究", 《华中科技大学学报(自然科学版)》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112200855A (zh) * | 2020-09-29 | 2021-01-08 | 中国科学院长春光学精密机械与物理研究所 | 星敏感器多通道图像的星点质心提取方法及星敏感器 |
CN112231630A (zh) * | 2020-10-26 | 2021-01-15 | 国家超级计算无锡中心 | 基于fpga并行加速的稀疏矩阵求解方法 |
CN112231630B (zh) * | 2020-10-26 | 2024-02-02 | 国家超级计算无锡中心 | 基于fpga并行加速的稀疏矩阵求解方法 |
CN112784832A (zh) * | 2021-02-09 | 2021-05-11 | 西南科技大学 | 一种物体标记点识别方法及装置 |
CN112784832B (zh) * | 2021-02-09 | 2022-09-09 | 西南科技大学 | 一种物体标记点识别方法及装置 |
CN114255349A (zh) * | 2021-11-15 | 2022-03-29 | 北京航天计量测试技术研究所 | 一种全天时星敏感器实时星点提取方法 |
CN114442936A (zh) * | 2021-12-29 | 2022-05-06 | 山东云海国创云计算装备产业创新中心有限公司 | 一种闪存转换层的块管理方法、装置、设备及存储介质 |
CN114442936B (zh) * | 2021-12-29 | 2024-03-08 | 山东云海国创云计算装备产业创新中心有限公司 | 一种闪存转换层的块管理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108716916B (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108716916A (zh) | 一种基于超级块的分布式并行星点质心提取方法及fpga实现装置 | |
CN107563381B (zh) | 基于全卷积网络的多特征融合的目标检测方法 | |
CN104463250B (zh) | 一种基于达芬奇技术的手语识别翻译方法 | |
Tevs et al. | Isometric registration of ambiguous and partial data | |
CN110427905A (zh) | 行人跟踪方法、装置以及终端 | |
CN102278990B (zh) | 基于fpga的星敏感器图像处理方法 | |
CN104899561A (zh) | 一种并行化的人体行为识别方法 | |
CN108647654A (zh) | 基于视觉的手势视频图像识别系统和方法 | |
CN109086706A (zh) | 应用于人机协作中的基于分割人体模型的动作识别方法 | |
CN114758362A (zh) | 基于语义感知注意力和视觉屏蔽的换衣行人重识别方法 | |
CN109598234A (zh) | 关键点检测方法和装置 | |
CN112989947B (zh) | 一种人体关键点的三维坐标的估计方法及装置 | |
CN114998934B (zh) | 基于多模态智能感知和融合的换衣行人重识别和检索方法 | |
CN108921011A (zh) | 一种基于隐马尔可夫模型的动态手势识别系统及方法 | |
CN105320963B (zh) | 面向高分遥感图像的大尺度半监督特征选择方法 | |
CN109859178A (zh) | 一种基于fpga的红外遥感图像实时目标检测方法 | |
CN109766873A (zh) | 一种混合可变形卷积的行人再识别方法 | |
CN110197113A (zh) | 一种高精度锚点匹配策略的人脸检测方法 | |
CN107479693A (zh) | 基于rgb信息的实时手部识别方法、存储介质、电子设备 | |
CN104077742A (zh) | 基于Gabor特征的人脸素描合成方法及系统 | |
CN109857878A (zh) | 物品标注方法及装置、电子设备及存储介质 | |
CN104463091B (zh) | 一种基于图像lgbp特征子向量的人脸图像识别方法 | |
CN108710879A (zh) | 一种基于网格聚类算法的行人候选区域生成方法 | |
CN108595014A (zh) | 一种基于视觉的实时动态手势识别系统及方法 | |
CN110992310A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |