简单的BP网络识别液晶中的数字实验( 二 )
▲ 数字变化过程的图片
这些过程 , 说实在的 , 即使人工识别也会无法分辨 。
后面通过人工输入标注了2000多个样本 。
2.图片二值化对于分割的图片进行二值化 , 可以消除环境光对于图片亮度的影响 。 在一定程度上 , 也可以消除液晶字符在变化时所引起的模糊 。
文章插图
文章插图
文章插图
<<< 左右滑动见更多 >>>
上面所有的字符的尺寸是23乘以38点阵 。
文章插图
1.构建网络和训练简单的实验 , 就用简单的方法 。 对于前面所得到的字符 , 不再人工定义它们的特征 。 仅仅将原来的彩色图片变换成灰度图像 , 然后排列成23×38=874维向量 。 然后增加一层中间隐层便组成了最简单的分类网络 。
net = patternnet(11)
文章插图
▲ 构造一个单隐层神经网络
将前面人工标注的样本一半用于训练 , 全部样本用于测试 。 下面给出了测试的结果 。
plotconfusion(xx, net(yy))
文章插图
▲ 训练结果
2.训练结果与分析整体的错误率大约为:ERR= 2.99% 。
下面是识别正确的字符 。
文章插图
▲ 识别正确的字符
下面给出了部分识别错误字符的情况 。 基本上都是一些拍摄到液晶字符在变化过程中的重叠字符情况 。 这些情况本身在人工标注的时候就存在模糊 。
文章插图
文章插图
<<< 左右滑动见更多 >>>
3.网络结构与错误率下面给出了网络的隐层节点个数与识别错误样本个数之间的关系 。 可以看到当中间隐层节点大于5之后 , 识别性能就不再有明显的变化了 。
隐层节点个数 2 3 4 5 6 7 8 9 10 11 错误数量 1810 656 216 77 69 66 65 72 58 68
文章插图
文章插图
<<< 左右滑动见更多 >>>
使用神经网络解决问题 , 不是寻找最强大的网络 , 而是需要最合适的网络 。
通过上面的测试结果来看 , 简单的单隐层网络便可以很好的满足液晶显示数字识别 。 那么对于那些由于数字跳动所引起的错误该怎么处理呢?
这个问题如果仅仅依靠增加训练样本和改进网络结构是很难进行彻底解决 , 规避这个错误可以通过对连续识别结果进行比对来解决 。 对显示数字进行连续快速采集5帧图像 , 其中液晶跳动往往只发生在其中一帧 , 或者两帧 。 那么对于五个图像识别出的数字进行对比 , 找到相同次数最多的数字作为输出结果 。
参考资料[1]
LC100-A:
- 智能手机市场|华为再拿第一!27%的份额领跑全行业,苹果8%排在第四名!
- 会员|美容院使用会员管理软件给顾客更好的消费体验!
- 行业|现在行业内客服托管费用是怎么算的
- 闲鱼|电诉宝:“闲鱼”网络欺诈成用户投诉热点 Q3获“不建议下单”评级
- 人民币|天猫国际新增“服务大类”,知舟集团提醒入驻这些类目的要注意
- 国外|坐拥77件专利,打破国外的垄断,造出中国最先进的家电芯片
- 技术|做“视频”绿厂是专业的,这项技术获人民日报评论点赞
- 面临|“熟悉的陌生人”不该被边缘化
- 峰会|这场峰会厉害了!政府企业专家媒体共议网络内容生态治理
- 中国|浅谈5G移动通信技术的前世和今生
