论文部分内容阅读
在机器视觉领域中,卷积神经网络算法作为一种新兴算法出现,在图像识别领域中,卷积神经网络能够较好的实现图像的分类效果,而且其位移和形变具有较高的容忍能力。由于卷积神经网络算法需要进行大量的运算,主要是由乘法、加法运算组成。根据其算法的并行运算特性,在硬件上实现这种并行计算越来越重要。当前,卷积网络算法并行计算方式主要是通过GPU组成并行运算平台实现,然而随着集成电路的发展,具有大量可编程逻辑资源的现场可编程门阵列(FPGA)获得了飞速的发展,在单个FPGA中集成了数以亿计的晶体管。而且在目前的FPGA芯片中不仅具有大量的可编程资源、内部存储器资源以及互联互线资源,而且还通过内部集成大量DSP硬核来配合可编程资源来完成大规模的乘加运算的实现,FPGA的这些特点使得FPGA越来越广泛用于实现计算密集型应用加速的场景中。充分发挥FPGA其具有的特性,在应用卷积神经网络算法的领域中,可以通过其并行计算来充分提高卷积神经网络中并行计算的效率。本文基于HLS的SDSoC设计工具相关技术,快速的开发高性能、低功耗的卷积神经网络算法的图像识别系统。根据以上技术发展,本文在开发图像分类系统中具体做了以下工作:1)本文通过查阅大量资料,对卷积神经网络算法并行计算的特点进行了大量研究,最后利用FPGA并行计算的优势,在SDSoC平台上设计相应的卷积神经网络图像识别系统。2)使用Vivado搭建SDSoC的硬件平台,实现图像的采集与显示功能。重点介绍了卷积神经网络离线训练、测试以及权重参数提取实现的过程。其中卷积神经网络训练是在Linux中利用GPU进行训练,权重参数通过Python脚本提取。3)根据SDSoC的特性,在软件上实现了卷积神经网络算法,并根据HLS的优化策略,对卷积神经网络进行优化,最终使卷积神经网络的卷积运算在FPGA上进行加速计算。完成算法实现后,可以在硬件上实现图像分类。实验通过以软件串行方式实现和FPGA并行实现算法进行对比,从中可以得到,算法优化后在FPGA上实现的精度和分类识别的速度快都相比算法未优化都有很大的提升,其识别精度可达72.58%,识别速度可达每3秒识别一张图片。