bright_yang 发表于 2009-5-18 15:44

BP神经网络训练的一个问题,请大家(特别是有做过车牌识别的)帮忙参考一下

我在编写一个车牌识别的程序,车牌定位没有做,只是再做一个车牌定位后的字符识别,就是已知一个二值化的车牌,我用BP神经网络在matlab环境下编程识别来实现。
   我的算法是这样的:比如车牌,京F。S 1234,已经分割出车牌上的每个字符(图像格式),然后再把他们归类识别,分为字母,数字,汉字。对分割出的字符图像进行尺寸归一化,归一化为70*50,然后再对这些字符进行训练,
特征提取是:每个字符图像分划35个10*10的网格,统计这35个网络中的白点(值为1的点)的百分比。用这35个数作为神经网络进行输入。
   对于数字,进行训练采用matlab工具箱函数,配置如下:
load E52PTpt;
pr(1:35,1) = 0;
pr(1:35,2) = 1;
net = newff(pr,,{'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)),仍然难于收敛,把权值和阈值调节了,还是不好收敛,很是不明白其中玄机。

   请大家熟悉的帮忙参考一下。

    不胜感激!
页: [1]
查看完整版本: BP神经网络训练的一个问题,请大家(特别是有做过车牌识别的)帮忙参考一下