水电站智能巡检机器人技术的应用
2023-12-05赵毅锋
沈 浩,赵毅锋,李 晓
(华东天荒坪抽水蓄能有限责任公司,浙江 湖州 313302)
抽水蓄能电站是电力系统的重要组成部分,其日常维护是水电站渗水与裂缝检测工作的重要环节,不仅需要耗费大量人工与时间成本,也对工作人员的专业素质提出了较高要求。本文设计了一套基于智能巡检机器人的巡检系统,通过采集图像信息,输入卷积神经网络(Convolutional Neural Network,CNN)模型来检测是否存在裂纹。在与常见计算机视觉方法及人工检测的对比中,基于CNN的裂缝检测方法在准确性与效率方面均具有一定进步。
1 系统构建
1.1 巡检机器人构建
本文设计的隧道巡检机器人由远程管理平台、通信系统与机器人组成。其中机器人的硬件设计如图1所示。
图1 机器人硬件设计Figure1. Hardware design of robot
ATMEGA 328P单片机为一款8位高性能、低功耗并且以AVR为内核的芯片。Arduino是一款被广泛使用的单片机,拥有众多开发库,可以减少开发时间与维护成本,其使用OpenMV作为视觉模块以实现对图像的处理。本文视觉模块继承了Kinect摄像机与STM32F427处理芯片。
1.2 CNN训练
多样化与可靠数据训练是构建CNN的关键,本文使用SDNET2018的裂纹数据集。该数据集中裂纹开暗度为0.06~25.00 mm,包含阴影、碎石与孔洞等干扰。本文选取1 800张含有裂缝的原始图片进行人工标注,以5∶1的比例构建训练集与测试集。训练集的部分图片如图2所示。
图2 训练集部分数据Figure 2. Partial data of training set
训练CNN模型需要大量数据样本,为避免过拟合,本文使用数据经扩增后的扩大数据集。为了对裂纹模型信息准确提取且保留原始数据的色彩与空间信息,本文对原始图像进行水平、上下翻转及旋转方式扩增训练集,以增强模型的泛化性能。
本文使用基于Ubuntu系统的GPU运算平台,在Pytorch框架下设计实验。CNN模型的层数越高,对于计算机运算的性能要求越高。架构了核心为4块NIVIDIA GTX 2080Ti独立显卡的CNN训练系统。在ImageNet中训练残差网络(Residual Network,ResNet)的权重,模型其他层初始化方式定为be_normal,在输出层使用Sigmoid函数,其余层使用ReLU函数。本文的初始学习率为0.01,当模型迭代超过100次时,学习率为初始值的10%;当迭代超过200次时,学习率降为初始值的0.1%。在偏置校正环节利用梯度值的一阶与二阶矩估计动态调整参数学习率,限定迭代后的学习率范围,增强参数模型的准确性。基于CNN的裂纹检测识别系统结构如图3所示。
图3 CNN结构Figure 3. CNN structure
2 CNN模型关键环节构建
为完成视觉识别任务,神经网络的深度较为重要。CNN[1]可以提取样本图像中高、中、低特征。网络模型越复杂,提取信息越多,但随着模型的复杂度上升,网络识别精度迅速饱和并急速下降,从而产生退化现象。本文引入残差网络[2-3]解决该问题,并使用ResNet训练34层网络模型:将输入信息前馈至输出,仅需训练CNN学习输入与输出的差值。
y=F(x)+x
(1)
其中,x为模型输入;y为模型输出;F(x)为模型学习需要的残差映射函数。
2.1 损失函数构建
损失函数是CNN模型优化的目标函数[4]。常用的函数为交叉熵损失函数,用来衡量数据的真实分布与估计分布间的距离。为实现对本文裂纹图像语义分割,定义二分类交叉熵代价函数[5],如式(2)所示
(2)
其中,LBCE为交叉熵损失;N为裂纹图像像素数;yi为第i个像素点的标签;pi为第i个像素点的概率。交叉熵函数每次运算的梯度回传,赋予每个类别相同的关注度,避免影响网络平衡。在裂纹与渗水检测中,训练集中的裂纹占比较低,使用交叉熵函数会迫使模型预测背景图像,故引入Dice损失函数[6]
(3)
式中,DSC为Dice函数相似系数;A为标签值;B为预测值。
Dice损失可表示为
(4)
其中,LDice为Dice损失;引入ε减少过拟合,加快收敛速度,本文设其为1。
综合交叉熵代价函数与Dice代价函数,针对廊道内裂纹和渗水的语义提取,使用组合损失函数LT如式(5)所示。
LT=LBCE+LDice
(5)
2.2 模型评估指标构建
为准确评价模型的识别效果,本文选用像素准确率[7]、交并比[8]与F1-score[9-10]这3个指标评价网络准确度。像素准确性评价函数为
(6)
其中,Acc为总像素准确率;TP为CNN准确预测正类别样本;TN为网络准确预测负类别样本;FP表示负类别样本被错误预测为正类别;FN表示负样本类别被正确预测为负类别。
交并比评价函数为
(7)
其中,IOU(A,B)为交并比;A为预测集;B为真实集。此外,为了全面评估CNN网络的性能,仍需检查召回率与准确率。建立F1-score评价函数为
(8)
3 测试结果与分析
使用搭载Kinect相机的机器人在廊道中随机检测,记录存在裂纹的廊道区域。部分原始数据与检测数据如图4所示。
图4 CNN裂纹检测Figure 4. CNN crack detection
在实际测量中,由于相机性能、光线变化与数据转换原因存在噪声干扰,故使用实验对比CNN与其他常用方法对廊道裂纹的检测情况,结果如表1所示。
表1 裂纹检测效果对比
从表1可以看出,与常用的3种裂纹检测算法相比,CNN在检测效率、检测精度方面均表现优秀。尤其是在检测精度方面,CNN的误检率约为其他3种方法的10%,低于其他常用方法。
计算机视觉对裂纹检测仍存在较为普遍的误检问题。为进一步验证CNN模型对裂纹的检测结果,本文采用电学显微镜读取裂缝宽度,将其传输至MATLAB中计算裂纹面积,并与CNN模型的计算结果进行对比,如表2所示。从表2可以看出,在对不同距离、光线与噪声环境的裂缝检测中,CNN模型的表现均衡,性能良好,测量误差均不超过5%。
表2 CNN模型与人工检测结果对比
4 结束语
本文针对水电站维护中常见的裂缝与渗水检测问题设计了一套基于计算机视觉的机器人巡检系统。构建CNN模型,根据实际情况特点设计代价函数与评价函数。与其他方法的对比结果表明,本文系统表现良好。随着物联网的发展,电力巡检系统中的机器人日益增多,需传输信息数据量更大。在此背景下,构建大规模集群巡检与维护机器人将是今后研究工作的重点。