2. 集成电路与微系统设计航空科技重点实验室, 西安 710068;
3. 郑州大学 网络空间安全学院, 郑州 450002
2. Key Laboratory of Aviation Science and Technology on Integrated Circuit and Micro-system Design, Xi’an 710068, China;
3. School of Cyber Science and Engineering, Zhengzhou University, Zhengzhou 450002, China
无人机航拍视频图像无论在军事侦察、边境巡航、地图遥感, 还是交通管控、农业耕作等方面颇有应用, 但是因为航拍场景不足以及航拍视频图像在恶劣天气条件下容易受到影响, 导致在机载显示系统的成像效果不佳, 从而对航拍图像的识别会造成一定的不利影响. 因此, 研究无人机航拍视频图像快速识别当前的天气场景类型, 对其后的自适应视频图像清晰化处理极为重要.
传统的天气分类方法使用传感器或者雷达进行数据集采集[1], 其使用范围受限且价格昂贵、成本较高. 随着图像场景分类技术在计算机视觉领域的不断发展, 出现了使用摄像头获取视频图像的天气分类研究. 传统的天气图像分类方法通常需要一定的预处理技术、人工设计特征提取以及特定区域筛选等步骤之后, 利用支持向量机(SVM)、随机森林等分类器进行天气场景分类. 如Chen等人首先标记晴天、多云和阴天3种天气图像的天空区域, 然后对天空区域的纹理特征、颜色特征等进行提取, 最后利用分类器进行天气分类[2]. Li等人通过提取整体图像的噪声、功率谱斜率、对比度和饱和度等特征之后, 训练分类器进而实现图像天气类型的识别[3]. Lu等人提取了图像的天空、阴影、反射、对比度和薄雾5种特征, 实现了晴天和阴天的天气分类[4]. 然而, 这些方法往往因手动提取特征不够全面, 且泛化能力和鲁棒性不好, 会造成图像天气分类效果不佳.
随着卷积神经网络(convolutional neural networks, CNN)在深度学习中的发展, 它已经被用于图像天气分类问题的研究. 如Zhang等人使用CNN来解决天气图像分类问题, 并与传统方法进行比较, 从而证明了CNN在天气分类研究应用上的优越性能[5]. Li 等人提出了一种多特征加权融合方法, 对天气特定特征和CNN特征采用各种权重来学习自适应五类天气条件分类器, 所提出的方法比单独使用CNN特征的方法获得了更好的性能[6]. Kang等人通过经典的GoogLeNet、AlexNet等卷积神经网络对雨、雪、雾3种天气现象的分类, 准确率达到了92%[7].
虽然许多经典CNN模型的提出与改进, 使得人们在天气图像分类等领域取得了一些成果. 但是, 目前天气图像数据集还是比较匮乏的, 而基于CNN进行天气图像分类所需的数据集规模一般都是巨大的, 运算能力有很高要求. 当前, 迁移学习[8]已经在图像分类领域有着很好的应用. 迁移学习可以在大型数据集上把CNN模型训练好之后, 通过一定方式在小规模的目标数据集上经过小幅训练完成目标分类任务. 这样就可以避免因训练数据集不足而导致模型出现的过拟合问题, 还可以对模型的识别准确率和泛化能力有一定的提高.
张珂等人对经典的LeNet、AlexNet、GoogLeNet、ResNet、Xception、SqueezeNet、DenseNet、Xception系列和MobileNet系列等网络模型性能进行分析, 指出经典CNN存在模型参数多、复杂度高等问题, 往往会在速度和资源消耗上很难满足移动设备的应用场景[9]. 因此, 通过考虑对网络进行压缩, 便出现了轻量级卷积神经网络模型. 轻量级的本质就是在保持深度神经网络精度的前提下优化存储空间和提升运行速度[10]. 如陈思玮等人提出了一种基于深度学习的天气场景自动分类模型, 利用迁移学习的DenseNet网络模型实现了沙尘、雾霾、雨、雪、露、霜6类天气场景分类[11].
Google公司在2018年提出一种轻量级CNN模型MobileNetv2网络[12], 它基于MobileNetv1[13]中深度可分离卷积提高运算速度的思想, 引入了线性瓶颈结构(linear bottleneck)和反向残差结构(inverted residual)两种新的架构特性. 其原理是采用先升维再降维的思想, 增强梯度的传播和网络的表达能力, 从而可以让网络对输入的图像提取到更深层的特征信息, 而且运算量也比较小. 在2019年Google公司又提出了EfficientNet 轻量级CNN模型[14], 它通过一个简单且高效的复合系数可以很好地平衡深度(depth)、宽度(width)、分辨率(resolution)这3个维度. 该网络模型利用神经结构搜索可以得到多个轻量翻转瓶颈卷积模块(mobile inverted bottleneck convolution, MBConv), 该模块的内部采用了压缩与激发网络(squeeze-and-excitation network, SENet)注意力机制思想. 轻量级CNN主要从结构和计算两个角度考虑, 与传统的CNN相比, 其计算量和参数量方面都有一定的减小, 符合低内存需求的移动设备应用.
目前通过利用迁移学习方法对EfficientNet和MobileNetv2这两种轻量级CNN进行天气图像场景分类的研究还比较少. 然而, 构建识别准确率高、泛化能力强、尺寸更小的轻量级模型对于移动设备进行天气图像场景分类是非常需要的. 鉴于此, 本文对无人机航拍的多天气场景图像分类问题进行研究, 通过构建航拍图像天气数据集, 提出了一种基于轻量级迁移学习的无人机航拍视频图像天气场景分类模型(以下简称本文模型).
1 天气场景分类模型设计对于无人机航拍视频图像的天气场景分类问题, 主要是充分的提取天气图像特征信息, 并实现准确分类. 本文设计的基于轻量级迁移学习的无人机航拍视频图像天气场景分类模型如图1所示, 其模型设计路线: (1)收集并构建了晴、雨、雪、雾4类面向多场景的航拍图像数据集, 并进行预处理. (2)使用已经在ImageNet数据集上训练好的MobileNetv2和EfficientNet-b0网络作为预训练模型, 并对预训练模型迁移训练, 把最后的分类层设置为4类. 然后设计3个轻量级CNN分支, 将EfficientNet-b0作为主分支对天气图像提取全局特征信息, 用两个MobileNetv2分支分别提取局部区域的天空特征和非天空特征. (3)利用Concatenate函数对这些区域进行特征融合之后, 连接全局平均池化层, 再添加Dropout层. (4)最后, 使用设置为4类的Softmax分类器, 从而完成天气图像场景分类.
2 天气图像数据集 2.1 航拍图像天气数据集来源
Chu等人构建了Image2Weather dataset天气数据集, 包含晴天122071幅、多云48259幅、雪天1484幅、雨天10428幅、雾天1556幅, 这5个类别共有183798幅图像[15]. 虽然这个公开数据集有多个类别的天气, 但是雪天和雾天的图像却相对较少. 如果图像数据集样本数量分布不平衡, 容易导致分类器会更加倾向于数量较多的那类天气(如晴天). Lin等人构建了MWD (multi-class weather dataset)天气数据集, 含有晴、阴、雨、雪、雾、雷电6个类别, 共有65000幅图像[16]. 本文目前没有对阴天、多云、雷电等天气研究, 而是选择了晴、雨、雪、雾4类天气进行图像场景分类.
本研究以航拍图像作为实验数据源, 目前, 公开航拍天气图像数据集非常有限, 故从 Image2Weather dataset和MWD两个公开数据集中筛选了符合本文所需的部分航拍图像, 在网络上收集并筛选了符合的校园航拍、自然风景航拍、城市建筑航拍、交通道路航拍等多场景公开航拍图像, 从而构建了天气图像数据集FWD (four-class weather datasets). 为了符合本文实验目的的需求, 该数据集选择含有天空区域和非天空区域的天气场景图像, 其中天空区域不少于整幅图像的1/5, 这是为了让局部区域独有的深层特征可以被用来识别天气. 数据集FWD的具体来源如表1所示.
该天气图像数据集含有晴天、雨天、雪天、雾天4类图像, 每种天气图像2500张, 样本数量分布均衡且面向多样性的场景. FWD天气图像数据集如图2所示.
2.2 天气图像数据集预处理
针对所使用的FWD天气图像数据集, 利用随机裁剪、中心裁剪的数据增强方法, 先将每幅图像统一裁剪成尺寸大小为384×384像素, 从而对图像进行归一化操作. 同时为了获得局部天气图像信息, 通过采用对半裁剪的方法, 将整幅图像裁剪成384×192像素大小的天空区域和非天空区域. 此外, 把每一类天气数据选择80%的图像用于训练集, 20%作为测试集, 这样能够保证算法准确率符合真实情况.
3 基于轻量级迁移学习的天气场景分类模型
在构建FWD天气图像数据集之后, 对训练数据集的本文模型设计进行研究, 将改进的EfficientNet-b0作为提取整幅图像特征的主分支, 并利用两个MobileNetv2分支用来分别提取天空区域特征和非天空区域特征, 实现天气场景分类模型的设计. 但是所构建的FWD天气图像数据集还是较小规模的, 而深度学习模型往往需要较大规模的数据集, 为了避免在网络学习的过程中出现了过拟合问题. 因此, 考虑使用迁移学习方法在大规模的ImageNet图像数据集上先训练好模型, 并通过权重迁移的形式, 在规模较小的天气图像数据集上花费较短的时间实现较好的分类效果. 本文的迁移学习方法是基于MobileNetv2和EfficientNet-b0这两种轻量级卷积神经网络, 如图3所示, 首先通过对ImageNet数据集进行训练, 能够得到1000分类的预训练模型, 再对模型迁移训练, 使用全局平均池化层, 将输出的特征图再进一步输入到全连接层, 并添加Softmax实现晴天、雨天、雪天、雾天4类图像的新分类器, 然后使用FWD天气图像数据集训练这个新的分类器, 从而把训练好的模型及参数保存, 作为天气图像分类模型训练的初始化参数.
本文研究基于权重的迁移方式, 通常首先冻结预训练网络模型的所有层, 然后逐步解冻靠近输出部分的卷积层, 直接使用其余层的权重, 重新训练未冻结的卷积层和新分类器. 但是由于实验采用的都是轻量级卷积神经网络, 模型参数量都较小, 所以不需要冻结任何层, 而是将每个网络中的参数都进行训练. 这样便可以很好地把权重迁移到本文模型中, 从而实现天气场景分类.
3.1 改进的EfficientNet-b0模型本文实验选用了在ImageNet数据集上已经训练好的EfficientNet-b0网络模型, 并对其MBConv模块中的SENet做了改进. 其模型结构如表2所示. 它由16个MBConv模块、2个卷积层、1个全局平均池化层以及1个分类层组成.
对于EfficientNet-b0模型中的SE模块, 首先对输入的特征图使用squeeze操作进行通道压缩, 然而这样的压缩降维会对学习通道之间的依赖关系造成不利影响. 为此, 本文基于EfficientNet-b0网络模型作为主分支对输入的整体图像进行全局特征提取时, 在SE模块的基础上改进为ECA模块(efficient channel attention, ECA)[17], 可以防止提取天气图像特征后因降维造成的通道与权重关系不对应的问题, 同时又以其轻量级的方式可以高效地实现局部跨通道交互, 从而提取到通道间的依赖关系, 提高网络模型的精度. 其改进后的MBConv结构如图4所示.
该模块结构首先对输入进行1×1的逐点卷积(pointwise convolution, PW), 并根据扩展比例改变输出通道维度, 再进行BN批归一化和Swish激活函数操作. 接着进行k×k的深度卷积(depthwise convolution, DW)之后, 引入了ECA模块, 具体实现如图5所示.
由图5可知, ECANet去掉了SENet中的全连接层, 直接将输入的特征图[H, W, C]进行全局平均池化(GAP)操作, 得到[1, 1, C]的聚合特征. 然后利用激励操作自适应确定卷积核大小, 并将其用于一维卷积操作中, 从而得到各个通道的权重. 如式(1)所示:
$ \omega = \sigma (C1{D_k}(y)) $ | (1) |
其中, ω表示各个通道的权重, C1D表示一维卷积, k表示卷积核大小.
最后, 使用Scale操作将归一化权重和原始输入的特征图相对应元素进行相乘, 进而得到输出的特征图.
在ECA模块之后, 先通过1×1的逐点卷积恢复原通道维度, 然后进行BN批归一化操作, 并使用随机失活Dropout层和输入的跳跃连接, 从而获得最后的特征图.
3.2 MobileNetv2模型本文实验还选用了MobileNetv2网络模型, 其核心是由17个倒置残差模块组成, 网络结构如表3所示. 其中Conv2d为2维卷积操作, Bottleneck为反向残差块, Avgpool 为全局平均池化(AveragePooling)操作, t为瓶颈层内部升维倍数, c表示输出的channel通道数, n表示瓶颈层重复次数, s为步长.
通过采用在ImageNet数据集上已经被训练好的MobileNetv2模型, 并使用了预训练模型的初始权重及结构, 在FWD数据集上直接应用. 该网络模型为全卷积的, 可以适应不同尺寸的图像. 本文把输入的整体图像先对半分为384×192大小的天空和非天空两个区域后, 利用两个轻量级迁移学习的MobileNetv2分支, 分别提取天空区域特征和非天空区域特征(如地面植被、道路或建筑物等), 进而可以提取到局部区域更深层的天气特征信息.
通过上述研究工作, 设计了基于轻量级迁移学习的无人机航拍视频图像天气场景分类模型, 采用3个轻量级迁移的CNN分支分别对整幅图像、图像的天空区域和非天空区域进行特征提取, 利用Concatenate函数按通道维度将这3个区域提取到的特征图进行融合. 接着通过7×7的全局平均池化操作得到相应的特征图, 然后将特征图输入到全连接层, 并使用Dropout层来防止过拟合, 提高模型的泛化能力. 最后, 连接Softmax层实现对晴、雨、雪、雾4类天气场景的分类.
4 实验结果及分析 4.1 实验环境本研究网络模型实验的软件环境和硬件环境如表4所示.
4.2 评价指标
准确率(Accuracy)表示预测正确样本数与测试样本总数的比值, 可以用来衡量模型总体分类精度. 如式(2):
$ { Accuracy }=\frac{T P+T N}{T P+F N+F P+T N} $ | (2) |
其中, 预测为正的结果一般就两个可能, 一个是将正类预测为正类(TP), 另一个就是将负类预测为正类(FP). 而预测为负的结果也同样有两种可能, 一种是把正类预测为负类(FN), 另一种预测负类为负类(TN).
此外, 对于损失函数使用交叉熵, 它可以用来表示真实概率和预测概率这两种不同概率分布之间的差异, 若交叉熵的值越小, 说明模型分类的结果越好. 如式(3)所示:
$ L = \frac{1}{N}\sum\nolimits_i {\sum\nolimits_{c - 1}^M {\mathop y\nolimits_{ic} } } \log (\mathop p\nolimits_{ic} ) $ | (3) |
其中, M为天气类别数量, yic为符号函数(0或1), 若样本i的真实类别为c取1, 否则就取0, Pic为观测样本i属于天气类别c的预测概率.
4.3 实验参数设置为了让本文模型可以取得一个较好的效果, 通过对天气图像数据集FWD进行了一系列的实验, 进而对超参数做了统一化. 首先设置学习率(learning rate)和训练样本批大小(batch_size), 然后对其他参数进行调参优化. 本文模型采用指数标尺分别选取了0.001、0.01、0.1作为学习率进行实验, 最终将learning rate设置为0.001. 对于学习率的大小设置, 会影响模型的权重更新速度. 本文实验受限于硬件设备条件的影响, 对于batch_size选择了4、8、14分别进行了实验, 最终将batch_size设置为14. 一般batch_size都会选择较大, 但是太大了也容易导致其泛化能力变差. 训练迭代次数epoch设置为200. 本文网络模型训练使用了Adam优化器来优化损失函数, 该优化器应用于大规模数据和参数优化有着较好的优势. 经过交叉验证, 把Dropout参数设置为0.2.
4.3.1 实验结果通过对本文模型的实验, 下面是其可视化的预测结果, 如图6所示.
为了知道本文模型的天气分类情况, 构造了2000张测试集, 每类天气500张, 用来统计每类天气分类的识别准确率. 测试结果混淆矩阵如表5所示.
由表5混淆矩阵可知, 雾天识别率为97.8%, 雨天识别率为97.2%, 雪天识别率为98.8%, 而晴天识别率稍微低一些, 仅为95.4%, 这可能是由于无人机处于高空拍摄时受到天气的一定影响(如空气湿度). 然而总体识别率达到了97.3%, 对于天气场景分类有较好的结果.
4.3.2 实验对比与分析为了说明本文所构建的天气场景分类模型效果, 选择与其他网络模型进行实验对比, 它们都在相同的FWD数据集进行训练, 模型的训练参数相同、迭代次数相同以及相同的软硬件环境, 比较各自的准确率.
首先, 通过单分支形式的轻量级卷积神经网络模型, 对比了DenseNet、MobileNetv2、EfficientNet-b0、迁移学习的DenseNet (简称TL-DenseNet)、迁移学习的MobileNetv2 (简称TL-MobileNetv2)和迁移学习的EfficientNet-b0 (简称TL-EfficientNet-b0)等6种网络模型, 它们都是对整幅天气图像进行特征提取, 来实现天气场景分类. 其实验结果比较如表6所示.
由表6可以看出, 与传统的轻量级CNN相比, 基于迁移学习的轻量级CNN表现的效果较好一些. 对于传统的轻量级卷积神经网络模型对小规模FWD数据集的特征能力表现不佳, 而基于ImageNet迁移学习的轻量级CNN提取特征能力强大, 可以更好地挖掘数据特征, 进而使天气图像数据获得准确分类. 为此, 对基于迁移学习的EfficientNet-b0和基于迁移学习的MobileNetv2进行研究, 并与陈思玮等人[11]采用基于迁移学习的DenseNet网络在FWD天气图像数据集进行实验对比. 通过实验结果表明, 虽然基于迁移学习的DenseNet网络特征提取能力也比较强大, 取得了89.87%的识别率, 但是基于迁移学习的MobileNetv2取得了90.92%的识别率, 基于迁移学习的EfficientNet-b0取得了92.51%. 基于迁移学习的这3种网络模型分别对天气图像分类表现出了一定的效果提升, 但是它们往往只考虑了以单分支的网络结构对整幅图像进行全局特征提取, 忽略了天空区域和非天空区域更深层的天气特征信息.
为此, 本文模型又对比了基于迁移学习的MobileNetv2和基于迁移学习的EfficientNet-b0两种轻量级CNN组合设计的多分支网络模型, 该多分支网络模型将具有SENet注意力机制的EfficientNet-b0作为主分支对整幅天气图像进行特征提取, 并利用两个MobileNetv2分支分别提取天空区域和非天空区域的特征信息. 其比较结果如表7所示.
由表7可以看出, 多分支网络模型MobileNetv2+EfficientNet-b0对天气识别准确率为95.96%, 与表6的单分支网络模型相比, 表现效果较好. 但是采用了ECANet改进后的本文模型识别准确率达到了97.3%, 与MobileNetv2+EfficientNet-b0相比, 有着一定的精度提升. 相比SENet来说, ECANet的思想和运算都极为简便, 可以让模型在训练的过程中更加关注于天气特征信息比较重要的通道上, 抑制其他相对比较弱的通道信息.
通过对实验的分析, 本文模型既考虑了天气图像的天空区域和非天空区域这些局部独有的深层特征, 也考虑了天气图像的全局特征. 而且, 还采用了ECANet注意力机制避免降维造成的不利影响, 提高了模型的精度. 因此, 本文模型可以更好地学习天气图像有用的特征信息, 进而提高模型的识别准确率和鲁棒性, 对天气图像分类表现出了一定的有效性和优越性.
5 结论与展望本文通过迁移学习方法可以很好地解决航拍天气图像训练数据规模较小的问题, 减少模型训练时间, 进而提高模型的识别准确率和泛化能力. 同时得益于MobileNetv2和EfficientNet-b0都具有轻量级网络结构, 模型大小与参数数量都很小. 通过基于轻量级迁移学习的无人机航拍视频图像天气场景分类模型, 在构建的FWD数据集实验中识别准确率达到了97.3%, 表现出较好的分类效果.
总体而言, 本文模型设计的目的是为了应用于无人机这类可移动设备识别出当前的天气场景类型之后, 可以方便进行自适应视频图像清晰化处理(如识别出雾天, 调用视频图像去雾方法进行实时处理). 在未来的工作中, 还可以考虑如雷电、沙尘等恶劣天气条件, 为实现全天候的无人机航拍天气场景进行研究.
[1] |
Rivero JRV, Gerbich T, Teiluf V, et al. Weather classification using an automotive LIDAR sensor based on detections on asphalt and atmosphere. Sensors, 2020, 20(15): 4306. DOI:10.3390/s20154306 |
[2] |
Chen ZC, Yang F, Lindner A, et al. How is the weather: Automatic inference from images. Proceedings of 2012 19th IEEE International Conference on Image Processing. Orlando: IEEE, 2012. 1853–1856.
|
[3] |
Li Q, Kong Y, Xia SM. A method of weather recognition based on outdoor images. Proceedings of 2014 International Conference on Computer Vision Theory and Applications. Lisbon: IEEE, 2014. 510–516.
|
[4] |
Lu CW, Lin D, Jia JY, et al. Two-class weather classification. Proceedings of 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus: IEEE, 2014. 3718–3725.
|
[5] |
Zhang Z, Li DH, Liu S. Salient dual activations aggregation for ground-based cloud classification in weather station networks. IEEE Access, 2018, 6: 59173-59181. DOI:10.1109/ACCESS.2018.2874994 |
[6] |
Li ZQ, Li YX, Zhong JD, et al. Multi-class weather classification based on multi-feature weighted fusion method. IOP Conference Series: Earth and Environmental Science, 2020, 558: 042038. DOI:10.1088/1755-1315/558/4/042038 |
[7] |
Kang LW, Chou KL, Fu RH. Deep learning-based weather image recognition. Proceedings of 2018 International Symposium on Computer, Consumer and Control (IS3C). Taichung: IEEE, 2018. 384–387.
|
[8] |
徐小平, 余香佳, 刘广钧, 等. 利用迁移学习和焦点损失卷积神经网络的石墨分类. 计算机系统应用, 2022, 31(3): 248-254. DOI:10.15888/j.cnki.csa.008378 |
[9] |
张珂, 冯晓晗, 郭玉荣, 等. 图像分类的深度卷积神经网络模型综述. 中国图象图形学报, 2021, 26(10): 2305-2325. DOI:10.11834/jig.200302 |
[10] |
Zhang ZH, Wang YY, Lu T, et al. Enhanced lightweight neural networks for plant disease classification. Proceedings of 2021 4th International Conference on Robotics, Control and Automation Engineering (RCAE). Wuhan: IEEE, 2021. 55–59.
|
[11] |
陈思玮, 贾克斌, 王聪聪, 等. 深度学习在多天气分类算法中的研究与应用. 高技术通讯, 2020, 30(10): 1010-1017. DOI:10.3772/j.issn.1002-0470.2020.10.003 |
[12] |
Sandler M, Howard A, Zhu ML, et al. MobileNetv2: Inverted residuals and linear bottlenecks. Proceedings of 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 4510–4520.
|
[13] |
Howard AG, Zhu ML, Chen B, et al. MobileNets: Efficient convolutional neural networks for mobile vision applications. arXiv:1704.04861, 2017.
|
[14] |
Tan MX, Le QV. EfficientNet: Rethinking model scaling for convolutional neural networks. arXiv:1905.11946, 2019.
|
[15] |
Chu WT, Zheng XY, Ding DS. Camera as weather sensor: Estimating weather information from single images. Journal of Visual Communication and Image Representation, 2017, 46: 233-249. DOI:10.1016/j.jvcir.2017.04.002 |
[16] |
Lin D, Lu CW, Huang H, et al. RSCM: Region selection and concurrency model for multi-class weather recognition. IEEE Transactions on Image Processing, 2017, 26(9): 4154-4167. DOI:10.1109/TIP.2017.2695883 |
[17] |
Wang QL, Wu BG, Zhu PF, et al. ECA-Net: Efficient channel attention for deep convolutional neural networks. Proceedings of 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Seattle: IEEE, 2020. 11531–11539.
|