APP下载

高分辨率航空影像阴影自动检测和去除

2020-06-04涂继辉杜红眭海刚徐川

遥感信息 2020年2期
关键词:同质邻域轮廓

涂继辉,杜红,眭海刚,徐川

(1.长江大学 电信学院,湖北 荆州 434023;2.武汉大学 测绘遥感信息工程国家重点实验室,武汉 430079)

0 引言

高分辨率航空影像是对地球表面的各种目标进行测量和信息提取的一种重要手段[1-2]。由于各种人工建筑物或者树木的遮挡,高分辨率航空影像中常常会出现许多阴影区域。航空影像中的阴影虽然可以用于对建筑物的提取和高度估计,但同时也对影像中信息的提取、识别和判读造成了一定程度的干扰[3]。因此,如何高效准确进行阴影的检测和去除成为航空影像预处理所面临的难题。

针对遥感影像的阴影干扰,学者们提出了大量阴影检测和去除的算法。阴影检测算法主要分为2类:一类是基于几何模型的方法,该方法主要利用影像的太阳高度角、传感器参数和地面上物体的几何形状等先验信息来检测阴影[4-5],这种方法计算复杂度高,只适合特定场景;另一类是基于阴影特性的方法,该方法主要利用阴影与非阴影区域光谱特征差异来检测阴影[3,6-9]。由于基于颜色和亮度的检测方法更加贴近人的视觉方式,因此这类方法更加简单易行。这类方法又分为2种:一种是基于样本训练[9],然后进行分类检测出阴影,这类算法需要提供足够的样本;另一种是利用彩色空间的变换[3,6],把影像从RGB空间变换到其他彩色空间(HSV、HCV、YIQ等),再利用Otsu等分割算法进行阈值分割,这类算法中颜色空间转换和阈值设定加大了算法的复杂度。阴影去除方法的核心思想是估算光照补偿因子来恢复阴影区域,从而达到阴影去除的效果[10]。因此补偿因子的估算是阴影去除的关键,而如何自动准确在阴影和非阴影区域找到同质区域,是阴影光照补偿因子估算的难点。目前主要阴影去除的方法是在同质条件下阴影和非阴影区域,通过颜色不变性[6,11]、伽玛校正[12]、线形相关[13]、灰度直方图[14]和内外轮廓线[15]等方法,估算阴影光照补偿因子,从而达到阴影去除。然而这些方法对于如何自动准确定位同质区域没有提供较好的解决思路。

基于当前研究的现状,本文提出了一种新的高分辨率遥感影像的阴影自动检测和去除方法。该方法先在RGB颜色空间下利用约束条件下的颜色不变量进行阴影的粗检测;然后用粗检测区域的最大内切圆作为初始零水平集,在缓冲区中进行水平集演化,得到阴影的精确轮廓;再利用轮廓点的邻域窗口的像元估计阴影光照补偿因子。由于阴影轮廓线临近建筑物的一部分明显为非同质区域,本文利用航空影像的POS信息和太阳高度角进行剔除;最后利用阴影的光照补偿因子去除阴影。该方法主要优势如下:无须进行颜色空间域之间的转换,直接在RGB彩色空间下检测阴影,减少了计算的复杂度;利用水平集算法进行阴影轮廓的演化,不但能够提取较为完整的阴影区域和精确的阴影轮廓,而且也为同质区域选取提供了帮助;利用阴影轮廓上点的邻域作为同质区域,可以简单、自动和准确地定位同质区域。实验结果表明,本文算法的阴影检测准确,且效率高,补偿后的影像视觉一致性较好。

1 阴影光照补偿因子估计模型

根据Retinex理论[16],影像是由光照分量反射分量合成而得到。其中光照分量是光源直接照射地面的光线,反射分量是地面反射的光线。影像的光照物理模型如式(1)所示。

S(x,y)=L(x,y)×R(x,y)

(1)

式中:(x,y)为影像像素点坐标;S(x,y)、L(x,y)和R(x,y)分别表示原始影像、光照分量和地面反射率。在自然光照环境下,非阴影区域的光照分量由直接光源分量Ld和环境散射光源分量Le合成。由于障碍物遮挡,直接光照减弱形成了阴影区域,那么阴影区域的直接光源分量应该乘以系数k。因此,式(1)的光照物理模型可以变换为式(2)。

