浏览量:0

一种基于粒子群算法的三角网格规范化方法

专利类型:发明专利 

语 言:中文 

申 请 号:CN201610426945.9 

申 请 日:20160615 

发 明 人:段黎明王武礼白洋李中明王茂林邵辉 

申 请 人:重庆大学 

申请人地址:400044 重庆市沙坪坝区沙正街174号 

公 开 日:20161123 

公 开 号:CN106157370A 

代 理 人:王翔 

代理机构:重庆大学专利中心 50201 

摘  要:本发明公开了一种基于粒子群算法的三角网格规范化方法,该方法在保持网格几何特征的同时,能有效改善网格模型中的三角形质量。本发明通过引入粒子中心位置Pc、约束因子ξ以及自适应的惯性因子ωa对粒子群算法改进,不仅能有效避免算法运行时陷入局部最优,而且能加快算法的收敛速度、实时调整算法的搜索范围;以顶点的局部拟合曲面为粒子群的搜索域,解决了大多算法规范化后三角网格模型体积收缩的问题;通过判断顶点调整前后的法向夹角是否在阈值内,来确定该顶点是否需要调整,从而保证了规范化后网格模型的细节特征不丢失。 

主 权 项:一种基于粒子群算法的三角网格规范化方法,其特征在于:包括以下步骤:1)以顶点Vi为原点,Vi的法向量ni为z轴的正向,建立一个局部坐标系,新坐标系下顶点Vi及其一阶邻域顶点集合N(Vi)拟合的三次曲面定义为;f(x,y)=Ax3+By3+Cx2y+Dxy2+Ex2+Fy2+Gxy+Hx+Iy+J???(1)利用公式(1)对顶点Vi及其N(Vi)进行局部曲面拟合;公式中的A、B、C、D、E、F、G、H、I和J均表示系数;通过求解局部曲面方程进而得到拟合曲面方程f(x,y)的系数;(x,y,f(x,y))表示拟合曲面f(x,y)上任意一点的坐标;2)初始化粒子,将粒子的当前位置作为个体历史最优,按照公式(2)确定群体最优位置;Pgt={Pit|min{f(P1t),f(P2t),...,f(Pmt)}}---(2)式中为整个种群在第t次迭代后的群体最优解;f(*)为适应度函数,m为种群规模;Pit为第i个粒子在第t次迭代时个体历史最优解,通过公式(3)得到;Pit={Xin|min{f(Xi1),f(Xi2),...,f(Xit)}}---(3)粒子个体历史最优位置的选择方式通过公式(4)得到;Pit+1=Xit+1,f(Xit+1)f(Pit)Pt,f(Xit+1)>f(Pit)---(4)公式(3)和(4)中,分别为第i个粒子在第t次迭代时的位置和第t+1次迭代时的位置;Pit、Pit+1分别为第i个粒子在第t和第t+1次迭代时个体历史最优解;并通过公式(5)计算粒子中心位置;Pct={Xit|Med{f(X1t),f(X2t),...,f(Xmt)}}---(5)式中,为第t次迭代时粒子群的中心位置,为第i个粒子在第t次迭代时的位置,f(*)为适应度函数,Med(*)为中值滤波函数,m为种群规模;3)使顶点Vi的新位置坐标满足公式(6)?(10)的约束条件;Δx=max{|xi|-|x1Vi|,|xi|-|x2Vi|,...,|xi|-|xVsumVi|}---(6)Δy=max{|yi|-|y1Vi|,|yi|-|y2Vi|,...,|yi|-|yVsumVi|}---(7)x~i{xi-Δx,xi+Δx}---(8)y~i{yi-Δy,yi+Δy}---(9)z~i=f(x~i,y~i)=Ax~i3+By~i3+Cx~i3y~i+Dx~iy~i2+Ex~i2+Fy~i2+Gx~iy~i+Hx~i+Iy~i+J---(10)公式(6)?(10)中,为第i个顶点Vi的新位置坐标,j=1,2,...,Vsum分别为顶点Vi一阶邻域的第j个顶点x轴和y轴的坐标值,Δx,Δy分别为顶点Vi调整时x轴和y轴坐标值的变化范围,Vsum为顶点Vi一阶邻域顶点的个数;4)对每个粒子的速度和位置按照公式(11)和(12)进行迭代更新;Vit+1=ωaVit+c1r1(Pit-Xit)+c2r2(Pgt-Xit)+c3r3(Pct-Xit)---(11)Xit+1=Xit+ξVit+1---(12)粒子的速度约束条件为:|Vit+1|≤Vmax?????????(13)式中,为第t次迭代时粒子群的中心位置,c1、c2为学习因子,c3为中心学习因子;r1、r2和r3均服从(0,1)的随机分布;ωa为自适应调整的惯性因子;ξ为约束因子;m为种群规模,Vmax为粒子最大限制速度;ωa=ωmin+(ωmaxmin)(E(x)?E(x)min)/(E(x)max?E(x)min)????(14)式中,ωmin、ωmax分别为惯性因子的最小值和最大值;E(x)max、E(x)min分别为迭代过程中当前所有粒子适应度与目标之间误差的最大值和最小值;E(x)为当前粒子与目标之间的误差值;为约束因子计算过程中的中间符号;5)将局部网格模型中三角形质量定义为算法目标函数,按照公式(16)计算每个粒子的适应度值;minQ(NVi)=1-Qave(NVi)=1-(Σk=1Tsum43Sklk12+lk22+lk32)/Tsum---(16)Qave=Σk=1TsumQk/Tsum---(17)Qk=43Sk/(lk12+lk22+lk32)---(18)公式(16)?(18)中,为适应度函数,为顶点Vi的一阶邻域三角形集合;Tsum为局部网格模型中三角形的个数,Qk为第k个三角形的质量;Sk为第k个三角形面积;lk1、lk2、lk3为第k个三角形的边长;Qk描述了一个三角形的质量;然后分别按照公式(3)和(2)更新粒子的个体历史最优和群体历史最优,最后按照公式(5)重新计算粒子中心位置;6)若迭代结束或误差阈值满足条件,转到步骤7),否则跳转到步骤3);7)保存顶点的新位置坐标计算顶点新位置与原始位置的法向量之间的夹角并保存;8)若在阈值范围内,更新顶点位置和顶点的法向量信息,否则保持原顶点位置不变;9)若已遍历网格模型中的全部顶点,网格规范化结束,否则跳转到步骤1)。 

关 键 词: 

法律状态:生效 

IPC专利分类号:G06T17/30(2006.01)I