论文部分内容阅读
随着各国对水下探测活动的深入开展,应用需求不断扩大。在军事领域,对水环境中可能存在的危险目标如水雷进行排查是确保水下安全性的重要环节。由于模板匹配、支持向量机等传统方法在水下目标识别中往往存在识别精度较低、重建过程复杂等问题,需要寻找更优的方法提高识别率及对图像变换的适应性。大数据时代的到来使得深度学习方法逐渐替代了传统的目标识别方法,卷积神经网络(Convolutional Neural Networks,CNN)作为深度学习算法的重要分支也逐步应用于水下目标的识别。CNN对于图像的位置平移、比例缩放、角度倾斜、空间旋转等各种形式的变换均有良好的适应性,且网络采取端对端模式,避免了复杂的重建过程。但为了得到更高的精度,CNN模型的计算量和参数量不断扩大。在探测过程中,大量计算及参数存储会对设备的功耗及实时性提出极大的挑战。针对上述问题,本文选取了识别率较高、计算量和参数量较小的卷积神经网络MobileNet作为水下目标识别的基础架构,并提出了基于深度可分离卷积的并行化加速框架。同时采用复用和可配置性设计的形式将资源和功率消耗尽可能降低,以满足无人潜航器等搭载环境对设备便携性及低功耗的要求。本文使用以Zynq7z045为核心的ZedBoard开发板为硬件实现平台,采用CPU与FPGA结合的形式搭建整体计算框架。设计有三方面的关键技术及难点:首先,区别于大部分研究中基于标准卷积的并行化运算方式,本课题对基于深度可分离卷积方式的MobileNet架构设计专门的并行化加速单元,在此基础上采取复用片上缓存及计算资源的形式实现架构整体运算。其次,通过可配置的设计,使单层深度可分离卷积能够支持多层不同配置的运算,同时通过配置运算启动次数实现不同压缩程度的架构。最后,对架构的整体控制时序进行优化,实现卷积层间最大程度的并行运算,进一步提高系统的实时性和硬件加速单元的资源利用率。课题采用卷积层间流水线并行运算的方式代替串行计算为主的控制时序,将系统运算速率提高了2.83倍。同时在未压缩架构的基础上配置了0.25和0.5倍压缩程度的架构进行测试,在100 MHz架构压缩比为0.5和0.25倍的情况下,系统帧率可达到1.38 fps和5.52 fps。相比于近年在Zynq7z045上实现的深度CNN架构,本设计具有更小的资源开销、更低的运行功耗,同时在计算速度上也具有一定优势。在无人潜航器目标追踪,水下机器人排雷等任务中具有一定的应用前景。