英语原文共 18 页,剩余内容已隐藏,支付完成后下载完整资料
计算3D对象的分层曲线 - 骨骼
ntilde;ICU D.C。ORNEA,D EBORAH 小号 ILVER,X IAOSONGyuml;UAN 和 R AMAN 乙 ALASUBRAMANIAN
新德里州立大学罗格斯大学电气与计算机工程系
Jersey,Piscataway,NJ 08855,USA
电子邮件:cornea,silver,xiaosong,balaiitm @ ece.rutgers.edu
摘要:
3D对象的曲线骨架是该对象的棒状图形或中心线表示。 它用于多样化 应用,包括虚拟结肠镜检查和动画。 在本文中,我们介绍分层的概念 曲线骨架和描述一个一般和鲁棒的方法计算一个越来越详细的家庭 曲线骨架。 该算法基于计算3D对象的离散化上的排斥力场 并使用所得到的矢量场的拓扑特性(例如临界点和临界曲线)进行提取 曲线骨架。 我们演示这种方法对许多不同类型的3D对象(体积,多边形和 分散点集),并讨论这种方法的各种扩展。
关键词:3D 曲线骨架,斥力场
图1:(a)牛模型的曲线 - 骨架层次:(b)核心骨架,(c)使用30%低发散种子,(d) 使用55%低发散种子。
1简介
骨架是一种有用的形状抽象,可以捕获两者中的对象的基本拓扑 二维和三维。 它指的是原始对象的缩减版本,它仍然保留 原始对象的形状属性。 在2D中,骨骼也称为中轴。 在3D中,术语“骨架”已用于描述内侧表面和更加线形的表示。 在[9]中给出的草火类比中,骨架由点组成 不同的火锋面相交。 如果火在草的周边同时开始(物体的边界),火将朝向物体的内部燃烧。当两个火锋面相遇时,火将被淬灭。 在2D中,火会熄灭 曲线。 在3D中,火面将沿着表面或曲线相遇。
在 从3D 提取 线状1D骨骼表示 最近,出现了兴趣 目的。 线状骨架也称为 曲线骨架 [38], 逆运动学 骨架(IK骨架)[36], 或 中心线 。 在本文中,我们将其称为曲线骨架。 曲率骨架对于许多不同的几何任务是有用的,例如虚拟结肠镜检查和虚拟结肠镜检查 内窥镜[20] [45],3D对象注册和可视化[5] [6] [32],计算机动画 (多边形和体积动画)[8] [15] [16] [27] [36] [39] [42] [11] [35] [37],表面重建[26],血管追踪[6]和弯曲平面重建 [22] [23]。 虽然对于曲线骨架没有精确的定义,但是存在许多希望 属性的骨架和骨架计算过程。 这些属性取决于 在应用曲线骨架被使用时,包括以下一些: 骨骼应该是 薄, 最好1体素厚,就应该抓住的“基本形状” 对象( 同伦 )[24],它应该 在对象内 居中 ,它应 连接 ,不同 骨架段应区分( 组件 -wise分化),每 内部边界点应该从骨架可见( 可靠性[20])。 这最后一个属性是 适用于虚拟结肠镜检查应用。 此外,骨架计算过程 应当对小的扰动/对边界上的噪声或旋转不敏感 的对象,有效地计算,可逆,使原始对象可以从中重建 骨架和层次结构,即允许不同的层次结构或细节层次的骨架 (多尺度[33]),其中每个层级被包括在下一级中。
许多这些属性是冲突的,例如一个对象不能准确 从一个稀薄的骨骼重建。 最后一个属性是一个重要的一个层次 骨架将允许使用相同的过程来计算不同的曲线骨架。 一个 例的 分层曲线骨架 示于图1。
在本文中,我们引入一个 分级曲线骨架 的概念, 并提出了一种方法, 从一般的3D对象提取这些曲线骨架。 我们还演示了这种技术 适用于所有类型的3D对象:多边形表面表示,体积数据集 和散点集。 还讨论了网格分解和动画的扩展。该算法应用于许多3D对象,其中一些在本文中显示(其他的可以在我们的网站上看到[43])。 该方法基于使用排斥力场 [2] [12]和概念从矢量场拓扑[21]提取曲线骨架架族。 该方法自动检测骨架中的“节点”,这可以用作分支点 虚拟导航[45]或动画关节[15] [16] [39] [42]。
2文献综述
在生成2D中轴,3D内侧表面和3D方面已经有很多工作 曲线骨架。 在本文中,我们关心从3D对象的曲线骨架生成 并限制我们的讨论与这里所描述的方法最相关(一个完整的列表 论文也可以在[4] [43]找到。 3D对象可以表示为一组边界 多边形,对象表面上的分散点或分段体积。 不同 技术工作在不同类型的对象。
在[38]中,给出了离散地确定表面状物体的曲线骨架的方法。使用掩模将体素分类为边缘,内部,曲线或连接,然后移除, 重新分类直到仅保留曲线体素。 没有定义层次结构并且未标识关节。 因为它是离散的,所以该方法对边界上的噪声敏感。 类似的减薄 算法在[30]中给出。 在[40]中,描述了确定2D骨架的2.5D算法 对于3D体元化数据集的每个切片,然后合并结果。 这个方法有 通过调整参数来生成细节骨架的能力,但它不是严格的 层次结构,并分解某些参数值。
许多方法基于首先计算距离场或距离变换 尝试细化,聚类和/或路径搜索以找到中心线[15] [16] [20] [29] [42] [45] 计算梯度以帮助确定“sink”方向[10] [34]。 这些算法是 非常敏感的噪声和层次结构不确定。 此外,距离场不是 理想的“盒状”对象的功能。
几何算法由[3] [26]给出,其中Voronoi图用于帮助确定 内侧表面。 必须使用聚类和简化来获得曲线骨架 不是本论文的焦点),并且没有确定等级。
在[41],通过计算a从分散点计算动画的曲线骨架 邻域图。 从用户选择的源遍历邻域图,并且 在每个级别的中心形成曲线骨架。 其结果并不总是在中心,它取决于选择源点和由此产生的骨架。 在[39]中,几何方法是 提出它集群表面多边形(网格分解),然后确定IK 骨架从多边形集群。 可以通过调整大小来生成细节级别 多边形表面集群,但是,生成的骨架将不是严格的层次结构。 在这里 论文,我们将展示如何使用分层的曲线骨架来分解多边形网格 ([39]的逆)。
另一组方法尝试在对象上计算一些连续的淬火函数 并检测该函数的极值(应该靠近或在中心线上) 目的)。 这些方法包括使用[1] [2] [10] [12] [18] [25] [27],径向基函数[28]和强度最大值[5] [6] [32] 大多数上述论文都没有讨论 分层方法对曲线骨骼化问题。然而,这些方法是相似的 这里采取的方法,并在下面详细讨论。
在[2]和[12]中,2D和3D骨架化算法基于广义势场 。 “种子”点附近的凸角处的对象被选择和排斥 力(势场的梯度)仅沿着使用a确定的路径分析地导出 力跟随算法。 在种子点开始的每个路径在电位最小值处结束 通过排斥力矢量方向的较大变化来检测。 生成的骨架 段通常是断开的块,并且需要单独的重新连接步骤以确保 连接。 没有定义层次结构,只能处理多边形对象。
在[44]中采用了类似的方法。 在这里定义的可见斥力是一种特殊情况 [2]和[12]中使用的排斥力:牛顿排斥力。 此外,力是 仅使用由确定的边界(可见集合)上的几个样本来计算 与来自路径上的当前位置的多个采样射线的交叉。 的 产生的骨架不平滑,并且识别的关节不鲁棒。 在[27],同样可见 使用排斥力,但是在整个体素化对象上计算力场。聚类和图形搜索算法的细化结合来提取骨架 并且不清楚这些如何影响识别的关节的最终位置。
3方法
在不失一般性的情况下,为了简化本文余下部分的讨论,我们 假设3D对象指的是该对象的3D体素离散化。 多边形模型可以通过体素化转换成体积对象[14]。 在4.1节中,我们也展示了如何 该方法适用于表示为分散点集的对象。
这里介绍的方法是对方法的增强和扩展 [2] [12] [27] [44]。 我们明确计算一个排斥力场在整个对象,如[27] (不只是沿着[2] [12] [44]中的路径)。 所得三维数据集是一个 矢量字段 :一个三维阵列 其中,每个像素包含一个 矢量 值(大小和方向)。 与所有的区别 以前讨论的方法是,一旦我们计算这个矢量场,我们使用它的拓扑 特征[13] [17] [21]等关键点和低分歧点以及高 曲率点在边界上,提取我们的骨架层次。
所提出的方法具有优于先前方法的许多显着优点, 即:它直接产生连接的骨架而不使用重新连接步骤,它工作 对于未分割的对象(其中只有对象的边界是已知的)和分割 对象(内部是已知的),它有能力产生严格的骨架层次结构 并且它具有自动提取可用于动画的“IK骨架”的能力,即, 自动识别关节。
3.1排斥力函数
我们的排斥力被定义为与广义势场的排斥力相似 [2] [12]。 潜在场方法背后的关键思想是在内部产生力场 对象通过给对象的边界充电。 计算广义的基本过程 多面体物体的势能和力被总结在[12]中。 因为我们的算法运行 由体素表示的3D对象,我们的边界元素也是体素,我们考虑它们 成为点电荷(这也简化了计算力场中涉及的计算)。 一个 边界点被定义为具有外(空)邻居的对象体素。 内部 体素(内点)是其邻居都是对象体素的对象体素。
由于附近点电荷引起的点处的排斥力被定义为推动该点的力 远离电荷,具有与距离的功率成反比的强度 在点和费之间即:
其中 F PC是排斥力点 P,由于点电荷 C,CP 为归一化矢量
从 C 至 P 赋予的力的方向,R 是 P 和电荷 C 之间的距离 和功率 m称为力功能(M = 2为牛顿力) 的顺序 。 在 由于多点电荷的影响 P点的压力 可以通过离散发现 简单地以 P 所有的力量相加 。
其中 F P 是在点 P 和 F 的PC 所得力 一世 的是由于各个点上的力
收费 C I。
我们认为每个边界体素是一个点电荷和在每个内部的排斥力 通过对所有点电荷的影响求和来明确地计算体素。 所结果的 矢量场也称为力场。
图2:3D棋子的排斥力场。 每个点的向量用箭头示出。 中间 3D对象的切片在缩放中示出。
一个高位的力功能(M) 会导致本地边界点具有较高的 对给定内部点的影响比较远的边界体素,因此产生向量 字段,因为它更接近地遵循局部边界拓扑。 低 为 m 参数 值 会产生平滑的矢量场,更多的圆角,因为 特定点的矢量方向现在受到更多边界电荷[2]的影响。 数字 图2示出了沿着3D棋子的中心切片的排斥力场。
由于算法使用的所有边界点的计算力, 知名度 错误可能 结果为具有锥形肢体(如梳子)的物体,因为每个叉的单个点 梳子不能“看到”其他插脚上的边界点,那些点不应该 在力场计算[12] [2]中考虑。 这可以通过确定视线计算的可视性,其检查以查看当表面不被刺穿时 用直线将点连接到电荷。 虽然这更准确,但不幸的是 大大增加了运行时间,并且仅在表面已知时才适用。 使用a m的高位 也减少更遥远的边界的影响可以减少这种影响[2] 收费。
力场计算的计算复杂度取决于对象的数量 边界体素:O-( 没有 times;Nb)的 ,其中 没有 为对象的体素的数量和 Nb 是数
边界体素。 因为 Nb 为 否 的一小部分 ,该计算复杂度是约 O(2号 )。 这是算法中最耗时的步骤,约占98% 总运行时间。
3.2计算曲线骨架
给定3D矢量场,来自矢量场可视化的某些概念可以用于识别 三种不同类型的“种子点”。 种子是定义我们的曲线骨架段的“场线”或“流线”的起点(这些线由“力跟随”找到)。
3.2.1关键点和“核心骨架”
关键点是重要的矢量场拓扑组件,通常用于矢量场 可视化。 这些是力矢量的大小消失的点。 在图2中, 一个临界点在棋子头部的中间是可见的。 在[13] [17] [21] [31]中, 讨论矢量场拓扑和不同类型的关键点的可视化 可以被找寻到。 在下文中,我们提出与提取曲线骨架相关的简要描述。
关键点难以在矢量场中定位,特别是因为它们不一定 发生在给定样本位置处,但经常发生在采样点之间。 一个好的 用于检测临界点的启发式在[17]中描述:在向量场中出现零 力矢量(x,y和z)的所有3个分量消失,因此,如果我们可以识别一个区域 每个矢量分量改变符号,该区域是包含临界点的候选。 在 我们的情况,我们可以考虑的最小区域是体素细胞; 力场值的求值为 使用三线性内插的网格单元的8个角中的每一个。 含有阳性细胞并且对于每个向量分量(x,y和z)的负值是潜在的候选 包含临界点。 候选细胞被递归地分成8个亚细胞, 对每个子小区重复候选性测试。 当单元失效时,过程结束 候选资格测试或当单元格太小时,仍然是候选人,在这种情况下临界点是 假定存在于小区的中心。
一旦提取,关键点被分类。 不同类型的关键点可以 识别[13] [17] [31]包括:吸引节点(其中所有向量都指向 临界点),排斥节点(其中所有矢量都指向远离临界点) 和鞍点(其中一些向量指向临界点而其他向量指向临界点) 从中)。 关键点可以通过评估实部和虚部来分类 在临界点处的矢量场的雅可
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[139302],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。