首页 > 编程知识 正文

python图像识别与提取,python可以做工业视觉吗

时间:2023-05-04 10:11:16 阅读:8993 作者:1923

视觉工业时钟识别单针,单刻度计通过检测针的位置的算法计算多针,单刻度计通过针的识别时刻度的组合拟合如图3、图6所示的图1、分割2、刻度线3、指针拟合4,使用托马斯角点拟合刻度线的时刻度

随着人工智能的发展,目前各行业已开始向AI渗透,其中最成功的是工业,特别是安防、巡查板块。 这篇文章记录了工业中比较有挑战性的仪器识别,以免自己以后忘记。 毕竟,做算法,逻辑是最重要的,杀了也不能忘记

本文中的场景实际应用于工程,并引入到实际场景中,# torch1.7.1torch vision0.8.2scipy1.6.0numpy1. 19.5 opencv-contrib -。

图2

图3

图4

图5

图6

从技术的角度,我把他们分成四类,对四种类型,分别做了一个项目

单针、单刻度仪表应该是这种类型的仪表最简单,如图1、图2、图4所示

1、检测识别刻度

2、检测指针位置

3、计算度数

考虑到实际情况,超视距识别可能是一个小目标识别。 另外,我处理的时候实时要求很高,但是硬件支持不够。 因此,用优先采用的yolo5x进行了刻度度数检测识别。

由于事先收集了足量的各种规格的仪表数据,所以对所有仪表统一了表盘的度数识别(文字识别),获取了每个数字的度数值及其位置

这里需要注意。 模型输出中的object是最小的外框,但考虑到实际情况,并不能完全适合所有图,会出现图像失真和倾斜等各种问题。 因此,在进行该步骤"我是度量对准"时,施加透视变换来校正图像,使用校正后的图像进入下一步骤,检测"训练时不需要事先进行透视变换"指针的位置的指针所采用的unet分割模型分割效果不言而喻,是铁棒的

计算算法这个模块,其实算法也很重要。 模型检测到刻度的度数、指针的位置后,需要用算法计算详细的读数。 关于该仪表,逻辑也简单,只要取得指针相邻两侧的度数,并基于度数的坐标加上偏移量,就能够在数学上计算出读数

【这里定制了很多校验函数,在计算过程中不断进行各种偏移校正,尽量修正误差】

多针、单刻度计如图5所示

这种类型仪表的想法与单针、单刻度仪表的想法相似,不同之处如下。

在指针识别时,单指针的分割图成为一个目标,可以简单地自由获取所需的信息。 但是,与多指针不同,他们的指针可能存在各种情况,特别是指针可能会交叉。 所以呢

需要对分割图表进行线性拟合,取得多个指针的信息

刻度组合有时对于单行的刻度也如图5那样分段

这里我采取的方案是预先定义刻度组合策略。 例如,左边的刻度为- 1070,右边的刻度为10 - 60。 根据模型识别的结果,参照坐标组合模型的结果,组合的结果为不同的刻度

剩下的想法是延长单针的想法

关于图3、图6的图像计算机,虽然有点复杂,但也很少。 的总和可以在下图中汇总:

理论上也可以采用与上面单针表相同的方案。 当然,值在理论上是存在的。 总之,我自己用那个方案做的结果很悲惨。

按照百度飞浆公式的建议开始做了一次。 不得不说,大厂毕竟是大厂,做的太理想了,【儿戏】化了,拿到真实的场景也完全没用。 但是,我借鉴了一些想法

1、拆分仪表,离不开语义拆分的哈。

这种仪器的相变点在于其指针,真的不是常态,特别细致。 另外,在这种实际情况下,有倾斜的话刻度也很难识别。 我前后试了几个针对小目标的模型,但效果并不理想。 最后,参考飞浆推荐的deeplabv3,如上图进行了分割【上图所示的分割图是我过度膨胀的产物,实际模型出来的结果拟合很好】

2、对准刻度线后,分割的刻度会过度膨胀。 我在使用(23,23 ),但还是过度了。 然后对膨胀的分割图进行圆拟合

3、指针拟合指针分割后,直接采用最小二乘法进行线性拟合。 当然,也可以通过Hough变换进行检测。 两种方法都用了,但效果不相上下。

4、利用托马斯角点检测刻度线两端的我总是崇尚sobel运算符,但既然发现有现成的api,就不能浪费前辈的功劳

5、找到交点指针指向的刻度位置。 简言之,就是找到拟合的这条指针线与圆弧的交点,或者最近的接点

刻度的两个端点和交点三个点确定后,剩下的交给数学处理

同样,其中在拟合、计算时需要加入偏移量进行控制。 要防止误差变大,如果有好的建议,欢迎留言

也欢迎2577082896 vx/qq同号交流

如果需要,可以直接从我的资源下载文档或项目文件

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。