本教程将带你从零开始,使用 OpenVINO 加载 PaddleOCR 预训练模型,实现无需额外训练的自动化抄表。你只需手动配置少量布局信息,即可从倾斜的图片中准确识别出文字内容,并输出结构化数据。
01 背景介绍
“表”是生活中随处可见的一种设备。常见的“表”包括了家用电表、水表等设备;除此之外,还有工频场强计等“表”。受制于区域因素以及技术因素的制约,并非每种“表”都能够进行数据的自动采集,从而只能通过人工手动抄表。
这种数据采集工作一方面较为费事和枯燥,另一方面,长时间工作会导致工作人员疲劳,从而产生抄录错误。通过人工智能技术构造自动化的抄表流程能够极大地克服上述问题,提高工作效率。
相关工作
迄今为止,已经有许多关于电表读数的优秀项目出现,这些项目大都依赖于对特定场景的模型训练(包括微调)。例如:
- 【PaddlePaddle+OpenVINO】电表检测识别模型的部署
- OpenVINO meter reader
但对于抄表工作的业务场景而言,具有以下特点:
- 无法准备大量的彻底贴合业务场景的数据集
- 待抄录的“表”中的内容是文字,而非进度条或仪表盘
- 基于开放数据训练得到的OCR模型能够识别到“表”中的内容
因而,对于一些较为规整的“表”,我们完全可以基于开源OCR模型进行 零微调 的抄表工作。
技术方案
本项目提供了一种无需额外训练的抄表器,只需要人为指定一些和布局有关的配置信息,即可实现表中数据的记录。总体流程如下:
- 配置图片中屏幕区域的坐标值(这些坐标值也可以通过cv2的拐点检测或深度学习进行获取)
- 对图片进行预处理(仿射变换)
- 配置待识别的元素对应的坐标,并裁剪对应的区域
- 如有需要,可以对裁剪下来的区域进行预处理
- 基于 OpenVINO 进行文字识别
- 结构化输出信息
- 如有需要,对输出结果进行进一步精炼
目录
- 背景介绍
- 图片预处理
- 基于OpenVINO加载PaddleOCR识别模型进行预测
- 结构化输出与后处理
02 图片预处理
由于本项目是一个 零微调 的项目,因此,为了保证识别模型的有效性,需要人工对齐输入信息。
- 修正倾斜的图片,将图片中的屏幕区域修正到指定的大小
- 根据从说明书等地方获取到的设备信息,设定待识别的区域在屏幕上的布局
修正图片
以下列图片为例,本节展示如何将图片从倾斜的状态,修正为正面观众的状态。
