基于MS1Net卷积神经网络的金属表面腐蚀等级检测
卷积神经网络(Convolutional Neural Network, CNN)是在多层神经网络的基础上发展起来的针对图像识别和分类的一种深度学习方法[。多层神经网络由输入层、隐藏层、输出层构成。每一层都有若干个神经元,相邻层之间的神经元都是互相连接的。多层神经网络在进行识别和分类时,输入层代表着特征向量,输入层的每一个神经元则代表着一个特征值。但是这种多层神经网络在进行图像识别时有两个缺点:一是没有将图像的空间结构考虑到识别任务中,最后会导致识别性能大大降低;二是由于每个相邻的神经元都是相连的,最后会导致神经网络中训练参数过于庞大,训练速度大大降低。
用于 MS1Net(Multilayer Small One Networks)网络模型训练的原始配电箱金属表面腐蚀图像分辨率为 2144 像素×1608 像素。如果将配电金属表面腐蚀图片按原始分辨率输入网络,在训练时会消耗计算机较大的内存,随着网络结构复杂度和训练批次的增加,会造成训练失败的后果。因此,本文将配电箱金属表面腐蚀图片按照原始图片比例整体缩小0.2 倍,得到最终输入网络的配电箱金属表面腐蚀图片参数为428×321×3。 MS1Net 网络模型的结构使用了 10 层卷积层、 5 层池化层和 2 层全连接层,且在每个卷积层和池化层相接处,添加了 SENet 特征提取模块,用于分配配电箱金属表面腐蚀特征的重要性。并且在该网络中添加的 Relu 激活函数和 Dropout 层。在 MS1Net 网络模型最后通过Softmax 输出网络预测得到配电箱金属腐蚀类别,该类别有六个,相加为 1。
为了有效的减少 MS1Net 网络模型的参数,从而减少 MS1Net 网络的计算量和避免 MS1Net 网络的过拟合,整体网络模型使用了小型卷积滤波器。在提取配电箱金属表面腐蚀特征时,为了区分配电箱金属表面腐蚀各个特征的重要性,添加了 SENet特征提取模块。并且在 MS1Net 网络模型中,使用了 Dropout[42]算法,从而降低 MS1Net网络的过拟合。在整体 MS1Net 网络模型优化上,选取了交叉熵损失函数使模型达到最优,并保持较好的收敛性。
MS1Net 网络深度和卷积层数确定依据
MS1Net 网络模块讲述的内容是构建 MS1Net 网络模型所用的几个关键技术,也是确定 MS1Net 网络模型的关键步骤。除此之外, MS1Net 网络模型中经过 SENet 特征提取模块处理过后的特征图大小和经过池化后得到的特征图大小,它们之间的数值满足表达式(3.1)中的关系。这是确定 MS1Net 网络模型卷积层、池化层个数和网络深度的主要依据。在该表达式中, (Zxl-1 , Zyl-1)表示在 MS1Net 网络中通过 SENet 特征提取模块处理过后的特征图, pad 为给当前特征图添加的边界宽度, (Kx , Ky)为本层卷积层卷积核的大小, Sx 和 Sy 为池化窗口在特征图上的滑动步长, (Zxl , Zyl)为当前特征图经过池化之后输出的特征图。
MS1Net 网络模型结构参数配置
MS1Net 网络模型参数配置如表 3.1 所示。从表 3.1 可以看到, I(Data)层表示MS1Net 网络的输入层,该层代表输入到 MS1Net 网络的配电箱金属表面腐蚀图像特征图大小,大小为 428×321×3。 428×321 代表图片的宽和高, 3 则代表图片的 3 个颜色通道。 Conv1_1 和 Conv1_2 为网络的第一个连续 3×3 卷积层,卷积层在特征图上的滑动步长为 1,卷积核数量和该层中的特征图通道数一致,因此当前两个 3×3 卷积层的输出维度为 428×321×32。由于 MS1Net 网络中每一层设置的卷积核数量都为32,因此每层输出的特征图通道数都为 32。接下来是添加到网络中的第一个 SENet特征提取模块,由于通过 SENet 特征提取模块处理后的特征图大小不变,因此该层输出的特征图大小也为 428×321×32。 Pool1 则为网络中的第一个池化层,池化层的卷积核大小为 2×2,池化窗口在特征图上的滑动步长为 2,根据表达式(3.1)可以计算得出池化后的特征图大小为 214×161×32。 MS1Net 网络下面的卷积、池化操作跟上述操作类似。
模型优化
最好的情况是,网络模型能够帮助我们提高纠正错误的效率,得到更为精确的结果。但在实践过程中,很难找到令人满意的网络模型。损失函数被用来估量标准答案和预测结果之间的差距,因此损失函数的计算结果越小,网络模型的结构越符合要求。在实践中,需要依据网络模型和待解决问题的特点来选择合适的损失函数。
参考文献:
石林,《基于深度学习的金属表面腐蚀等级检测研究》,2021,重庆理工大学