基于分组卷积与双注意力机制的河流水面污染图像分类①

2022-09-20 04:11宋一格李宏昌
计算机系统应用 2022年9期
关键词:卷积水面分组

宋一格, 王 宁, 李宏昌, 武 暕

1(中国科学院大学, 北京 100049)

2(中国科学院 沈阳计算技术研究所, 沈阳 110168)

3(阜新市生态环境保护服务中心, 阜新 123008)

4(辽宁省生态环境监测中心, 沈阳 110161)

1 引言

河流水面污染是水体污染的一种, 污染物通过直接或间接的方式被排入河流环境, 造成损害河流资源和人类健康的影响. 河流资源是淡水资源重要的组成部分, 地球上人类可利用的淡水资源占比不足1%, 保护河流资源是非常迫切和必要的. 随着经济和社会的快速发展, 我国城镇化建设步伐日益加快, 大量的人口聚集到城市生活, 给城市周边的环境和生态造成了严重的影响, 许多河流的水面上出现大量的污染物, 这些污染物由各种自然和人工废弃物组成, 在水面堆积腐烂严重影响水环境和水质, 在城市和景观水域影响市容和旅游环境[1]. 如果不能得到及时清理, 势必会破坏生态环境, 威胁人类的生存和发展.

本文主要的研究对象是河流水面的污染物, 例如垃圾塑料、自然脱落的树枝、富营养化藻类等污染物.当前国内针对此类污染物处理主要是人工清理和遥感测试的两种方法. 人工清理的方式不能及时的清理污染物, 造成对河流环境的污染和河流生态的破坏, 不能有效的保护河流环境, 同时需要大量的人力物力. 遥感方法使用成本较高, 针对细长的河流会造成一定的技术图片和时间成本的浪费, 同时需要专业人员对遥感图像进行分析. 两种方法在时效性和经济成本上都不能很好的解决上述污染物的监测问题.

为解决上述问题, 本文结合实际情况和计算机视觉技术在相关领域的应用, 结合现有图像制作了一个河流水面污染图像数据集, 提出了一种基于分组卷积与双注意力机制的河流污染图像分类算法. 目前国内的主要河道都部署了河流监控摄像头, 通过拍摄图片的方式对河流资源进行监控, 本文提出的方法利用这些图像资源对模型进行训练测试并构建了一种基于分组卷积和双注意力机制的算法模块, 将其添加到标准网络中可以有效的对河流水面污染物的图像进行分类,判别河流水面污染的是否存在污染. 实验表明, 本文提出的GCDA模块添加到ResNet50算法上, 相较于原始网络以及单独添加注意力机制模块的网络在河流水面污染二分类实验中效果明显提升. 适用于实际工程, 能有效解决河流水面污染物监测问题, 有一定的实际意义.

2 相关工作

计算视觉技术是用计算机来处理图像, 从数字图像中提取特征, 使计算机具有人一样的视觉能力.2012年, Krizhevsky等[2]创造的大型的深度卷积神经网络AlexNet在图像分类任务上, 以准确率提升10多个百分点的成绩取得了ImageNet竞赛的冠军. 这标志着卷积神经网络逐渐成为了计算机视觉中的图像分类和目标检测领域的主要方法. 计算机视觉技术在当今已经得到广泛应用, 例如车辆检测[3], 人脸识别[4], 自动驾驶[5]等. 解决河流污染问题, 众多的企业和学者提出了自己的解决方法. 腾讯云提出了河道漂浮物识别方案.华为云提出了智能水体(WaterGo)方案. 左建军等[6]提出了水面漂浮物智能监控技术. 唐小敏等[7]提出了基于 SSD 深度网络的河道漂浮物检测技术. 许静波[8]提出了水面漂浮物监测及估算系统. 雷李义等[9]提出基于深度学习的水面漂浮物目标检测方法.

分组卷积, 就是在对特征图进行卷积的时候, 首先对特征图分成小组再卷积. 用g表示分组大小, 与普通卷积比, 分组卷积的参数个数和计算代价都减少g倍.这个g被称为基数, 它与深度和宽度一起描述了模型.分组卷积首先在AlexNet被采用, 目的是将模型分不到更多的GPU资源上, 后来被Deep Roots[10]研究指出卷积组可以更好地学习特征表示, ResNexts[11]提出即使在复杂情况下, 基数g的增加也能够提高分类精度.