S(x,y)=(k×Ld(x,y)+Le(x,y))×R(x,y)

(2)

当k=1时,表示S(x,y)为非阴影区域;当k=0时,表示S(x,y)为阴影中的本影区域;当0

(3)

由于式(3)中阴影的本影区域k=0,并且同一幅影像中的同质区域内直接光源分量Ld、环境散射光源分量Le和反射光分量R相等,设Ld和Le比值为c,c为常量,那么式(3)可以简化为式(4)。

(4)

阴影去除的核心就是将阴影区域的光照恢复到非阴影区域,而对各个波段分别处理,尽可能保证色调信息的一致性。根据以上的数学推导,阴影去除的目标就是要找到同质区域下的阴影区域和非阴影区域的像素点,利用式(4)估计出比值,然后再利用估计值,将阴影区域像素点各个波段颜色值变换到非阴影区域,从而完成阴影的去除。因此可以认为阴影去除的方法一般分为两步:一是阴影区域的精确检测;二是寻找同质区域下的阴影区域和非阴影区域,估算出阴影光照补偿因子。

2 算法描述

2.1 算法总述

本文的算法主要有如下步骤。首先,利用基于约束条件下的颜色不变量进行阴影区域的粗检测;其次,对阴影粗检测的区域构造外接矩形扩大区域作为缓冲区;再次,利用粗检测区域的最大内切圆作为零水平集,在缓冲区中进行水平集演化,得到阴影的精确轮廓。精确轮廓可以提供更加完整的阴影区域,同时也为后一步同质区域的选取提供了帮助,因为利用阴影轮廓点的邻域作为同质区域的前提条件是提取精确的阴影轮廓。然后,由于阴影轮廓靠近建筑物一部分明显不能作为同质区域,应该剔除掉,因此利用航空影像的POS信息和太阳高度角,求出阴影在影像上的方向,通过阴影质心和阴影的方向切割出不与建筑物相连接的阴影轮廓;最后,对每个阴影轮廓点的邻域建立一个模板窗口,利用模板窗口中的阴影和非阴影部分的关系,估计出阴影光照补偿因子,从而进行阴影去除。算法的总体流程如图1所示。

图1 算法总体流程图

2.2 基于颜色不变量的阴影检测

颜色不变量最初是由Gevers等[17]提出来的,它是一种颜色集合模型,不受视角、物体表面光滑程度、光照方向、光照密度和亮度的影响。目前许多研究者利用颜色不变量替代NDVI进行植被的检测和提取,同时也把它用于阴影检测。例如文献[17]中利用彩色RGB空间的蓝色通道和绿色通道对阴影进行检测。文献[18]对文献[17]进行了改进,利用了RGB的3个通道的颜色进行阴影检测。本文是在文献[18]阴影检测的基础上,加上了约束条件(式(5)),主要目的是为了在阴影检测时剔除绿色植被的错误检测。

(5)

式中:i,j是影像的行列号;SC表示检测的阴影区域;R(i,j)、G(i,j)和B(i,j)分别代表RGB彩色空间的3个颜色通道。因为仅用式(5)中的第一个表达式进行阴影检测,经过实验发现会把绿色植被作为阴影错误检测,因此需要加入约束条件,即式(5)中的第二个表达式作为约束项来滤除错误检测。根据光学原理,植被区域的吸收带位于蓝色波段和红色波段,在绿色波段处为反射峰。非阴影区的光照主要来源于反射光、环境光和大气散射,传感器感知的光强主要为反射光,绿地能强烈反射绿光,因此绿地区域对应像素的G分量有较大的概率。本文在式(5)中加入了检测约束条件,可以滤除检测的绿色植被区域。

2.3 基于水平集的阴影轮廓演化

由于阴影区域的颜色不均匀,采用2.2节颜色不变量检测的阴影区域边界不精细,无法得到较为完整的阴影区域,水平集演化算法具有灵活的曲线演化能力,分割演化的结果轮廓精细清晰且连续性好。由于经典的水平集泛函的极小值通常不容易求得,如果零水平集选择不当,不仅容易演化到局部极小值,而且会降低运算速度,所以水平集函数的初始化非常重要。本文利用已检测阴影区域构建水平集的初始函数和局部缓冲区,提高水平集演化的精度和速度。具体实现过程如下:

