一种基于FPGA的实时幸运成像方法及系统与流程

文档序号:21102784发布日期:2020-06-16 20:58阅读:197来源:国知局
一种基于FPGA的实时幸运成像方法及系统与流程

本发明涉及一种基于fpga的实时幸运成像方法及系统,属于图像处理技术领域。



背景技术:

大气湍流是大气中一种不规则的随机运动,湍流每一点上的压强、速度、温度等物理特性随机涨落。由于大气湍流的存在,引起大气折射率分布不均匀,星光通过大气传输之后,波前发生畸变,致使星光闪烁、星像晃动,更为严重的是,使星光散开导致星像成为一团模糊的斑点而非一个小亮点。最终使得长曝光的星像成为一个半峰全宽值较大的高斯像,连续短曝光的系列星像则是中心在一定范围内随机变化的形状各异的斑点像。大气湍流使望远镜的实际分辨率远低于望远镜的衍射极限分辨率,它是限制地基光学望远镜空间分辨率的一个主要因素。

基于cpu进行幸运成像算法的研究是有效的,但由于cpu串行处理的特性,其计算能力有限,所构建的幸运成像系统运行时间较长,不具有实时性。在使用emccd进行短曝光观测过程中,由于大气湍流效应,观测者对于所拍摄图像中天体的实时状况了解不多,特别是暗弱天体信息更是无法知晓,难以及时发现并纠正观测中可能存在的偏差或错误,很可能浪费宝贵的观测时间。对幸运成像观测经验不足的观测员来说尤其严重。因此,采用计算能力强大的新型处理硬件和研究新的快速幸运成像算法,构建高速甚至是实时的幸运成像系统就成为一个重要的研究方向。

相较于传统的cpu串行处理方式而言,fpga具有高并行性和灵活性,还能提供强大的并行计算能力和内存带宽,当前使用fpga进行高速视频图像处理是图像处理领域的一个研究热点。



技术实现要素:

本发明要解决的技术问题是:本发明克服基于cpu的幸运成像技术的缺陷,以及现有基于fpga的幸运成像系统不能实时处理、动态更新和显示的问题,提供了一种基于fpga的实时幸运成像方法,并搭建了一个具有实时处理、动态更新和显示的幸运成像系统。

本发明技术方案是:一种基于fpga的实时幸运成像方法及方法,其方法是采用固定选图比和流水线操作的方式,在图像数据传输的同时,首先进行图像的预处理、动态选图、实时配准和叠加处理,然后采用9个实时分割阈值水平切割高分辨率图像,最后对二值图像进行动态更新和显示。

所述方法具体步骤如下:

步骤1:系统上电后,由emccd相机将光图像转换成数字图像;

工作站实时采集并临时存储图像数据,通过gmii接口将图像数据不断的发送给千兆网接收模块;

千兆网接收模块将接收到的图像数据送入图像预处理模块,进行高斯滤波和宇宙射线的剔除,其后将预处理完毕的数据送入实时幸运成像算法处理模块;

步骤2:将经实时幸运成像算法处理模块处理后的结果图送入多阈值二值化模块,以增强目标区域的可视性,然后将图像数据分成两路:一路经千兆网发送模块回传到工作站保存高分辨率图像;一路传给vga控制模块,产生控制信号,控制vga显示模块驱动fpga片外接口电路,将高分辨率图像在vga显示器上显示;

步骤3:在天文图像的不断传输过程中,每当有幸运图像更新时,就返回到步骤2,实时动态更新高分辨率图像。

一种基于fpga的实时幸运成像系统,包括emccd相机、工作站、千兆网接收模块、千兆网发送模块、图像预处理模块、实时幸运成像算法处理模块、多阈值二值化模块、vga控制模块、vga显示模块和vga显示器;

所述emccd相机用于将光图像转换成数字图像;

所述工作站,用于实时采集图像数据并临时存储,然后通过gmii接口不断的送往千兆网接收模块,最后保存千兆网发送模块回传的高分辨率图像;

