![一种基于近似全局优化的细节层次网格模型逼近方法](https://img.xjishu.com/img/zl/2023/3/7/hdp2wa0dy.jpg)
1.本发明属于计算机应用、计算机图形学、智能优化技术领域,具体涉及一种基于近似全局优化的细节层次网格模型逼近方法。
背景技术:2.随着三维技术的发展,三维网格模型已广泛应用于许多领域,如娱乐业、虚拟现实、三维重建、城市建模等。但是,大规模网格模型会消耗大量的计算代价和存储资源,使得存储、渲染和传输这些操作变得非常困难。同时,在不同的应用场景下,对网格模型的精度要求也不同。因此需要对三维网格模型进行简化并生成逼近原始模型的细节层次网格模型。
3.细节层次网格模型的生成是指在保证模型整体外观和拓扑结构基本不变的前提下,减少模型中顶点和面片的数量,即在减少点和面的情况下生成逼近原始模型的细节层次网格模型。对于指定顶点数的细节层次网格模型,关键问题在于如何减少细节层次模型与原始模型的近似误差。以往的简化方法大多基于贪心算法和局部优化,也就是在简化过程中通过控制局部误差来实现,模型的顶点只能被简化而没有优化的机会。
技术实现要素:4.针对现有技术不足,本发明提供一种基于近似全局优化的细节层次网格模型逼近方法及计算系统,包括以下步骤:
5.步骤1,使用简化算法对任意原始三维网格模型进行初步简化,得到拥有更少的顶点、面片的细节层次网格模型;
6.步骤2,计算步骤1中细节层次网格模型每个点的可移动范围;
7.步骤3,结合麻雀算法的全局探索能力和灰狼算法的局部勘探能力,构建协同学习的麻雀-灰狼优化算法,包括以下子步骤:
8.步骤3.1,在顶点可移动范围内随机初始化种群,种群中每个个体都是一种可能的顶点位置集合,将种群中的第i个个体的位置记为xi;
9.步骤3.2,在全局搜索阶段,利用麻雀算法中的生产者、跟随者、检测和预警机制更新顶点位置;
10.步骤3.3,将麻雀算法找到的最优解作为灰狼算法的α狼继续指导搜索;
11.步骤3.4,在局部搜索阶段,利用灰狼算法的围捕猎物和狩猎机制更新顶点位置。
12.步骤4,在保留细节层次网格模型的面结构的情况下,利用麻雀-灰狼优化算法对细节层次网格的所有顶点进行全局优化,使其逼近原始网格模型。
13.而且,所述步骤2中利用最近邻接点的可变几何空间计算每个点的可移动范围,对细节层次网格模型的某个顶点v(x,y,z),它的基于最近邻接点的可变几何空间定义为:
14.r(v)={minv′
∈n(v)
|x-x
′
|,minv′
∈n(v)
|y-y
′
|,minv′
∈n(v)
|z-z
′
|} (1)
15.式中,r(v)表示每个点的可移动范围,n(v)是v邻域内邻接点的集合,v
′
是n(v)中
的邻接点,x
′
、y
′
、z
′
分别是v
′
在x轴、y轴、z轴方向上的坐标。
16.而且,所述步骤3.2中生产者指种群中适应度值小于设定阈值的个体,位置更新公式为:
[0017][0018]
式中,xi(t)、xi(t+1)表示第t、t+1次迭代的种群中的第i个个体的位置,t
max
表示最大迭代次数,α∈(0,1]是一个均匀随机数,q为一个服从正态分布的随机数,l为1
×
nd的全一矩阵,nd为简化后模型的顶点数,r是当前预警值,st是预设的安全阈值。
[0019]
跟随者是种群中除了生产者之外的其它个体,位置更新公式为:
[0020][0021]
式中,xi(t)、xi(t+1)表示第t、t+1次迭代的种群中的第i个个体的位置;xw和xb是当前最坏和最好的位置;q为一个服从正态分布的随机数;n为种群中个体的个数;nd为简化后模型的顶点数;a为nd×
nd的矩阵,矩阵中每个元素被随机分配为1或-1;l为1
×
nd的全一矩阵。
[0022]
检测和预警机制是假设有一定比例的生产者和跟随者能提前感觉到危险,它们的位置会再次更新如下:
[0023][0024]
式中,xi(t)、xi(t+1)表示第t、t+1次迭代的种群中的第i个个体的位置,xb是当前最好的位置,β为一个表示步长的随机数,k∈[-1,1]是一个均匀随机数,fi是第i个个体的适应度值,fb和fw是当前最好和最坏的适应度值,ε是一个为了避免除数为0的极小常数。
[0025]
而且,所述步骤3.3中麻雀算法找到的最优解为适应度值最小的顶点位置集合。
[0026]
而且,所述步骤3.4中当灰狼寻找猎物时,它们会逐渐围绕猎物目标形成包围圈,以α、β和δ狼的位置为指导,α、β和δ狼为种群中适应度值最小的三个个体,进行位置更新:
[0027]dα
=|c1x
α
(t)-x(t)| (5)
[0028]dβ
=|c2x
β
(t)-x(t)| (6)
[0029]dδ
=|c3x
δ
(t)-x(t)| (7)
[0030]
x1(t+1)=x
α
(t)-a1d
α (8)
[0031]
x2(t+1)=x
β
(t)-a2d
β (9)
[0032]
x3(t+1)=x
δ
(t)-a3d
δ (10)
[0033][0034]
式中,x(t+1)表示第t+1次迭代的灰狼的位置,x
α
(t)、x
β
(t)、x
δ
(t)分别为第t次迭代α、β和δ狼的位置,x(t)表示第t次迭代灰狼的位置,d
α
、d
β
和d
δ
是其它狼到α、β和δ狼的距
离,a1、a2、a3和c1、c2、c3均为系数向量。
[0035]
而且,所述步骤4中全局优化问题建模为:给定原始三维网格模型mo(vo,fo)和简化后的细节层次模型ms(vs,fs),在面片集fs结构不变的情况下,搜索最优顶点集使得和mo的误差最小:
[0036][0037]
式中,v、f分别表示相应网格模型的顶点集和面片集,d()表示适应度函数,计算方式如下:
[0038][0039]
式中,代表从点p到模型m的最短距离,d(p,p
′
)表示p到p
′
之间的欧几里得距离。
[0040]
与现有技术相比,本发明具有如下优点:
[0041]
1)基于最近邻接点的可变几何空间对细节层次网格模型的每个点计算可移动范围,能够维护网格几何拓扑结构,避免优化后的网格顶点和原顶点偏差过大;
[0042]
2)在保留细节层次网格模型的面结构的情况下,全局地对细节层次网格的所有顶点进行优化,能够最大范围地搜索顶点位置的所有可能组合,避免陷入局部最优;
[0043]
3)利用麻雀-灰狼优化算法搜索最优的顶点位置集,可以得到近似误差最小的优化的三维网格模型。
附图说明
[0044]
图1为本发明实施例的流程图。
[0045]
图2为本发明提出的方法对不同分辨率下四种细节层次网格模型的优化效果图。
[0046]
图3为基于麻雀-灰狼(ssa-gwo)的优化方法与麻雀优化算法(sparrow search algorithm,ssa)和灰狼优化算法(grey wolf optimizer,gwo)对三种网格模型逼近的收敛性对比图。
[0047]
图4为本发明提出的方法优化前和优化后的视觉质量对比效果图。
具体实施方式
[0048]
本发明提供一种基于近似全局优化的细节层次网格模型逼近方法,下面结合附图对本发明的技术方案作进一步说明。
[0049]
如图1所示,本发明实施例的流程包括以下步骤:
[0050]
步骤1,使用qem简化算法对任意原始三维网格模型进行初步简化,得到拥有更少的顶点、面片的细节层次网格模型。
[0051]
步骤2,计算步骤1中细节层次网格模型每个点的可移动范围。
[0052]
利用最近邻接点的可变几何空间计算每个点的可移动范围,对细节层次网格模型的某个顶点v(x,y,z),它的基于最近邻接点的可变几何空间定义为:
[0053]
[0054]
式中,r(v)表示每个点的可移动范围,n(v)是v邻域内邻接点的集合,v
′
是n(v)中的邻接点,x
′
、y
′
、z
′
分别是v
′
在x轴、y轴、z轴方向上的坐标。
[0055]
步骤3,结合麻雀算法的全局探索能力和灰狼算法的局部勘探能力,构建协同学习的麻雀-灰狼优化算法,包括以下子步骤:
[0056]
步骤3.1,在顶点可移动范围内随机初始化种群,种群中每个个体都是一种可能的顶点位置集合,将种群中的第i个个体的位置记为xi。
[0057]
步骤3.2,在全局搜索阶段,利用麻雀算法中的生产者、跟随者、检测和预警机制更新顶点位置。
[0058]
生产者指种群中适应度值小于设定阈值的个体,位置更新公式为:
[0059][0060]
式中,xi(t)、xi(t+1)表示第t、t+1次迭代的种群中的第i个个体的位置,t
max
表示最大迭代次数,α∈(0,1]是一个均匀随机数,q为一个服从正态分布的随机数,l为1
×
nd的全一矩阵,nd为简化后模型的顶点数,r是当前预警值,st是预设的安全阈值。
[0061]
跟随者是种群中除了生产者之外的其它个体,位置更新公式为:
[0062][0063]
式中,xi(t)、xi(t+1)表示第t、t+1次迭代的种群中的第i个个体的位置;xw和xb是当前最坏和最好的位置;q为一个服从正态分布的随机数;n为种群中个体的个数;nd为简化后模型的顶点数;a为nd×
nd的矩阵,矩阵中每个元素被随机分配为1或-1;l为1
×
nd的全一矩阵。
[0064]
检测和预警机制是假设有一定比例的生产者和跟随者能提前感觉到危险,它们的位置会再次更新如下:
[0065][0066]
式中,xi(t)、xi(t+1)表示第t、t+1次迭代的种群中的第i个个体的位置,xb是当前最好的位置,β为一个表示步长的随机数,k∈[-1,1]是一个均匀随机数,fi是第i个个体的适应度值,fb和fw是当前最好和最坏的适应度值,ε是一个为了避免除数为0的极小常数。
[0067]
步骤3.3,将麻雀算法找到的最优解作为灰狼算法的α狼继续指导搜索。
[0068]
麻雀算法找到的最优解为适应度值最小的顶点位置集合。
[0069]
步骤3.4,在局部搜索阶段,利用灰狼算法的围捕猎物和狩猎机制更新顶点位置。
[0070]
当灰狼寻找猎物(即最佳位置)时,它们会逐渐围绕猎物目标形成包围圈,以α、β和δ狼的位置(即种群中适应度值最小的三个个体)为指导,进行位置更新:
[0071]dα
=|c1x
α
(t)-x(t)| (5)
[0072]dβ
=|c2x
β
(t)-x(t)| (6)
[0073]dδ
=|c3x
δ
(t)-x(t)| (7)
[0074]
x1(t+1)=x
α
(t)-a1d
α (8)
[0075]
x2(t+1)=x
β
(t)-a2d
β (9)
[0076]
x3(t+1)=x
δ
(t)-a3d
δ (10)
[0077][0078]
式中,x(t+1)表示第t+1次迭代的灰狼的位置,x
α
(t)、x
β
(t)、x
δ
(t)分别为第t次迭代α、β和δ狼的位置,x(t)表示第t次迭代灰狼的位置,d
α
、d
β
和d
δ
是其它狼到α、β和δ狼的距离,a1、a2、a3和c1、c2、c3均为系数向量。
[0079]
步骤4,在保留细节层次网格模型的面结构的情况下,利用麻雀-灰狼优化算法对细节层次网格的所有顶点进行全局优化,使其逼近原始网格模型。
[0080]
该全局优化问题可建模为:给定原始三维网格模型mo(vo,fo)和qem算法简化后的细节层次模型ms(vs,fs),在面片集fs结构不变的情况下,搜索最优顶点集使得和mo的误差最小:
[0081][0082]
式中,v、f分别表示相应网格模型的顶点集和面片集,d()表示适应度函数,本实施例使用豪斯多夫距离,计算方式如下:
[0083][0084]
式中,代表从点p到模型m的最短距离,d(p,p
′
)表示p到p
′
之间的欧几里得距离。
[0085]
表1是本发明提出的方法对13种网格模型进行优化的效果对比,no和nd分别表示简化前和简化后的顶点数,err、err
*
分别表示优化前和优化后的近似误差,err/err
*
为优化前和优化后近似误差的比值。
[0086]
表1
[0087]
[0088]
由表1可以知本发明提出的方法对具有不同拓扑结构和尺寸的网格都取得了不错的优化效果。在尺寸方面,顶点数只有233的较小模型“horse”和顶点数达到61512的大模型“buddha”,优化前和优化后近似误差的比值分别为1.41和1.43,优化效果没有因为尺寸增大而降低。在拓扑结构方面,具有锋利边缘的“hammer”模型和具有复杂曲率变化的“knot108s”模型的优化效果也没有被特殊的拓扑结构影响。
[0089]
图2为本发明提出的方法对不同分辨率下teddy、teapot、kitten、bunny四种细节层次网格模型的优化效果示意图。实线为优化前的近似误差,虚线为优化后的近似误差。由于不同分辨率下的细节层次网格模型与原始网格模型的误差存在很大的差异,为了直观地展示高分辨率和低分率下的优化效果,本在右上角专门展示了高分辨率下的优化效果。由图2可知,在不同分辨率下,本发明提出的方法都能取得较好的优化效果,而且优化效果并不受分辨率的影响。
[0090]
表2展示了本发明提出的方法与5种不同网格简化算法生成的细节层次网格模型的优化效果,其中md(mesh decimation)、pm(progressive meshes)、cgal(computational geometry algorithms library)是三种经典的网格简化算法,lescoat和liang代表两种最新的网格简化算法。
[0091]
表2
[0092][0093]
no和nd分别表示简化前和简化后的顶点数,使用优化前和优化后的近似误差err、err
*
、优化前和优化后近似误差的比值err/err
/
作为评价指标进行优化效果评价。从表2中可以看出,本发明提出的方法不局限于某种特定的网格简化算法,对于不同简化方法生成的细节层次模型,都能达到一定的优化效果。
[0094]
图3是本发明基于麻雀-灰狼(ssa-gwo)的优化方法与麻雀优化算法(sparrow search algorithm,ssa)和灰狼优化算法(grey wolf optimizer,gwo)对chair、pig、teddy三种网格模型的收敛性对比图。由图3可知,麻雀优化算法ssa可以快速找到比给定细节层
次网格误差更小的顶点集,这表明它的全局探索能力和求解效率特别优秀,但种群多样性在迭代后期下降。灰狼优化算法gwo具有良好的局部开发能力和优化性能,但收敛速度较慢。本发明基于麻雀-灰狼的优化方法ssa-gwo可以弥补ssa和gwo各自的不足,能够充分发挥ssa的全局探索能力和gwo的局部勘探能力。
[0095]
表3
[0096][0097]
表3展示了基于麻雀-灰狼(ssa-gwo)的优化方法与麻雀优化算法(sparrow search algorithm,ssa)和灰狼优化算法(grey wolf optimizer,gwo)用于网格模型逼近问题的最小近似误差min和平均近似误差avg。由表3可知,本发明基于麻雀-灰狼的优化方法ssa-gwo的最小误差和平均误差都明显小于另外两种优化算法。
[0098]
图4展示了本发明提出的方法优化前和优化后的视觉质量效果,使用感知驱动的评估矩阵msdm2作为适应度评估函数,并画出每个顶点相对于原始网格模型的变形程度,颜色越深代表变形程度越大。从变形图可以看出,本发明提出的方法可以避免大变形,提高视觉质量。
[0099]
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施案例,做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。