使用受限的随机游动进行交互式网格切割

使用受限的随机游动进行交互式网格切割

 摘要:本文讨论了从现有的网格中提取交互式地切割轮廓的问题。首先,我们提出了一个受限的随机游动算法,可以对随机游动过程添加限制,从而允许各种直观的用户输入。其次,我们利用图的最短路径设计一个优化过程获得一个很好的切割轮廓。最后一个基于受限随机游动和优化过程的网格切割算法就形成了。在相同的计算框架中,新的算法可以提供一种新颖的用户界面交互式网格切割,并且支持三种典型用户的输入和它们的组合:(1)前景/背景种子 :用户在前景(被切割的部分)和后景中绘制特定种子;(2)软约束输入:用户在网格上绘制的笔画的区域,表明该区域应该是将被切割区域的附近。(3)硬约束输入:切割轮廓必须通过的标志。该算法利用特征敏感指标测量,是基于表面的几何特性和认知理论的。约束随机游动算法,优化路径,特征敏感度测量及各种用户输入的整合,使得算法更加直观、灵活和有效。实验的例子表明,本文提出的切割方法是快速的, 可靠的、能够产生反映用户意图和几何属性的效果。

引言

网格切割是指从现有的网格中提取出子部分或者部分。它也被称为网格细分,网格划分和网格修剪。切割操作在网格编辑中具有重大的实际意义。在许多网格相关处理和应用程序中都是非常有用的,例如3D变形,参数化,纹理映射和形状分析和理解的建模。

本文考虑的问题是如何从已知的网格中交互的切割一个有意义的子网格,这个网格与用户的意图,几何网格属性和人类形状感知相一致。人类感知和有意义的概念内容是相互依赖的。很难自动计算一个有意义的分区。切割涉及少量用户表面用户感兴趣部分的交互,因此越来越感兴趣。我们的目标是开发一个直观和智能的网格网格切割算法或者工具。这个工具通过灵活的和更少枯燥的交互并且提供一个即时的视觉反馈来允许用户根据自己的意愿,几何特征及人类感知,交互地切割。

 1.1相关的工作

     很多文献对网格切割进行了大量的研究。为了将网格划分为一个有意义的部分,很多方法类似网格元素或组件进行迭代成集群,然后再细化边界找到分割。例如基于距离的聚类算法k-means(K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。),模糊聚类(模糊聚类算法是一种无监督的机器学习方法,能够有效地检测出网络入侵中未知的异常攻击行为,但模糊聚类算法实质上是一种迭代寻优方法,容易陷入局部最优解),谱聚类(谱聚类算法建立在图论中的谱图理论基础上,其本质是将聚类问题转化为图的最优划分问题,是一种点对聚类算法,对数据聚类具有很好的应用前景。)。还有一些的其他方法,包括分水岭分割,边收缩和空间分解,基于递归二分法的光谱嵌入和轮廓分析以及分层姿势不变的网格分割。除了静态模型,还有一些研究如何分割动态的网格。综合性的参考和对比可以在比较优秀的论文中找到。一些基本的3维网格切割算法在14这篇引用上可以找到。

最近,允许用户影响或指导的交互式网格分割,在计算机图形中变得特别流行。三维交互式网格分割大致可以分为三类:

(1)         要求用户在所需的切割轮廓上指定几个点,然后通过寻找它们之间的最短路径来切割。这类目标切割轮廓的方法,可以支持任意形状的切割,但是当指定点的时候需要特别的注意,并且这些点通常按顺序指定。

(2)              要求用户提供一个初始区域,这个区域是靠近所需的切割轮廓或者就在这里切割。活动轮廓和网格修剪算法引出初始的区域或者找到所需切割轮廓临近的初始区域。最小比例循环算法在规定的搜索区域离散地找到最佳轮廓,使得轮廓能量与轮廓长度的比值最小。智能修剪采用Dijkstra算法的变种来找到进入初始区域的切割轮廓。文献22采用了图切割算法来找到切割轮廓。所有的这些方法允许用户指定不是非常精确的初始区域。然而,正如文献2指出,如果行程太短或者网格太复杂,那么生成的轮廓可能不符合用户的意图。这些方法可能会收敛到一个局部最小值,并且很难控制。图切割具有小切口的行为。也就是,由于少量的种子可能会导致一个小的分割。

