水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界

这篇具有很好参考价值的文章主要介绍了水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

数字时代,数字化服务已经发展到各行各业,我们的生活中也随处可见。

数字化服务的便捷了我们的衣食住行的方方面面,除了我们日常化的出行、饮食、购物,其实住方面也已有了很深的发展。

水电燃气这三项和我们生活息息相关的能源,也已经基本上数字化、线上化了,逐步实现了从传统的线下购买到线上购买的过渡。

其中水比较特殊,与另外两个预付费的方式不同,水是先用后付费,传统方式是定期人工上门抄水表的数据然后用户根据用水量进行费用缴纳。

而今,随着技术的快速发展,智能水表读数识别的功能开始广泛被应用。

1分钟了解水表读数识别

智能水表读数识别的功能,可实现对水表的智能监控。

智能化监控的意义在于:

  • 分析用户用户量,给出优化建议,从而达到节约用水的目的;
  • 实时获取水表数字,改变上门手抄方式,节约人力成本和时间;
  • 生成用水数据,便于后续的数据分析。

3分钟了解华为云ModelArts算法套件

华为云ModelArts目前提供的算法开发套件中,主要包括自研(ivg系列)和开源(mm系列)两套算法资产。

可应用于分类、检测、分割和OCR等任务中。

华为云ModelArts使用自研分割算法(ivgSegmentation)和开源OCR算法(mmOCR)的组合完成水表读数识别项目,并使用算法开发套件将其部署为华为云在线服务。

接下来,让我们真实的体验一下算法开发套件实现的水表表盘读数识别的实验。

水表表盘读数识别实验

前置工作

1、确保已经完成了华为云账号的开通与认证。

2、已开通OBS服务。

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

3、已开通ModelArts服务

进入实验

步骤1:准备数据

1、在“全局配置”页面查看是否已经配置授权,允许ModelArts访问OBS。

2、分别下载本案例的数据集:水表表盘分割数据集和水表表盘读数OCR识别数据集。区域选择“华北-北京四”

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

3、新增OBS桶文件,将下载的数据集上传到OBS桶中。OBS路径示例如下:

  • obs://obs-water-yyy/water_meter_segmentation 水表表盘分割数据集

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

  • obs://obs-water-yyy/water_meter_crop 水表表盘读数OCR识别数据集

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

步骤2:准备开发环境

1、在“ModelArts控制台 > 开发环境 > Notebook”页面中,创建基于pytorch1.8-cuda10.2-cudnn7-ubuntu18.04镜像,类型为GPU的Notebook,

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

2、在“ModelArts控制台 > 开发环境 > Notebook”页面的列表中,单击操作栏的“打开”,进入JupyterLab页面。

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

3、打开JupyterLab的Terminal。

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

步骤3:创建算法工程

1、在JupyterLab的Terminal中,在work目录下执行ma-cli createproject命令创建工程,根据提示输入工程名称,例如:water_meter。然后直接回车选择默认参数,并选择跳过资产安装步骤(选择6)。

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

2、执行以下命令进入工程目录。

cd water_meter

3、执行以下命令拷贝项目数据到Notebook中。

python manage.py copy --source obs://obs-water-yyy/water_meter_crop --dest ./data/raw/water_meter_crop
python manage.py copy --source obs://obs-water-yyy/water_meter_segmentation --dest ./data/raw/water_meter_segmentation

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

步骤4:使用deeplabv3完成水表区域分割任务

1、首先安装ivgSegmentation套件。

python manage.py install algorithm ivgSegmentation==1.0.2

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

2、安装ivgSegmentation套件后,在JupyterLab界面左侧的工程目录中进入“./algorithms/ivgSegmentation/config/sample”文件夹中查看目前支持的分割模型,以sample为例(sample默认的算法就是deeplabv3),文件夹中包括config.py(算法外壳配置)和deeplabv3_resnet50_standard-sample_512x1024.py(模型结构)。

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

