一种基于自适应亮度高程模型的消除路面阴影的方法与流程

文档序号:11234850阅读:935来源:国知局
一种基于自适应亮度高程模型的消除路面阴影的方法与流程

本发明属于图像处理技术领域,具体涉及一种基于自适应亮度高程模型的消除路面阴影的方法。



背景技术:

公路交通正处于高速发展的时期,随着公路里程的增加和人们对于行车安全性、舒适性要求的不断提高,高效的路面裂缝检测方法已经成为国内外学者研究的重点。但是,路旁的建筑物、树木、灯杆等干扰物,常常会在路面上形成阴影,这将会对路面裂缝的检测和路面裂缝特征的提取带来巨大的挑战。因此,在路面裂缝检测和路面裂缝特征提取之前,对路面上的阴影进行消除,这对于道路的养护和管理是至关重要的。

为了消除影像中的阴影,国内外学者进行了广泛而深入的研究。li等人在分析了航空影像中阴影特点的基础上,提出了一种遥感航空影像自适应非局部正则化阴影消除方法;wu等人研究了复杂场景下阴影提取的问题;arbel等人假设半影区域的亮度分布为一个弧形的曲面,然后通过曲面拟合的方法实现彩色影像中半影区域纹理的恢复;liu等人基于原始影像,通过构建一个没有阴影并且纹理一致的梯度区域,并且以此为模板消除影像中的阴影;mohan等人开发了一款阴影消除的编辑软件,通过人工指定阴影区域的边界,设置亮度补偿的强度,进而实现影像中阴影的消除;finlayson等人假设阴影区与非阴影区过渡边界的梯度为零,以此为基础进行阴影的消除;avery等人对交通影像中的阴影消除进行了研究;ramamoorthi等人基于傅里叶理论对投射阴影进行了研究;salamati等人基于概率阴影图用以消除真实影像中的阴影。但是,上述这些阴影消除方法并没有完全解决掉阴影消除后阴影区域和非阴影区域纹理对比度不一致、阴影区域和非阴影区域亮度过渡不自然、对阴影不能自动进行消除的问题。加之,路面阴影具有半影区巨大、形状极不规则的特点,如果直接使用上述的阴影消除方法对路面阴影影像进行阴影消除,阴影消除的效果将会十分的不理想。

针对路面阴影的这些特点,zou等人提出了一种基于亮度高程模型的阴影消除方法(geodesicshadow-removalalgorithm),简称gsr。gsr方法比较有效的解决了阴影区域和非阴影区域难以界定、阴影区域路面裂缝和路面纹理对比度不强的问题。但是,gsr方法中的关键参数需要根据经验值进行手动设置;并且,gsr方法中的亮度等高区域的划分模型和亮度补偿方法存在比较严重的缺陷。



技术实现要素:

本发明的目的是克服现有消除路面阴影采用的gsr方法关键参数依靠经验进行选取,以及亮度等高区域的划分模型和亮度补偿方法存在比较严重的缺陷的问题。

为此,本发明提供了一种基于自适应亮度高程模型的消除路面阴影的方法,包括如下步骤:

步骤一:对采集到的路面阴影影像进行灰度化运算,得到路面阴影的灰度影像;

步骤二:对路面阴影的灰度影像进行形态学膨胀运算,消除路面裂缝;

步骤三:对步骤二经过形态学膨胀运算所得的结果进行二维的高斯平滑;

步骤四:对高斯平滑后的路面影像进行最大熵阈值分割,求解出这一阈值分割过程中的分割阈值,并且将此阈值作为阴影区域和非阴影区域的划分阈值,记为mets,进行阴影区域和非阴影区域的划分,并将阴影区域记为s,非阴影区域记为b;

步骤五:求解非阴影区域记为b的像素亮度值的标准方差db和非阴影区域的平均亮度ib’;阴影区域记为s的像素亮度值的标准方差ds和非阴影区域的平均亮度is’;

步骤六:对高斯平滑后的路面影像进行亮度等高区域划分;

步骤七:采用式(1)进行全影像亮度补偿,

i’i,j=α*ii,j+λ(1)

