一种基于FPGA的目标聚类实现方法及装置与流程

文档序号:13704647阅读:331来源:国知局

本发明属于空间微波遥感技术领域,尤其涉及一种基于fpga的目标聚类实现方法及装置。



背景技术:

在我国海上安全利益迅速增长情况下,微波遥感卫星能够对地球大范围区域进行观测,能准确感知并获取海洋信息,及时提供决策支持,有助于快速解决海洋突发事件。合成孔径雷达能够对海上舰船目标进行在轨成像与检测,能快速获得舰船目标的位置、类型等信息,可满足用户对海洋目标监视的应用需求。

雷达回波信号在经过成像处理得到sar图像后,需要经过目标检测、聚类才能获得准确的目标位置、类型信息。目前,大多数的针对sar图像的目标聚类方法都处在理论研究阶段。由于聚类算法要针对大批量成像数据进行循环操作,运算量大、算法灵活,所以工程上大多使用dsp实现;少数使用fpga实现聚类算法的方案耗费的逻辑存储资源多,实时性差。综上,目前还没有一种基于fpga的针对sar实时成像及目标检测的聚类方法。



技术实现要素:

本发明解决的技术问题是:克服现有技术的不足,提供了一种基于fpga的目标聚类实现方法及装置,不但可以准确对目标实现点迹凝聚,还可以减少硬件开销、降低fpga功耗,提高实时性,确保其在sar实时成像场合的应用。

本发明目的通过以下技术方案予以实现:根据本发明的一个方面,提供了一种基于fpga的目标聚类实现方法,所述方法包括以下步骤:

步骤1:sar图像经过检测得到超过检测门限点的行列位置向量,其中,向量包括若干个待聚类的元素;

步骤2:在fpga中建立三个先入先出队列分别为fifo1、fifo2、fifo3,将所有待聚类的元素放入fifo1中,然后进入步骤3;

步骤3:将步骤2中fifo1的所有待聚类的元素依次读出,将第一个元素的坐标与所有元素坐标相比较进行聚类,能够聚成同一个目标的元素放入fifo2,否则将元素放入fpga的fifo3,然后进入步骤4;

步骤4:判断fifo3是否为空,若为空则表示fifo2中的所有元素都聚为一类目标;若fifo3非空且fifo2中元素个数为1,则fifo2中的一个元素聚类成为一点,将步骤3中的fifo3的数据写入fifo1中,从步骤3开始进行新一个目标的聚类;若fifo3非空且fifo2中元素个数不为1,进行步骤5;

步骤5:fifo2中元素的个数为n,读出fifo2的一个元素与fifo3所有元素相比较,能够聚成同一个目标的元素放入fifo2,否则将元素放入fifo3;判断fifo3是否为空,若为空则fifo2中的元素聚类为一个目标,聚类结束,否则进入步骤6;

步骤6:重复步骤5n-1次,fifo2中的元素聚类成一个目标,然后进入步骤7;

步骤7:判断fifo3中是否只剩一个元素,若fifo3中只有一个元素,则fifo3中的一个元素为一个目标,聚类结束;否则,将fifo3的元素读出写入fifo1中,从步骤3开始进行新一个目标的聚类。

上述基于fpga的目标聚类实现方法中,在步骤1中,向量中的每一元素表示sar图像中一个检测到的像素点的行列位置。

上述基于fpga的目标聚类实现方法中,在步骤1之前还包括:预设sar图像大小为a行b列,则行列位置向量中最多有a*b个元素。

上述基于fpga的目标聚类实现方法中,在步骤1之前还包括:预设聚类窗的列大小r1,聚类窗的行大小r2。

上述基于fpga的目标聚类实现方法中,聚类的判别标准为:

若某一元素的坐标值为(m1,n1),m1为列坐标,n1为行坐标;另一元素的坐标值为(m2,n2),m2为列坐标,n2为行坐标;则将这两个元素聚类成为同一个目标的判据为:

abs(m2-m1)≤r1和abs(n2-n1)≤r2。

上述基于fpga的目标聚类实现方法中,在步骤3中,fifo1、fifo2和fifo3三个队列的深度为a*b。

