基于深度学习的热网管道表面破损检测*

2023-03-31 06:17胡继新何子峰谭学靖张荣达郑亚锋
科技与创新 2023年6期
关键词:热网文件夹管道

胡继新,何子峰,谭学靖,张荣达,郑亚锋

(1.国家电投集团东方新能源股份有限公司热力分公司,河北 石家庄 050000;2.国家电投集团河北电力有限公司,河北 石家庄 050000;3.国核电力规划设计研究院有限公司,北京 100000)

现如今,为提高城市土地利用率和保证生产生活安全,天然气管道、电缆线路、热网管道等多深埋于地下。地下环境恶劣,管网表面在受到内外作用影响时会出现破损,对地下管网的定期检修是安全生产生活的保障。工人下井巡检存在一定的安全隐患且经济成本较高,地下巡检机器人的出现很好地解决了这一问题。利用机器人搭载的摄像头进行破损检测不仅经济成本低,在检测的效率和准确率方面都有了进一步的提升。本文主要研究基于YOLOv5 的机器人巡检地下热网管道保温层破损问题。

传统的表面破损检测往往采用常规图像处理算法。文献[1]通过构造特殊的光源照射结构,在实验过程中,保持物体不动,光源从不同角度照射物体,获取表面信息,利用光度立体法建立物体三维模型,从而判断表面是否存在破损。文献[2]基于Gabor 滤波的重建图像算法检测破损,利用破损和图片纹理之前存在能量差异这一特点,计算滤波处理后得到的重建图像能量值分布情况,从而根据能量阈值就可以实现皮革表面破损的检测。但本次实验需要检测的是位于地下的热网管道上的破损,光度立体法的实验装置在井下无法安装,实验数据采集困难;机器人在井下采集图片过程中存在抖动,图片分辨率不够高,根据采集的实验数据可以看出图片纹理不够清楚,纹理统计效果差,影响检测结果。基于以上不足,选择深度学习的方法进行表面破损检测。

基于深度学习的破损检测方法层出不穷,针对不同物体表面的破损缺陷,不同学者根据其特征选择不同的检测方法。文献[3]通过使用目前最先进的YOLOv5 算法进行木材树结检测,解决了传统检测方法中依赖人工选择特征没法满足多种树结类型检测的缺陷。并将该方法与YOLOv3 SPP 和Faster R-CNN[4]进行了比较。实验结果表明,YOLOv5 模型对表面结缺陷的检测效果最好。文献[5]研究了基于YOLOv5 的PCB 板缺陷检测方法,结果证明YOLOv5 算法可以检测出在生产过程中由操作不当或技术故障导致的PCB中的缺陷,其可信的准确率为99.74%。文献[6]提出将YOLOv5 用于织物缺陷检测,解决了传统人工检测方法效率低、费时、费力、成本高的问题,该方法具有良好性能。YOLOv5 结合了YOLOv3 的SPP 和Faster R-CNN 的锚框机制。在目标检测过程中模型尺寸小,训练速度快,权重文件小,检测速度大。因此,本文选择YOLOv5 进行保温层表面破损的识别和定位。

1 YOLOv5 介绍

YOLO(You Only Look Once)系列算法将特征图划分为n×n的网格,每个网格各自负责区域内的目标检测,进行一次预测可以同时实现所有网格内所有目标物体的分类和定位,输出目标的边界框、定位置信度以及所有类别概率向量。

YOLOv5 将自适应锚框机制融合到训练过程中,不需要单独初始锚框值,随着训练过程的进行,可以自适应更新最合适的锚框值,自适应图片尺度变化锚框有效地提高了检测效率。根据YOLOv5s 轻量化的特点,本次破损检测选用最小模型,只有27 MB。借助网络可视化工具Netron 和YOLOv5s 的yaml 文件可以得到YOLOv5s 的模型结构可视化,经过整理可以得到如图1 所示的网络模型结构图。

图1 YOLOv5s 网络模型结构

在YOLOv5s 结构中,Backbone 结构中的Focus模块提高了运算速度。YOLOv5s 为减少卷积层的计算量,使用Focus 模块改变数据尺寸,将图片的宽度和高度信息整合到通道空间中。该模块进行切片操作,将输入数据切分为4 块,对每块数据进行了2 倍下采样,之后在通道维度上拼接,此时得到的数据宽高变为原来的一半,通道数变为原来的4 倍,即[b,c,h,w]变为[b,c*4,h/2,w/2]。

在CSP(Cross Stage Partial Network,跨阶段局部网络)中,YOLOv5s 采用了跨邻域网格的匹配策略,从而得到更多的正样本,加速收敛。池化过程通过SPP(Spatial Pyramid Pooling)空间金字塔进行池化,进行了填充,保证特征图尺寸不变。SPP 可以增大感受野,提取重要特征,在不降低网络操作速度的同时进行最大值池化。