所述千兆网接收模块,用于将接收到的图像数据不断的送往图像预处理模块;

所述千兆网发送模块,用于将多阈值分割后的二值图像回传到工作站;

所述图像预处理模块,用于对接收到的图像数据进行预处理,并送往实时幸运成像处理模块。

所述图像预处理模块,它由两个子模块构成:其一是高斯滤波模块,用于对图像进行高斯滤波处理;另一是宇宙射线剔除模块,用于对图像进行宇宙射线的剔除处理。

所述高斯滤波模块,采用3x3的高斯高斯滤波器模板进行降噪滤波,具体实施方案是用模板扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。

所述宇宙射线剔除模块方法的工作流程,检测脉冲宽度为1个时钟周期的指示信号,当检测到时,就读取信息寄存器中的横纵坐标和峰值信息,紧接着,判断是否满足配准要求,如果满足,就读取信息寄存器中的图像序号信息,判断是否为第一帧图像,如果是,就判断峰值是否小于初始阈值,如果不是,就判断是否小于自适应阈值。如果信息寄存器中保存的位置信息满足配准要求并且峰值小于阈值,就保持信息寄存器中的峰值信息不变,否则,就将信息寄存器中的峰值信息置0。最后判断图像帧数计数器的值是否等于给定的图像总帧数,如果是,流程结束,如果不是,继续检测脉冲宽度为1个时钟周期的指示信号,如此往复,直到流程结束。其中初始阈值x0为前三帧预处理图像峰值中的中值。第n帧天文图像的自适应阈值tn由初始阈值x0和前n-1帧天文图像的峰值(x1,x2,…,xi,…,xn-1)共同确定,计算公式为

递推关系式为

式中a为比例常数,一般在2到2.5之间,如果xn大于tn,根据图像的成像质量就可以认为该帧图像包含宇宙射线,应剔除;

所述多阈值二值化模块,用于对叠加完成后的高分辨率图像进行水平切割,采用阈值二值分割法对叠加完成后的高分辨率图像进行水平切割,阈值二值分割法的基本公式如下:

式中,ii(x,y)为叠加完成后的高分辨率图像像素值,io(x,y)为输出的二值图像像素值,t为分割阈值。一方面设置两组按键控制分割阈值,一组按键对其进行微调,另一组按键对其进行大调,用于实时跟踪高分辨率图像最优阈值,达到最佳显示效果;另一方面设置9个阈值同步进行切割,9个阈值大小按等差数列分布,用于更好的捕捉高分辨率图像中暗弱天体的信息。切割完成后将图像数据分成两路,一路经千兆以太网发送模块回传到工作站保存高分辨率图像;一路传给vga控制模块,产生控制信号,控制vga驱动显示模块驱动fpga片外接口电路,将高分辨率图像在vga显示器上显示。

所述vga控制模块用于控制经多阈值分割后的二值图像在vga显示器上的位置;vga显示模块用于把9帧二值图像按3×3的排列方式在vga显示器上显示,vga显示器的分辨率为1024×768。

所述实时幸运成像算法模块包括ddr3存储控制模块、选图算法模块、配准算法模块和叠加算法模块。用于对预处理完成后图像数据进行存储、选图、配准和叠加处理,处理完成后送往多阈值二值化模块。

所述选图算法模块用于获取n帧图像中按1%的选图比选出的m帧峰值最大的图像进行配准叠加处理,并存储峰值所在图像位置的横纵坐标,n,m均为正整数。

所述选图算法模块方法的工作流程如下:

步骤1:最前面的m个经过图像预处理模块后的峰值依次暂存在ram地址1至地址m中。

步骤2:下一个经过图像预处理模块后的峰值都暂存到ram地址m+1上。

步骤3:依次读取ram地址1到地址m+1,相互比较并记录最小值所在的ram地址k。

步骤4:把暂存在地址m+1上的峰值写入到最小值所在存储地址单元k中。

