软件学报  2018, Vol. 29 Issue (4): 1049-1059   PDF    
局部聚类分析的FCN-CNN云图分割方法
毋立芳1, 贺娇瑜1, 简萌1, 邹蕴真1, 赵铁松2     
1. 北京工业大学 信息与通信工程学院, 北京 100124;
2. 福州大学 物理与信息工程学院, 福建 福州 350116
摘要: 空气中的尘埃、污染物及气溶胶粒子的存在严重影响了大气预测的有效性,毫米波雷达云图的有效分割成为解决这一问题的关键.提出了一种基于超像素分析的全卷积神经网路FCN和深度卷积神经网络CNN(FCN-CNN)的云图分割方法.首先通过超像素分析对云图每个像素点的近邻域实现相应的聚类,同时将云图输入到不同步长的全卷积神经网络FCN 32s和FCN 8s中实现云图的预分割;FCN 32s预测结果中的"非云"区域一定是云图中的部分"非云"区域,FCN 8s预测结果中的"云"区域一定是云图中的部分"云"区域;余下的不确定的区域通过深度卷积神经网络CNN进行进一步分析.为提高效率,FCN-CNN选取了不确定区域中超像素的几个关键像素来代表超像素区域的特征,通过CNN网络来判断关键像素是"云"或者是"非云".实验结果表明,FCN-CNN的精度与MR-CNN、SP-CNN相当,但是速度相比于MR-CNN提高了880倍,相比于SP-CNN提高了1.657倍.
关键词: 云图像     超像素     全卷积神经网络     卷积神经网络     图像分割    
Local Clustering Analysis Based FCN-CNN for Cloud Image Segmentation
WU Li-Fang1, HE Jiao-Yu1, JIAN Meng1, ZOU Yun-Zhen1, ZHAO Tie-Song2     
1. Faculty of Information Technology, Beijing University of Technology, Beijing 100124, China;
2. Collegel of Physics and Information Engineering, Fuzhou University, Fuzhou 350116, China
Foundation item: Beijing Municipal Education Commission Science and Technology Innovation Project (KZ201610005012); China Postdoctoral Science Foundation Funded Project (2017M610026, 2017M610027); National Natural Science Foundation of China (61671152)
Abstract: Dust, pollutant and the aerosol particles in the air bring significant challenge to the atmospheric prediction, and the segmentation of millimeter-wave radar cloud image has become a key to deal with the problem. This paper presents superpixel analysis based cloud image segmentation with fully convolutional networks (FCN) and convolutional neural networks (CNN), named FCN-CNN. Firstly, the superpixel analysis is performed to cluster the neighborhood of each pixel in the cloud image. Then the cloud image is given to the FCN with different steps, such as FCN 32s and FCN 8s. The "non-cloud" area in the FCN 32s result must be a part of the "non-cloud" area in the cloud image. Meanwhile, the "cloud" area in the FCN 8s result must be a part of the "cloud" area in the cloud image. The remaining uncertain region of the cloud image needs to be further estimated by CNN. For efficiency, it is necessary to select several key pixels in the superpixel to represent the characteristics of the superpixel region. The selected key pixels are classified by CNN as "cloud" or "non-cloud". The experimental results illustrate that while the accuracy of FCN-CNN is almost equivalent to MR-CNN and SP-CNN, the speed is 880 times higher than MR-CNN, and 1.657 times higher than SP-CNN.
Key words: cloud image     superpixel     FCN (fully convolutional network)     CNN (convolutional neural network)     image segmentation    

云是一种重要的气象要素, 云观测是地面观测的重要内容之一, 准确的云观测不仅能够为天气预报、飞行安全、人工增雨作业等提供帮助, 而且随着可再生能源的发展(尤其是太阳能), 云图信息的分析同时对太阳能发电系统等也起着重要的作用[1].为了实现云检测, 越来越多的成像装备快速发展起来, 以获取更多更好的云图像.比如whole sky camera[2]、whole sky imager[3, 4]、total sky imager[2, 5]和infrared cloud imager[6]等, 而本文所研究的云图像是由毫米波雷达[7]获取的高时空分辨率云的水平垂直结构图, 如图 1所示, 横坐标表示成像时间, 纵坐标表示成像高度.由于低空噪音或者是空气中的气溶胶粒子的影响会使雷达回波强度变弱, 在云图中表现为杂波成分(如图 1中的方框部分所示).为提高天气预测的准确性, 本文主要研究云图的分割, 即“非云”和“云”区域的分离问题.

Fig. 1 An example of cloud image from the millimeter-wave radar 图 1 毫米波雷达云图像示例

