基于改进残差网络的扬尘图像识别方法 您所在的位置:网站首页 残差神经网络改进 基于改进残差网络的扬尘图像识别方法

基于改进残差网络的扬尘图像识别方法

2024-03-26 15:28| 来源: 网络整理| 查看: 265

随着我国经济迅速的发展, 环境的问题也变得越来越明显, 其中扬尘污染也越来越成为环境污染的重要来源. 扬尘污染的存在方式是多种的, 在土质和碎石道路上存在, 在建筑工地和水泥等路面上也会存在. 同时, 因为重型车辆和一些大型设备对路面的影响, 扬尘量也变得越来越多, 扬尘污染也将会变得更加严重. 因此, 对于扬尘识别的研究具有重大的实际意义.

传统的扬尘识别方法中大多采用物理信号进行监测. 李晋惠等[1]充分利用了Mie散射原理, 在这一基础上研究出了一种多光路扬尘监测方法. 雷俊花[2]提出了一种高层建筑装修施工扬尘污染远程监测方法. 牛志云等[3]设计了基于 STM32 微控制器的光散射式扬尘监测仪. Yu等[4]根据实验室和教室实际环境中空气质量的监测要求, 设计了粉尘浓度监测系统. 为了能够实时监测大气扬尘, 张所容[5]利用 Mie 散射原理和激光散射法, 导出了计算扬尘物质量浓度的方法. 随后搭建监测系统的实物架构, 并采用基于 B/S 的结构进行了相应的软件系统设计. 袁冬琴[6]设计了基于遥感技术的工地扬尘污染自动监测方法. 传统方法的缺点在于比较依赖环境, 而且识别的距离是非常有限的, 需要大量人力和物力.

除了传统方法外, 应用图像处理技术监测扬尘污染也是一个很好的思路. 王建鹏[7]提出一种融合了无线传感器技术、激光前散射粉尘监测技术、图像识别技术和云平台技术的扬尘监测系统. 马国鑫等[8]充分使用了无人机和图像识别技术, 将HSV特征提取, 直方图对比以及非零像素点计算作为核心, 设计了施工扬尘污染源自动监测系统, 并且测试了该系统的运行效果. 任婷婷[9]运用图像处理技术中的图像滤波去噪, 图像分割, 图像特征提取和分类识别的方法, 对道路扬尘污染监测与识别算法做了研究. 这类方法相对于传统方法来讲, 可以降低人力和物力的需求, 提升识别精度和稳定性, 但这一类方法的缺点是比较针对于某一个特定的场景, 训练出的模型具有很大的局限性.

基于深度学习的扬尘识别方法能够很好地解决上述存在的问题. 因此, 提出一种基于改进残差网络的扬尘识别方法, 将图像通过改进的ResNet-50网络进行特征提取, 更好的表达图像信息, 提高识别精确度.

1 相关工作 1.1 卷积神经网络

卷积神经网络[10-12]是一类包含卷积计算并且具有深度结构的前馈神经网络, 是深度学习的代表算法之一. 它具有表征学习的能力, 它能够以原始图像作为输入, 通过卷积网络结构来形成更加抽象的高层次特征, 从而可以获得更深层次的数据特征表示, 避免了人工提取图像特征的复杂[13]. 其中的经典网络有LeNet-5, AlexNet, ZFNet, VGG-16, ResNet等.

1.2 残差网络

模型使用的基础网络ResNet是2015年由He等[14]提出的, 在ImageNet测试集上的误差达到3.57%, 这个结果在ILSVRC 2015分类任务中取得第一名. ResNet网络主要是为了解决网络中的梯度消失和退化问题, 有利于网络更快的收敛. 目前, 残差网络主要应用于图像分类, 物体识别, 自然语言处理, 目标检测等领域.

ResNet-50结构图如图1(a)所示.

图 1 Fig. 1 图 1 网络结构图

