APP下载

基于卷积神经网络的全天空地基云图分类研究*

2019-04-19许允飞苏丽颖崔辰州樊东卫王川中

天文研究与技术 2019年2期
关键词:晴空云图卷积

崔 顺,许允飞,苏丽颖,崔辰州,樊东卫,韩 军,王川中,张 磊,张 洁

(1. 北京工业大学机械工程与应用电子技术学院,北京 100124;2. 中国科学院国家天文台,北京 100101;3. 中国科学院大学,北京 100049;4. 中国极地研究中心,上海 200136)

1 研究背景与意义

对于天文选址,云量是首先需要考虑的因素之一。观测目标发射的光线到达地基望远镜的终端时,受到大气中云的散射和吸收,大气中云量的多少,决定了观测数据质量的好坏,从而决定了天文可用时间和天文观测可视域。然而,现在对云的观测还是以人工观测为主,观测结果受人为主观因素影响较大[1]。因此,实现云量的自动检测尤为重要。

全天相机主要由电荷耦合元件(Charge Coupled Device, CCD)和鱼眼镜头组成,通过全天相机拍摄的全天空地基云图,具有很高的空间和时间分辨率,其分析结果能够准确反映当地的云量覆盖与变化特征,适合用于全天云量信息监测[2]。

全天相机在拍摄地基云图时,会受到时间、天气、光照的影响,导致获取图像的内容、质量有所差异。在进行云量自动检测工作时,针对不同时段(如白天与黑夜)的图像,云量检测方法也不同。因此,在进行云量检测之前,去除不可靠图像,区分图像场景是晴天数与晴夜数自动化统计的重要步骤,也是接下来云量分析工作的基础。实现自动化的分类方法将减少选址人员在数据处理上的工作量。

本文根据图像质量、应用场景等因素对全天空地基云图做了详细的类别划分并基于雪龙号全天空地基云图数据集训练卷积神经网络(Convolutional Neural Network, CNN)[3]分类模型,提出了全天空地基云图的自动化分类处理方法。

使用中国科学院云南天文台丽江观测站全天空地基云图数据集对模型进行分类测试,取得了不错的分类效果,证明了模型拥有较强的泛化性能,适用于天文选址时全天空地基云图的分类。

2 数据集以及分类标准介绍

全天相机拍摄的全天空地基云图种类复杂多样,质量也不尽相同,使用大量不同且具有代表性的训练数据能够提高分类模型的泛化能力,使模型在新数据集上拥有较好的适应性,从而实现任意地区全天空地基云图的自动化分类,为云检测自动化系统的实现和快速部署提供支撑。

2.1 雪龙号全天相机数据介绍

雪龙号是我国极地综合科学考察专用船。2017年7月20日雪龙号从上海出发,7月31日进入北极圈,10月9日返回上海长江口水域,共航行20 590海里,成功完成了第8次北极科学考察任务。搭载在雪龙号上的全天相机每5分钟采集一次数据,航行期间共获得数据89.8 GB,共13 484张,图像单张分辨率为1 000 × 625。航行沿途经过区域广,环境因素复杂,获取的全天影像数据类型丰富、覆盖性强,很适合作为模型的训练数据。

2.2 分类标准

根据应用场景做如下分析,将云图划分为夜晚(dark)、雨露雪(rain_snow)、过曝光(overlight)、晴空(bluesky)、少云(cloudimage)、多云(overcast)6类。

昼夜给图像带来不同的特性,研究的内容和方法也往往不同。云点识别时,对于白天拍摄的全天空地基云图,通过图像可见光波段的性质确定有云点[4];夜间则将测得的星场图像与计算的星像图作比较,确定那些已知的明亮恒星被云遮盖,从而识别云[5]。因此,昼夜图像分类便于之后的科学研究,将夜晚拍摄图像划分为一类,如图1。

图1 夜晚类典型图像
Fig.1 Typical image of dark

对白天图像做如下更为细致的划分。拍摄过程中,镜头会受到恶劣天气的影响,雨露雪对镜头的覆盖,严重影响成像质量,使得这部分图像很难应用于之后的云量检测工作。将受雨露雪影响的图像划分为单独一类,并且结合拍摄时的气象信息,可用于辅助验证当时的天气状况。雨露雪类图像如图2。

图2 雨露雪类典型图像
Fig.2 Typical image of rain_snow

正午光线充足,在强光照射下拍摄图片容易发生过曝光现象,将这类数据划分为单独一类,可区分更有研究价值的全天空云图数据。当曝光面积大于全天图像面积三分之一时,认为该图片属于过曝光类。过曝光类典型图像如图3。