近年来, 越来越多的云图分析算法被提了出来.起初的云图处理主要是基于阈值的处理, 2006年Long等人[2]提出一种基于颜色阈值的云检测算法, 通过比较RGB彩色图像的R与B的强度来提取云的区域.具体地, 像素(除了特定的情况下, 如在地平线或太阳周围的像素)的R/B超过一定阈值, 则被确定为云, 否则, 确定为晴朗的天空.Kreuter等人[8]也提出了基于R/B阈值的云识别, 相比于文献[2], 使用了不同的阈值.除了基于RGB阈值的检测识别, 还有基于其他准则的方法, 比如欧氏距离[9]、饱和度[10]等.但在变化多端的天气下, 一个固定的阈值不能满足所有的情况.所以, 自适应阈值[11]逐渐受到关注.之后, 根据特征空间相似像素不断聚类的原理, 出现了基于超像素分割[12]的云检测.1995年Bush等人[13]提供一种基于二叉决策树的分类方法, 用来实现云类型多分类.2015年Taravat等人[14]研究了机器学习在云图分割领域的自动分割, 提出了在处理某些形状复杂的云(比如卷积云)的时候MLP分类器比SVM效果更好.近几年, 在大数据的推动下, 深度学习越来越热.2016年Zhang等人[15]提出了基于多分辨率卷积神经网络(MR-CNN)的云图像分割, 为了更好地联系上下文信息, 以每个像素为中心选取3个不同分辨率的区域, 再通过卷积神经网络学习每一个分辨率区域的中心像素的特征, 这导致计算量急剧增大, 使得分割一张云图平均需要4个多小时.实际上, 在深度学习领域, 除了将卷积神经网络CNN[15, 16]应用到图像分割以外, 2015年Long等人[17]提出了用全卷积神经网络FCN实现图像分割的方法, FCN将传统的CNN网络中的全连接层换成卷积层, 大大减少了网络参数, 提高了分割速度.但是, FCN反卷积层是对最后一个卷积层的特征层直接上采样使它恢复到输入图像相同的尺寸, 导致最后的分割结果比较粗糙.本文巧妙地用传统的超像素方法对毫米波雷达云图进行了聚类预处理, 接着结合多层次深度学习框架提出了FCN-CNN分割方法, 此方法实现了毫米波雷达云图的快速、精确分割.

本文第1节介绍FCN-CNN的方法细节, 具体包括超像素聚类介绍、FCN预分割和CNN优化分割.第2节重点介绍基于超像素聚类的CNN分割算法、基于超像素聚类的FCN分割算法以及基于超像素聚类的FCN-CNN等多种分割方法, 并进行实验结果对比及分析.第3节总结与讨论本文所提出的云图分割算法.

1 FCN-CNN的方法细节

本文给出的分割系统框架如图 2所示.首先, 通过超像素对云图(如图 2(a)所示)中每个像素点的近邻域实现相应的聚类, 聚类结果如图 2(c)所示.同时, 将云图输入到不同步长的全卷积神经网络FCN32s和FCN8s中, 具体FCN网络框架如图 3所示.

Fig. 2 An overview of the proposed FCN-CNN for cloud image segmentation 图 2 FCN-CNN云图分割方法的整体框架

Fig. 3 The framework of FCN 图 3 FCN网络框架

实现云图的预分割结果分别如图 2(b)图 2(d)所示; 通过分析FCN预分割结果, 证明了FCN 32s结果如图 2(b)所示的非云(黑色)区域一定是云图中的一部分“非云”区域, FCN 8s结果如图 2(d)所示的云(白色)区域一定是云图中的一部分“云”区域, 余下的不确定的区域(如图 2(e)中的灰色区域所示)通过卷积神经网络CNN来确定, 需要选取超像素区域中的关键像素来代表超像素区域的特征, 关键像素的特征通过图 4所示的CNN网络来判断是“云”或者是“非云”, 即可知道不确定的超像素区域是“云”还是“非云”区域.

Fig. 4 The framework of CNN 图 4 CNN网络框架

1.1 超像素聚类分析

为了提高云图特征的学习效率同时保持像素特征的局部一致性, 本文采用均值漂移(mean-shift)[18, 19]方法对云图中的像素进行聚类分析, 使得后续的云图分割操作以超像素为基本单位, 减小以像素为单元的计算复杂度.

均值漂移的超像素预处理是基于特征空间的聚类而实现的.均值漂移算法的输入是一个五维空间, 包括二维的(x, y)物理坐标和三维的(l, u, v)颜色坐标, 是一种基于高斯核函数核密度估计的无参数统计迭代方法.具体算法是, 首先计算出当前像素点的偏移均值, 将该点移动到此偏移均值, 然后以此为新的起始点, 继续移动直至收敛.偏移均值之后分配标签到每一个像素, 相同标签的像素具有相同的视觉特征, 所以一个超像素中的每一个像素都是相似的, 如纹理性、颜色强度等特征相似.如图 2(c)所示, 超像素预处理之后能够很好地保持云图局部一致性, 可以避免云图像边界附近有歧义像素点的误分割.

1.2 FCN预分割

