DIP课程设计报告.doc
- 文档编号:1639505
- 上传时间:2022-10-23
- 格式:DOC
- 页数:9
- 大小:285KB
DIP课程设计报告.doc
《DIP课程设计报告.doc》由会员分享,可在线阅读,更多相关《DIP课程设计报告.doc(9页珍藏版)》请在冰豆网上搜索。
《数字图像处理》课程设计报告
——手写阿拉伯数字的识别
1、课程设计目的
1)、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。
掌握文献检索的方法与技巧。
2)、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。
2、方法综述
2.1手写阿拉伯数字识别的研究背景
字符识别处理的信息可分为两大类:
一类是文字信息,处理的主要是用各国家、各民族的文字(如:
汉字,英文等)书写或印刷的文本信息,目前在印刷体和联机手写方面技术已趋向成熟,并推出了很多应用系统;另一类是数据信息,主要是由阿拉伯数字及少量特殊符号组成的各种编号和统计数据,如:
邮政编码、统计报表、财务报表、银行票据等等,处理这类信息的核心技术是手写数字识别。
近几年来我国开始大力推广的“三金”工程在很大程度上要依赖数据信息的输入,如果能通过手写数字识别技术实现信息的自动录入,无疑会促进这一事业的进展。
因此,手写数字的识别研究有着重大的现实意义,一旦研究成功并投入应用,将产生巨大的社会和经济效益。
2.2人工神经网络的概念
人工神经网络(ArtificiaNeuralNetwork)至今还没有一个比较科学和权威的定义。
有一种定义是:
“人工神经网络是生理学上的真实人脑神经网络的结构和功能,以及若干基本特征的某种理论抽象,简化和模拟而构成的一种信息处理系统。
”荣辉.张济世.人工神经网路及其现状与展望《电子技术应用》1995年第10期
4一5页
从系统观点看,人工神经网络是由大量神经元通过极其丰富和完善的联接而成的,模拟大脑的基本特性的自适应非线性动态系统。
神经元之间的连接方式不同,神经网络的结构形态也就不同。
具体的生理学上的定义本文不再展开赘述。
2.3BP神经网络
神经网络的应用已经渗透到各个领域中,包括金融、股票预测,自动控制,
机器人,模式识别,计算机视觉和图像处理,信号处理等等,T,J,Sejnowiski,C,R,Rosenberg”ParalleNetwoeksthatLearntoPronounceEnglishTest”,ComplexSystems,1987:
1145-168
陈明,赵瑞清.BP神经网络的比例训练.计算机学报,1993(8)
靳蕃,范俊波,谭永东。
神经网络与神经计算机.西南交大,1991
庄镇泉,王煦法,王东生.神经网络与神经计算机.北京:
科学出版社,1992
6:
毛群.王少飞.基于matlab的神经网络数字识别系统实现.中国西部科技.2010(09).
7:
施少敏.马彦恒.陈建泗.基于BP网络的数字识别方法.兵工自动化.2006.25.10
8:
朱曼丽.孙志锋.孙志林.一种基于神经网络的数字识别方法.计算机工程与应用.2002.12
9:
乔宝明张晓莉高志才基于matlab识别0-9数字图像的新方法.技术与创新管理.2009.3
10:
许捍卫.王成.一种简单的数字识别方法研究.河海大学测量工程系
其中软件模拟的BP网络是应用最多、最成功的网络。
本次课程设计是基于BP神经网络对手写阿拉伯数字进行识别,故下文介绍关于BP神经网络的概念。
2.3.1BP神经网络的概念
BP(BackPropagation)网络又叫误差反向传播网络,是由美国加利福尼亚大学的PDP小组提出的一种神经网络算法,实现了Minsky和Papert认为不能实现的多层网络的设想。
BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。
正向传播时,输入样本从输入层传入,经各隐藏层逐层处理后,传向输出层。
若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。
误差反传是将输出误差以某种形式通过隐藏层向输入层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。
这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的。
权值不断调整的过程,也就是网络的学习训练过程。
此过程一直进行到网络输出的误差减少到可接受到的程度,或进行到预先设定的学习次数为此。
BP网络的基本结构如图1所示,网络由不同层次的节点集合组成,每一层节点的输出送到下一层节点。
这些输出值由于连接权不同而被放大、衰减或抑制。
除了输入层外,每一节点的输入为前一节点输出值的加权和。
每一节点的激励输出值由节点输入、激励函数及闭值决定。
图1:
BP网络模型
BP网络的学习算法使用梯度搜索技术,以期望网络的实际输出与期望输出的均方差最小。
网络的学习是一种在误差反向转播的同时修正的过程。
学习过程应包括两个阶段:
前向计算阶段和反向调整阶段
2.4图像分割:
对二值化后的图像进行分割处理,本课程设计采用基于字符连通域的分割。
由于对数字的书写有一定要求,两个字符之间不能出现连笔的情况,因此可以对二值图像各个分离部分进行标注来分割字符,用函数bwlabel来实现。
用函数regionprops来度量图像区域属性,包括属性BoundingBox(表示各标注区域的最小矩形)和Centroid(表示各区域的质心)。
通过对各个区域标注及各个区域起点坐标和区域范围(包括宽度和高度)的确定来截取字符,所用函数为imcrop,最后调用函数imresize对图像进行归一化处理。
2.5特征提取
通过粗网格方法来提取特征。
首先对分割后的字符归一化为70×50的点阵,然后将此矩阵等分为7×5的网格,接着依次统计每一个网格内黑像素点(即“1”)的个数,得到一个以数字表示的7×5维的网格特征,将7×5维特征矩阵转变为一维特征,最后对其进行归一化操作。
3、实验结果与分析
3.1课程设计的结构及流程
基于BP神经网络的手写体数字识别系统大致可以分为输入、预处理、特征提取、BP神经网络识别4个部分。
输入包括数字样本集扫描输入和待识别数字输入,先用数字样本集扫描输入图像经预处理后特征提取的特征向量来训练神经网络,再用训练好的神经网络来识别待识别数字。
预处理部分包括二值化、平滑、去噪、细化,再对预处理后二值点阵图像进行特征提取。
最后将所提取的特征量输入训练好的神经网络进行识别,输出识别结果。
基于BP神经网络的手写体数字识别系统的结构及流程如图2所示。
开始读入需要识别数字的图像
将图像转化为灰度图像
将灰度图像转化为二值图像
图像分割
预处理模块
特征提取
进行数字的识别和比对
图2:
手写阿拉伯数字识别系统的流程图
3.2预处理模块
由于扫描输入的图像一般为RGB格式,预处理首先需要将其转化为二值化的图像,即只包含“0”、“1”的矩阵形式。
先将原始图像转化为灰度图像,通过函数rgb2gray来实现,再通过函数im2bw转化为二值图像,然后对二值化后的图像进行分割处理,
3.3数字的识别和比对
采用三层BP神经网络来实现。
通过实验测试设定隐含层神经元数目为10,所以只需分类10个数字,设定输出层神经元数目为10。
隐含层神经元的传递函数采用S型对数函数logsig,输出层神经元传递函数也采用S型对数函数logsig,此神经网络的训练函数采用trainlm,性能函数采用sse,训练步数最长设为5000,性能目标设为0.01。
3.4实验结果
图3:
GUI界面及实验结果
图4:
导入具体需要进行识别的图像
图5:
对需要识别的数字进行选择和裁剪图6:
对需要识别的手写阿拉伯数字进行预处理
3.4.1预处理模块的部分源代码:
functionimg=edu_imgpreprocess(I)
Igray=rgb2gray(I);
Ibw=im2bw(Igray,graythresh(Igray));%将图像转化为二值图像
Iedge=edge(uint8(Ibw));
se=strel('square',3);
Iedge2=imdilate(Iedge,se);
Ifill=imfill(Iedge2,'holes');
[Ilabelnum]=bwlabel(Ifill);
Iprops=regionprops(Ilabel);
Ibox=[Iprops.BoundingBox];
Ibox=reshape(Ibox,[450]);
Ic=[Iprops.Centroid];
Ic=reshape(Ic,[250]);
Ic=Ic';
Ic(:
3)=(mean(Ic.^2,2)).^(1/2);
Ic(:
4)=1:
50;
Ic2=sortrows(Ic,2);
forcnt=1:
5
Ic2((cnt-1)*10+1:
cnt*10,:
)=sortrows(Ic2((cnt-1)*10+1:
cnt*10,:
),4);
end
Ic3=Ic2(:
1:
2);
ind=Ic2(:
4);
forcnt=1:
50
img{cnt}=imcrop(Ibw,Ibox(:
ind(cnt)));
end
functionbw2=edu_imgcrop(bw)
%找到图像的边界
[y2tempx2temp]=size(bw);
x1=1;
y1=1;
x2=x2temp;
y2=y2temp;
%找出最左边的空格(Findingleftsideblankspaces)
cntB=1;
while(sum(bw(:
cntB))==y2temp)
x1=x1+1;
cntB=cntB+1;
end
%找出最右边的空格(Findingrightsideblankspaces)
cntB=1;
while(sum(bw(cntB,:
))==x2temp)
y1=y1+1;
cntB=cntB+1;
end
%找出最上边的空格(Findinguppersideblankspaces)
cntB=x2temp;
while(sum(bw(:
cntB))==y2temp)
x2=x2-1;
cntB=cntB-1;
end
%找出最下边的空格(Findinglowersideblankspaces)
cntB=y2temp;
while(sum(bw(cntB,:
))==x2temp)
y2=y2-1;
cntB=cntB-1;
end
%对图像进行裁剪(Croptheimagetotheedge)
bw2=imcrop(bw,[x1,y1,(x2-x1),(y2-y1)]);
图7:
对需要识别的手写阿拉伯数字进行特征提取
3.4.2特征提取的源代码
functionlett=edu_imgresize(bw2)
%Thisfunctionwilltakethecroppedbinaryimageandchangeitto5x7
%characterrepresentationinsinglevector.
bw_7050=imresize(bw2,[70,50]);%重新定义尺寸
%粗网格的特征提取方法
forcnt=1:
7
forcnt2=1:
5
Atemp=sum(bw_7050((cnt*10-9:
cnt*10),(cnt2*10-9:
cnt2*10)));
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DIP 课程设计 报告