仪表探测&读数

PART I:仪表探测

* 方式1: 接入实时巡检视频流,生成带有仪表盘的顺序截图

a. 从视频中detect仪表,并用bounding box标出, 使用Faster_rcnn_resnet101网络训练,为提高计算速度,每1秒取一帧画面就可以,因为机器人移动速度很慢,在表盘的停留时间够长

b. 因为读表盘示数对表盘大小&清晰度要求较高,只有当探测图像占据的面积达到画面一定比例以上时,且位置相对居中,才符合截图条件

c. 为避免重复截图,时序上连续符合条件的截图只保留一张,但要注意聚焦问题,(cv.Laplacian(image, cv2.CV_64F).var() < threshold, then blur)与运行轨迹对应可以将仪表图片对号入座

Test 1

2018/08/24中午11点半左右开始,机器人具体出库时间不详,程序共运行62.5分钟

其中在48.6分钟内检测到18块仪表,发现三个误判

(编号空白因为没有截到仪表编号/仪表没有编号)

Cropped示例 & 识别示例 & 三个误判::

仪表编号在测试后进行过改编,此测试仅供效果参考

* 方式2: 调取API接口传入图片,得到图片是否包含仪表盘的判断

对gauge_detection model使用falsk进行封装,图片地址是以img_addr=XXX 的形式嵌入在请求中的,需要把其中的”=”全部用”%26”替换,否则会影响识别,对”img_addr=”中的”=”造成混淆

接口返回值示例:

包含了PARTII仪表读数部分的结果

code部分为识别结果

0:存在可读数仪表盘;1:圆盘定位故障;2:复杂表盘读数故障;3:数字&角度validate失败

4:读数故障;5:不存在可读数仪表盘

msg部分为读数结果

读数精确到小数点后一位

PART II:仪表读数

难点分析:表盘种类繁多,有的还为多指针

Step1: 用深度学习识别数字

Step2: 根据数字位置定位表盘及圆心

Step3: 定位指针角度

Step4: Generate readings

测试结果示例:

准确度还是比较高的,对于开*视频流中唯一一种复杂表盘,无法用以上通用读法攻克,单独做了应对处理。

PART III : PROJECT PROGRESS

2018/10/12

两个场地的测试样本接收,4500条

2018/10/13 - 2018/10/25

一轮一轮的调试优化代码

2018/10/26 

识别及读数效果统计



2018/10/29

场地三测试样本接收,10000条

2018/10/30 -

因为新的测试样本中有很多表盘带有小数点,更新算法以解决小数点的问题

source code: https://git.c.citic/lijy/GaugeReading (Private,未对外开设权限)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 人力资源仪表盘的内容做一个全面讲解,涉及的内容可能有点多,大家根据需要选择性的来看。 本文共分为五个部分: 1、什...
    HR石头阅读 2,222评论 0 5
  • 我的梦想是开家浪漫优雅的咖啡店,里面的选材都是经过专业的筛选,咖啡豆饱满新鲜,咖啡机与时俱进,磨豆器做工讲究。 也...
    清风伏笔阅读 335评论 2 3
  • 自己用一个比喻来说啊!教师,满身的创伤,需要等待时间,才能结上痂,愈合起来。 我觉我浑身是疲软的状态,可以说不堪一...
    lygly9阅读 473评论 0 0