(3)              要求用户提供一个初始的属于所需切割部分或者其他的部分的一些点标签,然后利用这个算法完成其他没有标记的顶点。简单的网格切割属于这一类,它开始于不同的种子顶点,然后根据改进的等照度慢慢成为很多子网格。这种网格分解需要用户指定特征点,然后根据特征点的距离给网格的每个面分配特定的分区。相似的方法也广泛用在图像分割。例如,对于非种子点根据用户定义的顶点,with a set of given user-defined seeds, for an unseeded pixel, therandom walks algorithm [26] determines the probability that a random walkstarting at that pixel first reaches each particular seed and then segmentationis formed by assigning the label for which the greatest probability iscalculated。该算法已被证明是非常有效的。由于随机游动算法在图表上形成的,它很可能扩展应用到表面模型上。这类方法的优点是用户的规格是不那么单调乏味的,但他们通常产生准确结果的问题。无论一个分割算法是自动的还是交互的,如何产生一个自然的能够反映人们形状感知的划分是有重大意义的。认知理论的研究也被用于分割算法。例如,最小值法则表明人类的认知倾向于将一个表明沿着最小负曲率进行分割,并且它已经用在了网格修剪和简单网格切割中。The part salience theory determines the salience of a part based onits relative size, protrusive-ness and cut strength [29], [30], and it has beenused

to reject counter-intuitive segmentation [2] or to guide a cut。最近,提出了基于随机切割网格的形状分析法,这种方法会产生一组随机的网格切割,用这种结果提供一个对自然切割的连续的测量。

1.2我们的方法

     我们的工作最初的灵感来自于简单网格切割和对图像切割的随机游动算法。当我们的工作完成的时候,我们也注意到随机游动算法已经延伸到既可以交互网格分割也可以自动分割。我们欣赏这种方法可以易于用户指定前景和背景以及随机游动算法的速度。但是,也发现到简单网格切割和随机游动算法有时候很难得到用户所需要的切割,特别是当几何体没有清晰的边界的时候。即使当所需要的边界包含一些特征的时候,如果要求高的精准度,对于产生一个符合匹配特征点的切割也是很困难的。添加更多的前景/背景种子可能会使得前景和背景分类更加准确,但是这个过程不是很高效。参考图1,我们试着切断茶壶模型的底部圆形,图1a表明了利用随机游动算法切割的结果,用红色种子表示前景,蓝色种子表示背景。我们通过逐渐增加更多的前景和背景种子来完善这个结果,如图1b-e所示。这个过程有点枯燥,而且这个结果也不是很令人满意。相反,如果我们利用本文所提出的方法,我们添加两个软约束如图1f所展示的半透明表明这个区域应该是切割的最初前景和背景输入的附近。图2是另一个用随机游动算法的例子。图2a和b表明仅仅通过指定前景和背景笔画是很难保证精确度的。但是,如何用一些额外的特定点作为硬约束的话,一个整齐的切割就会生成,并且与所想要的切割边界的特征相匹配,正如图2c和d展示的。因此需要有一个可以结合用户不同层次的规范轻松的产生一个简单的快速精确的切割的算法。

     在本文中,我们提出了一个新的用户界面用来交互式网格切割,支持前景/背景种子输入,用户可以用笔刷指定哪一部分是前景哪一部分是背景。软约束输入,用户绘制笔画表明该区域是需要切割的附近;硬约束输入,用户做好标志表明切割必须经过的一系列点的集合。这是一个由粗到细的设计。就用户的简单使用而言,前景/背景种子输入不需要太注意,对于软约束仅仅是宽松的输入,对于硬约束则需要仔细的输入来保证精度。以我们的知识所知,目前还没有这样的网格切割用户界面。通过相同的计算框架,用户完成三种不同类型的输入,包括约束随机游动算法引入随机游动的约束问题,并且计算概率为顶点提示切割轮廓信息,优化路径来寻找所需的切割轮廓,一些反映最小值规则的功能敏感指标和一个基于分水岭预处理来加速计算。这种变化的用户输入使得我们的框架比现有的交互网格切割算法像简单网格切割,智能修剪,网格修剪和随机游动更加简单和灵活。同时,高效的整合和最优化使得我们的算法更加快速,可靠和高效。

