吴 炼,钱国明,韩晓健
(1.南京邮电大学电子与光学工程学院、柔性电子学院,江苏南京 210023;2.南京工业大学 土木工程学院,江苏 南京 211800)
目前,中国已经成为在国际上有着巨大影响力的水运强国,截至2020 年底,国内内河航道通行里程达到了12.77 万千米,排名全球首位。航道安全不仅关系到我国综合运输体系的平稳运转,也与周边群众的安全有着密切的关系。然而,一些航道常常由于水流侵蚀或河道周边地段开发等原因导致河道边坡产生裂缝、碎落、滑坡等病害。
目前,国内外对于航道边坡监测的主要研究点集中在航道的变化监测以及边坡稳定性的评估方法。文献[1]研究了基于无人机遥感图像的卷积神经网络(CNN)方法在边坡破坏检测中的有效性。文献[2]以北京市石景山永定河为例,设计了一种河道自动提取与变化监测方法。文献[3]提出了一种算法将无人机拍摄的边坡图像进行校正,通过边缘检测表获取滑坡的边界并进行拼接,最后实现对病害的识别及定位。
近年来,有监督的卷积神经网络[4]通过良好的空间数据结构特征分析能力在图像处理研究中得到了普遍应用,为相关人员提供了一种可以快速分析数据的有效工具。因此,文中尝试设计一种航道边坡病害特征提取算法,基于该算法实现一种航道边坡病害分类识别系统。
常见边坡病害主要包含凹陷、碎落、裂缝、滑坡、坍塌等[5]。考虑到数据集实际采集环境的局限性,文中最终选择了航道边坡病害中较为常见的三种类型:裂缝、缺损、碎落进行研究,如图1 所示。
图1 典型航道边坡病害图
航道边坡病害图像均由课题组人员使用手持设备及无人机拍摄,图像分辨率高但数量较少,不利于模型训练。因此将高分辨率图片按指定大小裁剪为多张低分辨率的图片,并挑选其中满足要求的部分。经过对结果的多次比对,最终选择将原图像剪裁成长宽均为300 像素的子图像。如果为了获得更多的训练图像而将图像裁剪成更小的尺寸,图像特征会被切割得过于分散,不利于后期处理时的分类标记。多次试验后确定300×300 为最佳的尺寸。因为过小的样本不能捕捉到足够的数据模式,因此文中还对样本数据进行了数据扩充以改善模型的泛化能力,同时降低网络的过拟合现象。数据增强[6]是指在数据集中样本数量不足的情形下,通过对其部分图片进行转换再添加到数据集使数据集更加健壮。文中采用随机剪切、旋转/反射/翻转变换、颜色变换(亮度、对比度的随机变化)以及噪声扰动方式进行扩充。经过筛选后最终得到裂缝图像1 834 张,缺损图像2 031 张,碎落图像1 922 张,背景图像5 000 张。
文中基于改进后的ResNet18 网络,使用采集的航道边坡病害图像进行训练,对比改进前后的识别性能,选择最优模型。系统结构如图2 所示。
图2 系统流程图
由于航道边坡处于城市水体的两侧,水面的位置高低不定,近水一侧的边坡会由于水体的波动在边坡面形成明显的亮暗差,导致位于暗处的病害特征不明显,会影响到训练的效果。这里选取Retinex[7]作为增强算法,Retinex 算法将图像S(x,y)分解为亮度图L(x,y)与反射图R(x,y),如式(1)所示。
通过减少亮度的影响,以对各种图片进行自适应增强[8]。对反射图像还原方法的不同也衍生出了很多的算法,从单尺度到改进的色彩恢复算法(MSRCR)[9]和色度保持算法(MSRCP)。
文中选定并对比了MSRCR、Automated MSRCR、MSRCP 三种算法的效果,如图3 所示,MSRCP 相较于其他两种方法明显提升了图片的总体亮度,并且原先隐藏于暗处的病害也得到了一定程度的凸显,最终选定MSRCP 作为图像增强算法。
图3 Retinex各算法效果对比图
深度学习通过提高网络模型中的层数得到更高维度的图像特征,不过在单纯地提高网络深度时,效果不仅不会变好,反而会出现梯度爆炸等现象使效果越来越差。ResNet 很好地改善了这一情况,残差学习单元如图4所示。这是一种和电路中的“短路”[10]相似的连接。通过残差单元,网络只会学习每层的残差,确保了即使在没有学习到新特性的情形下,网络也仅实现了恒等映射的功能。
图4 残差学习单元
ResNet18 模型由17 个卷积层与全连接层构成。当图像块进入模型后,卷积层会对图像的高层特征进行抽取,其中特殊的短路结构来减小卷积层堆叠引起的问题;最后对全连接层输出用Softmax[11]分类,如式(2)所示:
其中,k代表网络中的输出节点数,vj为v中第j个输出的数值,计算结果范围在0 至1 之间,且每个类型的数值求和为1。
ResNet18 模型优势十分突出,但同时面临着底层与卷积层参数的获取工作量巨大、模型训练速度缓慢的问题。为此,改进ResNet18 模型残差块结构和平均池化层。
2.3.1 残差块结构优化
为了降低原模型的参数量,将原结构更换为两个1×1 和一个3×3 卷积的结构串联,如图5 所示。
图5 残差块修改前后结构
以256 维的数据为例,替换后的残差块结构的参数量仅为7×104,约为改进前参数量1.18×106的6%。优化后的结构计算工作量明显减少,可以增加一定时间内的训练数量,减少模型问题并改善模型的泛化性。
2.3.2 平均池化层改进
在主结构残差块的末端连接一个1×1 的卷积层和批标准化[12]层的串联结构,使用ReLu 函数进行激活,再使用最大池化层替换原网络中的平均池化层,从而凸显特征图的细节和纹理,使其更具有分辨性。
1×1 卷积和ReLu 激活可以在不丢失功能的情况下起到关键作用,使网络可以更好地鉴别信息的特征,而最大池化层[13]可以有效防止过拟合,并提高模型对新样本的适应能力[14]。改进后的模型如图6所示。
图6 改进的模型示意图
实验环境硬件平台为AMD 5800X @4.60GHz CPU,32 GB RAM,NVIDIA Geforce RTX 3070 GPU,软件平台为Windows 10 21H1 和Pytorch 1.7.1,设置训练epoch 为100,学习率为0.000 1,批处理大小为32,并采用了AdamOptimizer[15]更新模型参数。
实验选用精确率P,召回率R来定量评价文中算法[16],如式(3)、(4)所示。
式中,Tp表示成功识别为正例的个数;Fp表示错误识别为正例的个数;FN表示错误识别为负例的个数。
为确定对模型的残差块结构、平均池化层改进对ResNet 网络模型的具体提升效果,该实验一共设计了四种不同网络进行测试。模型一:未优化的ResNet18 网络;模型二:仅改进了残差块结构后的网络;模型二:仅改进了平均池化层后的网络;模型四:两处结构都改进后的网络。各模型方案表现效果如表1 所示。模型一与模型四精确率对比如图7 所示。
表1 各模型方案表现效果
图7 模型一与模型四精确率对比图
由表1 和图7 数据可得,经过优化的模型精确率、召回率较原模型分别提升了3.86%、5.1%,表明改进后的网络模型性能有了一定程度的提升。
文中设计了一种基于深度学习的航道边坡病害分类识别系统,系统基于ResNet18 网络,对网络的残差块以及平均池化层进行了优化。结果表明,经过改良后的神经网络在原网络模式的基础上精确率和召回率均有提高,结果证明了设计的有效性。