0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简单的BP网络识别液晶字符

工程师 来源:TsinghuaJoking 作者:TsinghuaJoking 2020-10-19 15:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这学期的人工神经网络课程已经进行完了第三章内容,关于经典网络重要的BP(误差反向传播网络)是所有学习人工神经网络最先接触到的一个实用网络。它的原理相对比较简单,在很多平台中都非常容易实现。

学习神经网络的基本原理之后,更重要的是能够通过一些应用场合来应用它,使他能够帮助自己解决一些实际的工程问题。

近期购买到的 LC100-A[1] 电感电容测量模块,用于测量一些实验中实验对象的电感、电容值随着其他一些物理变量(工作电压、距离、温度等)所产生变化规律。为了便于实验,需要能够将LC100-A测量数值自动记录。

《《《 左右滑动见更多 》》》

在开始的方式就是直接使用摄像头获取液晶显示数据,然后使用字符识别软件来完成其中数字的识别。

测试一下CNOCR识别效果。它对于屏幕截图中的文字识别效果还不错:

▲ 屏幕截取的一段文字

识别时间:1.98。* 识别结果:

[[‘●’, ‘更’, ‘新’, ‘了’, ‘训’, ‘练’, ‘代’, ‘码’, ‘,’, ‘使’, ‘用’, ‘m’, ‘x’, ‘n’, ‘e’, ‘t’, ‘的’, ‘r’, ‘e’, ‘c’, ‘o’, ‘r’, ‘d’, ‘i’, ‘o’, ‘首’, ‘先’, ‘把’, ‘数’, ‘据’, ‘转’, ‘换’, ‘成’, ‘二’, ‘进’, ‘制’, ‘格’, ‘式’, ‘,’, ‘提’, ‘升’, ‘后’, ‘续’, ‘的’], [‘训’, ‘练’, ‘效’, ‘率’, ‘。’, ‘训’, ‘练’, ‘时’, ‘支’, ‘持’, ‘对’, ‘图’, ‘片’, ‘做’, ‘实’, ‘时’, ‘数’, ‘据’, ‘增’, ‘强’, ‘。’, ‘也’, ‘加’, ‘入’, ‘了’, ‘更’, ‘多’, ‘可’, ‘传’, ‘入’, ‘的’, ‘参’, ‘数’, ‘。’], [‘●’, ‘允’, ‘许’, ‘训’, ‘练’, ‘集’, ‘中’, ‘的’, ‘文’, ‘字’, ‘数’, ‘量’, ‘不’, ‘同’, ‘,’, ‘目’, ‘前’, ‘是’, ‘中’, ‘文’, ‘1’, ‘0’, ‘个’, ‘字’, ‘,’, ‘英’, ‘文’, ‘2’, ‘0’, ‘个’, ‘字’, ‘母’, ‘。’], [‘。’, ‘提’, ‘供’, ‘了’, ‘更’, ‘多’, ‘的’, ‘模’, ‘型’, ‘选’, ‘择’, ‘,’, ‘允’, ‘许’, ‘大’, ‘家’, ‘按’, ‘需’, ‘训’, ‘练’, ‘多’, ‘种’, ‘不’, ‘同’, ‘大’, ‘小’, ‘的’, ‘识’, ‘别’, ‘模’, ‘型’, ‘。’], [‘●’, ‘ ’, ‘内’, ‘置’, ‘了’, ‘各’, ‘种’, ‘训’, ‘练’, ‘好’, ‘的’, ‘模’, ‘型’, ‘,’, ‘最’, ‘小’, ‘的’, ‘模’, ‘型’, ‘只’, ‘有’, ‘之’, ‘前’, ‘模’, ‘型’, ‘的’, ‘1’, ‘/’, ‘5’, ‘大’, ‘小’, ‘。’, ‘所’, ‘有’, ‘模’, ‘型’, ‘都’, ‘可’, ‘免’, ‘费’], [‘使’, ‘用’, ‘。’]]

那么对于前面液晶屏幕识别效果呢:

▲ 只是数字部分

识别结果:[[‘。’, ‘。’, ‘与’, ‘F’, ‘早’, ‘H’]]