其中,ii,j为路面影像中每一像素点的亮度值,

λ=ib’-α*is’。

对路面阴影的灰度影像进行形态学膨胀运算,通过如下公式进行

dilate(x,y)=maxsrc(x+x’,y+y’);(x’,y’)∈kernel(2)

其中,(x,y)为路面影像是src某一点的像素,(x’,y’)是kernelb内的某一元素。

对高斯平滑后的路面影像进行亮度等高区域划分是将每一灰度等级中遍历图像的一行之后就立刻将此灰度等级内的像素点数量与每一个亮度等高区域内的像素点数目ng进行比较。

本发明的有益效果:本发明提供的这种基于自适应亮度高程模型的消除路面阴影方法,针对gsr方法中的关键参数需要手动设置、亮度等高区域划分模型和亮度补偿公式的缺陷,本文提出了一种基于自适应的亮度高程模型路面阴影消除方法—sgrsr方法。实验结果表明,该方法不仅有效的解决了gsr方法存在的问题,而且还在一定程度上增强了路面纹理和路面裂缝的对比度,达到了路面阴影消除的目的。

以下将结合附图对本发明做进一步详细说明。

附图说明

图1是gsr方法亮度登高区域划分算法示意图。

图2是sgrsr方法亮度登高区域划分算法示意图。

图3a是路面阴影的原图。

图3b是gausmooth的结果。

图3c是sec.1的亮度分布图。

图3d是ec.2的亮度分布图。

图3e是sec.3的亮度分布图。

图3f是最大熵阈值分割的结果示意图。

图4a是路面巨大的半影的阴影图。

图4b是路面形状不规则的阴影图。

图4c是路面阴影区低对比度的裂缝果图。

图4d是图4a的各亮度等高区域像素数量分布图。

图4e是图4b的各亮度等高区域像素数量分布图。

图5a是路面阴影区域示意图。

图5b是gsr亮度补偿的结果图。

图6a是原始路面影像图像。

图6b是闭合运算的结果图。

图6c是膨胀运算的结果图。

图6d是基于闭合消除结果图。

图6e是基于膨胀的消除结果图。

图7a是原始路面影像图像二。

图7b是闭合运算的结果图二。

图7c是膨胀运算的结果图二。

图7d是基于闭合消除结果图二。

图7e是基于膨胀的消除结果图二。

图8a是亮度等高划分原始路面影像图像。

图8b是gsr亮度等高划分图。

图8c是sgrsr亮度等高划分图。

图9a是亮度等高划分原始路面影像图像二。

图9b是gsr亮度等高划分图二。

图9c是sgrsr亮度等高划分图二。

图10a是原始路面影像图。

图10b是gsr算法的亮度补偿图。

图10c是sgrsr算法的亮度补偿图。

图11a是原始路面影像图二。

图11b是gsr算法的亮度补偿图二。

图11c是sgrsr算法的亮度补偿图二。

图12a是实验对比原始路面影像图。

图12b是实验对比gsr算法的亮度补偿图。

图12c是实验对比sgrsr算法的亮度补偿图。

图13a是实验对比原始路面影像图二。

图13b是实验对比gsr算法的亮度补偿图二。

图13c是实验对比sgrsr算法的亮度补偿图二。

图14a是实验对比原始路面影像图三。

图14b是实验对比gsr算法的亮度补偿图三。

图14c是实验对比sgrsr算法的亮度补偿图三。

图15a是实验对比原始路面影像图四。

图15b是实验对比gsr算法的亮度补偿图四。

图15c是实验对比sgrsr算法的亮度补偿图四。

图16a是模拟的膨胀运算核示意图。

图16b是模拟一幅路面裂缝图像示意图。

图16c是模拟膨胀运算第一次滑动后的图像结果示意图。

具体实施方式

为进一步阐述本发明达成预定目的所采取的技术手段及功效,以下结合附图及实施例对本发明的具体实施方式、结构特征及其功效,详细说明如下。

实施例1

为了更好的与现有基于亮度高程的阴影消除方法(gsr),进行对比说明,本实施例先说明下gsr法是如何进行路面阴影消除的。