步骤5:地址k和当前帧图像峰值所在位置坐标(行、列号)送入配准模块进行配准。

步骤6:转步骤2,直到无输入图像为止。

所述配准算法模块,用于把选图算法模块得出峰值所在图像位置的横纵坐标,根据式

addr=[(axisx-32)×512+axisy-32]×4

计算出要裁剪的图像首地址,然后送给ddr3存储控制模块进行处理。

所述叠加算法模块用于将配准后的图像进行叠加,然后送入多阈值二值化模块进行处理。ram1是一个真双口ram,即有两个写端口和两个读端口,ram2是一个简单双口ram,即有一个写端口和一个读端口。为了完成图像数据的无缝缓冲和处理任务,并节省缓冲区空间,本系统叠加过程采用一个真双口ram和一个简单双口ram进行乒乓操作实现图像的叠加。乒乓操作主要是依靠切换两个ram之间的读写操作实现的,即当ram1进行写操作时,ram2进行读操作,当一帧图像叠加完毕后,切换状态,即ram1进行读操作,ram2进行写操作,直到1%的图像叠加完毕,此时ram2中存储的就是全部叠加后的图像,图像传输过程中,只要有幸运图像更新时,就重置叠加模块,进行新一轮的叠加。

所述ddr3存储控制模块能将ddr3存储器配置成3个32位端口,即ddr3_p1口、ddr3_p2口和ddr3_p0口。并且在ddr3_p1口和ddr3_p2口之间进行乒乓操作,实现原始图像的快速存储。乒乓操作主要是依靠切换两个存储块之间的读写操作实现的,即当ddr3_p1口进行写操作时,ddr3_p2口进行读操作;当一帧图像读取完毕后,切换状态,即ddr3_p1口进行读操作,ddr3_p2口进行写操作,如此往复。ddr3_p1口和ddr3_p2口每次分别只存储一帧原始天文图像。当ddr3_p1口或ddr3_p2口进行读操作时,ddr3_p0口存储配准裁剪后的天文图像,ddr3_p0口存储方式与选图算法类似。每个子存储块存储一帧裁剪图像,占用16384个地址单元。当一帧裁剪图像存储到存储块i中,该存储块的首地址为kx16384,k为选图模块传递过来的参数。这样每次都能保证ddr3_p0口中存储块1到存储块m中的裁剪图像,就是n个图像峰值中前m个最大值对应的裁剪图像。

本发明的有益效果是:克服了基于cpu的幸运成像技术的实时性问题,解决了现有基于fpga的幸运成像系统不能实时处理、动态更新和显示的关键性问题。提供了一种基于fpga的实时幸运成像方法,并搭建了一个具有实时处理、动态更新和显示的幸运成像系统。同时对原始图像进行了滤波和剔除宇宙射线处理,使之能更加稳定的进行幸运重建;并采用9个实时切割阈值切割高分辨率重建图像,使之实时跟踪高分辨率图像最优阈值,达到最佳显示效果,并能更好的捕捉高分辨率图像中暗弱天体的信息。本发明提供的fpga算法设计的方法和实现技术,也具有通用性,可以为其它fpga算法的设计和实现作为参考。

附图说明

图1是本发明系统框图;

图2是本发明的实时幸运成像算法模块内部框图;

图3是本发明的叠加算法模块实现框图;

图4是本发明的ddr3存储控制模块ddr3_p0口存储方式图;

图5是本发明的宇宙射线剔除模块流程图;

图6是本发明的选图算法模块示意图。

具体实施方式

下面结合附图和具体实施例,对本发明作进一步说明。

实施例1:如图1所示,一种基于fpga的实时幸运成像方法及系统,其方法是采用固定选图比和流水线操作的方式,在图像数据传输的同时,首先进行图像的预处理、动态选图、实时配准和叠加处理,然后采用9个实时分割阈值水平切割高分辨率图像,最后对二值图像进行动态更新和显示。整个系统包括emccd相机、工作站、千兆网接收模块、千兆网发送模块、图像预处理模块、实时幸运成像算法处理模块以及vga控制和显示模块。