好像驴唇不对马嘴。

这主要原因还是原来网络没有针对上述液晶实现数字进行训练过。由于液晶显示图片质量非常好,实际上只需要最简单的BP网络就可以达到很好的效果。

下面给出在MATLAB中构建网络并进行实验的过程。

使用神经网络解决问题,一个重要的环节就是进行训练数据的准备。通过对采集到的一些图片中的数字进行提取并手工标注,来完成对网络的训练。

1.数字分割

下面是桌面摄像头捕捉到的测量图片,通过简单的图片灰度投影,比较方便将显示数字所在图片中的位置定出。为了简单起见,也可以固定摄像头与LCD相对位置,这样手工定标出结果字符位置也可以适用于后面测量结果。

▲ 液晶数字显示以及数字部分

这个问题简单之处在于所有字符都是等宽,而且对比度非常好,简单的分离就可以将所有的字符单独分离出来。由于摄像头位置固定,所以简单分割之后的字符之后少量的上下左右平移,没有旋转。对于图片位置、尺寸就不再进行归一化。这些差异最后有神经网络来弥补。

▲ 分割出的数字

液晶显示字符的图片对比度很好。但就是有一个问题,在摄像头拍摄的时候,经常会遇到字符变化过程,这就会使得图片中字符呈现两个字符叠加的情况。下面是一些示例:

▲ 数字变化过程的图片

这些过程,说实在的,即使人工识别也会无法分辨。

后面通过人工输入标注了2000多个样本。

2.图片二值化

对于分割的图片进行二值化,可以消除环境光对于图片亮度的影响。在一定程度上,也可以消除液晶字符在变化时所引起的模糊。

上面所有的字符的尺寸是23乘以38点阵。

1.构建网络和训练

简单的实验,就用简单的方法。对于前面所得到的字符,不再人工定义它们的特征。仅仅将原来的彩色图片变换成灰度图像,然后排列成23×38=874维向量。然后增加一层中间隐层便组成了最简单的分类网络。

net = patternnet(11)

▲ 构造一个单隐层神经网络

将前面人工标注的样本一半用于训练,全部样本用于测试。下面给出了测试的结果。

plotconfusion(xx, net(yy))

▲ 训练结果

2.训练结果与分析

整体的错误率大约为:ERR= 2.99%。

下面是识别正确的字符。

▲ 识别正确的字符

下面给出了部分识别错误字符的情况。基本上都是一些拍摄到液晶字符在变化过程中的重叠字符情况。这些情况本身在人工标注的时候就存在模糊。

《《《 左右滑动见更多 》》》

3.网络结构与错误率

下面给出了网络的隐层节点个数与识别错误样本个数之间的关系。可以看到当中间隐层节点大于5之后,识别性能就不再有明显的变化了。

隐层节点个数234567891011

错误数量181065621677696665725868

▲ 隐层节点个数与错误率

使用神经网络解决问题,不是寻找最强大的网络,而是需要最合适的网络。

通过上面的测试结果来看,简单的单隐层网络便可以很好的满足液晶显示数字识别。那么对于那些由于数字跳动所引起的错误该怎么处理呢?

