m基于GRNN广义回顾神经网络的车牌字符分割和识别算法matlab仿真

简介: m基于GRNN广义回顾神经网络的车牌字符分割和识别算法matlab仿真

1.算法仿真效果
matlab2022a仿真结果如下:

d9751c9ed237645d79ae84861f82f407_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
d03c12f9836ee99fda2773d3e940332a_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
dccff09abf1d2ed36cf452427eec86bb_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.算法涉及理论知识概要
车牌识别系统(Vehicle License Plate Recognition,VLPR) 是计算机视频图像识别技术在车辆牌照识别中的一种应用。车牌识别在高速公路车辆管理中得到广泛应用,电子收费(ETC)系统中,也是结合DSRC技术识别车辆身份的主要手段。

   车牌识别技术要求能够将运动中的汽车牌照从复杂背景中提取并识别出来,通过车牌提取、图像预处理、特征提取、车牌字符识别等技术,识别车辆牌号、颜色等信息,最新的技术水平为字母和数字的识别率可达到99.7%,汉字的识别率可达到99%。在停车场管理中,车牌识别技术也是识别车辆身份的主要手段。在深圳市公安局建设的《停车库(场)车辆图像和号牌信息采集与传输系统技术要求》中,车牌识别技术成为车辆身份识别的主要手段。

   车牌识别技术结合电子不停车收费系统(ETC)识别车辆,过往车辆通过道口时无须停车,即能够实现车辆身份自动识别、自动收费。在车场管理中,为提高出入口车辆通行效率,车牌识别针对无需收停车费的车辆(如月卡车、内部免费通行车辆),建设无人值守的快速通道,免取卡、不停车的出入体验,正改变出入停车场的管理模式。

   随着交通现代化的发展要求,汽车牌照自动识别技术已经越来越受到人们的重视。车牌自动识别技术中车牌定位、字符切割、字符识别及后期处理是其关键技术。由于受到运算速度及内存大小的限制,以往的车牌识别大都是基于灰度图象处理的识别技术。其中首先要求正确可靠地检出车牌区域,为此提出了许多方法,如Hough变换以检测直线来提取车牌边界区域、使用灰度分割及区域生长进行区域分割,或使用纹理特征分析技术等。Hough变换方法对车牌区域变形或图象被污损时失效的可能性会大大增加,而灰度分割则比直线检测的方法要稳定,但当图象在有许多与车牌的灰度非常相似的区域时,该方法也就无能为力了。纹理分析在遇到类似车牌纹理特征的其他干扰时,车牌定位正确率也会受到影响。本文提出基于车牌彩色信息的彩色分割方法。

   GRNN通常被用来进行函数逼近。它具有一个径向基隐含层和一个特殊的线性层。第一层和第二层的神经元数目都与输入的样本向量对的数目相等。GRNN结构如图1所示,整个网络包括四层神经元:输入层、模式层、求和层与输出层。

765568eef9d9993e25fdf83a43fd532c_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

  输入层的神经元数目与学习样本中输入向量的维数m相等,每个神经元都是一个简单的分布单元,这些神经元直接将输入变量传递到隐含层中。

    模式层的神经元数目即为学习样本的数目n,每个神经元都分别对应一个不同的学习样本,模式层中第i个神经元的传递函数为:

20574a5d6075fd87744fa8878205e7e4_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

3.MATLAB核心程序
```for ii = 11

if ii == 1
load stepB1.mat
end
if ii == 2
load stepB2.mat
end
if ii == 3
load stepB3.mat
end
if ii == 4
load stepB4.mat
end
if ii == 5
load stepB5.mat
end
if ii == 6
load stepB6.mat
end
if ii == 7
load stepB7.mat
end
if ii == 8
load stepB8.mat
end
if ii == 9
load stepB9.mat
end
if ii == 10
load stepB10.mat
end
if ii == 11
load stepB11.mat
end
if ii == 12
load stepB12.mat
end
if ii == 13
load stepB13.mat
end
if ii == 14
load stepB14.mat
end
if ii == 15
load stepB15.mat
end
if ii == 16
load stepB16.mat
end
if ii == 17
load stepB17.mat
end
if ii == 18
load stepB18.mat
end
if ii == 19
load stepB19.mat
end
if ii == 20
load stepB20.mat
end
if ii == 21
load stepB21.mat
end
if ii == 22
load stepB22.mat
end

word1=imresize(tmps{1},[40 20]);
word2=imresize(tmps{2},[40 20]);
word3=imresize(tmps{3},[40 20]);
word4=imresize(tmps{4},[40 20]);
word5=imresize(tmps{5},[40 20]);
word6=imresize(tmps{6},[40 20]);
word7=imresize(tmps{7},[40 20]);

%第1个
words = word1;
wordss = func_yuchuli(words);
wordsss = sim(net,wordss');
[V,I] = max(wordsss);
d = I;
y{1} = func_check(d);
%第2个
words = word2;
wordss = func_yuchuli(words);
wordsss = sim(net,wordss');
[V,I] = max(wordsss);
d = I;
y{2} = func_check(d);
%第3个
words = word3;
wordss = func_yuchuli(words);
wordsss = sim(net,wordss');
[V,I] = max(wordsss);
d = I;
y{3} = func_check(d);
%第4个
words = word4;
wordss = func_yuchuli(words);
wordsss = sim(net,wordss');
[V,I] = max(wordsss);
d = I;
y{4} = func_check(d);
%第5个
words = word5;
wordss = func_yuchuli(words);
wordsss = sim(net,wordss');
[V,I] = max(wordsss);
d = I;
y{5} = func_check(d);
%第6个
words = word6;
wordss = func_yuchuli(words);
wordsss = sim(net,wordss');
[V,I] = max(wordsss);
d = I;
y{6} = func_check(d);
%第7个
words = word7;
wordss = func_yuchuli(words);
wordsss = sim(net,wordss');
[V,I] = max(wordsss);
d = I;
y{7} = func_check(d);
figure(1);
subplot(241);imshow(word1);title(num2str(y{1}));
subplot(242);imshow(word2);title(num2str(y{2}));
subplot(243);imshow(word3);title(num2str(y{3}));
subplot(244);imshow(word4);title(num2str(y{4}));
subplot(245);imshow(word5);title(num2str(y{5}));
subplot(246);imshow(word6);title(num2str(y{6}));
subplot(247);imshow(word7);title(num2str(y{7}));
pause(2);

end
```