注意力机制源于对人类视觉的研究, 人类视觉通过快速扫描全局图像, 获得需要重点关注的目标区域,可以将有限的处理资源分配至重要的部分, 从而获得更多关注区域的相关信息. 在计算机视觉研究中, 主要有两种广泛使用的注意力机制: 空间注意力机制和通道注意力机制, 它们分别用于捕获像素级成对关系和通道依赖性. 注意力机制的意义在近年来得到了广泛的研究. 注意力机制偏向于信息更丰富的特征表达式,从自然语言处理的机器翻译[12]开始使用, 到图像理解的图像字幕[13]都有广泛应用. 在计算机视觉研究中, 主要有两种广泛使用的注意力机制: 通道注意力机制和空间注意力机制, SENet[14]使用两个全连接层建立了一个轻量的门控机制, 通过通道关系来校正特征图. 在空间注意力机制方面, CBAM[15]通过计算特征图中每个空间点之间的相关矩阵引入了空间注意力机制并与通道注意力做了序列组合. 而DANet[16]则是通过对来自不同分支的两个注意模块进行叠加, 实现了两种注意力机制的结合.

3 算法设计

本节是对GCDA模块结构的介绍. 该模块使用一种新的融合方法提升特征提起能力. 首先对输入特征分组, 然后对每组的子特征使用简化的双注意力机制提取特征, 对两种注意力机制进行特征融合后聚合为模块的输出. 使用较少参数增强模块的特征提取能力.本节首先介绍了分组卷积的过程和优点, 然后介绍了双注意力机制的处理和融合, 最后是对模块在其他网络上添加使用的介绍.

3.1 分组卷积的参数量和计算量

分组卷积的合理使用能减少网络的参数量和计算量, 下面我们将介绍分组卷积的实现原理. 如图1所示.

图1(a)为普通卷积示意图, 此时的输入的特征图大小为W ×H×C1, 分为对应的是特征图的宽、高和通道数. 单个卷积核大小是w1×h1×C1, 分为对应单个卷积核的宽、高和通道数. 输出特征图的大小是W ×H×C2,分别对应特征图的宽、高和通道数. 参数量是w1×h1×C1×C1×C2, 计算量w1×h1×C1×C1×C2×W×H.

分组卷积是将普通卷积的输入特征图分成g组,每个卷积核也相应地分成g组, 在对应的组内做卷积,如图1(b), 输入的特征图每组大小为 W ×H×C1/g , 分为对应的是特征图的宽、高和通道数, 共g组. 单个卷积核大小是w1×h1×C1/g, 对应单个卷积核的宽、高和通道数. 输出特征图的大小是W ×H×C2/g, 分别对应的是特征图的宽、高和通道数. 参数量和计算量分别为:可以看出分组卷积的参数量和参数量是普通卷积的

图1 普通卷积和分组卷积示意图

3.2 分组卷积双注意力机制模块

注意力机制的使用能是有效的增加网络的提取特征能力, 通道注意力机制和空间注意力机制的有效结合能进一步提高网络效率, 同时也会带来参数量和计算量的提升. 为解决这一问题, 本文在使用分组卷积的基础上, 根据注意力机制的本质使用简化版的双注意力融合结构, 提出了GCDA模块, 在尽量少增加网络参数的情况下提升网络性能. GCDA结构如图2.

由图2可知, 分组卷积双注意力机制模块由分组、双注意力和聚合3部分组成. 首先, 特征提取的特征图先被分成g个小组. 然后, 每个小的特征图从通道注意力机制和空间注意力机制处理后进行特征融合. 最后, 得到的每个小的特征图在聚合为模块的输出. 网络通过嵌入分组卷积双注意力机制模块, 可以用较少的参数量使网络更关注有意义的特征. 具体的过程可以表示为:

图2 GCDA模块结构图

其中, Fi是 输入特征F的第i个特征组, Fgp是全局池化操作, W1, b1是 通道注意力特征权重和参数, W2,b2是空间注意力特征权重和参数, σ为Sigmoid函数[17],特征融合操作即先求和再做一次卷积, out为GCDA模块的输出特征. 可以看出GCDA模块的输入输出维度都相同的, 这一特点提高了模块对其他网络适用性.

