一种基于图像分割的阴影检测与去除算法
【专利摘要】本发明公开了一种基于图像分割的阴影检测与去除算法,其涉及图像处理【技术领域】,主要解决如何判断一个区域是否为阴影或是一条边缘是否为阴影以及相应阴影的如何去除的问题。首先利用纹理和亮度特征,结合局部信息和全局信息估计每个像素点是阴影边缘的概率;使用分水岭算法利用轮廓信息
分割图像;利用基于边缘的区域融合算法将图像中阴影区域和非阴影区域分割开来,同时分别把阴影区域和非阴影区域分割成若干个子区域;然后分别训练一个分类器SVM,对阴影进行识别;随后使用图割算法求解检测阴影的能量方程,得到最终的阴影检测结果;最后根据阴影检测的结果,使用抠图算法计算阴影标签,利用标签点亮阴影区域,恢复阴影区域的光照。
【专利说明】-种基于图像分割的阴影检测与去除算法
【技术领域】
[0001] 本发明具体涉及一种基于图像分割的阴影检测与去除算法,用于图像阴影检测和 半影区域去除,属于图像处理【技术领域】。
【背景技术】
[0002] 阴影检测一直是图像处理领域的研究热点之一。由于阴影的存在会增加物体识 另IJ、视频分割等算法的难度,将阴影检测出来并将其去除可显著提高图像处理领域许多算 法的性能。
[0003] 很多阴影检测的方法是基于光照模型,或者颜色模型提出的。如在颜色空间HSI 下的阴影检测方法,该方法利用HSI空间中H和I的比值来检测阴影。但该方法更适合航 拍图或者阴影比较明显的图像,针对复杂场景下的阴影检测效果则差强人意。但是,由于不 能很好地判断一个像素点属于阴影还是属于颜色比较暗的非阴影,自动检测阴影的方法仍 然是阴影检测的一大挑战。
[0004] 迄今为止,图像处理领域已经存在大量的阴影检测算法。根据检测手段的不同,可 将现有的阴影检测算法分为基于边缘的阴影检测和基于学习的阴影检测。
[0005] 基于边缘的阴影检测算法首先需要场景彩色图和光照不变的灰度图,灰 度图由校准的摄像机获得,通过比较灰度图的边缘和原图像的边缘来检测阴影 (G. D. Finlayson,2006)。该方法对高质量图像有着极佳的处理效果,而对普通图像效果 一般。基于学习的阴影检测算法则考虑到阴影边缘的复杂性,转而从经验的角度将数据 驱动的方法引入到阴影检测,如基于光照强度、梯度等信息利用条件随机场(Conditional random field,CRF),判断一个区域是否为阴影;或是利用CRF来判断一条边缘是否为阴 影。虽然这种利用条件随机场CRF的方法可以在一定条件下很好地检测阴影,但它训练过 程冗长,并对训练集的依赖度较高。时至今日,在光照、物体反射率和阴影几何形状等因素 的影响下,阴影检测仍然是一个非常具有挑战性的问题。
【发明内容】
[0006] 针对上述现有技术,本发明的目的在于如何提供一种基于图像分割的阴影检测 与去除算法,其可以有效地分割阴影和非阴影区域,还可以更好地检测和去除场景中的自 阴影和投射阴影。
[0007] 为了解决上述技术问题,本发明采用如下技术方案:
[0008] -种基于图像分割的阴影检测与去除算法,其特征在于,包括如下步骤:
[0009] SlOO :利用纹理和亮度特征,结合局部信息和全局信息估计每个像素点是阴影边 缘的概率;
[0010] S200 :使用分水岭算法利用轮廓信息gPb分割图像;
[0011] S300:利用基于边缘的区域融合算法将图像中阴影区域和非阴影区域分割开来, 同时分别把阴影区域和非阴影区域分割成若干个子区域;然后,利用单个区域信息和匹配 区域的信息,分别训练一个分类器SVM,对阴影进行识别;随后使用图割算法求解检测阴影 的能量方程,得到最终的阴影检测结果。
[0012] S400,根据阴影检测的结果,使用抠图算法计算阴影标签,利用得到的标签点亮阴 影区域,恢复阴影区域的光照,使其与周围非阴影的区域光照相同。
[0013] 所述步骤SlOO主要以下几步组成:
[0014] SlOl :通过计算方向梯度信息G(x,y,Θ)构建阴影边缘检测器Pb,阴影边缘检测 器分别计算亮度和纹理基元两个通道的梯度信息G(X,y,Θ ),阴影边缘检测器的构建方法 是在图像中一点(x,y)为中心,以r为半径画一圆,该圆被方向为Θ的直径分割为两个半 圆;
[0015] S102 :通过计算这两个半圆的柱状图之间的X 2距离得到方向梯度G :
【权利要求】
1. 一种基于图像分割的阴影检测与去除算法,其特征在于,包括如下步骤: 5100 :利用纹理和亮度特征,结合局部信息和全局信息估计每个像素点是阴影边缘的 概率; S200 :使用分水岭算法利用轮廓信息gPb分割图像; S300 :利用基于边缘的区域融合算法将图像中阴影区域和非阴影区域分割开来,同时 分别把阴影区域和非阴影区域分割成若干个子区域;然后,利用单个区域信息和匹配区域 的信息,分别训练一个分类器SVM,对阴影进行识别;随后使用图割算法求解检测阴影的能 量方程,得到最终的阴影检测结果。 S400 :根据阴影检测的结果,使用抠图算法计算阴影标签,利用得到的标签点亮阴影区 域,恢复阴影区域的光照,使其与周围非阴影的区域光照相同。
2. 根据权利要求1所述的基于图像分割的阴影检测与去除算法,其特征在于,所述步 骤SlOO主要以下几步组成: 5101 :通过计算方向梯度信息G(X,y,Θ)构建阴影边缘检测器Pb,阴影边缘检测器分 别计算亮度和纹理基元两个通道的梯度信息G(x,y,Θ),阴影边缘检测器的构建方法是在 图像中一点(x,y)为中心,以r为半径画一圆,该圆被方向为Θ的直径分割为两个半圆; 5102 :通过计算这两个半圆的柱状图之间的X2距离得到方向梯度G: I·
其中,g和h代表两个半圆,i代表图像值域上的值; 5103 :将计算得到的检测器Pb结合起来,得到不同尺度、不同通道组合起来的局部信 息(localcues)mPb:
其中,s代表圆的半径,i代表特征通道(亮度、纹理基元);6^α,3)( Χ,7,Θ)比较了 以(X,y)为中心、0 (i,S)为半径大小、Θ为半径方向的两个半圆之间的差异;a则是 各个梯度信息所代表的权重; 在每个点上,选取梯度信息G的最大值作为该点的mPb值,该值表示最终的局部信息: mPb(X,y,Θ) =max0{mPb(X,y,Θ)} (3); 步骤S104 :以mPb构建一个稀疏矩阵,通过计算该矩阵的特征值和特征向量,得到所需 的全局信息;稀疏矩阵是在一个半径r= 5像素的区域内,将每个像素链接起来:
其中,0代表的是i和j之间的联系,P=0.1,接着定义Dii=E具」,通过 (D-W)V=λDv(5) 计算得到特征向量{v。,V1,…,vj,和特征值0 =λλ#…彡λη; 步骤S105 :将步骤S104中的每一个特征向量看做一副图像,通过计算不同方向下的高 斯滤波,得到方向信息然后,将不同特征向量下的方向信息线性叠加起来得 到全局信息sPb:
步骤S106 :将局部信息mPb和全局信息sPb有机地结合起来分析图像轮廓信息gPb:
其中,β^和Y分别表示mPb和sPb的系数。
3. 根据权利要求1所述的基于图像分割的阴影检测与去除算法,其特征在于,所述步 骤S200主要以下几步组成: 步骤S201 :估计出图像中任意一点(x,y)在方向Θ上是轮廓的概率,求出该点轮廓检 测的最大值:
步骤S202 :利用数学形态学,以区域中E(x,y)的最小值为"集水盆地"计算每个区域, 每个"集水盆地"对应一个区域,记为Ptl;两个集水盆地交汇处是"分水岭",记为K。; 步骤S203 :分水岭算法会产生过度分割问题,即将本不应该是边的地方标记为分水 岭,利用区域合并算法解决过度分割问题; 所述区域合并算法如下:定义一个无向图G= (PcpKc^W(Ktl) ,E(Ptl)),其中W(Ktl)表示每 条分水岭的权值,由分水岭上点的总能量除以分水岭上点的个数而得,E(Ptl)表示每个集水 盆地的能量值,每个盆地的初始能量均为零,W(Ktl)描述了相邻两个区域之间的相异性;将 分水岭按照其权值,由小到大存入队列。
4. 根据权利要求3所述的基于图像分割的阴影检测与去除算法,其特征在于,区域合 并算法包括以下步骤为: 一、 找到权重最小的边C*=argminW(C) 假定札和R2由边C#分割,且R=RiUR2,如果min{E(R1),E(R2)}关O,判断是否合并, 合并条件为:则W(Ktl)彡τ·min{E(R1),E(R2)} (9) 或min{E(R1),E(R2)} =O(10), 其中τ为一个常数; 二、 若合并,则更新E(R)、Ptl和KμE(R)、Ptl和K^的更新方法是: E(R) =max{E(R1),E(R2),W(C*)} (11) P0-P0XiRljR2IUR(12) K0-K〇\ {C*} (13)。
5. 根据权利要求1所述的基于图像分割的阴影检测与去除算法,其特征在于,所述步 骤S300中通过解下述能量方程得到最终的阴影检测结果,能量方程是由图割算法解得:
其中,cgime表示区域匹配分类器对于两区域光照相同的估计,表示区域匹配分 类器对于两区域光照不同的估计,Cfmdmv是单区域分类器对单区域区域是否为阴影的估 计,{i,j}eEsame表示相同光照的两个区域,{i,j}eEdiff表示不同光照的两个区域;y= {-1,1}η,当为1时表示该区域是阴影区域。
6. 根据权利要求1所述的基于图像分割的阴影检测与去除算法,其特征在于,在所述 步骤S400中使用抠图算法计算阴影标签,该算法认为一个图像Ii可由前景Fi和背景B4? 合而成,其公式如下: Ii=IiiF^(I-Iii)Bi (18) =Iii (LdR^LeRi)+ (I-Iii)LeRi (19) 其中,Ld是直射光、Le是环境光、Iii是阴影标签、Ri是点i的反射系数。 将前景标记为非阴影,背景标记为阴影,通过计算下述能量方程的最小值得到h的大 小,h表示点i的标签,由(20)得到,1^是1组成的向量,得到k就得到了kit)
kT是k的转置,1^是1^组成的向量,λ是一个很大的数值,具体由实践而定。《是由 步骤S300的能量方程得到的标签yk组成的向量,《里每个元素的值就是公式里得到的yk, 这里每一个元素值不是0就是1。请注意:该公式就是为了计算k,计算得到的k是一个向 量,向量里的每个元素表示每个像素的标签;但是每个元素的值的取值范围变为[〇、1],也 就是说一部分像素的标签由1或0变为了一个0到1区间范围的值;标签仍为0或1的就 表示阴影区域和非阴影区域,标签值在〇和1之间的表示半影区域;L是抠图的拉普拉斯矩 阵,D(i,i)是一个对角阵,D(i,i) = 1表示像素i是阴影区域的边缘,D(i,i) =0则表示 其它所有点。
7. 根据权利要求6所述的基于图像分割的阴影检测与去除算法,其特征在于,利用得 到的标签点亮阴影区域,恢复阴影区域的光照: 根据阴影模型,如果一个像素被点亮,则
其中,r=Ld/Le是直射光LjP环境光Le的比值,I1表示像素i原本的值,所以,计算得 到r就可将阴影去除; 已知 Ii=Gii ·L^LJRi (24) Ij=(kj·Ld+Le)Rj (25) 如果两个像素点的反射系数相同,即Ri=R」,则
【文档编号】G06T7/00GK104463853SQ201410675195
【公开日】2015年3月25日 申请日期:2014年11月22日 优先权日:2014年11月22日
【发明者】刘颜丽, 陈卓 申请人:四川大学