方形指针表图像识别

看效果

这是方形指针表的原图(随便网上找的一张图片)
在这里插入图片描述
识别结果图:
在这里插入图片描述
原图片本来就有点模糊,看不太清。
这也是网上找的图片测试的识别结果。
检测的其中一个表

以下是识别结果
在这里插入图片描述

大致思路

1.yolov5目标检测。
训练完成tensorrt加速识别结果(每次识别一个表)。
在这里插入图片描述
2.图像矫正。
用传统方法进行的矫正,应该也可以用深度学习,通过分割或者关键点检测。懒得训练了,直接用传统方法做的。随便找几张看下效果如下:
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

上边是yolo检测结果。

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

这是矫正结果。

3.接下来是指针角度识别。
我没有用paddlocr的思路去识别数字,网上搜了很多资料,很多都是要ocr识别数字,或者要用检测或者分割去分割数字,或者用关键点检测去检测指针的两端以及数字的中心,有的是识别每个刻度线;我看也有用传统方法去分割指针的,我感觉图片比较单一或者很清楚的条件下可以那么做,目前情况是,有各种各样的方形指针表,有的指针表上还有脏东西干扰,纯用传统方法不适用。
但是这种指针表的范围是不一样的,有的是0-3kA,单位各种不一样,有v、A、kA、kV等各种单位,刻度的范围也各种不一样,有最大是3的,有100的,400的等各种范围,有很多还是刻度不均匀的情况。如果要做的比较通用的话,要收集各种数据标注刻度,数字甚至单位。目前没有收集那么多数据,所以想做个比较通用的算法,只是识别指针的角度,通过角度转换为对应的刻度即可。
tensorrt加速后分割效果:
在这里插入图片描述
通过判断起始点和终点计算出角度,然后根据角度转换为对应的刻度,有一个计算公式,可以参考: https://blog.csdn.net/qq_46035581/article/details/131903104 如下:
在这里插入图片描述
再记录一下整个流程:
通过海康sdk登录nvr,控制多个相机转到之前设定好的指定的预置点并进行抓拍图像(多线程执行)。
把各自拍好的图片给各自的算法(每张图像中的表是不一样的,有压力表,油位计,压板,数字表等。java已经配好了每个预置点调用哪些算法,调用巡检任务之前已经传给算法并解析)。
算法端作为服务端,接收到要巡检任务(去那些摄像头的哪些预置点拍照)后将识别结果通过http服务再返回给java,最终将识别数字以及状态等信息显示在页面上(报警或者正常)。

完事。写c++蛋疼。。。。。。。。。。。。。。。。。。

圆形双指针表以及sf6压力表

下次整理一下圆形双指针表以及sf6压力表的读数思路。都是大同小异,检测加分割,计算角度然后转成刻度值。
在这里插入图片描述
这是识别结果 可以看到黑指针识别结果为26.63,和真实结果还是存在误差的。在这里插入图片描述

在这里插入图片描述
这里还不知道客户那边要输出什么结果,先按黑指针占整个刻度的百分比来做吧,后期有变动也好改。
结果被挡住了,实际我的结果是77.7%在这里插入图片描述

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值