3.3 双注意力机制

下面我们将详细介绍GCDA模块中的双注意力机制的具体结构和流程.

通道注意力, 对于输入是图像的神经网络来说, 一个维度描述的是图像的尺度空间, 另一个维度就是通道. 经过特征提取器提取特征后, 每个通道描述图像的部分特征, 而对于各种类别, 不同特征通道的重要程度也不一样, 所以要给予其不同的权重来表示, 让分类器能够更加关注的正向的特征, 帮助分类器关注对网络有意义的通道.

SENet使用通道注意力机制来实现了效果明显的图像分类, SENet使用全局池化对空间维度进行压缩,经过两次的全连接层和激活函数层实现了通道注意力机制. SENet的目的是最大限度的提升准确性, 两次全连接层使得网路参数量增重. 本文使用了一次全连接层的方式实现了通道注意力机制. 结构如图3所示.

图3 本文通道注意力机制示意图

由图3可知, F为特征向量, 通过简单地使用全局平均池(GAP)来嵌入全局信息, 生成信道统计信息, 它可以通过空间维度收缩来计算, 通过Sigmoid函数激活得到通道注意力机制的输出:

其中, F∈ℜc/g×1×1, s∈ℜC/g×1×1, W1∈ℜC/g×1×1,b1∈ℜC/g×1×1, σ为Sigmoid函数.

空间注意力, 图像中并不是所有的区域对任务的贡献都是同样重要的, 只有与任务相关的区域才是注意的, 对于分类任务的主体, 空间注意力模型就是寻找网络中最重要的部位进行处理. 图像经过特征提取后形成特征图, 空间注意力机制能降低其他信息对分类器的干扰, 从而提升分类性能, 本文使用的空间注意力机制结构图如图4所示.

图4 本文空间注意力机制示意图

由图4可知, F为特征向量, 使用group norm[18]对F进行归一化处理获得空间信息, 在通过卷进操作增强,最后经过Sigmoid激活函数激活获得空间注意力机制的输出.

其中,F∈ℜc/g×1×1, W2∈ℜC/g×1×1, b2∈ℜC/g×1×1, σ为Sigmoid函数.

最后, 是两种注意力机制的特征融合, 我们采用先求和在卷积的方式进行两种特征图的特征融合, 令模块输出的特征结合出两种注意力机制的特征.

其中,W3∈ℜC/g×1×1, b3∈ℜC/g×1×1.

3.4 GCDA模块部署

GCDA模块由于输入和输出的特征图维度相同,可以在神经网络的每个卷积后之后插入, 所以GCDA模块可以集成到GoogLeNet[19]和 ResNet[20]等标准的框架中. 本节最后, 我们以结构比较复杂的ResNet为基础, 介绍一下GCDA模块的部署使用方法. ResNet是由He等[20]提出的网络模型, 目的是解决神经网络的退化现象, 即是模型随着网络结构的深度增加, 会产生梯度消失问题, 导致模型的训练逐渐困难且难于收敛. 这一方法的使用可是极大的加深网络深度, 示意图如图5所示.

图5 ResNet部署GCDA示意图

由图5可以看到, 我们将GCDA模块部署到了ResNet的主干分支中, 使其在与分支求和之前发挥作用. 同时我们在实验部分做了消融实验, 通过在网络上添加不同模块与GCDA模块进行对比实验, 来证明GCDA模块的有效性.

4 实验结果及分析

4.1 实验环境及参数设置

本文实验在Ubuntu 16.04.6 LTS系统下利用Python语言, 在百度飞浆平台完成, 训练框架为PaddlePaddle 2.1.2. 硬件信息为CPU是Intel(R) Xeon(R) Gold 6271C, 内存32 GB, 显卡为Tesla v100, 显存16 GB, 硬盘是100 GB. 实验共设置50 个迭代周期, batch size设置为64, 选用 SGD优化算法[21]训练模型, 动量系数0.9, 学习率设置为0. 01每间隔10个迭代周期学习率衰减0.1倍, 使用交叉熵损失, 定义如下:

其中, M为类别数, yic为 符号函数, pic指观测样本i属于类别c的预测概率.

实验中采用Accuracy, Precision和F1-score作为评价指标, 具体定义如式(9)-式(12)所示:

