卷积神经网络识别地基云图的数据库建立及处理方法*

2020-03-16 08:02周树道刘展华任尚书
网络安全与数据管理 2020年3期
关键词:云图类别卷积

王 敏,周树道,刘展华,任尚书

(1.国防科技大学 气象海洋学院,江苏 南京 211101;2.南京信息工程大学 气象灾害预警与评估协同创新中心,江苏 南京 210044;3.解放军95171部队,广东 广州 510000)

0 引言

云是地球上水文循环的一个重要环节,它与地面辐射相互作用共同影响着局地和全球尺度的能量平衡[1-3]。云分类对天气预报很重要,直接决定着降水、降雪、雹和雷电等天气活动。地基云观测数据主要包括云量、云状、云底高度,根据三者的不同表现可以将云分为3族、10属、29类,具有种类多、变化快、相似、易与天空背景融合等特点。实际观测中人工观测为主,存在着主观性强、准静态、成本高、观测点偏少以及信息记录不完整等问题。目前的地基云图云状自动化识别方法通常采用图像预处理→特征提取→分类器分类这样的流程。

大多数研究者[4-7]重点研究表达不同云属性的特征提取技术,但这种识别分类方法是基于人工经验提取特征的,且各个环节都是独立的,只有简单的两三层学习网络,实则是一种“浅层学习”,致使此类方法适用的云类别范围有限,加之分类器的选取、云的复杂变化,影响了器测云状识别的识别精度及识别速度,仅能简单识别积云、层云、高积云、卷云等少数四至五类典型云的自动识别。

在图像分类问题上,卷积神经网络(CNN)[8-9]表现抢眼且具有鲜明的优势:它无需人工选取特征,只需要设置适宜的参数,就能取得较高的精度,而且对不同类型的目标物往往都能很好地应用。卷积神经网络具有非比寻常的从样本中学习特征的能力,这个学习的过程就是训练。在有监督的学习中,训练需要大量带有标签的图像样本。因此,在使用卷积神经网络对地基云图进行相关研究时,建立云图样本库是第一步,也是非常重要的一步。在拥有了一定量的图像资源以后,如何对其进行评价和预处理,使它们最大程度地服务于实验本身,也是需要考虑的问题。

本文中将详细阐述说明地基云图数据库建立及处理方法。首先,通过数码相机直接拍摄、从互联网上下载、从公开发行的云图类书籍获取以及由全天空照相机拍摄等手段获取三个云图样本库;接着,对三个样本库图像的分辨率、噪声、数量等问题进行了分析;最后,采用双线性插值和数据增强方法对样本库进行归一化预处理,为卷积神经网络在地基云图识别的应用奠定基础。

1 样本库的建立

要建立云图样本库,必须要获取带有分类标签的彩色三通道地基可见光云图像,图像中最好能够以云为主体且只有一类云而不宜是多类云的混合。目前获取云图主要途径有:数码相机直接拍摄、从互联网上下载、从公开发行的云图类书籍获取、由全天空照相机拍摄产生,如图1所示。不同来源的云图差别可见表1。

图1 地基云图样本的不同来源

在实际中,这些途径获取的大部分图像是不带有标签的(即没有定义所属类别),所以获取能够用于CNN训练的云图工作量比较大。本文根据实验实际需要,收集整理了3个云图样本库,为了便于区分,将它们分别命名为SWIMCAT样本库、Total-sky样本库、Online-image样本库。

表1 不同来源的云图样本特点分析

(1)SWIMCAT样本库

SWIMCAT样本库主要是使用广角高分辨率天空成像系统拍摄的图像,该系统是一个地基全天空成像仪,主要由一个佳能EOS 600D相机机身和Sigma圆形鱼眼镜头组成,视野180°,可以定期自动捕获图像。SWIMCAT样本库共包含了由地基全天空成像仪获取的5个云类别的784个图像斑块[10],斑块即为从整张图片中剪切的一部分。这五种类别云包括晴空(sky)、有图案的云(pattern)、厚重的乌云(thick-dark)、厚重的白云(thick-white)和面纱云(veil)。所有图像斑块均为125×125像素,图片格式为png,如图2所示。

图2 SWIMCAT样本库示例