在去除质量较差的图像后,根据云量的多少将剩余图像划分为3类,晴空类、多云类和少云类。晴空不含云,整个天空几乎完全被云覆盖定义为多云,其他则认为是少云,少云类也是白天云量分析工作的主要部分。为了能更好地解释划分标准,各类别典型代表图像如下:晴空类如图4,多云类如图5,少云类如图6。

图3 过曝光类典型图像
Fig.3 Typical image of overlight

图4 晴空类典型图像
Fig.4 Typical image of bluesky

图5 多云类典型图像
Fig.5 Typical image of overcast

图6 少云类典型图像
Fig.6 Typical image of cloudimage

在获取的图像中选取6 160张,进行人工分类及标注。标注具体数量如下:过曝光1 124张、多云1 128张、雨露雪1 117张、少云1 115张、夜晚1 119张、晴空557张。

2.3 丽江天文观测站全天相机数据介绍

中国科学院云南天文台丽江观测站是我国南方重要的天文观测基地。目前拥有多台望远镜:2.4 m望远镜、1.8 m望远镜、BOOTES-4和台湾自动化望远镜(Taiwan Automated Telescope, TAT)等,丽江观测站全天相机为这些望远镜的夜晚观测提供实时的云量信息,在天文观测中起着必不可少的辅助作用。

数据集选取2016年11月26日到2016年12月26日期间丽江观测站全天相机拍摄的全天空云图数据,共5 807张,单张图像分辨率为720 × 480。按照2.2节中描述的分类标准对数据进行人工分类,用于测试模型在其他全天空地基云图数据集上的泛化能力。

3 卷积神经网络与模型介绍

卷积神经网络在图像识别领域拥有巨大的优势,它可以直接使用图像的像素点作为输入,通过训练提取最有效的特征,并且对缩放、平移、旋转等畸变具有不变性,有很好的泛化效果。卷积的权值共享结构,可以大幅减少神经网络的参数量,在防止过拟合的同时降低了神经网络模型的复杂度。

3.1 LeNet5与AlexNet

LeNet5[6]是Yann LeCun在1998年设计的用于手写数字识别的卷积神经网络,是最早的卷积神经网络之一。LeNet5拥有如下特点:每个卷积层包含3部分,卷积、池化和非线性激活函数;使用卷积提取空间特征;降采样的平均池化层;双曲正切或S型的激活函数;多层感知机作为最后的分类器;层与层之间的稀疏连接减少计算的复杂度。到现在,许多特性仍在当前主流的卷积神经网络中使用。

AlexNet[7]是由Hinton和他的学生Alex Krizhevsky设计,它将LeNet5的思想发扬光大,并把卷积神经网络的基本原理应用到很深、很宽的网络中。在2012年的ImageNet图像分类竞赛中,AlexNet以显著优势获得冠军。AlexNet成功地将线性整流函数(Rectified Linear Unit, ReLU)作为卷积神经网络的激活函数,并验证其效果在较深的网络超过了S型函数(Sigmoid function)。训练时随机失活(Dropout)的使用减轻了模型过拟合现象,使用重叠的最大池化,避免平均池化的模糊化效果,并提出步长小于池化核的尺寸,提升特征的丰富性。随机从256 × 256的原始图像中截取224 × 224大小的区域,极大限度地扩大了数据量,减轻模型过拟合现象,提升模型的泛化能力。

3.2 模型介绍及训练

本文在LeNet5和AlexNet的启发下搭建卷积神经网络模型,模型结构如图7。卷积层层数设定为2,卷积核大小均为5 × 5。每个卷积层后连接一个核大小为3 × 3、步长为2的最大池化层,最后连接两个全连接层, 并通过一个Softmax[8]层确定最终分类结果。在全连接层使用随机失活方法忽略了一部分神经元,卷积层后使用线性整流函数。

图7 卷积神经网络的结构
Fig.7 The structure of a convolutional neural network

4 模型训练

本节主要包括数据预处理、模型训练过程以及对模型效果的评价。

4.1 数据预处理

对数据进行合适的预处理,使其符合模型输入的要求,并最大限度地包含有效信息。

4.1.1 划分训练集与测试集

在已经做好人工标注的6 160张图像中,选取晴空的图像500张,其余每类图像1 000张作为训练集,余下的图像作为验证集。训练集和验证集没有交叉图像。验证集数据不用于对模型的训练,仅用于判断模型对未知图像的分类准确度。

4.1.2 获取感兴趣区域

将所有分辨率为1 000 × 625的原始图像(如图8(a))做中心裁剪,去掉两端无关的信息,裁剪后图像分辨率为800 × 625(如图8(b))。

