OCR+CNN完成铭牌字符识别【MATLAB】

本文涉及的产品
车辆物流识别,车辆物流识别 200次/月
教育场景识别,教育场景识别 200次/月
OCR统一识别,每月200次
简介: OCR+CNN完成铭牌字符识别【MATLAB】

RCNN问世之前传统的方法为OCR提取,将OCR提取到的字符进行归一化处理,再使用CNN或者SVM进行识别


下列为搭建的一个简易操作截面,流程为按钮部分:

image.png

第一步:选择图像


选择指定图像显示在左侧坐标区域,稍后的OCR操作也是在左侧的AXES1内完成。

global I;
[filename, filepath]=uigetfile('*.bmp;*.jpg;*.png'); %选择图像文件
I=imread([filepath filename]);%读取完整路径的图像
axes(handles.axes1); %指定显示的图像位置
imshow(I); %显示图像矩阵

第二步: 执行OCR


在执行OCR操作前可以将图像灰度化,这是为了后面的图像识别步骤能够节约空间,同时也避免在归一化的时候对五张字符都进行灰度化


OCR操作的时候,使用imcrop函数完成,大家详细资料可以参考mathwork上的介绍;由于铭牌上的字符为5位,故而只需要贴出5个坐标区就行了


global I;
global X1;
global X2;
global X3;
global X4;
global X5;
if size(I,3) ~= 1
    I = rgb2gray(I);
end
X1 = imcrop(I);
X2 = imcrop(I);
X3 = imcrop(I);
X4 = imcrop(I);
X5 = imcrop(I);
axes(handles.axes2)
imshow(X1)
axes(handles.axes3)
imshow(X2)
axes(handles.axes4)
imshow(X3)
axes(handles.axes6)
imshow(X4)
axes(handles.axes5)
imshow(X5)

第三步:归一化


由于在CNN识别前需要将图像归一化同等大小,而在执行OCR时就已经完成了灰度化操作,此时的图像都是灰度化后的图像,此时借用函数:imresize

这里我没有采用降噪滤波增强,偷懒了,大家在做的时候可以自行加上。


%%
global X1;
global X2;
global X3;
global X4;
global X5;
%%
global X1X;
global X2X;
global X3X;
global X4X;
global X5X;
%%
X1X = imresize(X1,[70,70]); % 都变成70 70的图像
axes(handles.axes2)
imshow(X1X)
%%
X2X = imresize(X2,[70,70]);  
axes(handles.axes3)
imshow(X2X)
%%
X3X = imresize(X3,[70,70]);  
axes(handles.axes4)
imshow(X3X)
%%
X4X = imresize(X4,[70,70]); 
axes(handles.axes5)
imshow(X4X)
%%
X5X = imresize(X5,[70,70]);  
axes(handles.axes6)
imshow(X5X)


第四步:识别字符


这里我使用了AlexNet网络结构,大家可以参考本人:juejin.cn/post/707478…  这里有详细介绍该网络的结构,同时也可参考:juejin.cn/post/707478… 这里是使用Deep Network Designer的教程


为什么不使用更高级的网络结构:根据奥姆卡剃须刀原理,可以避免过拟合现象出现,同时也实属没必要,浪费算力。


load numdata.mat
global X1X;
global X2X;
global X3X;
global X4X;
global X5X;
Y1 = classify(net,X1X);%预测数据  
YPred1=cellstr(Y1);
Y2 = classify(net,X2X);%预测数据  
YPred2=cellstr(Y2);
Y3 = classify(net,X3X);%预测数据  
YPred3=cellstr(Y3);
Y4 = classify(net,X4X);%预测数据  
YPred4=cellstr(Y4);
Y5 = classify(net,X5X);%预测数据  
YPred5=cellstr(Y5);
set(handles.edit1,'string',YPred1);
set(handles.edit2,'string',YPred2);
set(handles.edit3,'string',YPred3);
set(handles.edit4,'string',YPred4);
set(handles.edit5,'string',YPred5);


初始化


这个步骤就不多叙述了。

