一种基于近似凸性分析的图像形状分割方法与流程

文档序号:12748879阅读:774来源:国知局

本发明涉及一种图像分割方法,尤其是涉及一种基于近似凸性分析的图像形状分割方法。



背景技术:

形状分割的意思是把一个物体分成若干个具有语义信息(独立含义)的部分。这是一项十分重要却又充满挑战的工作。形状分割可以简化物体的分析和重构过程,对于形状的检索、分析、分类等方面都有很大的帮助。随着扫描技术的发展,扫描成像成为3D形状获取的一种重要资源来源。对于扫描出来的点云,大多数人的做法还是对点云进行重构,还原成传统的网格图,再采用传统的网格形状分割的做法来进行形状分割。

传统的方法主要关注点在于找寻形状的边界,列出最优化的方程(例如,能量最小化方程等)进行求解,而忽视了形状中各个部分的几何学结构。Kaick O V等人在ACM Transactions on Graphics(TOG)2014发表的名为《Shape Segmentation by Approximate Convexity Analysis》的论文则跳开了物体重构的过程,更加关注形状本身的几何学结构,提出了一种对于点云形状分割的算法。该方法的贡献在于,(i)它是无参数的,最后分割出来形状个数完全由程序决定。(ii)它跳过了物体重构的过程,甚至对于网格形状,也是先转化成点云,再进行后续的处理。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种适用于点云的基于近似凸性分析的图像形状分割方法,对点云这类离散而不完整的形状利用了形状弱凸性的特点。

本发明的目的可以通过以下技术方案来实现:

一种基于近似凸性分析的图像形状分割方法,用于确定图像的分割结构,包括以下步骤:

S1,获取图像的点云;

S2,将点云分解为多个具有弱凸性的分块;

S3,将相邻且具有相似属性的分块融合,得到图像的分割结构。

所述的步骤S2包括以下步骤:

S21,将点云分为多个点集Si,并计算点集中可视点对的集合LoS(Si),LoS(Si)={(k,j),k∈Si,j∈Si,k和j可视},i表示点集的序号,可视点对的定义:若点集Si中的点k和点j之间的线段落在点集Si中,则点k和点j为点集Si中的可视点对;

S22,计算各点集Si的凸性等级CR(Si),CR(Si)=|LoS(Si)|/|Si|2,若某点集的凸性等级小于设定值,则继续将该点集分为多个更小的子点集,直到所有的点集和子点集的凸性等级大于或等于第一设定值,得到多个具有弱凸性的分块。

所述的步骤S21中,将点云分为多个点集Si的方法为:对于点云中的任意两个点k、j,当k、j在欧几里德距离上相邻且二者的范数方向不构成一个凹面,则将k、j归为同一个点集。

所述的步骤S21中,设定三维网格尺寸,计算点云在三维空间中占据的三维网格的个数,将其作为点集的初始个数。

所述的步骤S3中,相似属性的判断包括以下步骤:

S31,分别在相邻的分块Pm和Pn中任意采样v个点,构成v2个点对,同一个点对中的点分别属于Pm和Pn;

S32,计算两个分块的凸性等级CR(Pm,Pn),CR(Pm,Pn)=|LoS(Pm,Pn)|/v2,LoS(Pm,Pn)|表示v2个点对中,在分块Pm和Pn的并集中可视的点对的集合;若CR(Pm,Pn)大于第二设定值,则将分块Pm和Pn融合,否则不融合。

所述的第一设定值大于第二设定值。

与现有技术相比,本发明先将图像点云分割为具有弱凸性的分块,再利用较小的阈值将具有相似属性的分块融合,考虑了图像中物体的外部轮廓信息而不仅仅是局部特征,减少了小而孤立的形状,具有较好的图像分割效果。

附图说明

图1为本发明的流程图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

实施例

如图1所示,一种基于近似凸性分析的图像形状分割方法,用于确定图像的分割结构,包括以下步骤:

S1,获取图像的点云;

S2,将点云分解为多个具有弱凸性的分块;

步骤S2包括以下步骤:

S21,设定三维网格尺寸,计算点云在三维空间中占据的三维网格的个数,将其作为点集的初始个数,将点云分为多个点集Si;然后计算点集中可视点对的集合LoS(Si),LoS(Si)={(k,j),k∈Si,j∈Si,k和j可视},i表示点集的序号,可视点对的定义:若点集Si中的点k和点j之间的线段落在点集Si中,则点k和点j为点集Si中的可视点对;

