黄雯嘉
(四川大学计算机学院,成都 610065)
在图像中,阴影有时候可以在图像场景中为投射物体提供位置和几何形状信息,在目标追踪和识别等研究中阴影的存在也可能会为最后的实验带来误检测。在AR应用中,为了提高虚实一致性,需要知道场景中的阴影区域。所以随着计算机视觉的发展,阴影检测变得越来越重要,目前有很多阴影检测的方法被提出,如文献[1]]就利用了再HIS颜色空间中利用光谱比率来检测阴影,还有基于RGB彩色空间的阴影检测方法[2],而超像素是一种图像分割技术[3],主要原理是将特征相似的相邻像素聚类在一起组成一个大的像素块,SLIC(Simple Linear Iterative Clustering)[3]是一种思想简单,实现方便的算法,它能生成紧凑、近似均匀的超像素。图割算法可以很好地将前景和背景区分开来,目前已经有很快的imagematting算法[4],只需要用户简单地进行交互就能把背景和前景区分开来。在阴影检测的方法中,检测阴影区域的方法还不够多,并且其中很多方法需要用户进行手动交互,本文即检测到了阴影边缘,然后利用超像素分解思想和图割算法对其进行生长从而最后能得到图像中的阴影区域。
图1 算法流程
如图1所示,本文的阴影区域检测算法提供的是由阴影边缘延伸到区域的一个过程,整个算法分为以下几个步骤:(1)首先利用Canny算子对待检测图像进行边缘检测,其中为了去掉杂边可以先对图像进行Mean Shift平滑处理;(2)利用阴影区域和非阴影区域的光照强度比率恒定这个特点来筛选出阴影边缘;(3)沿着阴影边缘的梯度方向,对阴影边缘两边的光照强度进行比较,选出候选的阴影像素和非阴影像素。(4)利用(3)中已经标记好的阴影像素点和非阴影像素点作为种子点,利用超像素分解进行区域生长;(5)最后利用(4)中的到的mask图像和利用图割算法对整幅图像进行优化得到检测后的阴影区域。
在对待检测图像进行Canny边缘检测之前,为了去除细小的杂边,首先需要对图像进行预处理,使用Mean Shift对图像滤波,可以去除图像中的一些噪声点,提高边缘检测的有效率。图像滤波后,采用Canny算子对处理后的图像进行边缘检测,得到了阴影检测候选边。
如果将彩色图像转换为LAB颜色空间,则可以将L通道的值表示为该像素点的亮度值。等式(1)显示了光照强度和L通道值的关系,其中是该点的像素强度是该点的材质信息是该点的光强度。
由于阴影是因为投射物体遮挡住太阳光产生的,所以在阴影区域只有天空光作用,而非阴影区域不仅有天空光作用,还有太阳光进行作用。对于同一材质上的阴影区域和非阴影区域,可以利用公式(2)和公式(3)来计算出天空光强度和全光照强度。其中Ai表示的是颜色系数,si,j表示的是阴影像素点的强度,表示的是非阴影像素点的强度。
由此可以得到天空光强度和全照强度的比例因子r,r可以由公式(4)表示:
在投影平面材质不变和光照环境不变的情况下,r是保持不变的,在这个基础上可以利用先验知识选取阈值来进行判断最后筛选出所需要的阴影边缘。
由于上一节提到可以用LAB颜色空间中的L通道的值近似表示光照强度I,则可以由公式(5)得到指定区域的像素强度总和,首先沿着阴影边缘的梯度方向,在阴影边缘两边各选取n个点,再利用公式(5)求得阴影像素点两边的已选择像素点的光照强度总和,并对其进行比较,则光照强度值小的就可以标记为阴影像素点,与此相反,光照强度值大的像素点就可以标记成非阴影像素点。
利用SLIC算法对整幅图像进行超像素分割,上面已经得到阴影像素点ps,以ps为种子点,并得到ps在超像素分割后的索引值,在ps附近查找和ps有相同索引值的像素一起组成阴影块,同样的方法得到非阴影块,这样就可以得到已经确定的阴影块和非阴影块。
利用上一节中得到的阴影块和非阴影块可以由此产生相应的mask图像,mask图像是对图像区域进行分类,其将图像中的像素分为三类:(1)阴影像素集合,(2)非阴影像素集合,(3)灰色像素集合。其中白色的像素由阴影块得到,表示此处的像素属于阴影,而mask图像中的黑色像素由非阴影块得到,表示图像此处的像素属于非阴影。而未被标注为黑色或白色的区域即为后续需要利用图割算法进行分类的像素。
对图像分好类以后,可以利用室外图像抠图算法来进一步确定灰色像素点的分类。将阴影区域当做前景,非阴影区域当做背景,则图像的像素点强度可以表示为前景像素和背景像素的线性组合,公示(6)表示了这个线性关系。其中Ii,j表示像素点( )i,j的RGB值,Fi,j表示前景像素点的RGB值,Bi,j表示背景像素点的RGB值。αi,j用来表示前景像素和背景像素的混合程度。我们将(1)带入(6)就可以得到阴影的抠图模型(7):
利用室外图像抠图算法来确定灰色像素的分类,通过最小化能量函数(8),来确定灰色像素的最后分类
其中̂是像素标签,当时表示像素属于阴影几何,当表示待分类像素属于非阴影集合,Φ为文献[4]中提出的拉普拉斯抠图矩阵(Laplacian matrix),而对角矩阵D由0和1组成表示像素点已经确定,反之表示像素点还没有进行分类,最后,通过求解式子(8)来得到m的最后的值,其中d是由D的对角元素组成的向量,λ在实验中取0.02。
对于单幅图像,首先进行边缘检测,并利用光照强度的比率筛选出所需要的阴影边缘,再利用非阴影区域和阴影区域的光照强度差异,选择出阴影像素点和非阴影像素点,并利用超像素分解的思想对其进行生长,最后将阴影区域作为前景,非阴影区域作为背景利用图割算法进行优化,图2显示了实验结果,图(a)为原图像,图(b)显示了图像平滑处理后的边缘检测结果,图(c)显示了利用光照强度比例筛选出的阴影边缘,图(d)和(f)显示了利用光照差异选择的阴影像素点和非阴影像素点,图(e)和(f)显示了经过超像素分解生长后得到的阴影块和非阴影块,图(h)为检测结果。经过试验能证明这个算法能很好地检测出阴影区域。
这篇文章提出了一个完整的框架去检测单幅图像中的阴影区域,并且不需要用户进行交互。可以很好地检测出室外的地面阴影区域,为后续的图像处理提供信息和帮助。本文对场景复杂的图像的阴影检测结果不是很理想,这些都是以后需要努力和改进的目标。
图2 实验结果
参考文献:
[1]Victor J.D.Tsai.A Comparative Study on Shadow Compensation of Color Aerial Images in Invariant Color Models.IEEE Transactions on Geo science and Remote Sensing,2006,44(6):1661-1671.
[2]王军利,王树根.一种基于RGB彩色颜色空间的影像阴影检测方法[J].信息技术,2002,26(12):7-9.
[3]R.Achanta,A.Shaji,K.Smith,A.Lucchi,P.Fua,S.Susstrunk.Slic Super pixels.Technical Report149300 EPFL,(June),2010.4,5.
[4]Levin A,Lischinski D,Weiss Y.A Closed form Solution to Natural Image Matting[J].Pattern Analysis and Machine Intelligence,IEEE Transactions on,2008,30(2):228-242.