手写签名识别算法小实验

手写签名识别算法小实验

ID:35342606

大小:69.27 KB

页数:9页

时间:2019-03-23

手写签名识别算法小实验_第1页
手写签名识别算法小实验_第2页
手写签名识别算法小实验_第3页
手写签名识别算法小实验_第4页
手写签名识别算法小实验_第5页
资源描述:

《手写签名识别算法小实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、手写签名识别算法的简单实现1.实验目的1.理解机器学习、反向传播神经网络和梯度下降法的原理,掌握反向传播算法对神经元的训练过程,了解反向传播公式,熟悉前馈网络的原理及结构。通过构建BP网络训练手写签名数据实现对签名真伪的识别。2.学会使用tensorflow平台写较简单的程序,熟悉tensorflow的框架,熟悉opencv用来处理图像的简单函数,加强对python语言及其丰富的库和框架的熟练使用。2.实验内编写简单的神经网络程序,分别使用传统随机梯度下降法和tensorflow平台下的随机梯度下降法,能简单地实现手写签名

2、的识别。3.实验报告(D实验原理及方法:手写签名识别技术是一种生物特征身份认证技术,源于每个人都有不同的书写习惯,又因为文字书写具有通用性、独特性、易获取等优点,所以易于推广普及。根据鉴别时机的不同,可将签名识别分为离线签名识别和在线签名识别,在线签名保留了更多有价值的信息,笔尖运动的速度、加速度、压力等信息使得鉴定识别率较高。对于离线签名识别,书写的动态信息几乎全部丢失,只能依靠签名图片的静态信息,即每个人的笔迹特点来反映签名的书写风格和习惯,因此鉴定难度较大。但从实际需求和工作场景来看,离线签名识别的社会意义更大,因此

3、也有必要对手写签名的离线识别方法展开深入的研究工作反向传播算法(BP算法)是一种计算单个权值变化引起网络性能变化值的较为简单的方法。由于BP算法过程包含从输出节点开始,反向地向第一隐含层(即最接近输入层的隐含层)传播由总误差引起的权值修正,所以称为”反向传播“。反向传播特性与所求解问题的性质和所作细节选择有极为密切的关系。反向传播算法的特性为能够在网络内部的隐藏层发现有用的中间表示,具体表现为:训练样例仅包含网络输入和输出,权值调节的过程可以自由地设置权值,来定义任何隐藏单元表示,这些隐藏单元表示在使误差E达到最小时最有效

4、;引导反向传播算法定义新的隐藏层特征,这些特征在输入中没有明确表示出来,但能捕捉输入实例中与学习目标函数最相关的特征。tensorflow是一个采用数据流图(dataflowgraphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。其主要用于机器学习和深度神经网络方面,具有高度的灵活性和可移植性。(2)实验数据介绍:实验数据分为训练集和测试集两部分,训练集和测试集是对应的。先利用训练集中的数据进行BP神经网络的训练,再

5、由测试集的数据检测训练后的网络的性能。实验数据有三组,分别是三个人签名,每张原始签名以图像的形式给出。每组中训练集和测试集都各给出了24张签名,即总共144张签名。预处理后会以一个901维的向量进行训练学习,其中前400维为将处理过的签名缩放为40*10后再展开的像素值排列;预处理中还会将签名缩放为400*100的尺寸,并取该尺寸签名矩阵的'行和'和'列和'这500个值为预处理输出向量的中间500维;最后一维取原始签名的宽与高之比。目前尚没有一个标准的国际签名数据库,实验所用的原始签名图像均来自github中的分享,这些实

6、验数据对手写签名识别具有一定的可用性及通用性。(3)源程序清单:文件preprocessor.pyimportcv2importnumpyasnpdefprepare(input):#对输入图像的预处理cIean=cv2.fastN丨MeansDenoising(input)ret,tresh=cv2.threshoId(cIean,127,1,cv2.THRESH_BINARY_INV)img=crop(tresh)#40x10图像再展开fIatten_img=cv2.resize(img,(40,10),interpo

7、Iation=cv2.INTERAREA).fIatten()#resize到400x100resized=cv2.resize(img,(400,100),interpoIation=cv2.INTERAREA)coIumns=np.sum(resized,axis=0)#sumofaIIcoIumnslines=np.sum(resized,axis=1)#sumofaIIIinesh,w=img.shapeaspect二w/hreturn[*flatten_img,*coIumns,*1inesraspect]def

8、crop(img):#裁剪图像没用的边缘points二cv2.findNonZero(img)x,yTw,h=cv2.boundingRect(points)returnimg[y:y+h,x:x+w]文件network,pyimportnumpyasnpimportrandomclassNeuralN

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。