一种手写数字识别实现方法技术

技术编号:32966404 阅读:33 留言:0更新日期:2022-04-09 11:23
本发明专利技术公开了一种手写数字识别实现方法,属于图像识别领域。本发明专利技术主要将卷积神经网络部署到ZYNQ嵌入式硬件平台上,通过软硬件协同加速实现手写数字识别。本发明专利技术首先对输入图像进行灰度化、二值化处理并且与数据集图片大小尺寸进行识别框匹配,之后将识别框图像存到BRAM存储单元中;然后在PL端完成对识别框图像数据进行卷积运算、激活函数、池化运算加速;之后将池化后的图像数据构造摄像头时序,传输到PS端DDR里;最后在PS端完成隐藏层和输出层运算,将识别结果传输到PL端显示识别结果。本发明专利技术可以加速部分神经网络的推理运算,并将图片中的手写数字迅速识别出来。中的手写数字迅速识别出来。中的手写数字迅速识别出来。

【技术实现步骤摘要】
一种手写数字识别实现方法


[0001]本专利技术属于图像识别领域,具体为一种手写数字识别实现方法。

技术介绍

[0002]目前,人类手写字的识别问题成为了研究热点。这项技术已经被广泛应用在税务表处理、邮件分类和电脑阅卷等方面。在这些应用中通常要求手写数字识别算法具有较高的识别速度和识别精度以及较高的可靠性和稳定性。手写数字的类别虽然只用十种,笔画简单,但是其识别问题仍然存在很大的困难。现有的一些测试结果已经表明,数字的正确识别率并不如印刷体汉字识别正确率高,甚至也不如联机手写体汉字识别率高甚至。主要原因是字体相差不大,每个人的写法不一样,这就使识别更加困难。如何利用设备自动化、智能化、高效的识别数字和字符,提高工作效率则已成为当前亟待解决的研究问题。
[0003]卷积神经网络的概念在1998年由纽约大学的Yann Le Cun提出,是一个可以成功应用在手写字符识别、车牌识别等很多图像分类上的神经网络。卷积神经网络的本质就是多层感知机的一种。之所以卷积神经网络可以成功应用的在很多方面,主要是因为卷积神经网络的稀疏连接和参数共享可以大大减少网络中参数的数量,使得训练整个卷积神经网络计算量大大降低,变得实际可操作。
[0004]手写数字识别是CNN领域的经典问题,针对手写体识别领域广泛使用的Minist数据集。相较于印刷体数字,手写体数字随意性大,不确定性高,但手写体数字的识别在生活中有着广泛的应用,如银行票据识别、邮件自动分拣以及手机号码识别等。由于CNN具有庞大的参数量与计算量,导致模型无法实现跨平台部署,实用性较差。一方面,各种轻量化小型化网络模型被设计出来,另一方面,由于卷积运算的数据独立性,使得卷积运算的并行加速成为可能。因此,进行手写体数字识别硬件实现有重要的意义
[0005]CNN模型实现分为训练和推理两部分,目前模型训练阶段的加速是通过CPU+GPU的方式进行,并且已经取得了较好的效果,因此本文主要研究模型推理阶段的硬件加速。在模型的推理阶段,FPGA平台以其高性能、低功耗、可重构以及可以在现有的器件上实现领域专用架构,无须开发新的芯片等优点,成为了CNN硬件加速的研究平台。在进行硬件设计时,根据卷积运算的运算量大及参数多等特性,通过分析卷积加速单元的硬件结构,存储及数据传输的特性,研究模型的加速性能与加速平台的资源及带宽之间的关系,模型的功耗与模型中各模块间数据流动的关系,综合考虑加速器结构,性能与功耗之间的关系。
[0006]但是,由于CNN计算中涉及多种不同类型的运算,如二维卷积运算、非线性激活函数运算、池化(子采样)操作以及全连接层运算,并且这些运算过程往往涉及大量的数据访问以及中间结果数据的存储,这使得采用FPGA实现如此复杂和具有庞大计算量的CNN仍然是一项具有挑战的工作,同时大量的浮点数计算会产生精度问题,因此,如何在FPGA上高性能地实现应用于手写数字识别的卷积神经网络系统,对于图像识别领域的发展具有重要的理论研究意义和实用价值。

技术实现思路

[0007]本专利技术的目的提出一种手写数字识别实现方法,利用软硬件协同的方式把部分CNN推理过程放到FPGA中加速计算,在兼顾识别准确率的同时,加快了识别速度。
[0008]实现本专利技术目的的技术方案为:一种手写数字识别实现方法,包括以下步骤:
[0009]步骤1、获取图像数据,在PL端完成视频数据的采集,并对数字采集区域完成图像的预处理;
[0010]步骤2、将预处理后的数据存储在PL端的BRAM存储单元中里;
[0011]步骤3、对卷积神经网络参数进行定点化转换,存入集成ARM与FPGA的嵌入式平台ZYNQ中的ROM IP单元内;
[0012]步骤4、针对卷积神经网络的卷积核尺寸,构造相应的卷积矩阵,完成预处理后的数据与定点化参数的卷积运算;
[0013]步骤5、对卷积层运算结果进行激活处理,并对激活结果进行最大池化运算;
[0014]步骤6、对池化后的数据,构造相应的视频时序,利用Video In to AXI4

