栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

百度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查看预测结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/657792.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号