1)根据式(5),可由式(6)对图像进行阈值分割,得到只有阴影和非阴影区域的二值图像。其中I(i,j)表示新生成的二值图像,T表示区分阴影和非阴影的阈值。

(6)

2)根据步骤1)中,设二值化图像中阴影区域为Ω,对区域Ω作最小外接矩形,对外界矩形进行扩大一半的面积,得到水平集演化的局部缓冲区Ω0。在对区域Ω求取最大内切圆Φ0,用此Φ0作为初始水平集函数。

Φ0(x,y)=(x-x0)2+(y-y0)2=r2

(7)

3)由于阴影区域内并非均匀区域,往往有树木、车辆等干扰,因此采用文献[19]提出的一种处理非均匀图像的水平集分割模型进行演化。目前的CV模型只针对灰度图像进行演化分割,本文将CV模型扩展到彩色影像上。假设在缓冲区Ω0内为RGB彩色图像空间,局部影像Ii(x,y):Ω0→R2;i∈{r,g,b}。缓冲区中的轮廓线C内为阴影区域Ωshadow,C外为非阴影区域Ωnonshadow,cshadow表示阴影区域内彩色信息的均值,令cshadow=(cshadowr,cshadowg,cshadowb);cnonshadow表示非阴影区域内的彩色信息的均值,令cnonshadow=(cnonshadowr,cnonshadowg,cnonshadowb)。Φ是水平集函数,拟合的能量函数为非均匀灰度,设k为非均匀亮度因子,基于水平集C-V模型的能量函数见式(8)。

(8)

(9)

当Φ不变的情况下,极小化能量函数E(Φ,cshadowi,cnonshadowi),可得到cshadowi和cnonshadowi的表达式为:

(10)

为了求解水平集函数Φ,令cshadowi和cnonshadowi不变,引入时间变量t,将水平集Φ对时间变量t求导,式(8)对应的偏微分方程见式(11)。

(11)

其中,Φ0(x,y)=(x-x0)2+(y-y0)2=r2

2.4 基于阴影轮廓点邻域的阴影去除

本文基于阴影轮廓点进行阴影去除的主要思想是:如图1第⑥步,认为图像中某一个点与其邻域内的点为同质区域,因此取阴影轮廓上的点与其邻域的点组成一个掩模窗口,这个窗口一部分处于阴影区域,另一部分处于非阴影区域,通过阴影区域和非阴影区域的平均像素点的比值,来估计阴影补偿因子。为了使补偿因子更加精确,本文利用阴影轮廓上的所有点来估计阴影补偿因子。但又由于阴影轮廓临近建筑物部分的轮廓点在邻域范围内明显为非同质区域,因此不能让这部分点参与估计阴影补偿因子,需要剔除。本文利用航空影像的POS信息结合航飞的时间来推算出阴影在影像上的方向,通过阴影区域的质心和方向剔除临近建筑物阴影轮廓曲线段。具体实施步骤如下:

1)根据文献[20-21]的方法,利用航飞影像的POS信息和航飞的时间,通过式(12),求出太阳高度角,再根据式(13),求出太阳的方位角A。

sinα=sinφsinδ+cosφcosδcosθ

(12)

(13)

式中:α是太阳高度角;δ是太阳赤纬;φ是观测地的道理纬度;θ表示地方时角。

2)如图2所示,设阴影区域Ω的质心点P0为(x,y),太阳的方位角为A,那么有质心P0和方位角对应的直线方程L1为y=xtanA+b;过质心P0垂直L1的直线方程L2为y=xtan(90-A)+b,直线L2与阴影沿着太阳方向角外的轮廓线交点为A1和A2,曲线段A1A2上的点就是参与因应补偿因子估计的点。

图2 阴影补偿因子估计示意图

5)对阴影区域Ω每个点,利用步骤4)中的阴影补偿因子估计进行换算,就可以去除阴影。

3 实验结果和分析

为了验证本文所提出算法的性能,对2014年四川北川航空遥感影像(分辨率0.25 m)和2015年武汉市航空遥感影像(分辨0.15 m)进行实验,实验环境是Inter Xeno CPU E3-1220 v3 3.10 GHz,Win7,8 GB内存的PC机,编程工具为Matlab2012a。为了定量评价阴影检测的性能,本文采用漏检率FOER、误检率FAER和总错误率FTER,分别定义如式(14)~式(16)所示。

(14)

(15)

FTER=FAER+FOER

(16)