根据本发明的另一个方面,还提供了一种基于fpga的目标聚类实现装置,包括:第一模块,用于将sar图像经过检测得到超过检测门限点的行列位置向量,其中,向量包括若干个待聚类的元素;第二模块,用于在fpga中建立三个先入先出队列分别为fifo1、fifo2、fifo3,并且将所有待聚类的元素放入fifo1中;第三模块,用于将fifo1的所有待聚类的元素依次读出,将第一个元素的坐标与所有元素坐标相比较进行聚类,能够聚成同一个目标的元素放入fifo2,否则将元素放入fpga的fifo3;第四模块,用于判断fifo3是否为空;第五模块,用于若第四模块中的fifo3为空则表示fifo2中的所有元素都聚为一类目标;若第四模块中的fifo3非空且fifo2中元素个数为1,则fifo2中的一个元素聚类成为一点,将第三模块中的fifo3的数据写入fifo1中;第六模块,用于若第四模块中的fifo3非空且fifo2中元素个数为n,读出fifo2的一个元素与fifo3所有元素相比较,能够聚成同一个目标的元素放入fifo2,否则将元素放入fifo3;第七模块,用于判断fifo3是否为空,若为空则fifo2中的元素聚类为一个目标,聚类结束;第八模块,用于判断fifo3中是否只剩一个元素,若fifo3中只有一个元素,则fifo3中的一个元素为一个目标,聚类结束;否则,将fifo3的元素读出写入fifo1中。

上述基于fpga的目标聚类实现装置中,向量中的每一元素表示sar图像中一个检测到的像素点的行列位置。

上述基于fpga的目标聚类实现装置中,还包括:第九模块,用于预设sar图像大小为a行b列,则行列位置向量中最多有a*b个元素。

上述基于fpga的目标聚类实现装置中,还包括:第十模块,预设聚类窗的列大小r1,聚类窗的行大小r2。

根据本发明的又一个方面,提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行本发明的一个方面的一个或多个的方法。

本发明与现有技术相比具有如下有益效果:

(1)本发明使用fpga实现合成孔径雷达的聚类算法,不需要在硬件上增加dsp(数字信号处理器)器件,减小了硬件规模;

(2)本发明使用fpga中简单的逻辑资源和存储资源实现聚类算法,降低了fpga功耗,减少了调试及维护的难度,可移植性高;

(3)本发明在对先入先出队列(fifo)进行读写操作的同时,对数据进行逻辑运算与比较,提高方法的实时性,确保其在sar实时成像场合的应用。

附图说明

图1是本发明的基于fpga的目标聚类实现方法的流程图。

具体实施方式

下面结合附图对本发明作进一步详细说明:

图1是本发明的基于fpga的目标聚类实现方法的流程图。如图1所示,该基于fpga的目标聚类实现方法包括以下步骤:

步骤1:合成孔径雷达(sar)图像经过检测得到超过检测门限点的行列位置向量,其中,向量包括若干个待聚类的元素;

步骤2:在fpga中建立三个先入先出队列分别为fifo1、fifo2、fifo3,将所有待聚类的元素放入fifo1中,然后进入步骤3;

步骤3:将步骤2中fifo1的所有待聚类的元素依次读出,将第一个元素的坐标与所有元素坐标相比较进行聚类,能够聚成同一个目标的元素放入fifo2,否则将元素放入fpga的fifo3,然后进入步骤4;

步骤4:判断fifo3是否为空,若为空则表示fifo2中的所有元素都聚为一类目标;若fifo3非空且fifo2中元素个数为1,则fifo2中的一个元素聚类成为一点,将步骤3中的fifo3的数据写入fifo1中,从步骤3开始进行新一个目标的聚类;若fifo3非空且fifo2中元素个数不为1,进行步骤5;

步骤5:fifo2中元素的个数为n,读出fifo2的一个元素与fifo3所有元素相比较,能够聚成同一个目标的元素放入fifo2,否则将元素放入fifo3;判断fifo3是否为空,若为空则fifo2中的元素聚类为一个目标,聚类结束,否则进入步骤6;

步骤6:重复步骤(5)n-1次,fifo2中的元素聚类成一个目标,然后进入步骤7;

步骤7:判断fifo3中是否只剩一个元素,若fifo3中只有一个元素,则fifo3中的一个元素为一个目标,聚类结束;否则,将fifo3的元素读出写入fifo1中,从步骤3开始进行新一个目标的聚类。

在步骤1中,聚类方法的输入:

合成孔径雷达在完成成像与检测后,距离多普勒图像中可能包含多个目标,每个目标又由若干像素点组成。聚类方法的输入为:

合成孔径雷达(sar)图像经过检测得到的超过门限点的行列位置向量,向量中的每一元素表示sar图像中一个检测到的像素点的行列位置;

sar图像的大小,若sar图像大小为a行b列,则行列位置向量中最多有a*b个元素;

聚类窗列大小r1,聚类窗行大小r2,即sar图像中若两个点间列距离小于r1且行距离小于r2,则两个点可以聚类为一个目标;

需要说明的是,参数r1和r2的值越大,越容易将不同元素聚类为同一目标,一副图像聚类完成后得到的目标个数越少;反之,不同元素越难聚类为同一目标,一副图像聚类完成后得到的目标个数越多。以大小为256行64列的sar图像为例,聚类窗列大小r1可选为4.,聚类窗行大小r2可选为4。

在步骤2中,在fpga中建立三个深度为a*b的先入先出队列分别为fifo1、fifo2和fifo3,将所有待聚类的元素放入fpga的fifo1中,如图1所示fifo1中的一个待聚类元素包含一个待聚类元素的行列位置信息。

