陈卓(四川大学视觉合成图形图像技术国防家重点学科实验室,成都 610025)
一种针对单幅室外图像的阴影检测算法
陈卓
(四川大学视觉合成图形图像技术国防家重点学科实验室,成都610025)
一直以来,阴影检测都是图像处理领域的研究热点之一。图像中的阴影会增加物体识别、图像分割等算法的难度,所以有效地检测阴影可以显著提高图像处理领域许多算法的性能。
最近十多年中,大量图像处理中的阴影检测算法涌现出来。一部分算法基于阴影边缘。该方法通过比较两种边缘来检测阴影[1]:光照不变图像的边缘和原图像的边缘。该方法的一大限制在于对处理图像有着很高的质量要求,当所处理图像为普通图像时,该算法效果一般。另一部分算法基于阴影区域。该方法基于光照强度、梯度等信息,通过训练条件随机场来判断阴影[2]。但该方法有着冗长的训练过程,并对训练集的依赖度较高。时至今日,在光照、物体反射率和阴影几何形状等因素的影响下,阴影检测仍然是一个具有挑战性的问题。特别地,对于单幅室外图像,由于其信息少、场景复杂等原因,针对该图像的阴影检测更是难上加难。
因此,本文针对单幅室外场景的图像,提出了一种新的阴影检测算法。首先,算法利用阴影导致的纹理和亮度变化特征,结合局部和全局信息对图像进行分割。然后,针对过度分割产生的问题,本文提出了一种新的基于边缘的区域融合算法,可有效地将图像中阴影区域和非阴影区域分割开来,同时可以分别把阴影区域和非阴影区域分割成若干个子区域。然后,利用单个区域信息和区域匹配的信息,分别训练一个SVM,对阴影进行识别。本文的主要贡献包括:
●提出了一种新的基于阴影特征的图像分割算法,该算法结合边缘检测和区域检测,准确地将阴影和非阴影区域分割开。
●整合了图像分割和阴影检测算法,利用相同的阴影特征进行分割和检测,使算法内部的一致性增强,并拥有更好的检测效果。
1.1图像分割
很多图像分割算法已经被开发出来,这些算法大致可分为两类:基于轮廓/边缘信息的分割,如Canny算法[4];以及基于区域信息的分割,如MeanShift[5],k均值算法[6]等。同时,很多研究者认为作为分割图像的两种方法,二者可以有效的结合起来。文献[7]提出了这样一种全新的方法,该方法结合了轮廓检测和图像分割,利用检测出来的边缘信息构建了一个分层的区域树,很好地融合了两种方法。
图1 表示算法处理的流程,依次为(a)→(b)→(c)→(d)
1.2阴影检测
由于阴影会显著降低光照强度,所以一部分阴影检测的方法是基于光照模型,或者颜色模型的。文献[8-9]利用颜色空间HSI中的H和I空间,通过两者之间的比值来检测阴影检测。然而,该方法更适合检测航拍图中的阴影,或者图像中比较明显的阴影,其对室外复杂场景中阴影的检测效果差强人意。
有别于基于光照模型的检测方法,文献[3]试图通过对比区域之间的信息来检测阴影,具有极强的启发意义。这种方法通过训练SVM来评价一个区域以及区域之间的关系,然后再据此构建一个能量函数,最后求解这一函数来综合判断阴影区域。
2.1基于阴影特征的图像分割
图像分割是计算机图像学领域的一个基本问题。如果可以将图像中阴影和非阴影区域准确地分割开来,将对阴影检测带来极大的便利。因此,图像分割对阴影检测有着重要的意义。
当一个区域被阴影覆盖时,它的纹理和光照会发生变化[2]。而文献[3]中使用的MeanShift算法不能很好地利用这一性质。本文通过改进[7]中的算法,根据阴影的特征,融合阴影边缘检测和阴影区域检测,分割阴影和非阴影区域。该方法大致分为两个步骤:阴影边缘检测和阴影分割。
(1)阴影边缘检测
本文与[7]中的算法不同之处在于:首先在阴影边缘检测部分,本文通过亮度和纹理基元(textons)[7]信息,计算每个像素点的梯度信息G(x,y,θ),并据此分析出图像的轮廓信息gPb。
(2)阴影分割
经过上文分析得到的gPb能够有效的表示轮廓,但是这些轮廓也不是完全封闭的,因此不能用作分割图像。为了更好地分割图像,本文使用分水岭算法利用轮廓信息gPb来进行区域分割。然而,分水岭算法会产生过度分割问题,为此本文开发了一种全新的方法来解决这一问题。
在分水岭算法中,定义每个“集水盆地”对应一个区域,记为P0;两个集水盆地交汇处是“分水岭”,记为K0。接着定义一个无向图G=(P0,K0,W(P0),E(P0)),其中W(P0)表示每条分水岭的权值,由分水岭上点的总能量处以分水岭上点的个数而得;E(P0)表示每个集水盆地的能量值,每个盆地的初始能量均为零。同时需要注意的是在图中,每条都恰好分割两个区域,W(P0)描述了相邻两个区域之间的相异性。
将分水岭按照其权值,由小到大存入队列,并依此判断其是否需要合并。假定R1和R2由边C*分割,且R=R1∪R2,合并的规则如下:
●R1和R2合并的条件是:如果min{E(R1),E(R2)} ≠0,则W(K0)≤τ·min{E(R1),E(R2)}或min{E(R1),E (R2)}=0。其中,τ表示一个常数。通过调整τ就可以调整合并条件,从而控制最终区域的大小,τ越大最终合并的区域面积越大。
●E(R)、P0和K0的合并方法是:E(R)=max{E(R1),E(R2),W(C*)};P0←P0{R1,R2}∪R;K0←K0{C*}。
2.2阴影检测
文献[3]提出了一种基于区域匹配的阴影检测方法。该方法认为判断一个区域是否为阴影,不仅仅是和区域本身的性质相关,还应该和其他区域相关。也就是说,需要结合区域之间的关系来判断一个区域是否为阴影。
(1)区域识别
对于单区域识别,本文训练一个分类器(SVM)来判断单个区域是阴影的概率。训练集已手工标记出了阴影部分,分类器利用阴影的亮度和纹理基元来进行分类,输出为表示区域为阴影的概率。
对于匹配区域识别,检测一个区域是否为阴影区域,应该与其纹理相似的区域进行比较。如果两个区域亮度相似,则二者处于同一光照强度下(阴影或者非阴影);如果两者的亮度相异,则认定亮度较暗的区域为阴影。这里,利用分类器训练四个特征来判断阴影区域[3]:亮度和纹理基元的χ2距离,平均RGB比,色彩对齐度和区域归一化距离。
(2)算法
由上述构建能量方程,使用图割算法[10]得到最终的阴影检测结果:
同时,
图2 实验结果图
第一列是原图像。第二列是文献[3]所使用的MeanShift算法分割的图像;第三列是本文算法分割的图像;第四列是文献[3]阴影检测结果的投影图像;第五列是本文算法阴影检测结果的投影图像。
本文在多张室外图像上进行了实验,这些图像很好地囊括了不同种类的阴影图像,具有较强的说服力,如图2所示。通过将本文算法和文献[3]中的算法进行比较,可以看出:本文算法很好地分割了图像中阴影和非阴影区域,并准确地检测了阴影区域。
本文提出了一种新的阴影检测算法。分割图像和检测阴影都使用了相同的阴影特征,图像分割更加准确,阴影检测的效果更好。另外,根据轮廓信息,提出了一种区域合并的算法,并且可以通过控制区域合并的参数,方便地控制合并区域的大小。这些优点共同提升了阴影移除的效果。
[1]G.D.Finlayson,S.D.Hordley,C.Lu,and M.S.Drew.On the Removal of Shadows from Images.IEEE Transactions on Pattern Analysis and Machine Intelligence,2006,28(1):59-68.
[2]G.D.Finlayson,M.S.Drew,C.Lu.Intrinsic Images by Entropy Minimization.European Conference on Computer Vision,Prague,Czech Republic,2004:582-595.
[3]Guo Rui-qi,Dai Qie-yun,Hoiem,D.Single-Image Shadow Detection and Removal Using Paired Regions.IEEE Conference on Computer Vision and Pattern Recognition.Providence,RI,2011:2033-2040.
[4]Canny,John.A Computational Approach to Edge Detection.IEEE Transactions on Pattern Analysis and Machine Intelligence,1986,8 (6):679-698.
[5]D.Comaniciu and P.Meer.Mean Shift:A Robust Approach Toward Feature Space Analysis.IEEE Transactions on Pattern Analysis and Machine Intelligence,2002,24(5):603-619.
[6]J.B.MacQueen.Some Methods for Classification and Analysis of Multivariate Observations,Berkeley,Proceedings of 5-th Berkeley Symposium on Mathematical Statistics and Probability,University of California Press,1967.
[7]P.Arbelaez,M.Maire,C.Fowlkes,J.Malik.IEEE Transactions on Pattern Analysis and Machine Intelligence,2011,33(5):898-916.
[8]TSAI V.J.A Comparative Study on Shadow Compensation of Color Aerial Images in Invariant Color Models.IEEE Transactions on Geoscience and Remote Sensing,2006,44(6):1661-1671.
[9]Xiao Chunxia,Xiao Donglin,Zhang Ling,Chen Lin.Efficient Shadow Removal Using Subregion Matching Illumination Transfer.Computer Graphics Forum,2013,32(7):421-430.
[10]Y.Boykov,O.Veksler,R.Zabih.Fast Approximate Energy Minimization Via Graph Cuts.IEEE Transactions on Pattern Analysis andMachine Intelligence,2001,23(11):1222-1239.
Shadow Detection;Shadow Segmentation;Region-Pair
A Shadow Detection Algorithm for Single Outdoor Images CHEN Zhuo
(National Key Laboratory of Fundamental Science on Synthetic Vision,Sichuan University,Chengdu 610025)
1007-1423(2016)06-0060-04
10.3969/j.issn.1007-1423.2016.06.014
陈卓(1989-),男,河南鹤壁人,硕士研究生,研究方向为计算机图像
2016-01-05
2016-02-06
提出一种针对单幅室外场景图像的阴影检测算法。算法首先利用阴影的亮度和纹理特征,融合轮廓检测和区域分割两种方法分割图像;然后,通过训练SVM来检测单个区域信息和区域之间的匹配信息;最后,利用图割算法综合判断阴影区域。实验结果表明,该算法可以有效地分割单幅室外图像中的阴影区域。
阴影检测;阴影分割;区域对
国家自然科学基金(No.61103137)、国家 863计划(No.2013AA013902)、国家自然科学重点项目和科技支撑计划(No.2012BAH62F02)
Proposes a novel shadow detection approach for a single natural outdoor image.This algorithm firstly segments image by using the charac-teristic of shadow:brightness and texture.Then,the algorithm trains a SVM to detect single region information and region-pair informa-tion.At last,uses Graph Cut algorithm to classify shadow/non-shadow regions.Experiments show that this method significantly detects shadow regions in single outdoor images.