|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我在编写一个车牌识别的程序,车牌定位没有做,只是再做一个车牌定位后的字符识别,就是已知一个二值化的车牌,我用BP神经网络在matlab环境下编程识别来实现。
我的算法是这样的:比如车牌,京F。S 1234,已经分割出车牌上的每个字符(图像格式),然后再把他们归类识别,分为字母,数字,汉字。对分割出的字符图像进行尺寸归一化,归一化为70*50,然后再对这些字符进行训练,
特征提取是:每个字符图像分划35个10*10的网格,统计这35个网络中的白点(值为1的点)的百分比。用这35个数作为神经网络进行输入。
对于数字,进行训练采用matlab工具箱函数,配置如下:
load E52PT p t;
pr(1:35,1) = 0;
pr(1:35,2) = 1;
net = newff(pr,[20 10],{'logsig' 'logsig'},'traingdx');
net.LW{2,1} = net.LW{2,1}*0.01
net.b{2} = net.b{2}*0.01;
net.performFcn = 'sse';
net.trainParam.goal = 0.0001;
net.trainParam.show = 20;
net.trainParam.epochs = 5000;
net.trainParam.mc = 0.95;
net = train(net,p,t);
save E52net_35 net;
训练中,收敛很快,应用这个网络来识别车牌上的数字还可以,但是我用同样的特征提取来训练英文字母的时候,为什么不好训练呢?训练结果很不好收敛。
我的问题是:
难道训练的时候和输入数据有关? 字母特征提取和数字提取的时候都是一样的,35个输入,百分比(0~1之间的数),训练工具配置都是一样的
是我训练的数太多了,字母要24个,训练的话要比数字多,但是我训练时低于200(训练数字的时候,输入了200个,即p(35,1:200)),仍然难于收敛,把权值和阈值调节了,还是不好收敛,很是不明白其中玄机。
请大家熟悉的帮忙参考一下。
不胜感激! |
|