1.一种基于Zynq系列FPGA的D-S证据理论算法加速方法,其特征在于包括下述步骤:步骤一:输入两组待融合基本概率分配函数m1和m2,根据输入的基本概率分配函数m1和m2确定FPGA实现的D-S证据理论辨识框架大小N,所述辨识框架在证据理论中被定义为Θ={θ1,θ2,…,θN},所述基本概率分配函数在证据理论中被定义为对任意一个属于Θ的子集A,m(A)∈[0,1],且满足则m为2Θ上的基本概率分配函数,其中2Θ为辨识框架的幂集,步骤二:将辨识框架的幂集2Θ使用相交判断码进行编码,所述的使用相交判断码进行编码的方法为:每个幂集中的元素使用N位的二进制编码表示,N值大小在步骤一中已确定,所有单子集元素{θi}(i∈[1,N])用N位相交判断码表示时,从右向左第i位为1其余均为0,其中所述的单子集元素{θi}指的是步骤一中当且仅当子集A包含辨识框架Θ中的第i(i∈[1,N])个元素,所有多子集元素的对应编码必须表示为各自所包含单子集元素编码相加,所述多子集元素指的是步骤一中子集A包含辨识框架Θ中两个以上元素;步骤三:使用Zynq系列FPGA供应商Xilinx公司的Vivado HLS软件实现证据理论的组合规则,所述的证据理论的组合规则为:其中m1,m2为步骤一中输入的两组基本概率分配函数m1和m2,K为两组基本概率分配函数的冲突因子,在组合规则的实现过程中两组证据的相交判断使用步骤二中的相交判断编码,若两元素B、C相交为空,则对应相交判断码做交运算结果为0,若辨识框架两元素B、C相交不为空且等于A,则相交判断编码做交运算结果等于A对应的相交判断码;步骤四:使用Vivado HLS软件将步骤二中实现的组合规则进行优化,优化步骤如下:1.将循环中的操作选为流水线模式,在Vivado HLS软件中对循环使用流水线优化指令set_directive_pipeline,循环中的操作在综合后使用流水线模式,所述的综合是将硬件描述语言转化硬件结构;2.分割数组,在Vivado HLS软件中对数组使用数组优化指令set_directive_array_partition,数组在综合后映射为block RAM;步骤五:对步骤四中生成的RTL级硬件语言代码进行仿真,检测仿真结果是否正确,即计算结果与使用传统计算机程序计算结果是否相同,若计算结果不正确,返回步骤二修改,直至RTL级仿真结果符合要求,并使用Vivado HLS软件封装为IP核,应用场景包括使用D-S证据理论进行医学图像融合分割,故障诊断和目标识别;步骤六:使用Zynq系列FPGA供应商Xilinx公司提供的Vivado软件调用步骤四中生成的IP核并配置Zynq中的ARM处理器,使用AXI总线对IP核和ARM处理器进行连接,并且将串口、DDR、复位与ARM处理器连接,然后将生成的底层硬件设计文件导出到Zynq系列FPGA供应商Xilinx公司提供的SDK软件中;步骤七:使用Zynq系列FPGA供应商Xilinx公司提供的SDK软件根据底层硬件设计文件中的串口、IP核自动生成底层驱动程序,使用底层驱动程序的应用程序编程接口(API)函数编写具有串口数据输入、运算计时、串口数据输出功能的上层软件程序;步骤八:将步骤六中的底层硬件文件通过SDK软件中的bit流下载工具下载到FPGA中,并借助步骤七中编写的软件程序将步骤一中的两组基本概率分配函数m1、m2通过串口发送至FPGA进行运算,并在串口输出中读取使用D-S证据理论计算出的结果和此次计算的时间。
技术领域
本发明涉及目标识别、故障诊断、医学图像处理领域,尤其是一种D-S证据理论算法加速的方法。
背景技术
信息融合技术是协同利用多源信息,以获得对事物或目标更客观、更本质认识的信息综合处理技术,是智能科学研究的关键技术之一,在诸多的融合模型和方法中,D-S证据理论算法是最为有效的算法之一。证据理论把概率论中的基本事件空间拓宽为基本事件的幂集,又称为辨识框架,在辨识框架上建立了基本概率分配函数(Basic ProbabilityAssignment,BPA)。此外,证据理论还提供了一个Dempster组合规则,该规则可以在没有先验信息的情况下实现证据的融合。特别地,当BPA只在辨识框架的单子集命题上进行分配时,BPA就转换为概率论中的概率,而组合规则的融合结果与概率论中的Bayes公式相同。从这个角度来看,DS证据理论能够比概率论更有效地表示和处理不确定信息,这些特点使其在信息融合领域得到了广泛的应用。正是由于DS证据理论在不确定知识表示方面具有优良的性能,所以近几年其理论和应用发展较快,该理论在多传感器信息融合、医学诊断、军事指挥、目标识别方面发挥了重要作用。
证据理论虽然有诸多优点,但是也存在着一些问题有待解决,这些关键问题在很大程度上制约了它的应用推广。其中之一是基于证据理论的系统计算复杂度随着辨识框架中单子集命题数目的增长呈指数增长,使用传统的计算机则需要大量时间进行运算,无法应用到某些实时性要求较高的应用系统。针对这一问题,有研究者提出使用近似算法进行计算的加速,例如Yi Yang在期刊PLOS ONEs上发表的论文《Iterative Approximation ofBasic Belief Assignment Based on Distance of Evidence》,虽然这一方法取得了一些加速的作用,但这一加速方法是以牺牲运算结果的精度为代价的,在对计算结果有较高要求的应用系统中不适用,除此之外传统计算机的体积大,不利于在小型便携设备上应用,这些问题使证据理论的推广应用受到了很大制约。
发明内容
为了克服现有技术的不足,本发明提供一种用Zynq系列FPGA实现D-S证据理论算法加速的方法,以提高该算法的运算速度,实现系统的实时性,且使用该方法实现D-S证据理论算法在FPGA上的加速有较短的开发周期和较好的可移植性。
本发明解决其技术问题所采用的技术方案包括如下步骤:
步骤一:输入两组待融合基本概率分配函数m1和m2,根据输入的基本概率分配函数m1和m2确定FPGA实现的D-S证据理论辨识框架大小N,所述辨识框架在证据理论中被定义为Θ={θ1,θ2,…,θN},所述基本概率分配函数在证据理论中被定义为对任意一个属于Θ的子集A,m(A)∈[0,1],且满足则m为2Θ上的基本概率分配函数,其中2Θ为辨识框架的幂集,
步骤二:将辨识框架的幂集2Θ使用相交判断码进行编码,所述的使用相交判断码进行编码的方法为:
每个幂集中的元素使用N位的二进制编码表示,N值大小在步骤一中已确定,所有单子集元素{θi}(i∈[1,N])用N位相交判断码表示时,从右向左第i位为1其余均为0,其中所述的单子集元素{θi}指的是步骤一中当且仅当子集A包含辨识框架Θ中的第i(i∈[1,N])个元素,所有多子集元素的对应编码必须表示为各自所包含单子集元素编码相加,所述多子集元素指的是步骤一中子集A包含辨识框架Θ中两个以上元素;
步骤三:使用Zynq系列FPGA供应商Xilinx公司的Vivado HLS软件实现证据理论的组合规则,所述的证据理论的组合规则为:
其中m1,m2为步骤一中输入的两组基本概率分配函数m1和m2,K为两组基本概率分配函数的冲突因子,在组合规则的实现过程中两组证据的相交判断使用步骤二中的相交判断编码,若两元素B、C相交为空,则对应相交判断码做交运算结果为0,若辨识框架两元素B、C相交不为空且等于A,则相交判断编码做交运算结果等于A对应的相交判断码;
步骤四:使用Vivado HLS软件将步骤二中实现的组合规则进行优化,优化步骤如下:
1.将循环中的操作选为流水线模式,在Vivado HLS软件中对循环使用流水线优化指令set_directive_pipeline,循环中的操作在综合后使用流水线模式,所述的综合是将硬件描述语言转化硬件结构;
2.分割数组,在Vivado HLS软件中对数组使用数组优化指令set_directive_array_partition,数组在综合后映射为block RAM;
步骤五:对步骤四中生成的RTL级硬件语言代码进行仿真,检测仿真结果是否正确,即计算结果与使用传统计算机程序计算结果是否相同,若计算结果不正确,返回步骤二修改,直至RTL级仿真结果符合要求,并使用Vivado HLS软件封装为IP核,所述的应用场景包括使用D-S证据理论进行医学图像融合分割,故障诊断和目标识别;
步骤六:使用Zynq系列FPGA供应商Xilinx公司提供的Vivado软件调用步骤四中生成的IP核并配置Zynq中的ARM处理器,使用AXI总线对IP核和ARM处理器进行连接,并且将串口、DDR、复位与ARM处理器连接,然后将生成的底层硬件设计文件导出到Zynq系列FPGA供应商Xilinx公司提供的SDK软件中;
步骤七:使用Zynq系列FPGA供应商Xilinx公司提供的SDK软件根据底层硬件设计文件中的串口、IP核自动生成底层驱动程序,使用底层驱动程序的应用程序编程接口(API)函数编写具有串口数据输入、运算计时、串口数据输出功能的上层软件程序;
步骤八:将步骤六中的底层硬件文件通过SDK软件中的bit流下载工具下载到FPGA中,并借助步骤七中编写的软件程序将步骤一中的两组基本概率分配函数m1、m2通过串口发送至FPGA进行运算,并在串口输出中读取使用D-S证据理论计算出的结果和此次计算的时间。
本发明的有益效果在于本发明采用Xilinx公司推出全球第一款可扩展的Zynq系列FPGA,此款芯片很好的融合了ARM和FPGA,而且有丰富的内部资源和外部接口,具有高性能、灵活、低功耗优点;本发明提出的相交判断码,不仅很好的解决了D-S证据理论算法大量相交运算的实现,而且相比于传统使用字符串比较具有速度快、存储占用空间小等优点;本发明提出的基于Zynq系列FPGA的D-S证据理论的加速方法,使用了Xilinx公司的VivadoHLS软件,使开发工作不必了解寄存器RTL级知识,并绕开了开发难度高、复杂算法不易实现的硬件描述语言,使用Vivado HLS软件可以直接将高级语言转换为RTL级硬件描述语言,加之该软件完善的调试、优化系统,很大程度上缩短了开发的周期;本发明用Vivado HLS软件生成具有加速D-S证据理论算法加速功能的IP核,还适用于Xilinx公司其他系列FPGA,具有非常好的移植性。
附图说明
图1本发明实现的总流程图。
图2是本发明D-S证据理论硬件结构系统框图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
步骤一:输入两组待融合基本概率分配函数m1和m2,根据输入的基本概率分配函数m1和m2确定FPGA实现的D-S证据理论辨识框架大小N,所述辨识框架在证据理论中被定义为Θ={θ1,θ2,…,θN},所述基本概率分配函数在证据理论中被定义为对任意一个属于Θ的子集A,m(A)∈[0,1],且满足则m为2Θ上的基本概率分配函数,其中2Θ为辨识框架的幂集,
本实施例中,输入两组待融合基本概率分配函数,分别为m1,m2,其中m1={{},{θ1},{θ2},{θ3},{θ1,θ2},{θ1,θ3},{θ2,θ3},{θ1,θ2,θ3}}={0,0.6,0.1,0,0.2,0,0.1,0};m2={{},{θ1},{θ2},{θ3},{θ1,θ2},{θ1,θ3},{θ2,θ3},{θ1,θ2,θ3}}={0,0.5,0.2,0.1,0.1,0,0.1,0};辨识框架为Θ={θ1,θ2,θ3},因此辨识框架大小N为3;
步骤二:将辨识框架的幂集2Θ使用相交判断码进行编码,所述的相交判断编码的方法为:
每个幂集中的元素使用N位的二进制编码表示,N值大小在步骤一中已确定,所有单子集元素{θi}(i∈[1,N])用N位相交判断码表示时,从右向左第i位为1其余均为0,其中所述的单子集元素{θi}指的是步骤一中当且仅当子集A包含辨识框架Θ中的第i(i∈[1,N])个元素,所有多子集元素的对应编码必须表示为各自所包含单子集元素编码相加,所述多子集元素指的是步骤一中子集A包含辨识框架Θ中两个以上元素;
本实施例中对输入的辨识框架的幂集2Θ使用相交判断码进行编码,编码长度为N,m1={{},{θ1},{θ2},{θ3},{θ1,θ2},{θ1,θ3},{θ2,θ3},{θ1,θ2,θ3}}={{000},{001},{010},{100},{011},{101},{110},{111}}={0,0.6,0.1,0,0.2,0,0.1,0};m2={{},{θ1},{θ2},{θ3},{θ1,θ2},{θ1,θ3},{θ2,θ3},{θ1,θ2,θ3}}={{000},{001},{010},{100},{011},{101},{110},{111}}={0,0.5,0.2,0.1,0.1,0,0.1,0};
步骤三:使用Zynq系列FPGA供应商Xilinx公司的Vivado HLS软件实现证据理论的组合规则,所述的证据理论的组合规则为:
其中m1,m2为步骤一中输入的两组基本概率分配函数m1和m2,K为两组基本概率分配函数的冲突因子,在组合规则的实现过程中两组证据的相交判断使用步骤二中的相交判断编码,若两元素B、C相交为空,则对应相交判断码做交运算结果为0,若辨识框架两元素B、C相交不为空且等于A,则相交判断编码做交运算结果等于A对应的相交判断码;
使用Vivado HLS实现D-S证据理论算法组合规则,步骤二产生的相交判断码使用高级语言的数组存储,对应的值使用另外两组数组进行存储,使用高级语言实现时,使用循环语句首先累加计算K值,然后再次使用循环语句计算融合后的结果m,循环中相交运算采用步骤二中相交判断码使用方法:若两元素B、C相交为空则对应相交判断码做交运算结果为0,辨识框架为若两元素B、C相交不为空且等于A,则相交判断编码做交运算结果等于A的相交判断码,其余累加和除法运算采用基本高级语言语句描述;
步骤四:使用Vivado HLS软件对步骤三中实现的组合规则进行优化并生成RTL级硬件描述代码,使在资源占用率最小的情况下,计算速度最快,发挥FPGA的并行优势,其中优化步骤如下:
1)将循环中的操作优化为流水线模式,在Vivado HLS软件中对循环使用流水线优化指令set_directive_pipeline,循环中的操作就在综合后使用流水线模式,增加资源的利用率,加快运算并行度和计算速度,所述的综合是将硬件描述语言转化硬件结构;本发明使用FPGA公司提供的Vivado HLS软件实现,在完成优化后直接点击综合键即可完成综合;
2)分割数组,在Vivado HLS软件中对数组使用数组优化指令set_directive_array_partition,数组在综合后映射为block RAM分别使用多个block RAM和block ROM存储以增加其传输接口,分割后的RAM由于数据端口增加,从而消除数据输入输出瓶颈,增加数据输入输出的并行性;
步骤五:对步骤四中生成的RTL级硬件语言代码进行仿真,检测仿真结果是否正确,即计算结果与使用传统计算机程序计算结果是否相同,若计算结果不正确,返回步骤二修改,直至RTL级仿真结果符合要求,并使用Vivado HLS软件封装为IP核,所述的应用场景包括使用D-S证据理论进行医学图像融合分割,故障诊断和目标识别;
步骤六:使用Zynq系列FPGA供应商Xilinx公司提供的Vivado软件调用步骤四中生成的IP核并配置Zynq中的ARM处理器,使用AXI总线对IP核和ARM处理器进行连接,并且将串口、DDR、复位与ARM处理器连接,连接后的系统如图2所示,然后将生成的底层硬件设计文件导出到Zynq系列FPGA供应商Xilinx公司提供的SDK软件中;
步骤七:使用Zynq系列FPGA供应商Xilinx公司提供的SDK软件根据底层硬件设计文件中的串口、IP核自动生成底层驱动程序,使用底层驱动程序的应用程序编程接口(API)函数编写具有串口数据输入、运算计时、串口数据输出功能的上层软件程序;
步骤八:将步骤六中的底层硬件文件通过SDK软件中的bit流下载工具下载到FPGA中,并借助步骤七中编写的软件程序将步骤一中的两组基本概率分配函数m1、m2通过串口发送至FPGA进行运算,并在串口输出中读取使用D-S证据理论计算出的结果和此次计算的时间。
本实施例的输出结果为冲突系数K=0.37,融合结果m={{},{θ1},{θ2},{θ3},{θ1,θ2},{θ1,θ3},{θ2,θ3},{θ1,θ2,θ3}}={0,0.73,0.21,0.02,0.03,0,0.02,0},时间T=0.0014s,从结果可以看出融合后θ2的概率值最高,θ2是目标识别的最终结果,结果是综合了m1,m2两个信息源决定的,更加准确、客观、全面,且计算时间被有效缩短。



评论
全部评论
共{{commentCount}}条{{rs.Msg_Content}}