1介绍
好久没有写博客了,主要是去学习深度学习去了,用深度学习解决了人脸检测,人脸对齐,人脸识别三种技术,再写相关的博客感觉没什么意思,所以荒废了许久。最近做了关于仪表识别的工作。这里介绍下仪表识别中数码表识别的成果。
上图是一张测试结果,蓝色框标注了仪表的位置,绿色文字标注了蓝色框内仪表的标签和数字。
2方法
这里主要用的方法发是机器学习中的检测+传统方法的颜色分割。流程如下:
1)仪表检测
2)数字区域分割
3)数字检测
2.1仪表检测
目前开源的物体检测方法很多,对于上面场景来说,很多方法都可以达到理想的效果,比方说SSD,yolo,haar + adaboost等,传统方法,深度学习方法均可,建议采用多标签输出的方法,这样就可以一张图输入,多张标输出。
2.2数字区域分割
如果直接检测数字,干扰很多,效果很差,最好的方法是特殊场景,特殊对待。如上面这个表,可以检测黑色区域,得到如下的结果:
![]() | ![]() | ![]() | ![]() |
颜色检测后进行最小外接矩形计算就可以得到。需要注意的是得到检测框后要往内部padding一定比例的像素。
2.3数字检测
数字检测可以按照仪表检测的方法来进行。很多人会用tesseract来实现识别,往往是不得其法的,据说tesseract内部的算法是跟比划相关,led的显示是断的,所以两者是相悖的,所以用检测方法会很好的解决这个问题,检测分类包含数字,字母及小数点,为了效果好,标注的时候要用同样大小的框进行标注,比如小数点的标注框要比其面积大很多。
3结果
结果就看图吧。
4其他
目前检测方法以深度学习占主流,现在也出现一些网络,模型小,速度快,效果好很多,所以实用是没有问题的。我个人也研发了一些小网络,采用多尺度,级联结构,上面这些张图,i5单核100ms左右,如果仪表占全图一半的面积以上,i5单核实时是肯定没有问题的。
当然我还做了一些指针表的效果,如下图,采用的方法嘛,就是公司的机密了:
下面我做了一个具体的讲解视频,有兴趣可以看下
https://v.youku.com/v_show/id_XMzc5NjgyNDcyMA==.html?spm=a2h3j.8428770.3416059.1
5合作方式
首先将需求描述成文字,附上要识别的仪表图片,以邮件的方式发送到作者邮箱,邮件中同时留下个人的姓名、电话、单位等基本信息。
作者邮箱:huneng1991@163.com,微信:msg_of_huneng