概述
通过摄像头采集现场图片,拍照各种模拟仪表(指针和Led数码和指示灯)。程序识别出 指针读数,数码读数和指示灯状态,然后把数据发物联网平台上
01. 效果
02. 描述
- 采集摄像头的图像
- 采用opencv对图像的模拟仪表和数字LED灯部分,进行识别和标注
- 识别到模拟仪表盘图像,二值化后做分析处理,找到指针角度,并转换为数值
- 识别LED数值图像,做OCR识别,并转换成数值
- 通过mqtt协议发送给物联网平台,显示到物联网的仪表盘上
03. 代码实现
这个过程较复杂,几段代码描述不清,我还在整理中,部分因为在做商业项目,也无法开源。以后整理好后,我会发到我的github上,分享给大家吧。 今天就简单说说吧。
- 客户端采用python编程,使用mqtt协议和 物联网服务器通讯,发送数据。使用了 paho.mqtt的库 。
- 图像处理采用了opencv,第一步先做图像的检测和分割,找到仪表盘和LED灯,第二部模拟仪表盘二值化后,很容易找到指针,再算出角度,对应出数值出来这个并不难。
- LED的OCR识别,这个因为LED的图像相对很标准,所以采用深度学习的图像分类算法,做训练,把训练集保存成模型,再利用模型进行识别,这样也挺简单,效率也很高。
04. 结论
通过搭建这个平台,在实验室环境下取得了不错的识别效果,以后考虑在工业领域采集现场的图像信息,通过计算机视觉方式再加上一定的深度学习技术,可以大幅改善传统的工业数据采集领域的一些空白,希望我们的技术有一点用武之地。
05. 运行环境
我在开发环境下做的,基本上搭建在我的mac本上,网络摄像头采用了海康威视的(不到200元的网络摄像机),理论上是跨平台的。
开发工具:
python2.7
opencv2.4
TensorFlow1.0
paho.mqtt
...
06. 我的标签
计算机软件工程师,自动化专业,金世达科技创始人之一,目前带领技术研发团队专注工业物联网领域的人工智能技术应用,欢迎大家一起探讨。
07.后记
2018年11月考察变电站项目,对变电站仪表做了部分识别实验.
详见这篇文章:无人值守项目中传统仪表识别