论文部分内容阅读
随着计算机技术不断向前发展,现代数字技术越来越成熟,图像识别技术也得到了普遍的使用。目前已经有比较完善的基于计算机软件实现的图像识别技术,但是在移动电子迅速发展、嵌入式应用极度扩张的今天,计算机软件实现的图像识别在日常应用中显得远远不够。而在图像识别的应用中,面临着越来越多的挑战,对于算法简单、易于实现的传统算法如模板匹配、小波变换等,在解决复杂图像、有污损、有杂波等图像的识别应用中,显得力不存心。所以,研究BP神经网络算法在复杂图像识别领域的应用就显得尤为重要。BP神经网络在图像识别领域的应用同样是越来越广泛,BP神经网络在用作分类器时表现出色,所以尝试用BP神经网络来进行图像识别工作已经成为图像识别领域的一大潮流。近10年来,FPGA凭借其设计灵活、并行运算、便携性好等特点,已经从以往通讯领域迅速延伸到了各个领域,包括数字图像的处理。基于FPGA来实现BP神经网络的图像识别方法已经有很多理论研究和仿真验证的正确结果,并且有很多针对硬件实现进行的算法优化理论,但是暂时还没有基于FPGA实现的用于图像识别的BP神经网络。所以设计BP神经网络的FPGA实现也显得非常有必要。本论文通过研究神经网络的各种改进算法,对算法进行优化选择,提出了一种基于FPGA实现BP神经网络算法的方案。BP神经网络作为神经网络中使用最广泛的一种,应用到图像识别领域已经有很长一段时间了。对网络训练算法的改进也在不断向前发展,出现了各种各样的改进学习算法。对网络的硬件实现方式也有一定的探索和研究,但是最终很少有针对图像识别的具体问题来具体实现的硬件BP神经网络。为了通过硬件实现BP神经网络,论文整体由三大模块构成。在第一个模块里边介绍了神经网络和图像识别目前的发展现状,以及神经网络的基础理论知识和BP算法的具体运算方式及其算法的几种改进手段。第二个模块着重结合BP神经网络应用的灵活性,针对驾驶员疲劳监视系统需求提出BP神经网络需要解决的具体问题,根据具体问题构建基于BP祌经网络的图像识别模型。通过Matlab仿真确定具体问题的神经网络的组建参数,并针对参数选取对硬件算法进行优化修改,并得到仿真结果,形成一个完整的可用于驾驶员疲劳监视系统的图像识别硬件模型。第三个模块从定性和定量两个方面分析硬件实现BP神经网络的具体运作流程并对神经网络进行了模块划分。分别实现了BP神经网络各运算单元的设计:16位乘法器、累加器、触发函数sigmoid、触发函数的导数dsigmoid和RAM存储模块的设计,通过对各个模块实现的算法进行分析择优,在硬件环境下设计实现了运算单元该模块的设计验证。分别设计了神经元的前向运算控制功能、输出层神经元的反向运算控制功能以及隐含层神经元的反向运算控制功能。通过调用各运算单元和分析神经元的工作流程,实现了隐含层神经元和输出层神经元的设计封装。例化隐含层神经元和输出层神经元完成了硬件BP神经网络BPt_ne的封装。由于最终设计实现的神经网络占用资源比较多,在当前实验环境无法直接在硬件上实现。所以网络只能在软件环境下进行训练跟踪和进行结果验证。在论文的最后,进行了BP神经网络BP论文_net的仿真验证设计,同时实现了硬件BP神经网络波形仿真。结合结果验证设计了软件仿真过程的数据交换功能,从而实现网络的训练和结果的验证。