Stream IP核和VDMA IP核将池化结果传输至PS端DDR;
[0015]步骤7、PS端完成卷积神经网络的隐藏层和输出层运算,将识别结果通过AXI

lite传输至PL端,PL端驱动显示器,在显示画面中实现识别结果的显示功能。
[0016]优选地,步骤1中对数字采集区域进行的图像的预处理包括:灰度转换、平滑降噪、二值化、降采样处理。
[0017]优选地,步骤3对卷积神经网络的权重参数值采用定点化运算的方式进行浮点数处理,通过对权值参数扩大一定的整数倍得到定点数。
[0018]优选地,使用5个ROM IP核来存储权重参数,卷积核的大小为5*5,每个ROM里面存储150个权重参数,按照5*5矩阵方式排列。
[0019]优选地,针对卷积神经网络的卷积核尺寸,构造相应的卷积矩阵,完成预处理后的数据与定点化参数的卷积运算,包括:卷积核的输入构造与图像数据的输入构造,分别具体为:
[0020]卷积核的输入构造:设置参数存储排列顺序,通过ROM IP并行拼接完成卷积核排列;在进行卷积运算的时候,开始读取ROM中的输入卷积核权重,在经过相应时钟周期之后权重读取停止,将读取的权重缓存到寄存器单元内,并保证单个卷积核的权重值保持不变;当对一整幅输入图像进行卷积运算遍历完之后,输出相应特征图;进行其他卷积核权重读取并与输入图像的运算卷积运算;
[0021]图像数据的输入构造步骤:通过移位寄存器缓存构造卷积窗口,对输入图像数据进行移位延时,得到输入图像数据的像素矩阵窗口,用卷积核模板对应位置的权重参数与输入的像素矩阵相乘并累加,得出的结果作为窗口中心的输出结果,完成一次卷积运算,得到第一个特征图的第一个输出元素;将输入像素的矩阵窗口,在输入图像区域内,逐行依次滑动,并与第一层卷积核做卷积运算,得到第一个特征图;采用卷积核依次完成卷积运算,得到对应的特征图。
[0022]优选地,步骤5中对卷积层的结果采用激活函数:ReLu(x)=max(0,x)处理;选择使用2
×
2的最大值池化来设计池化层;池化窗口的设计和卷积窗口一致,均采用寄存器延时的方式;卷积层和激活函数共有5个时钟的流水线延时,在图像进入卷积层前对图像数据做
行列编号,并作5个时钟的延时处理后与激活函数输出的数据同步进入池化层;对计数延时的行列号分别右移一位,得到池化的索引编号,池化窗口以这个编号进行池化,每两个时钟进行一次池化操作。
[0023]本专利技术与现有技术相比,具有以下显著优点:(1)本专利技术针对手写数字识别硬件实现方法进行优化,通过软硬件协同的方式,在兼顾识别准确率的同时,加速了识别速度;(2)本专利技术针对原有的手写数字识别算法的基础上做了简化,从而使得整个卷积神经网络结构变的更加简单,更易于在硬件平台实现,充分发挥FPGA的优势,同时利用FPGA运算的并行性,可以加快运算速度,降低功耗。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种手写数字识别实现方法,其特征在于,包括以下步骤:步骤1、获取图像数据,在PL端完成视频数据的采集,并对数字采集区域完成图像的预处理;步骤2、将预处理后的数据存储在PL端的BRAM存储单元中里;步骤3、对卷积神经网络参数进行定点化转换,存入集成ARM与FPGA的嵌入式平台ZYNQ中的ROM IP单元内;步骤4、针对卷积神经网络的卷积核尺寸,构造相应的卷积矩阵,完成预处理后的数据与定点化参数的卷积运算;步骤5、对卷积层运算结果进行激活处理,并对激活结果进行最大池化运算;步骤6、对池化后的数据,构造相应的视频时序,利用Video In to AXI4

Stream IP核和VDMAIP核将池化结果传输至PS端DDR;步骤7、PS端完成卷积神经网络的隐藏层和输出层运算,将识别结果通过AXI

lite传输至PL端,PL端驱动显示器,在显示画面中实现识别结果的显示功能。2.根据权利要求1所述的手写数字识别实现方法,其特征在于,步骤1中对数字采集区域进行的图像的预处理包括:灰度转换、平滑降噪、二值化、降采样处理。3.根据权利要求1所述的手写数字识别实现方法,其特征在于,步骤3对卷积神经网络的权重参数值采用定点化运算的方式进行浮点数处理,通过对权值参数扩大一定的整数倍得到定点数。4.根据权利要求1所述的手写数字识别实现方法,其特征在于,使用5个ROM IP核来存储权重参数,卷积核的大小为5*5,每个ROM里面存储150个权重参数,按照5*5矩阵方式排列。5.根据权利要求1所述的手写数字识别实现方法,其特征在于,针对卷积神经网络的卷积核尺...

【专利技术属性】
技术研发人员:靳欣张俊举李智博张经纬
申请(专利权)人:南京理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1