所述方法的工作流程如下:

步骤1:系统上电后,由emccd相机将光图像转换成数字图像,工作站实时采集并临时存储图像数据,通过gmii接口将图像数据不断的发送给千兆网接收模块。系统将接收到的图像数据送入图像预处理模块,进行高斯滤波和宇宙射线的剔除。其后将预处理完毕的数据送入实时幸运成像算法处理模块。

步骤2:将经实时幸运成像算法处理模块处理后的结果图送入多阈值二值化模块,以增强目标区域的可视性,然后将图像数据分成两路:一路经千兆以太网发送模块回传到工作站保存高分辨率图像;一路传给vga控制模块,产生控制信号,控制vga驱动显示模块驱动fpga片外接口电路,将高分辨率图像在vga显示器上显示。

步骤3:在天文图像的不断传输过程中,每当有幸运图像更新时,就返回到步骤2,实时动态更新高分辨率图像。

所述emccd相机,用于将光图像转换成数字图像。

所述工作站,用于实时采集图像数据并临时存储,然后通过gmii接口不断的送往千兆网接收模块,最后保存千兆网发送模块回传的高分辨率图像。

所述千兆网接收模块,用于将接收到的图像数据不断的送往图像预处理模块。

所述千兆网发送模块,用于将多阈值分割后的二值图像回传到工作站。

所述图像预处理模块,用于对接收到的图像数据进行预处理,并送往实时幸运成像处理模块。

所述图像预处理模块,它由两个子模块构成:其一是高斯滤波模块,用于对图像进行高斯滤波处理;另一是宇宙射线剔除模块,用于对图像进行宇宙射线的剔除处理。

所述高斯滤波模块,采用3x3的高斯高斯滤波器模板进行降噪滤波,具体实施方案是用模板扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。

如图5所示,所述宇宙射线剔除模块方法的工作流程,检测脉冲宽度为1个时钟周期的指示信号,当检测到时,就读取信息寄存器中的横纵坐标和峰值信息,紧接着,判断是否满足配准要求,如果满足,就读取信息寄存器中的图像序号信息,判断是否为第一帧图像,如果是,就判断峰值是否小于初始阈值,如果不是,就判断是否小于自适应阈值。如果信息寄存器中保存的位置信息满足配准要求并且峰值小于阈值,就保持信息寄存器中的峰值信息不变,否则,就将信息寄存器中的峰值信息置0。最后判断图像帧数计数器的值是否等于给定的图像总帧数,如果是,流程结束,如果不是,继续检测脉冲宽度为1个时钟周期的指示信号,如此往复,直到流程结束。其中初始阈值x0为前三帧预处理图像峰值中的中值。第n帧天文图像的自适应阈值tn由初始阈值x0和前n-1帧天文图像的峰值(x1,x2,…,xi,…,xn-1)共同确定,计算公式为

递推关系式为

式中a为比例常数,一般在2到2.5之间,如果xn大于tn,根据图像的成像质量就可以认为该帧图像包含宇宙射线,应剔除;

所述多阈值二值化模块,用于对叠加完成后的高分辨率图像进行水平切割,采用阈值二值分割法对叠加完成后的高分辨率图像进行水平切割,阈值二值分割法的基本公式如下:

式中,ii(x,y)为叠加完成后的高分辨率图像像素值,io(x,y)为输出的二值图像像素值,t为分割阈值。一方面设置两组按键控制分割阈值,一组按键对其进行微调,另一组按键对其进行大调,用于实时跟踪高分辨率图像最优阈值,达到最佳显示效果;另一方面设置9个阈值同步进行切割,9个阈值大小按等差数列分布,用于更好的捕捉高分辨率图像中暗弱天体的信息。切割完成后将图像数据分成两路,一路经千兆以太网发送模块回传到工作站保存高分辨率图像;一路传给vga控制模块,产生控制信号,控制vga驱动显示模块驱动fpga片外接口电路,将高分辨率图像在vga显示器上显示。

