论文部分内容阅读
合成孔径雷达(SAR,Synthetic ApeRture Radar)具有全天时,全天候,穿透能力强等特点,因而被广泛应用于军事侦查,地物勘测等领域。对于高分辨SAR图像来说,由于图像分辨率很高,给我们带来丰富信息的同时也加重了处理器的负担,并且增加了算法的运行时间。为了加快算法的收敛速度,我们需要使用嵌入式设备对算法做加速和优化。FPGA(Field-Programmable Gate Array)内部具有大量的逻辑资源,具备很强的并行能力,又具有低功耗,低延时和可重编程的特点,因此它在算法加速方面具有得天独厚的优势。OpenCL(Open Computing Language)是一个跨平台的并行计算框架,运用OpenCL语言来开发FPGA比使用Verilog等硬件描述语言(HDL)具有更短的开发周期,对于大多数对FPGA底层的硬件资源不精通的软件开发人员来说,使用OpenCL语言做FPGA开发是非常便捷的。本文主要阐述了高分辨SAR图像飞机目标检测算法在异构平台上的加速和优化过程,并且对比了算法在CPU和异构平台上的运行时间,检测效果。围绕这个主题主要做了以下工作:(1)设计高分辨SAR图像飞机目标检测算法的并行结构,将飞机目标检测算法在FPGA上并行实现。本文需要并行实现的算法包括机场跑道检测算法,跑道定向算法,亮线检测算法,停机位模板匹配算法和飞机模板匹配算法。本次开发使用C++语言进行主机程序的设计,使用OpenCL语言进行内核程序的设计。本文在实现这些算法时,尽可能将图像数据从OpenCL的全局内存导入局部缓存,在分配工作组时需要注意每个工作组内的工作项对全局内存的访问复杂度不能太高,这样做可以明显缩短内存访问的时间。(2)采用FPGA的性能优化方法对并行算法做进一步优化,具体优化策略包括访存优化,向量化,循环展开,流水线复制。同时也在编程方面做了一些优化工作,如使用位运算代替乘除运算,使用位运算代替数据交换运算,使用OpenCL的内置函数代替C语言的库函数等。本文对比了算法在CPU平台和异构平台上的检测率,虚警率以及算法收敛时间,可以看出,算法在异构平台上的运行时间较CPU明显缩短,然而我们在追求算法收敛速度的同时适当地损失了算法的性能,因此检测率有所降低。