(2) Total-sky样本库

Total-sky样本库包含5 000张全天空图像,是从位于西藏(29.25 N,88.88 E)海拔4 000 m以上的天空照相机TSI(Total-sky cloud imager)上获取的,TSI主要包括一个每10 s拍摄一次的数字相机和一个曲面镜。所有图像以jpg格式存储,分辨率为800×800像素。图像分为五种天空条件:卷云状(cirrus)、积云状(cumulus)、层状(stratus)、晴空(clear)和混浊(hybird),示例见图3。

图3 Total-sky样本库示例

(3) Online-image样本库

Online-image样本库主要搜集了《航空气象云图》、《中国云图》、国家气象局官方网站等来源共1 049幅带标注类别的地基可见光云图像,所有的图片都存储为jpg格式,多数图片长宽不相等且分辨率也各不相同,高积云原始归档图库如图4所示。

在收集完这些图像后,需逐一验证原有标注的准确性,并将它们按照云分类的10个类别进行归档,分别是Cu(积云)、Cb(积雨云)、Sc(层积云)、St(层云)、Ns(雨层云)、As(高层云)、Ac(高积云)、Ci(卷云)、Cs(卷层云)、Cc(卷积云)。

2 三种样本库存在的问题

(1)分辨率

从示例图片可以看出,SWIMCAT样本库和Total-sky样本库的图片长宽像素相同,均为正方形图片,而Online-image样本库分辨率不一致且各图片长宽像素不相等。根据CNN卷积运算机制,输入图片需长宽相等,且在分辨率大小方面,Total-sky和Online-image样本库都有像素大于800×800的样本存在,训练时会导致参数量过多,训练时间过长。综合以上考虑,三个样本库在进入网络训练之前,必须要经过预处理,将图片长宽各自统一到同一数值,调整图像大小后的样本库的图片样例见图5,图片下方对应字母为类别,数字为数量。

(2)噪声

在SWIMCAT样本库和Total-sky样本库中,除了云和天空之外几乎没有其他噪声,而Online-image样本库的图片中还包含树木、房屋等噪声。噪声无疑会影响分类准确率,因此将Online-image样本库原图像向外缩放,突出云的主体地位,然后将之作为一组样本输入进网络以便CNN更好地学习主体特征。

(3)可辨别性

SWIMCAT样本库和Total-sky样本库中的图片均被分为5个类别,无论从类别数还是从类间差异度上来看,都更便于用户关注分类算法。而Online-image样本库分类的难度明显更大,不仅是因为需分成10个类别,更因为样本中存在一些不利于图像分类的特征:一是同一类别图片中的云可能从外观上相差较大,二是有些不同类别的云可能肉眼上难以分辨,三是部分图片中的噪声因素,如图6所示。CNN的卷积操作可以有效提取图像信息,经过上百个卷积核的数次训练,完成区分主次、规避噪声的目标也并不难。而且从历史案例来看,CNN完成的比Online-image样本库更复杂的分类任务非常多,如果分类精度不佳,可以再增加样本量、提高网络复杂度、优化具体参数。

3 样本库的其它指标

建立样本库,除了要关注样本图片的分辨率、噪声、数量等基本的参数信息,还有一些“软实力”是必须要注意的,主要体现在以下三个方面。

(1)样本库的真实性和多样性

用样本库来训练CNN,样本真实性是最基本的,如果样本库本身的标签就是错误或是带有争议的,那么网络就会学习到错误的特征,进行错误的鉴别,当使用这类图片来训练时,势必影响分类的准确率。而样本库的多样性不单是指每个分类的数量,更加关注每个类别在图像这一媒介上的不同表现形式。对于同一的类型的云,很可能就“横看成岭侧成峰,远近高低各不同”,所以要尽量扩充样本的多样性。这里预先请两位老观测员对每一个样本逐一进行了再标注核准,如果两人分类意见不一致,则不再使用该样本。通过此种方法,力求把标注不准确对实验造成的误差降到最低点。

(2)样本库的大小问题