Neck 结构部分在处理过程中存在不同尺寸的特征图,FPN(Feature Pyramid Network)在进行多尺度融合过程中PANet(Path-Aggregation Network,路径聚合网络)增加了一个Bottom-up 路径,将精细特征图的信息直接传递到小尺度特征图,再进行相同尺度特征的拼接和融合处理,解决了特征融合过程中信息传输流失的问题。

2 实验过程及结果

2.1 数据集准备

在基于深度学习的目标检测中,训练样本集的丰富程度严重影响最终的检测结果,而对于热网管道表面破损数据集,一方面网络上难以找到和现场类似的破损类型,已有数据集和实际相差较大,因此没办法利用现成数据;另一方面,地下热网管道在运行过程中温度过高,工作时无法下到井下采集数据集,在停机时采集到的仅有的现场照片中,破损较少且类型不够丰富。人为制作破损数据集就是本次破损检测的一个重点内容。本文选择了2 种方法进行数据集获取。

方法一:直接将玻璃纤维布划成各种类型大小不一致的破洞,手机拍摄破损后降低图片分辨率,在此基础上在破损周围撒上一些水泥和石子,模拟上方落石将管道砸破,在此获取新的数据集。数据集如图2 所示。

图2 手机采集数据集

方法二:在实验过程中,根据方法一得到的数据集不符合现场利用机器人搭载摄像头所获取的图片的情况,没有模拟到管道弧度对拍摄破损的影响,还原度不高。我们根据现场管道的大小和装置特点,搭建如图3 所示的实验装置。管道表面采用玻璃纤维布模拟石棉保温层,人为制造各类破损。场景搭建完毕后,真实模拟机器人下井采集数据的情况,机器人搭载摄像头采集1 000 张样本集。如图4 所示为数据集样本,本次实验的数据集由机器人搭载摄像头采集到的、手机拍摄的、现场获取的数据集3 部分组成。

图3 模拟管道实验场景

图4 数据集样本

数据集准备完成后,还需要将破损数据集制作为标准的COCO 数据集。首先新建一个文件夹Label 和数据集Data 文件夹同级,打开LabelImg 软件,使用Open 命令导入Data 文件、Open Dir 命令导入Label文件夹。手动划定破损区域并打上标签,标签记为“crack”。标注图片后会生成一个.xml 文件,自动存入到 Label 文件夹中。 完成标记后依次运行01voc2yolo4.py、02voc2yolov5.py、03get_pic_labels.py文件,COCO 数据集文件夹结构满足YOLOv5s 的格式要求。

2.2 数据集预处理

YOLOv5s 的数据读取的代码在unitls 文件夹下的dataset.py 文件。通过定义函数(Dataset)类来实现数据读取。在数据读入到网络中,load_mosaic 函数进行预处理——数据扩充(Mosaic)。将4 张图片拼接在一起,缩小目标,以提高小样本的检测率。

2.3 实验过程

在以上工作准备完毕后,将数据集放到YOLOv5文件下,训练过程包括以下步骤:①修改data 文件夹下的yaml 文件。将coco.yaml 文件夹的路径、类别数、类别名称都改为本次实验内容。②修改train.py 文件。权重文件改为yolov5s.pt,模型文件改为yolov5s.yaml,路径文件改为coco.yaml。③点击RUN 命令进行训练。

在训练过程中,会进行学习率的预热。因为开始训练过程中没有最匹配的模型权重,一般是随机初始化的,所以为了避免学习率过大而导致模型震荡,该网络在训练过程中选择在开始的几个轮次预热学习率的训练方式,待模型相对稳定后又恢复预先设置好的学习率,从而加快模型收敛速度,最终的训练效果更佳。

2.4 检测结果

训练后得到的权重文件保存在“run/train/weights”路径下,将测试图片或视频放入到“data/images”路径。修改detect.py 文件中的输入图片路径,权重文件改为best.pt,运行后得到如图5 所示的验证结果,从图5 中可以看出,所有破损都识别到并进行定位,置信度均在0.60 以上,检测效果佳。

图5 检测结果

3 结束语

基于YOLOv5 的热网管道表面破损在检测效率、投入成本、检测准确度、训练速度、权重文件等方面都有良好的表现,使得YOLOv5 适用于现场破损检测。由于YOLO 模型的性能取决于训练集的大小,随着数据集越来越丰富,检测准确度会越来越高,因此,在未来的使用中,我们会不断丰富数据集,更好地训练网络,提升网络检测性能。

猜你喜欢
热网文件夹管道
磁力文件夹
热网异常工况的辨识
新建热网与现状热网并网升温方案
基于动态三维交互的二级热网仿真系统
关于热网换热站节能监管与应用探究
接好煤改气“最后一米”管道
粗氢管道腐蚀与腐蚀控制
摸清超标源头 大文件夹这样处理
调动右键 解决文件夹管理三大难题
挂在墙上的文件夹