本文用全卷积神经网络FCN来实现云图的预分割, 采用的FCN结构框架如图 3所示, FCN网络是对卷积神经网络CNN(如图 4所示)在分割领域的一个延伸, 是一种图像语义分割, 对一张图片上的所有像素点进行分类.CNN都是对整张图片进行分类, 而FCN是对一张图片中的每个像素进行分类, 可以达到对图片特定部分的分类, 比较适合分割.

1.2.1 FCN网络介绍

CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类, 所不同的是, FCN可以接受任意尺寸的输入图像, 然后通过反卷积对最后一个卷积层的特征图进行上采样, 使它恢复到输入图像相同的尺寸, 从而对每个像素都进行预测, 同时保留了原始输入图像的空间信息, 最后在与输入图像等大小的特征图上对每个像素进行分类, 逐像素地分类计算损失, 相当于每个像素对应一个训练样本.

FCN将CNN中的全连接层转化成卷积层, 以图 4中基于Alexnet[20, 21]微调的CNN网络为例.该CNN网络有5个卷积层, 还有两个全连接层F1、F2分别对应长度为4 096的向量, 以及全连接层F3对应长度为2的向量, 分别表示2个不同类别(云或者是非云)的概率.图 3所示的FCN将这3个全连接层转换为卷积层, 卷积核的大小分别为(4096, 1, 1)、(4096, 1, 1)、(2, 1, 1).FCN输入的图像可以是任意大小, 本文中毫米波雷达云图像数据集中云图的大小是719×490, 在FCN网络的第1层pooling(pool1)之后变为原图大小的1/2, 第2层pooling(pool2)后变为原图大小的1/4, 第3层后变为原图大小的1/8, 第4层变为原图大小的1/16, 第5层变为原图大小的1/32.FCN 32s网络是直接对1/32尺寸的特征图进行上采样操作, 但是这样的操作还原的图片仅仅是conv5中的卷积核中的特征.直接上采样32步长带来的精度问题使之不能很好地还原图像中的细节特征, 所以把conv4中的卷积核对上一次上采样之后的图进行反卷积补充细节, 最后把conv3中的卷积核对刚才上采样之后的图像进行再次反卷积补充细节, 最后就完成了整个图像的还原, 这就是上采样8步长, 也就是FCN 8s网络.

1.2.2 FCN网络训练

本文所用的FCN云图分割网络是通过微调Long等人[17]提出的FCN网络而得到的, 微调网路也就是在现有初始化的模型参数的基础上通过比较少量的图片就可以实现模型训练, 而不需要几万张、几十万张大量的图片重新训练一个新的网络.本文输入FCN网络的是云原图像719×490, 不需要任何裁剪等处理.从云图数据库中随机选取1 000张图像作为训练集, 随机选取350张图片作为测试集.在FCN模型的训练过程中需要引入监督信号, 也就是标签, 标签的制作是基于Photoshop等画图软件手工将云图像中“云”和“非云”区域用黑白颜色区分, 然后将其转化成719×490的二值矩阵(“云”部分用1表示, “非云”部分用0表示).训练过程中批次大小设为1, 即每迭代1次处理1张云图, FCN 32s的初始学习率为0.001, FCN 8s的初始学习率为10–13, 而且是每迭代1 000次, 学习率下降10倍.随着迭代次数的增加, 网络的损失率趋于稳定的时候可以停止训练.最后, FCN 32s网络迭代到7 000次时测试集准确率达到最高95.38%, FCN 8s网络迭代到15 000次时测试集准确率达到最高92.21%.

1.2.3 FCN实现预分割

在语义分割中, 我们需要输出与输入图像尺寸相同的分割图片, 因此需要对特征图进行上采样.为了得到和输入图像尺寸完全相同的特征图, 直接将全卷积后的结果进行反卷积, 得到的结果往往比较粗糙.如图 3所示, 1/32尺寸的特征图直接进行32步长的上采样, 这样的操作还原的图片仅仅是conv5中卷积所得到的特征.所以得到的分割结果是如图 2(b)所示的FCN 32s粗分割结果, 可以看出, FCN 32s结果的云图没有轮廓信息, 丢失了很多的细节信息.

