(项目)数字仪表检索+三色灯分类
Posted kongweisi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(项目)数字仪表检索+三色灯分类相关的知识,希望对你有一定的参考价值。
记录一下做数字仪表检测项目的过程,会附带部分代码
业务背景:四块仪表,每块表界面是4位(红色)数字,即要检测识别4个4位数字。在检测界面还有三个灯,三个灯都是3中颜色,红色、黄色、绿色。
我要做的就是实时的检测出4个4位数字具体的数值,并且对3个灯进行分类。
解决思路:首先在摄像头所拍摄到的界面中定位到数字、灯所在的区域,然后进行识别或者分类。
解决方法:
数字识别,有以下解决方法:
一、使用模板匹配的方法,因为数字都是规范格式的,所以使用模板匹配可以保证准确率,但是速度会比较慢;
二、在定位到数字区域后,进行字符分割,优点是字符分割后可以使用很简单的神经网络就可以进行数字0-9的分类,缺点是要一个一个数字识别;
三、直接使用CNN网络进行分类,类似验证码识别,为了能够将验证码图片的文本信息输入到卷积神经网络模型里面去训练,需要将文本信息向量化
编码,参见https://my.oschina.net/u/876354/blog/3048523这篇博客。优点是使用的CNN网络很简单,缺点是需要大量的训练数据,否则模型预测效果很差;
四、使用cnn+lstm+ctc这种比较成熟的深度学习在ocr的应用的模型组合。这里我采用的是第四种方法,模型有比较好的鲁棒性,由于ctc的存在,
将来换成不定长的数字仪表也可以识别。具体原理参见https://my.oschina.net/u/876354/blog/3070699。这里我使用的网络是lstm+ctc,之所以没有使用
cnn是因为,也使用了“有色灯分类”中基于颜色提取4位数字目标,直接确定了4位数字所在的区域,在训练数据采集时,得到的即是使用该方法摄像头
采集到的数字图片,而在预测的过程中,摄像头拍摄的区域也会自动分隔出4张小的数字图片送入模型进行预测。基于颜色提取的目标比较稳定,因此没有
使用cnn进行特征提取。
有色灯分类,有以下解决方法:
一、使用深度学习的目标检测方法,有one-stage和two-stage两种,比较经典的是fast-rcnn和ssd、yolo等,但是由于这里只是3种灯的分类,业务
场景很简单,这里不使用这种方法。
二、使用opencv中基于颜色提取目标,可以在摄像头具体采集数字仪表和有色灯的场景下,提取有色灯3种颜色的hsv色彩空间的信息,然后使用
opencv中的一系列API进行目标提取和分类。(inrange得到二值图像,滤波,腐蚀,膨胀,得到梯度,根据梯度找到目标轮廓)。我使用的是第二种方法。
以上是关于(项目)数字仪表检索+三色灯分类的主要内容,如果未能解决你的问题,请参考以下文章
使用Arduino SCoop库实现三色灯交替闪烁并伴有警报声500-750HZ
一种4Gwifi远程控制三色灯蜂鸣报警器支持ERP安灯系统MESAPS对接