百度BML&飞桨训练营(八)工业计量计读表

该博客介绍了如何使用百度BML平台和PaddleX进行工业计量表的图像处理。首先,通过配置Notebook和下载数据集,利用PaddleX进行目标检测模型训练,如MixupImage、RandomDistort等数据增强技术。接着,进行指针和刻度分割模型训练,采用DeepLabV3P模型。最后,提供了预测py文件,并展示了预测结果的路径。
摘要由CSDN通过智能技术生成

百度BML、飞桨训练营(八)工业计量计读表

文章相关内容资料已经取得百度BML允许,仅用于交流学习,请不要用于商业传播。

这一期主要通过视觉上物体检测和图像分割将工业中常见的计量表读取准确的数据。

第一步:
进入BML主页,点击立即使用
🔗:https://ai.baidu.com/bml/
图片

step2:点击Notebook,创建“通用任务”
图片

step3:填写任务信息
图片

第二步:下载任务操作模板

下载链接:https://aistudio.baidu.com/aistudio/datasetdetail/120387
图片

第一步:配置Notebook
1.找到创建的Notebook任务,点击配置
图片

2.配置选择
开发语言:Python3.7
AI框架:PaddlePaddle2.0.0
资源规格:GPU V100
图片

3.打开Notebook
图片

4.上传本次Notebook操作模型
若没来得及下载,请点击链接下载:https://aistudio.baidu.com/aistudio/datasetdetail/120387
图片

图片

第二步:环境准备
1.安装filelock
!pip install filelock
图片

图片

2.安装PaddleX
!pip install paddlex

在这里插入图片描述

图片

图片

3.升级paddlepaddle-gpu为2.1.3版本
!pip install paddlepaddle-gpu==2.1.3.post101 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

在这里插入图片描述

图片

第三步:目标检测模型训练
训练过程说明:

定义数据预处理 -> 定义数据集路径 -> 初始化模型 -> 模型训练

图片

1.调用PaddleX

import paddlex as pdx
from paddlex import transforms as T
图片

2.定义训练和验证时的transforms

API详细说明:https://github.com/PaddlePaddle/PaddleX/blob/release/2.0-rc/paddlex/cv/transforms/operators.py

train_transforms = T.Compose([
T.MixupImage(mixup_epoch=250), T.RandomDistort(),
T.RandomExpand(im_padding_value=[123.675, 116.28, 103.53]), T.RandomCrop(),
T.RandomHorizontalFlip(), T.BatchRandomResize(
target_sizes=[320, 352, 384, 416, 448, 480, 512, 544, 576, 608],
interp=‘RANDOM’), T.Normalize(
mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])

eval_transforms = T.Compose([
T.Resize(
608, interp=‘CUBIC’), T.Normalize(
mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])

图片

3.下载用于目标检测训练的表计读数数据集

meter_det_dataset = ‘https://bj.bcebos.com/paddlex/examples/meter_reader/datasets/meter_det.tar.gz’
pdx.utils.download_and_decompress(meter_det_dataset, path=’./’)
图片

可在左侧文件夹区域查看数据集

在这里插入图片描述

4.设置训练参数
详细API说明:https://github.com/PaddlePaddle/PaddleX/blob/develop/paddlex/cv/datasets/coco.py#L26
train_dataset = pdx.datasets.CocoDetection(
data_dir=‘meter_det/train/’,
ann_file=‘meter_det/annotations/instance_train.json’,
transforms=train_transforms,
shuffle=True)
eval_dataset = pdx.datasets.CocoDetection(
data_dir=‘meter_det/test/’,
ann_file=‘meter_det/annotations/instance_test.json’,
transforms=eval_transforms)
图片

图片

图片

5.训练结束后查看bestmodel

图片

图片

第二步:指针和刻度分割模型训练

1.调用paddlex
import paddlex as pdx
from paddlex import transforms as T
图片

2.定义训练和验证时的transforms
详细API说明参考:https://github.com/PaddlePaddle/PaddleX/blob/release/2.0-rc/paddlex/cv/transforms/operators.py
train_transforms = T.Compose([
T.Resize(target_size=512),
T.RandomHorizontalFlip(),
T.Normalize(
mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]),
])

eval_transforms = T.Compose([
T.Resize(target_size=512),
T.Normalize(
mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]),
])
图片

3.下载和解压指针刻度分割数据集
meter_seg_dataset = ‘https://bj.bcebos.com/paddlex/examples/meter_reader/datasets/meter_seg.tar.gz’
pdx.utils.download_and_decompress(meter_seg_dataset, path=’./’)
图片

4.定义训练和验证所用的数据集,配置相应路径
详细API说明参考:https://github.com/PaddlePaddle/PaddleX/blob/release/2.0-rc/paddlex/cv/datasets/seg_dataset.py#L22
train_dataset = pdx.datasets.SegDataset(
data_dir=‘meter_seg’,
file_list=‘meter_seg/train.txt’,
label_list=‘meter_seg/labels.txt’,
transforms=train_transforms,
shuffle=True)

eval_dataset = pdx.datasets.SegDataset(
data_dir=‘meter_seg’,
file_list=‘meter_seg/val.txt’,
label_list=‘meter_seg/labels.txt’,
transforms=eval_transforms,
shuffle=False)
图片

5.选择PaddleX内置的DeepLabV3P模型进行训练
API说明:https://github.com/PaddlePaddle/PaddleX/blob/release/2.0-rc/paddlex/cv/models/segmenter.py#L150
num_classes = len(train_dataset.labels)
model = pdx.seg.DeepLabV3P(
num_classes=num_classes, backbone=‘ResNet50_vd’, use_mixed_loss=True)
图片

6.设置训练时的参数
各参数介绍与调整说明:https://paddlex.readthedocs.io/zh_CN/develop/appendix/parameters.html
model.train(
num_epochs=2,
train_dataset=train_dataset,
train_batch_size=4,
eval_dataset=eval_dataset,
pretrain_weights=‘IMAGENET’,
learning_rate=0.1,
save_dir=‘output/deeplabv3p_r50vd’)

图片

图片

图片

7.训练结束后查看bestmodel
图片

图片

第二步:上传预测的py文件
1.点击下方链接将py文件下载至本地
https://aistudio.baidu.com/aistudio/datasetdetail/120795
图片

2.上传至Notebook中
图片

第三步:模型预测
图片

1.上传reader_infer.py文件后,执行一下命令进行模型预测
!python work/meter_reader/reader_infer.py --det_model_dir output/ppyolov2_r50vd_dcn/best_model --seg_model_dir output/deeplabv3p_r50vd/best_model/ --image meter_det/test/20190822_105.jpg
图片
在这里插入图片描述

2.打开output/result查看预测结果
图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翼达口香糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值