发明名称 基于FPGA+ARM多层卷积神经网络的手写体字符识别方法
摘要 本发明属于数字图像处理、模式识别技术领域,具体为一种基于FPGA+ARM多层卷积神经网络的手写体字符识别方法。本发明实现的硬件平台是Xilinx ZYNQ‑7030可编程片上SoC,硬件平台内置FPGA处理器和ARM Cortex A9。本发明首先在ARM端对输入的待识别手写体字符图像进行预处理,然后将结果图像传输到FPGA端,利用多层卷积神经网络提取图像特征,特征向量传输至ARM端完成手写体字符的识别。本发明充分利用了FPGA对大量简单重复计算的硬件并行处理能力和ARM的灵活可扩展优势,在保证算法模型性能的前提下,大幅降低了系统功耗。本发明的处理效率功耗比是主流服务器+GPU实现方案的10倍以上,有效解决了主流服务器+GPU方案功耗过大的问题。
申请公布号 CN106250939A 申请公布日期 2016.12.21
申请号 CN201610619786.4 申请日期 2016.07.30
申请人 复旦大学 发明人 周光朕;王展雄;冯瑞
分类号 G06K9/68(2006.01)I;G06N3/04(2006.01)I 主分类号 G06K9/68(2006.01)I
代理机构 上海正旦专利代理有限公司 31200 代理人 陆飞;陆尤
主权项  基于FPGA+ARM多层卷积神经网络的手写体字符识别方法,其特征在于:基于一个6层卷积神经网络模型,该卷积神经网络模型包括:1个输入层,2个卷积层,2个池化层,1个全连接层;卷积核大小为5×5,卷积核滑动步长为1;池化层采用均值法,其滑动窗口大小为2×2,滑动步长为2;其中,卷积层和池化层的计算在FPGA端实现,输入层和全连接层的计算在ARM端实现;具体步骤为:步骤一、模型参数处理与加载(1)离线训练所使用的多层卷积神经网络模型;(2)算法模型离线训练完毕后,将卷积层的参数包括卷积核与偏置量取负,并保存在ARM端;(3)系统运行后,首先加载算法模型参数,并通过APB总线传输并缓存至FPGA端;步骤二、待识别图像预处理(1)选择待识别的手写字符体图像;(2)对输入图像进行归一化处理,使其满足模型的计算需要;(3)ARM端将归一化结果通过APB总线传输到FPGA端,经FIFO缓存后,存放到Block RAM(块随机存储器)中;步骤三、卷积和池化计算在FPGA端对输入图像数据进行卷积层和池化层计算,算法模型设定有2个卷积层和2个池化层,具体步骤为:(1)第1个卷积层与池化层计算对图像数据与网络模型中第1个卷积层的卷积核进行卷积计算,将结果矩阵的各元素加上网络模型第1层的偏置参数,利用网络模型中的激活函数Sigmoid激活, 激活函数Sigmoid的数学公式如下:<img file="853253dest_path_image002.GIF" wi="185" he="50" />(1)第1个卷积层采用1个卷积核,大小为5×5的矩阵;卷积时,滑动窗尺度与卷积核大小相同,横向与纵向滑动步长均为1;然后对第1个卷积层计算结果进行池化计算,采用平均值池化方法,滑动窗尺度为2×2,步长为2,将滑动窗口中的4个数值相加后取均值;将第1个卷积层结果将存入Block RAM;(2)第2个卷积层与池化层计算将第1个池化层计算结果矩阵作为第2个卷积层计算的输入数据,参照第(1)步的实现过程,进行第2个卷积层和第2个池化层计算;将第2个池化层结果存入Block RAM;步骤四、分类识别计算(1)特征向量从FPGA端传回ARM端在FPGA端,将两层卷积计算与池化计算的结果,即输入图像的特征向量传回ARM端;具体步骤为:将Block RAM中存储的结果矩阵,经过FIFO缓存后,通过APB总线传输回ARM端;(2)Softmax计算获得识别结果第(1)步返回的特征向量与网络模型中的Softmax相关数据进行计算并得出结果;具体步骤为:用Softmax权值参数矩阵乘以特征向量,加上Softmax偏置参数,并通过公式(1)的Sigmoid函数计算,在结果中取最大值对应的索引作为结果输出;(3)往复循环,实现多个手写体字符图像的识别。
地址 200433 上海市杨浦区邯郸路220号
您可能感兴趣的专利