对于点云中的任意两个点k、j,当k、j在欧几里德距离上相邻且二者的范数方向不构成一个凹面,则将k、j归为同一个点集。

S22,计算各点集Si的凸性等级CR(Si),CR(Si)=|LoS(Si)|/|Si|2,若某点集的凸性等级小于设定值,则继续将该点集分为多个更小的子点集,直到所有的点集和子点集的凸性等级大于或等于第一设定值,得到多个具有弱凸性的分块。

S3,将相邻且具有相似属性的分块融合,得到图像的分割结构;

其中,相似属性的判断包括以下步骤:

S31,分别在相邻的分块Pm和Pn中任意采样v个点,构成v2个点对,同一个点对中的点分别属于Pm和Pn;

S32,计算两个分块的凸性等级CR(Pm,Pn),CR(Pm,Pn)=|LoS(Pm,Pn)|/v2,LoS(Pm,Pn)|表示v2个点对中,在分块Pm和Pn的并集中可视的点对的集合;若CR(Pm,Pn)大于第二设定值,则将分块Pm和Pn融合,否则不融合。

第一设定值大于第二设定值。

对于两个点集Si,Sj,把Si,Sj中的点Si当作源点,Sj中的点当作目标点。对于Si中的每个点,与Sj中的点相连,形成了一个锥形的光纤束。当且仅当该光纤束不被点集中的其他点遮挡时,这个点与Sj中的点是可视。

弱凸结构(weakly-convex parts)

对严格凸形状进行放松,仅要求其中一定比例的点对是满足可视条件的即可。具体来讲,对于点集S,LoS(S)表示点集S中所有可视的点对的集合,即:

LoS(S)={(i,j)|i∈S,j∈S,i和j可视}

在此基础上,定义S的凸性等级:

CR(S)=|LoS(S)|/|S|2

显然,CR(S)越大,点集S凸性越强;当S为可视的时,CR(S)=1。

体积不相似度(volumetric dissimilarity)

通过观察发现,一个形状在沿着其体积轮廓上不太会有突然的变化。由此定义了两个弱凸成分Ci和Cj的体积不相似度:

dis(Ci,Cj)=EMD(hi,hj)

其中hi,hj对应于Ci,Cj在体积信息上的信号(volumetric signature)。EMD采用的是Earth Mover’s距离。

平缝集合(Seam Sets)

考虑一个点集Ci,平缝集合描述了该点集的边界信息。平缝集合定义在Ci及它的k个最近邻图Gk上,公式如下:

CVXSeami,j={(pu,pv):pu∈Ci,pv∈Cj,(pu,pv)∈Gk,angle(nu,nv)≤π}

CNCSeami,j={(pu,pv):pu∈Ci,pv∈Cj,(pu,pv)∈Gk,angle(nu,nv)>π+ε}

Seami,j={(pu,pv):pu∈Ci,pv∈Cj,(pu,pv)∈Gk}

其中CVXSeami,j和CNCSeami,j分别表示Ci和Cj之间边界的凸和凹间隙。Seami,j表示二者之间的所有间隙。

具体步骤:

由点云初始化成近似凸的小块;

对于点云中的任意两个点i、j,当i和j在欧几里德距离上是k个最相邻的两个点且他们的norm方向不构成一个凹面,则把它们相连。

随后,对这个连同的图进行谱聚类,来获得一系列最初的小块。

基于凸性,对小块进行融合;

对于任意两个相邻的小块Pi、Pj,放松严格可视的条件。对Pi、Pj中随机分别采样Svis个点,构成Svis2个点对用类似点集凸性等级的概念,定义两个小块融合起来的凸性等级:

CR(Pi,Pj)=|LoS(Pi,Pj)|/Svis2

其中LoS(Pi,Pj)表示采样的2Svis个点中与另一小块可视的个数。因为没有遍历小块中的所有点,因此即使是CR(Pi,Pj)=1的情况,融合起来的小块也只是近似凸而不是严格凸的。

对于任意两个相邻的小块Pi、Pj,当它们融合起来的凸性等级大于某一阈值时则把它们进行融合。因为整个过程是无参数的,采用多轮迭代逐步放松阈值的方式进行融合。在实施例中,进行了三轮迭代,阈值θi分别采用了0.9、0.8、0.7。

基于轮廓信息,对上一步的成分进一步融合;

