文章信息
- 王慧芳, 张瑞珏, 匡娇娇, 殷彬, 范赐恩
- WANG Huifang, ZHANG Ruijue, KUANG Jiaojiao, YIN Bin, FAN Cien
- 航拍图像逐步细化的云检测方法
- A Progressive Refinement Scheme for Cloud Detection of Aerial Images
- 武汉大学学报(理学版), 2016, 62(6): 525-530
- Journal of Wuhan University(Natural Science Edition), 2016, 62(6): 525-530
- http://dx.doi.org/10.14188/j.1671-8836.2016.06.006
-
文章历史
- 收稿日期:2015-12-30
2. 上海航天电子技术研究所,上海 201109
2. Shanghai Aerospace Institute of Electronic Technology, Shanghai 201109, China
随着我国航空航天事业的蓬勃发展,越来越多空间探测器投入使用,获取的图像数据量越来越大.而航拍图像作为一种重要的数据来源,具有拍摄范围广、数据量大、目标小等特点,处理需求也与日俱增,特别是将航拍图像应用到目标追踪,实时监视,地貌勘察等领域[1].由于地球表面大约有50%的区域被云层覆盖,对拍摄航拍图像时会造成很大的干扰.这不仅为后期图像处理带来困难,增加了检测的难度,同时也给航拍图像的一些其他应用带来问题.因此,如何有效地减少或消除云干扰是航拍图像的一项重要研究.
航拍图像目标检测领域包括航拍图像云检测,航拍图像桥梁检测[2],去雾研究[3]等.已有的云检测方法大多是利用云对不同光谱的反射特性,选取合适的阈值进行云检测[4].还有依据图像纹理检测,即模式识别方法[5]等.但不同于多光谱卫星图像,大多数航拍图像只含有红绿蓝(RGB)三个通道的光学数据,没有其他任何辅助通道信息[6].本文图像也只含有RGB三个通道信息,因此需要根据云区域在航拍图像中的特有属性进行方法设计.Zhang等[7]提出了基于双边滤波算子的云检测框架,但双边滤波算子不适用于对任意尺度的细节提取,当增大平滑参数进行多次迭代时,不能很好的保持边缘,会出现梯度反转等问题.廖斌等[6]在此框架的基础上提出基于自适应引导权的边缘敏感递归滤波算子,其检测结果较好,但计算量大.本文算法基于Sobel算子和LOG算子相结合[8]来提取边缘,构建细节图像,算法简单,且细节信息保留较完整.
包含云区域的航拍图像颜色通常具有以下相同的属性[7]:
1)云区域的反射率通常比无云的区域高,因此云区域通常有更高的亮度;
2)大多数云区域通常有较低饱和度和色调;
3)地面目标的特征被云弱化了,因此图像中被云覆盖的区域通常都有较少的细节;
4)图像中云区域总是成片出现;
5)半透明云像素通常出现在云的边界地区.
基于上述结论,本文在文献[7]算法基础上进行改进:首先在航拍图像RGB模型转换为HSI (H, hue, 色调;S, saturation, 饱和度;I, intensity, 亮度)模型时做了改进,得到的云区显著图能够很好地拉大云区域和非云区域的差异;其次,在构建细节图像时采用Sobel算子和LOG算子相结合的边缘提取算法,弥补了彼此之间的不足,从而更好地检测出边缘细节,使生成的细节图像更加精确.
1 方法图 1为逐步细化的云检测系统流程图.首先构造输入遥感图片的云区显著图,设置最优阈值获得初步云检测结果,之后将另外获得的细节图像与初步云检测结果相融合,再通过引导滤波,获得最终检测结果.
![]() |
图 1 逐步细化的云检测系统流程图 Figure 1 Flow diagram of cloud detection system of progressive refinement scheme |
人眼对图像亮度的辨识能力高于对色度、饱和度的辨识能力.因此,需先将一个输入航拍图片RGB模型,转变成HSI颜色模型[9],设:
![]() |
(1) |
其中,R、G、B分别对应于红、绿、蓝三个通道的颜色像素值.色调H,饱和度S,亮度I的值分别为:
![]() |
(2) |
![]() |
(3) |
![]() |
(4) |
根据彩色航拍图像属性,亮度I较高且色调H较低,所以先构造一个云区显著图[7],以此突出有云区域和无云区域之间的区别.将输入图像Xnota定义为:
![]() |
(5) |
Iintensity和Ihue分别代表HSI图像的亮度和色调像素值,且像素值范围都约束在[0,255].为了消除边缘模糊度,用双边滤波器对Xnota进行滤波处理;为了凸显云区域与非云区域的显著性,将滤波后的图像像素范围同样限定在[0,255],从而得到输出图像Ynota,即为云区显著图.Ynota被用作下一步最优阈值设置方案的输入图.
1.2 最优阈值设置首先用全局阈值方法--大津法[10]从云区显著图的直方图里选取阈值TOTSU,然后云区显著图在TOTSU的作用下获得了初步云检测结果Ypre.
![]() |
(6) |
然而使用大津法,结果可能会出现阈值漂移,即:如果图像的高像素值范围相对较大,得到的阈值也较高,基于此高阈值的初步云检测结果Ypre会错过一些像素值较低却是真正云像素的区域.相反,如果低像素值范围相对较大,得到的阈值比较低,基于此低阈值的初步云检测结果Ypre会将部分无云区域误认为有云区域.例如,图 2(a)是云区显著图Ynota的亮度的直方图,可以看出位于高像素区域的概率值较大.图 2(b)是基于大津法阈值得到的初步云检测结果Ypre的亮度直方图,其中绿色区域为无云像素对应的概率值,黄色区域对应有云像素概率值.如果大津法选中的阈值是TOTSU=100,比真实的阈值高,使用这个值进行云区域划分,将会漏掉了一些云区域像素.
![]() |
图 2 亮度直方图 (a)云区显著图;(b)大津法阈值检测结果 Figure 2 Intensity histogram (a) The significance map for cloud regions; (b) The threshold detection result from Otsu's method |
为解决大津法出现的误检情况,下面从亮度和色调两个方面来确定最优阈值.根据引言中提到的属性1和属性2可知,航拍图像的云区域亮度通常较高,而饱和度及色调较低.为了确定亮度和色调的大致范围,采用已有的关于航拍图像的统计数据[7],从中统计出500张彩色航拍图像的亮度和色调分布,如图 3所示.
![]() |
图 3 航拍图像亮度和色调的统计分布图 (a),(b)分别为亮度直方图及相应的累积直方图;(c),(d)分别为色调直方图及相应的累积直方图 Figure 3 The statistical distribution of intensity and hue of aerial cloudy images (a), (b) are histogram of intensity and the corresponding cumulative histogram, respectively; (c), (d) are histogram of hue and the corresponding cumulative histogram, respectively |
其中,图 3(a)为所选航拍图像的亮度直方图, 图 3(b)是相应的累积直方图,图中超过95%的云像素值不低于100.图 3(c)为色调直方图,而图 3(d)是相应的色调累积直方图.显然,几乎所有的色调值都分布在区间[50, 80]中.根据上面统计结果,选择的亮度阈值应不低于100,且实际中上限常设为150,以此来保证真正的云区域像素不被遗漏,所以最优阈值定义为:
![]() |
(7) |
其中,TOTSU是大津阈值法对云区显著图进行计算获得的全局阈值,这样可以计算出更精确的初步云检测结果.同样发现,色调分布在区间[50, 80],故将色调值在50到80的像素点定为云区域,其余则为无云区域.这样,初步云检测结果Ypre经过强度和色调的调整,得到了进一步云检测结果Ystep_pre.
初步云检测结果如图 4所示.其中,图 4(a)是输入航拍图像,图 4(b)由文献[7]得到的云区显著图,通过对比分析可知,本文方法得到的云区显著图(图 4(c))的显著性更明显.图 4(d)是大津法得到的阈值分割结果即初步云检测结果Ypre.
![]() |
图 4 初步检测结果对比 (a)输入航拍图像;(b)文献[7]云区显著图;(c)本文云区显著图;(d)大津阈值法云区域图 Figure 4 Comparison between the results of preliminary cloud detection (a) Input aerial photograph; (b) Significance map of cloud regions in Ref.[7]; (c) Significance map of cloud regions in this paper; (d) Cloud detection result from Otsu's method |
在进一步云检测结果Ystep_pre中,可能包含一些无云区域,通过剔除这些无云区域以实现更好结果.由引言中属性3可知,航拍图像中云区域细节通常比较少,而背景的细节通常较复杂.因此,将细节图像检测加入到云检测系统中.本文基于Sobel算子与LOG算子相结合的方法来提取图像边缘[8],构造细节图像,即先用8个方向模板的Sobel算子提取图像边缘,再用LOG算子进一步提取.LOG算子是:
![]() |
(8) |
(8)式中,以LOG算子▽[0,255]G(x, y)对原始灰度图像进行卷积运算,得到的零交叉点作为边缘点.由于一些云区域(例如卷积云)的边缘可能比较明显,这使得云区域边缘附近的无云区域容易被误认成有云区域.因此,采取Matlab中imfill函数来填充边缘,填充之前,先排除较小的零散集群,零散集群的最低像素阈值Tsize设为120.最终得到细节图像Ydetail,然后将进一步云检测结果Ystep_pre和细节图像Ydetail进行融合,获得细致云检测结果YFiner,如下式:
![]() |
(9) |
图 5(b)是经过亮度和色调调整之后得到的进一步云检测结果Ystep_pre,与图 4(d)大津阈值法处理结果相比较,最优阈值设置可以避免误检的问题;(c)是本文边缘提取效果,(d)是文献[7]边缘提取效果,可看出本文方法所得到的图像边缘略细致.
由属性5知,当云的边界区域出现半透明云像素时,可能会被漏检,因此本文采用引导滤波器[11]来完善薄云边界的检测.引导滤波用到了局部线性模型,而一个复杂的函数可以用很多局部的线性函数来表示,当需要求出该函数上某一点的值时,只需计算所有包含该点的线性函数值并做平均即可.图像可以被认为是一个二维函数,且假设在一个二维窗口内,该函数的输出与输入满足线性关系.解析表达式如下:
![]() |
(10) |
式中, q是输出图像的像素值,p是输入图像的像素值,i和k是像素索引,a和b是当窗口中心位于k时的线性函数系数.
将之前的细致云检测结果YFiner用作输入图像,原始的航拍图像作为参考图像,通过引导滤波输出图像(图 6(c)).在窗口半径[11]的像素宽度为60、ε=10、选择阈值TBinary=60的情况下,得到最终的云检测结果Yfinally,如图 6(d)所示.图 6(b)是得到的细致云检测结果YFiner,可看到大多数被误认为云区域的无云区域已经被删除.与图 6(b)比较,图 6(d)检测出了云边缘区域的大多数半透明云像素,减少了漏检.
本文逐步细化的云检测方法与几组自动图像分割方法进行了比较,其中航拍图像包含薄云、水域、雪域和半透明云等,如图 7所示.图 7(a)为原图,图 7(b)是K-means检测法效果[12],其中K-means是基于图片亮度,通过计算两个聚类中心得到的结果.图 7(c)为均值漂移法效果[13],首先使用均值漂移将图像分割,检测图像各个像素点的亮度,再把亮度值超过100被视为云区域.图 7(d)是文献[7]的效果图,图 7(e)是本文提出的逐步细化的云检测方法效果,图 7(f)是人眼识别云区域.通过对比各图可知,K-means方法很容易将无云区域误判为有云区域, 检测效果略粗糙.均值漂移对小块云的检测效果不是很好,特别是对包含半透明云和雪域的图片,在细节处理上效果不佳.本文方法与文献[7]效果接近,但本文对零星的小块云的判定较准确, 更接近人眼实际观测的结果.因此,逐步细化的云检测结果更好.本文用错误率(error rate,ER)定量评估云检测方法的效率,ER被定义为:
![]() |
(11) |
![]() |
图 7 检测结果对比 (a)原图,(b) K-means,(c)均值漂移[13],(d)文献[7]方法,(e)本文方法,(f)人眼识别 Figure 7 The images comparison between detection results with different methods (each row from top to bottom contain thin clouds, water, snow, and translucent cloud respectively) (a) original image, (b) K-means, (c) mean shift[13], (d) method in Ref. [7], (e) method of ours, (f) ground truth |
上式中,CN表示本身是云像素却被识别成非云的像素点数量,NC表示非云区域却被认为是云区域的像素点数量,TN表示像素总数量.图 7中第一列从上到下四张原始图片经四种方法处理后的ER值如表 1示,可看出,本文方法与K-means、均值漂移处理结果相比有更低错误率,与文献[7]结果接近.由于一般传统方法容易将高亮度非云区域误认为云区域,且很难检测到半透明和薄云像素,所以错误率更高.
本文云检测根据云区域航拍图像颜色的五个属性,深入分析图像本身的信息,提出一个改进的逐步细化的云区域检测方法.实验证明该方法能够检测出厚云、薄云和半透明云,检测率高,且经过视觉估计和定量评价后,与其他经典算法相比,本文算法检测结果更好.
[1] | 于映雪.航拍图像中指定目标的锁定与跟踪技术研究[D].南京:南京航空航天大学, 2012. YU Y X. Research on Defined Target Locking and Tracking in Rerial Images[D]. Nanjing: Nanjing University of Aeronautic and Astronautics, 2012(Ch). http://cdmd.cnki.com.cn/Article/CDMD-10287-1014059795.htm |
[2] | 崔东顺.可见光航拍图像水上桥梁检测算法研究[D].北京:北京理工大学, 2015. CUI D S. Detection of Bridge over Water on Optical Aerial Images[D]. Beijing: Beijing Institute of Technology, 2015(Ch). http://cdmd.cnki.com.cn/Article/CDMD-10007-1015029835.htm |
[3] | 孔庆红.基于暗原色先验的无人机航拍图像去雾算法研究与实现[D].青岛:中国海洋大学, 2014. KONG Q H. The Defog Algorithm on Research and Implement of UAV Aerial Images Based on the Dark Channel Prior[D]. Qingdao: Ocean University of China, 2014(Ch). |
[4] | 冯书谊, 张宁, 沈霁, 等. 基于反射率特性的高光谱遥感图像云检测方法研究[J]. 中国光学 , 2015 (2) : 198–204 FENG S Y, ZHANG N, SHEN J, et al. Method of cloud with hyperspectral remote sensing image based on the reflective characteristics[J]. Chinese Optics , 2015 (2) : 198–204 |
[5] | CAMPS-VALLS G, BRUZZONE L. Kernel-based methods for hyperspectral image classification[J]. IEEE Transactions on Geoscience & Remote Sensing , 2005, 43 (6) : 1351–1362 |
[6] | 廖斌, 付忠旺. 基于边缘敏感递归滤波的彩色航拍像云检测[J]. 系统工程与电子技术 , 2015, 37 (12) : 2879–2886 LIAO B, FU Z W. Cloud detection of color aerial images by edge-aware recursive filtering[J]. Systems Engineering and Electronics , 2015, 37 (12) : 2879–2886 |
[7] | ZHANG Q, XIAO C X. Cloud detection of RGB color aerial photographs by progressive refinement scheme[J]. IEEE Transactions on Geoscience & Remote Sensing , 2014, 52 (11) : 7264–7275 |
[8] | 秦严严, 郭建兴, 许宏科. 基于Sobel和LOG相结合的边缘检测与细化方法[J]. 微型机与应用 , 2014 (7) : 35–37 QIN Y Y, GUO J X, XU H K. Edge detection and thinning method via combining Sobel and LOG operator[J]. Microcomputer & its Applications , 2014 (7) : 35–37 |
[9] | 孙立明.卫星及航拍图像的云雾噪声去除研究[D].哈尔滨:哈尔滨工程大学, 2006. SHUN L M. The Removal of Fog and Cloud in the Satellite and Photography Images[D]. Harbin: Harbin Engineering University, 2006(Ch). http://cdmd.cnki.com.cn/Article/CDMD-10217-2006133891.htm |
[10] | LAN X, ZHANG L D, SHEN H F, et al. Single image haze removal considering sensor blur and noise[J]. Journal on Advances in Signal Processing , 2013, 2013 (1) : 1–13 DOI:10.1186/1687-6180-2013-1 |
[11] | HE K M, SUN J, TANG X O. Guided image filtering[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence , 2013, 35 (6) : 1397–1409 |
[12] | LIN W T, LIN C H, WU T H, et al. Image segmentation using the K-means algorithm for texture features[J]. World Academy of Science, Engineering and Technology , 2010, 65 : 612–615 |
[13] | COMANICIU D, MEER P. Mean shift: A robust approach toward feature space analysis[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence , 2002, 24 (5) : 603–619 |