1 / 7
文档名称:

数字识别主要算法.doc

格式:doc   大小:166KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数字识别主要算法.doc

上传人:ipod0a 2018/10/12 文件大小:166 KB

下载得到文件列表

数字识别主要算法.doc

文档介绍

文档介绍:BP神经网络识别手写数字
图像的预处理
对手写数字图像样本灰度化处理,二值化处理,归一化调整等预处理。其中二值化处理利用greythresh函数得到图像的全局阈值,然后使用im2bw将灰度图像转换为二值图像。
Ibw = im2bw(I1,greythresh(I1));
--Ibw为二值化图像的存储矩阵。
bw2 = edu_imgcrop(Ibw);
%找到图像边界
[y2temp x2temp] = size(bw);
x1=1;
y1=1;
x2=x2temp;
y2=y2temp;
% 找左边空白
cntB=1;
while (sum(bw(:,cntB))==y2temp)
x1=x1+1;
tB+1;
end
% 左边
cntB=1;
while (sum(tB,:))==x2temp)
y1=y1+1;
tB+1;
end
% 上边
cntB=x2temp;
while (sum(bw(:,cntB))==y2temp)
x2=x2-1;
tB-1;
end
% 下边
cntB=y2temp;
while (sum(tB,:))==x2temp)
y2=y2-1;
tB-1;
end
bw2=imcrop(bw,[x1,y1,(x2-x1),(y2-y1)]);
--对图像进行裁剪,使边框完全贴近字符。
归一化处理将图片归一化为28×28像素点阵图。
特征提取
将经过预处理的后的数字图像中提取最能体现这个字符特点的特征向量,然后提取出训练样本中的特征向量带入BP网络中就可以对网络进行训练。可以采用逐像素特征提取方法提取数字样本的特征向量。归一化后的图像形成一个的布尔矩阵,依次取每列的元素转化为784×1的列矩阵,及数字字符的特征向量。还可以对每幅单个手写体图像进行边缘裁剪后,将裁减后的二值图像转换成5*7即35维的特征向量,转换过程如下:
bw_7050=imresize(bw2,[70,50]);
t=1:7
t2=1:5
Atemp=sum(bw_7050(((cnt*10-9):(cnt*10)),((cnt2*10-9):(cnt2*10))));%10*10box
lett((cnt-1)*t2)=sum(Atemp);
end
end
lett=((100-lett)/100);
lett=lett';

BP神经网络是一个典型的多层神经网络,它包含了输入层,隐藏层和输出层,隐层可以有一层或多层,每层上的神经元称为节点或单元,它们由可修定的权值(w)互连,除了连接输入单元,每个单元还连接一个偏置(b)。
输入层神经元个数的确定
将数字图像的特征向量作为神经网络的输入,所以神经网络的输入层神经元个数等于特征向量的维数,即28×28=784个输入神经元。要识别10个数字,所以输出选择为10×1的矩阵,即输出节点数为10,输入为0时,第一个神经元为1,其他为0,;输入数字为1时,第二个神经元为1,其他为0;以此类推。
隐含层数和神经元个数的确定
隐含层数越多,神经网络的学****速度越慢,所以选3层神经网络。隐含层神经元的个数是根据网络收敛性能的好坏来确定的,