相关文章
|
2天前
|
算法 安全 数据库
基于结点电压法的配电网状态估计算法matlab仿真
**摘要** 该程序实现了基于结点电压法的配电网状态估计算法,旨在提升数据的准确性和可靠性。在MATLAB2022a中运行,显示了状态估计过程中的电压和相位估计值,以及误差随迭代变化的图表。算法通过迭代计算雅可比矩阵,结合基尔霍夫定律解决线性方程组,估算网络节点电压。状态估计过程中应用了高斯-牛顿或莱文贝格-马夸尔特法,处理量测数据并考虑约束条件,以提高估计精度。程序结果以图形形式展示电压幅值和角度估计的比较,以及估计误差的演变,体现了算法在处理配电网状态估计问题的有效性。
|
4天前
|
机器学习/深度学习 存储 算法
基于SFLA算法的神经网络优化matlab仿真
**摘要:** 使用MATLAB2022a,基于SFLA算法优化神经网络,降低训练误差。程序创建12个神经元的前馈网络,训练后计算性能。SFLA算法寻找最优权重和偏置,更新网络并展示训练与测试集的预测效果,以及误差对比。SFLA融合蛙跳与遗传算法,通过迭代和局部全局搜索改善网络性能。通过调整算法参数和与其他优化算法结合,可进一步提升模型预测精度。
|
2天前
|
算法
基于PSO粒子群优化的PID控制器参数整定算法matlab仿真
该文探讨了使用PSO(粒子群优化)算法优化PID控制器参数的方法。通过PSO迭代,不断调整PID控制器的Kp、Ki、Kd增益,以减小控制误差。文中提供了MATLAB2022a版本的核心代码,展示了参数优化过程及结果。系统仿真图像显示了参数随迭代优化的变化。PID控制器结合PSO算法能有效提升控制性能,适用于复杂系统的参数整定,未来研究可关注算法效率提升和应对不确定性。
|
2天前
|
算法
m基于GA遗传优化的高斯白噪声信道SNR估计算法matlab仿真
**MATLAB2022a模拟展示了遗传算法在AWGN信道中估计SNR的效能。该算法利用生物进化原理全局寻优,解决通信系统中复杂环境下的SNR估计问题。核心代码执行多代选择、重组和突变操作,逐步优化SNR估计。结果以图形形式对比了真实SNR与估计值,并显示了均方根误差(RMSE),体现了算法的准确性。**
8 0
|
4天前
|
算法
基于仿射区间的分布式三相不对称配电网潮流算法matlab仿真
```markdown # 摘要 本课题聚焦于基于仿射区间的分布式三相配电网潮流算法在MATLAB2022a中的仿真。算法利用仿射运算处理三相不平衡情况及分布式电源注入,旨在提供比区间算法更精确的不确定区域。仿真结果展示了算法优势。核心程序设计考虑了PQ、PV及PI节点,将不同类型的节点转换统一处理,以适应含分布式电源的配电网潮流计算需求。 ``` 这个摘要以Markdown格式呈现,总字符数为233,满足了240字符以内的要求。
|
2月前
|
机器学习/深度学习 算法 PyTorch
python手把手搭建图像多分类神经网络-代码教程(手动搭建残差网络、mobileNET)
python手把手搭建图像多分类神经网络-代码教程(手动搭建残差网络、mobileNET)
78 0
|
2月前
|
机器学习/深度学习 自然语言处理 数据可视化
数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化
数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化
|
18天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
|
18天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
|
11天前
|
机器学习/深度学习 算法 计算机视觉
没有公式,不要代码,让你理解 RCNN:目标检测中的区域卷积神经网络
没有公式,不要代码,让你理解 RCNN:目标检测中的区域卷积神经网络
39 0
没有公式,不要代码,让你理解 RCNN:目标检测中的区域卷积神经网络

热门文章

最新文章