式中:TS表示阴影区域像素点数;FN表示未检测的阴影像素点数;FP表示非阴影区域误检为阴影的像素点数。漏检率、误检率和总错误率都是越小表示检测效果越好。为了定量评价文献中阴影去除算法的效果,主要通过比较阴影去除后区域内的平均亮度和平均梯度作为定量评价。由于文献[22]是一种比较经典的阴影去除方法,因此本文将与文献[22]中改进的Wallis阴影去除算法进行比较。

3.1 阴影检测

阴影去除效果受到阴影区域检测精度的制约,这部分实验将利用式(14)、式(15)、式(16)对阴影检测的精度和阴影去除效果进行定量评估。从图3、图4、图5可以看出,本文阴影去除方法对比改进的Wallis算法,能够较好地扩大阴影区域的亮度,去除后的细节较为清晰。表1给出了3幅影像阴影检测的定量评价指标,本文的阴影检测算法的漏检率均低于文献[8]和文献[9]方法,误检率也略低于另外2种方法。总错误率即综合性能评价分析,均低于另外2种算法,说明本文阴影检测方法具有明显的优势。本文的阴影检测算法之所以取得了较好的检测效果,主要在于水平集算法能够演化出精确的轮廓边界,颜色不变性的粗检测也为水平集演化提供了先验信息。

图3 阴影检测结果(武汉地区1)

图4 阴影检测结果(武汉地区2)

图5 阴影检测结果(北川地区)

表1 阴影检测结果评价表 %

3.2 阴影补偿参数估计

为了进一步检测利用阴影轮廓邻域点得到的补偿因子估计的准确性,本文对图3的最大轮廓邻域中的阴影部分点和非阴影部分的点进行了统计,所用邻域窗口大小为7像素×7像素。图6为阴影补偿因子估计。从图6可以看出,2条曲线具有较强的相似性,即曲线上的点的比值恒定,由此可以推断轮廓点邻域中的阴影部分和非阴影部分的点属于同质区域,利用这些点进行阴影补偿因子的估计,具有较好的可靠性。由于可近似认为地面在1~2 m2范围内为同质区域的可能性较大,因此邻域窗口的大小选取主要取决于影像分辨率与地面同质区域面积的比值。

3.3 阴影去除

从图7、图8、图9可以看出,本文阴影去除方法对比改进的Wallis算法,能够较好地扩大阴影区域的亮度,去除后的细节较为清晰。表2给出了3幅影像阴影去除后的定量评价指标,本文阴影去除算法的亮度均值B和平均梯度值T比原始区域得到了大幅度提高,但不易达到与目标值完全一致的水平,与人工确定3个参数的改进Wallis去除算法的最佳效果比,本文方法整体较优。本文的阴影去除算法之所以取得较好的去除效果主要在于:利用前一步阴影检测中获取的较完整的区域和较精确的轮廓,通过轮廓点邻域区域作为同质区域用于阴影补偿因子的估计,不但估计准确,而且自动化程度高。因此本文算法能够更加稳定和高效地统一恢复所有阴影区域的基本信息,细节纹理恢复较好。

图7 阴影去除结果(武汉地区1)

图8 阴影去除结果(武汉地区2)

图9 阴影去除结果(北川地区)

表2 阴影去除结评价表

4 结束语

为了解决阴影对高分辨率航空影像的信息提取存在着干扰的问题,本文提出了一种新的阴影自动检测和去除方法。该方法利用颜色不变量检测出阴影的区域,然后利用水平集的演化得到阴影精确轮廓,最后利用阴影边界邻域点作为同质区域估算阴影的补偿因子,从而去除阴影。实验证明,该方法能够自动精确地获取阴影区域和进行阴影的去除,不但较好提高了整体的亮度,而且使得阴影的区域地物细节得到了较好的恢复,这对遥感影像的自动化预处理具有重要的意义。

猜你喜欢

同质邻域轮廓
基于混合变邻域的自动化滴灌轮灌分组算法
OPENCV轮廓识别研究与实践
稀疏图平方图的染色数上界
基于实时轮廓误差估算的数控系统轮廓控制
基于邻域竞赛的多目标优化算法
“形同质异“的函数问题辨析(上)
高速公路主动发光轮廓标应用方案设计探讨
关于-型邻域空间
同质异构交联法对再生聚乙烯的改性研究
浅谈同质配件发展历程