仪表盘读数识别

picture.image

向AI转型的程序员都关注了这个号👇👇👇

本次任务的仪表数据集存在以下难点:

1、仪表刻度存在遮挡、模糊等问题,影响OCR识别

2、仪表图像存在旋转、倾斜问题,影响读数测量

算法设计

算法分为4个流程,首先用yolov5s模型从原图中识别出仪,接着用yolov8x-pose模型检测出仪表中的刻度线、指针的关键点,再用DBNetpp模型检测出数值框并用SATRN模型进行文本识别,最后后处理得到读数结果。

(1)基于YOLOv5s的仪表检测

选型理由

Yolov5s网络小,速度快。虽然AP精度低,但检测的是仪表这种大目标是完全够用的。我们采用极市官方提供的yolov5s训练套件进行训练,上手简单,且仪表识别准确率达到了99.7%,效果满足实际需求。

(2)基于YOLOv8x-pose的指针和刻度关键点检测

选型理由

picture.image

YOLOv8是YOLOv5团队ultralytics在今年开源的SOTA模型,引入了新的改进,进一步提升了性能和灵活性。YOLOv8 设计快速、准确且易于使用,使其成为目标检测、实例分割、图像分类和姿态估计任务的绝佳选择。

yolo-pose是估计人体姿态的一个模型,它将人体姿态分为17个关键点。

为了尽可能地提高关键点检测精度,我们使用了规模最大的YOLOv8x-pose模型。

指针关键点数据集制作

picture.image

我们将指针的两个点作为其关键点,由这两个点组成的矩形框作为目标检测框,如果两个点组成的矩形框太窄,进行适当延伸。

刻度关键点数据集制作

由于每个仪表的数值框个数不同,我们将每个数值框视为同一个类别进行目标检测,每个数值框携带对应的刻度点作为其关键点。

我们采用从官网下载的预训练模型在仪表数据集上微调,将关键点权重从12提高到20。

(3)基于DBNetpp的文本检测

选型理由

由于仪表尺寸大小不一,我们选用DBNetpp模型,它在DBNet模型基础上引入了多级特征聚合模块(Adaptive Scale Fusion, ASF),ASF模块由阶段注意力和空间注意力子模块构成,加强了不同尺度特征的融合,提高了处理不同尺寸图像的鲁棒性。

picture.image

(4)基于SATRN模型的文本识别

选型理由

SATRN模型利用self-attention机制对字符的2D空间关系进行建模,并且在FFN模块中引入卷积层,增强了模型对全局和局部特征的捕捉能力。

SATRN模型对于大曲率弯曲、大角度旋转文本依然具备足够的识别能力,在多个不规则文本数据集上达到SOTA。

(5)读数识别

将上述模型的输出采用opencv进行后处理得到读数结果,具体流程如下:

picture.image

  1. 区分内外径

  2. picture.image

根据刻度点和数值框距离指针原点的距离区分内径和外径,分别进行后续处理。

  1. 确定刻度点的顺序

起点到终点的角度差值是相邻两点间角度差值中最大的,我们只需要找到这个最大的角度差值,就可以确定起始点。

先将刻度点坐标转成以指针原点为中心的极坐标,根据角度从小到大排序 [16,0,4,8,12]

然后计算相邻刻度点两两间的角度差值,选择最大差值的下一个刻度点作为起点,调整顺序后 [0,4,8,12,16]

  1. 修正OCR识别结果

上图中由于指针遮挡,1500识别成500,通过等差数列对其进行修正。

  1. 透视变换

picture.image

步骤:

1、确定最后一个点的坐标:已知最后一个点在透视变换后的极坐标角度为45°,假设所有刻度点距离圆心距离为R,则最后一个点的坐标可以表示为(45°,R)可以根据该极坐标得出笛卡尔坐标系下的坐标。

2、确定其他三个点的坐标:这里一共有6个间隔平分整个270°量程,所以每个刻度夹角为270/6=45°,据此可以依次计算出其他三个点在变换后的坐标。