这篇论文最主要的贡献包括以下内容:(1)处理交互式网格;(2)受限的随机游动算法是在常规的随机游动中增加额外的限制,从而允许有用的和直观的用户输入。(3)最优化过程利用最短图路径来找到一个好的切割轮廓。

1.3概述

  在第二部分,我们首先提出一个受限的随机游动算法来计算三角形网格上每个顶点的可能性。然后在第三部分展示了寻找切割路径的最优化路径。我们交互切割工具的工作流程在第四部分展示。第五部分表明了实验结果,第六部分总结论文。

2.三角网格上的受限随机游动

     把一个三角网格定义为一个元组{V,E,T},顶点V=={vi| vi R3, i = 1, ..., m},边E={eij=(vi,vj)|vi,vj∈V,i≠j},面T={fijk=(vi,vj,vk)|vi,vj,vk∈V,i≠j ,j≠k ,j≠k}.所有的边都是没有方向的,并且每条边eij指定一个权重值,代表随机游动者沿这条边走的可能的概率。对于每个顶点Vi,有一个标量值di计算各边的权重和。每个顶点相邻的k个环用Nk(vi)表示。假设我们给一组属于V的顶点F几何标记为前景,属于V的B顶点几何标记为背景,并且F∩B= .用P(vi)表示随机游动者到达B之前首先达到F的概率。对于属于F的顶点v,P(v)=1,属于B的顶点V,P(v)=0.对于其他顶点Vi,我们定义P(vi)=1/di SwijP(vj).这样会产生一个关于P(vi)的线性方程,vi∈V\(F∪B)未知的。求解这个方程给出顶点Vi首先到达F的概率。根据计算的概率值,进行一个分类。利用二分法,对于顶点的概率值大于或等于1/2时被分类为前景,顶点概率值小于1/2被分类为背景。这种方法被称为随机游动算法。

     除了前景和背景顶点,我们对其他的顶点有两种类型的限制。第一种称为软限制。软限制的顶点被赋予这样的属性,它的概率与1/2有一个很小的范围[ǫ, ǫ]。让S集合表示这些顶点。第二种类型被称为强制约束。强制约束的顶点的概率被限制为1/2,并用H表示所有强制限制的顶点。然后我们考虑如何寻找由1定义的方程解的问题,也就是对于任意的Vi∈V\(F∪B∪H)服从这个限制,即对于顶点V∈F的P(V)=1,对于顶点v∈B的概率P(v)=1/2,对于属于H的顶点概率的P(v)=1/2,对于属于S的顶点v,|P(v)-1/2|≤ǫ

实现证明,下面的最小值问题与上面的问题是等价的。

这是一个经典的二次方程编程问题。求解这个二次编程问题通常比较耗费时间。更严格来说,如果这个软约束不是强制性的,这个二次方程编程可以没有解。因此,与其找一个尖端的方程编程解答者,不如我们轻微的修改问题,按照下面的问题从而得到一个解答,我们称为受限的随机游动问题。

Λi是一个折中的因子用来控制P(Vi)~1/2的差距的重要性。这个值越大表示P(vi)越接近1/2.对于每个P(Vi)中的每个顶点Vi∈V\(F∈B∈H)让它等于0,对方程3进行微分,得到下面的式子

这个表达有个几何的解释,见下面图3,每个软约束的顶点被指定连接一个权重为λi的虚拟的边到一个概率为1/2的虚拟相邻点。

 

 

 

 

 

 

方程4也给对每个vi∈S的|P(Vi)-1/2|一个估算。

 

因此,如果给定一个小的正数ǫ(小于1/2),如果我们让

,我们就可以得到从而确保在我们的实验中,我选择λi= 3di,想到于ǫ=1/8.

     让P是一个包含所有的一个列向量,然后方程4就可以重新写成矩阵的形式,LP=C,其中L是方阵系数矩阵,C是一个列向量。文献26论证了L是一个稀疏的,对称的正定矩阵。这样这个线性方程就有唯一的解。有很多高效的方法可以求解这个系数的线性方程。值得指出的是,随机游动的许多特性也保持真实受限的随机运动。例如,在方程4中P(Vi)对于任意的顶点Vi∈V属于(0,1)之间。