步骤大致可以分为以下四步:

(1)mmclose-形态闭合运算。采用形态学闭合运算对原始路面影像进行处理,去掉路面的裂缝。本步操作的目的是消除裂缝对后续阴影区域划分的影响。

(2)gausmooth-高斯平滑。对上一步所得结果进行二维高斯平滑。本步操作的目的是将路面纹理进行平滑处理,消除路面纹理对后续阴影区域划分的影响。

(3)geolevel-亮度等高区域划分。首先计算n-1个阈值,0<=k1<=k2<=...<=kn-1<=255,用于将上一步得到的影像划分为不同的亮度等高区域{gi|i=1,...,l,...,n},使区域gi包含亮度值i∈(ki-1,ki]的所有像素,其中k0=-1,kn=255,方法的细节见algorithm1。为了使方法具有普遍的适用性,algorithm1使各个亮度等高区域的像素数量保持一致;接着,选取l个较低的亮度等级s={si=gi|i=1,2,...,l}作为阴影区域,而较高的n-l个亮度等级b={gi|i=l+1,l+2,...n}作为非阴影区域,其中l取经验值(7/8)*n。其程序如图1所示。

(4)illumcomp-具有纹理均衡的亮度补偿。在原始路面影像中,应用公式(1)所对应的的亮度补偿方法,对每一等级的阴影区域si进行亮度补偿。

其中,α=db/ds,λ=ib’-α*is’,ds和db分别表示阴影区域和非阴影区域像素亮度值的标准方差,ib’和is’分别表示非阴影区域和阴影区域像素亮度的平均值。

实施例2

本实施例提出一种基于自适应亮度高程模型的消除路面阴影方法(self-adaptivegeodesicroad-shadow-removalalgorithm),包括如下步骤:

(1)grayimg-影像的灰度化运算。将采集来的rgb路面阴影影像通过影像的灰度化运算,将其转换为灰度影像,其主要目的是:为阴影消除方法的后续处理准备好其所需要的路面阴影影像的灰度影像。

(2)mmdilate-形态学膨胀运算。三通道的路面影像在经过灰度化之后,就转换成了单通道的灰度影像。在路面裂缝的灰度影像中,路面裂缝的灰度等级较低,并且大多数时候和黑色比较接近,路面阴影的特点如图4a、图4b、图4c所示。因此,使用形态学中的膨胀运算就可以达到消除路面裂缝的目的。

所谓膨胀操作,就是求局部最大值。从数学角度来说,膨胀操作就是将图像(或图像的一部分区域,称之为a)与核(称之为b)进行卷积。计算核b覆盖的区域的像素点的最大值,并把这个最大值附给参考点的指定的像素。这样会使图像中的高亮度区域逐渐增长,如图3所示。膨胀操作的数学表达式如公式(2)。

dilate(x,y)=maxsrc(x+x’,y+y’);(x’,y’)∈kernel(2)

其中(x,y)为路面影像是src某一点的像素,(x,,y,)是核(kernelb)内的某一元素。

核一般可以有四种取法,矩形核,十字形核,椭圆形核,还有可以自定义任意的一个核,下面我们就例举几种常见的膨胀核,如下所示:

比如说一个3*3像素大小的十字形核,我们通过把这个十字形核从图像的(0,0)坐标开始滑动,每滑动一下,计算这个核和这个核覆盖下的图像的像素的卷积,然后取最大值。这样把这个图像滑动完之后,就可以达到白色区域扩展,黑色区域缩减的作用;在路面裂缝图像的情况下,就是通过这种膨胀作用消除路面的裂缝。