通过这种方式,可以确定四个刻度点在透视变换后图像中的坐标,并用这些坐标来进行透视变换。

  1. 补充被指针遮挡的点

picture.image

步骤:

1、首先,确定缺失点的前后点,以及它们与圆心的平均距离。这些信息将用于推算缺失点的极坐标。

2、根据前后点的角度和平均距离,计算出缺失点的极坐标。极坐标由极径和极角组成,极径表示点到圆心的距离,极角表示点在极坐标系中的角度。将缺失点的极坐标转换为笛卡尔坐标。

3、如果进行了透视变换,需要将转换后的坐标应用于透视矩阵,以获得原图中的坐标。

  1. 计算读数

picture.image

picture.image

算法优化

存在问题

picture.image

边框遮挡导致的刻度数字无法识别,上述算法不能很好的处理。

改进方法

根据数据集分布,为内外径各建立一个list,以外径举例:

picture.image

总结

优点:

1、目标检测算法和ocr识别算法均源自开源算法库中SOTA模型,实现简单高效,且具备丰富的工业部署落地支持。

2、没有采用传统直线检测的方式检测关键点,通过类似姿态估计的方式提高了关键点检测精度。

3、提出了一种基于查表的鲁棒仪表读数方法,对于遮挡严重的情况也能较好地处理。

4、通过透视变换,将形变的仪表图像修正,使得读数更加准确。

可提升点:

1、将模型文件转换为TensorRT格式,加速推理。

2、更改ocr识别模型,提升效率。

机器学习算法工程师

视频号

picture.image

长按图片,识别二维码


阅读过本文的人还看了以下文章:

TensorFlow 2.0深度学习案例实战

基于40万表格数据集TableBank,用MaskRCNN做表格检测

《基于深度学习的自然语言处理》中/英PDF

Deep Learning 中文版初版-周志华团队

【全套视频课】最全的目标检测算法系列讲解,通俗易懂!

《美团机器学习实践》_美团算法团队.pdf

《深度学习入门:基于Python的理论与实现》高清中文PDF+源码

《深度学习:基于Keras的Python实践》PDF和代码

特征提取与图像处理(第二版).pdf

python就业班学习视频,从入门到实战项目

2019最新《PyTorch自然语言处理》英、中文版PDF+源码

《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码

《深度学习之pytorch》pdf+附书源码

PyTorch深度学习快速实战入门《pytorch-handbook》

【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》

《Python数据分析与挖掘实战》PDF+完整源码

汽车行业完整知识图谱项目实战视频(全23课)

李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材

笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!

《神经网络与深度学习》最新2018版中英PDF+源码

将机器学习模型部署为REST API

FashionAI服装属性标签图像识别Top1-5方案分享

重要开源!CNN-RNN-CTC 实现手写汉字识别

yolo3 检测出图像中的不规则汉字

同样是机器学习算法工程师,你的面试为什么过不了?

前海征信大数据算法:风险概率预测

【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类

VGG16迁移学习,实现医学图像识别分类工程项目

特征工程(一)

特征工程(二) :文本数据的展开、过滤和分块

特征工程(三):特征缩放,从词袋到 TF-IDF

特征工程(四): 类别特征

特征工程(五): PCA 降维

特征工程(六): 非线性特征提取和模型堆叠

特征工程(七):图像特征提取和深度学习

如何利用全新的决策树集成级联结构gcForest做特征工程并打分?

Machine Learning Yearning 中文翻译稿

蚂蚁金服2018秋招-算法工程师(共四面)通过

全球AI挑战-场景分类的比赛源码(多模型融合)

斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)

python+flask搭建CNN在线识别手写中文网站

中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程

不断更新资源

深度学习、机器学习、数据分析、python

搜索公众号添加: datayx

picture.image

0
0
0
0
评论
未登录
暂无评论