薛超培,唐春晖
(上海理工大学光电信息与计算机工程学院,上海 200093)
我国台风灾害有次数多、季节性强、受灾程度重、影响范围广等特征[1],准确的监测预警可降低台风造成的灾害。
为了更好地对台风进行监测,必须对台风中心进行定位,而台风云系识别是台风中心定位的基础。近年来台风云系识别方法包括传统图像处理方法[2-3]和基于深度学习的目标检测方法[4]。
传统图像处理方法进行台风云系识别首先需要设置阈值对云系进行分割,再通过纹理特征等进行台风云系识别,由于阈值选择困难,自动化能力较弱,导致识别精度不高。
由于计算机硬件水平的提高,基于深度学习的目标检测算法成为研究热点。深度学习方法以卷积神经网络(Convolutional Neural Network,CNN)为基础,相较于传统算法可以学习并提取图像中的深层特征,不需要人为干预,具有更强的泛化能力与自动化能力。基于深度学习的目标检测算法通常按是否生成候选区域分为一阶法(One stage)和二阶法(Two stage)两种。一阶法的代表网络为SSD(Single Shot MultiBox Detector)[8]和YOLO(You Only Look Once)[9]及其优化算法YOLOv2[10]、YOLOv3[11]等。二阶法的代表网络为区域卷积神经网络(Region Convolutional Neural Network,RCNN)[5]及其优化算法快速区域卷积神经 网 络(Fast Region Convolutional Neural Network,Fast RCNN)[6]和更快的区域卷积神经网络(Faster Region Convolutional Neural Network,Faster RCNN)[7]。一阶法的优势在于检测速度快,但检测精度略低,二阶法的优势在于检测精度高,但检测速度较慢。
由于台风各个阶段尺寸与纹理结构差异较大,存在识别难度大、准确率低的问题,同时鉴于传统的图像处理算法的鲁棒性、准确性等问题,本文选择Faster RCNN 作为台风云系识别基础框架。但直接采用原始的Faster RCNN 进行台风云系识别可能存在锚框尺寸与比例选取不合理而导致的模型退化、感兴趣区域池化层的两次量化导致候选框信息丢失,以及训练过程中候选区域的正负样本的失衡而导致模型准确率较低。
针对原始的Faster RCNN 在台风云系识别中存在的问题,本文提出改进的Faster RCNN。首先分析ResNet-50[12]、ResNet-101[12]及其改进版本Res2Net101[13]这3 种特征提取网络,选择合适的特征提取网络,再通过改进锚框生成的尺寸和比例,优化区域建议网络、利用感兴趣区域对齐算法(ROI Align)[14]替代之前的感兴趣区域池化(ROI Pooling)算法,降低由于量化导致的信息丢失问题。在训练过程中引入在线困难样本挖掘(Online Hard Example Mining,OHEM)[15]机制,解决训练过程中样本不平衡问题,优化目标模型以提高台风云系识别的准确率。
本文基于Faster RCNN 模型对卫星云图进行台风云系识别,识别模型如图1 所示。
Fig.1 Typhoon cloud system recognition model based on Faster RCNN图1 基于Faster RCNN 的台风云系识别模型
对于一张输入图像,模型首先通过卷积神经网络提取图像特征并生成特征图。区域建议网络(Region Proposal Network,RPN)提取卷积神经网络最后一层特征图,使用卷积核遍历特征图,将特征图中各个像素点映射原图并设置k 个锚(anchor)框生成多个候选框;再使用Softmax 函数判断各个候选区域为前景或者背景的概率,利用SmoothL1 函数对候选框的位置进行调整,使得候选框与真实框更接近从而生成候选区域。感兴趣区域池化层接收卷积神经网络生成的特征图和区域建议网络生成的候选区域,将区域建议网络根据原图生成的不同尺寸候选区域映射到特征图对应位置,再通过极大值池化生成固定大小的候选区域特征图,然后再次利用Softmax 函数计算候选区域类别,同时利用SmoothL1 函数得到边框的准确位置。Softmax 函数定义如下:
其中,ai表示第i节点的输出值,N为输出节点的个数。
SmoothL1 函数定义如下:
式中,x表示真实框和候选框的坐标差值。
为使Faster RCNN 模型能更好地应用于台风云系识别,选择合适的特征提取网络有助于模型收敛。残差网络不仅能加速超深神经网络训练,而且可以大幅提升深度网络准确率,在很大程度上避免了随着网络层数的增加而产生的梯度消失或梯度爆炸问题[16]。鉴于残差网络优点,本文采用残差网络作为特征提取网络。首先分析ResNet-50、ResNet-101 和Res2Net101 这3 种残差网络在台风云系识别任务中的性能,在原始Faster RCNN 基础上优化区域建议网络、改进感兴趣区域池化网络以及在训练过程中采用在线困难样本挖掘策略来提高模型性能。
1.2.1 区域建议网络优化
RPN 中的锚框数量与比例是网络很重要的参数,该参数直接影响后续的候选区域生成。原始的Faster RCNN 在每个滑动窗口生成3 个不同尺寸(128×128,256×256,512×512)和3 个不同宽高比(1∶2,1∶1,2∶1)共计9 个候选区域,最后使用非极大值抑制算法剔除多余的候选区域。本文数据集中,台风各个时期的直径不会超过200,具有类圆形形状特点,原始模型的锚框参数并不契合台风云系识别任务。因此,将原始参数中尺寸大小为512×512 的锚框删除,并将原始参数中的长宽比1∶2 和2∶1 的参数删除,最终形成2 个锚点,尺度大小分别为(128×128,256×256),长宽比为1∶1。实验证明,本文设置的锚框参数可以更好地契合台风目标尺寸,提高模型性能。
1.2.2 改进感兴趣区域池化网络
RPN 生成的候选区域是根据原图生成的,ROI Pooling层需要接收RPN 网络生成的不同尺寸候选区域并映射到特征图中,进而生成固定大小的特征图用于后续的分类和回归。在原始的Faster RCNN 中,ROI Pooling 在将候选区域映射特征图过程中进行了一次量化操作,在将特征图中的候选区域部分生成固定大小的特征图时又进行了一次量化,两次量化操作将导致候选区域产生一定的误差,进而影响后续的分类与回归。本文采用ROI Align 算法替代原ROI Pooling 算法,ROI Align 在候选区域映射特征图及生成固定大小的特征图过程中均保留浮点数,最后通过双线性插值方法求得最终固定大小特征图中的像素值。实验证明,采用ROI Align 能较大地提升模型性能。
1.2.3 在线困难样本挖掘机制
在Faster RCNN 模型训练过程中,RPN 网络生成多个候选区域。由于台风在图像中通常仅有一个目标,并且目标在图像中所占比例不大,导致生成的候选区域大多数为负样本,正负样本存在严重的不平衡现象。因此,在原始的Faster RCNN 训练过程中,RPN 网络生成大约2 000 个候选区域,其中大多数为负样本,ROI Pooling 层随机抽取其中的128 个候选区域进行分类与回归训练,通常设置正负样本比例为1∶3,这样可以在一定程度上平衡正负样本失衡现象。但由于随机挑选样本存在一定的随机性,抽取的样本中存在很多无用样本,导致模型容易产生漏检和误检。
为解决正负样本的不平衡现象,加强对损失较大的困难样本的训练,提高模型性能,本文将OHEM 引入Faster RCNN 网络训练过程中,在不需要人为设置正负样本的前提下对困难样本进行挑选和训练,提高模型性能。引入OHEM 的Faster RCNN 模型如图2 所示。
Fig.2 RCNN network model after introducing online hard example mining图2 引入OHEM 的Faster RCNN 网络模型
将Faster RCNN 中感兴趣池化层和后续的分类网络称为感兴趣区域网络,将OHEM 机制应用于Faster RCNN 感兴趣区域网络中,做法为扩展一个感兴趣区域网络。扩展后的感兴趣区域网络与原始的感兴趣区域网络共享参数,它提取RPN 网络生成的所有候选区域,只进行前向传播计算边框回归和分类损失,最后按损失大小排序挑选出困难样本(本文设置的困难样本个数为128 个)。原始的感兴趣区域网络接收扩展的感兴趣区域网络挑选出的困难样本,进行前向和反向传播进而优化分类网络参数。OHEM 机制在不需要人为设定正负样本比例的前提下解决了正负样本不平衡问题,并针对较难学习的困难样本进行学习,进一步提高了模型性能。实验发现该机制增强了模型的判别能力,提高了模型精度。
本文选用FY-4A 星多通道扫描成像辐射计(AGRI)的中国区域L1 级数据,数据格式为HDF,数据来源于国家卫星气象中心。此数据含有14 个通道数据,波长为0.47~13.5μm,分辨率为0.5~4.0km。
通道12 位于大气窗区,波长为10.8μm,分辨率为4km,可以全天观测地球表面和云顶温度[17]。本文根据各通道特点选择使用云层丰富的长波红外12 通道数据。HDF 文件主要包含NOMChannel 图像数据层、CALChannel 定标表和其他参数指标。为生存合适的图像数据,本文首先将文件中的定标表映射图像数据层,再根据国家气象卫星中心提供的数据行列号和经纬度的互相转换方法计算出数据中各像素点的经纬度。行列号转换为经纬度的换算方法如式(3)~(12)所示。
(1)求x,y。
式中,c,l分别为NOMChannel 图像数据上的列号与行号,COFF、LOFF分别代表列偏移和行偏移,CFAC、LFAC为列比例因子和行比例因子。
(2)求Sd,Sn,S1,S2,S3,Sxy。
式中,h表示地心到卫星质心的距离,ea表示地球的半长轴,eb表示地球的短半轴。
(3)求lon,lat。
式中,lon,lat分别代表经度与纬度,λD为卫星星下点所在经度。
最后根据大多数台风的路径截取西太平洋海域(东经95°至东经135°,北纬10°至北纬50°)图像作为本文实验数据,图像大小为800×800,分辨率为0.5°,格式为jpg 格式。
本文选取2018 和2019 年多个台风发展阶段的HDF 数据文件,为避免数据过于相似而导致模型退化,选取的两幅图像时间间隔不低于3 小时。本文共处理705 个HDF 数据文件并转换成图像,部分卫星云图如图3 所示。采用LabelImg 标注工具对台风目标进行标注,生成对应的xml 标注文件,并按照8∶2 的比例划分为实验训练集与测试集。
Fig.3 Part of the satellite cloud image图3 部分卫星云图
本文将训练好的模型采用目标检测算法中的综合评价指标平均精度(Average Precision,AP)对模型进行评估,AP 表示在不同召回率(Recall)下精确率(Precision)的平均值。Precision 的计算公式如式(13)所示,Recall 的计算公式如式(14)所示,评价指标计算公式如式(15)所示。
其中,TP(True Positives)表示正样本被正确识别,FP(False Positives)表示负样本被错误识别为正样本,FN(False Negatives)表示正样本被错误识别为负样本。
本文的实验硬件平台和参数配置如下:Windows10 64位操作系统,GeForce RTX 2060s 8G 显卡,Intel Corei5-8500CPU 处理器,16GB 运行内存。使用的深度学习框架为Pytorch1.3 结合CUDA10.1 和Cudnn7.5,代码运行环境为Python3.7,最大迭代次数为2 820 步。学习率Learning rate 为0.002 5,动量为0.9,权值衰减值设置为0.000 1。
2.3.1 不同特征提取网络实验对比
为选择合适的特征提取网络,本文在Faster RCNN 基础上分别对目前性能较好的ResNet50、ResNet101 和Res2Net101 这3 种特征提取网络进行模型训练。为使模型得到较好的识别效果,采用迁移学习策略,利用ImageNet的预训练权重初始化主干网络参数。随着模型迭代次数的增加,不同特征提取网络训练的模型损失曲线如图4 所示(彩图扫OSID 码可见)。
Fig.4 Comparison of total loss of Faster RCNN model under different feature extraction networks图4 不同特征提取网络下Faster RCNN 模型总损失对比
从图4 可以看出,基于ResNet50 的Faster RCNN 在本文数据集中收敛速度更快,损失较其他两种网络更小,因此本文在后续实验中均采用ResNet50 作为Faster RCNN 的特征提取网络。
2.3.2 不同改进策略实验对比
为验证本文方法的有效性,分别使用不同的改进策略对模型进行训练和测试,实验效果如表1 所示。
Table 1 Test results using different improved strategy models表1 使用不同改进策略模型的测试效果
从表1 中可以看出不同改进策略对模型检测平均精度的影响。策略1 代表的是原始的Faster RCNN 模型;策略2为进行了区域建议网络优化,将原始的9 个锚框进行改进,删除了较大尺寸的锚框并将锚框的宽高比固定为1∶1,锚框参数与本文数据集契合,使得模型的平均精度提高了1.4%;策略3 表示在感兴趣区域池化层中使用ROI Align 算法替代原始的ROI Pooling 算法,降低了之前的量化操作带来的误差,使得模型的平均精度提高了1.8%;策略4 表示将OHEM 机制引入到Faster RCNN 的训练过程中解决了样本不均衡问题,模型精度提高了2.4%;策略5 表示将区域建议网络优化、ROI Align 和OHEM 机制结合在一起对Faster RCNN 进行改进,实验结果表明模型的检测精度提升了4.7%。
本文算法的Precision-Recall 曲线如图5 所示。实验证明,本文提出的3 种改进方法均能提高模型的检测性能,将3 种改进方法结合在一起效果最好。
Fig.5 Precision-Recall curve of the algorithm in this paper图5 本文算法的Precision-Recall 曲线
本文针对目前台风云系识别算法由于台风各个阶段尺寸与纹理结构差异较大存在识别难度大、准确率低的问题,提出改进的Faster RCNN 台风云系识别方法。在ResNet50 为特征提取网络的基础上通过优化区域建议网络参数,采用ROI Align 算法替代原ROI Pooling 算法,将OHEM 机制引入模型的训练阶段进行改进。实验结果表明,本文方法在台风云系识别精度上有明显提高,可用于台风监测任务。但目前仍有一部分非台风云系被误检为台风云系,如何剔除这部分非台风云系是后续的研究方向。