clc
axes(handles.axes1);
cla reset 
axes(handles.axes2);
cla reset 
axes(handles.axes3);
cla reset 
axes(handles.axes4);
cla reset 
axes(handles.axes5);
cla reset 
axes(handles.axes6);
cla reset 
A = " ";
set(handles.edit1,'string',A)
set(handles.edit2,'string',A)
set(handles.edit3,'string',A)
set(handles.edit4,'string',A)
set(handles.edit5,'string',A)


操作截图:


步骤1:选择图像

image.png


步骤2:执行OCR

image.png

image.png



步骤3:预处理

image.png



步骤4:识别字符

image.png


相关文章
|
3月前
|
机器学习/深度学习 数据采集 算法
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
244 4
|
2月前
|
机器学习/深度学习 安全 Serverless
【创新未发表】【故障诊断】基于连续小波变换-CNN, ResNet, CNN-SVM, CNN-BiGRU, CNN-LSTM的故障诊断研究【凯斯西储大学数据】(Matlab代码实现)
【创新未发表】【故障诊断】基于连续小波变换-CNN, ResNet, CNN-SVM, CNN-BiGRU, CNN-LSTM的故障诊断研究【凯斯西储大学数据】(Matlab代码实现)
228 0
|
2月前
|
机器学习/深度学习 传感器 数据采集
基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)
基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)
476 0
|
2月前
|
机器学习/深度学习 传感器 数据采集
【故障识别】基于CNN-SVM卷积神经网络结合支持向量机的数据分类预测研究(Matlab代码实现)
【故障识别】基于CNN-SVM卷积神经网络结合支持向量机的数据分类预测研究(Matlab代码实现)
208 0
|
3月前
|
机器学习/深度学习 传感器 边缘计算
【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大学数据】(Matlab代码实现)
【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大学数据】(Matlab代码实现)
119 0
|
3月前
|
机器学习/深度学习 算法 物联网
基于WOA-CNN-LSTM-Attention、CNN-LSTM-Attention、WOA-CNN-LSTM、CNN-LSTM、LSTM、CNN6模型多变量时序预测一键对比研究(Matlab代码)
基于WOA-CNN-LSTM-Attention、CNN-LSTM-Attention、WOA-CNN-LSTM、CNN-LSTM、LSTM、CNN6模型多变量时序预测一键对比研究(Matlab代码)
140 0
|
5月前
|
机器学习/深度学习 数据采集 监控
基于CNN卷积神经网络和GEI步态能量提取的步态识别算法matlab仿真,对比不同角度下的步态识别性能
本项目基于CNN卷积神经网络与GEI步态能量提取技术,实现高效步态识别。算法使用不同角度(0°、45°、90°)的步态数据库进行训练与测试,评估模型在多角度下的识别性能。核心流程包括步态图像采集、GEI特征提取、数据预处理及CNN模型训练与评估。通过ReLU等激活函数引入非线性,提升模型表达能力。项目代码兼容Matlab2022a/2024b,提供完整中文注释与操作视频,助力研究与应用开发。
|
8月前
|
机器学习/深度学习 数据采集 算法
基于PSO粒子群优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-LSTM-SAM网络时间序列预测算法。使用Matlab2022a开发,完整代码含中文注释及操作视频。算法结合卷积层提取局部特征、LSTM处理长期依赖、自注意力机制捕捉全局特征,通过粒子群优化提升预测精度。适用于金融市场、气象预报等领域,提供高效准确的预测结果。
|
9月前
|
机器学习/深度学习 数据采集 算法
基于WOA鲸鱼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB 2022a实现时间序列预测,采用CNN-GRU-SAM网络结构,结合鲸鱼优化算法(WOA)优化网络参数。核心代码含操作视频,运行效果无水印。算法通过卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征,全连接层整合输出。数据预处理后,使用WOA迭代优化,最终输出最优预测结果。
|
9月前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目使用MATLAB 2022a实现时间序列预测算法,完整程序无水印。核心代码包含详细中文注释和操作视频。算法基于CNN-LSTM-SAM网络,融合卷积层、LSTM层与自注意力机制,适用于金融市场、气象预报等领域。通过数据归一化、种群初始化、适应度计算及参数优化等步骤,有效处理非线性时间序列,输出精准预测结果。

热门文章

最新文章

下一篇
oss云网关配置