2.1边权重

  在随机游动算法中,分配边的权重对于最终的结果具有很大的影响。对于我们的网格切割应用,为了使网格切割成有意义的碎片,应该合理的设置权值。对于图像分析算法中,一个常见的惯例就是计算图像的强度,然后映射到边权重的变化。类似的,我们应该需要找到一个距离度量来测量沿边的几何性质的变化。在文学性24中提到了特征敏感度度量,它同时考虑了等度量和最小值规则。等度量是文献32中引出的,它是依赖沿着它在表面上连接两个点并且表面法向量的变化的路径的长度。等照度量在表面上是一个特征敏感的度量。最小值理论是在认知理论中一个比较接近感知标志的理论。它认为人的知觉通常按照沿着主要曲率的负极小值来划分表面。对于一个边eij,顶点分别是vi和vj,它的距离定义如下:

前两项表示等度量,第三个表示最小值理论,ni和nj分别是表面顶点vi和vj的单位法向量,kvivj是顶点vi沿着直线vivj方向的法向曲率和顶点vj沿着vjvi法向曲率的平均值。文献33和34提出了对于离散的三角网格计算法向曲率的公式。f(k)的功能设置为

5是为了增强负曲率的影响,这是符合最小值理论的。系数w1,w2,w3用来控制距离,法向变化和曲率的相对重要性。通常不同的3D模型缩放的尺寸也是不同的,在等式5中,我们发现有些项取决于模型的尺寸。因此,当我们给一个网格模型设定距离度量时,我们对模型进行标准化,使得模型上的两个顶点之间的最大欧氏距离等于1.然后我们设置wi的值,使它们满足下面的关系,

Avg(x)返回整个模型上x的平均值。

     一旦边距离度量被计算,我们需要调用一个函数去映射边度量dij到权重wij。Dij的距离越大,分配给边eij的权重值越小。因此这个函数应该是递减函数。根据文献26,我们可以用高斯方程

可以将产生的权值的熵最大化。

3.优化切割轮廓

虽然有些算法像文献2,24通过切割轮廓计算新的边,在这篇论文中,我们对切割进行限制,也就是仅仅切割网格上面已存在的顶点和边。这样做的优势是无论在几何上还是拓扑上,切割的网格都是原始网格的一部分。注意,在人造网格的边通常有缝隙,而自然的网格模型的边通常很密集。对于这类模型,我们的限制不对对结果产生影响,同时它可以避免一些不想要的操作。

 一旦概率值通过受限的随机游动算法进行计算,我们不得不设计一种方式来决定切割轮廓。我们基本的想法是首先找到一个轮廓区域,我们用G表示。轮廓区域是由切割轮廓上的所有候选点并通过边连接他们而形成的。轮廓区域是原始网格的一部分。第二步是从G中选择顶点作为切割轮廓。由于我们的受限随机游动算法给出了一个随机游动者从一个顶点开始在到达背景种子之前到达前景种子的概率,所以我们选择1/2概率值作为选择标准是合理的。然而,如何把接近1/2作为唯一的标准,那么这个结果可能导致一个有锯齿的轮廓。图4是通过这种方式产生的结果。因此未来得到一个好的切割轮廓其他的标准比如轮廓的平滑度也是需要考虑的。切割轮廓优化的母的是找到切割轮廓,然后用一个确定的能量函数优化它。其他部分描述了怎样找到一个切割轮廓并且如何通过轮廓区域决定切割轮廓。

直观地说,如果一个顶点vi∈V\F∪B∪H并且概率P(vi)≥1/2(或者<1/2)或者它至少有个相邻顶点Vj的概率P(vj)<1/2(或者P(vj)≥1/2),那么它就是一个切割轮廓的候选顶点。所有这些候选顶点和连接它们的边都来自于轮廓区域G。G有两个边界B+和B-分别表示顶点的概率≥1/2和<1/2.注意对于一个硬约束顶点,它的平均权值在第1环附近的顶点的概率值不一定是1/2.所有1环相邻的顶点的概率值都大于1/2也是有可能的。这样,这种硬约束顶点不一定包含在G中,也将不会在切割轮廓中。这与我们引入硬约束的的意图是不想违背的。为了解决这个问题,我们通过移动沿着两个边界B+和B-各自的方向来扩大了候选区域G,直到使G包含所有的硬约束顶点。