这个问题如果仅仅依靠增加训练样本和改进网络结构是很难进行彻底解决,规避这个错误可以通过对连续识别结果进行比对来解决。对显示数字进行连续快速采集5帧图像,其中液晶跳动往往只发生在其中一帧,或者两帧。那么对于五个图像识别出的数字进行对比,找到相同次数最多的数字作为输出结果。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电容
    +关注

    关注

    100

    文章

    6442

    浏览量

    158066
  • 神经网络
    +关注

    关注

    42

    文章

    4829

    浏览量

    106829
  • BP神经网络
    +关注

    关注

    2

    文章

    127

    浏览量

    31518
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    药品包装压印字符识别检测难度大?PMS光度立体融合技术来破局!

    PMS光度立体图像融合检测系统破解了药品压印字符识别难题。该系统通过光源标定、多角度图像采集、缺陷增强和AI字符识别四个核心步骤,有效解决了药品包装上凹凸字符因高光过曝、暗区细节丢失和低对比度导致的
    的头像 发表于 09-06 10:51 678次阅读

    改进的BP网络PID控制器在无刷直流电机中的应用

    通过分析学习速率对BP算法的影响,提出一种分层调整学习速率的改进BP 网络算法,并把该方法设计成 PID控制器应用在无刷直流电机控制系统中,仿真结果验证了基于改进的 BP
    发表于 05-28 15:42

    使用BP神经网络进行时间序列预测

    使用BP(Backpropagation)神经网络进行时间序列预测是一种常见且有效的方法。以下是一个基于BP神经网络进行时间序列预测的详细步骤和考虑因素: 一、数据准备 收集数据 :
    的头像 发表于 02-12 16:44 1276次阅读

    BP神经网络网络结构设计原则

    BP(back propagation)神经网络是一种按照误差逆向传播算法训练的多层前馈神经网络,其网络结构设计原则主要基于以下几个方面: 一、层次结构 输入层 :接收外部输入信号,不
    的头像 发表于 02-12 16:41 1265次阅读

    BP神经网络的调参技巧与建议

    BP神经网络的调参是一个复杂且关键的过程,涉及多个超参数的优化和调整。以下是一些主要的调参技巧与建议: 一、学习率(Learning Rate) 重要性 :学习率是BP神经网络中最重要
    的头像 发表于 02-12 16:38 1471次阅读

    BP神经网络与卷积神经网络的比较

    BP神经网络与卷积神经网络在多个方面存在显著差异,以下是对两者的比较: 一、结构特点 BP神经网络
    的头像 发表于 02-12 15:53 1346次阅读

    如何优化BP神经网络的学习率

    优化BP神经网络的学习率是提高模型训练效率和性能的关键步骤。以下是一些优化BP神经网络学习率的方法: 一、理解学习率的重要性 学习率决定了模型参数在每次迭代时更新的幅度。过大的学习率可
    的头像 发表于 02-12 15:51 1456次阅读

    BP神经网络的实现步骤详解

    BP神经网络的实现步骤主要包括以下几个阶段:网络初始化、前向传播、误差计算、反向传播和权重更新。以下是对这些步骤的详细解释: 一、网络初始化 确定
    的头像 发表于 02-12 15:50 1138次阅读

    BP神经网络的优缺点分析

    BP神经网络(Back Propagation Neural Network)作为一种常用的机器学习模型,具有显著的优点,同时也存在一些不容忽视的缺点。以下是对BP神经网络优缺点的分析
    的头像 发表于 02-12 15:36 1614次阅读

    什么是BP神经网络的反向传播算法

    BP神经网络的反向传播算法(Backpropagation Algorithm)是一种用于训练神经网络的有效方法。以下是关于BP神经网络的反
    的头像 发表于 02-12 15:18 1300次阅读

    BP神经网络与深度学习的关系

    BP神经网络与深度学习之间存在着密切的关系,以下是对它们之间关系的介绍: 一、BP神经网络的基本概念 BP神经
    的头像 发表于 02-12 15:15 1364次阅读

    BP神经网络的基本原理

    BP神经网络(Back Propagation Neural Network)的基本原理涉及前向传播和反向传播两个核心过程。以下是关于BP神经网络基本原理的介绍: 一、
    的头像 发表于 02-12 15:13 1548次阅读

    BP神经网络在图像识别中的应用

    BP神经网络在图像识别中发挥着重要作用,其多层结构使得网络能够学习到复杂的特征表达,适用于处理非线性问题。以下是对BP神经
    的头像 发表于 02-12 15:12 1202次阅读

    如何训练BP神经网络模型

    BP(Back Propagation)神经网络是一种经典的人工神经网络模型,其训练过程主要分为两个阶段:前向传播和反向传播。以下是训练BP神经网络
    的头像 发表于 02-12 15:10 1477次阅读

    字符串与字符数组的区别

    大多数编程语言中是一个高级数据结构,通常由语言的运行时环境直接支持。字符串通常以连续的字符序列存储,但它们不仅仅是字符简单集合。字符串对象
    的头像 发表于 01-07 15:29 1702次阅读