图8 对全天图像进行感兴趣区域裁剪。(a) 裁剪前,(b) 裁剪后
Fig.8 Crop all-sky images to get the region of interest. Image (a) as before cropping, image (b) as after cropped

4.1.3 数据增强

模型训练过程中,为了防止过拟合现象的发生,通常需要输入充足的数据量。在数据量较小的情况下,通过数据增强的方法,在保证数据特征不变的基础上对图像数据进行几何变换,增加数据量。数据增强的操作包含翻转变换、缩放变换、平移变换、尺度变换、对比度变换、噪声扰动、颜色变换等。

结合数据特征,对训练集采取如下数据增强的方法:(1)对训练集图像做偏移处理,分别以右下、右上、中心、左下、左上为坐标原点,裁剪大小为700 × 550的区域;(2)通过左右翻转操作,将数据扩充10倍(如图9),对数量较少的无云晴空,增加上下翻转过程;(3)最终得到每类10 000张图像。

将经过上述操作的图像分辨率压缩至128 × 128,减小图像尺度,减轻模型训练的负担;其次对图像进行随机截取,大小为100 × 100,相当于将数据量扩大了(128-100)2=784倍;最后进行随机上下翻转,随机改变图像的对比度、亮度、饱和度、色调等特征,进一步扩大数据量。实验证明,使用上述数据增强的手段将大大减轻过拟合现象,提升模型的泛化能力。 船上固定景物和部分可能出现的视场外数据进行翻转平移后作为噪声,有利于提高模型的泛化能力。

验证集数据以图像中心为坐标原点,裁剪大小为700 × 550区域,再压缩至128 × 128,最后做中心裁剪,得到分辨率为100 × 100的图像,保证验证集图像保留足够多的有效信息并和训练集图像在输入模型时具有相同的尺度。

图9 数据增强操作的部分示例。第1行分别是以右下、右上、中心、左下、左上为坐标原点裁剪后的图像;

第2行是对第1行图像进行左右翻转操作后的图像

Fig.9 Data augmentation example. The first line is the image cropped at the lower right, upper right, center, lower left,

and upper left; The second line is the image after the left and right flip operations of the first line

4.1.4 标准化

在图像输入模型前,对图像进行标准化处理,将降低输入图像的冗余性,使得网络对图片的动态范围变化不敏感。主要有如(1)式的操作:

(1)

其中,Iin为图片的红绿蓝三通道像素值;M为三通道像素的均值;AS如(2)式:

(2)

其中,S为三通道像素的标准差;N为三通道各自的像素个数。训练集及验证集数据经过标准化处理后,输入模型进行训练与验证。

4.2 实验结果与分析

网络训练过程中,随着训练批次的增加,损失值(loss)逐渐下降,准确率(accuracy)不断上升(如图10)。可以看出,在选取合适训练批次大小以及学习率的情况下,模型损失值下降平稳,在训练迭代次数达到50之后,下降速度明显放缓,模型逐渐收敛。当迭代次数达到100时,损失值逐渐趋近于0.15,并不再有明显下降,训练集以及验证集的准确率整体趋势较为相似。在迭代次数达到50之后,验证集准确率逐渐趋于平稳,训练集准确率在95%与100%之间不断波动,这是由于训练集图像在输入模型前进行随机的对比度、亮度变换等操作,导致在当前迭代次数下,模型并没有完全拟合所有可能出现的图像数据。训练在迭代次数达到220之后,验证集准确率稳定为95.5%,不再发生变化,表示模型已经收敛。

由于样本种类较多,并且存在数量不均衡的特点。因此,对于分类效果的评判,采用精确率(Precision)、召回率(Recall)以及F1-Score进行评价。精确率表示预测为正的样本里有多少是真正的正样本,即预测为正样本有两种可能,一种是将正类预测为正类(PT),另一种是将负类预测为正类(PF),则精确率P可以表示为

(3)

召回率是针对原有样本而言的,它表示样本中的正例有多少被正确预测了,同样也有两种可能,一种是把原来的正类预测成正类(PT),另一种就是把原来的正类预测为负类(NF),即召回率R可以表示为

(4)

图10 训练过程中的准确率与损失值变化曲线,横轴为训练迭代数,纵轴为损失值和准确率

Fig.10 Loss and accuracy curve of training.The horizontal axis is the number of training epochs,and the vertical axis is the loss value and accuracy

F1-Score(F1)是精确率和召回率的调和均值,相当于精确率和召回率的综合评价指标,可由(5)式推导:

(5)

变换后F1表示为

(6)

各项类别的精确率、召回率和F1-Score如图11。

图11 各项类别的精确率、召回率和F1-Score
Fig.11 Precision, Recall and F1-Score for each category