将以上的核在图像上进行滑动,每滑动一次,计算一次该核和该核覆盖下的图像区域对应像素点的乘积,并且将这个区域的最大值作为参考点的值,这样就会使图像中的亮度区域增长。具体计算过程如下图所示,比如说现在用图16a模拟一个膨胀核,图16b模拟一幅路面裂缝图像,路面裂缝图像中的9代表路面的高亮度区域或者说没有裂缝区域的亮度,0所在的方格组成的黑色带模拟路面裂缝,0代表裂缝所在区域的亮度(裂缝的亮度偏黑);现在,将图16a所代表的核从图16b的左上角进行覆盖滑动,每滑动一次,计算核和核覆盖下的区域相应像素的乘积,然后取这个核覆盖下区域计算结果的最大值作为参考点(即为灰色区域)的像素值,第一次滑动的计算结果如图16c所示,我们可以清楚的看到参考点的像素值变成了正常路面的灰度值,然后我们连续不断的将核在图像上滑动,这样完成一次滑动之后,图像的亮度区域就会增长,图像中的路面裂缝也就会消失,以上就为膨胀运算的具体过程。

基于以上的分析,sgrsr方法将gsr方法中的形态学闭合运算改进为形态学膨胀运算。此外,sgrsr方法中的膨胀运算在方法性能上还大大优于gsr中的形态学闭合运算;并且,基于膨胀运算的阴影消除方法可以更好的实现路面阴影的消除。

(3)gausmooth-高斯平滑。对上一步经过形态学膨胀运算所得的结果进行二维的高斯平滑,其主要的目的是:对路面纹理进行平滑处理,消除路面纹理对于后续阴影区域划分的影响。

高斯平滑为了减少图像平滑处理中的模糊程度,得到更自然的平滑效果,其思想是适当的加大模板中心点的的权重,随着距离中心点的距离增大,权重迅速减少,从而确保中心点看起来更接近于与它距离更近的点。常用的3*3高斯模板w如式(2)所示。高斯模板正是将连续的二维高斯函数的离散化表示,因此任意大小的高斯模板都可以通过建立一个(2k+1)*(2k+1)的矩阵得到,其中路面影像中点(i,j)位置的元素值可由高斯函数公式(3)确定。

(4)metsegment-最大熵阈值分割。对高斯平滑后的路面影像进行最大熵阈值分割,求解出这一阈值分割过程中的分割阈值,并且将此阈值作为阴影区域和非阴影区域的划分阈值,记这一阈值为mets,以此解决gsr方法中划分阈值l需要根据经验值进行手动设置的问题,从而实现了划分阈值的自适应确定。图3f为高斯平滑后的路面阴影影像进行最大熵阈值分割后的结果。另外,经过最大熵阈值分割,确定了路面影像中阴影区域和非阴影区域的位置。阴影区域记为s,非阴影区域记为b。

(5)brightparameter-根据上一步确定的路面非阴影区域,求解非阴影区域的关键参数db和ib’。db是非阴影区域像素亮度值的标准方差,ib’代表非阴影区域的平均亮度。本部操作的目的是为后续全影像亮度补偿做准备。在gsr方法的亮度补偿公式(1)中,其中α=db/ds,λ=ib’-α*is’,ds和db分别表示阴影区域和非阴影区域像素亮度值的标准方差,ib’和is’分别表示非阴影区域和阴影区域像素亮度的平均值。通过参数α的引入,可以将阴影区域的方差提升到非阴影区域的水平;并且由于影像像素方差的大小通常反映了影像对比度的强弱,因此,gsr方法的亮度补偿公式可以使得阴影消除后的路面影像的纹理细节保持一致。

但是,通过对gsr中的亮度补偿公式进行深入的研究后,发现亮度补偿公式中的关键参数α具有重大缺陷。由gsr方法中α的计算方式可知,当ds趋于无穷小时,也就是当影像中阴影区域的对比度极其微弱的时候,α的值将会趋于无穷大,从而使得gsr方法中的亮度补偿公式失效。针对这一问题,sgrsr方法对α的计算方式进行了改进,改进之后的计算公式为:

其中,参数α、ds和db的意义同gsr算法中的意义一致。

