谭志国,欧建平,张 军,沈先耿
(1.国防科技大学电子科学学院,湖南 长沙 410073;2.武警警官学院信息通信系,四川 成都 610213)
由于深度图像能直接反映景物表面三维几何信息,且具有不受光照、阴影等因素影响等优势,在计算机视觉领域越来越引起人们的关注。随着深度图像传感器技术的逐步成熟,基于飞行时间TOF(Time Of Fly)、结构光等技术的低廉深度图像传感器设备已经大量投入市场,在机器人工业、互动游戏等行业得到广泛应用。
区域分割是深度图像处理中的重要部分,是图像识别、理解工作的基础。目前,深度图像的分割方法主要可分为两类:一类是把深度图像转化为三维点云,通过对点云的坐标、法向量等特征进行聚类和分类,实现分割。如文献[1]将深度图像转化为点云数据,而后把行值、列值以及3维的单位法向量构成图像中像素点的6维特征向量,采用模式聚类方法,实现了图像分割。文献[2]则在点云数据基础上计算其构成表面的高斯曲率,从而对 8 种表面类型进行分类,并利用二次曲面拟合,进行区域增长与图像数据的分割。文献[3]采用边缘和曲面拟合相结合的方法,在点云数据中提取边缘,根据边缘信息估计曲面的位置和数量信息,由此来实现图像的分割。文献[4]采用高斯混合模型对点云法向量聚类,从而实现对深度图像中平面提取和图像的分割。该类方法在一定程度上可以达到较好的分割效果,但由于转化为点云后图像数据由规格化数据变为散乱数据,从而使得数据处理量增大,且预处理以及特征提取的计算量大,使得该类算法的实时性难以保证。另一类是把深度图像作为一般灰度图像数据来处理。由于深度图像数据信息单一(主要是物体景深值),比较适合于阈值分割类算法,比如Otsu阈值分割及其改进算法[5 - 7]、二维直方图阈值分割法[8,9]等。但由于深度传感器获取的图像存在较强噪声,使得该类算法应用于深度图像分割时往往难以达到理想的分割效果。为此,文献[10,12]同时利用颜色和深度图相互补充的策略来实现图像分割,存在的问题则是首先需要对彩色图像与深度图像进行配准,分割的实时性难以保证,而且这类分割方法也都以初始的深度图像分割为基础;此外,部分深度传感器不同时提供彩色图像数据,也使得算法实际应用受到一定限制。
针对上述问题,本文提出一种利用多特征组合的深度图像分割算法。该方法首先构建梯度直方图,运用Otsu阈值分割得到候选分割区域;而后在各候选分割区域上运用深度Otsu阈值分割得到候选分割目标;最后在空域上对候选分割目标进行分割、合并与去噪,得到最终的图像分割结果。本文主要的贡献在于提出一种多特征的深度图像组合分割策略,适用于实时深度图像分割。
Otsu分割算法是一种基于最大类间距的聚类图像分割算法,通常是以灰度作为像素特征。从广义角度来说,选定不同特征采用Otsu算法,同样可对图像进行有效分割。不失一般性,下文中对算法原理进行讨论时,不特指灰度级而用特征级来代替。
设图像I(x,y)的像素所具有特征的特征级为L=1,2,…,l,对∀i∈L的特征级,位于该特征级i的像素总数为fi,则总的像素数N=f1+f2+…+fl。给定图像f(x,y),其特征级为i的像素出现的概率为:
(1)
假设图像I中存在m个待区分的类,则有m-1个阈值t1,t2,…,tm-1用来将I分为m个类,表示为:
C1=0,1,…t1,…,Cn=
tn+1,tn+2,…,tn+1,…,
Cm=tm+1,tm+2,…,tm+1
(2)
根据Otsu准则,类间方差定义为:
(3)
最优阈值则为使得σ取得最大值的一组阈值。
上述Otsu算法若直接计算多个阈值是较为复杂的,且分割效果不一定理想。若把直方图划分为数个局部,对每个局部区域进行单阈值分割,不但能降低算法的复杂度,而且可使局部分割效果达到最佳。因此,确定局部区域的数目则是多阈值分割的关键。
众所周知,单阈值Otsu算法实质是在统计直方图波峰之间寻找类间最大距的最佳阈值,从而划分两个独立的波峰。因此,可通过在直方图中寻找独立的波峰来对划分区域(聚类数目)进行确定。在此基础上,运用单阈值Otsu算法得到区域中的分割阈值。关于单阈值Otsu算法不做详述,文中直接使用文献[7]中的快速分割算法。
图像分割本质上是对其中像素分类的过程,而Otsu算法实际是根据像素的某一特征实现的类间最大距离的分类。实际中,通过某一种特征对像素进行分类,往往难以达到理想效果。为此文献[8,9]利用两种特征(灰度与灰度均值或灰度与饱和度等)构成二维直方图,再通过Otsu或其它优化算法计算最佳阈值,但导致的问题是运算量增加,不适于实时处理,且在深度图像噪声影响下难以达到较好的分割效果。本文在图像中构建不同特征属性下的一维直方图,通过层次组合的方式实现有效的图像分割。考虑深度图像的分布特点,选取图像像素的深度、梯度以及空域位置信息作为像素分类的特征。
hdk=nk,k=1,2,…,K
(4)
其中,nk为在深度级k上的图像像素数目。
(2)梯度直方图构建。梯度反映的是深度图像中深度值的变化情况,而通常深度值变化较大的部位都位于场景内的目标、物体等的边缘以及图像中的噪声部分。通过梯度维的分割可以把图像粗略地分为目标、边缘与噪声部分。
深度图像I(x,y)可视为二维离散函数,其梯度G(x,y)则是对二维离散函数的求导:G(x,y)=idx(x,y)+jdy(x,y),其中,
(5)
hgk=nk,k=1,2,…,J
(6)
其中nk为在梯度级k上的图像像素数目。
由于深度图像存在一定噪声,信息量相对要少,且当背景复杂,场景中目标、背景集中时难以进行有效分割。为此,本文拟采用如图1所示的分割策略。
Figure 1 Hierarchical segmentation strategy based on multi-feature图1 多特征层次化的组合分割策略
(7)
Figure 2 Segmentation on feature dimension图2 特征维度分割示意图
经过梯度与深度特征维度的阈值分割,实际图像中的候选目标在空域上是分开或是相连的。此时,在空域特征维上对候选目标进行处理,采取先分割再合并的策略,最后去除噪声和杂点。从而图2的分割效果如图3所示。
Figure 3 Segmentation and combination on space domain图3 空域分割合并示意图
空域分割合并的基本原则如下:
(1)候选区域空域上不连通的部分进行分割。
(2)空域上邻接的不同候选区域,当邻接区域面积较大且邻接区域梯度值相近时进行合并。邻接区域是指图像中两个候选区域邻接的像素区域。设区域Di与Dj邻接,则Di与Dj的邻接区域记为Ni,j,如图4中标i像素部分所示,Dj与Di的邻接区域即为Nj,i,如图4中标j像素部分所示。
Figure 4 Conjunctive pixels图4 邻接区域示意图
上述原则可描述为给定一个面积阈值tarea和一个梯度阈值tgrdt,当Ni,j≥tareaorNj,i≥tarea,有GNi,j-GNj,i≤tgrdt时,区域Di与Dj合并。GNj,i为对应Nj,i区域的梯度平均值。
(3)小于一定面积值(连通区域中小于一定像素数目)的区域作为噪声和杂点去除。
基本步骤:
(1)遍历候选目标集Cnd_Obj1,Cnd_Obj2, …,Cnd_Objn;
(2)对符合原则(1)的候选目标进行分割,得到连通区域集D1,D2,…,Dm;
(3)遍历连通区域集;
(4)将符合原则(2)的区域进行连通;
(5)符合原则(3)的区域作为噪声去除;
(6)整理得到目标集Obj1,…,Objo,输出结果。
本文实验平台为Windows7操作系统,CPU主频为2.6 GHz,内存为4 GB,用Matlab15b编程实现算法。选取20幅TOF传感器采集的深度图像(图像大小均为320×240)进行图像分割实验。实验中,分别与Otsu多阈值算法[6]、二维直方图双斜率分割算法[7]、二维直方图分水岭分割算法[8]进行比较,文中分别记为Otsu、RODS和WSHST。图5和图6给出其中一次的实验结果。
图5给出了本文算法进行分割的过程。图5a是深度图的原图,图5b是通过梯度Otsu阈值分割算法分割后的结果。
Figure 5 Depth image segmentation procedure图5 本文算法分割图像的过程
可以看出,经过梯度分割后,图像根据梯度直方图被自动分为两部分,这里可简单地称之为噪声部分和目标部分。图5c是对噪声部分进行深度Otsu分割的结果,该结果显示噪声部分中大部分像素都被划分到不同候选目标中,而这些像素在梯度维上梯度值较高,深度值不连续,分割后大都为孤立的点,在最终的空域处理上将被作为噪声去除,其中也存在部分整块目标,从分析来看是由于传感器获取目标数据时,在目标上产生的噪点。图5d是对目标部分的深度分割结果,根据深度图像大致被分为7块区域(包括其中噪声点,不同灰度分别表示不同的候选目标区域)。可以看出,图像中有的目标被较好地分割出来,但其中也存在一定的噪声,因此需要在后续处理中进行矫正和调整。图6b给出了本文算法的最终分割结果。从图中可以看出,图5c和图5d中的目标与噪声,或被分割、或被合并、或被去除,场景中主要目标都被准确地分割出来,噪声也被较为干净地去除。存在的问题是,少部分目标边缘由于噪声原因,不够自然平滑。
图6给出了四组在不同噪声强度和不同复杂程度背景下的室内深度图像分割结果。
Figure 6 Segmentation results comparison among different algorithms图6 不同算法分割结果比较
图6a为深度图像的原图,从左至右原图中的噪声逐渐增大。图6b~图6d给出了三种算法的实验结果。Otsu算法分割的结果如图6c所示,当噪声较小时,与本文算法在梯度分割后进行的深度分割结果比较接近,但在不同场景中随着噪声影响的增大,以及本身场景的复杂性,对于同一目标以及不同目标区域的分割存在交错,难以较好地实现目标的完全分割。WSHST算法通过二维直方图在一定程度上把边缘、目标分割开来,在噪声较小的场景中,分割相对准确,但是随着噪声增强,噪声与目标的分割效果不理想,如图6d所示。RODS算法由于使用双阈值,在图像中只能对噪声与场景部分进行分割,在复杂图像中难以有效地对场景、目标进行有效分割,如图6e所示。表1给出了各种算法运行的平均时间对比。
Table 1 Time consuming on segmentationcomparison among different algorithms
从实验的结果图来看,本文算法对于含有一定噪声的深度图像分割效果优于Otsu、WSHST和RODS算法,能在一定程度上克服噪声给分割带来的不利影响,且能有效地把场景中可能存在的目标景物进行有效分割。原因如下:
(1)本文算法采样组合分割的策略,通过初步梯度Otsu阈值的分割,在一定程度上去除了噪声部分的影响,从而使得在深度Otsu阈值分割时效果有一定的提升。WSHST算法采用了梯度与深度的二维直方图,可能由于噪声影响原因,使得分割时对于边缘信息更为敏感,但对于目标、景物内部噪声则分割效果不理想。
(2)本文算法进行阈值分割后,在空域上进行了分割合并与去除处理,抑制了区域外的杂点和区域内的噪声,同时对目标等进行了规整,使得整体的分割效果优于其他算法。
(3)从时间开销角度看,由于本文算法在空域上进行了后续处理,因此较Otsu、RODS算法开销大。但值得注意的是,RODS算法是双阈值算法,而WSHST算法采用构建二维直方图,在二维图中再利用分水岭方法寻找分割阈值,在一定程度上增加了算法的复杂度。
本文提出了一种多特征组合的深度图像分割算法,在一定程度上能克服深度传感器获取图像时噪声带来的不利影响。通过先梯度阈值分割而后深度阈值分割的策略,改善了噪声对阈值分割的不利影响;通过空域上的分割合并等处理,在对场景去噪的同时,也实现了场景中目标、景物的有效分割。文中实验结果表明,算法能适用于单一深度信息的深度图像分割,这将有助于物体识别、场景分割等任务的完成。下一步工作将结合该算法应用于特定目标的检测与识别。