工业党福利:使用PaddleX高效实现指针型仪表读取系列文章(1)

最近在做一个工业巡检的项目,主要涉及的内容是指针型表计的读取。本系列文章主要介绍实现表计读取的全流程开发(立个FLAG,想想真是肝...留下了不争气的眼泪),其中主要使用的工具为百度开发的PaddleX和Visual studio 2019。

如有问题,欢迎联系,作者微信:yikeAI14539

一般来讲,在工业领域使用深度学习技术来实施的项目主要为工业质检和工业巡检两部分,实现这两部分的流程均为:

v2-209fd6b2ebff7977b375ff48e88bb249_b.jpg

本系列文章的内容包含了上述流程的全部内容,其目录如下:

  1. 高效语义分割:基于PaddleX零代码快速实现表计分割
  2. 工业场景适配:Windows下PaddleX的C++编译、C#界面开发及dll调用
  3. 表计读取实战:表计读取算法开发方案


李是Lyapunov的李:工业党福利:使用PaddleX高效实现指针型仪表读取系列文章(1)

李是Lyapunov的李:工业党福利:使用PaddleX高效实现指针型仪表读取系列文章(2)

李是Lyapunov的李:工业党福利:使用PaddleX高效实现指针型仪表读取系列文章(3)

正文开始:

一、高效语义分割:基于PaddleX零代码快速实现表计分割

本节目录

  1. PaddleX是什么
  2. 如何使用PaddleX GUI模式完成压力表的语义分割
  3. 小结及下节预告

1. PaddleX是什么

在PaddleX的官网上有其详细的介绍,我这里把它们摘录出来:

PaddleX是百度基于飞桨开发的一款全流程开发套件,以 低代码、甚至零代码的形式支持开发者快速实现产业实际项目落地。
PaddleX中集成了飞桨智能视觉领域 图像分类目标检测语义分割实例分割任务能力,将深度学习开发全流程从 数据准备模型训练与优化多端部署端到端打通,并提供 统一任务API接口图形化开发界面Demo。开发者无需分别安装不同套件,以 低代码的形式即可快速完成飞桨全流程开发。
PaddleX 经过质检、安防、巡检、遥感、零售、医疗等十多个行业实际应用场景验证,沉淀产业实际经验,并提供丰富的案例实践教程,全程助力开发者产业实践落地。

一句话概括优势:极大降低开发成本、缩短开发周期、降低开发难度

工业党们最在意的效率和成本,PaddleX都解决了。

PaddleX提供了两种开发模型:python开发模式和Padlde GUI模式

(1)python模式:python模式与我们平时比较熟悉的深度学习开发模式差不多,不过paddleX提供了众多简洁、全面、集成度较高的API,这使得我们仅仅需要非常少量的的代码量,就可以实现图像分类、检测、分割等任务。

(2)丧心病狂的Padlde GUI模式:当我第一次看到GUI模式的时候,我就知道,调参党的日子要不好过了,以及工业党的福利来了。之所以这么说,是因为使用PaddleX GUI版本,零代码就可以实现数据准备、模型训练、模型调优、模型部署全流程的开发。并且,这款工具竟然是免费的。

如下图所示,GUI模式将深度学习开发中的调参转化为点选式的选择,无需代码就可以便捷、高效地调整模型类型、backbone、模型参数和训练参数。相信经过做项目验证、做方案的工业党们都明白这意味着什么。从我的经验来看,使用PaddleX GUI模式,能够改进低效流程,将项目验证的效率提升10倍以上,极大缩短开发周期。

v2-2348bc9eacb38172c6395541b32baa9e_b.jpg
PaddleX GUI模式 参数配置部分

2. 如何使用PaddleX GUI模式完成压力表的语义分割

废话不多说,下面将以压力表的语义分割为例,边介绍边实战。百度也提供了官方使用教程文档,如下:

PaddleX 使用教程

与命令行模式的深度学习开发类似,使用PaddleX GUI模式完成压力表的语义分割也需要按照以下的流程进行。

v2-eedbfb50a10c2d5722358d80cff65eac_b.jpg

(1)数据准备

在安装完PaddleX之后,打开软件。①首先选择数据集管理;②然后点击新建数据集,创建语义分割数据集。

v2-c2ab5c5c897fac196f3b9ece6642abce_b.jpg
数据准备1

点击创建数据集后,①首先按照数据集导入规则,将原始图像和标注图像分别放在JPEGImages和Annotations文件夹中;②然后选择数据集路径,确认导入。这里需要注意一下,labelme标注出的分割标注格式为json文件,需要首先转换为label.png文件(要注意自己的标注是一个标签还是多标签)。批量转换代码为:label_json_to_dataset.py。③导入后,将数据集切分为训练集、验证集和测试集。一般按照默认比例即可。

v2-8a2553ce9f87d5b1662e17094ce598d4_b.jpg
数据准备2

v2-3efa51580e9895c3841190aebd4151c4_b.jpg
数据准备3

(2)创建项目进行模型训练

点击我的项目,新建语义分割项目后,进入到项目开发界面。

①数据选择:选择数据准备中创建的压力表数据集。

v2-bde3b39b9353910fb1334cebdcb1d85e_b.jpg
数据选择

②参数配置:在参数配置中,大家可以根据自己的需求来配置。我所使用的模型为DeepLabv3+该模型在语义分割有更好的效果。backbone选择MobileNetV2_x0.5。迭代轮数为200,学习率0.005,batch size为1(为控制训练中的振荡幅度,学习率和batch size要 相匹配的调整,减小batch size一般需等倍数减小学习率)。

