[发明专利]一种基于FPGA的实时星点质心定位方法及装置有效
申请号: | 201610072227.6 | 申请日: | 2016-02-02 |
公开(公告)号: | CN105761288B | 公开(公告)日: | 2019-02-01 |
发明(设计)人: | 桑红石;高英华 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06T7/60 | 分类号: | G06T7/60 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 实时 星点 质心 定位 方法 装置 | ||
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模块,与质心计算模块相连,用于缓存质心定位结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610072227.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种微地形表面重建方法
- 下一篇:一种彩色图像去彩方法及系统