考虑到直接上采样32步长不能够很好地还原图像特征, 因此, 与Long等人[17]的思想相同, 继续向前迭代, 将conv4的特征与conv5层上采样2个步长的结果进行融合来实现细节补充.同理, 对刚才上采样之后的结果进行再次反卷积, 与conv3层的特征进行融合, 整个过程相当于插值过程, 最后将融合后的特征上采样8步长完成了整个图像的还原.FCN 8s云图分割结果如图 2(d)所示.通过比较FCN 32s以及FCN 8s的结果可以看出, FCN 8s与FCN 32s相比, 更能学到细节信息, FCN 8s粗分割结果的轮廓比FCN 32s更清晰, 但同时也可以看出, FCN 8s的结果也处于“欠学习”状态, 精度还远远不够.分析原因, 首先是FCN直接上采样本来就是一种比较粗糙的分割方法, 再加上本文研究的毫米波雷达云图中杂波等因素的影响, 使得即使是结合了上下文语义的FCN云图, 分割效果还是不够理想.但是, 结合FCN 32s和FCN 8s的结果, 综合得到的信息是:FCN 32s在预测非云区域(如图 2(b)中黑色所示)比较准确, FCN 8s在预测云区域(如图 2(d)白色所示)比较准确.这一结论由表 1的FCN 32s、FCN 8s预测结果的FNR和FPR评价可以证明, 这是测试集中200张云图的平均值.我们以“云”区域为正类, “非云”区域为负类, 通过预分割结果与标签的比较, 假正率FNR和假负率FPR的结果见表 1.由表 1可以看出, FCN 8s预分割结果的假正率FPR为0, FCN 32s预分割结果的假负率FNR为0.这意味着, FCN 8s预测为“云”的一定是“云”, FCN 32s预测为“非云”的一定是“非云”.基于上述这一结论, 本文统计第i个超像素区域的像素总数为Ni, 记超像素i在FCN 8s中的白色像素总数为Yi, 在FCN 32s中的黑色像素总数为Xi, 既不属于FCN 8s中的白色像素也不属于FCN 32s黑色像素(即像素在FCN 8s中是黑色的, 在FCN 32s中是白色的), 总数记为Ui.比较XiYiUi, 若Xi=max{Xi, Yi, Ui}, 则该超像素区域的属性就确定为“非云”; 若Yi=max{Xi, Yi, Ui}, 则该超像素区域的属性就确定为“云”; 而其他情况(比如Ui=max{Xi, Yi, Ui}或Xi=Yi等情况)下的超像素区域(如图 2(e)的灰色区域所示)根据FCN是无法确定的.

Table 1 The FNR、FPR evaluation of FCN 32s、FCN 8s segmentation results 表 1 FCN 32s、FCN 8s预测结果的FNR和FPR评价

所以下一小节考虑将CNN与FCN结合, 对于FCN无法预测的少数超像素区域需要通过CNN预测分类云或者是非云.第1.3节将详细介绍CNN预测分类过程.

1.3 CNN优化分割

CNN网络对本分割方法的贡献是补充预测FCN网络无法判断(或者是判断不准确)的少数超像素区域的云分类.本文为了减少计算量, 选取超像素区域中的关键像素来表达超像素区域的特征, 只需要通过CNN判断关键像素的特征, 就可确定其所在超像素区域是“云”还是“非云”.

1.3.1 CNN网络介绍及模型训练

本文采用的CNN结构如图 4所示, 该网络是通过对AlexNet网络[20, 21]微调而得到的, 由5个卷积层、3个全连接层组成, 并且只给卷积层C1、卷积层C2和卷积层C5加入了pooling层.F1~F3是全连接层, 相当于在5层卷积层的基础上再加上一个3层的全连接神经网络分类器.需要注意的一点是, 我们将AlexNet中F3的神经元个数由1 000调为2, 原因是为了实现“云”和“非云”的2分类.

在训练和测试CNN网络阶段, 为了保证在采集训练集图像时, 能够采集到整张云图的每一个像素点, 我们对云图 719×490的4个边界分别延伸28个像素, 使图像变为775×546.在延伸后的图像中, 以任意像素点为中心, 以57为边长裁剪出57×57的图像子块.CNN网络从10张云图中随机选取了900个57×57的图像子块来训练, 随机选取300个57×57的图像子块来测试.与FCN相同, 在训练CNN网络时需要监督信号的输入, 也就是所谓的标签.标签的制作过程本文是利用Photoshop等画图软件手工地将云图像中“云”和“非云”区域用黑白颜色区分, 并转化为txt文件, 设置成列表的形式(每个像素点是“云”还是“非云”用0或1表示), 用于监督CNN网络的训练.在训练过程中, 批次大小设为64, 即每迭代1次处理64个图像子块, 学习率初始值为0.01, 且每迭代200次学习率下降10倍.最后迭代2 000次时模型的准确率达到最高97.26%.

1.3.2 CNN网络优化分割

用CNN网络辅助FCN网络实现分割的具体做法是:首先将每一个待CNN处理的超像素转化为一个一维的向量, 由于超像素具有良好的特征保持特性, 在一个超像素中的像素有相似的视觉特征、颜色、纹理和强度等, 所以可以在一个超像素中选取n(n为奇数)个关键的像素点来代替表示该超像素的特性, 这里, 我们将这种方法简称为SP-CNN.关键像素点的选取可以采用等间隔或者是随机取点两种方式.在此过程中, 为了避免选取的关键像素点落到超像素的边界(因为当关键像素点落到“云”和“非云”超像素的边界时既可以表达“云”也可以表达“非云”属性), 本文指出需要对每一个超像素进行腐蚀处理之后再选取关键像素点.具体的腐蚀处理如下所示:

$ K(I) = \{ b | {L_b} \subset I\} $ (1)

其中, I表示待腐蚀的超像素, L表示的是结构元素, 如公式(2)所示, 把结构元素L平移b后得到Lb, 若Lb包含于I, 我们记下这个b点, 所有满足上述条件的b点组成的集合称作IL腐蚀的结果.也就是说, 用结构元素L扫描超像素I中的每一个像素, 用结构元素与其覆盖的二值图像做“与”操作, 如果都为1, 结果图像中的该像素为1, 否则为0, 也就是说, 会使原来的图像缩小一圈.

$ \left( {\begin{array}{*{20}{c}} 0&1&0\\ 1&1&1\\ 0&1&0 \end{array}} \right) $ (2)

接下来, 以上述选取的n个关键像素点为中心, 裁剪出57×57的正方形子块, 输入到第1.3.1节训练好的CNN网络中来学习该关键像素点的特征(云或者是非云).最后对n个关键像素点的特征属性进行投票处理, 如果大于或等于(n+1)/2个关键像素点被CNN判断为“云”, 则该超像素所在的区域是“云”区域, 如果大于或者等于(n+1)/2个关键像素点被CNN判断为“非云”, 则该超像素所在的区域是“非云”区域.

2 实验对比及结果评价

本节主要介绍FCN-CNN云图分割算法在毫米波雷达云图像数据集中的实验结果, 为了评价FCN-CNN云图分割算法的性能, 我们进行了一系列关于FCN-CNN主要组成模块的实验分析, 包括:(1)基于CNN的云图分割[15](MR-CNN); (2)基于超像素聚类的CNN(SP-CNN)云图分割; (3)基于FCN的云图分割; (4)基于超像素聚类的FCN(SP-FCN)云图分割; (5)本文的基于超像素的FCN-CNN云图分割方法.最后, 我们采用图像像素的预测标签与真实标签之间的像素准确度、云图分割结果与真实标记之间的交并比(intersection-over-union, 简称IoU)以及测试集中平均的每张云图的分割时间作为本文的评价方法和准则.

2.1 基于超像素聚类的CNN云图分割(SP-CNN)

本节在超像素聚类的基础上利用第1.3.1节中介绍的CNN来实现云图的分割, 这里简称为SP-CNN.我们以超像素作为基本的研究对象, 而不是每一个像素, 这样可以保证局部一致性, 同时用超像素中的关键像素点的特征代表超像素区域的特征, 这样可以降低数据的计算量, 其中, 关键像素点的特征通过CNN提取.

为了验证SP-CNN在云分割中的能力, 我们将200张云图作为测试数据集.首先将待分割的云图进行超像素聚类预处理, 其次, 在超像素中等间隔地选取n个关键像素点, 接着, 以关键像素点为中心裁剪出57×57的图像子块, 最后, 将57×57图像子块输入到第1.3.1节中训练好的CNN网络来学习关键像素点的特征, n个关键像素的特征投票结果就是超像素所在区域的特征.在实验过程中, 我们对关键像素(n=1, 3, 5, 7)的均匀选取和随机采样做了对比实验, 如第1.3.2节中所述, 在选取关键像素点之前对超像素进行腐蚀处理, 这样就会导致部分超像素中像素的总个数不足7.所以, 表 2比较了针对等间隔采样和随机选取n=1, 3, 5个关键像素点的结果, 这是5次实验的平均结果, 包括平均准确率和每张图的分割时间.本文在Windows PC上生成超像素结果, 平均每张云图的运行时间是3.12s, 在Nvidia Tesla K40C GPU上CNN预测一个关键像素点的特征的时间是0.04s, 所以, 以n=5为例, 云图分割平均每张图耗时33.12s.表 2所示结果显示, 等间隔采样5个关键像素点时, 分割平均准确率可达99.543%, 分割时间是33.12s, 这个分割效果优于其他方案.所以在接下来的实验中, 我们会采取等间隔采样5个关键像素点的方案.

Table 2 Performance of SP-CNN with uniform and random pixel selection evaluated by accuracy and time costs 表 2 SP-CNN过程中随机与等间隔选取关键点的性能比较

2.2 基于超像素聚类的FCN-CNN云图分割

由第1.2节介绍可知, FCN更适合语义分割, 但是分割结果粗糙.通过第1.2.3节, 我们可以分析到的结论是, FCN 32s在预测非云区域(黑色)时比较准确, FCN 8s在预测云区域(白色)时比较准确.至于FCN预测不到的区域, 我们可以利用SP-CNN的思想进一步分析.

假设云图在超像素处理之后, 云图中的像素被聚类成k个超像素.统计第i(1≤ik)个超像素区域的像素总数Ni, 记超像素i在FCN 8s中被预测为“云”(白色)的像素总数为Yi, 在FCN 32s中被预测为“非云”(黑色)的像素总数为Xi, 其中, 既不属于FCN 8s中的“云”(白色)像素也不属于FCN 32s中的“非云”(黑色)像素(也就是像素在FCN 8s中被预测为“非云”而在FCN 32s中被预测为“云”)的总数记为Ui.

