视觉特征保持的网格模型简化算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
视觉特征保持的网格模型简化算法
杨大光;胡维多;常波;魏青
【摘要】针对二次误差测度算法存在几何特征消失等缺陷,提出了基于顶点视觉特征度的新的网格模型简化算法.该算法采用半边折叠,通过引入顶点视觉特征度来优化了二次误差测度,从而改变边折叠的顺序,使模型中的突出视觉特征更多的被保留下来.视觉特征度通过顶点平均曲率熵来定义,它反映了顶点中心区域的视觉变化情况.实验表明,该算法高效、可靠、能很好保持模型的视觉特征.%In allusion to the some deficiencies from the algorithm based on error metrics (QEM),such as neglect of some geometric features,a novel approach based on visual feature is proposed for mesh simplification.The approach is driven by introducing a visual feature into the new QEM to optimize error metrics,as well as half-edge collapse,therefore the collapse sequences of edge can be adjusted,and some sharp visual features of the model can be preserved.We define the visual feature of one vertex based on its vertex curvature entropy which reflects the visual variation of the region centered at this paring with QEM algorithm,the algorithm is
efficient,reliable,and can maintain the visual characteristics of the model better.
【期刊名称】《图学学报》
【年(卷),期】2013(034)004
【总页数】6页(P35-40)
【关键词】网格简化;半边折叠;二次误差测度;视觉特征
【作者】杨大光;胡维多;常波;魏青
【作者单位】北京航空航天大学宇航学院,北京100191;海军航空兵学院,辽宁葫芦岛125001;北京航空航天大学宇航学院,北京100191;海军航空兵学院,辽宁葫芦岛125001;海军航空兵学院,辽宁葫芦岛125001
【正文语种】中文
【中图分类】TP391
在视景仿真中,为了提高系统渲染速度,减少网络数据传输量,通常采用模型简化技术来简化网格模型。
目前,基于不同的算法思想,学者们提出了多种网格简化方法。
根据简化过程中删除网格元素的不同,可将网格简化方法大致分为点删除、面折叠和边折叠3类[1],其中边折叠方法是最常用的三角网格简化策略。
Hoppe[2]于1993年首先采用边折叠方法来简化网格模型,该算法通过优化一个全局的能量函数来确定边折叠的次序和新顶点的位置,生成的简化模型误差较小,视觉效果较好。
但该算法计算繁琐,时间复杂度较高。
1997年,Garland[3]等提出了基于二次误差测度的边折叠算法,其在误差测度中仅以点到其邻接面的距离平方作为误差量,计算过程较为简单,简化效果与Hoppe算法相近,但该算法不能很好地保持模型的几何特征。
本文在计算网格模型二次误差测度的同时,将顶点视觉特征度概念引入到二次误差测度计算中,并采用半边折叠操作来减少简化过程的存贮量。
实验结果表明,本文算法在相同的简化条件下,能够很好地保留网格模型的视觉特征,可以获得比QEM算法更好的简化效果。
1.1 边折叠操作
边折叠是将边作为被删除对象,每折叠一条边,就会生成一个新顶点,并把所有与被删除边相连的点与该新顶点相连,保持模型始终由三角网格组成,通过控制边折叠的顺序和数目,就可以得到不同分辨率的简化模型,如图1所示。
半边折叠将边的两个端点之一作为折叠后的新顶点,简化了操作复杂度,并且不增加存储量,因此,本文采用半边折叠操作。
1.2 二次误差测度
网格中任一顶点 v = [x, y, z,1]T折叠到新顶点v,其误差值Δv 为v到v相关联的三角形平面集合Planes(v)中每个三角形所在面的距离平方和,即
其中, p =(a, b, c, d )T表示Plane(v)中每个三角形所在面的平面方程 ax +
by+cz+d=0,且
令,当把边 v1 v2折叠到新顶点时,误差矩阵Q与边折叠代价Δ )分别为:
其中 Q1和 Q2分别是边折叠前顶点 v1和 v2的初始矩阵。
1.3 新顶点位置选择
在进行边折叠操作时,需要先计算折叠后新顶点的位置。
而确定新顶点方法的不同将直接导致计算边折叠代价的不同,从而影响模型简化过程中边折叠的顺序,最终影响简化模型的进度。
新顶点位置的选择原则是使简化模型尽可能逼近原始模型。
一般而言,边折叠操作(v 1 ,v2)→时,可以采取以下两种方式来选取新顶点位置。
1)简单方式:新顶点的位置从折叠边的两个端点或中点中选取,即= v1,= v2或 = (v 1 +v2)2,通过比较边折叠代价(v 1 ,v2)→ v1,(v 1 ,v2)→ v2和
(v1 ,v2)→ (v1+v2)2来确定。
这种方式计算量小,可提高运算速度,而且简化模型的顶点集是原始模型的子集,有助于保留初始模型的轮廓和几何特征。
2)优化方式:优化选择的方式是指不直接使用折叠边的两个端点或中点作为新顶点的位置,而是在折叠边上选取使Δ (v )达到局部极小值的点作为新顶点。
令,若方程组有唯一解,可以得到新顶点v的最佳位置:
二次误差测度的边折叠简化算法的时间和空间复杂度都相对较低,但在简化过程中只考虑了距离的度量,因此简化后的网格分布均匀,简化模型将失去原始模型中的拐点、折痕、尖锐边和角等重要几何细节特征。
2.1 信息熵定义
信息熵[4]最初由C.E.Shannon与N.Wiener总结前人成果后提出的。
在信息论中,熵用来衡量一个随机变量出现的期望值。
信息熵是指任意一个离散信源的熵(平均自信息量)。
设离散随机变量X的概率分布为:
其中pi=pr{X=xi}i∈{1,2,…,n}, 0 < pi <1,
X的信息熵定义为“加权平均信息量”,即
其中 - log( p(x))表示随机变量x的自信息量。
自信息量取决于随机变量发生的概率,即概率越小,其自信息量越大。
信息熵 H (X)是从整个信源的统计特性来考虑的,它是从平均意义上来表征信源的总体体征的。
对于某特定的信源,其信息熵只有一个,不同的信源因统计特性不同,其熵也不同。
熵的特性:
1)熵值均大于等于零。
2)当且仅当P1 =P2=…Pn时,等号成立,熵值最大。
2.2 离散曲率计算
由于二次误差测度只考虑了距离的度量,因此,简化后的网格分布均匀,简化模型
将失去原始模型中的重要几何细节特征。
研究发现,人的视觉特征对网格模型的拐点、折痕、尖锐边等细节特征比较敏感,在简化过程中应重点保留这些部位,考虑到网格模型中这些区域的曲率较大,而在平坦区域曲率较小的特点。
因此,在计算顶点视觉特征度首先要估算网格中顶点的平均曲率。
顶点的平均曲率估算有很多优秀的算法,这里我们采用Meyer[6]方法:得到网格顶点vi的平均曲率KH(vi):
式中:ijα ,ijβ分别为连接顶点vi和vj边的对角;为阴影部分面积;i, j分别
为三角网格顶点的索引;N (i) 为iv的 1-环领域中顶点的个数。
2.3 视觉特征度定义
设网格上的任一顶点v,其邻域内顶点集V={v0 , v 1 ,… ,vn},令 v0 =v,邻域内的顶点集由顶点及其相关顶点组成,其平均曲率可以表示为K={k0 , k
1 ,… ,kn}。
我们定义顶点v的平均曲率熵为,其中。
网格模型中顶点最小平均曲率熵记为 H min,H min=0;最大平均曲率熵记为 H max,
将所有的顶点平均曲率熵归一化到[0,1]之间,归一化的平均曲率熵记为 H nor,则:
用I(v)来表示任一顶点v的视觉特征度,则
顶点的视觉特征度表示网格中的任一顶点平均曲率在其邻域内的分布情况,jp代
表是任一顶点所在邻域内的几何特征信息,表示的是邻域内的平均几何信息,例如:当网格中的某一区域顶点曲率变化大时,视觉特征度也较大,人的视觉对这区域比较敏感,而这区域正是网格模型中重要几何特征部分,因此,顶点视觉特征度能够不断地反映网格中的重要局部细节特征,如拐点、折痕、尖锐边等。
本文对二次误差测度进行改进,引入顶点视觉特征度因子,得到一种新的网格简化算法。
该算法依据顶点视觉特征度的不同,在简化过程中能够对顶点视觉特征度高的区域进行保留,从而达到保持网格模型细节特征的目的。
3.1 改进二次误差测度
对于网格中的任一顶点,定义其边折叠代价,则:
由上式可以看出在边折叠过程中,视觉特征度高的顶点将产生较大的边折叠代价,而视觉特征度低的顶点则产生较小的边折叠代价。
这样,随着边对不断折叠,顶点
视觉特征度高的区域与顶点视觉特征度低的区域之间的分化逐渐明显,产生的结果就是网格模型中的细节特征部分都分布在顶点视觉特征度高的区域,模型的细节特征才能得以保留。
3.2 算法流程
本文简化过程主要分为初始阶段和简化阶段[7]。
在初始阶段,要计算顶点的二次
误差矩阵、视觉特征度矩阵、每条边的折叠代价,并依据折叠代价的大小排序将最小代价边置于堆顶。
在简化阶段,取出堆顶的边进行折叠操作,更新相关顶点的二次误差矩阵和视觉特征度矩阵,并对更新后边折叠代价重新排序,如此反复,直到达到简化目标为止。
具体过程如图3所示。
由于本文的网格简化算法主要基于半边折叠操作,因此,新顶点位置确定如下:分
别计算折叠边 ),( jivv 的两个端点 iv 和 jv 的折叠代价,从而确定半边折叠的方向(即新顶点的位置)。
如果折叠方向为vi → vj,新顶点是 vj;如果,折叠方向为,新顶点是本文算法能够在边折叠每次迭代中实现折叠代价最小。
本文在2.4GHz CPU和4G内存的硬件环境以及Windows XP操作系统下采用Visual C++运行算法的仿真程序,并采用OpenGL图形库来渲染模型。
不失一般性,采用了3个常用的模型对两种算法的简化效果进行比较,分别是 cow模型、car模型和helicopter模型。
采用二次误差测度算法得到的简化网格模型十分均匀,这样往往使得较为平坦的区域占用过密的网格,从而造成网格浪费。
本文算法能够按网格模型表面的平均曲率熵值变化合理地分配网格,使得平坦区域网格稀疏,而曲率变化大的区域网格稠密,同时保留了视觉重要的几何特征,如牛眼、牛角、牛鼻、颌骨和腹部等,如图4中
对比所示。
如图5和图6所示, 使用不同的算法得到的简化网格模型。
Car原始模型如图5(a)所示,图5(b)、图 5(d)是仅采用二次误差测度得到的 car模型。
图5(c)、图5(e)
是采用引入视觉特征度的二次误差测度得到的car模型。
当car模型网格被QEM 算法简化到只有530个面片的时候就失去了部分的几何特征,但采用本文算法得到的car模型在只有530个面片的时候仍然可保持形状几何特征。
helicopter原始模型,如图6(a)所示,图6(b)和 6(c)分别是使用二次误差测度和基于视觉特征度本文算法所得到的简化模型。
同样当helicopter模型被简化为只有698个面片的时候,本文算法仍能够保持良好的几何特征,具有很好的视觉特征保持。
显然,本文算法的应用保证了简化后的模型在较低分辨率的情况下依旧能够保持一些比较重要的几何特征,从而减少了简化后的模型在视觉上的退化,更加符合网格简化的实质,即在减少顶点和三角面片的时候尽量保持原模型的特征。
采用Cignoni[5]等的评估工具Metro对简化模型进行误差分析,由表1所示。
由于本算法能够产生网格质量更好、视觉特征保留更好的简化模型,因此,应用本算法对cow、car和helicopter模型进行简化所产生的简化误差比QEM算法的简化误差要小。
通过对比两种算法的简化时间可以看出,简化时间与模型的复杂度以及三角形面片数成正比。
初始时间主要用来载入和显示网格模型、初始二次误差矩阵计算、视觉特征度计算、边折叠代价计算以及边折叠列表建立。
简化时间主要用来边折叠迭代简化。
如表2所示,cow模型、car模型和 helicopter模型的简化时间,从表中可以看到,QEM算法在模型的初始阶段用时较短,而本文算法在模型的简化阶段用时较短,其原因是本文算法在初始阶段计算顶点平均曲率及其熵值耗时较多。
为了验证本文算法在实际项目中的应用价值,我们对视景仿真中的飞机网格模型进行了简化,其简化效果, 如图7所示。
从图中可以看出在简化过程中模型细节几何视觉特征保持良好。
本文提出了基于顶点视觉特征度的二次误差测度简化算法,算法通过引入顶点视觉特征度因子,能够准确地捕捉网格中感兴趣的区域,使模型中各顶点易于区分,具
有明显几何特征区域的顶点误差测度能够被提高,从而调整了边折叠顺序,保留了模型中重要几何特征。
实验结果表明,本算法高效、可靠、能很好保持模型的视觉特征,具有一定的实际应用价值。
【相关文献】
[1] 潘志庚, 庞明勇. 几何网格简化研究与进展[J]. 江苏大学学报(自然科学版), 2005, 26(1): 67-71.
[2] Hoppe H. Progressive meshes[C]//Computer Graphics Proceedings, Annual Conference Series, ACM SIGGRAPH. New York: ACM Press, 1996: 99-108.
[3] Garland M, Heckbert P S. Surface simplification using quadric error metrics[C]//Proc. of the Computer Graphics, 1997, 31: 209-216.
[4] Cover T M, THOMAS J A. 信息论基础[M]. 北京:清华大学出版社, 2003, 11.
[5] Cignoni P, Rocchini C, Scopigno R. Metro: Measuring error on simplified surfaces [J]. Computer Graphics Forum, 1998, 17(2): 167-174.
[6] Meyer M, Desb run M, Schröder P, et al. Discrete differential-geometry operators for triangulated 2-manifolds [C]//Proceedings of the 3rd International Workshop on Visualization and Mathematics. Berlin: Springer, 2003: 35-57.
[7] 陈伟海, 徐鲤鸿, 刘敬猛, 等. 网格简化中基于特征矩阵的二次误差测度算法[J]. 北京航空航天大学学报, 2009, 35(5): 572-575.。