假定经过上一轮融合后得到了一个具有弱凸性的成分记作C={C1,…,Cm}。对于每一个成分Ci,计算他的SDF值作为它的轮廓特征。

对于每一个Ci,在Ci的表面随机采样Svol个点,对于每一个采样点Pu∈Ci,记它的范数方向为nu。对于点Pu生成一个角度为α的圆锥,其中Pu是圆锥的顶点,-nu为圆锥的方向。对于其他所有落在该圆锥内部且属于Ci的点Pv,PuPv的长度乘以Pv范数方向与PuPv方向的夹角的余弦值作为权重。取这些值中的中位数作为点Pu的SDF值。如果一个点生成的圆锥内不包含任何Ci中的其他点,则该点不计入Ci的轮廓信息中。

对于Ci中所有具有SDF值的点,生成直方图hi来表示Ci的体积信息。有了Ci的体积信息,我们利用体积不相似度公式计算任意两个成分之间的不相似度(距离),由此可以得到任意两个成分的距离矩阵D。

在考虑两个相邻且相似度高的两个成分时,论文还进一步考虑了成分间间隙的凸性程度以便选择出其中最好的选择。对于集合Ci,Cj,我们希望他们的间隙尽量保持为凸,因此对于|CNCSeami,j|/|CVXSeami,j|≥0.85的两个集合不进行融合。在此基础上,选择Di,j/max(D)≤σ的两个集合进行融合。

特殊情况

如果Ci是一个近似平面,它具有SDF值得点会非常少,此时直方图hi的大部分元素为空。对于这样的点集,我们对它的邻居Cj按照从|Seami,j|大到小的顺序进行排序,这意味着按照跟Ci接壤最多的集合来开始考虑。对于这些邻集Cj,如果其中存在一个与Ci具有严格凸间隙的集合,则把它们融合;否则继续对Ci的邻集按照|CVXSeami,j|/|CNCSeami,j|进行降序排序,选择其中满足|CVXSeami,j|/|CNCSeami,j|≥1且θi,j≥0.4的第一个邻集进行融合。其中θi,j为两个集合的可视等级。

边界校准,图像切割

在将点云分割成多个成分之后,每一个部分被打上一个标签。对于成分间的边界,允许它在一条窄缝中跃迁而不是把它划到一个凹的形状中去。

当fu=l时

其中,

其中Su表示点u在原来分割中的标签,fu表示经过图像切割后的标签。distBl(u)表示点u距离标记为l的部分的边界的距离。

对于初始小块的个数取值问题:显然,经过第一步初始化后的近似凸的小块位于极小的局部区域中。用三维空间的网格探测点云在空间中的分布情况,来试图估计初始化的小块数。同时消除极近点,去除噪声。

基于凸性的融合:在融合过程中,通过不断减小阈值θi来放松对近似凸性的要求。在每轮融合过程中取按相似度排序,取topKi的组成融合,以此增加迭代次数,加快收敛。

对于点云中的一个属于同一类别的部分,考虑它的间隙集合大小。当类别中的大部分游离在两个结构之间时,认为它不是一个单独的有语义信息的实体,而是应该属于某一个邻近结构。

对于读入的点云,在区域中生成刚好将它包裹的10*10*10的网格,统计点落入不同方块的个数。假定1000个网格中有n1个网格包含点,则这n1个网格组成了形状的大致轮廓。记n1个网格包含的点个数的中位数为m。当βl<m<βh时,取n1作为第一部初始化小块的个数。若m小于一定阈值βl,则含有点的网格中的点的个数普遍较小,按照该尺度划分生成的小块信息量太少。此时重新取10*βl/m作为边长划分点云区域。若m大于一定阈值βh,则按照该尺度进行划分生成的小块中依然包含比较复杂的结构。此时重新取10*m/βh作为划分区域。在实验中βl和βh分别取了80和200。

对于初始化后生成的小块,按照之间的凸性等级,在考虑间隙凸性的情况下进行融合。θi从0.9开始逐步放松,在融合时取符合条件的小块对的前topKi=θi*100%进行融合。以此增加迭代次数并减少凹性融合的情况。当经过一轮迭代,类别数变化收敛到一定范围时,终止迭代过程。

对于相邻点集Ci,Cj,考虑时,认为它不是一个单独的有语义信息的实体,而是应该属于某一个邻近结构。取邻居中基于SDF值的距离最近的邻集融合。

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