图1中输入图像是大小为224×224×3的三维数组, 第一个卷积层是独立卷积层Conv1, 使用64个大小为7×7, 步长为2的卷积核, 输出的大小为112×112. 之后是一个最大池化层, 池化窗口和步长分别为3×3和2, 输出大小为56×56. 接着是4个不同的卷积残差块Conv2_x, Conv3_x, Conv4_x和Conv5_x, 每个卷积残差块由2~3个卷积层和跨越它们的连接组成, 并且每个块的输出大小分别为56×56, 28×28, 14×14, 7×7. 最后是平均池化层, 全连接层和损失函数Softmax. ResNet-50网络中的残差块主要采用的是1×1+3×3+1×1的卷积层形式, 相比常规网络的2个3×3卷积层形式, 使用三层残差块结构不仅可以保持网络精度, 同时还能减少网络的计算量. 两种残差块的结构如图2(a)和图2(b)所示.

图 2 Fig. 2 图 2 残差块 1.3 残差网络的学习算法

通过一个假设将残差的概念引入进来: 假设可以通过恒等映射的方式来构建所增加的层, 这样就可以把一个深层网络变成了一个浅层的网络. 至少可以保证深层网络的训练误差不会大于所基于的较浅模型. 将H(x)假设为所需的底层映射, 第一层的输入为x, 让堆叠的非线性层来拟合另一个映射: F(x)=H(x)−x. 因此原来的映射转化为: F(x)+x.

在残差网络中, 对于网络中每一个堆叠层都将采用残差学习的方式. 残差块如图2所示. 并将残差块定义为:

$y = f(x,\left\{ {{W_i}} \right\}) + x$ (1)

其中, x和y是考虑层的输入和输出向量, $f(x,\{ {W_i}\} )$ 是要学习的残差映射, Wi是i层的权重. 在式(1)中x和f的维度是必须要相等的. 如果维度不同, 可以通过快捷连接方式执行线性投影Ws以匹配维度:

$y = f(x,\left\{ {{W_i}} \right\}) + {W_s}x$ (2) 2 模型设计

ResNet-50网络在许多领域都得到了广泛的应用, 比如在人脸识别等比较成熟的领域应用较为理想, 但应用于扬尘识别时, 识别准确率较低. 因此, 对ResNet-50网络进行改进, 形成新的网络模型, 以适应扬尘图像识别, 改进如下: (1)将网络中最后一次空间下采样操作的卷积层步长从原来的2设置为1; (2)移去了网络中最后的平均池化层. 同时, 在该网络的基础上引入了多尺度的金字塔池化方法; (3)在全连接层后加入改进的Softmax损失函数, 进一步提高模型的识别性能. 整体的网络结构如图1(b)所示.

2.1 扩大特征图

在ResNet-50网络中, 网络中的每个块都会有一个空间下采样的操作, 为了增大扬尘特征图的空间大小, 去除网络最后一次空间下采样. 当输入一张224×224的扬尘图像后, 网络会输出一个7×7的特征图. 将网络中最后一次空间下采样卷积层的步长从2设置为1, 将特征图的输出尺寸扩大为14×14. 这样不仅不会增加模型的参数量, 而且还能够使得模型的参数结构得以保持, 增大特征图的空间大小有利于提取到更加细粒度的扬尘图像特征, 进而提升扬尘识别模型的性能.

2.2 金字塔池化层加入

在针对扬尘识别的ResNet-50网络中, 卷积层接受任意大小的输入, 但它们产生的输出大小不一, 而全连接层需要固定长度的向量作为输入. 那么对于结构已经确定的ResNet-50网络, 就需要对扬尘图像进行裁剪或缩放等操作, 这么做会降低扬尘识别的精度. 在2015年He等[15] 提出的金字塔池化(SPP)方法解决了这一问题. 金字塔池化方法能够让网络适应不同大小尺寸的扬尘图片, 不仅增加了扬尘识别模型的尺度不变性, 而且还可以抑制训练过程中过拟合现象的发生. 它可以通过将空间信息集中在本地的空间容器中来维护空间信息, 这些空间存储单元的大小与扬尘图像大小成比例, 无论图像大小, 存储单元的数量都是固定的. 因此, 改进的ResNet-50网络模型去掉全连接层之前的平均池化层, 并将金字塔池化的方法引入到扬尘识别中. 金字塔池化层如图3所示, 具体操作是将经过ResNet-50网络输出的特征映射采用不同的池化尺度(1×1,2×2,4×4), 得到 21个固定的特征向量, 然后把这些向量平铺组成一个新的特征向量并送入全连接层.