3、表盘分割只需要区分背景和读数区域,因此属于二分类,需要根据项目所需数据集对配置文件进行修改,如下所示:修改“./algorithms/ivgSegmentation/config/sample/config.py”文件。修改完后按Ctrl+S保存。

# config.py
alg_cfg = dict(
    ...    
    data_root='data/raw/water_meter_segmentation',   # 修改为真实路径本地分割数据集路径
    ...
)

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

4、修改“./algorithms/ivgSegmentation/config/sample/deeplabv3_resnet50_standard-sample_512x1024.py”文件。修改完后按Ctrl+S保存。

# deeplabv3_resnet50_standard-sample_512x1024.py
gpus=[0]
...
data_cfg = dict(
    ...    num_classes=2,  # 修改为2类
    ...    
    ...    train_scale=(512, 512),  # (h, w)#size全部修改为(512, 512)
    ...    train_crop_size=(512, 512),  # (h, w)
    ...    test_scale=(512, 512),  # (h, w)
    ...    infer_scale=(512, 512),  # (h, w)
 )

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

5、在water_meter工程目录下,安装deeplabv3预训练模型。

python manage.py install model ivgSegmentation:deeplab/deeplabv3_resnet50_cityscapes_512x1024

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

6、训练分割模型。(推荐使用GPU进行训练)

# shell
python manage.py run --cfg algorithms/ivgSegmentation/config/sample/config.py --gpus 0

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

训练好的模型会保存在指定位置中,默认为“output/deeplabv3_resnet50_standard-sample_512x1024/checkpoints/”中。

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

7、验证模型效果。模型训练完成后,可以在验证集上计算模型的指标,首先修改配置文件的模型位置。修改“./algorithms/ivgSegmentation/config/sample/config.py”。

# config.py
alg_cfg = dict(
    ...
    load_from='./output/deeplabv3_resnet50_standard-sample_512x1024/checkpoints/checkpoint_best.pth.tar',  # 修改训练模型的路径
    ...
)

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

8、模型推理。模型推理能够指定某一张图片,并且推理出图片的分割区域,并进行可视化,首先需要指定需要推理的图片路径。修改“./algorithms/ivgSegmentation/config/sample/config.py”

alg_cfg = dict(
    ...
   img_file =  './data/raw/water_meter_segmentation/image/train_10.jpg'  # 指定需要推理的图片路径
   ...
)

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

执行如下命令推理模型效果:

python manage.py run --cfg algorithms/ivgSegmentation/config/sample/config.py --pipeline infer

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

推理输出的图片路径在“./output/deeplabv3_resnet50_standard-sample_512x1024”下。

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

9、导出算法SDK。算法开发套件支持将模型导出成一个模型SDK,方便进行模型部署等下游任务。

# shell
python manage.py export --cfg algorithms/ivgSegmentation/config/sample/config.py --is_deploy

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法

步骤5:水表读数识别

1、首先安装mmocr套件。

python manage.py install algorithm mmocr==0.2.1

2、安装mmocr套件后,“./algorithms/mmocr/config/textrecog”文件夹中包括config.py(算法外壳配置),需要根据所需算法和数据集路径修改配置文件。以下以robust_scanner算法为例。修改“./algorithms/mmocr/algorithm/configs/textrecog/robustscanner_r31_academic.py”,

# robustscanner_r31_academic.py
...
train_prefix = 'data/raw/water_meter_crop/'  # 修改数据集路径改为水表ocr识别数据集路径
train_img_prefix1 = train_prefix + 'train'
train_ann_file1 = train_prefix + 'train.txt'
 
...
test_prefix = 'data/raw/water_meter_crop/'
test_img_prefix1 = test_prefix + 'val/'
test_ann_file1 = test_prefix + 'val.txt'

3、安装robust_scanner预训练模型。

python manage.py install model mmocr:textrecog/robust_scanner/robustscanner_r31_academic

4、训练OCR模型。初次使用mmcv时需要编译mmcv-full,该过程较慢,可以直接使用官方预编译的依赖包。预编译包URL: https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/index.html

