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

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

    关注

    99

    文章

    5994

    浏览量

    149989
  • 神经网络
    +关注

    关注

    42

    文章

    4762

    浏览量

    100534
  • BP神经网络
    +关注

    关注

    2

    文章

    115

    浏览量

    30533
收藏 人收藏

    评论

    相关推荐

    BP网络的基本概念和训练原理

    )的多层前馈神经网络BP网络自1985年提出以来,因其强大的学习和适应能力,在机器学习、数据挖掘、模式识别等领域得到了广泛应用。以下将对BP
    的头像 发表于 07-19 17:24 1327次阅读

    BP神经网络样本的获取方法

    BP神经网络(Backpropagation Neural Network)是一种基于误差反向传播算法的多层前馈神经网络,广泛应用于模式识别、分类、预测等领域。在构建
    的头像 发表于 07-11 10:50 482次阅读

    BP神经网络最少要多少份样本

    BP神经网络(Backpropagation Neural Network)是一种多层前馈神经网络,通过反向传播算法进行训练。BP神经网络
    的头像 发表于 07-11 10:31 466次阅读

    BP神经网络的学习机制

    BP神经网络(Backpropagation Neural Network),即反向传播神经网络,是一种基于梯度下降算法的多层前馈神经网络,其学习机制的核心在于通过反向传播算法
    的头像 发表于 07-10 15:49 454次阅读

    BP神经网络在语言特征信号分类中的应用

    随着人工智能技术的飞速发展,语言特征信号分类作为语音识别、语种识别及语音情感分析等领域的重要基础,正逐渐受到研究者的广泛关注。BP神经网络(Back Propagation Neura
    的头像 发表于 07-10 15:44 313次阅读

    BP神经网络和人工神经网络的区别

    BP神经网络和人工神经网络(Artificial Neural Networks,简称ANNs)之间的关系与区别,是神经网络领域中一个基础且重要的话题。本文将从定义、结构、算法、应用及
    的头像 发表于 07-10 15:20 821次阅读

    BP神经网络的基本结构和训练过程

    BP神经网络,全称为反向传播神经网络(Backpropagation Neural Network),是一种在机器学习、数据挖掘和模式识别等领域广泛应用的人工神经
    的头像 发表于 07-10 15:07 3449次阅读
    <b class='flag-5'>BP</b>神经<b class='flag-5'>网络</b>的基本结构和训练过程

    bp神经网络和反向传播神经网络区别在哪

    神经网络在许多领域都有广泛的应用,如语音识别、图像识别、自然语言处理等。然而,BP神经网络也存在一些问题,如容易陷入局部最优解、训练时间长、
    的头像 发表于 07-04 09:51 379次阅读

    bp神经网络算法的基本流程包括哪些

    BP神经网络算法,即反向传播神经网络算法,是一种常用的多层前馈神经网络训练算法。它通过反向传播误差来调整网络的权重和偏置,从而实现对输入数据
    的头像 发表于 07-04 09:47 482次阅读

    bp神经网络算法过程包括

    BP神经网络(Backpropagation Neural Network)是一种多层前馈神经网络,具有强大的非线性映射能力,广泛应用于模式识别、信号处理、预测等领域。本文将详细介绍
    的头像 发表于 07-04 09:45 366次阅读

    反向传播神经网络bp神经网络的区别

    神经网络在许多领域都有广泛的应用,如语音识别、图像识别、自然语言处理等。然而,BP神经网络也存在一些问题,如容易陷入局部最优解、训练时间长、
    的头像 发表于 07-03 11:00 670次阅读

    bp神经网络是深度神经网络

    BP神经网络(Backpropagation Neural Network)是一种常见的前馈神经网络,它使用反向传播算法来训练网络。虽然BP
    的头像 发表于 07-03 10:14 679次阅读

    BP神经网络激活函数怎么选择

    BP神经网络(Backpropagation Neural Network)是一种多层前馈神经网络,其核心思想是通过反向传播算法来调整网络中的权重和偏置,以实现对输入数据的分类或回归。
    的头像 发表于 07-03 10:02 580次阅读

    bp神经网络模型怎么算预测值

    BP神经网络(Backpropagation Neural Network,简称BP网络)是一种多层前馈神经网络,它通过反向传播算法来调整
    的头像 发表于 07-03 09:59 651次阅读

    BP神经网络算法的基本流程包括

    BP神经网络算法,即反向传播(Backpropagation)神经网络算法,是一种多层前馈神经网络,通过反向传播误差来训练网络权重。
    的头像 发表于 07-03 09:52 403次阅读