基于C—V模型和形态学的道路图像处理方法
2019-05-13王啸伟张兴媛史红标宋大成李宝磊
王啸伟 张兴媛 史红标 宋大成 李宝磊
摘 要: 主要运用水平集的思想,通过能量函数的最小化构造C-V模型,对给定的道路图像进行图像分割。通过数学形态学进行优化,对目标内部的空洞区域填充,以解决图像中道路轨迹不清晰问题。仿真结果表明,该方法最终可以得到比较精确的道路分割图像。
关键词: 水平集; C-V模型; 图像分割; 形态学
中图分类号:TP751.1 文献标志码:A 文章编号:1006-8228(2019)03-49-04
Road image processing method based on C-V model and morphology
Wang Xiaowei, Zhang Xingyuan, Shi Hongbiao, Song Dacheng, Li Baolei
(Air transport instituteof Shanghai University of Engineering Science, Shanghai 201600, China)
Abstract: This paper mainly uses the idea of level set to construct C-V model through the minimization of energy function to segment the road image. With mathematical morphology optimization, the cavity area in the target is filled to solve the problem of unclear road trajectory in the image. The simulation results show that the accurate road segmentation image can be obtained by using the method.
Key words: level set; C-V model; image segmentation; morphology
0 引言
图像分割是图像处理和分析应用中一项非常重要的工作。图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像索赋予相同的编号。
目前传统的水平集图像分割方法仅利用图像的局部边缘信息,对于边缘模糊或存在离散状边缘的区域,则很难得到理想的分割效果。比较而言基于Mumford-Shah(MS)[1]模型的水平图像分割方法以来的则是区域的全局信息,因此可以获得较好的分割结果,然而该模型的复杂性限制了其应用。对此,Chan和Vese[2]提出基于简化的Mumford-Shah模型的水平集图像分割方法(CV模型),在充分保证其分割质量的前提下,降低了MS模型的复杂度。再通过形态学以形态结构元素为基础对图像进行分析,用具有一定形态的结构元素,去度量和提取图像中的對应形状,简化图像数据,保持他们几本的形状特征,来达到对图像的分析和识别。
1 C-V模型简介
C-V模型是由Chan和Vese提出的一种新的主动轮廓模型,基于简化的Mumford-Shah模型[3],运用水平集思想,通过能量函数的最小化来演化曲线。
根据定义可得C-V模型的能量公式:
⑴
其中μ,λ1和λ2取值为正的常数,一般令λ1=λ2=1。c1和c2分别是演化曲线C内部和外部的图像灰度的均值。能量泛函的第一项是长度约束,用于规整演化曲线C,保证获得的是足够段的曲线;而第二项和第三项合称为保真项,负责将演化曲线C吸引到目标轮廓上来。用水平集函数来代替将演化曲线C,且设定如果点(x,y)在C的内部,则水平集函数>0;如果点(x,y)在C的外部时,则水平集函数<0;而如果点(x,y)恰好在C上面时,则=0(这一步骤即是初始化水平集,一般令值为(x,y)与C的最小距离值,符号根据前面所述来取,即是符号距离函数[4]。于是:
⑵
其中Hε(z)和δε(z)分别是海氏(Heaviside)函数H(z)和狄拉克(Dirac)函数δ(z)的正则化形式。H(z)和δ(z)的公式如下:
⑶
通过对上述公式对应的Euler-Lagrange方程进行求解,可得到如下的演化方程:
⑷
获得此演化方程后,就不难对其数值求解了。其中div 是水平集曲面的曲率,C1和C2在每次演化后都需重新求解。
对CV模型的直观理解可以这样:
①首先是初始化水平集;②根据初始化的水平集计算(估算)前景和背景灰度均值;③利用前面估算的前景和背景均值对水平集每一个点进行调整(演化),因为根据定义前景>0,背景<0,所以如果当前点的灰度值接近前景估值,那么该点水平集的值就要相应的增加,反之则减小。
在实际运用中只采用上述的演化公式,在演化一段时间后会使水平集失去光滑性和距离函数的特性,具体表现为会出现一些小的孤岛[5]。为了避免这个问题,需要在演化一定时间后对水平集函数重新初始化。但是由于重新初始化水平集函数为距离函数需要消耗很多时间,为了解决这个问题,李纯明提出了在水平集演化的过程中增加一个能量惩罚项,使得水平集函数在演化过程中保持近似的符号距离函数。该惩罚项表示为:
⑸
对于该惩罚项的理解可以这样:控制水平集梯度稳定在1附近,当梯度很大的时候,使得能量变大,于是就会驱使水平集趋于平滑,这样就使得水平集函数减少了出现孤岛的情况,自然的保持了近似的符号距离函数(但这不能完全避免水平集在演化过程中不偏离符号距离函数)。通过增加惩罚项的演化函数只是在前述的演化函数中增加一项而已。至此,一个不需要初始化水平集的CV模型已经分解完毕。
2 数学形态学简介
数学形态学起源于岩相学对岩石结构的定量描述,常见形态学运算有腐蚀和膨胀[6],开运算和闭运算,设A为图像集合,B为结构元素且为b的集合,x其定义为:
腐蚀 表示用B对A进行腐蚀,按每个b来位移A并把结果或(OR)运算;
膨胀 表示用B对A进行膨胀,按每个b来负位移A并把结果并(AND)运算;
开运算 表示A被B开操作,先腐蚀再膨胀;
闭运算 表示A被B闭操作,先膨胀再腐蚀;
以上形态学操作示的意图如图1所示。
基于腐蚀、膨胀、开、闭运算,可以得到具有不同性能的形态学算子,通过选择不同的结构元素,得到不同的效果,在图像处理领域广泛应用,如利用开闭组合得到形态学滤波器、多次膨胀达到区域填充、多次腐蚀运算实现骨架提取等。
3 实验过程
3.1 C-V模型的图像分割
C-V模型是水平集方法中最有影响力的一种模型,长久以来一直被广泛用于处理图像分割问题。假设区域为Ω的图像I(x,y)由目标区域内部C1和目标区域外部C2这两个区域组成,活动轮廓线C是两部分的分界线。则其能量泛函为:
⑹
由上式可以看出:当活动轮廓线C在边界外部时,有E1(C)>0且E2(C)≈0;当活动轮廓线C在实际边界内时,有E1(C)≈0且E2(C)>0;当活动轮廓线C跨越实际边界时,有E1(C)>0且E2(C)>0活动轮廓线刚好与实际边界重合时,有E1(C)≈0且E2(C)≈0;所以当C为目标区域C1的边缘时,E(C)取得最小值。通过极小化能量泛函的方式可以得到水平集的曲线演化方程,曲線演化方程可以驱动水平集的演化,当曲线演化方程与目标边界基本重合时就表明分割过程已经完成。
3.2 形态学图像处理过程
针对C-V模型算法得到的分割道路图像不是很清晰,灰度不同的道路与绿化带处容易出现空洞,再通过形态学对目标内部进行区域填充,以达到精确分割图像的目的。
本文采用闭操作先对图像进行膨胀,膨胀后物体(白色的部分)有所扩展,扩展的程度与结构元素的形状和大小有关。因此,膨胀操作常用来弥合裂开的细缝隙。后对其进行腐蚀,腐蚀后物体(白色的部分)有所收缩,收缩的程度与结构元素的形状和大小有关。因此,腐蚀操作常用来分开细小的粘连。然后开启运算可以把结构元素小的突刺去掉,闭合运算则可以把缺口或者孔填充上。用Matlab提供imopen和imclose函数实现。
4 试验结果
图2是未经处理的道路航拍图像,可以看出图像道路周边绿化很多。通过Matlab采用C-V模型算法通过极小化能量泛函的方式可以得到水平集的曲线演化方程,曲线演化方程可以驱动水平集的演化,曲线演化方程与目标边界基本重合时分割出图3。
由于C-V模型算法得到的分割道路图片不是很清晰,需再用数学形态学的方法进行仿真,对图像先进行膨胀处理,后对其进行腐蚀,将图中的道路部分细化,最终得到较为精确的道路图像(如图4)。
5 结论
试验结果表明,本文提出的这种图像处理方法可以反应出道路的轮廓,为水平集自动提取道路提供了基础,利用数学形态学处理分割后的图像,有效地填充了因为绿化和车辆不同而造成的分割后图像中的空洞,进而达到精确分割出目标图像的目的。同时该处理方法还能用于需要突出细节以及分割后有可能形成多空区域的图像分割;为道路的许多特征提供了道路存在的依据,其细节信息变化很大;另外该方法也便于硬件实现,因此具有实用性。
参考文献(References):
[1] 李俊,杨新,施鹏飞.基于Mumford-Shah模型的快速水平集
图像分割方法[J].计算机学报,2002.11:1175-1183
[2] 林挺强,高峰,唐沐恩,文贡坚.一种新的基于CV模型的图像
分割算法[J].信号处理,2010.26(12):1852-1857
[3] 王晓峰.水平集方法及其在图像分割中的应用研究[D].中国
科学技术大学,2009.
[4] 温铁祥,杨丰.一种新的曲线演化混合模型图像分割算法[J].
电路与系统学报,2007.4:48-52
[5] 王帆,杨英宝,陈超.基于水平集的曲线演化在图像分割中的
应用[J].地理空间信息,2012.10(5):136-138,9
[6] 曾亚君,何毅斌,李伟.基于改进形态学梯度的齿轮边缘检测[J].
工具技术,2017.51(1):101-103