CNN的训练需要大数据的支撑,那么对于样本库来说,什么情况为数量足够?什么情况为样本不足?完成一个分类任务究竟需要多少样本?研究表明,训练样本量没有绝对的最小和最大量,通常与所需要进行的分类任务相关,任务越复杂,需要的样本越多。例如,如果只是对黑白图像进行分类,那么只需要很少的训练样本,如果要对ImageNet图片库进行分类,那么每个类别至少需要1 000张图片。在小样本数据集中,训练一个新的CNN网络需要花费大量资源,往往会导致过拟合。所以在实际操作中,如果出现过拟合或者分类精度过低,那么可以推测,所使用的样本还不够,需通过扩充样本库的方法来提高精度。本研究中,Online-image样本库中个别类别只有几十张图片,面对10个类别的分类任务,扩充数据以作对比实验就是一个很好的选择。

为了使资产评估行业快速发展,目前我国正加速对资产评估实践方面的大量推广。虽然从短时间来看,比较符合我国当前的经济情况,但是如果从长远来看,这真的会对整个资产评估行业产生益处吗?马克思主义理论告诉我们,理论与实践要相互结合,要用理论来指导实践。只有将理论基础打得扎实,才能不断地研究出更高深的资产评估理论,使我国资产评估行业形成一个良性循环。目前,我国资产评估理论教育还处于起步阶段,尚处于摸索阶段,无法全面地将所有理论知识进行深入教导。

(3)样本库的平衡

样本库在建立完善的过程中,很有可能存在各个类别的样本数量并不接近甚至相差较大的情况,如本研究中Online-image样本库,高积云有239个样本,卷积云只有35个,这就属于样本库不平衡。研究表明,样本库不平衡时,可能会影响分类精度。影响精度的情况是,样本较丰富的类别识别准确率高,而样本量少的类别识别精度尤为低。如果出现这种情况,可以扩充样本量少的类别的样本量,直至精度提高到应有水平。

4 归一化预处理方法

样本库存在的上述问题会影响实验的进行,所以在将样本输入进CNN之前,必须对其进行预处理。图像预处理的方法有很多种,包括处理框标注、调整图像大小、色彩调整等。在本研究中,针对原始样本库分辨率不一致,需要统一调整图像大小的需求,进行双线性插值操作;针对Online-image样本库存在噪声且需要扩充数据的需求,采用了数据增强的方法。

4.1 图像大小调整

图像的大小调整是图像分类问题中的基本技术,在批量更改图片输入尺寸或者需将不同尺寸图片处理到同一大小时,通常会用到此方法。在本研究中,Online-image样本库图片尺寸不一致、长宽像素不同,但是在CNN网络结构当中,输入节点的个数通常是固定的,所以图像在进入网络之前大小必须得到统一。

图像大小调整的目的是放大或缩小图像的像素,同时保持原始图像的细节和感知质量。通常可以选择两种方案,一是对图像进行线性插值操作,二是对图像进行剪裁。由于云图像中云的分布比较分散,裁剪可能会减少图像中的有用信息,因此选择保留信息更全也是更常用的双线性插值方法[12],其表达式为:

f(x,y)=

(x-x1)(y2-y)f(x2,y1)+(x2-x)(y-y1)f(x1,y2)+

(1)

其中f(x,y)为目标图像在像素点(x,y)处的灰度值,f(x1,y1)、f(x2,y1)、f(x1,y2)和f(x2,y2)分别为点(x,y)周围四个像素点(x1,y1)、(x2,y1)、(x1,y2)和(x2,y2)的图像灰度值。

由于双线性插值可以通过简单的计算来实现,使得其使用率非常高。除了网络需求需要调整大小之外,有的样本分辨率过大会影响计算速度,也可以通过这种操作调整图像大小。通过双线性插值将原分辨率600×397的图片调整到397×397的样例,如图7所示。

图7 双线性插值法处理图片效果示例

4.2 数据增强

当深度学习使用大型样本库进行训练时,样本提供信息的能力常常会被放大,所以深度学习非常重视数据的获取[12],增加样本库的大小是提高深度学习模型泛化能力的有效途径。然而,获取新数据是一项昂贵且耗时的工作,为了解决数据采集问题,通常采用一种正则化技术——数据增强,来人工合成新的训练数据,增加训练集的大小。近年来,在一些机器学习任务中,特别是在分类方面,数据增强取得了巨大的成功[13]。对于图像分类任务,采用一些图像变换方法从训练集中生成新的样本非常实用和有效,常用的数据增强方法有翻转、旋转、裁剪和缩放、移动、颜色抖动、加入噪声和PCA(主成分分析)抖动等几种。