(6)igeolevel-改进的亮度等高区域划分模型。对gsr方法中的亮度等高区域划分方法,即对algorithm1经过仔细分析就可以知道,algorithm1并不能保证各个亮度等高区域内的像素点数量大体一致;algorithm1的这一缺陷将会使得阴影消除后的路面影像出现亮度过渡极其不自然的问题。图4d、图4e以直方图的形式给出了图4b和图4c这两幅路面影像经过algorithm1进行亮度等高区域划分之后,各亮度等高区域内像素点数量的分布直方图。其中直方图的横坐标表示亮度等级,纵坐标表示这一亮度等级区域内像素点的数目;图4d为图4b图的各亮度等高区域像素数量分布图,图4e为图4c图的各亮度等高区域像素数量分布图。通过图4d、图4e两幅直方图,可以很明显的发现algorithm1存在的这一缺陷。针对这一问题,sgrsr方法对gsr中algorithm1进行了改进,具体的做法是将algorithm1中每一灰度等级遍历一次影像之后才将此灰度等级内的像素点数量与ng进行比较改为在每一灰度等级中遍历图像的一行之后就立刻将此灰度等级内的像素点数量与ng进行比较,改进之后的方法如algorithm2。根据algorithm2,将经过高斯平滑的路面影像划分为n个不同的亮度等高区域{gi|i=1,...,l,...,n},使区域gi包含亮度值i∈(ki-1,ki]的所有像素,其中k0=-1,kn=255,其算法如图2所示的。

(7)allillumcomp-全影像亮度补偿。

由gsr方法中的亮度补偿公式(1)可知,gsr方法中的亮度补偿只针对阴影区域进行,当一个像素点属于非阴影区域的时候,就不会对这点的亮度进行补偿。但是gsr方法中的亮度补偿公式并不能十分精确的计算出阴影区域中每一个像素点的亮度与该像素点在相同太阳光线强度照射下的亮度差值;因此,在进行路面阴影消除的时候,如果仅仅只是对阴影区域的像素点进行亮度补偿的话,有可能会出现阴影消除后的路面影像阴影区域和非阴影区域亮度过渡不自然的问题,具体效果可以参考图5,其中的图5a为路面裂缝阴影的灰度影像,右图为亮度分布不均和过渡不自然的路面影像。对图5a利用gsr方法进行阴影消除后的路面影像为图5b所示,可以很明显的发现右图存在亮度过渡不自然的现象。针对这一问题,sgrsr方法对gsr方法中的亮度补偿公式进行了改进,改进之后的亮度补偿公式如公式(5)所示。

i’i,j=α*ii,j+λ(5)

根据改进的亮度补偿公式(5)可知,其中,ii,j为路面影像中每一像素点的亮度值,其它参数的意义与计算方式同gsr方法一致。在原始路面影像的灰度影像中,根据上一步划分的亮度等高区域,首先计算出每一亮度等高区域像素亮度的方差ds’和像素亮度的平均值is’,以及每一亮度等高区域的α值;最后,再根据亮度补偿公式(5)对全影像进行亮度补偿。

本实施例所述的基于自适应亮度高程模型的消除路面阴影方法(sgrsr)与实施例所述的基于亮度高程的阴影消除方法(gsr)相比,具有如下优点:

(1)为了消除路面裂缝的目的,使用基于膨胀运算的阴影消除方法,可以更好的实现路面阴影的消除;当然,使用形态学闭合运算也可以达到消除路面裂缝的目的,但是,形态学闭合运算是先进行膨胀运算,再进行腐蚀运算,这不仅在无形中增加了方法的时间复杂度,而且还使得阴影区域和非阴影区域交界处的灰度强度变化的更加剧烈,这将会导致在阴影消除后的路面影像中,阴影区域和非阴影区域的亮度出现过渡不自然的现象。

(2)在划分阴影区域和非阴影区域的使用,采用最大熵阈值分隔,改进了gsr方法中阴影区域和非阴影区域的划分阈值l需要根据经验进行手动设置的方式。尤其是针对海量的路面影像进行阴影消除时,将会显得十分不科学。针对这一问题,本文对高斯平滑后的路面阴影影像进行了深入的分析。如图3所示,本文在高斯平滑后的路面影像中取三条剖面线sec.1、sec.2和sec.3,这三条剖面线分别穿过阴影区域和非阴影区域。图3c、图3d、图3e分别为剖面线sec.1、sec.2和sec.3的亮度分布直方图,通过对三幅剖面线亮度直方图和图3a、图3b的观察可知,在阴影区域与非阴影区域的交界区域,灰度的亮度值出现剧烈的变化。