pip uninstall mmcv -y
pip install https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/mmcv_full-1.3.9-cp37-cp37m-manylinux1_x86_64.whl

将./algorithms/mmocr/config/textrecog/config.py中的epoch(迭代数量)改为2。

训练OCR模型。(仅使用GPU进行训练,大概需要四分钟)训练好的模型会保存在指定位置中,默认为output/robustscanner_r31_academic/文件夹中。

5、验证模型效果。模型训练完成后,可以在验证集上计算模型的指标,首先修改配置文件的模型位置。修改./algorithms/mmocr/config/textrecog/config.py

# config.py
...
model_path = './output/robustscanner_r31_academic/latest.pth'
...

步骤6:部署为在线服务

1、在“algorithms/mmocr/config/textrecog/config.py”文件中配置OBS桶。

修改./algorithms/mmocr/algorithm/configs/textrecog/robust_scanner/config.py

# 替换为用户自己的OBS桶信息
obs_bucket = 'obs://{your_obs_bucket_path}'

2、依次执行下述命令:

python manage.py export --cfg algorithms/mmocr/config/textrecog/config.py --is_deploy  # 导出部署模型所需文件
python manage.py deploy --cfg algorithms/mmocr/config/textrecog/config.py  # 本地部署调试

3、本地部署成功后的输出结果

# 
...
[Conda environment created successfully.]
local_service_port is 127.0.0.1:42153
Deploying the local service ...
Successfully deployed the local service. You can check the log in /home/ma-user/work/water_meter/export/robustscanner_r31_academic/Linux_x86_64_GPU_PyTorch_Common_py/log.txt
[07/05 09:40:14][INFO][ma_cau-deployer.py 49]: {
 "text": "00326",
 "score": 0.9999999046325684
}
[07/05 09:40:14][INFO][ma_cau-deployer.py 59]: ************************ End Deployer ************************
python manage.py deploy --cfg algorithms/mmocr/config/textrecog/config.py --launch_remote本地部署成功后可直接进行在线部署,大约需要12分钟。

水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界,华为云,算法


 

步骤7:清除资源和数据

完成之后,记得清除资源和数据,避免产生不必要的费用:

  • 停止Notebook:在“Notebook”页面,单击对应实例操作列的“停止”。
  • 删除数据:前往OBS,删除上传的数据,然后删除文件夹及OBS桶。
  • 停止在线服务:在Modelarts部署上线->在线服务界面,单击对应在线服务操作列的“更多”->“停止”。

总结

完成水表表盘读数识别的实验之后,对华为云提供的算法开发套件功能有了更深一些的了解。

华为云提供的算法开发套件,可以实现目标检测功能,通过导入数据集、选择模型、训练等一系列流程,快速完成目标检测任务(详见:目标检测算法套件使用Demo)。

接下来,对于算法开发套件,我会继续进行研究和实验,掌握更多的业务用途。

未来,也期待与华为云ModelArts一起实现更多的可能。


作者:非职业「传道授业解惑」的开发者叶一一
简介:「趣学前端」、「CSS畅想」系列作者,华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。文章来源地址https://www.toymoban.com/news/detail-833203.html