v2-57e46587f0e5dbd88b3d75707ca2eddf_b.jpg
参数配置

③训练过程中的模型可视化:通过PaddleX界面查看看到当前的训练轮数,训练集损失值和验证集的各项参数。除此之外,PaddleX中集成了Visual DL,可以查看模型训练过程参数变化、日志详情,及当前最优的训练集和验证集训练指标。

④模型裁剪:训练结束后,可选择进入模型裁剪,也可直接进行模型评估。

v2-258c86318238d65613996d7c16a1df83_b.jpg

v2-b322f2c61a49badcbadf8e54496003f3_b.jpg

(3)模型评估

①参数评估:在模型评估页面,可查看训练后的模型效果。评估方法包括混淆矩阵、精度、召回率等。

v2-1162da5f381312307e645ec7aaf477bf_b.jpg
模型评估

②分割测试:可以更加直观地进行测试集图片测试,或者单张图片测试,来评估模型的性能。并可将训练后的模型保存为预训练模型。

v2-fcb8120d8f1ecf619f01fbd5f92831c9_b.jpg
图片测试

我们来看一下使用PaddleX训练后,压力表分割的效果:

v2-06e154845c9e5fe4a8fd3116ef315b69_b.jpg
压力表分割效果

放大之后:

v2-ef7403b8dc35ea552d670a1f1b01a12e_b.jpg
压力表分割

本次训练仅使用了60多张压力表的图像数据,数据量比较小。但是可以看出,最终实现的分割效果还是相当不错的。

(4)模型发布

①在得到一个性能较好的模型后,我们最终的目的是将模型部署至服务器端或者移动端。在做工业质检或巡检时,我们一般都部署在服务器端。

v2-33dcdc4bd6f2275b2b013b1aa44263f8_b.jpg

②发布的文件主要有两部分:推理代码和模型,模型保存在inference_model文件夹内,在使用时,我们只需要加载该模型即可。

v2-99c936ca0463f3fb170adaca3406c641_b.jpg
发布的文件

v2-d5e01d5baa9237b7e048b118a9c9cd46_b.jpg
保存的模型

3. 小结及下节预告

总结:在本文中,我介绍了一款非常好用的深度学习软件PaddleX,特别以压力表分割为例,阐述了PaddleX GUI模式的使用方法。这一部分的内容比较简单,欢迎大家下载该软件,亲自动手试一试。下载链接:

PaddleX 下载链接

下节预告:在工业应用中,生成一个性能不错的模型只是第一步。由于工业场景需要使用C#开发界面,因此需要将该模型转换成C#可调用的dll,下节将介绍如何将飞桨的C++预测代码生成为Visual Studio下的解决方案,以及最关键的,如何将C++预测代码生成为可调用的动态链接库dll,打通真正可以工业实战的开发流程

都看到这里了,还不点个赞,关注一下,谢谢大家!

weixin.qq.com/r/kChDW_b (二维码自动识别)

最后,再一次请大家给这款好用的工具点个star!

v2-7a5472a33a7525c792c8da1fd402e6c1_b.jpg
疯狂暗示!

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PaddleX -- 飞桨全流程开发工具,以低代码的形式支持开发者快速实现产业实际项目落地。 PaddleX 集成飞桨智能视觉领域图像分类、目标检测、语义分割、实例分割任务能力,将深度学习开发全流程从数据准备、模训练与优化到多端部署端到端打通,并提供统一任务API接口及图形化开发界面Demo。开发者无需分别安装不同套件,以低代码的形式即可快速完成飞桨全流程开发。 PaddleX 经过质检、安防、巡检、遥感、零售、医疗等十多个行业实际应用场景验证,沉淀产业实际经验,并提供丰富的案例实践教程,全程助力开发者产业实践落地。 安装: PaddleX提供三种开发模式,满足用户的不同需求: 1、Python开发模式: 通过简洁易懂的Python API,在兼顾功能全面性、开发灵活性、集成方便性的基础上,给开发者最流畅的深度学习开发体验。 前置依赖 paddlepaddle >= 1.8.4 python >= 3.6 cython pycocotools pip install paddlex -i https://mirror.baidu.com/pypi/simple 详细安装方法请参考PaddleX安装 2、Padlde GUI模式: 无代码开发的可视化客户端,应用Paddle API实现,使开发者快速进行产业项目验证,并为用户开发自有深度学习软件/应用提供参照。 前往PaddleX官网,申请下载PaddleX GUI一键绿色安装包。 前往PaddleX GUI使用教程了解PaddleX GUI使用详情。 PaddleX GUI安装环境说明 3、PaddleX Restful: 使用基于RESTful API开发的GUI与Web Demo实现远程的深度学习全流程开发;同时开发者也可以基于RESTful API开发个性化的可视化界面 前往PaddleX RESTful API使用教程 PaddleX 更新日志: v2.0.0.rc0 全面支持飞桨2.0动态图,更易用的开发模式 目标检测任务新增PP-YOLOv2, COCO test数据集精度达到49.5%、V100预测速度达到68.9 FPS 目标检测任务新增4.2MB的超轻量级模PP-YOLO tiny 语义分割任务新增实时分割模BiSeNetV2 C++部署模块全面升级  PaddleInference部署适配2.0预测库  支持飞桨PaddleDetection、PaddleSeg、PaddleClas以及PaddleX的模部署  新增基于PaddleInference的GPU多卡预测  GPU部署新增基于ONNX的的TensorRT高性能加速引擎部署方式  GPU部署新增基于ONNX的Triton服务化部署方式 Tags:PaddleX源码包 PaddleX2.0 pp飞桨 PaddleX

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值