金字塔池化层就是在最后一个残差块conv5_x卷积层的扬尘特征图的每个图片上进行了3个卷积操作. 最下边为原图像特征图, 中间的是分成大小为4的特征图, 最上边的是分成大小为16的特征图. 因此, 每一个特征图就变为1+4+16=21个特征图. 其中每一个卷积操作的本质都是平均池化, 不同的只是窗口大小和步长. 参数设置如图4所示.

图 3 Fig. 3 图 3 金字塔池化层 图 4 Fig. 4 图 4 金字塔池化参数设置 2.3 损失函数的改进

为了充分发挥ResNet-50网络体系结构学习表示的识别能力, 受人脸识别中损失函数的启发, 在扬尘识别模型训练阶段加入了改进的Softmax损失函数. Softmax对于类间距离的优化效果很明显, 对于所学习的特性, Softmax损失函数公式为:

${L_{{\rm{Softmax}}}} = {\rm{ - }}\frac{1}{m}\displaystyle\sum\limits_{{{i}} = 1}^m {{\rm{log}}\frac{{{{\rm{e}}^{W_{y_i}^{\rm{T}}{x_i} + {b_{y_i}}}}}}{{\displaystyle\sum {_{j = {\rm{1}}}^p{{\rm{e}}^{W_{{j}}^{\rm{T}}{x_i} + {b_j}}}} }}}$ (3)

其中, m是训练过程中的样本的数目,p是训练数据集中的类数. ${x_i}$ 是第i个样本的特征, ${{{y}}_{{i}}}$ 是对应于 ${{{x}}_{{i}}}$ 的标签, W和b是Softmax损失之前的最后内积层的权重矩阵和偏置向量, x是网络最后一层输出的特征, 经过一个全连接的分类层, 即乘以权重W并加上偏置b, 输出score. Wj是W的第j行, 对应于j类. Softmax可以有效区分类间差异, 但是对于类内的分布没有很好的约束, 因此监督效果不够.

${{\textit{z}}_j} = W_j^{\rm{T}}x = \left\| {{W_j}} \right\|\left\| {{x_{}}} \right\|\cos {{\rm{\theta }}_{{j}}} $ (4)

原始的Softmax损失在空间分布比较随意, 输出的score为式(4), 即神经元的权重向量的模||Wj||乘以特征向量的模||x||, 再乘以两个向量夹角的余弦值cosθj, 因此, 在分类过程中score会受到模和夹角的影响.

${W_j}^ * = \frac{{W_j^{}}}{{\left\| {{W_j}} \right\|}}, \;{X^ * } = \frac{{x_{}^{}}}{{\left\| {x_{}^{}} \right\|}} $ (5)

为了消除在扬尘识别过程中模和夹角的影响, 将权重向量Wj和特征向量x归一化, 从而消除模的影响. 如式(5)所示, 归一化之后的Softmax只需要比较两个角度的大小, 这样可以减少损失函数优化参数的数量, 只需要考虑角度, 大大提升了Softmax分类器的分类性能, 提高了扬尘识别的准确率.

3 实验分析 3.1 实验数据集

由于扬尘图像识别目前没有公开的数据集. 因此,通过在互联网上收集各类有关扬尘场景的图片, 整理形成训练集和测试集, 然后使用数据增强在训练集和测试集中生成更多的数据, 解决了该研究中没有数据集以及数据量不足的问题. 为了增强模型的泛化能力, 采用数据增强的操作扩充所需的数据样本, 让网络模型更好的适应各种应用场景.

首先收集含有扬尘以及非扬尘的图像制作训练和测试数据集, 并使用数据扩增技术增加数据量, 部分实验图像如图5, 图6所示. 实验数据集分为训练集和测试集, 每个集合均含有扬尘图像与非扬尘图像. 将10000张扬尘图像与5000张非扬尘图像作为实验数据, 将其中的13000张作为训练集, 2000张作为测试集.

3.2 实验设置

实验使用的操作系统是64位的Ubuntu18.04操作系统, 在训练和测试过程中使用了NVIDIA GTX 1660Ti GPU进行加速, 算法使用深度学习框架PyTorch实现, Python版本为3.6.