到了这里,关于水表表盘读数识别新体验,带你进入华为云ModelArts算法套件的世界的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLOv8+PyQt+OpenCV实现数字式仪表读数和指针式仪表读数识别(二)

    章(一)内容为不同种类仪表识别和数字式仪表读数识别,这一章介绍 两种指针式仪表读数识别方法 ,一种为 非360度指针式仪表 ,一种为 360度指针式仪表 。效果如下所示。 指针式仪表识别效果 360度指针式仪表识别效果  数字式仪表识别效果 数字式仪表和指针式仪表检测视

    2024年03月18日
    浏览(82)
  • YOLOv8+PyQt+OpenCV实现数字式仪表读数和指针式仪表读数识别(一)

    最近放假看到YOLOv8一直在更新,想着在家无聊把本科毕设重新做了下,之前用的是YOLOv5,下载了YOLOv8最新版把项目迁移了过来,相比于v5来说YOLOv8变化还是挺大的,功能更加集成了,话不多说,直接上 结果图片和最后的检测视频 。 数字式仪表识别效果 指针式仪表识别效果

    2024年02月19日
    浏览(32)
  • 基于opencv的指针式仪表的识别与读数

    对于指针式仪表的识别与读数,可以通过以下步骤使用OpenCV实现 : 读取图像:使用 cv2.imread() 函数读取要处理的仪表图像。 灰度转换:使用 cv2.cvtColor() 函数将彩色图像转换为灰度图像。这是因为灰度图像只有一个通道,便于后续的处理。 平滑滤波:为了去除噪声,可以使用

    2024年01月22日
    浏览(39)
  • 指针式仪表识别读数 Python(已开源数据集)

    第一个版本的指针式仪表识别读数程序写得有点乱,有空重新整理下代码,写成了类MeterDetection进行封装。 原始指针仪表识别地址 基于深度学习方法的指针识别 程序地址:指针式仪表读数源码github 数据集为coco.zip,在github中 记得点个star pip install -r requirments.txt python main.py ma

    2023年04月19日
    浏览(37)
  • 告别繁琐,ModelArts一键解决车牌号识别难题

    本文分享自华为云社区《基于ModelArts实现车辆车牌号的目标识别》,作者:屿山岛 。 车辆车牌是车辆的唯一身份标识,能够提供车辆的类型、颜色、归属地等信息,对于交通管理、安全监控、智能出行等领域具有重要的应用价值。随着计算机视觉技术的发展,车辆车牌的自

    2024年02月05日
    浏览(63)
  • 如何用华为云ModelArts平台玩转Llama2

    本文分享自华为云社区《如何用华为云ModelArts平台玩转Llama2》,作者:码上开花_Lancer。 天哪~~ Llama2模型开源了拉!!   Llama2不仅开源了预训练模型,而且还开源了利用对话数据SFT后的Llama2-Chat模型,并对Llama2-Chat模型的微调进行了详细的介绍。 开源模型目前有7B、13B、70B三种

    2024年02月08日
    浏览(31)
  • python-华为云modelarts的免费codelab运行chatglm2-6b-int4

    前提:当前提供 了8核64G的免费体验规格,每天三个小时限额 地址:https://console.huaweicloud.com/modelarts/?region=cn-north-4#/dashboard 下载模型:请参考另一个文章

    2024年02月10日
    浏览(45)
  • 华为手环8 六月免费表盘上线,让你的腕上表盘更丰富多彩

    在如今这个科技与艺术相互融合的时代!工程师们给华为手环8花粉朋友准备的6月这一期好看又免费表盘已经上线。你可以根据自己的审美,选择一款最适合自己的表盘,展现出自己的个性和品味。快来选择你的专属表盘,让华为手环8成为你独特的时尚符号吧!   本次上线

    2024年02月11日
    浏览(91)
  • 扫描二维码进入体验版小程序却一直进入线上版本?这个配置要注意!

    1. 前期准备 服务器 域名 2. 配置扫描普通二维码进入小程序页面 开发小程序过程中,我们会遇到很多不同的场景,其中,扫描普通二维码进入小程序就是其中之一。下面先来看下如何配置扫描普通二维码进入小程序,首先登录开发平台,打开开发管理,进入开发设置,如下图

    2024年02月15日
    浏览(36)
  • 软件测试/测试开发丨ChatGPT:带你进入智能对话的新时代

    简介 人工智能时代来临 我们正处于AI的iPhone时刻。——黄仁勋(英伟达CEO) ChatGPT 好得有点可怕了,我们距离危险的强人工智能不远了。——马斯克(Tesla/SpaceX/Twitter CEO) 以上的内容说明我们现在正处于一个技术大更新的时代,正如每次技术革命的技术革命来临一样,如果

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包