基于华为云ModelArts的水表读数识别开发实践

原创 收藏 评论
举报 2022-08-15


项目简介:

这里实现了如何端到端完成水表读数识别项目。涉及领域包括图像分类、语义分割、OCR文本检测、OCR文本识别。

本案例提供的方法较多,涉及多个模型,但不需要运行所有的模型。如果都测试一遍,默认创建的5GB磁盘规格可能不够用。
磁盘空间不够时可以将不需要的数据和模型文件删除,腾出空间;或者创建NoteBook时将磁盘规格增加到10GB。

解决方案流程:

一、使用语义分割或者OCR文本检测算法识别水表读数所在的四边形区域,并对四边形进行仿射变换转换成矩形,保存成新的图片数据。

二、如果文本区域的图片翻转严重,那第一步抠图生成的数据可能会有180度的翻转。因为文本识别的算法对翻转180度的场景效果不佳,所以再训练一个识别文本翻转的分类模型(本案例图片旋转角度微小,不需要此步骤,内容可供参考)。

三、利用步骤一中检测并抠图出来的文本数据训练OCR文本识别算法,识别图片中的文本内容,即数字。

数据集为华为云AI Gallery上提供的数据集。详情可参见本案例的关联资产。

下载该项目依赖脚本:


该案例效果图如下

import cv2import matplotlib.pyplot as plt
plt.figure(figsize=(10, 10))plt.imshow(cv2.imread('./imgs/result1.PNG'))plt.show()

教程目录

准备环境

准备数据

数据下载

数据切分

文本检测

数据准备

下载预训练模型

训练

推理

抠图

数据准备

下载预训练模型

训练

推理+四边形定位+矫正

分割算法(推荐)

文本检测算法

文本翻转检测(可选)

数据准备

下载预训练模型

训练

推理

文本识别

数据准备

下载预训练模型

训练

推理

端到端识别

分割算法

文本识别算法

1.准备环境

请在本页面的

5.3.训练

训练的数据集、模型、优化器等均已保存在配置文件./textrecog/water_meter_textrecog_config.py和./textrecog/base_config.py中。
base_config.py文件是基础配置,可不必改动。
water_meter_textrecog_config.py文件是针对该案例的配置,例如数据路径、预训练模型路径、epoch数、学习率等可直接在此文件中修改。

默认训练50个epoch,精度不够,可以修改water_meter_textrecog_config.py中的训练参数进行调参。

训练生成的模型保存在./train_url/textrecog路径下。大约耗时2-3分钟左右:


推理结果可视化:

from util import show_pair
img_dir = './data/raw/test_imgs'res_dir = './outputs_with_seg'show_pair(img_dir, res_dir, show_num=2)

6.2文本识别算法

与分割算法算法二选一。

如果文本检测部分使用的是文本识别算法,参考infer_end2end_with_textdet.py脚本,模型路径,数据路径都配置在了该脚本中,可修改该脚本。

如果前面的模型或者数据有改动部分,该脚本请同步修改。

!python infer_end2end_with_textdet.py \--num_classes=2 \--img_path=./data/raw/test_imgs \--out=./outputs_with_textdet \--detect_180=False
# num_classes:类别数
# img_path:推理图片路径
# out:推理结果保存路径
# detect_180:如果训练了识别翻转的模型,设置detect_180=True即可,默认值为False

推理结果可视化:

from util import show_pair
img_dir = './data/raw/test_imgs'res_dir = './outputs_with_textdet'show_pair(img_dir, res_dir, show_num=2)


本文系作者授权数英发表,内容为作者独立观点,不代表数英立场。
转载请在文章开头和结尾显眼处标注:作者、出处和链接。不按规范转载侵权必究。
本文系作者授权数英发表,内容为作者独立观点,不代表数英立场。
未经授权严禁转载,授权事宜请联系作者本人,侵权必究。
本内容为作者独立观点,不代表数英立场。
本文禁止转载,侵权必究。
本文系数英原创,未经允许不得转载。
授权事宜请至数英微信公众号(ID: digitaling) 后台授权,侵权必究。

    评论

    文明发言,无意义评论将很快被删除,异常行为可能被禁言
    DIGITALING
    登录后参与评论

    评论

    文明发言,无意义评论将很快被删除,异常行为可能被禁言
    800

    推荐评论

    暂无评论哦,快来评论一下吧!

    全部评论(0条)