基于多特征融合的层次支持向量机遥感图像云检测
2021-02-26张波胡亚东洪津
张波,胡亚东,洪津
(1 中国科学院合肥物质科学研究院安徽光学精密机械研究所,中国科学院通用光学定标与表征技术重点实验室,安徽 合肥 230031;2 中国科学技术大学, 安徽 合肥 230026)
0 引 言
地表上空覆盖的云在遥感卫星对地观测时会对地物造成遮挡,导致遥感图像上的地物信息在不同程度上缺失,影响了遥感图像的处理与应用。准确地实现遥感图像的云检测是遥感图像后续应用的前提和基础,意义重大。但由于云的种类繁多且云检测的地物背景复杂,导致云检测过程中容易出现误判、漏判等情况。减小云和地物在遥感图像中容易相互混淆的部分对云检测结果的负面影响,提高检测准确率是遥感图像云检测方向研究的重点及难点之一。
目前,研究人员在遥感图像的云检测方面做了大量的研究工作,提出了多种各具特色的云检测方法,这些云检测方法可归类为光谱阈值法、空间纹理法、模式识别法及综合优化法[1]。光谱阈值法是利用云和地物在不同波段的光谱特征差异,通过设置阈值来实现云检测。为了提升云检测的准确率,光谱阈值法常采用多波段阈值组合或者借助地表反射率集等先验知识来进行云检测[2]。但一些高分辨率卫星可用于云检测的波段有限,这类遥感图像可用于云检测的光谱信息相对较少,同时在空间分辨率上也与常用的地表反射率数据集差距明显,所以普通的光谱阈值法在这类遥感图像上直接运用往往效果不佳。空间纹理法是依据云和地物在遥感图像上的纹理特征差异,利用统计学的方法提取遥感图像的纹理特征和空间特征来实现云的检测与识别。随着遥感图像空间分辨率的提高,空间纹理法获得了越来越多的应用,但部分云和地物在遥感图像上的纹理特征相似,只使用纹理特征法进行云检测时难以区分这些容易相互混淆的云和地物,纹理特征法通常和其他方法共同使用来提升云检测的准确率[3]。随着计算机技术的发展,各种模式识别类的方法被引入到遥感图像云检测的研究中并取得了良好的效果,为了保证云检测的准确率,模式识别类的云检测方法在实验样本的选择、特征的选择与提取、分类器的设计与训练等方面提出了很高的要求[4,5]。综合优化法综合利用光谱阈值法、纹理特征法、模式识别法等方法各自的优点来实现云检测,往往能取得较好的效果。
云的形态各异,依据不同的分类标准会产生不同的分类结果。在学术交流和工程应用中经常会将云分为厚云、薄云两类。但厚云、薄云本身并没有明确且严谨的定义,实际应用中一般将完全遮挡地物目标、严重影响地物判读的云称为厚云,而将没有完全遮挡地物目标,对地物场景判读影响有限的云称为薄云[6]。各种云检测方法在对厚云的检测上大多能取得良好的效果,但云和地物中都存在着一些在遥感图像上容易相互混淆的部分,导致实际的云检测过程中会出现误判和漏判。其中被误判为云的地物主要是冰雪、裸地、高亮建筑物等似云地物,被漏判的云主要是包括厚云边缘过渡部分在内的各种薄云。薄云对地物并没有形成完全的遮挡,可以通过技术手段实现被遮挡的地物信息在一定程度上恢复,因此一些遥感图像应用场合会对遥感图像中的厚云、薄云区别处理,通过各种方法恢复被薄云遮挡部分的地物信息,从而提高遥感图像的利用率[7]。
本文设计了一种基于多特征融合的层次支持向量机云检测算法。算法综合利用云和地物在遥感图像上的灰度、纹理、频率特征的差异,分两层设计了三个有针对性的分类器,对云检测过程容易相互混淆的部分增加有针对性的检测环节,实现了厚云、薄云、地物之间的区分,从而提升了云检测的准确率。另外,将云在检测结果上分为厚云、薄云两部分给遥感图像的后续应用提供了更多的参考信息。
1 原理与方法
1.1 超像素分割
云在自然界中通常以不规则的几何形状聚合出现,在遥感图像特别是在高分辨率遥感图像上表现为闭合的连通区域,极少以孤立的像素点形式出现。因此,以像素块为单位进行云检测相较于以像素点为单位进行云检测可以更好地利用云这一形状特征,提升云检测的效率,同时以像素块为单位进行云检测还可以消除单个像素点噪声对云检测结果的影响。
超像素分割是利用被分割图像中临近像素点在纹理、颜色、亮度等特征上的相似性进行聚类,将原图分割成数个形状和面积各不相同的像素块的图像分割方法。由于云的几何形状不规则,在云检测过程中采用超像素分割的方法相较于将遥感图像规则分割的方法更能充分利用云和地物的形状特征。简单线性迭代聚类算法(Simple linear iterative clustering,SLIC)是Achnta 等[8]提出的一种经典的超像素分割方法。SLIC算法首先将RGB 图像转换为CIELAB 颜色空间和XY 坐标下的5 维特征向量,然后再对这5 维特征向量构造度量标准,并对图像像素进行局部聚类实现生成超像素。相较于其他超像素分割算法,SLIC 算法在运算速度、物体轮廓保持等方面优势明显[8,9]。更重要的是,SLIC 算法可以结合实际需求控制生成超像素的个数及超像素块的大小规模,相较于其他超像素分割算法,以SLIC 算法分割形成的像素块为云检测单位可以更好地实现小面积云块的检测。因此选择SLIC 算法对遥感图像进行超像素分割,并以分割后形成的像素块为单位进行云检测。
1.2 特征提取及选择
各种云检测方法都是利用云和地物在不同特征方面存在的差异来实现云和地物的区分,难点是部分云和地物在某些特征上十分相似导致在云检测时容易产生混淆,采用单一特征进行云检测往往效果并不理想。采用多特征融合的方法进行云检测,综合云和地物的灰度、纹理、频率特征更容易实现云和地物的区分。
1.2.1 灰度特征选择
云在可见光波段的反射率高,在可见光遥感图像上表现为灰度值较高,呈现出白色和明亮的特点,易与大部分地面物体区分。设计的云检测算法选择灰度均值、灰度方差作为云和地物区分的灰度特征。
1.2.2 纹理特征选择
云的形态多种多样,不同的云在纹理上会有一定的区别,但遥感图像上的云相较于大部分地物具有纹理光滑的特点。设计的云检测算法选择灰度共生矩阵(Gray level co-occurrence matrix,GLCM)及局部二值模式特征(Local binary patterns,LBP)来描述遥感图像的纹理特征。
灰度共生矩阵是一种通过研究灰度的空间相关特性来描述纹理的方法[10],设计的云检测算法选取角二阶矩(Angular second moment)、熵(Entropy)、对比度(Contrast)、相关性(Correlation)4 个常用的灰度共生矩阵的统计特征来描述遥感图像的纹理特征,其计算公式分别为
式中: x、y 为灰度共生矩阵的第x 行、第y 列,P(x,y)为灰度共生矩阵中第x 行、第y 列的元素,µx、µy为均值,σx、σy为标准差。
LBP 特征是一种用来描述图像局部纹理特征的算子,相较于整个像素层上进行纹理分析的方法具有理论简单、计算容易、灰度不变性和旋转不变性等诸多优势[11],广泛用于遥感图像纹理特征的描述[12]。
1.2.3 频率特征选择
云和地物在遥感图像的频域上表现出不同的特性,遥感图像中的云区域在频域上主要分布在低频部分,而地物区域主要集中在频率较高的部分[13],小波变换可以实现遥感图像时域到频域的变换,在薄云检测和地物信息恢复时能够起到良好的效果[14]。设计的云检测算法利用小波分解原理,将图像分解为高频和低频分量,选取小波变换提取的低频系数作为频率特征。
1.3 算法设计
支持向量机(Support vector machine,SVM)是基于统计学习理论和结构风险最小化原理的机器学习方法,在解决小样本、非线性及高维模式识别问题上效果显著,已被广泛应用于遥感影像的云检测中,并取得了良好的效果[15]。层次支持向量机(Hierarchical support vector machines,H-SVM)是将二叉树分类的思想引入支持向量机分类器的设计中,采用二叉树构造支持向量机分类器,将分类对象分为两个子类,再将每个子类进一步分类,最终得到单独的类别,具有逻辑清晰、容易实现、分类效率高的优势[16]。由于云和地物中都存在着一些在遥感图像上容易相互混淆的部分,为了保证准确率,普通支持向量机分类器在针对波段数有限的遥感图像进行云检测时往往对样本训练、特征提取、分类器设计要求很高,算法实现难度大的同时针对薄云、似云地物等的检测效果并不理想。为了更准确的区分出云和地物中容易相互混淆的部分,保证云检测的准确率,本文采用层次支持向量机对遥感图像分两层设计三个分类器进行分类。由于是分层分类,第二层分类器可以对第一层分类的结果进行有针对性的优化,所以每个分类器面向的分类对象相对简单,每个分类器的样本训练及特征提取可以更加有针对性,这样既降低了样本选择及分类器设计的难度,同时也提升了分类的准确率。算法具体可分为以下5 个步骤:
1)遥感图像分割。采用SLIC 算法对遥感图像进行超像素分割,对分割后的像素块按式(5)进行灰度化并保存,作为后续云检测算法的基本单位。
2)第一层支持向量机分类。第一层分类器SVM1 主要实现云和地物的初步分离,选择典型的厚云像素块及地物像素块作为训练样本,提取灰度均值、灰度方差、LBP 特征对选择的样本进行训练。用训练好的分类器对超像素分割后的遥感图像以像素块为单位进行第一层分类,结果分为“云”、“地物”两类。由于还要进行第二层分类,所以对第一层分类的准确度要求不高,这样降低了样本选择及分类器设计的难度。第一层被分类为“云”的像素块中含有被误判为云的似云地物,“地物”中则含有被漏判的云。
3)第二层支持向量机分类。第二层分类器针对第一层的分类结果做进一步分类。对第一层分类结果为“云”的像素块设计一个针对云和似云地物的分类器SVM2。选择厚云与城镇、裸地、冰雪等典型的似云地物作为训练样本,提取图像的LBP 纹理、灰度共生矩阵对选择的样本进行训练。用训练好的分类器对第一层分类结果为“云”的像素块进行分类,检测出第一层分类被误判为云的似云地物,结果分类为“厚云”、“似云地物”两类。对于第一层分类结果为“地物”的像素块设计一个针对普通地物与薄云的分类器SVM3,选择薄云与普通地物作为训练样本,提取图像的灰度均值、小波频率特征对选择的样本进行训练。用训练好的分类器对第一层分类结果为“地物”的像素块进行分类,检测出第一层分类中被漏判的云,主要为包括碎云及厚云边缘过渡部分在内的各种薄云,结果分类为“薄云”、“普通地物”。
4)将第二层分类结果中“似云地物”、“普通地物”的像素块合并为“地物”,经过层次支持向量机两层分类后遥感图像被分为“薄云”、“厚云”、“地物”三个部分。对分类结果进行标记,将被分类为“地物”的像素块灰度值设为0,被分类为“薄云”的像素块灰度值设为125、被分类为“厚云”像素块灰度值设为255,形成初步的云掩膜图。
5)对云掩膜的结果进行图形学的膨胀处理,可以消除云检测结果中存在的孔洞部分,并使云检测的边缘更加自然,形成最终云检测结果。
整个云检测算法的流程框图如下:
图1 云检测流程图Fig.1 Flow chart of cloud detection
2 试验结果与分析
高分一号上搭载了4 台宽视场多光谱相机(Wide field view sensor,WFV),WFV 影像包含蓝(0.45~0.52µm)、绿(0.52~0.59µm)、红(0.63~0.69µm)、近红外(0.77~0.89µm)4 个波段,各波段的分辨率为16 m,数据的量化精度为10 bit。选取高分一号WFV 的RGB 波段合成图像进行试验来测试算法的有效性。由于遥感图像的原图数据量过大,缩略显示后难以看清云检测算法对于薄云、碎云、云区边缘、各种地物的检测细节,为了便于更直观的评估云检测算法的效果,截取遥感原图中500 pixel×500 pixel 的子图进行实验并展示云检测算法的结果。实验选取的遥感图像的下垫面包含了植被、海洋、城镇、裸地、雪地等不同的地表类型,同时也包含了厚云、薄云、碎云等多种云类型。选择基于传统支持向量机的云检测算法作为对比,图2 直观展示了两种云检测算法的云检测结果,每组图像从左到右分别是灰度化后的遥感图像、传统支持向量机算法的云检测结果图、本文算法的云检测结果图。
图2 下垫面分别为植被(a)、海洋(b)、城镇(c)、裸地(d)、雪地(e)时云检测结果对比Fig.2 Comparison of cloud detection results when underlying surface are vegetation(a),ocean(b),town(c),bare land(d),snow(e)
图2(a)-(e)的下垫面分为植被、海洋、城镇、裸地、雪地。由图2 可直观看出,设计的云检测算法实现了厚云、薄云的区分检测,两种算法在针对不同下垫面遥感图像的厚云检测上都取得了良好的效果,但在厚云边缘、小面积碎云、特别是图2(d)大面积薄云的检测上优势明显。设计的云检测算法在对碎云、包括厚云边缘过渡部分在内的各种薄云检测时减少了漏判现象,整体云检测效果优于对比算法。
为了定量统计所提算法的云检测效果,文献[17]利用目视解译的方法从原始遥感图像中提取云掩膜作为真实云层信息,并采用召回率(Recall)、虚警率(Falsealarm)、准确率(Accuracy)对两种算法的云检测效果进行对比。其中召回率的定义为遥感图像中被云检测算法正确识别为云的像素占图像中真实云像素总数的比例,取值范围为0~1,数值越高说明算法正确识别出的云像素越多,算法性能越好。虚警率的定义为遥感图像中被云检测算法识别为云的像素中地物像素所占的比例,取值范围为0~1,数值越低说明被算法误判为云的地物越少,算法性能越好。准确率表明算法正确识别的云像素和地物像素占遥感图像总像素的比例,在0~1 的取值范围内数值越高说明算法整体性能越好。召回率、虚警率、准确率的计算公式分别为
式中: TP 为云检测算法正确识别的云像素数量,FN 为被云检测算法漏判的云像素数量,FP 为被云检测算法误判为云的地物像素数量,TN 为云检测算法正确识别的地物像素数量,N 为遥感图像中像素的总量。
由于作为对比的云检测算法在检测结果上没有实现薄云、厚云的区分,因此在定量统计云检测结果时,将本文算法云检测结果中的“厚云”、“薄云”统一作为云像素进行统计。表1 为两种算法的结果定量对比。
表1 云检测定量评价Table 1 Quantitative evaluation of cloud detection
由表1 可见,在对图2(a)、(b)、(c)的检测上,本文算法的召回率明显高于对比算法,两种算法的虚警率差距不大,且对于不同下垫面表现不同,准确率总体稍高于对比算法。对于图2(d)的大面积薄云检测上,新算法的准确率、召回率远高于对比算法,优势十分明显。对于下垫面为雪地的图2(e),新算法的虚警率低于对比算法,整体准确率高于对比算法。两种算法的虚警率分别为27.6%、36.3%,高于对于其他类型下垫面遥感图像云检测时的虚警率,说明当下垫面为雪地时,两种算法都存在较明显的将雪地误判为云的现象。对五幅图像的检测结果取平均值,新算法对于实验图像的平均召回率为93.6%,高于对比算法的75.2%;平均虚警率为8.5%,低于对比算法的10.5%;平均准确率为95.4%,高于对比算法的88.9%。由定量分析结果可见,基于层次支持向量机的云检测算法适用于多种下垫面的云检测,整体云检测效果优于传统的支持向量机算法,在对包括厚云边缘过渡部分在内的各种薄云检测上优势明显。
3 结 论
设计的云检测算法综合了云和地物在遥感图像上灰度、纹理、频率特征的差异,采取层次支持向量机进行分类。定性和定量分析表明,在仅使用RGB 波段的条件下,算法能够对多种情况下的遥感图像实现有效的云检测,具有较高云检测准确率的同时可以实现厚云、薄云的区分检测。相较于传统支持向量机云检测方法明显提升了对包括厚云边缘过渡部分在内的各种薄云的检测能力,同时算法在针对似云地物的检测方面也较传统支持向量机算法具有一定优势。但算法在对下垫面为雪地的遥感图像进行检测时虚警率偏高,同时厚云和薄云虽然在学术交流和遥感图像应用中经常使用,但二者并没有准确可量化的分类标准,所以实验只对厚云、薄云进行了初步的定性区分,并没有进行定量分析。后续研究将重点针对这两点不足之处进行完善。