实验的主干网络采用了在ImageNet[16]上预训练好的ResNet-50模型, 完成模型的权重初始化, 这样可以减少训练时间. 扬尘图片的输入尺寸将其调整为224×224. 在训练过程中, 设定初始学习率为0.001, 迭代次数为120次, batch大小设置为32.

图 5 Fig. 5 图 5 非扬尘图像 图 6 Fig. 6 图 6 扬尘图像 3.3 实验结果

为了说明改进ResNet-50网络的有效性, 选择了3种方法进行对比, 方法1是使用原始的ResNet-50网络, 方法2是将最后一次空间下采样操作的卷积层步长从原来的2设置为1, 不使用金字塔池化的ResNet-50网络, 方法3是只使用金字塔池化, 最后一次空间下采样操作的卷积层步长不变的ResNet-50网络, 方法4是使用改进的ResNet-50网络. 此外, 在训练中4种方法均使用Softmax损失函数进行优化. 4种方法的实验对比结果如表1所示. 各个实验的训练曲线如图7所示.

表 1(Table 1) 表 1 不同网络实验对比结果 方法 描述 训练次数 准确率(%) 方法1 基础网络 120 88.7 方法2 去除最后空间下采样 120 89.2 方法3 加入金字塔池化 120 89.5 方法4 改进ResNet-50 120 93.4 表 1 不同网络实验对比结果

通过对这4种网络结构的实验结果进行比较可以看出, 使用初始ResNet-50网络的准确率最低. 与方法1相比, 通过增大特征图尺寸来提高识别效果的方法可以提高2.5%, 使用金字塔池化后可以提高5.1%, 而方法4要比方法1提高8%, 说明了将增大特征图尺寸和金字塔池化的方法加入到ResNet-50网络中是有效的, 证明了改进ResNet-50网络的有效性.

从图7可以看出, 准确率提高和损失率下降最快的是方法4, 相比其他3种方法, 方法4的收敛速度更快, 在训练次数达到60次时趋于稳定在0.94左右. 方法2和方法3的收敛速度有交叉的部分, 方法1的速度是最慢的.

图 7 Fig. 7 图 7 训练曲线

为了验证ResNet-50网络的性能, 选取了其他两种卷积神经网络Vgg16[17]和Alexnet[18]训练扬尘数据集, 并和ResNet-50网络的训练准确率作比较, 比较结果如表2所示. 通过表中数据可以发现, 在这3种网络结构模型中ResNet-50的准确率最高.

为了说明模型的泛化能力, 采用改进ResNet-50网络和ResNet-50网络分别在公共数据集CIFAR-10上进行了实验. CIFAR-10是一个和普适物体相近, 由Hinton的学生整理的一个用于识别普适物体的小型彩色图像数据集, 共包含10个类别的RGB彩色图像, 每个类别有6000张图像, 每张图像的尺寸大小为32×32. 该数据集有50000张图像用于训练集, 10000张图像用于测试集. 实验准确率对比结果如表3所示.

表 2(Table 2) 表 2 3种网络模型准确率对比 网络 迭代次数 准确率(%) Alexnet 120 82.8 Vgg16 120 84.3 ResNet-50 120 88.7 表 2 3种网络模型准确率对比 表 3(Table 3) 表 3 CIFAR-10数据集准确率对比 网络 迭代次数 准确率(%) ResNet-50 120 80.5 改进ResNet-50 120 91.3 表 3 CIFAR-10数据集准确率对比

基于改进ResNet-50网络的扬尘识别方法在该数据集下的准确率为91.3%, 相比基础的ResNet-50网络提高了10.8%, 说明了改进的网络模型有较好的泛化能力.

4 结论

深度学习在图像识别中具有重要意义, 相比传统的图像识别方法, 基于深度学习的识别方法具有自学习和适应能力, 可以更好地对目标进行特征提取. 改进的网络模型将ResNet-50网络应用到扬尘识别中, 并对其进行了改进. 经实验验证, 改进ResNet-50网络对扬尘图像有较高的识别率, 同时也有很好的泛化能力, 可以有效地识别各种类扬尘图像以及其他非扬尘图像, 在实际中有很大的应用价值.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有