为了在G中找到一个好的切割轮廓,我们提出了一个能量函数,并试图在G中所有可能的轮廓找到最小能量函数的轮廓,并且能够区分前景和背景。对于一个轮廓几何C={v1v2……vl},我们定义它的能量函数通过:

其中α和β是权衡因子(默认的值设置为1),θi是一个角度(也可以是弧度),它是在切平面的直线vi-1vi和vivi+1的投影,f()是公式6中定义的函数,ki1和ki2是顶点vi的表面的两个主要的曲率,max()是网格上所有顶点值的最大值。G()是

M是一个大的正整数。这个功能是为了保证最佳解通过硬约束的顶点。在7的能量函数中,第一项是测量顶点的概率距离1/2有多近,第二项测量多边形的公平性。第三项使得切割轮廓趋向于经过主要最小负曲率的顶点。根据最小值理论,最小主要负曲率的顶点在接口处分离对象部分。

 找到最小解实际上是寻找在三角网格在推断的曲线图表示的最短路径,每个顶点是一个结点,网格的每条边是连接两个结点的边。每个结点都定义一个成本函数。但是,我们试图要求解的问题有三个特征,将会使优化变得复杂。下面,我们将会说明这些特征和我们的策略。

第一个特征就是我们想要找的能够分离前景和背景的切割轮廓,通常是封闭的。在这种情况下,我们采用了类似文献35中使用的迪杰斯特拉算法。对于G中的每个边界,比如B+,我们任意选择一个顶点vi。我们对G用广度优先算法从顶点Vi开始直到碰到一个顶点(比如vj)属于B-。利用广度优先查找算法从顶点vi到vj的路径被用来分离G。看图5中蓝色路径的说明。为了使这个算法更加简单和容易,我们删除边(例如图5中虚线的边)在另一侧将要分离路径并连接它们的边。

第二个特征就是当我们计算每个顶点vi的θi,它取决与vi的哪两个边容易选出来。也就是说,θi不光与顶点vi,还要有vi-1和vi+1来决定。为了合理的处理所有的顶点,当我们利用迪杰斯特拉算法来找到从源点到终点的最短距离时,我们在源点和终点之间放置一个虚拟的顶点sink,并且用实线代替sink到end,用虚线表示sink到source。这样,sink顶点的概率设置为0.5并且它的两个主要的曲率设置为0。现在我们转向找从source到sink的最短距离,等价于我们最初的最小值问题。虚拟点sink的引入虽然有计算代价,但是能使source到end更加简单。

第三个特征是当有硬约束顶点的时候会有消极的成本。在这种情况下,我们不能简单的使用迪杰斯特拉算法(这种算法假设所有的成本都是积极的)。因此我们采用下面的策略几乎是最好的优化。假设有m个硬约束顶点,迪杰斯特拉算法适用从源点知道遇到一个硬约束的点,我们用h1表示,并且标记h1被处理了。然后迪杰斯特拉算法适用从h1直到遇到一个没有被处理的硬约束的顶点,我们用h2表示。重复这个过程知道我们遇到hm。然后,我们找到了hm到sink的最短路径。所有路径的整合就得到了切割轮廓。

这个步骤对每个在图G中的虚边都适合,其中虚线和路径的交叉点作为源,另一端点的虚线被作为终点。最优解是一个具有最小能量值。下面的图4是用这种方法产生的结果。与其他的最优方法相比,比如文献24用的snake算法往往收敛到一个局部最小值,我们的方法通常是全局优化。除此之外,修改的迪杰斯特拉算法的时间复杂度对于交互的网格切割是合适的。

4.交互式网格切割

    现在我们开始描述我们的框架和交互网格切割的实现。

    当一个三角网格模型载入到系统中,用户可以操作这个网格,选择一个合适的视角,用下面三种基本的模式来指定他的意图:

1. 前景/背景种子输入:用户用画笔在屏幕上定义他的前景和背景

2. 软约束输入:用户在屏幕上画出一个区域表示切割轮廓应该经过的附近

3. 硬约束输入:用户在屏幕上标记一些点表示切割轮廓应该经过的地方。

每个笔画有用户特定的宽度。如果用户在屏幕上画出了他们的图像,在网格前面的这些顶点将会被标记。如果超过一个顶点映射到同样的屏幕位置,那么离用户最近距离的顶点被标记。用户的输入模式也转移到相应的顶点。除了硬约束输入之外,允许用户指定应该在切割轮廓的点,并且笔画没有必要特别精准。用户可以自由的从一个输入模式到另一个输入模式或者混合的使用它们。这就为用户提供了灵活性,因为有些模型或者模型的某些部分可能需要一个特定的输入模式。

一旦用户完成草图,受限的随机游动算法开始计算模型上每个顶点的概率,接着利用最优化步骤寻找切割轮廓。然后一个切割轮廓和切割的模型迅速产生了。

应该指出,如果我们只有软输入或者硬输入限制,算法实际上不知道哪部分应该被切掉。这意味着用户意图的信息是不充分的。在这种情况下,我们的系统能够找到切割轮廓,并且自动的设置一部分作为切割的前景和另一部分默认作为背景。用户可以输入更多的信息来指定哪部分应该作为前景或者背景。

为了完成仅仅用软或者应约束输入的切割,我们采用下面的策略。对于软约束,我们自动创建两个新的画笔,它们在输入画笔的两边并且与输入画笔有相同的方向。两个笔画中的其中一个作为前景种子,后一个作为背景种子。然后这个问题就变成了有前景/背景种子输入和软约束输入了。受限的随机游动算法现在就可以使用了。图6左边展示了这样的例子,用户仅仅输入一个笔画作为软约束,算法会自动创建两个新的笔画用来作为前景和背景种子输入。类似的方法可以用于硬约束,两个输入标志用来定义一条线,两个新的画笔沿着相同的方向在这个线的两边自动创建。图6右边是说明。在我们的网格切割系统中,这些新创建的笔画仅仅用来基础的计算,实际上并不显示,以避免用户混淆。当然这些自动产生的笔画也只在真的需要的时候产生。当已经有一些前景/背景的时候,笔画就不会自动的产生了。

如果对切割结果不满意的话,用户在任意的三种输入模式下可以交互的绘制更多的笔画来优化切割结果。

4.1预处理

   对于交互应用程序,实时的反馈是非常重要的。尽管受限的随机游动算法可以通过解决一个稀疏的线性方程来实现,而且很多有效的解答者解决稀疏线性方程,但是对于大型模型还需要加速计算速度。我们提出了一个预处理的步骤基于文献7中分水岭方法。

首先执行分水岭算法防止网格过分分割。这样做,每个顶点的区域都被计算。局部总的最小区域的顶点指定为唯一的标签。遍历顶点,允许每个顶点下降直到遇到一个有标签的区域。

第二,我们使用前面章节描述的方法对网格的一个超集进行分割,顶点是通过分水岭分割的区域,边是连接相邻区域的弧。两个相邻区域的权重被定义为经过这两个区域的边的权重之和。分割的输入分布到每初始网格的顶点,并且他们提供一个很好的近似值,可以用来作为我们受限随机游动算法的初始值。由于分水岭分割产生了一个很好的网格超集,这样预处理就大大的提高了速度。

5实验和讨论

这部分提供了一些实例来表明基于受限随机游动网格切割算法的适用性和灵活性。这个实验运用2.67英特尔主频2个2G内存的处理器。在这些实验中,红色的笔画,蓝色的笔画,黑色的点,半透明的灰色的笔画分别代表前景输入,背景输入,硬约束输入和软约束输入。

我们首先测试了算法的运行时间,没有运用分水岭算法预处理步骤。这个测验在6个在顶点数目不同尺寸的模型上进行。图7展示了这些模型,用户的输入以及切割结果。由于用分水岭预处理和不做处理有相同的视觉效果,所以我们仅仅显示分水岭预处理的结果在图7中。图表1列出了模型的统计和运行时间。可以看出我们的算法(用分水岭预处理)可以产生一个实时的结果。

