CN105761288B - 一种基于fpga的实时星点质心定位方法及装置 - Google Patents
一种基于fpga的实时星点质心定位方法及装置 Download PDFInfo
- Publication number
- CN105761288B CN105761288B CN201610072227.6A CN201610072227A CN105761288B CN 105761288 B CN105761288 B CN 105761288B CN 201610072227 A CN201610072227 A CN 201610072227A CN 105761288 B CN105761288 B CN 105761288B
- Authority
- CN
- China
- Prior art keywords
- pixel
- template
- asterism
- center
- threshold
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title abstract description 30
- 238000004364 calculation method Methods 0.000 claims abstract description 47
- 230000011218 segmentation Effects 0.000 claims abstract description 36
- 230000008520 organization Effects 0.000 claims abstract description 4
- 238000000605 extraction Methods 0.000 claims description 14
- 230000001186 cumulative effect Effects 0.000 claims description 8
- 238000007616 round robin method Methods 0.000 claims description 6
- 101100301524 Drosophila melanogaster Reg-5 gene Proteins 0.000 claims description 5
- 101100412401 Rattus norvegicus Reg3a gene Proteins 0.000 claims description 5
- 101100120298 Rattus norvegicus Flot1 gene Proteins 0.000 claims description 4
- 101100412403 Rattus norvegicus Reg3b gene Proteins 0.000 claims description 4
- 101150103187 Reg4 gene Proteins 0.000 claims description 4
- 230000008901 benefit Effects 0.000 claims description 4
- 238000004321 preservation Methods 0.000 claims description 2
- 239000000284 extract Substances 0.000 abstract description 6
- 238000013461 design Methods 0.000 abstract description 5
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000009415 formwork Methods 0.000 description 1
- 102000054766 genetic haplotypes Human genes 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
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000005622 photoelectricity Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- -1 which is 25 Proteins 0.000 description 1
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种基于FPGA的实时星点质心定位的方法,包含以下步骤:对当前扫描输入的星图像素计算阈值,同时对像素形成M通道数据进行阈值分割,将阈值分割的M路结果输出到M*M的模板,利用模板对像素进行星点质心判断,判断模板内中心像素所在的行像素灰度和是否为各行灰度像素和的最大值,列像素灰度和是否为各列像素灰度和的最大值,以此粗定位星点质心所在位置是否为中心像素所在坐标位置,对属于本星点的模板内像素进行质心计算,细定位星点质心坐标位置,最后将质心特征和坐标缓存输出。该方法充分利用硬件运行并行性的特点对星点实现直接的判断和提取,硬件设计采用流水线结构可以实时对像素进行处理,存储资源耗费少,质心定位快速准确。
Description
技术领域
本发明属于航天领域星敏感器图像处理领域,更具体地,涉及一种基于FPGA的实时星点质心定位方法及装置。
背景技术
星敏感器是天文导航***的主要设备,是一种高精度、高可靠性的姿态测量部件。星敏感器的工作原理是图像传感器拍摄当前视场的星图,通过对星图的预处理获得星点粗定位,然后通过亚像素细定位技术提取星点并计算星点质心坐标和灰度信息,最后利用星点信息采用星图识别算法获得载体相对于地心惯性坐标系的三轴姿态。
星图中星点质心定位精度和定位速度会影响星点识别中姿态测量的可靠性和识别速度,如何更准确快速进行星点质心定位是星光导航的关键技术。目前对于星敏感器所成星图的预处理硬件实现的方法主要有以下:
目前常用的阈值分割方法包括自适应阈值分割、基于灰度直方图的分割、Otsu、迭代阈值等分割算法。星图的背景噪声主要是由于光学***引入的杂散光、图像传感器作为光电采样器件带来的噪声以及质心定位算法本身的噪声。星图中的噪声近似符合均匀分布,且噪声灰度均值远小于有效星点的灰度峰值。由于星图中目标总能量小,背景噪声分布均匀且比重大,基于灰度直方图、Otsu的分割算法等方法不容易找到分割点,迭代阈值的算法不易于硬件实现。
星点提取一般采用的算法有多个文献中提到的连通性分析,如郝雪涛等在《北京航空航天大学学报》上发表的论文《CMOS星敏感器图像驱动及实时星点定位算法》(1001-5965(2005)04-0381-04)提到的基于四连通的星点提取方法,这种连通性分析方法的有效性和精度与阈值的选取相关,阈值选取不合适容易产生大量虚假目标点,同时在实际操作中要反复叠加新的目标像素到存储星点的存储器,同时要对已经提取的星点像素进行合并连通域的操作,难以实现实时质心计算。冯国杰等在《测控技术》上发表的论文《一种用于星敏感器的星点提取方法》(1000-8829(2010)10-0013-03)提到的判定行与行之间的连接关系的提取方法需要存储包含星点的外接矩形的四点坐标,并且随着行的增加要不断进行坐标值大小的判断和外接矩形的四点坐标的更新,所需存储器容量较大,不利于硬件实现。除此之外的星点提取方法有结合模板的直接判断的方法,直接判断模板内大于阈值的像素的个数,块扫描法用来直接判断分块星图的每行每列的最大值,这些方法的精度不高,容易产生误判。
Chemielowski等提出的利用点扩散函数模型进行星点质心亚像素细定位的方法,在此基础上发展而来的常用的方法包括矩心法如传统加权质心计算、带阈值加权质心计算、平方加权质心计算以及在结合仿真实验上提出改进的光强矩次的质心算法,还包括基于边缘的高斯曲面拟合,椭圆拟合以及结合插值的拟合算法等方法。近来波前检测技术应用到质心定位的研究成为一个热点。椭圆拟合、高斯曲面拟合的算法比较复杂,不易于硬件实现。比较简单的适合硬件实现的就是矩心法,其计算公式要用到除法运算,除法运算比较耗费硬件资源且计算缓慢,所以如何实现快速精确质心计算也是研究的重点。
发明内容
本发明的技术解决的问题是:根据星点图像的特点,确定阈值分割和质心计算的算法,结合硬件实现速度快、并行执行、存储资源有限等特点实现星点提取和上述算法是本发明的重点。
为了实现上述目的,按照本发明的一个方面,提供了一种基于FPGA的实时星点质心定位方法,包含以下步骤:
S1、利用下式进行星图的阈值计算:
T1=E+μ1×σ
T2=E+μ2×σ
其中T1是自适应的背景阈值,T2是自适应的准星点阈值,E为图像的灰度均值,μ1,μ2为预设的常数,σ为图像的标准差;
S2、星图的分割:扫描输入星图像素并形成M路并行通道,其中M为预设值;按照上一帧星图阈值保存结果对当前并行输入像素进行分割,若当前像素灰度不小于背景阈值,判断为星点像素,保留原始像素灰度,否则将当前像素灰度设置为0;
S3、星点提取:采用M*M像素的矩形模板,并行输入M通道的数据;根据背景阈值和准星点阈值判断当前矩形模板中心像素所在位置是否为星点质心;
S4、星点数据的存储:将可用来计算星点质心的M*M模板的各行像素灰度和及各列像素灰度以及整个M*M模板的灰度像素和缓存到存储器;
S5、星点质心计算:利用下式计算质心:
将模板中心像素的坐标为设为(0,0),其实际坐标为(x0,y0),式中(xc,yc)为所求质心坐标,变量I(i,j)表示图像行坐标i,列坐标j处的像素灰度,T1为背景阈值,L为M/2向下取整;
S6、星点质心结果缓存:将得到的星点质心的x,y坐标以及质心特征缓存到FIFO。
本发明的一个实施例中,在所述步骤S2中,M根据星点弥散光斑的直径大小选取。
本发明的一个实施例中,所述步骤S3按照以下步骤判断当前矩形模板中心像素所在位置是否为星点质心:
(3.1)判断模板内星点连通域,剔除不属于本星点的像素;
(3.2)判断矩形模板中心像素所在的行像素灰度和是否为1~M各行像素灰度和的最大值,列像素灰度和是否为1~M各列像素灰度和最大值;
(3.3)如果符合上述步骤要求则判断当前星点质心在矩形模板的中心像素位置。
本发明的一个实施例中,所述步骤S5按照以下步骤进行质心计算:
(5.1)从存储器中读取缓存数据,首先进行定点到浮点转换;
(5.2)利用查表法和数值循环法,将除数的2~7倍数据通过预设的关系存储到查找表;
(5.3)被除数每次移动3位,通过查表可以得到3位有效商,如果最终得到的余数为0或者商值的位数符合要求,结束;
(5.4)质心的行列坐标计算按照上述步骤并行执行。
本发明的一个实施例中,所述步骤(3.1)中,按照以下步骤剔除不属于本星点的像素:
(3.1.1)对M通道并行输入的分割后像素生成M*M的二值模板,其中对M通道的中间一行像素采用的是准星点阈值分割,大于准星点阈值,二值模板相应像素为1,否则二值模板相应像素为0;其余行像素灰度大于0,二值模板相应像素为1,否则为0;
(3.1.2)判断中心像素及其8邻域即3*3模板内星点像素的个数是不是大于2,3*3模板记为模板C3x3,M*M模板去掉C3x3记为模板C补;
(3.1.3)剔除模板C补不属于当前M*M模板中心像素所在星点的星点像素。
本发明的一个实施例中,所述步骤(3.1.3)中的判断的标准为:
(a)首先C补中被判断像素是星点像素;(b)该星点像素8邻域像素没有模板C3x3的星点像素;如果满足上述标准就判定被判断像素不属于模板中心像素所在的星点,则令被判断星点像素灰度为0,否则保持原值。
按照本发明的另一方面,还提供了一种基于FPGA的实时星点质心定位装置,包括中心控制器、阈值计算模块、阈值分割模块、星点提取模块、缓存模块、质心计算模块以及FIFO模块,其中:
所述中心控制器,用来产生电路的控制信号,控制各个模块的数据流;
所述阈值计算模块,接收来自星敏感器的数据,对接收数据进行阈值计算。模块电路采用顺序结构,对扫描输入的像素同时累加求像素和和平方和,一帧图像累加完毕,利用累加和计算图像的均值和方差,利用均值和方差得到阈值,将阈值输出到中心控制器;
所述阈值分割模块,接收来自星敏感器的星图数据和中心控制器的上一帧的阈值,采用背景阈值对当前星图分割。模块采用M路通道并行分割,将(M-1)条行延迟线串行连接,(M-1)条行延迟与当前输入形成M路并行通道进行分割;
所述星点提取模块,连接阈值分割模块,接收M路分割结果,进行星点的判断。模块的结构是一个M*M的数据模板和对应的二值模板,根据星点判断依据,判断质心是否在模板的中心像素位置,输出质心计算所需要的数据;
所述缓存模块,接收来自星点提取模块的数据。本模块用FIFO来实现,用于缓存星点提取模块输出的M*M模板内质心计算所需数据;
所述质心计算模块,接收缓存模块的数据,采用查表法和数值循环法计算质心的坐标。本模块的结构采用寄存器组作为查找表,根据接收到的数据建立查找表,查找表计算完毕,对缓存模块的每一个星点计算质心;
所述FIFO模块,与质心计算模块相连,用于缓存质心定位结果。
本发明的有益结果为:本发明采用流水线的硬件结构可以实现星图的实时处理;可以对星点实时判断,考虑到星点的灰度是近似二维高斯分布,可排除比较亮的噪声点误判为星点;采用模板计算,当阈值取小时,有效星点包含的噪声点比较多时,可以减少噪声点的影响;本发明不需要大的存储器,节约存储资源;质心计算结合查找表的方法提高了运算速度,在本发明的基础上可以设定有效星点的个数,对得到的星点进行亮度排序,以得到比较亮的几颗星,经过大量的仿真实验,本发明具有运算速度快,精度高的特点。
附图说明
图1为本发明设计的硬件结构简图;
图2为本发明基于FPGA的实时星点质心定位方法的流程图;
图3为本发明实施例中阈值计算模块的硬件结构简图;
图4为本发明实施例中阈值分割模块的硬件结构简图;
图5为本发明实施例中星点提取模块的硬件结构简图;
图6为本发明实施例中质心计算模块的硬件结构简图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明硬件电路结构如图1,一种基于FPGA的实时星点定位设计装置包含中心控制器107主要用来控制整个电路的工作流程,内部包含有阈值计算的参数寄存器、当前星图的分割阈值、存储器的读写控制以及其他模块的控制逻辑和状态显示逻辑等。阈值计算模块101用来计算背景阈值和准星点阈值。阈值分割模块102对当前星图进行阈值分割,分割后并行输出M路数据到星点提取模块103,星点提取模块103对阈值分割模块102输出的M路数据会相应的产生两个对应的M*M的模板,用来进行星点的判断。
星点提取模块103输出M*M模板内质心计算所需数据到缓存模块104。缓存模块104连接质心计算模块105,质心计算模块105采用查表法和数值循环法计算质心的坐标,FIFO模块106用来缓存质心定位结果。
如图2,本发明提供了一种基于FPGA的实时星点质心定位方法,包括如下步骤:
S1、利用下式进行星图的阈值计算:
T1=E+μ1×σ
T2=E+μ2×σ
其中T1是自适应背景阈值,T2是自适应准星点阈值,E为图像的灰度均值,μ1,μ2为预设的常数,σ为图像的标准差;
S2、星图的分割:扫描输入星图像素并形成M路并行通道,其中M为预设值;按照上一帧星图阈值保存结果对当前并行输入像素进行分割,若当前像素灰度不小于背景阈值,判断为星点像素,保留原始像素灰度,否则将当前像素灰度设置为0;
S3、星点提取:采用M*M像素的矩形模板,并行输入M通道的数据;根据S1步骤中计算的背景阈值和准星点阈值判断当前矩形模板中心像素所在位置是否为星点质心;
S4、星点数据的存储:将可用来计算星点质心的M*M模板的各行像素灰度和及各列像素灰度以及整个M*M模板的灰度像素和缓存到存储器;
S5、星点质心计算:利用下式计算质心:
将模板中心像素的坐标为设为(0,0),其实际坐标为(x0,y0),式中(xc,yc)为所求质心坐标,变量I(i,j)表示图像行坐标i,列坐标j处的像素灰度,T为背景阈值,L为M/2向下取整;
S6、星点质心结果缓存:将得到的星点质心的x,y坐标以及质心特征缓存到FIFO。
具体介绍每个步骤的电路结构和工作流程:
如图3所示,阈值计算模块阈值计算方法需要先计算出全局像素的均值和方差,均值Mean和方差Var的公式如下:
公式中I(i,j)表示M*N图像第i行,j列的像素灰度。
电路结构以1024*1024pixels为例,定义一个像素和寄存器和一个像素平方和寄存器,用来保存扫描输入的像素灰度累加和和像素灰度平方和。为了易于硬件实现,调节μ的值可以用方差代替标准差。通过来自中心控制器的参数来输入μ的值,整帧图像累加完毕,计算阈值,用阈值寄存器保存最终结果。
如图4所示,阈值分割模块提供M路数据的并行输出,电路结构为(M-1)条深度为1024的行延迟线,行延迟线用双端口的SRAM实现,M路输出的像素与中心控制器模块输出的阈值参数进入比较器,像素大于背景阈值的输出原值像素灰度,小于背景阈值的输出像素灰度0。
如图5所示,星点提取模块,对于输入的已经分割后的数据生成两个模板,模板用寄存器组来生成。一个模板是二值模板,二值模板实际大小为M*(M+1),一个是用来缓存经过星图分割后的数据模板,大小为M*M。二值模板的前M行M列模板A用来判断模板中心像素是不是准星点像素以及剔除不属于中心像素所在的星点的其余星点像素。判断的标准如下:
(1)对M通道并行输入的像素的中间一行采用的是准星点阈值分割,大于准星点阈值,二值模板相应像素为1,否则二值模板相应像素为0。其余行像素灰度大于0,二值模板像素为1,否则为0。
(2)判断中心像素及其8邻域即3*3模板内星点像素的个数是不是大于2,3*3模板记为模板C3x3,M*M模板去掉C3x3记为模板C补。
(3)剔除模板C补不属于当前M*M模板中心像素所在星点的星点像素。判断的标准:(a)首先被判断像素是星点像素;(b)该星点像素8邻域像素没有模板C3x3的星点像素。如果满足上述标准就判定被判断像素不属于模板中心像素所在的星点,则令被判断星点像素灰度为0,否则保持原值。
上述步骤(2)(3)可并行执行。
在一个周期内可以同时计算完毕,符合要求的M*M模板像素会移动到下一个周期,也就是M*M的模板B,模板B会作用到阈值分割后的M*M数据模板C,模板B中是1的位置,数据模板C保留原值,模板B中为0的位置,数据模板C相应为0。
由于星点的分布是近似于二维高斯分布,行方向和列方向的边缘分布也是高斯分布,所以通过判断中间像素所在的行像素灰度和是不是各行像素灰度和的最大值,以及列像素灰度和是不是各列的像素灰度和的最大值来判断质心位置在不在模板C中心位置,由于距离中心像素最远的行或列像素灰度较小,受到噪声污染严重,所以判断的标准是距离中心像素所在的行垂直距离为D(0<D<M/2)像素或者距离中心像素所在的列垂直距离为D像素的所有像素,D设为1,通过下式(1)(2)来作为判断中心像素所在的行像素灰度和是否为各行像素灰度和最大值,用式(3)(4)式来判断中心像素所在的列像素灰度和是否为各列像素灰度和的最大值。
公式中的x1~xM为图像I的行坐标,y1~yM为图像I的列坐标,l为M/2的向上取整。如果符合要求就粗定位判断该M*M的模板中心像素是星点质心所在位置。
依据步骤S5质心计算公式将输入的定点数据各行像素灰度加权和及各列像素灰度加权和,模板像素灰度和,中心像素坐标(x0,y0),本模板属于该星点的像素个数等保存到存储器中。
如图6所示,质心计算模块首先读取缓存模块的数据,将定点转化为浮点,做浮点除法运算。浮点数数值循环法:根据除法运算的手动运算方法,每次比较二进制被除数和除数的大小,如果被除数大于除数,商为1,余数为两者的差值,否则商为0,余数为被除数。将余数左移一位,不断重复上述步骤,直到商满足位宽要求或者余数为0。这样实现触发器运算速度比较慢,做浮点数除法至少需要24个时钟周期。
在此项算法的基础上做改进,加入查找表,步骤如下:
(1)数据模板的像素灰度和作为除数,将其尾数分别乘以7~2,保存为Reg7,Reg6,Reg5,Reg4,Reg3,Reg2。Reg2有效位宽为25位,Reg3有效位宽为25位也可能为26位,Reg4有效位宽为26位,Reg5、Reg6、Reg7有效位宽为26或者27位。将得到的结果按照25,26或者27位分别放到x_25,x_26和x_27寄存器组,同时又按照得到的结果的高几位放到相应寄存器中。具体定义x_25[0:1][1:0],两个寄存器x_25[0]、x_25[1],x_25[0]匹配位宽为25位,高两位为10的数据,x_25[1]匹配位宽为25位,高两位为11的数据,每个寄存器位宽为2bit,高位表示除数乘以3,低位表示除数乘以2。例如Reg3的位宽为25位,前两位为11,则x_25[1]寄存器的高位为1,x_25[0]寄存器的高位为0。定义x_26[0:3][4:0],四个寄存器x_26[0:3],x_26[0:3]分别匹配100,101,110,111,每个寄存器位宽为5bit,存放的是从高位到低位为除数乘以7,除数乘以6,除数乘以5,除数乘以4,除数乘以3,例如如果Reg7满足位宽为26位并且高3位为111,则寄存器x_26[3]的最高位为1,其余寄存器的最高位为0。同样定义x_27[0:3][2:0],四个寄存器x_27[0:3],位宽为3bit,由高到低为除数乘以7,除数乘以6,除数乘以5。
(2)定义三个新的寄存器组x01_25[0:1][2:0]、x01_26[0:3][2:0]和x01_27[0:3][2:0]寄存器单元(X01组)的数目是与x_25[0:1]、x_26[0:3]、x_27[0:3]寄存组(X组)相同的,但位宽不同。X01组的每个寄存器单元用来对应存储比X组的寄存器单元小的最大值的编号。例如x_27[1]寄存器的值是3’b110,表示x_27[1]存储的是Reg7和Reg6,那么比x_27[1]寄存器内数据小的一个最大数据就是Reg5,那么x01_27[1]的数据就是3’b101,存储该数据的目的是当x_27[1]寄存器的数据都大于被除数,那么该数据就是所要找的数。
(3)被除数每次左移3位,低位填3个0,从查找表X寄存器组和X01寄存器组中选择与被除数位宽相同,且前几位数据相等的寄存器单元指示的数据与被除数做减法。
除法运算硬件电路的具体执行步骤如下:
当被除数的高4位[26:23]为以下值:
4’b111x:被除数同时减去x_27[3]所指示的不为0的数及x01_27[3]编号所对应的数,从结果中找到最小正数,从减数中找到3位商值和对应余数。
4’b110x:被除数同时减去x_27[2]所指示的不为0的数及x01_27[2]编号所对应的数,同上。
4’b101x:被除数同时减去x_27[1]所指示的不为0的数及x01_27[1]编号所对应的数,同上。
4’b100x:被除数同时减去x_27[0]所指示的不为0的数及x01_27[0]编号所对应的数,同上。
4’b0111:被除数同时减去x_26[3]所指示的不为0的数及x01_26[3]编号所对应的数,同上。
4’b0110:被除数同时减去x_26[2]所指示的不为0的数及x01_26[2]编号所对应的数,同上。
4’b0101:被除数同时减去x_26[1]所指示的不为0的数及x01_26[1]编号所对应的数,同上。
4’b0100:被除数同时减去x_26[0]所指示的不为0的数及x01_26[0]编号所对应的数,同上。
4’b0011:被除数同时减去x_25[1]所指示的不为0的数及x01_25[1]编号所对应的数,同上。
4’b0010:被除数同时减去x_25[0]所指示的不为0的数及x01_25[0]编号所对应的数,同上。
4’b0001:被除数减去除数,差值为负数,商为3’b000,余数为被除数,否则,商为3’b001,余数为差值。
(4)余数向左移3位,低位填3个0,作为新的被除数,重复步骤(3)。
这样的质心计算的方法可以在一个周期得到3位有效的商数,直到达到所需要的商的位宽或者余数为0就停止运算,这种质心计算的方法还有改进的空间。
最后的FIFO用来缓存质心数据,包括质心的坐标和星点的灰度平均值。中心控制模块用来控制整个电路的整体的工作时序。
本发明由阈值计算、阈值分割、星点提取、缓存、质心计算、FIFO模块设计实现。充分利用硬件的并行性、流水线结构设计实现星图数据处理,提高运算速度;减少大容量存储器的的使用,节约硬件资源;利用像素模板,考虑星点的分布,快速实现星点的提取;改进浮点除法,结合查找表和数值循环法,快速实现计算质心。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种基于FPGA的实时星点质心定位装置,其特征在于,包括中心控制器、阈值计算模块、阈值分割模块、星点提取模块、缓存模块、质心计算模块以及FIFO模块,其中:
所述中心控制器,用来产生电路的控制信号,控制各个模块的数据流;
所述阈值计算模块,接收来自星敏感器的数据,对接收数据进行阈值计算;模块电路采用顺序结构,对扫描输入的像素同时累加求像素和和平方和,一帧图像累加完毕,利用累加和计算图像的均值和方差,利用均值和方差得到阈值,将阈值输出到中心控制器;所述阈值计算模块的电路结构包括像素和寄存器、像素平方和寄存器、减法器、乘法器或者移位器、加法器、移位寄存器、阈值寄存器,像素和寄存器、像素平方和寄存器分别用来保存扫描输入的像素灰度累加和和像素灰度平方和,像素和寄存器的输出端分别连接加法器和减法器,像素平方和寄存器的输出端依次连接减法器、乘法器或者移位器、加法器,加法器的输出端依次连接移位寄存器、阈值寄存器;
所述阈值分割模块,接收来自星敏感器的星图数据和中心控制器输出的背景阈值,对当前星图分割;模块采用M路通道并行分割,将M-1条行延迟线串行连接,M-1条行延迟线与当前输入形成M路并行通道进行分割;所述阈值分割模块的电路结构包括M-1条深度为1024的行延迟线、M个比较器,行延迟线用双端口的SRAM实现,M路输出的像素与中心控制器模块输出的阈值参数进入比较器,像素大于背景阈值的输出原值像素灰度,小于背景阈值的输出像素灰度0;
所述星点提取模块,连接阈值分割模块,接收M路分割结果,对于输入的已经分割后的数据生成两个模板;模板用寄存器组来生成,模块的结构是一个M*M的数据模板和对应的二值模板,根据星点判断依据,判断质心是否在模板的中心像素位置,输出质心计算所需要的数据;二值模板实际大小为M*(M+1),用来缓存经过星图分割后的数据模板,大小为M*M;二值模板的前M行M列模板A用来判断模板中心像素是不是准星点像素以及剔除不属于中心像素所在的星点的其余星点像素,判断的标准如下:
(s1)对M通道并行输入的像素的中间一行采用的是准星点阈值分割,大于准星点阈值,二值模板相应像素为1,否则二值模板相应像素为0;其余行像素灰度大于0,二值模板像素为1,否则二值模板像素为0;
(s2)判断中心像素及其8邻域即3*3模板内星点像素的个数是不是大于2,3*3模板记为模板C3x3,M*M模板去掉C3x3记为模板C补;
(s3)剔除模板C补不属于当前M*M模板中心像素所在星点的星点像素;判断标准:(a)首先被判断像素是星点像素;(b)该星点像素8邻域像素没有模板C3x3的星点像素;如果满足上述标准就判定被判断像素不属于模板中心像素所在的星点,则令被判断星点像素灰度为0,否则保持原值;
上述步骤(s2)(s3)并行执行;
在一个周期内同时计算完毕,符合要求的M*M模板像素会移动到下一个周期,也就是M*M的模板B,模板B会作用到阈值分割后的M*M数据模板C,模板B中是1的位置,数据模板C保留原值,模板B中为0的位置,数据模板C相应为0;
通过判断中间像素所在的行像素灰度和是不是各行像素灰度和的最大值,以及列像素灰度和是不是各列的像素灰度和的最大值来判断质心位置在不在模板C中心位置,由于距离中心像素最远的行或列像素灰度较小,受到噪声污染严重,所以判断的标准是距离中心像素所在的行垂直距离为D,0<D<M/2,像素或者距离中心像素所在的列垂直距离为D像素的所有像素,D设为1,通过下式(1)(2)来作为判断中心像素所在的行像素灰度和是否为各行像素灰度和最大值,用式(3)(4)式来判断中心像素所在的列像素灰度和是否为各列像素灰度和的最大值;
公式中的x1~xM为图像I的行坐标,y1~yM为图像I的列坐标,l为M/2的向上取整;如果符合要求就粗定位判断该M*M的模板中心像素是星点质心所在位置;
所述缓存模块,接收来自星点提取模块的数据;本模块用FIFO来实现,用于缓存星点提取模块输出的M*M模板内质心计算所需数据;
所述质心计算模块,接收缓存模块的数据,采用查表法和数值循环法计算质心的坐标;本模块的结构采用寄存器组作为查找表,根据接收到的数据建立查找表,查找表计算完毕,对缓存模块的每一个星点计算质心,步骤如下:
(t1)数据模板的像素灰度和作为除数,将其尾数分别乘以7~2,保存为Reg7,Reg6,Reg5,Reg4,Reg3,Reg2;Reg2有效位宽为25位,Reg3有效位宽为25位或者26位,Reg4有效位宽为26位,Reg5、Reg6、Reg7有效位宽为26或者27位;将得到的结果按照25,26或者27位分别放到x_25,x_26和x_27寄存器组;
(t2)定义三个新的寄存器组x01_25[0:1][2:0]、x01_26[0:3][2:0]和x01_27[0:3][2:0],X01组寄存器单元的数目是与x_25[0:1]、x_26[0:3]、x_27[0:3]X组寄存组器单元相同的,但位宽不同;X01组的每个寄存器单元用来对应存储比X组的寄存器单元小的最大值的编号;
(t3)被除数每次左移3位,低位填3个0,从查找表X组寄存器单元和X01组寄存器单元中选择与被除数位宽相同;
除法运算硬件电路的具体执行步骤如下:
当被除数的高4位[26:23]为以下值:
4’b111x:被除数同时减去x_27[3]所指示的不为0的数及x01_27[3]编号所对应的数,从结果中找到最小正数,从减数中找到3位商值和对应余数;
4’b110x:被除数同时减去x_27[2]所指示的不为0的数及x01_27[2]编号所对应的数,从结果中找到最小正数,从减数中找到3位商值和对应余数;
4’b101x:被除数同时减去x_27[1]所指示的不为0的数及x01_27[1]编号所对应的数,从结果中找到最小正数,从减数中找到3位商值和对应余数;
4’b100x:被除数同时减去x_27[0]所指示的不为0的数及x01_27[0]编号所对应的数,从结果中找到最小正数,从减数中找到3位商值和对应余数;
4’b0111:被除数同时减去x_26[3]所指示的不为0的数及x01_26[3]编号所对应的数,从结果中找到最小正数,从减数中找到3位商值和对应余数;
4’b0110:被除数同时减去x_26[2]所指示的不为0的数及x01_26[2]编号所对应的数,从结果中找到最小正数,从减数中找到3位商值和对应余数;
4’b0101:被除数同时减去x_26[1]所指示的不为0的数及x01_26[1]编号所对应的数,从结果中找到最小正数,从减数中找到3位商值和对应余数;
4’b0100:被除数同时减去x_26[0]所指示的不为0的数及x01_26[0]编号所对应的数,从结果中找到最小正数,从减数中找到3位商值和对应余数;
4’b0011:被除数同时减去x_25[1]所指示的不为0的数及x01_25[1]编号所对应的数,从结果中找到最小正数,从减数中找到3位商值和对应余数;
4’b0010:被除数同时减去x_25[0]所指示的不为0的数及x01_25[0]编号所对应的数,从结果中找到最小正数,从减数中找到3位商值和对应余数;
4’b0001:被除数减去除数,差值为负数,商为3’b000,余数为被除数,否则,商为3’b001,余数为差值;
所述FIFO模块,与质心计算模块相连,用于缓存质心定位结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610072227.6A CN105761288B (zh) | 2016-02-02 | 2016-02-02 | 一种基于fpga的实时星点质心定位方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610072227.6A CN105761288B (zh) | 2016-02-02 | 2016-02-02 | 一种基于fpga的实时星点质心定位方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105761288A CN105761288A (zh) | 2016-07-13 |
CN105761288B true CN105761288B (zh) | 2019-02-01 |
Family
ID=56342976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610072227.6A Expired - Fee Related CN105761288B (zh) | 2016-02-02 | 2016-02-02 | 一种基于fpga的实时星点质心定位方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105761288B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106846398B (zh) * | 2016-12-05 | 2020-09-18 | 北京空间机电研究所 | 一种基于图像行数据扫描的星空目标最大光强位置的识别方法 |
CN108168541B (zh) * | 2017-12-20 | 2021-02-26 | 北京遥感设备研究所 | 一种改进的亚像元星点质心定位方法 |
CN108716916B (zh) * | 2018-05-31 | 2021-05-25 | 北京航空航天大学 | 一种基于超级块的分布式并行星点质心提取方法及fpga实现装置 |
CN109029426A (zh) * | 2018-08-22 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种星敏感器 |
CN109443381B (zh) * | 2018-10-17 | 2022-05-20 | 北京遥感设备研究所 | 一种星敏感器质心精度自适应补偿方法 |
CN109559305B (zh) * | 2018-11-26 | 2023-06-30 | 易思维(杭州)科技有限公司 | 一种基于soc-fpga的线结构光图像快速处理*** |
CN109685782A (zh) * | 2018-12-18 | 2019-04-26 | 北京遥感设备研究所 | 一种基于fpga的高速星点检测方法及*** |
CN109671032B (zh) * | 2018-12-18 | 2023-04-07 | 桂林理工大学 | 一种根据影像亮度特征的补偿因子均衡模型的构建方法 |
CN109949311B (zh) * | 2019-01-31 | 2024-02-23 | 广东欧谱曼迪科技有限公司 | 基于fpga的高清图像超低延时的otsu实现方法 |
CN109829913A (zh) * | 2019-02-20 | 2019-05-31 | 北京航空航天大学 | 基于连通域像素灰度和的单粒子像点鉴别方法 |
CN109949204B (zh) * | 2019-03-29 | 2023-08-15 | 江苏亿通高科技股份有限公司 | 流水线结构的星点质心提取电路 |
CN110647173B (zh) * | 2019-10-10 | 2020-12-29 | 四川赛狄信息技术股份公司 | 一种视频跟踪***及方法 |
CN111105446B (zh) * | 2019-11-18 | 2023-04-18 | 上海航天控制技术研究所 | 一种星点提取与补偿方法 |
CN111402176B (zh) * | 2020-04-21 | 2023-02-14 | 中国科学院光电技术研究所 | 一种在轨实时去除aps星敏感器固定模式噪声的方法 |
CN112198521A (zh) * | 2020-09-29 | 2021-01-08 | 上海兰宝传感科技股份有限公司 | 一种提高三角测距精度的方法 |
CN112614079B (zh) * | 2020-12-31 | 2023-06-16 | 东方红卫星移动通信有限公司 | 一种基于余数***的光斑图像处理方法、***及计算机存储介质 |
CN112784832B (zh) * | 2021-02-09 | 2022-09-09 | 西南科技大学 | 一种物体标记点识别方法及装置 |
CN113514054A (zh) * | 2021-06-16 | 2021-10-19 | 北京遥感设备研究所 | 一种星敏感器星点像斑检测方法及*** |
CN113808193B (zh) * | 2021-08-30 | 2024-02-02 | 西安理工大学 | 一种基于分块阈值的光斑质心定位方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968361A (zh) * | 2009-07-28 | 2011-02-09 | 韩春好 | 基于星光观测的空间绝对定向技术 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100780464B1 (ko) * | 2006-12-22 | 2007-11-28 | 한국항공우주연구원 | 별센서에서의 별 중심찾기 방법 |
-
2016
- 2016-02-02 CN CN201610072227.6A patent/CN105761288B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968361A (zh) * | 2009-07-28 | 2011-02-09 | 韩春好 | 基于星光观测的空间绝对定向技术 |
Non-Patent Citations (2)
Title |
---|
Research on dynamic performance of star tracker;SUN Ting等;《Instrumentation》;20150315;第2卷(第1期);第17-26页 |
基于FPGA的CCD星敏感器星图预处理;李爽;《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》;20090215(第02期);第34-61页 |
Also Published As
Publication number | Publication date |
---|---|
CN105761288A (zh) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105761288B (zh) | 一种基于fpga的实时星点质心定位方法及装置 | |
CN108898610A (zh) | 一种基于mask-RCNN的物体轮廓提取方法 | |
CN108052942B (zh) | 一种飞机飞行姿态的视觉图像识别方法 | |
CN109740665A (zh) | 基于专家知识约束的遮挡图像船只目标检测方法及*** | |
CN108875600A (zh) | 一种基于yolo的车辆信息检测和跟踪方法、装置及计算机存储介质 | |
CN102278990B (zh) | 基于fpga的星敏感器图像处理方法 | |
Xu et al. | CNN-based Feature-point Extraction for Real-time Visual SLAM on Embedded FPGA | |
Deng et al. | Energy-efficient real-time UAV object detection on embedded platforms | |
CN112989947B (zh) | 一种人体关键点的三维坐标的估计方法及装置 | |
Ttofis et al. | Towards accurate hardware stereo correspondence: A real-time fpga implementation of a segmentation-based adaptive support weight algorithm | |
Wang et al. | Ship detection based on deep learning | |
Yao et al. | AYOLOv3-Tiny: An improved convolutional neural network architecture for real-time defect detection of PAD light guide plates | |
CN109859178A (zh) | 一种基于fpga的红外遥感图像实时目标检测方法 | |
CN107577983A (zh) | 一种循环发现关注区域识别多标签图像的方法 | |
CN106548478B (zh) | 基于局部拟合图像的活动轮廓图像分割方法 | |
CN113888461A (zh) | 基于深度学习的小五金件缺陷检测方法、***及设备 | |
CN107705323A (zh) | 一种基于卷积神经网络的水平集目标追踪方法 | |
CN115953393B (zh) | 基于多任务学习的颅内动脉瘤检测***、设备及存储介质 | |
Wang et al. | A fast underwater optical image segmentation algorithm based on a histogram weighted fuzzy C-means improved by PSO | |
Yin et al. | G2Grad-CAMRL: an object detection and interpretation model based on gradient-weighted class activation mapping and reinforcement learning in remote sensing images | |
Xiao et al. | FDLR-Net: A feature decoupling and localization refinement network for object detection in remote sensing images | |
Zhang et al. | Aluminum alloy microstructural segmentation method based on simple noniterative clustering and adaptive density-based spatial clustering of applications with noise | |
Ng et al. | Variational fuzzy superpixel segmentation | |
KR20110037184A (ko) | 뉴로-퍼지 시스템과 병렬처리 프로세서가 결합된, 파이프라이닝 컴퓨터 시스템, 이를 이용하여 영상에서 물체를 인식하는 방법 및 장치 | |
CN103093241B (zh) | 基于同质化处理的光学遥感图像非匀质云层判别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190201 |
|
CF01 | Termination of patent right due to non-payment of annual fee |