基于凸包的最小体积有向包围盒生成算法.docx
- 文档编号:518254
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:16
- 大小:788.50KB
基于凸包的最小体积有向包围盒生成算法.docx
《基于凸包的最小体积有向包围盒生成算法.docx》由会员分享,可在线阅读,更多相关《基于凸包的最小体积有向包围盒生成算法.docx(16页珍藏版)》请在冰豆网上搜索。
基于凸包的最小体积有向包围盒生成算法
基于凸包的最小体积有向包围盒生成算法
作者:
胡志刚秦启飞
来源:
《湖南大学学报·自然科学版》2019年第02期
摘;;;要:
针对复杂物体三维点集的建模问题,提出一种基于凸包的最小体积的封闭有向包围盒生成算法.对凸包和其最小体积有向包围盒的关系进行分析,总结了其4种边面接触类型.通过枚举凸包中边的所有可能的组合,唯一确定包围盒的最优方向.实验证明,该算法可以快速生成符合模型体积特征的最小有向包围盒,且拟合效果良好.
关键词:
有向包围盒;几何计算;凸包;三维点集;图搜索
中图分类号:
TP30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;文献标志码:
A
AlgorithmforFindingMinimumVolumeOriented
BoundingBoxesBasedonConvexHull
HUZhigang,QINQifei
(SchoolofSoftware,CentralSouthUniversity,Changsha410083,China)
Abstract:
Anewmethodwaspresentedforcomputingthetight-fittingenclosingminimumvolumeorientedboundingboxesforconstructingthemodelofcomplexobjectpointsetsinthreedimensions.Therelationshipbetweentheconvexhullanditsminimumvolumeorientedboundingboxwiththesmallestvolumewasanalyzed,andfourkindsofedgecontacttypesweresummarized.Theoptimalboxorientationsareuniquelydeterminedbycombinationsofedgesintheconvexhulloftheinputpointset.Empiricalevidenceshowsthatthisprocessalwaysyieldsthegloballyminimumboundingboxbyvolumefeature,whichconcludesthatthismethodprovidesagoodsimulation.
Keywords:
orientedboundingbox;computationalgeometry;convexhull;three-dimensionalpointset;graphsearch
物體的包围盒广泛应用于图像处理、模式识别、碰撞检测、模具分型设计和机械控制等领域[1-2].目前应用最广泛的OBB(OrientedBoundingBox,有向包围盒)根据物体本身的几何形状来决定包围盒的大小和方向,可以对原模型进行紧凑的拟合[3].对于给定的三维点集,怎样高效而准确地得到其最小有向包围盒一直是国内外学者关注的问题[4].
一般考虑物体的所有顶点在空间的分布,通过不同的算法找到最佳方向,以确定OBB包围盒的几个轴.主要使用数值和统计优化方法来找到非最优、但在实际使用中足够好的近似值.目前的主流方法是使用主成分分析(PCA)[5],根据物体表面的顶点,计算特征向量来估计点集中最大扩展的方向,并作为OBB的主轴.这个过程必须使用凸包上的连续集合表示来完成,否则近似值可能是无界差的[5].为了获得接近最优的结果,Barequet和HarPeled提出一个(1+α)逼近方案[6],而另一方面,Larsson和K?
覿llberg则提出可以采用预定义的启发式方法来获得更好的计算速度[7].国内的陈柏松等[4]提出了基于非线性主成分分析的最小包围盒计算方法,在计算时间和运行结果上都取得了不错的效果,但是该方法利用了顶点之间的连接信息,无法处理无连接关系的点集数据.
还有学者提出使用粒子群优化[8]和遗传算法[9]来计算最佳结果,取得了不错的效果.但这些算法中包含随机因子,不能保证在所有情况下都找到最佳包围盒.
法国的Chang等提出混合包围盒旋转识别算法HYBBRID,采用遗传搜索方法对SO(3,R)的所有方向进行暴力搜索[10].对于给定OBB的候选方向,将模型重复地投影到与当前候选OBB的主轴相对应的平面上,将其转化为2D问题,使用Toussaint的旋转卡尺方法[11]在线性时间内进行求解.这减少了暴力搜索的难度,将问题转化为在单位半球中搜索较优的起始方向向量.通过不断重复计算得到最佳OBB的取向.然而,在该方法中搜索是在连续的空间上进行的,不能通过对一组离散的取向进行采样.
综合上述分析,已知的使用近似值,数值计算或启发式方法的算法,效果都不够出色.
本文提出一种快速准确的几何算法来解决该问题.首先对三维点集的凸包进行分析,总结了凸包和其最小体积有向包围盒的4种边面接触类型.通过枚举凸包所有边可能的组合,选取包围盒的最优方向.实验证明,该算法可以快速生成符合模型体积特征的最小有向包围盒,且拟合效果良好.
1;;系统模型及问题描述
1.1;;问题描述
由于模型内部的点对问题的解决没有任何帮助,所以本研究基于凸包的边上进行操作.可以使用QuickHull算法[12]或其改进方法[13-14]在O(nlogn)时间复杂度内计算点集的凸包.
最小有向包围盒生成问题定义如下.
输入:
三维点集构成的凸包顶点集V,边集E,表面集F;
输出:
最小有向包围盒O.
1.2;;相关符号与概念
为了更好地进行后续讨论,首先对相关符号和概念进行介绍.
定义1;;支持顶点(SupportingVertices).在凸包中,方向向量n的方向上的一个或多个最高顶点,成为支持顶点,表示为Supp(n).
定义2;;对向(Antipodal).对于两个顶点v1和v2,如果存在一个方向向量n,使得v1∈Supp(n)和v2∈Supp(-n),则称v1和v2的位置关系为对向.其几何描述为:
如果可以找到封闭OBB的某个方向,使得凸包上的两个顶点位于OBB的相对面上,则该两个顶点是对向的.
定义3;;侧向(Sidepodal).对于两个顶点v1和v2,如果存在两个方向向量n1和n2,使得v1∈Supp(n1),v2∈Supp(n2),并且n1·n2,则称v1和v2互为侧向.其几何含义是,对于一个闭合的OBB,如果可以找到一个方向使得顶点v1和v2位于该OBB相邻的两个相邻面上,则称v1和v2互为侧向.
支持、对向和侧向的概念同样可以用来表示凸包的边和面的关系.如果一条边e和顶点v分别位于该OBB的两个相邻面,那么也称边e和顶点v相互侧向.
如果x是凸包的顶点或边,则凸包中x的所有对向顶点的集合将表示为AntiV(x),凸包中x的所有对向边的集合表示为AntiE(x).同样,SideV(x)和SideE(x)表示x所有侧向的顶点和边的集合.此外,对于上述的侧向集合,SideV(e1,e2)表示集合的交集SideV(e1)∩SideV(e2)的简写.显然,如果一条边e:
v1→v2,是特征x的对向边或侧向边,那么边e上的顶点v1和v2也具有相同的性质.即:
若e∈AntiE(x),那么:
{v0,v1}∈AntiV(x),
若e∈SideE(x),那么:
{v0,v1}∈SideV(x),
若e∈SideE(x1,x2),那么:
{v0,v1}∈SideV(x1,x1).
因此,遍历对向边集或侧向边集,等效为遍历其顶点的集合.值得注意的是,对于侧向關系,反过来则不成立.即使两个相邻的顶点对于特征x是侧向的,连接它们的边却不一定也与x侧向.
符号N(v)表示顶点v的邻居顶点集合.从凸包内部测量的连接边e的两个相邻面之间的角度通常称为边e的二面角(DihedralAngle).因为凸包是凸形,所以所有的二面角的范围都在(0,180)内.最后,在边e两侧指向凸包外侧的两个相邻面的法线表示为f(e).这些法向量具有以下属性:
引理1;;如果OBB的面与凸包的边e齐平,那么OBB的该面的(非归一化的)法向量n为:
n=f(e)-f;
证;;该公式直接来自线性插值.t=0的值对应于OBB与法向量f(e)的面齐平的OBB.由于边的二面角从不为0,所以线性内插值不会产生简并零向量.
证毕.
实际上,我们可以使用几何的方法将凸包的顶点和边与支持函数相关联.
引理2;;给定凸包的一个顶点v和一条边e,当且仅当存在一个方向向量n使得v∈Supp(n)且(n·
f(e))≤0时,顶点v∈SideV(e).
证;;根据引理2,与边e齐平的OBB的面的法向量n2具有性质:
n=f(e)-;f
n·(f(e)-;f
公式左侧是关于t的线性表达式,所以当t取0和1时,表达式取得极限值,分别为:
n·f
f>(e).因此,当且仅当n·f(e)中一个为正数,一个为负数时,该方程有解.即:
n·f(e)≥0,或者
n·f(e)≤0.
将两个表达式相乘就可以得到引理2.
证毕
对于凸包的顶点和边,不论是对向还是侧向,都是非传递的关系.本文将通过对凸包的顶点图进行计算来得到相关关系,具体的实现算法在1.3节给出.
1.3对向和侧向关系判断算法
基于1.2的论述,给出以下判断顶点与边和两条边是否为对向关系的算法.
图1中算法输入为:
顶点v,边e;输出为:
顶点和边是否是对向关系.图2中算法输入为:
凸包的两条边e1,e2,输出为:
使得两条满足对向关系的单位向量.同样,可以使用图3中算法来判断两条边是否为侧向关系.图3中算法输入为:
凸包的边e1,e2;输出为:
两条边是否是侧向关系.
2;;最小体积有向包围盒生成算法
2.1;;凸包与其OBB的4种接触类别
该算法总体策略是:
通过计算通过凸包边的组合唯一确定OBB方向,而不是对球体中的所有可能定向方向进行暴力搜索.
Freeman和Shapira[11]提出并证明了,在二维情况下,凸包的最小面积的包围矩形的一条边必定与凸包的一条边共线,因而考虑凸包的每条边,以此作为凸包的包围矩形的一条边.在三维情况下,通过对大量实例的分析,提出以下假设:
假设1;;凸包至少有三条不同的边,与其最小体积OBB包围盒的表面共面,其中至少两条边位于
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 最小 体积 包围 生成 算法
![提示](https://static.bdocx.com/images/bang_tan.gif)