数字图像处理与识别实验报告

数字图像处理与识别实验报告

ID:9184717

大小:259.50 KB

页数:4页

时间:2018-04-20

数字图像处理与识别实验报告_第1页
数字图像处理与识别实验报告_第2页
数字图像处理与识别实验报告_第3页
数字图像处理与识别实验报告_第4页
资源描述:

《数字图像处理与识别实验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数字图像处理与识别实验报告实验题目:手写数字识别实验目的:使用神经网络图像识别方法对鼠标滑动输入的手写数字进行训练和识别,使计算机能够识别0~9十个数字。了解机器学习和神经网络原理并且将其应用在图像处理识别中。实验方法:基于反向传播(BP)神经网络方法BP拓扑网络结构:BP网络包含输入层、隐含层和输出层,每层包含了许多并行运算的神经元,层与层之间的神经元采用全互连方式,当样本输入网络后,各神经元的激励值由输入层经各隐含层向输出层传播。然后计算目标输出与实际输出的误差,并按照误差减小的方向,从输出层逐层修正各连接权值,最后回到输入层,如此反复直到达到期望的输出

2、。这种信息的正向传递和误差的反向传播过程,就是BP网络每一层权值不断调整过程,也就相当于网络的学习过程。它的实质是计算误差信号的最小值,采用的是梯度下降算法,按误差函数的负梯度方向修改权值。本实验中可以将训练与测试同步结合起来,测试的过程中也在不断的学习。本次实验采用的是神经网络中的监督式学习,也就是说外部环境有一个监督元。它能为一组输入提供期望得到的输出,系统可以根据实际输出与目标输出的差值反馈给权重来调节权重的值,这一差值也就是误差信号。在试验中,系统每次做出一个预测,会提问你预测的是否正确,若正确则不用对参数进行重新训练,若错误,则需要输入正确的值,系

3、统对参数进行训练,这就是一个监督学习的方式。基于BP神经网络的数字识别算法步骤为:a.初始化神经单元参数。包括输入层、隐藏层和输出层节点数量,本次实验的输入层是400(20×20的灰度值),隐藏层是26,输出层是10,设置最大迭代次数为50.b.加载训练数据集。将已经训练过的数字图像数据导入进来。我输入的是一个20×20像素的手写数字图像,将其转化为灰度图,取400个像素值作为输入层的值。实验中需要大量的训练数据,对神经网络中的参数进行训练。本实验,下图为输入的黑白手写数字图像。c.初始化训练参数。这里是采取的随机生成两组权重参数。d.迭代找误差最小值对应的

4、训练参数。梯度下降算法找误差最小值,再反馈回参数。实验结果:(1)识别阿拉伯数字“3”(2)识别中文数字“三”(3)识别错误时进行修正训练分析讨论:(1)这是一个可以边测试边学习的过程,随着输入数据的增加,识别率也会逐渐变高,可以收入大量不同人写的数字,避免全部由一个人手写,这样系统随着训练就愈发的能识别各种不同字迹的数字。(2)识别的正确与否与手写数字的大小和位置有一定关系,写的偏小或者写在边角识别不准确。(3)系统具有自学习过程,我原本训练的是阿拉伯数字3,后来尝试加入中文数字三,经过反复训练,系统对于3和三都能正确识别。附录:Matlab重点程序%%开

5、启图形视窗case'start',FigHandle=figure('WindowButtonDownFcn','NumberDrawdown','Color','black');axis([1imSize1imSize]);%设定图轴范围%axisoff;gridoff;boxon;%将图轴加上图框title('手写体输入框');%按键回调函数调用,判断结论是否正确,若不正确加入训练集重新训练uicontrol('Parent',FigHandle,'Position',[36067030],'String','识别','Callback',...['ex

6、a=(rgb2gray(frame2im(getframe(gca))));','B=imresize(exa,[2020]);',...'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',[27067030],'String','训练','Callback

7、','training');uicontrol('Parent',FigHandle,'Style','pushbutton','Position',[45067030],'String','清除','Callback','cla');训练部分:%%================Part1:设置神经单元参数================input_layer_size=400;%20×20输入灰度值hidden_layer_size=26;%26个隐藏层单元num_labels=10;%10个输出%%================Part2:加载训练数

8、据集================fprintf(

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

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

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