怎么设计一种基于OpenVINO与PaddleOCR的结构化输出抄表器?

感知论坛 20230813

  • 人工智能
  • OpenVINO

01 背景介绍

“表”是生活中的随处可见的一种设备。常见的“表”包括了家用电表,水表等设备;除此之外,还有工频场强计等“表”。受制于由于受到区域因素以及技术因素的制约,并非每种“表”都能够进行数据的自动采集,从而只能通过人工手动抄表。

这种数据采集工作一方面较为费事和枯燥,另一方面,长时间工作带来的会导致工作人员疲劳,从而产生抄录错误。通过人工智能技术构造自动化的抄表流程能够极大的克服上述问题,提高工作效率。

相关工作

迄今为止,已经有许多关于电表读数的优秀项目出现,这些项目大都依赖于对特定场景的模型训练(包括微调)。 例如:

【PaddlePaddle+OpenVINO】电表检测识别模型的部署

OpenVINO meter reader

但对于抄表工作的业务场景而言,具有以下特点:

无法准备大量的彻底贴合业务场景的数据集

待抄录的“表”中的内容是文字,而非进度条或仪表盘

基于开放数据训练得到的OCR模型能够识别到“表”中的内容

因而,对于一些较为规整的“表”,我们完全可以基于开源OCR模型进行零微调的抄表工作。

技术方案

本项目提供了有一种无需额外训练的抄表器,只需要人为指定一些和布局有关的配置信息,即可实现表中数据的记录。 总体流程如下:

配置图片中屏幕区域的坐标值。(这些坐标值也可以通过cv2的拐点检测或深度学习进行获取)

对图片进行预处理(仿射变换)

配置待识别的元素对应的坐标,并裁剪对应的区域

如有需要,可以对裁剪下来的区域进行预处理

基于OpenVINO进行文字识别

结构化输出信息

如有需要,对输出结果进行进一步精炼

目录

背景介绍

图片预处理

基于OpenVINO加载PaddleOCR识别模型进行预测

结构化输出与后处理

02 图片预处理

由于本项目是一个零微调的项目,因此,为了保证识别模型的有效性,需要人工对齐输入信息。

修正倾斜的图片,将图片中的屏幕区域修正到指定的大小

根据从说明书等地方获取到的设备信息,设定待识别的区域在屏幕上的布局

修正图片

以下列图片为例,本节展示如何将图片从倾斜的状态,修正为正面观众的状态。



03 基于OpenVINO加载PaddleOCR识别模型进行预测

文字识别模型(PaddleOCR)

PaddleOCR 是PaddlePaddle的文字识别套件。迄今为止,PaddleOCR已经提供了许多复用性强的预训练模型。在本项目中使用的预训练模型是Chinese and English ultra-lightweight PP-OCR model (9.4M)。更多的信息请参考PaddleOCR Github或PaddleOCR Gitee。

一个标准的OCR流程包括了文字检测和文字识别,对于本项目来说,文字检测工作已经通过人工配置的方式解决了,因此,只需要进行文字识别即可。

OpenVINO简介

OpenVINO作为Intel原生的深度学习推理框架,可以最大化的提升人工智能神经网络在Intel平台上的执行性能,实现一次编写,任意部署的开发体验。OpenVINO在2022.1版本后,就可以直接支持飞桨模型,大大提升了模型在Intel异构硬件上的推理性能与部署便捷性,带来更高的生产效率,更广阔的兼容性以及推理性能的优化。

获取模型

基于OpenVINO加载PaddleOCR

使用OpenVINO加载Paddle模型无需经过任何转换,只需要:

创建环境

读取模型

生成推理接口

文字识别

依旧对于上述示例图片,希望结构化输出以下内容:[{"Info_Probe":""}, {"Freq_Set":""}, {"Freq_Main":""}, {"Val_Total":""},{"Val_X":""}, {"Val_Y":""}, {"Val_Z":""}, {"Unit":""}, {"Field":""}]。输出示例如下图所示:

配置布局

首先,需要基于仿射变换的结果,配置各个元素在图片上的布局。这个配置对于同一批表来说是固定的。

文字识别的预处理函数



文字识别的后处理函数

用于将文字识别的结果进行解码,转化为汉字



基于OpenVINO进行文字识别

下面以Freq_Set为例,进行文字识别



100H2实时值

结构化输出与后处理

上面的逻辑已经完成了使用OpenVINO加载PaddleOCR并进行预测,但实际上由于整个模型没有进行微调,所以对于当前的业务场景来说可能不够完美,这个时候可以通过一些简单的逻辑进行处理,比如,对于示例图片中,H2必然是不存在的,这个地方可以直接通过replace替换为HZ。

简单来说,对于示例图片的这种表,可以定义如下后处理函数:

全流程一键运行

为了方便运行,这里也提供了一个封装好的函数






审核编辑:刘清

查看全文

点赞

感知论坛

作者最近更新

  • 为什么自动驾驶感知系统一定要注意时间同步?
    感知论坛
    11小时前
  • 明治传感(AKUSENSE)新加坡/越南交付中心新址启用
    感知论坛
    1天前
  • 高精度称重传感器低噪声放大电路在海绵密度测试仪中的设计
    感知论坛
    2天前

期刊订阅

相关推荐

  • 传感器应该推进人工智能实现整体进化

    2018-12-07

  • 华为首款AI音箱:可通过HiLink开放协议控制19个家电品类

    2020-02-21

  • 本田将在CES展出自动驾驶作业车和机器人新品

    2018-12-14

  • 日本新研究:人工智能或能提前一周预测台风

    2019-01-08

评论0条评论

×
私信给感知论坛

点击打开传感搜小程序 - 速览海量产品,精准对接供需

  • 收藏

  • 评论

  • 点赞

  • 分享

收藏文章×

已选择0个收藏夹

新建收藏夹
完成
创建收藏夹 ×
取消 保存

1.点击右上角

2.分享到“朋友圈”或“发送给好友”

×

微信扫一扫,分享到朋友圈

推荐使用浏览器内置分享功能

×

关注微信订阅号

关注微信订阅号,了解更多传感器动态

  • #{faceHtml}

    #{user_name}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} 查看评论 回复

    共#{comment_count}条评论

    加载更多

  • #{ahtml}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} #{reback} 回复

  • #{ahtml}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} 回复

  • 关闭
      广告