Online-image样本库包含10个类别,类别里最少的仅有35张图片,需要对样本进行扩充。本文主要采取了水平翻转、缩放、亮度调整3种方法,将样本数扩充到原来的4倍,扩充后的图片样例见图8。具体方法选择主要有以下几点考虑:

(1)水平翻转、缩放、亮度变换都是经典的数据增强方法,对云图的基本信息改变不大又能使网络学习到更为丰富的特征,计算简单便于实现,所以选择了此三种方法。经验表明,向外缩放20%和增加亮度20%效果最佳。

(2)由于云图像中云的垂直特征(特别是云底的纹理特征)通常是云识别的重要因素,因此诸如垂直翻转和旋转等改变云体垂直分布的方法并不适合云图数据增强。

(3)裁剪通常是随机的,且有可能会丢失掉云体重要信息;样本中背景复杂,移动图像主体并不适宜;加入噪声和PCA抖动实现过程略复杂,会带来大量的计算成本。

(4)扩充倍数选择为4的原因是:对于云图而言,上述3种扩充的方法都是比较经典和适用的。诚然扩充至4倍并不代表样本就已足够,只能由实验结果裁定。裁定方法是:在其他参数保持不变的基础上,扩充后数据分类精度与原数据精度相差不大,则说明原数据量充足;扩充后数据精度明显高于原数据精度,则说明原数据量不足以支撑网络训练,可以通过增加源图片数量或者加大扩充倍数增加样本量,直至分类精度已不再受样本量增加的影响。

图8 使用数据增强方法的云图样例

5 实验验证

本文设计的地基云图自动分类卷积神经网络包含了4个卷积层、4个池化层,3个全连接层。每个增强数据集中的类别按照9:1的比例分为训练集和测试集,随机选取样本作为训练样本。批处理大小设置为64,训练在100个epoch处停止。使用Adam优化器,学习率按照常用设置为0.000 8。训练通过权重衰减来正则化(L2正则化系数默认设置为0.000 1),前两个全连接层则通过随机失活进行正则化(随机失活比例默认设置为0.5)。利用本文提出的数据增强集在卷积神经网络CNN与LBP(Local Binary Patterns),Heinle feature、Texton-based method三种方法进行云分类比较的结果见表2。

表2 方法平均准确率比较

如表2所示,所提出的数据增强样本库在CNN网络上进行识别的表现明显优于Heinle feature、Texton-based method和LBP算法,可以有效解决卷积神经网络对小样本数据识别率不高以及不能完整进行网络运行的问题。

6 结论

本文提出了一种卷积神经网络识别的地基云图数据库建立及处理方法。首先介绍三个样本库的来源和建立过程,并从样本的分辨率、噪声、可辨识性等属性出发,分析了各个样本库的基本特点。紧接着从这些基本特点出发,挖掘出了整个研究中需要关注和把握的几个问题(如:样本库的真实性、大小、平衡性等问题)。然后结合网络运行的实际需求,阐述了采用两种图像预处理方法(双线性插值和数据增强方法)的原因,并对其原理和具体操作过程进行了进一步说明。最后利用卷积神经网络CNN、LBP、Heinle feature以及Texton-based method四种方法对增强后的数据库进行识别分类实验验证。

样本库的建立是整个研究的基础工程,预处理过程是重要一环,本文立足基本预处理方法,具有一定的思维逻辑性的理论支撑性,为下一步具体选择网络架构和特征提取方法奠定了基础。

猜你喜欢
云图类别卷积
利用精密卫星星历绘制GNSS卫星云图
基于3D-Winograd的快速卷积算法设计及FPGA实现
论陶瓷刻划花艺术类别与特征
一起去图书馆吧
卷积神经网络的分析与设计
从滤波器理解卷积
三维云图仿真系统设计与实现
基于傅里叶域卷积表示的目标跟踪算法
黄强先生作品《雨后松云图》
云图青石板