基于残差Swin Transformer的天气图像识别技术研究

2023-11-17 03:01张卓然
成都信息工程大学学报 2023年6期
关键词:天气现象残差天气

张卓然,张 倩,宋 智,何 嘉

(1.成都信息工程大学计算机学院,四川成都 610225;2.活跃网络(成都)有限公司,四川成都 610000;3.四川省气象探测数据中心,四川成都 610072)

0 引言

从户外活动到工业生产,天气在人类活动中起着十分重要的作用。如在雾、雪、暴雨、沙尘暴等极端天气条件下,会出现模糊、光滑、湿润的道路情况,导致交通堵塞甚至造成交通事故。通过对天气现象的实时监控并结合交通信息,可以有效地避免这些情况的产生。此外,不同的天气现象也极大地影响着农业生产,准确地对天气现象进行识别,有助于保障农作物的生长。

在传统的天气识别中,主要是依靠各种传感器和人工采集结果来测量温度、湿度和天气状况。由于传感器成本普遍较高,又需要定期进行人工维护,导致不能大范围地布置传感器,从而使部分区域的天气预报不准确。

随着深度学习的发展和摄像头的普及,通过获得天气图像来进行天气识别将成为计算机视觉一个重要的应用。近年来,Lu 等[1]采集并创建了一个基于晴天和阴天的天气数据集,通过分别提取天空、阴影、反射、对比度和模糊5 个天气特征,提出协作学习框架进行天气分类。Song 等[2]通过提取图片本身的特征并结合K-NN 算法实现了对晴天、雨天、雾天和雪天的识别。上述方法均是采用机器学习,未能准确地学习天气图像的特征,对天气现象的识别效果不够理想。

自2012年AlexNet[3]在ImageNet 大规模视觉识别挑战赛取得成功以来,卷积神经网络(CNN)被广泛应用到天气现象识别领域。Lin 等[4]提出一种面向多类别天气识别的区域选择和并发模型的深度学习框架,但该方法性能开销过大、时效性差且平均准确率低。Zhao 等[5]提出一种基于CNN-RNN 的多类别天气识别方法,但该方法需要大规模的数据集作为支持,且只能在高端GPU 上进行训练,计算代价非常昂贵。Wang等[6]提出一种基于轻量级卷积神经网络的天气识别方案,该方案虽然节省模型的内存开销,但降低了天气识别的准确度。Tan 等[7]通过一种三通道卷积神经网络对常见的6 种天气现象进行有效识别,但只考虑了少数的天气类别。此外,Xiao 等[8]在VGG16 的基础上提出一种针对11 种天气现象的网络MeteCNN,然而在个别类别识别率较低,没有达到很好的效果。

上述方法虽然运用了不同的CNN 模型,但都忽视了图像的全局信息,随着网络的加深会产生梯度消失的问题,同时感受野在一定程度上受局限。2021年研究人员提出一个适用于图像分类的Transformer 模型ViT[9],并在ImageNet 数据集获得了出色的结果。相比于CNN 模型的平移不变性、局部敏感性和特征之间依赖关系差,Transformer 模型的自注意力(self-attention,SA)不受局部相互作用的限制,可以根据不同的任务目标学习最合适的归纳偏置[10]。

针对以上问题,本文尝试将视觉Transformer 应用到天气现象识别领域,选取一种利用滑动窗口操作、具有层级设计的Swin Transformer 网络结构[11]作为基础网络,并在其基础上加入残差结构和先进的优化器来增强模型的学习能力。实验结果表明,本文方法与其他识别方法相比具有更高的识别精度。

1 网络结构

本文提出一种基于残差结构的Swin-Transformer网络模型用于天气图像的识别,该模型由图像块分割层、线性嵌入层、图像块合并层、残差窗口自注意力块(residual swin transformer block,RSTB)、归一化层(layer norm,LN)、自适应平均池化层、全连接层组成。网络结构图如图1(a)所示。

