数字图像处理与识别实验报告.doc_第1页
数字图像处理与识别实验报告.doc_第2页
数字图像处理与识别实验报告.doc_第3页
数字图像处理与识别实验报告.doc_第4页
数字图像处理与识别实验报告.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字图像处理与识别实验报告 实验题目:手写数字识别实验目的:使用神经网络图像识别方法对鼠标滑动输入的手写数字进行训练和识别,使计算机能够识别09十个数字。了解机器学习和神经网络原理并且将其应用在图像处理识别中。实验方法:基于反向传播(BP)神经网络方法BP拓扑网络结构:BP网络包含输入层、隐含层和输出层,每层包含了许多并行运算的神经元,层与层之间的神经元采用全互连方式,当样本输入网络后,各神经元的激励值由输入层经各隐含层向输出层传播。然后计算目标输出与实际输出的误差,并按照误差减小的方向,从输出层逐层修正各连接权值,最后回到输入层,如此反复直到达到期望的输出。这种信息的正向传递和误差的反向传播过程,就是BP网络每一层权值不断调整过程,也就相当于网络的学习过程。它的实质是计算误差信号的最小值,采用的是梯度下降算法,按误差函数的负梯度方向修改权值。本实验中可以将训练与测试同步结合起来,测试的过程中也在不断的学习。本次实验采用的是神经网络中的监督式学习,也就是说外部环境有一个监督元。它能为一组输入提供期望得到的输出,系统可以根据实际输出与目标输出的差值反馈给权重来调节权重的值,这一差值也就是误差信号。在试验中,系统每次做出一个预测,会提问你预测的是否正确,若正确则不用对参数进行重新训练,若错误,则需要输入正确的值,系统对参数进行训练,这就是一个监督学习的方式。基于BP神经网络的数字识别算法步骤为:a. 初始化神经单元参数。包括输入层、隐藏层和输出层节点数量,本次实验的输入层是400(2020的灰度值),隐藏层是26,输出层是10,设置最大迭代次数为50.b. 加载训练数据集。将已经训练过的数字图像数据导入进来。我输入的是一个2020像素的手写数字图像,将其转化为灰度图,取400个像素值作为输入层的值。实验中需要大量的训练数据,对神经网络中的参数进行训练。本实验,下图为输入的黑白手写数字图像。c. 初始化训练参数。这里是采取的随机生成两组权重参数。d. 迭代找误差最小值对应的训练参数。梯度下降算法找误差最小值,再反馈回参数。实验结果:(1)识别阿拉伯数字“3” (2)识别中文数字“三” (3)识别错误时进行修正训练分析讨论:(1) 这是一个可以边测试边学习的过程,随着输入数据的增加,识别率也会逐渐变高,可以收入大量不同人写的数字,避免全部由一个人手写,这样系统随着训练就愈发的能识别各种不同字迹的数字。(2) 识别的正确与否与手写数字的大小和位置有一定关系,写的偏小或者写在边角识别不准确。(3) 系统具有自学习过程,我原本训练的是阿拉伯数字3,后来尝试加入中文数字三,经过反复训练,系统对于3和三都能正确识别。附录:Matlab重点程序%开启图形视窗 case start, FigHandle = figure(WindowButtonDownFcn,NumberDrawdown,Color,black);axis(1 imSize 1 imSize); % 设定图轴范围%axis off; grid off; box on; %将图轴加上图框 title(手写体输入框); % 按键回调函数调用,判断结论是否正确,若不正确加入训练集重新训练uicontrol(Parent,FigHandle,Position,360 6 70 30,String,识别,Callback,.exa=(rgb2gray(frame2im(getframe(gca);,B =imresize(exa,20 20);,.BB =double(B)./255;,pred = predict(Theta1, Theta2, reshape(BB,1,400);,correct(reshape(BB,1,400),pred);,training);uicontrol(Parent,FigHandle,Style,pushbutton,Position,270 6 70 30,String,训练,Callback,training); uicontrol(Parent,FigHandle,Style,pushbutton,Position,450 6 70 30,String,清除,Callback,cla);训练部分:% = Part 1:设置神经单元参数 =input_layer_size = 400; % 2020 输入灰度值hidden_layer_size = 26; % 26个隐藏层单元num_labels = 10; % 10个输出 % = Part 2:加载训练数据集 =fprintf(Loading and Visualizing Data .n)load(data.mat);m = size(X, 1);% = Part 3: 初始化训练参数 =fprintf(nInitializing Neural Network Parameters .n)initial_Theta1 = randInitializeWeights(input_layer_size,hidden_layer_size);initial_Theta2 = randInitializeWeights(hidden_layer_size, num_labels);initial_nn_params = initial_Theta1(:) ; initial_Theta2(:);% = Part 4: 迭代找误差最小对应的参数=fprintf(nTraining Neural Network. n)options = optimset(MaxIter, 50); % 迭代50次lambda = 1;costFunction = (p) nnCostFunction(p, . input_layer_size, . hidden_layer_size, . num_labels, X, y, lambda); % 误差反馈找参数nn_params, cost = fmincg(costFunction, initial_nn_params, options);Theta1 = reshape(nn_params(1:hidden_layer_size * (input_layer_size + 1), .hidden_layer_size, (input_laye

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论