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

本文涉及的产品
企业资质识别,企业资质识别 200次/月
票据凭证识别,票据凭证识别 200次/月
个人证照识别,个人证照识别 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


相关文章
|
22天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
27天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化卷积神经网络(Bayes-CNN)的多因子数据分类识别算法matlab仿真
本项目展示了贝叶斯优化在CNN中的应用,包括优化过程、训练与识别效果对比,以及标准CNN的识别结果。使用Matlab2022a开发,提供完整代码及视频教程。贝叶斯优化通过构建代理模型指导超参数优化,显著提升模型性能,适用于复杂数据分类任务。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于NSCT非采样轮廓波变换和CNN网络人脸识别matlab仿真
本项目展示了一种结合非采样轮廓波变换(NSCT)与卷积神经网络(CNN)的人脸识别系统。通过NSCT提取多尺度、多方向特征,并利用CNN的强大分类能力实现高效识别。项目包括ORL人脸库的训练结果对比,提供Matlab 2022a版本下的完整代码及详细中文注释,另有操作步骤视频指导。
|
4月前
|
机器学习/深度学习 数据采集 监控
基于CNN卷积神经网络的步态识别matlab仿真,数据库采用CASIA库
**核心程序**: 完整版代码附中文注释,确保清晰理解。 **理论概述**: 利用CNN从视频中学习步态时空特征。 **系统框架**: 1. 数据预处理 2. CNN特征提取 3. 构建CNN模型 4. 训练与优化 5. 识别测试 **CNN原理**: 卷积、池化、激活功能强大特征学习。 **CASIA数据库**: 高质量数据集促进模型鲁棒性。 **结论**: CNN驱动的步态识别展现高精度,潜力巨大,适用于监控和安全领域。
|
3月前
|
机器学习/深度学习 算法 数据挖掘
基于WOA优化的CNN-LSTM的时间序列回归预测matlab仿真
本项目采用MATLAB 2022a实现时间序列预测,利用CNN与LSTM结合的优势,并以鲸鱼优化算法(WOA)优化模型超参数。CNN提取时间序列的局部特征,LSTM处理长期依赖关系,而WOA确保参数最优配置以提高预测准确性。完整代码附带中文注释及操作指南,运行效果无水印展示。
|
2月前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的CNN-LSTM的时间序列回归预测matlab仿真
本项目展示了一种结合灰狼优化(GWO)与深度学习模型(CNN和LSTM)的时间序列预测方法。GWO算法高效优化模型超参数,提升预测精度。CNN提取局部特征,LSTM处理长序列依赖,共同实现准确的未来数值预测。项目包括MATLAB 2022a环境下运行的完整代码及视频教程,代码内含详细中文注释,便于理解和操作。
|
3月前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的CNN-GRU的时间序列回归预测matlab仿真
时间序列预测关键在于有效利用历史数据预测未来值。本研究采用卷积神经网络(CNN)提取时间序列特征,结合GRU处理序列依赖性,并用灰狼优化(GWO)精调模型参数。CNN通过卷积与池化层提取数据特征,GRU通过更新门和重置门机制有效管理长期依赖。GWO模拟灰狼社群行为进行全局优化,提升预测准确性。本项目使用MATLAB 2022a实现,含详细中文注释及操作视频教程。
|
3月前
|
机器学习/深度学习 算法 数据挖掘
基于WOA优化的CNN-GRU的时间序列回归预测matlab仿真
本项目运用鲸鱼优化算法(WOA)优化卷积神经网络(CNN)与GRU网络的超参数,以提升时间序列预测精度。在MATLAB 2022a环境下,通过CNN提取时间序列的局部特征,而GRU则记忆长期依赖。WOA确保模型参数最优配置。代码附有中文注释及操作视频,便于理解和应用。效果预览无水印,直观展示预测准确性。
|
4月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的CNN-GRU的时间序列回归预测matlab仿真
- **算法理论:** 利用PSO优化的CNN-GRU,结合CNN的特征提取和GRU的记忆机制,进行时间序列预测。 - **CNN:** 通过卷积捕获序列的结构信息。 - **GRU:** 简化的LSTM,处理序列依赖。 - **预测步骤:** 1. 初始化粒子群,每粒子对应一组模型参数。 2. 训练并评估CNN-GRU模型的验证集MSE。 3. 使用PSO更新参数,寻找最佳配置。 4. 迭代优化直至满足停止准则。 ```
|
4月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于CNN卷积神经网络的MQAM调制识别matlab仿真
**理论**: 利用CNN自动识别MQAM调制信号,通过学习星座图特征区分16QAM, 64QAM等。CNN从原始数据提取高级特征,优于传统方法。 - **CNN结构**: 自动特征学习机制,适配多种MQAM类型。 - **优化**: 损失函数指导网络参数调整,提升识别准确度。 - **流程**: 大量样本训练+独立测试评估,确保模型泛化能力。 - **展望**: CNN强化无线通信信号处理,未来应用前景广阔。

热门文章

最新文章

  • 1
    【Python】已解决:Python正确安装文字识别库EasyOCR
    419
  • 2
    提升爬虫OCR识别率:解决嘈杂验证码问题
    122
  • 3
    文本,文字识别14,身份证和车牌识别接口
    28
  • 4
    文本,文字识别13,参数校验,实现参数校验,使用@Valid注解
    26
  • 5
    文本,文字识别12,接口返回值和异常封装,一个好的接口,应该包括,错误码,提示信息,返回的数据,应该知道出错,错在哪里,抛出业务异常应该怎样解决?出现业务异常的时候,抛出业务异常,全局异常处理
    37
  • 6
    文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
    94
  • 7
    文本,文识10,springBoot提供RestTemplate以调用Flask OCR接口,调用flask实现ocr接口,用paddleocr进行图片识别云服务技术,单个paddleocr接口有影响
    89
  • 8
    文本,文识08图片保存()上,最方便在于整体生成代码,serivce及实体类,base64编码保存图片文件,调用flask实现内部ocr接口,通过paddleocr识别,解析结果,base64转图片
    45
  • 9
    文本,文字识别07,SpringBoot服务开发-入参和返回值,编写接口的时候,要注意识别的文字返回的是多行,因此必须是List集合,Bean层,及实体类的搭建
    49
  • 10
    文本,文字识别,Flask实现内部接口开发,OCR外部接口的开发,如何开发一个识别接口,通过post调用,参数是图片的路径,内部调用,直接传图片路径就行
    64