其中, TP, FP, FN, TN分别为真正例, 假正例, 假反例和真反例.

4.2 数据预处理

本文实验数据源于辽河流域河流水面拍摄图像.我们采用了辽河流域温泉城水站取水口、王营河入细河、高台子断面、津源污水排口和清源污水处理厂溢流口5个河流的监控摄像头连续2个月的拍摄图像,摄像头是固定机位, 每10分钟拍一次图片. 由于晚上没有光源, 我们选取早上8点到下午6点的拍摄图像作为原始数据, 图片分为污染类和未污染类两个大类.总的样本数为8 987张, 污染类3 812张, 未污染类5 170张. 其中训练集6 822张, 验证集1 098张, 测试集1 067张.

结合实际图片和实验结果我们发现直接使用事物原始图像由于拍摄视野较大包含了河道周围的草木行人等干扰因素, 不利于网络对图片的分类. 如图6所示,图6(a)为温泉城水站取水口拍摄图像, 除去河流水面部分还有大面积的草木土地等. 为解决这一问题, 我们决定截取主要河流部分作为输入数据, 如图6(b)所示.由于摄像头机位固定, 拍摄图片的角度和范围是不会变的, 这种方法能保证截取图像始终是同一位置 有利于图像的批量处理, 并且去除了其他干扰因素.

图6 温泉城水站取水口图像截取示意图

为提升数据集的质量, 我们在VGGNet16[22]、GoogLeNet和ResNet50网络上分别对原始图像, 随机截取, 中心截取和固定位截取4种不同处理方法得到的数据集上做二分类对比实验, 结果如表1所示.

表1 不同算法在4种数据集上的 F1-score

由表1可以看出采用固定位截取原始图片的方式在3种网络中都能有效的提高网络的准确率, 证明了本文数据预处理的必要性和有效性.

4.3 消融实验

为证明GCDA模块的融合双注意机制的有效性,我们在实验参数设置相同的情况下, 以ResNet50为基础分别添加空间注意力机制模块、通道注意力机制模块和GCDA模块进行对比实验. 实验数据采用的上文描述的固定位截取方式获取的数据集做二分类任务.训练过程的损失收敛曲线和准确度收敛曲线如图7.

图7 训练过程曲线图

由图7可以看出4种算法在50迭代后趋于收敛,为避免过拟合现象, 我们最终将训练次数设置了50次.添加GCDA模块的ResNet50相比其他3个算法训练效果较好. 然后在测试集进行测试, 并计算混淆矩阵:

根据混淆矩阵采用macro avg方法计算Accuracy,Precision和F1-score三个指标的数值, 具体结果如表2.

由表2可以看出, 添加了GCDA模块的ResNet50网络在Accuracy, Precision和F1-score三个指标上都有明显的提升. 为了更直观地验证GCDA模块的有效性, 我们使用GradCAM[23]在ResNet50的基础上做了可视化的热力图. 如图8所示.

表2 不同模块的实验结果

图8 不同模块的GradCAM可视化图像

由图8可以看出, 添加了GCDA模块的ResNet50网络的热力图集中体现在水面污染物部分. 所以我们提出的GCDA模块能够允许网络关注更多的、具有更多对象细节的相关区域, 从而能有效的提升分类效果.

5 结论与展望

本文针对辽河流域河流水面污染分类困难问题, 将计算机视觉技术中的分组卷积与双注意力机制应用到河流水面污染图像分类的任务中, 结合现有图像制作了一个河流水面污染图像数据集, 提出的GCDA模块使用分组卷积在保证准确率的情况下可以减少计算和参数量, 同时引入简化的双注意力机制使模块能关注更有意义的特征信息, 进一步的提升模块对图像分类的准确率. 通过实验表明在河流水面污染图像二分类任务中使用GCDA模块的ResNet50相较于原始的ResNet50以及分别添加空间、通道注意力机制的网络有明显提升效果, 满足了实际的应用需求, 有良好的应用前景.

猜你喜欢
卷积水面分组
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
水黾是怎样浮在水面的
基于深度卷积网络与空洞卷积融合的人群计数
分组
卷积神经网络概述
每个人的朋友圈里都有一个分组叫“爸妈”
为什么木头可以浮在水面上?
一块水面