然后我们比较我们的算法与laiet等人的随机游动算法,对于简单的模型来说非常接近我们的工作。这个比较,我们没有对我们的算法和lai et等人的算法进行后处理来平滑切割轮廓。从图8中,可以发现没有对我们的算法进行软和硬约束,切割结果和lai et等人的算法很类似。这并不奇怪,因为我们没有软/硬约束的算法仅仅是随机游动算法的一个版本。我们的算法和lai et等人的算法的一个区别就是我们的随机游动算法直接应用到三角网格上,而lai et等人的随机游动算法应用到对偶图,处理网格的表面作为图表的结点。虽然使用对偶图有一些优势,我们选择顶点作为结点,可以方便我们硬约束的参数。还要注意的是一个包括很多顶点的三角形网格,顶点数目大约是表面数量的一半,这可以降低线性方程的比例根据随机游动算法。我们还发现简单模型切割算法有时效果不好(图8c可以看出)。这是因为简单网格切割算法适用区域生成来找到切割轮廓。区域生成过程每次迭代的时候都选择与当前点相邻的具有最小权重值。结果,区域生成很大程度上依赖种子的初始位置,并且对噪声非常敏感。具有高曲率和噪声的顶点通常具有大的权重值,可以阻止区域的生长过程。我们的交互切割算法支持三种典型的输入以及它们的结合(见图7)。一般来说,前景/背景种子输入使用是最简单的,软约束需要一些注意 ,硬约束输入种子需要最多的注意。输入的选择实际上取决于用户和应用程序。对于一些模型,前景/背景输入就充分了。但是,在某些情况下,仅仅通过前景/背景输入很难得到满意的结果。正如图1和图2表明,软约束和硬约束可以 用于前景/背景种子输入以便快速的找到一个好的切割。图9,10和11展示了三个例子,关于软/硬约束用于进一步的指导切割。在这些例子中,随机游动算法也是用于寻找切割轮廓,我们逐渐增加更多的前景和背景笔画来细化这个切割,但是结果仍然不太好。相反,当我们使用受限随机游动算法添加一些额外的软/硬约束的时候,我们可以很快找到一个好的切割结果。正如文献23中指出,随机游动关于种子的数量是相当强壮的,但是关于种子的位置比较敏感。软约束和硬约束的引入可以帮助纠正错误操作的前景/背景种子。这样就使得我们的受限随机游动算法工作的更加强健并且对各种输入都很稳定。

最后,图12展示了使用我们的受限随机游动算法切割一些复杂拓扑结构模型的例子。

 

6 总结

在这篇论文中,我们提出了受限的随机游动算法和寻找最优路径算法。在此基础上,一个交互的网格切割算法就形成了,并且支持三种典型的用户输入以及它们的结合,模拟当前主要的网格交互切割算法,包括简单网格切割,智能修剪以及相同计算框架的活动轮廓方法。实验结果表明,对于用户意图和几何属性来说这个新的算法是稳健,快速的并且能够产生满意的结果。

由于这篇论文重点是将网格切割分成两类,就提出了受限的随机游动算法来描述这个二分切割。但是,也可能拓宽想法,这个算法可以将网格切割成好几个类别。基本的策略就是对于每个种子输入的类别,我们计算机随机游动在到达其他类别种子之前首先到达这个类的概率,然后我们把这个结点分类到概率最大的那个类别中。由于我们现在将网格分割成很多类别,当我们进行软或者硬约束的时候,我们需要明确表明软约束和硬约束是和这个种子的类相联系的。然后提出的受限随机游动算法可以用于计算概率。通过这种方法,软和硬约束输入用来影响分布的概率。这个扩展的部分具有挑战性的就是如何确保最后分割的轮廓经过硬约束的顶点,这个还在进一步的研究中。

本文提出的轮廓最优化方法是非常具有启发性的。设计一个更好的方法来从受限随机的游动产生的结果中提取切割轮廓是具有理论价值和现实价值的。

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值