在步骤3中,将步骤2中fifo1的所有元素与fifo1的第一个元素进行比较聚类,具体方法为:

将步骤2中fifo1的所有元素依次读出,将第一个元素的坐标与所有元素坐标相比较,能够与fifo1的第一个元素聚成同一个目标的元素放入fifo2,否则将元素放入fifo3。两个元素能够聚类为一个目标的判断依据为:

若某一元素的坐标值为(m1,n1),m1为列坐标,n1为行坐标,0<m1≤b,0<n1≤a;另一元素的坐标值为(m2,n2),m2为列坐标,n2为行坐标,0<m2≤b,0<n2≤a;则将这两个元素聚类成为一点的判据为:

abs(m2-m1)≤r1和abs(n2-n1)≤r2。

在步骤4中,判断聚类是否完成:通过fpga中fifo自带的空标志empty信号和可读数据计数器rd_data_count信号判断fifo2和fifo3的状态。判断fifo3是否为空,若为空即empty=1则表示所有元素聚类完成,fifo2中的所有元素都聚为一个目标;若fifo3非空即empty=0且fifo2中元素个数为1即rd_data_count=1,则fifo2中的一个元素聚类成为一点,将fifo3的数据写入fifo1中,从步骤3开始进行新一个目标的聚类;否则进行步骤5;

在步骤5中,比较fifo2和fifo3:步骤5开始前,fifo2中元素的个数为n,即rd_data_count=n。读出fifo2的一个元素依次与fifo3所有元素相比较,能够聚成同一个目标的元素放入fifo2,否则将元素放入fifo3。判断fifo3是否为空,若为空即empty=1则聚类结束,fifo2中的元素聚为一类目标;

在步骤6中,重复比较:重复步骤5n-1次,直到重复的次数等于fifo2中数据的个数减1,即将fifo2中每个元素都与fifo3中的元素比较过。比较完成后,一个目标聚类结束,fifo2中的元素聚类成一个目标。

在步骤7中,判断fifo3中是否只剩一个元素:在步骤6结束后,判断fifo3的元素个数,若fifo3中只有一个元素即rd_data_count=1,则fifo3中的一个元素为一个目标,聚类结束;否则,将fifo3的元素读出写入fifo1中,从步骤3开始进行新一个目标的聚类。

根据本发明的另一个方面,还提供了一种基于fpga的目标聚类实现装置,包括:第一模块,用于将sar图像经过检测得到超过检测门限点的行列位置向量,其中,向量包括若干个待聚类的元素;第二模块,用于在fpga中建立三个先入先出队列分别为fifo1、fifo2、fifo3,并且将所有待聚类的元素放入fifo1中;第三模块,用于将fifo1的所有待聚类的元素依次读出,将第一个元素的坐标与所有元素坐标相比较进行聚类,能够聚成同一个目标的元素放入fifo2,否则将元素放入fpga的fifo3;第四模块,用于判断fifo3是否为空;第五模块,用于若第四模块中的fifo3为空则表示fifo2中的所有元素都聚为一类目标;若第四模块中的fifo3非空且fifo2中元素个数为1,则fifo2中的一个元素聚类成为一点,将第三模块中的fifo3的数据写入fifo1中;第六模块,用于若第四模块中的fifo3非空且fifo2中元素个数为n,读出fifo2的一个元素与fifo3所有元素相比较,能够聚成同一个目标的元素放入fifo2,否则将元素放入fifo3;第七模块,用于判断fifo3是否为空,若为空则fifo2中的元素聚类为一个目标,聚类结束;第八模块,用于判断fifo3中是否只剩一个元素,若fifo3中只有一个元素,则fifo3中的一个元素为一个目标,聚类结束;否则,将fifo3的元素读出写入fifo1中。

上述实施例中,向量中的每一元素表示sar图像中一个检测到的像素点的行列位置。

上述实施例中,基于fpga的目标聚类实现装置还包括:第九模块,用于预设sar图像大小为a行b列,则行列位置向量中最多有a*b个元素。

上述实施例中,基于fpga的目标聚类实现装置还包括:第十模块,预设聚类窗的列大小r1,聚类窗的行大小r2。

根据本发明的又一个方面,还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行本发明的一个方面的一个或多个的方法。

本发明使用fpga实现合成孔径雷达的聚类算法,不需要在硬件上增加dsp(数字信号处理器)器件,减小了硬件规模;本发明使用fpga中简单的逻辑资源和存储资源实现聚类算法,降低了fpga功耗,减少了调试及维护的难度,可移植性高;本发明在对先入先出队列(fifo)进行读写操作的同时,对数据进行逻辑运算与比较,提高方法的实时性,确保其在sar实时成像场合的应用。

以上所述的实施例只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

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