由图11可见,卷积神经网络在各个类别都取得了非常好的效果,其分类精度、召回率、F1-Score均达到了90%以上,绝大多数类别在95%以上。

5 基于丽江观测站全天相机数据集的模型测试

5.1 数据预处理与测试

全天空地基云图拍摄过程中,由于拍摄设备、相机参数的不同,图像尺度也有所差异。对图像进行一些简单的预处理,使图像在输入模型前尺度信息尽可能与训练数据一致,可以提高模型对数据的判别准确率。

对丽江5 807张图像做人工标注,其中夜晚4 257张、晴空454张、过曝光614张、少云321张、多云115张、雨露雪46张。原始图像(如图12(a))分辨率为720 × 480,以图像中心为基准,截取400 × 320大小的图像(如图12(b)),获取与训练数据近似长宽比的有效信息。再压缩至128 × 128,最后做中心裁剪,得到分辨率为100 × 100的图像,保持输入尺度与训练集图像一致。经过4.1.4节中的标准化处理后,输入模型中进行预测。

图12 丽江站全天相机数据预处理样例。(a) 原始图像,(b) 裁剪后的图像

Fig.12 All-sky images classification example of Lijiang station. Image (a) as the original picture, image (b) as the cropped image

5.2 预测结果及分析

模型对测试集各项类别预测结果的精确率、召回率和F1-Score如图13。结果显示,模型在全新数据集上有着不错的表现,对数量最多的夜晚类判定精准,并且对少云、晴空、过曝光、多云类也有较好的区分能力。但对雨露雪类划分结果较差,并且晴空的召回率、多云的召回率、少云的准确率相对较低,因此,对这几部分做了深入的研究和分析。

为了更好地寻找误判原因,主要分析了分类的混淆矩阵(如图14)。从图14可以看出,雨露雪大部分预测为过曝光,误判图像如图15,雨滴数量较少且存在严重的过曝光现象。模型更加关注过曝光的特征,可能是误判的主要原因。总体来讲,测试集中雨露雪类的雨滴数量较训练集明显减少,也可能是导致雨露雪分类准确度整体较低的主要原因。

从图14可以看出,晴空召回率、少云精确率较低的主要原因是一部分晴空预测为少云,典型误判图像如图16,根据对图像的观察,这些图像与训练集中的晴空有较大差异,并且存在较明显的3个污点,可能是导致误判的原因。

多云的召回率较低,由图14可知,多云主要误判为过曝光,典型误判图像如图17,误判图像亮度较高,整体特征与训练集中过曝光类较为相近。训练集中多云类亮度均比较低,主要是由于相机拍摄时的参数设置不同所致。

图13 测试集数据各项类别的精确率、召回率和F1-ScoreFig.13 Precision, Recall and F1-Score for each category of test set

图14 测试集数据分类的混淆矩阵
Fig.14 Confusion matrix for test set data

图15 误判为过曝光类的雨露雪类图像
Fig.15 Rain_snow misjudged as overlight

图16 误判为少云类的晴空类图像
Fig.16 Bluesky misjudged as cloudimage

图17 误判为过曝光类的多云类图像
Fig.17 Overcast misjudged as overlight

6 总结与展望

本文基于雪龙号全天空地基云图数据集,提出了可用于天文选址的全天空地基云图分类处理方法,并使用丽江观测站全天空地基云图数据进行测试,证明了模型在从未接触过并且尺度不同的全天空地基云图数据集上仍能拥有不错的分类效果,模型具有较强的泛化能力以及良好的可移植性。

但是从测试结果可以看出,如下两种因素对分类结果存在较大影响:

(1)云图种类复杂多样,当云图同时具有两种或两种以上类别特征时,并不能完全将云图准确划分开来,如误判为过曝光类的雨露雪图像。

(2)图像受相机拍摄参数影响较大,导致训练集并没有包含所有可能出现的种类,从而识别错误,如误判为少云的晴空类。

针对以上问题,寻找多样化的数据进行训练将有效提高分类精度,并使模型在其它全天空地基云图数据集上有更好的表现。

致谢:本文得到中国虚拟天文台和中国天文数据中心提供的数据资源和技术支持。感谢国家天文台-阿里云天文大数据联合研究中心对本文工作的支持。感谢中国极地研究中心、中国科学院云南天文台丽江观测站提供的数据资源。

猜你喜欢

晴空云图卷积
利用精密卫星星历绘制GNSS卫星云图
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
从滤波器理解卷积
天地云图医药信息(广州)公司
冬日的晴空(外一首)
WATING FOR THE SUNSET
基于傅里叶域卷积表示的目标跟踪算法
黄强先生作品《雨后松云图》
夏雨