图3f为高斯平滑后的路面阴影影像进行最大熵阈值分割后的结果。另外,经过最大熵阈值分割,确定了路面影像中阴影区域和非阴影区域的位置。阴影区域记为s,非阴影区域记为b。

(3)改进的亮度等高区域划分模型,将每一个亮度等高区域内的像素点数目设为ng,sgrsr方法将gsr方法中每一灰度等级遍历一次影像之后才将此灰度等级内的像素点数量与ng进行比较,改为在每一灰度等级中遍历图像的一行之后就立刻将此灰度等级内的像素点数量与ng进行比较,解决了gsr方法不能保证各个亮度等高区域内的像素点数量大体一致,使得阴影消除后的路面影像出现亮度过渡极其不自然的问题。

(4)对亮度补偿公式参数α进行改进,由α=db/ds,改进为从而修正了gsr方法当ds趋于无穷小时,也就是当影像中阴影区域的对比度极其微弱的时候,α的值将会趋于无穷大,从而使得原始的亮度补偿公式失效。

实施例3

为了验证本文提出的基于自适应亮度高程模型的消除路面阴影方法的有效性,本文分别设计了四组对比实验,用于对sgrsr方法中的关键步骤进行定量和定性的分析。本文方法的程序是基于vc、opencv和matlab开发的,程序的运行环境为windows10,cpu为3.3ghz,内存为8g。

设计的四组对比实验分别为:第一组实验用于测试sgrsr方法对于gsr方法中形态学闭合运算的改进。实验的结果如表1和图6、图7所示。

表1sgrsr膨胀运算与gsr闭合运算进行路面裂缝消除方法性能对比

由以上的实验可知,sgrsr方法中的形态学膨胀运算同样可以达到gsr方法形态学闭合运算消除路面裂缝的目的;同时,sgrsr方法中的膨胀运算在方法性能上还大大优于gsr中的形态学闭合运算;并且,基于膨胀运算的阴影消除方法可以更好的实现路面阴影的消除。

第二组实验用于测试sgrsr方法对于gsr方法中亮度等高区域划分模型的改进。实验的结果如图8、图9所示,其中图8b、图9b为利用gsr方法中的亮度等高区域划分模型划分后,各个亮度等高区域内像素点数目的分布直方图,图8c、图9c图则为利用sgrsr方法中改进的亮度等高区域划分模型划分后,各个亮度等高区域像素点数目的分布直方图。通过图8、图9可以很清楚的看到,sgrsr方法中改进的划分模型可以使得各个亮度等高区域内的像素点数量基本保持一致,这将有利于增强sgrsr方法对于其它阴影消除的适用性,并且将会使得阴影消除后的路面影像的亮度过度更加的自然。

第三组实验用于测试sgrsr方法对于gsr方法中亮度补偿公式的改进。实验的结果如图10、图11所示。通过如图10、图11可以观察到,基于gsr中的亮度补偿公式进行阴影消除后,路面影像会出现亮度分布不均匀的问题,而基于sgrsr改进之后的亮度补偿公式,则可以很好的解决gsr方法中亮度补偿公式的这一缺陷。

第四组实验用于测试sgrsr方法和gsr方法这两种阴影消除方法的路面阴影消除能力。实验的最终结果如图12、图13、图14、图15所示。通过图12、图13、图14、图15中所有影像的对比,可以很明显的观察到,基于gsr方法进行路面阴影消除后,路面影像不仅会出现阴影区域和非阴影区域亮度过渡不自然的问题,而且还会出现路面影像整体亮度分布不均匀的问题;而本文所提出的sgrsr方法不仅可以很好的解决gsr方法存在的这些问题,而且还能增强路面纹理和路面裂缝的对比度,这些现象都说明本文所提出的sgrsr方法远远优于gsr方法,可以满足实际工程中路面阴影消除的需求。

以上内容是结合具体的优选实施方式对本实施例所作的进一步详细说明,不能认定本实施例的具体实施只局限于这些说明。对于本实施例所属技术领域的普通技术人员来说,在不脱离本实施例构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本实施例的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1