一文解读基于PaddleSeg的钢筋长度超限监控方案

项目背景
钢铁厂生产钢筋的过程中会存在部分钢筋长度超限的问题,如果不进行处理,容易造成机械臂损伤。因此,需要通过质检流程,筛选出存在长度超限问题的钢筋批次,并进行预警。传统的处理方式是人工核查,该方式一方面增加了人工成本,降低了生产效率;另一方面也要求工人师傅对业务比较熟练,能够准确地判断钢筋长度是否超限,且该方法可能存在一定的误判率。在AI时代,利用深度学习技术,可以实现端到端全自动的钢筋长度超限监控,从而降低人工成本,提高生产效率。整体技术方案可以归纳为如下步骤:
在钢筋一侧安装摄像头,拍摄图像;
利用图像分割技术提取钢筋掩膜;
根据摄像头位置和角度确定长度界限;
最后根据该长度界限和钢筋分割范围的几何关系判断本批次钢筋是否超限。
钢筋超限监控问题可以转换为图像分割后的几何判断问题。为了实现图像分割,我们使用提供了全流程分割方案的飞桨图像分割套件 PaddleSeg,只需简单地修改配置文件,就可以进行模型训练,获得高精度的分割效果。进一步地,我们挑选使用精度和速度平衡的 PP-LiteSeg 模型,保证在实现高精度的同时,满足工业部署的要求。
安装环境
使用 PaddleSeg 套件,我们需要准备如下环境:
Python >= 3.6
飞桨框架>= 2.1
PaddleSeg
接下来,使用如下命令安装 PaddleSeg 以及相应的依赖:
数据处理
由于钢筋长度超限检测数据集是使用图像标注工具 LabelMe 标注的,其数据格式与 PaddleSeg 支持的格式不同,因此可借助 PaddleSeg 中 tools 目录下的脚本 labelme2seg.py,将 LabelMe 格式标注转换成 PaddleSeg 支持的格式。
接下来,使用 PaddleSeg 提供的脚本(split_dataset_list.py)将数据集划分为训练集、验证集和测试集。
模型训练
此处我们选择轻量级语义分割模型 PP-LiteSeg 模型,对钢筋进行分割。具体介绍可参考 PP-LiteSeg 的 README 说明文件。
说明文件链接
https://github.com/PaddlePaddle/PaddleSeg/tree/release/2.7/configs/pp_liteseg
为了在自定义数据集上使用 PP-LiteSeg 模型,需要对 PaddleSeg 提供的默认配置文件(PaddleSeg/configs/pp_liteseg/pp_liteseg_stdc1_cityscapes_1024x512_scale0.5_160k.yml)进行轻微修改。
如下所示,添加自定义数据集路径、类别数等信息:
接下来,开始执行训练:
使用 PaddleSeg 训练过程中可能会出现报错,例如,one_hot_kernel 相关的报错:
这里需要注意类别是否正确设置,考虑背景类是否添加。one_hot_kernel 另一种报错:
此时需要注意 mask 中标签是否超过 [0, num_classes + 1] 的范围。训练完成后,可使用模型评估脚本对训练好的模型进行评估:
输出结果为:
由评估输出可见,模型性能为 mIoU:0.9858,Acc:0.9947,能够满足实际工业场景需求。
模型预测
使用 predict.py 可用来查看具体样本的切割样本效果。
预测的结果如下所示。


接下来,利用预测的结果,并采用最大联通域处理后,判断钢筋是否超限。
此处,我们可以对比最大联通域处理前后的差别,可以发现滤除了小的联通区域。

判断钢筋是否超限:
对预测结果批量判断是否超限。
可视化后处理结果。

模型推理与部署
我们可以选择使用飞桨原生推理库 Paddle Inference 推理。首先将训练好的模型导出为 Paddle Inference 模型。
接下来使用推理模型预测。
最后,根据模型输出,判断钢筋是否超限,可视化判断结果。
我们也可以使用 FastDeploy 进行部署。FastDeploy 是一款全场景、易用灵活、极致高效的AI推理部署工具。其提供开箱即用的云边端部署体验,支持超过160个文本、视觉、语音和跨模态模型,并可实现端到端的推理性能优化。此外,其还可实现包括图像分类、物体检测、图像分割、人脸检测、人脸识别、关键点检测、抠图、OCR、NLP和TTS等任务,满足开发者多场景、多硬件、多平台的产业部署需求。
通过如下命令就可以非常方便地安装 FastDeploy。
使用 FastDeploy 进行预测也十分简单:
我们也可以使用 FastDeploy 提供的可视化函数进行可视化。

接下来判断钢筋是否超限,为了便于演示,兼容上面的判断接口。此处将结果导出为mask图片。

结论
本项目演示了如何在实际工业场景下,使用 PaddleSeg 开发套件进行语义分割模型训练,并使用 FastDeploy 进行部署应用,解决钢筋长度超限的自动监控问题。结果证明,本技术方案切实可行,可实现端到端全自动的钢筋长度超限监控,为企业生产降本增效。希望本应用范例可以给各行业从业人员和开发者带来有益的启发。