图1 基于残差Swin Transformer的天气图像识别网络结构

模型首先通过图像块分割层将输入的RGB 天气图片划分为多个不重叠的patch,每个patch 的大小为4×4,特征维度为4×4×3=48,经过4 个阶段构建不同大小的特征图。其中只有第1 阶段通过线性嵌入层将特征投影到任意维度C,后3 个阶段通过图像块合并层进行下采样,使特征图的宽和高缩小一半,通道数扩大1 倍。接着,使用RSTB 模块进行特征变换,这个模块由一个残差结构连接不同数目的窗口自注意力块(swin transformer block,STB)模块构成。最后,经过一个归一化层、一个自适应平均池化层和一个全连接层后输出天气图像的类别。

1.1 窗口自注意力块

窗口自注意力块由1 个多头自注意力机制(multihead self-attention,MSA)和1 层多层感知机(multi-layer perceptron,MLP)组成,在MSA 和MLP 之间需要应用一个LN 层,之后应用一个残差连接。MSA 拥有两种不同的结构:窗口多头自注意力机制(windows multihead self-attention,W-MSA);移动窗口多头自注意力机制(shifted windows multi-head self-attention,SW-MSA)。

如图2(a)所示,MSA 在计算过程中需要对特征图中的每个像素进行运算,这种操作增加了整个模型的计算量。W-MSA 模块将特征图按照大小为M×M将大小为H×W的图像划分成多个窗口,然后单独对每个窗口进行自注意力计算,从而减少模型的计算量。MSA 和W-MSA 的计算复杂度如下:

图2 移动窗口重组示意图

Ω(MSA)=4HWC2+2(HW)2C

Ω(W-MSA)=4HWC2+2M2HWC

由于单一使用W-MSA 会出现不同窗口之间缺乏信息交互,这限制了模型的能力。因此,需要在W-MSA之后引入SW-MSA 进行跨窗口连接,同时可以保持非重叠窗口的高效计算,SW-MSA 的跨窗口连接重组如图2所示。首先,将W-MSA 的4 个窗口通过滑动窗口变为SW-MSA 的9 个窗口,且这9 个窗口大小不一致。为方便后续计算需要将SW-MSA 的9 个窗口重新整合成与原W-MSA 窗口大小一致的4 个窗口,再使用掩膜Mask隔绝不同区域的信息,最后将窗口还原。

故STB 模块必须成对使用,第1 个模块使用WMSA,第2 个模块使用SW-MSA,2 个连续的STB 模块如图2(b)所示。

1.2 残差窗口自注意力块

在天气识别任务中,为使网络获取更多有用信息,就需要对特征进行充分的提取和利用。在之前的研究中,天气识别任务通常使用卷积神经网络进行识别,而卷积神经网络通常使用残差连接[12]和稠密连接[13]提高网络性能,减少因模块堆叠、网络过深而造成的模型退化问题。由式(1)可知,W-MSA 计算复杂度与通道数成正比关系,而稠密连接使用过多会极大地增加通道数。故本文将在STB 模块堆叠之间引入残差连接,并将改进后的堆叠STB 模块称为RSTB,其结构如图1(b)所示。

根据上述数据可知,路面竣工后空隙率、稳定度和流值均满足规范要求,面层结构为灌入式半柔性面层,且与基层结合很好。说明该半柔性路面施工技术的应用,能有效保证路面施工质量要求。

2 损失函数和优化器

2.1 交叉熵损失函数

模型训练中需要使用损失函数来衡量模型的效果,进而改进模型参数的质量。本文使用的损失函数是交叉熵(CrossEntropy),主要用于度量两个概率分布之间的差异性,值总是大于等于0。其值越接近于0,就代表两个分布越相似。其数学公式:

式中:N代表样本总数,M代表类别的数量;yic代表符号函数(0 或1),如果样本i的真实类别等于c则取1,否则取0;pic代表样本i属于类别c的预测概率。