(1) 基于超像素聚类的FCN 8s-CNN云图分割:统计第i(1≤ik)个超像素区域的像素总数Ni, 记云图在FCN 8s网络中被预测为“云”(白色)的像素总数为Yi, 如果${Y_i} \ge \frac{1}{2}{N_i}, $则此超像素区域就属于“云”, 否则, 这个超像素用第2.1节中的SP-CNN来判断.

(2) 基于超像素聚类的FCN 32s-CNN云图分割:统计第i(1≤ik)个超像素区域的像素总数Ni, 记云图在FCN 32s网络中被预测为“非云”(黑色)的像素总数为Xi, 如果${X_i} \ge \frac{1}{2}{N_i}, $则此超像素区域就属于“非云”, 否则同理, 这个超像素用第2.1节中SP-CNN的方法来判断.

(3) 基于超像素聚类的FCN-CNN云图分割:比较XiYiUi, 若Xi=max{Xi, Yi, Ui}, 则该超像素区域的特征就确定为“非云”; 若Yi=max{Xi, Yi, Ui}, 则该超像素区域的特征就确定为“云”; 否则, 其他情况(比如Ui=max{Xi, Yi, Ui}或Xi=Yi等)下的超像素区域都通过第2.1节的SP-CNN方法来判断.

本节中FCN 32s以及FCN 8s在测试集数据库上的分割都是基于第1.2.2节中训练好的FCN网络, 在Nvidia Tesla K40C GPU上, FCN 8s实现云图分割的时间是平均每张4.94s, FCN 32s的分割时间是4.23s, 与第1.2节中的分析相符, FCN在分割领域与CNN[15]相比, 在速度上有很大的优势, 但是精度有所欠缺.实验过程中, 针对同样的200张云图测试集, 我们对SP-CNN、FCN 8s-CNN、FCN 32s-CNN和FCN-CNN这几种方法进行定量评估.由表 4的结果可以看出, 从分割准确度来看, 差距并不是特别明显, 但在分割时间方面, 基于超像素引导下的FCN-CNN方法有很大的优势, 表 3也可以证明这一点.表 3是对这200张测试云图中平均每张云图需要CNN网络处理的超像素个数进行统计, 可以看出, 时间差距上最根本的原因是CNN处理超像素的数量不同.

Table 3 Average superpixel number and time statistics of CNN processing 表 3 CNN处理的平均超像素数量及时间统计

2.3 图像分割评价

本文采用像素误差、交并比IoU以及分割所需时间的评价方法来衡量分割结果.

像素准确度是给定待测的分割标签L以及其真实的数据标签L', 则:

$ {P_{pixcel}} = {\left\| {L - L'} \right\|^2} $ (3)

其中, ||*||代表汉明距离, 它反映了分割图片与原始标签的像素相似度.按照这种方法, 本文所提FCN-CNN最后可以使云图的分割准确度达到99.564%.

IoU是分割结果K与分割标签图K'的重合程度.即分割结果与分割标签图的交集比上它们的并集, 公式表示为

$ IoU = \frac{{K \cap K'}}{{K \cup K'}} $ (4)

本文的FCN-CNN实现云图分割的交并比达到81.235%.结合表 4分析, 在处理速度上, 平均分割一张图像只需19.984s.

Table 4 Performance evaluation of FCN-CNN compared with Threshold[11]、MR-CNN[15]、FCN 32s[17]、FCN 8s[17]、FCN 8s-CNN、FCN 32s-CNN and SP-CNN by accuracy, IoU and time cost for cloud segmentation 表 4 本文的云图分割FCN-CNN方法与其他方法的性能比较

我们用相同的评价指标对阈值[11]、MR-CNN[15]、FCN 32s[17]、FCN 8s[17]、FCN 8s-CNN、FCN 32s-CNN和SP-CNN方法进行衡量, 结果见表 4, 可以发现, 精度与MR-CNN、SP-CNN等相当, 但是速度相比于MR-CNN提高了880倍, 相比于SP-CNN提高了1.657倍, 可以看出, FCN-CNN是一种高效的毫米波雷达云图分割方法.图 5所示为FCN-CNN与其他方法在4张不同云图上的结果示例, 从结果我们可以看出, 阈值法[11]的鲁棒性较差.由于云图噪音繁杂且不稳定, FCN 32s[17]分割的云区域较为粗糙, 丢失了大量的边界细节.相反地, FCN 8s[17]虽然捕获了更多的云边界细节却丢失了云区域的主要信息.这是由于, FCN 32s直接对最后一个卷积层的特征图进行32步长的上采样, 所以无法捕获准确的边界信息, FCN 8s通过融合前几层卷积层的特征, 可以学习更多的细节信息, 但是同时, 由于云区域的噪声影响, 使其丢失了云的部分主要区域.从图 5的结果上来看, MR-CNN[15]、FCN 8s-CNN[17]、FCN 32s-CNN[17]、SP-CNN与本文的基于超像素的FCN-CNN方法相比在复杂的噪声影响下更鲁棒, 但是基于超像素的FCN-CNN不仅能够更好地保持云图区域局部的一致性, 还可以避免有边缘像素引起的歧义, 而且其同时结合了超像素聚类、FCN以及CNN的优点, 使得分割精度和速度都优于其他方法.图 5中, 第1行所示为原图, 第2行所示为超像素, 第3行所示为标签, 第4行所示为阈值, 第5行所示为MR-CNN, 第6行所示为FCN 8s, 第7行所示为FCN 32s, 第8行所示为SP-CNN, 第9行所示为FCN 8s-CNN, 第10行所示为FCN 32s-CNN, 第11行所示为FCN-CNN.

Fig. 5 Cloud images segmentation results 图 5 云图分割结果

3 结论

本文提出了一种高效的基于超像素聚类的FCN-CNN云图像分割方法.超像素预处理有效地保持了云图中云和非云区域的局部一致性, 其中, 在超像素区域进行腐蚀处理巧妙地避免了边缘像素引起的歧义.同时, 本文将云图输入到不同步长的全卷积神经网络FCN 32s和FCN 8s中来实现云图的快速预分割, 利用预分割结果确定部分“云”和“非云”区域, 即根据FCN 32s预测的“非云”的区域一定为云图中的部分“非云”区域, 由FCN 8s预测的“云”的区域一定为云图中的一部分“云”区域; 余下的不确定的区域由CNN来进一步分析, 在这个过程中, 为了降低计算复杂度, 我们选取超像素区域中的关键像素来表达超像素区域的特征, 关键像素的特征通过CNN网络来判断是“云”或者是“非云”.本文通过多组实验的对比以及定量的评估分析证实了所提出的基于超像素聚类分析的FCN-CNN云图分割方法是有效的.值得注意的是, 毫米波雷达扫射云层的时候生成云图像的时间间隔是10min, 而本文提出的基于超像素聚类的FCN-CNN方法在云图分割过程中平均每张云图只耗费不到20s, 这说明, 该方法满足云图分割的实时性需求.综上所述, 本文研究的基于超像素聚类的FCN-CNN云图分割方法有效地汲取了超像素、FCN和CNN的优点, 具有良好的云图分割能力, 为高效的气象预测奠定了良好的基础.

参考文献
[1]
Martínez-Chico M, Batlles FJ, Bosch JL. Cloud classification in a Mediterranean location using radiation data and sky images. Energy, 2011, 36(7): 4055–4062. [doi:10.1016/j.energy.2011.04.043]
[2]
Long CN, Sabburg JM, Calbó J, Pagès D. Retrieving cloud characteristics from ground-based daytime color all-sky images. Journal of Atmospheric & Oceanic Technology, 2006, 23(5): 633–652. [doi:10.1175/JTECH1875.1]
[3]
Shields JE, Johnson RW, Karr ME, Wertz JL. Automated day/night whole sky imagers for field assessment of cloud cover distributions and radiance distributions. In: Proc. of the 10th Symp. on Meteorological Observations and Instrumentation. 1998. http://xueshu.baidu.com/s?wd=paperuri:(c7eaa7569237eec16316553da79c38bd)&filter=sc_long_sign&sc_ks_para=q%3DAutomated+day%2Fnight+whole+sky+imagers+for+field+assessment+of+cloud+cover+distributions+and+radiance+distributions&tn=SE_baiduxueshu_c1gjeupa&ie=utf-8&sc_us=11998081953391704638
[4]
Shields JE, Karr ME, Johnson RW, Burden AR. Day/Night whole sky imagers for 24-h cloud and sky assessment:History and overview. Applied Optics, 2013, 52(8): 1605–1616. [doi:10.1364/AO.52.001605]
[5]
Long C, Slater D, Tooman T. Total sky imager model 880 status and testing results. Office of Scientific & Technical Information Technical Reports, 2001. https://xs.glgoo.net/scholar?hl=zh-CN&q=Total+sky+imager+model+880+status+and+testing+results&btnG=&lr=
[6]
Shaw JA, Thurairajah B. Short-Term arctic cloud statistics at NSA from the infrared cloud imager. 2003. https://www.researchgate.net/publication/228878636_Short-term_arctic_cloud_statistics_at_NSA_from_the_infrared_cloud_imager
[7]
Racette P, Adler RF, Wang JR, Gasiewski AJ, Jakson DM, Zacharias DS. An airborne millimeter-wave imaging radiometer for cloud, precipitation, and atmospheric water vapor studies. Journal of Atmospheric & Oceanic Technology, 1992, 13(3): 1426–1428. [doi:10.1175/1520-0426(1996)013<0610:AAMWIR>2.0.CO;2]
[8]
Kreuter A, Zangerl M, Schwarzmann M, Blumthaler M. All-Sky imaging:A simple, versatile system for atmospheric research. Change, 2009, 48(6): 1091–1097. [doi:10.1364/AO.48.001091]
[9]
Mantelli Neto SL, Von Wangenheim A, Pereira EB, Comunello E. The use of euclidean geometric distance on RGB color space for the classification of sky and cloud patterns. Journal of Atmospheric & Oceanic Technology, 2010, 27(9): 1504–1517. [doi:10.1175/2010JTECHA1353.1]
[10]
Souzaecher MP, Pereira EB, Bins LS, Andrade MAR. A simple method for the assessment of the cloud cover state in high-latitude regions by a ground-based digital camera. Journal of Atmospheric & Oceanic Technology, 2006, 23(3): 437. [doi:10.1175/JTECH1833.1]
[11]
Yang J, Lü WT, Ma Y, Yao W. An automatic ground-based cloud detection method based on adaptive threshold. Journal of Applied Meteorological Science, 2009, 20(6): 713-721(in Chinese with English absrtact).
[12]
Liu S, Zhang L, Zhang Z, Wang C, Xiao B. Automatic cloud detection for all-sky images using superpixel segmentation. IEEE Geoscience & Remote Sensing Letters, 2015, 12(2): 354–358. [doi:10.1109/LGRS.2014.2341291]
[13]
Buch KAJ, Sun CH. Cloud classification using whole-sky imager data. In: Proc. of the 9th Symp. on Meteorological Observations & Instrumentation. 1995, 16(3): 353-358. http://xueshu.baidu.com/s?wd=paperuri%3A(9cebe35398fab368b4f3d5382a8e4d6b)&filter=sc_long_sign&tn=SE_baiduxueshu_c1gjeupa&ie=utf-8&sc_ks_para=q%3DCloud%20classification%20using%20whole-sky%20imager%20data
[14]
Taravat A, Frate FD, Cornaro C, Vergari S. Neural networks and support vector machine algorithms for automatic cloud classification of whole-sky ground-based images. IEEE Geoscience & Remote Sensing Letters, 2015, 12(3): 666–670. [doi:10.1109/LGRS.2014.2356616]
[15]
Zhang JN, Wu LF, He JY. Millimeter-Wave cloud image segmentation based on multi-resolution convolutional neural network. In: Proc. of the National Conf. on Multimedia Technology. 2016(in Chinese with English abstract). hppt://hhme.cs.tsinghua.edu.cn
[16]
Wu Z, Huang Y, Yu Y, Wang L, Tan T. Early hierarchical contexts learned by convolutional networks for image segmentation. In: Proc. of the Int'l Conf. on Pattern Recognition. IEEE, 2014. 1538-1543. [doi: 10.1109/ICPR.2014.273]
[17]
Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation. In: Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition. 2015. 3431-3440. [doi: 10.1109/CVPR.2015.7298965]
[18]
Comaniciu D, Meer P. Mean shift: A robust approach toward feature space analysis. IEEE Trans. on Pattern Analysis and Machine Intelligence, 2002, 24(5): 603-619. [doi: 10.1109/34.1000236]
[19]
Tao W, Jin H, Zhang Y. Color image segmentation based on mean shift and normalized cuts. IEEE Trans. on Systems, Man, and Cybernetics, Part B (Cybernetics), 2007, 37(5): 1382-1389. [doi: 10.1109/TSMCB.2007.902249]
[20]
Krizhevsky A, Sutskever I, Hinton GE. ImageNet classification with deep convolutional neural networks. In: Proc. of the Int'l Conf. on Neural Information Processing Systems. Curran Associates Inc., 2012. 1097-1105. http://xueshu.baidu.com/s?wd=paperuri:(bfdf67dfdf8cea0c47038f63e91b9df1)&filter=sc_long_sign&sc_ks_para=q%3DImageNet+classification+with+deep+convolutional+neural+networks&tn=SE_baiduxueshu_c1gjeupa&ie=utf-8&sc_us=7479570315911023847
[21]
Russakovsky O, Deng J, Su H, Krause J, Satheesh S, Ma1 S, Huang ZH, Andrej K, Aditya K, Michael B, Alexander C, Li FF. ImageNet large scale visual recognition challenge. Int'l Journal of Computer Vision, 2014, 115(3): 211–252.
[11]
杨俊, 吕伟涛, 马颖, 姚雯, 李清勇. 基于自适应阈值的地基云自动检测方法. 应用气象学报, 2009, 20(6): 713-721.
[15]
张加楠, 毋立芳, 贺娇瑜. 基于多分辨率卷积神经网络的毫米波雷达云图像分割. 见: 第25届全国多媒体技术学术会议. 2016. hppt://hhme.cs.tsinghua.edu.cn