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

    文章

    6524

    浏览量

    160069
  • 神经网络
    +关注

    关注

    42

    文章

    4842

    浏览量

    108166
  • BP神经网络
    +关注

    关注

    2

    文章

    127

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞芯微(EASY EAI)RV1126B 车牌识别

    白色警用车牌、使馆/港澳车牌、双层黄牌、武警车牌等;采用端到端识别,无需字符分割,直接输出识别结果。使用轻量级卷积神经网络定位图像中的车牌区域,对倾斜的车牌进行仿
    的头像 发表于 04-03 09:54 686次阅读
    瑞芯微(EASY EAI)RV1126B 车牌<b class='flag-5'>识别</b>

    友思特案例 | 金属行业视觉检测案例四:挖掘机钢板表面光学字符识别(OCR)检测

    在挖掘机钢板表面光学字符识别(OCR)检测中,通过实施友思特深度学习视觉检测解决方案,解决了挖掘机零部件生产所用钢板上标记识别的问题。这有助于防止材料分配错误,显著提高了生产效率。
    的头像 发表于 02-05 11:40 352次阅读
    友思特案例 | 金属行业视觉检测案例四:挖掘机钢板表面光学<b class='flag-5'>字符识别</b>(OCR)检测

    探索Murata Type2BP UWB模块评估套件:开启UWB开发新征程

    探索Murata Type2BP UWB模块评估套件:开启UWB开发新征程 在当今的电子科技领域,超宽带(UWB)技术凭借其高精度定位、高速数据传输等优势,正逐渐成为众多应用场景的热门选择。今天
    的头像 发表于 12-18 10:40 554次阅读

    网络通讯的结构及地址

    \")与32位整数(网络字节序)互转: 推荐使用兼容IPv4/IPv6的函数: inet_pton():字符串 → 网络字节序整数(presentation → network
    发表于 11-17 07:59

    【飞凌OK-MX9596-C开发板试用】③云端AI拍照识别

    。 本篇基于此,开发云端AI拍照识别简单来说,就是拍照,并调用云端AI工具,进行图像文本识别,再将识别的文本的文本显示出来。 这里的云端AI工具就是:百度智能云(有免费额度) ht
    发表于 11-01 22:12

    原厂 FZH173是点阵式液晶显示驱动电路 LCD驱动

    1.概述 型号:FZH173-COG 厂商:深圳市方中禾科技有限公司(Premier Chip Limited) FZH173是块点阵式液晶显示驱动电路,主要可以显示字符,日语等字库。电路可以
    发表于 10-31 14:42

    一图看懂晶丰明源BP2525x系列的区别

    一图看懂BP2525x之间的区别
    的头像 发表于 09-13 15:22 3139次阅读
    一图看懂晶丰明源<b class='flag-5'>BP</b>2525x系列的区别

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

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

    在Python中字符串逆序有几种方式,代码是什么

    对于一个给定的字符串,逆序输出,这个任务对于python来说是一种很简单的操作,毕竟强大的列表和字符串处理的一些列函数足以应付这些问题 了,今天总结了一下python中对于字符串的逆序
    的头像 发表于 08-28 14:44 1270次阅读

    瑞芯微RK3576语音识别算法

    字符序列。与说话人识别及说话人确认不同,后者尝试识别或确认发出语音的说话人而非其中所包含的词汇内容。我们的语音算法是基于Whisper是OpenAI设计的。Whis
    的头像 发表于 08-15 15:13 2437次阅读
    瑞芯微RK3576语音<b class='flag-5'>识别</b>算法

    【嘉楠堪智K230开发板试用体验】01 Studio K230开发板Test2——手掌,手势检测,字符检测

    这篇发完就继续去整比赛了,后续看电赛上k230的发挥吧 之前的颜色识别和二维码识别功能,类似于使用基础工具进行图像分析,适用于简单任务,但在复杂场景下能力有限。 KPU(神经网络处理器
    发表于 07-10 09:45

    即插即用、缺陷同检,维视智造推出读码/字符检测视觉系统新品

    在当前的工业生产领域,产品读码和字符识别是实现生产自动化、提升效率,保障质量、满足严格的可追溯性要求的必要生产动作。但因产品特性、生产环境、生产流程、生产要求的千差万别,传统的产品读码和字符识别常常
    的头像 发表于 06-19 08:51 959次阅读
    即插即用、缺陷同检,维视智造推出读码/<b class='flag-5'>字符</b>检测视觉系统新品

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

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

    液晶像素短路防护模组及液晶线路激光修复

    引言 在液晶显示技术中,液晶像素短路问题严重影响显示质量与产品良率。为解决这一难题,液晶像素短路防护模组应运而生,同时液晶线路激光修复技术也成为修复短路等缺陷的关键手段,二者对提升
    的头像 发表于 05-15 09:32 835次阅读
    <b class='flag-5'>液晶</b>像素短路防护模组及<b class='flag-5'>液晶</b>线路激光修复

    艾体宝干货 IOTA实战:如何精准识别网络风险

    在当前网络威胁日益频繁的背景下,企业迫切需要一种高效、智能的安全监测工具。本文深入介绍了 IOTA 在网络威胁识别中的实际应用价值。通过实时监控 TCP 连接、检测异常端口以及分析 SSL/TLS
    的头像 发表于 05-07 17:29 717次阅读
    艾体宝干货 IOTA实战:如何精准<b class='flag-5'>识别</b><b class='flag-5'>网络</b>风险