所述vga控制模块用于控制经多阈值分割后的二值图像在vga显示器上的位置;vga显示模块用于把9帧二值图像按3×3的排列方式在vga显示器上显示,vga显示器的分辨率为1024×768。

如图2所示,所述实时幸运成像算法模块包括ddr3存储控制模块、选图算法模块、配准算法模块和叠加算法模块。用于对预处理完成后图像数据进行存储、选图、配准和叠加处理,处理完成后送往多阈值二值化模块。

所述选图算法模块用于获取n帧图像中按1%的选图比选出的m帧峰值最大的图像进行配准叠加处理,并存储峰值所在图像位置的横纵坐标,n,m均为正整数。

如图6所示,所述选图算法模块方法的工作流程如下:

步骤1:最前面的m个经过图像预处理模块后的峰值依次暂存在ram地址1至地址m中。

步骤2:下一个经过图像预处理模块后的峰值都暂存到ram地址m+1上。

步骤3:依次读取ram地址1到地址m+1,相互比较并记录最小值所在的ram地址k。

步骤4:把暂存在地址m+1上的峰值写入到最小值所在存储地址单元k中。

步骤5:地址k和当前帧图像峰值所在位置坐标(行、列号)送入配准模块进行配准。

步骤6:转步骤2,直到无输入图像为止。

所述配准算法模块,用于把选图算法模块得出峰值所在图像位置的横纵坐标,根据式

addr=[(axisx-32)×512+axisy-32]×4

计算出要裁剪的图像首地址,然后送给ddr3存储控制模块进行处理。

如图4所示,所述叠加算法模块用于将配准后的图像进行叠加,然后送入多阈值二值化模块进行处理。ram1是一个真双口ram,即有两个写端口和两个读端口,ram2是一个简单双口ram,即有一个写端口和一个读端口。为了完成图像数据的无缝缓冲和处理任务,并节省缓冲区空间,本系统采用一个真双口ram和一个简单双口ram进行乒乓操作实现图像的叠加。乒乓操作主要是依靠切换两个ram之间的读写操作实现的,即当ram1进行写操作时,ram2进行读操作,当一帧图像叠加完毕后,切换状态,即ram1进行读操作,ram2进行写操作,直到1%的图像叠加完毕,此时ram2中存储的就是全部叠加后的图像,图像传输过程中,只要有幸运图像更新时,就重置叠加模块,进行新一轮的叠加。

如图2所示,所述ddr3存储控制模块能将ddr3存储器配置成3个32位端口,即ddr3_p1口、ddr3_p2口和ddr3_p0口。并且在ddr3_p1口和ddr3_p2口之间进行乒乓操作,实现原始图像的快速存储。乒乓操作主要是依靠切换两个存储块之间的读写操作实现的,即当ddr3_p1口进行写操作时,ddr3_p2口进行读操作;当一帧图像读取完毕后,切换状态,即ddr3_p1口进行读操作,ddr3_p2口进行写操作,如此往复。ddr3_p1口和ddr3_p2口每次分别只存储一帧原始天文图像。当ddr3_p1口或ddr3_p2口进行读操作时,ddr3_p0口存储配准裁剪后的天文图像,ddr3_p0口存储方式与选图算法类似,如图3所示。每个子存储块存储一帧裁剪图像,占用16384个地址单元。当一帧裁剪图像存储到存储块i中,该存储块的首地址为kx16384,k为选图模块传递过来的参数。这样每次都能保证ddr3_p0口中存储块1到存储块m中的裁剪图像,就是n个图像峰值中前m个最大值对应的裁剪图像。

上面结合附图对本发明的具体实施例作了详细说明,但是本发明并不限于上述实施例,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1