2.2 Ranger 优化器

Ranger 优化器[14]结合了RAdam[15]和Lookahead[16]两种优化器。RAdam 为优化器的初期训练提供最好的基础,用一个动态整流器调整Adam 的自适应动量,并有效地提供一种基于当前数据集的自动训练预热机制,以确保训练迈出扎实的第一步。Lookahead 的灵感来自对深度神经网络损失曲面的理解,并为在整个训练过程中进行健壮和稳定的探索提供突破。本文选择的Ranger 优化器将两者结合起来,这样可以获得更高的精度。

3 实验数据集

3.1 数据集介绍

模型训练和测试所使用的数据集来自文献[8]所开源的天气现象数据集。该数据集包含6877 张具有代表性和独特的天气现象图像,每张图像的大小不定,被分为11 种常见的天气现象,如图3所示。其中,数据集由露水(700 张)、雾/霾(855 张)、霜(475 张)、雨凇(639 张)、冰雹(592 张)、闪电(378 张)、雨(527张)、彩虹(238 张)、雾凇(1160 张)、沙尘暴(692 张)和雪(621 张)组成。

图3 数据集展示

为方便算法的训练和验证,在训练前先把图像顺序打乱,然后按8 ∶1 ∶1 的比例分为训练集、验证集和测试集,它们之间不会出现重复的图像。

3.2 数据增强

由于视觉Transformer 网络十分依赖数据量,为抑制模型学习过程中因数据量过少而造成的过拟合问题,本文算法在模型训练过程中对训练图像进行一系列的数据增强处理。包括:将天气图片调整为256×256后对图像进行随机裁剪到224×224、水平翻转、水平移动和Cutout 方法,原始图像经过数据增强后的效果如图4所示。采用这种方法图像会在形态上发生变化,模型在学习过程中不会使用任意两张相同的图像,这有利于抑制过拟合,提高模型的鲁棒性和泛化能力。

图4 数据增强展示

4 实验

4.1 实验环境

实验在DELL Precision 7920 塔式工作站开展,配置为:CPU:Intel(R)Xeon(R)Silver 4210,125 GB内存,GPU:NVIDIA TITAN RTX,24 GB 显存,Ubuntu 16.04 LTS 64 位操作系统,Python3.8,PyTorch1.10.2。

4.2 实验细节

使用加入残差结构的Swin Transformer 网络进行训练,采用迁移学习的方法,将Swin Transformer 网络在ImageNet 数据集上预训练的权重迁移到改进模型。为能正确识别出数据集中的所有类别,将模型最后的FC 层改为11 个输出,预训练模型的所有层均设置为可训练。训练过程使用Ranger 优化器,初始学习率为3×10-5,将单次训练所取样本数设为64 张图片,共训练的迭代次数为300 个。最终,选择验证集上正确率最高的模型进行测试实验,并重复实验10 次,将10 次的平均值作为模型最终结果。

4.3 模型评价指标

对于一个多分类任务,可以将每一种类别样本预测结果分为4 种:TN(True Negative),表示把负样本正确地预测为负样本;FN(False Negative),表示把正样本错误地预测为负样本;TP(True Positive),表示把正样本正确地预测为正样本;FP(False Positive),表示把负样本错误地预测为负样本。针对模型效果的评价,本文采用以下评价指标。

准确率P(Precision)指在被判定为正的样本中,实际上为正样本所占的比例。公式如下:

召回率R(Recall)指原本为正的样本中被判定为正的样本所占的比例。公式如下:

F1分数(F1-measure)指准确率P 和召回率R 的调和平均值。公式如下:

正确率Acc(Accuracy)指所有样本中分类结果正确的样本所占的比例。公式如下:

宏观准确率ma_P(macro-average of Precision)指各类别准确率的平均值,公式如下:

宏观召回率ma_R(macro-average of Recall),指各类别召回率的平均值,公式如下:

宏观F1分数ma_F1(macro-average of F1score)指各类别F1分数的平均值,公式如下:

上述评价指标的值都在0~1。准确率、正确率、召回率和它们的宏观平均值越高,代表模型的分类性能越好。

4.4 实验结果分析

4.4.1 Swin Transformer 选择实验

由于Swin Transformer 提出4 个网络模型,即Swin-T、Swin-S、Swin-B、Swin-L,为更好地建立适合本文数据集的分类模型并从模型部署和性能方面考虑,本文分别使用Swin-T、Swin-S、Swin-B 来构建天气识别模型,并从中选出一个正确率最高的模型来做实验的基础模型。实验结果如表1所示,从表1 可以看出Swin-B 具有更好的精度优势。

表1 Swin Transformer 模型选择实验

4.4.2 残差模块嵌入实验

为验证在堆叠STB 模块之间加入残差结构的有效性,对原Swin-B 模型和加入残差结构的Swin-B 模型进行对比实验,实验结果如表2所示。从表2 可以看出,加入残差结构的Swin-B 模型相对原模型的正确率显著提高。

表2 残差模块的消融实验

4.4.3 优化器对比实验

由于优化器在深度学习过程中扮演着重要的角色,本文设计了基于残差Swin-B 模型的5 个优化器对比实验,使用的优化器分别为SGD、RMSprop、Radam、AdamW、Ranger,结果如表3所示。由表3 可知,在残差Swin-B 模型的基础上使用Ranger 优化器可以使识别结果达到0.936的正确率,同时,进一步证明了该优化器的优点。

表3 优化器对比实验

4.4.4 本文方法与其他模型对比实验

表4 显示了本文方法与一些主流模型的性能对比。在WEAPD 数据集上,总体分类最佳结构是本文方法,正确率为93.64%。同时,该模型的宏观准确率、宏观召回率和宏观F1分数为94%左右,均超过其他模型。

表4 本文方法与其他模型结果对比

4.4.5 方法结果

本文方法的评价指标结果如表5所示,实现了对11 种天气现象的有效分类,特别是对冰雹、雷暴、沙尘暴、雪这些极端天气能够准确识别。

表5 本文方法的分类性能展示

为进一步证明残差Swin Transformer 模型对天气现象分类的性能,使用混淆矩阵来说明分类精度,如图5所示。

图5 本文模型的混淆矩阵

5 结束语

本文尝试将视觉Transformer 应用到天气图像识别领域,并提出一个基于残差结构的Swin Transformer模型,该模型可以很好地学习天气现象的特征。实验结果表明,本文所提出的模型对天气现象识别是有效的,且能避免因主观误差造成的错误,优于多数深度学习方法。虽然天气图像存在相似性、复杂性等问题,但总体来说,残差Swin Transformer 模型的识别正确率达93.6%,能够满足日常生活的需要。因此,本文所提出的模型可以广泛应用于天气现象的日常观测,也可为环境监测、农业和交通运输提供天气指导,特别在天气变化和预报方面。

由于本文是在Swin-B 模型的基础上加入残差结构,Swin-B 网络模型参数较多,对计算机的性能要求较高,这对天气识别模型的时效性提出了挑战。后期研究中将考虑使用知识蒸馏、网络剪枝等思想对模型进行优化,在保证网络性能不变的情况下,提高时效性,实现一个轻量级天气识别模型。

猜你喜欢
天气现象残差天气
基于双向GRU与残差拟合的车辆跟驰建模
《奇怪的天气:关于天气的50个秘密》
天气冷了,就容易抑郁吗?
基于残差学习的自适应无人机目标跟踪算法
谁是天气之子
盛暑天气,觅得书中一味凉
基于递归残差网络的图像超分辨率重建
与龙卷风共舞
Weather(天气)
新巴尔虎左旗常见天气现象分析