CN110070620A - 基于遗传算法的三维网格面模型整体近似轴对称判定算法 - Google Patents
基于遗传算法的三维网格面模型整体近似轴对称判定算法 Download PDFInfo
- Publication number
- CN110070620A CN110070620A CN201910289738.7A CN201910289738A CN110070620A CN 110070620 A CN110070620 A CN 110070620A CN 201910289738 A CN201910289738 A CN 201910289738A CN 110070620 A CN110070620 A CN 110070620A
- Authority
- CN
- China
- Prior art keywords
- point
- symmetry
- axial symmetry
- max
- symmetry axis
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 62
- 230000002068 genetic effect Effects 0.000 title claims abstract description 19
- 238000012417 linear regression Methods 0.000 claims abstract description 33
- 238000001514 detection method Methods 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 14
- 239000013598 vector Substances 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000005457 optimization Methods 0.000 claims description 4
- 230000006978 adaptation Effects 0.000 claims description 3
- 239000012141 concentrate Substances 0.000 claims description 3
- 230000004069 differentiation Effects 0.000 claims description 3
- 238000011156 evaluation Methods 0.000 claims description 3
- 230000010429 evolutionary process Effects 0.000 claims description 3
- 230000009191 jumping Effects 0.000 claims description 3
- 238000010187 selection method Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 4
- 238000000611 regression analysis Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Genetics & Genomics (AREA)
- Physiology (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了基于遗传算法的三维网格面模型整体近似轴对称判定算法,包括(1)通过离散点子集近似轴对称搜索找出模型中所有的轴对称多边形,并计算多边形的中心点坐标;(2)将计算得到的中心点坐标以及没有被离散点子集近似轴对称搜索算法找到的孤立点坐标通过遗传算法和线性回归计算出候选的对称轴;(3)对候选的对称轴进行验证,找出正确的对称轴,若对称轴不存在则判定为模型非轴对称。本发明可以通过设置阈值来实现三维网格模型近似轴对称判断,并以对不同类型的轴对称模型进行轴对称判定并画出对称轴。
Description
技术领域
本发明涉及机械和建筑三维设计,特别是涉及基于遗传算法的三维网格面模型整体近似轴对称判定算法。
背景技术
如今,随着计算机图形学的发展,三维网格模型在生产生活中得到了广泛的应用,例如机械设计和建筑设计等。而这些由人工设计的图形模型大都显示出了整体或局部轴对称的特性,这既是为了体现模型的设计特性或功能,也是为了方便对模型进行分析或编辑;另外轴对称也是自然界中的一种普遍现象,同时也符合人们的审美眼光。这在经常被用于机械设计和建筑设计的三维网格模型中尤其明显。但是模型的轴对称性以及对称轴有时是随着模型一起给出的,但是大部分时候它们不会被明确给出,例如通过逆向工程生成模型或将一个从一个CAD系统导入另一个CAD系统的模型。另外在这种情况下模型的对称大部分是近似的,这是因为在扫描过程中存在度量错误和在逆向工程重构模型时存在近似的和数字错误,这时模型的对称轴往往无法精确的给出。此外,在不同的CAD系统中往往会使用不同的门限,在一个CAD系统中被认为是轴对称的模型当被转入另一个CAD系统中后往往会被认为不对称。因此需要一个能够独立的外部轴称判定算法。
为了实现模型的外部轴对称性判定国内外都提出了许多算法,根据算法的着重点的不同可将算法分为许多种,主要可分为整体轴对称判定、局部轴对称判定和精确轴对称判定、近似轴对称判定。目前的大多数算法着重于进行精确对称,对于三维网格模型的轴对称近似判定并没有有效的算法。
发明内容
发明目的:目前大部分的三维网格面轴对称判断算法都只能进行精确判定,本发明提供一种基于遗传算法的三维网格面模型整体近似轴对称判定算法,其可以实现对三维网格模型中在指定精度下的整体近似轴对称判定。
技术方案:为实现上述发明目的,本发明采用以下技术方案:
基于遗传算法的三维网格面模型整体近似轴对称判定算法,包括以下步骤:
(1)通过离散点子集近似轴对称搜索找出模型中所有的轴对称多边形,并计算多边形的中心点坐标;
(2)将计算得到的中心点坐标以及没有被离散点子集近似轴对称搜索算法找到的孤立点坐标通过遗传算法和线性回归计算出候选的对称轴;
(3)对候选的对称轴进行验证,找出正确的对称轴,若对称轴不存在则判定为模型非轴对称。
进一步的,步骤(1)中离散点子集近似轴对称搜索算法具体为:
(a)计算点集P中所有点与点之间的距离集合D;
D={||Pi-Pj||:Pi,Pj∈P};
其中,Pi,Pj分别为点集P中的第i个和第j个点,i,j=1,2,…,n;n为点集P中点的个数;
(b)循环遍历每一个满足条件:||Pi–Pi+2||≥||Pi+1–Pi+2||≥||Pi–Pi+1||的三点集S=(Pi,Pi+1,Pi+2);
(c)如果S为一个已被检索到的正多边形顶点集的子集,则结束这一次循环,进入下一次循环;
(d)如果S不是一个已被检索到的正多边形顶点集的子集,则执行步骤(e)-(h);
(e)计算集合M
M={Pk:Emin(S∪{Pa})<Emax(S∪{Pa}),Pa∈P\S};
其中,P\S为
(f)如果M为空集跳转到步骤(i);
(g)取出M中Emin(S∪{Pa})值最小的点P×;
(h)判断点P×是否已经在点集S中,如果在则跳转到j步,否则跳转到i步;
(i)更新集合S,并跳转回e步;
S=S∪{P×};
其中,S为更新之后的集合;
(j)将S添加到正多边形搜索结果集中;
(k)计算点集S的中心点坐标t,t=MID(S),将t加入中心点集T中。
其中,Emin和Emax函数的定义如下:
任意正多边形顶点集C={Pk:1≤k≤c}中的所有点都满足条件:||Pj–P(j+o)mod c||=||Pk–P(k+o)mod c||1≤j,k≤c,1≤o≤c–1;
其中,c表示顶点集C的顶点个数,j和k为大于等于一且小于等于c的任意一个自然数,o为大于等于1且小于等于c-1的任意一个自然数,Pl和Pk表示点集C中的第l个点和第k个点;
假设U为正多边形顶点集C的子集,u=|U|,U={Pk+1,Pk+2,…,Pk+u};其中,Pk+1表示点集C中的第k+1个点,u为点集U中的顶点个数,在点集U中的点间距的种类数最大为floor(c/2)或u–1,其中,floor(c/2)表示c/2的下整数值,即小于等于c/2的整数值;由此给出如下定义:
g(t,c)=min(u–1,floor(c/2));
其中,g(u,c)表示点集U的点间距种类;
Go(U)={||Pk–Pk+o||:1≤k≤u-o}∪{||Pk–Pk+o-c||:1≤k≤u+c-o},1≤o≤g(u,c);
其中,Go(U)为点集U的同间隔点间距集合;Pk表示点集U中的第k个点;
Do min(U)=min(Go(U)),Do max(U)=max(Go(U));
其中,Do max(U)和Do min(U)分别为同间隔点间距最大、最小值;
由以上三个属性将近似等于的门限值ε的取值条件公式化,为了不使同间隔点间距被误判为非同间隔点间距需满足:ε≥Do max(U)-Do min(U),其中1≤o≤g(u,c);而为了使非同间隔点间距之间能被有效的区分需满足:ε≤Do+1 min(U)-Do max(U),其中1≤o≤g(u,c)–1;由此得到以下公式:
Do max(U)-Do min(U)≤ε,1≤o≤g(u,c)且ε≥Do+1 min(U)-Do max(U),1≤o≤g(u,c)–1;
为了简化上述不等式进行如下定义:
Emin(U)=Do max(U)-Do min(U),1≤o≤g(u,c);
Emax(U)=Do+1 min(U)-Do max(U),1≤o≤g(u,c)–1。
进一步的,步骤(2)具体为:
(21)对步骤(1)生成的若干正多边形的中心和若干独立顶点进行线性回归计算;
因为三维模型中的点坐标有三个维度,分别为x、y、z,所以需要二维线性,线性回归公式为:
x=x;
y=ax+b;
z=cx+d;
由上述公式知计算对称轴方程只要分别计算出x与y和z的线性关系即可;
若对称轴平行于坐标轴,此时a和c的值是无限大线性回归公式将不再适用,因此在进行线性回归计算前需要进行检测,若对称轴平行于坐标轴要进行单独计算;
(22)采用遗传算法对步骤(21)线性回归后的结果进行组合优化,去除噪声点;
通过离散点子集近似轴对称搜索算法得到网格模型所有顶点所能够成的所有正多边形及相应的中心点,另外还会有一些并没有被加任何一个正多边形点集的独立顶点;对这些中心点以及独立顶点进行计算,即算出能够通过这些中心点以及独立顶点的线是否存在,如果存在则说明对称轴存在。
更进一步的,步骤(22)包括以下步骤:
(a)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0);一个个体就是一个长度为n的数组,n为中心点以及独立顶点的总个数;个体生成方法为随机生成一个长度等于中心点和独立顶点个数总和的数组,数组每一项为0则表示该点不参与线性回归,为1表示参与线性回归;
(b)个体评价:计算群体P(t)中各个个体的适应度;
其中,t为迭代的次数,t为0时表示初始群体;
个体的适应度计算公式为:
R=r*number’/number:
其中,R为个体的适应度,r为相关系数,number’为本次线性回归用到的中点的个数,number为总的中点个数;
(c)采用轮盘赌选择的方法对当前群体进行选择;
轮盘赌选择就是将群体的所有适应度Ri求和,得到R+;每个个体以Ri/R+的概率进行随机选择;
(d)对通过轮盘赌选择方法选择出的个体两两之间随机选择一个位置进行交叉,即随机选择一个位置,然后将该位置后的数组元素两两间交换;
(e)对完成交换操作的个体中的每一个数字元素以1%的概率进行变异,即原来为1的元素变为0,原来为0的变为1;得到下一代群体P(t+1);
(f)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。
进一步的,步骤(3)中候选对称轴检测包括局部性检测和角度检测;其中:
局部性检测中将所有构成对称轴的中心点所对应的正多边形的顶点集与独立顶点集的合集进行检测;当正多边形的顶点与独立顶点集的合集与输入的模型的顶点集的包含程度超过指定阈值判断为当前对称轴为整体对称;
角度检测方法为先在正多边形的顶点集中任取三个顶点Pi,Pj,Pk从而得到多边形所在的平面上的两个向量PiPj和PiPk,然后对这两个向量进行叉乘,计算出正多边形的法向量m;再在对称轴中任取两个点生成对称轴的坐标向量l;通过公式cosθ=l·m/|l|*|m|计算出两个向量夹角的余弦值,如果余弦值在指定阈值范围中则判定为对称轴与多边形平面垂直。
有益效果:与现有技术相比,本发明可以通过设置阈值来实现三维网格模型近似轴对称判断,算法测试结果如图2、3、4所示,可以对不同类型的轴对称模型进行轴对称判定并画出对称轴。
附图说明
图1是本发明算法流程图;
图2是圆锥体采用本发明算法测试结果图;
图3是圆柱体采用本发明算法测试结果图;
图4是齿轮结构采用本发明算法测试结果图。
具体实施方式
下面结合附图和具体实施方式对本发明的技术方案进行详细说明。
本算法的基本思想来自于三维轴对称多面体的一个性质——以任意垂直于对称轴的平面截取该多面体,所截得的平面必为正多边形。而三维网格模型是由一个个简单面片组成的,因此不论模型是什么形状都可以将其视作为多面体进行分析和处理。因此所有的轴对称三维网格模型都符合该性质,从而可以实现三维网格模型的轴对称判定。
如图1所示,基于遗传算法的三维网格面模型整体近似轴对称判定算法,包括以下步骤:
(1)通过离散点子集近似轴对称搜索找出模型中所有的轴对称多边形,并计算多边形的中心点坐标;
首先,定义离散点子集近似轴对称搜索算法算法中将用到的变量符号:
Ed:d维欧式空间(这里d=2或3);
floor(r):r的下整数值,及小于等于r的整数值;
||P-Q||:点P和点Q之间的欧式距离且P,Q∈Ed;
D(P):点集P的距离集合{||P-Q||:P,Q∈P};
|P|:几何模型P中的顶点个数;
a=εb:数据在限制值ε下相等:|a-b|<=ε;
a mod n:整数a对整数n取余;
P\S:
MID(P):点集P的中点。
离散点子集近似轴对称搜索算法具体为:
(a)计算点集P中所有点与点之间的距离集合D;
D={||Pi-Pj||:Pi,Pj∈P};
其中,Pi,Pj分别为点集P中的第i个和第j个点,i,j=1,2,…,n;n为点集P中点的个数;
(b)循环遍历每一个满足条件:||Pi–Pi+2||≥||Pi+1–Pi+2||≥||Pi–Pi+1||的三点集S=(Pi,Pi+1,Pi+2);
(c)如果S为一个已判定的正多边形的顶点集的子集,即点集S包含在之前已经检索出的正多边形顶点集中,则结束这一次循环,进入下一次循环;
(d)如果S不是一个已被检索到的正多边形顶点集的子集,则执行步骤(e)-(h);
(e)计算集合M
M={Pa:Emin(S∪{Pa})<Emax(S∪{Pa}),Pa∈P\S};
其中,P\S为
(f)如果M为空集跳转到步骤(i);
(g)取出M中Emin(S∪{Pa})值最小的点P×;
(h)判断点P×是否已经在点集S中,如果在则跳转到j步,否则跳转到i步;
(i)更新集合S,并跳转回e步;
S=S∪{P×} (1);
其中,S为更新之后的集合;
(j)将S添加到正多边形搜索结果集中;
(k)计算点集S的中心点坐标t,t=MID(S),将t加入中心点集T中。
其中,Emin和Emax函数的定义如下:
首先,对于所有的平面轴对称图形即正多边形都有如下性质:
任意正多边形顶点集C={Pk:1≤k≤c}中的所有点都满足条件:||Pl–P(l+r)mod c||=||Pk–P(k+r)mod c||1≤l,k≤c,1≤r≤c–1;
其中,c表示顶点集C的顶点个数,l和k为大于等于一且小于等于c的任意一个自然数,r为大于等于1且小于等于c-1的任意一个自然数,Pl和Pk表示点集C中的第l个点和第k个点。
上述的条件是指在正多边形中所有相隔相同个点的顶点之间的距离是永远相等的。在近似对称中将=换为=ε,ε为近似等于的门限值,是由算法自动生成的,而不是提前定义的。ε的取值十分严格,不能太大也不能太小。如果ε的取值太小将失去近似对称的意义,因为ε的取值太小将剔除原本可以认作为近似相等的点,而当ε为0时算法就变成了精确对称搜索算法。而如果ε的取值太大,将使本不想等的点间距被认作为相等,这将严重影响对称搜索的结果。下面将详细介绍限制ε的方法,从而得到函数Emin和Emax的定义。
假设U为正多边形顶点集C的子集,u=|U|,U={Pk+1,Pk+2,…,Pk+u};其中,Pk+1表示点集C中的第k+1个点,u为点集U中的顶点个数,在点集U中的点间距的种类数最大为floor(c/2)或u–1,其中,floor(c/2)表示c/2的下整数值,即小于等于c/2的整数值;由此给出如下定义:
g(t,c)=min(u–1,floor(c/2)) (2);
其中,g(u,c)表示点集U的点间距种类;
Go(U)={||Pk–Pk+o||:1≤k≤u-o}∪{||Pk–Pk+o-c||:1≤k≤u+c-o},1≤o≤g(u,c)(3);
其中,Go(U)为点集U的同间隔点间距集合;Pk表示点集U中的第k个点;
Do min(U)=min(Go(U)),Do max(U)=max(Go(U)) (4);
其中,Do max(U)和Do min(U)分别为同间隔点间距最大、最小值;
由以上三个属性将近似等于的门限值ε的取值条件公式化,为了不使同间隔点间距被误判为非同间隔点间距需满足:ε≥Do max(U)-Do min(U),其中1≤o≤g(u,c);而为了是非同间隔点间距之间能被有效的区分需满足:ε≤Do+1 min(U)-Do max(U),其中1≤o≤g(u,c)–1;由此得到公式(4),具体如下:
Do max(U)-Do min(U)≤ε,1≤o≤g(u,c)且ε≥Do+1 min(U)-Do max(U),1≤o≤g(u,c)–1(5);
为了简化上述不等式进行如下定义:
Emin(U)=Do max(U)-Do min(U),1≤o≤g(u,c) (6);
Emax(U)=Do+1 min(U)-Do max(U),1≤o≤g(u,c)–1 (7)。
(2)将计算得到的中心点坐标以及没有被离散点子集近似轴对称搜索算法找到的孤立点坐标通过遗传算法和线性回归计算出候选的对称轴;
候选对称轴生成算法具体为:
通过离散点子集近似轴对称搜索算法可以得到网格模型所有顶点所能够成的所有正多边形及相应的中心点,另外还可能会有一些并没有被加任何一个正多边形点集的独立顶点。而如果该模型为轴对称,则其对称轴必定经过这些正多边形中的一部分的中心点和部分独立顶点。现在所有的中心点和独立顶点已经得到了,为了能从这些点计算出对称轴将引入线性回归。
线性回归是利用数理统计中的回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法之一,运用十分广泛。如果在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析,其几何意义就是根据一组离散点的坐标找出这些点对应的直线方程。一元线性回归的计算公式为:
其中,xi和yi表示第i个点的x坐标和y坐标,和表示所有点的x坐标与y坐标的求和平均值。n为参与线性规划的点的个数。
其中a和b为线性方程的系数,r为回归相关系数,当r值越接近1时说明点集和直线的相关性越强。
因为三维模型中的点坐标有三个维度,分别为x、y、z,所以需要对二维线性,回归公式进行扩展,扩展后公式为:x=x、y=ax+b、z=cx+d。从公式中可以看出计算对称轴方程只要分别计算出x与y和z的线性关系即可。而根据线性回归公式我们可以很快的计算出x与y和z的线性关系(注:也可以将y或z作为参数计算y与x和z的线性关系或z与x和y的线性关系)。注意对称轴可能对会平行于坐标轴,此时a和c的值是无限大线性回归公式将不再适用。因此在进行线性回归计算前需要进行检测,若对称轴平行于坐标轴要进行单独计算。
对称轴如果平行于一个坐标轴则对称轴上的点坐标必然有两个维度的坐标是是固定不变的,只要将点集中的坐标进行遍历,看是否有两个维度的坐标数值不变,如果有找到这两个维度对应的固定值就可以生成对称轴公式了。例如,对称轴平行于y轴,则x轴坐标与z轴坐标是固定的,假设固定值为a和b,则对称轴公式为:x=a;y=y;z=b;
在网格模型中因为会存在多条对称轴或存在局部对称,所以线性回归的噪声点将非常多,这会严重影响线性回归的结果。该问题其实就是在正多边形中点集和独立顶点集中找到在对称轴上的点的组合,其实质为一个组合优化问题。为了解决这个问题引入遗传算法,算法过程为:通过离散点子集近似轴对称搜索算法可以得到网格模型所有顶点所能够成的所有正多边形及相应的中心点,另外还可能会有一些并没有被加任何一个正多边形点集的独立顶点。以下是对这些中心点以及独立顶点进行计算,主要就是算出能够通过这些中心点以及独立顶点的线是否存在,如果存在则说明对称轴存在。查找对称轴就是要找一根线,在这根线上能够尽可能多的有现在找到的中心点以及独立顶点,那么这个问题其实就是一个组合优化的问题,找到一个中心点以及独立顶点的最优组合。具体为:
(a)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。
一个个体就是一个长度为n的数组,n为中心点以及独立顶点的总个数。例如有中心点以及独立顶点集P,其中有5个点P1,P2,P3,P4,P5,则生成的个体为一个长度为5的数组,随机生成一个个体为[1,1,1,0,0],表示P1,P2,P3三个点被选中参与线性回归,P4,P5不参与线性回归。
个体生成方法为随机生成一个长度等于中心点和独立顶点个数总和的数组,数组每一项为0则表示该点不参与线性回归,为1表示参与线性回归。
(b)个体评价:计算群体P(t)中各个个体的适应度。
其中,t为迭代的次数,t为0时表示初始群体,是通过(a)步骤随机生成的。t大于0时是通过(c)-(e)步骤中的方法通过上一代的群体生成的。
个体的适应度计算公式为:R=r*number’/number;其中,r为相关系数,number’为本次线性回归用到的中点的个数,number为总的中点个数,R为个体的适应度;
(c)采用轮盘赌选择的方法对当前群体进行选择。轮盘赌选择就是将群体的所有适应度Ri求和,得到R+。每个个题以Ri/R+的概率进行随机选择。
(d)对通过轮盘赌选择方法选择出的个体两两之间随机选择一个位置进行交叉,即随机选择一个位置,然后将该位置后的数组元素两两间交换。
(e)对完成交换操作的个体中的每一个数字元素以1%的概率进行变异,及原来为1的元素变为0,原来为0的变为1。得到下一代群体P(t+1)。
(f)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。
(3)对候选的对称轴进行验证,找出正确的对称轴,若对称轴不存在则判定为模型非轴对称;
候选对称轴检测分为两个检测,分别为局部性检测和角度检测。
局部性检测是为了排除模型中因存在局部对称性而导致算法会检测出一个局部对称轴,检测中将所有构成对称轴的中心点所对应的正多边形的顶点集与独立顶点集的合集进行检测。当正多边形的顶点与独立顶点集的合集与输入的模型的顶点集的包含程度超过指定阈值(一般设为90%)可以判断为当前对称轴为整体对称。
角度检测是为了检测生成的对称轴是否与所有的多边形垂直。检测方法为先在正多边形的顶点集中任取三个顶点P1,P2,P3从而得到多边形所在的平面上的两个向量P1P2和P1P3,然后对这两个向量进行叉乘即可计算出正对变形的法向量m。再在对称轴中任取两个点生成对称轴的坐标向量l。通过公式cosθ=l·m/|l|*|m|计算出两个向量夹角的余弦值,如果余弦值在指定阈值范围(推荐设置为-1到-0.9或0.9到1)中则判定为对称轴与多边形平面垂直。
Claims (6)
1.基于遗传算法的三维网格面模型整体近似轴对称判定算法,其特征在于,包括以下步骤:
(1)通过离散点子集近似轴对称搜索找出模型中所有的轴对称多边形,并计算多边形的中心点坐标;
(2)将计算得到的中心点坐标以及没有被离散点子集近似轴对称搜索算法找到的孤立点坐标通过遗传算法和线性回归计算出候选的对称轴;
(3)对候选的对称轴进行验证,找出正确的对称轴,若对称轴不存在则判定为模型非轴对称。
2.根据权利要求1所述的基于遗传算法的三维网格面模型整体近似轴对称判定算法,其特征在于,步骤(1)中离散点子集近似轴对称搜索算法具体为:
(a)计算点集P中所有点与点之间的距离集合D;
D={||Pi-Pj||:Pi,Pj∈P};
其中,Pi,Pj分别为点集P中的第i个和第j个点,i,j=1,2,…,n;n为点集P中点的个数;
(b)循环遍历每一个满足条件:||Pi–Pi+2||≥||Pi+1–Pi+2||≥||Pi–Pi+1||的三点集S=(Pi,Pi+1,Pi+2);
(c)如果S为一个已被检索到的正多边形顶点集的子集,则结束这一次循环,进入下一次循环;
(d)如果S不是一个已被检索到的正多边形顶点集的子集,则执行步骤(e)-(h);
(e)计算集合M
M={Pk:Emin(S∪{Pa})<Emax(S∪{Pa}),Pa∈P\S};
其中,P\S为
(f)如果M为空集跳转到步骤(i);
(g)取出M中Emin(S∪{Pa})值最小的点P×;
(h)判断点P×是否已经在点集S中,如果在则跳转到j步,否则跳转到i步;
(i)更新集合S,并跳转回e步;
S=S∪{P×};
其中,S为更新之后的集合;
(j)将S添加到正多边形搜索结果集中;
(k)计算点集S的中心点坐标t,t=MID(S),将t加入中心点集T中。
3.根据权利要求2所述的基于遗传算法的三维网格面模型整体近似轴对称判定算法,其特征在于,Emin和Emax函数的定义如下:
任意正多边形顶点集C={Pk:1≤k≤c}中的所有点都满足条件:||Pj–P(j+o)mod c||=||Pk–P(k+o)mod c||1≤j,k≤c,1≤o≤c–1;
其中,c表示顶点集C的顶点个数,l和k为大于等于一且小于等于c的任意一个自然数,o为大于等于1且小于等于c-1的任意一个自然数,Pj和Pk表示点集C中的第j个点和第k个点;
假设U为正多边形顶点集C的子集,u=|U|,U={Pk+1,Pk+2,…,Pk+u};其中,Pk+1表示点集C中的第k+1个点,u为点集U中的顶点个数,在点集U中的点间距的种类数最大为floor(c/2)或u–1,其中,floor(c/2)表示c/2的下整数值,即小于等于c/2的整数值;由此给出如下定义:
g(t,c)=min(u–1,floor(c/2));
其中,g(u,c)表示点集U的点间距种类;
Go(U)={||Pk–Pk+o||:1≤k≤u-o}∪{||Pk–Pk+o-c||:1≤k≤u+c-o},1≤o≤g(u,c);
其中,Go(U)为点集U的同间隔点间距集合;Pk表示点集U中的第k个点;
Do min(U)=min(Go(U)),Do max(U)=max(Go(U));
其中,Do max(U)和Do min(U)分别为同间隔点间距最大、最小值;
由以上三个属性将近似等于的门限值ε的取值条件公式化,为了不使同间隔点间距被误判为非同间隔点间距需满足:ε≥Do max(U)-Do min(U),其中1≤o≤g(u,c);而为了使非同间隔点间距之间能被有效的区分需满足:ε≤Do+1 min(U)-Do max(U),其中1≤o≤g(u,c)–1;由此得到以下公式:
Do max(U)-Do min(U)≤ε,1≤o≤g(u,c)且ε≥Do+1 min(U)-Do max(U),1≤o≤g(u,c)–1;
为了简化上述不等式进行如下定义:
Emin(U)=Do max(U)-Do min(U),1≤o≤g(u,c);
Emax(U)=Do+1 min(U)-Do max(U),1≤o≤g(u,c)–1。
4.根据权利要求1所述的基于遗传算法的三维网格面模型整体近似轴对称判定算法,其特征在于,步骤(2)具体为:
(21)对步骤(1)生成的若干正多边形的中心和若干独立顶点进行线性回归计算;
因为三维模型中的点坐标有三个维度,分别为x、y、z,所以需要二维线性,线性回归公式为:
x=x;
y=ax+b;
z=cx+d;
由上述公式知计算对称轴方程只要分别计算出x与y和z的线性关系即可;
若对称轴平行于坐标轴,此时a和c的值是无限大线性回归公式将不再适用,因此在进行线性回归计算前需要进行检测,若对称轴平行于坐标轴要进行单独计算;
(22)采用遗传算法对步骤(21)线性回归后的结果进行组合优化,去除噪声点;
通过离散点子集近似轴对称搜索算法得到网格模型所有顶点所能够成的所有正多边形及相应的中心点,另外还会有一些并没有被加任何一个正多边形点集的独立顶点;对这些中心点以及独立顶点进行计算,即算出能够通过这些中心点以及独立顶点的线是否存在,如果存在则说明对称轴存在。
5.根据权利要求4所述的基于遗传算法的三维网格面模型整体近似轴对称判定算法,其特征在于,步骤(22)包括以下步骤:
(a)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0);一个个体就是一个长度为n的数组,n为中心点以及独立顶点的总个数;个体生成方法为随机生成一个长度等于中心点和独立顶点个数总和的数组,数组每一项为0则表示该点不参与线性回归,为1表示参与线性回归;
(b)个体评价:计算群体P(t)中各个个体的适应度;
其中,t为迭代的次数,t为0时表示初始群体;
个体的适应度计算公式为:
R=r*number’/number:
其中,R为个体的适应度,r为相关系数,number’为本次线性回归用到的中点的个数,number为总的中点个数;
(c)采用轮盘赌选择的方法对当前群体进行选择;
轮盘赌选择就是将群体的所有适应度Ri求和,得到R+;每个个体以Ri/R+的概率进行随机选择;
(d)对通过轮盘赌选择方法选择出的个体两两之间随机选择一个位置进行交叉,即随机选择一个位置,然后将该位置后的数组元素两两间交换;
(e)对完成交换操作的个体中的每一个数字元素以1%的概率进行变异,即原来为1的元素变为0,原来为0的变为1;得到下一代群体P(t+1);
(f)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。
6.根据权利要求1所述的基于遗传算法的三维网格面模型整体近似轴对称判定算法,其特征在于,步骤(3)中候选对称轴检测包括局部性检测和角度检测;其中:
局部性检测中将所有构成对称轴的中心点所对应的正多边形的顶点集与独立顶点集的合集进行检测;当正多边形的顶点与独立顶点集的合集与输入的模型的顶点集的包含程度超过指定阈值判断为当前对称轴为整体对称;
角度检测方法为先在正多边形的顶点集中任取三个顶点Pi,Pj,Pk从而得到多边形所在的平面上的两个向量PiPj和PiPk,然后对这两个向量进行叉乘,计算出正多边形的法向量m;再在对称轴中任取两个点生成对称轴的坐标向量l;通过公式cosθ=l·m/|l|*|m|计算出两个向量夹角的余弦值,如果余弦值在指定阈值范围中则判定为对称轴与多边形平面垂直。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910289738.7A CN110070620A (zh) | 2019-04-11 | 2019-04-11 | 基于遗传算法的三维网格面模型整体近似轴对称判定算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910289738.7A CN110070620A (zh) | 2019-04-11 | 2019-04-11 | 基于遗传算法的三维网格面模型整体近似轴对称判定算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110070620A true CN110070620A (zh) | 2019-07-30 |
Family
ID=67367469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910289738.7A Pending CN110070620A (zh) | 2019-04-11 | 2019-04-11 | 基于遗传算法的三维网格面模型整体近似轴对称判定算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110070620A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564699A (zh) * | 2022-04-28 | 2022-05-31 | 成都博瑞科传科技有限公司 | 一种总磷总氮连续在线监测方法及系统 |
-
2019
- 2019-04-11 CN CN201910289738.7A patent/CN110070620A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564699A (zh) * | 2022-04-28 | 2022-05-31 | 成都博瑞科传科技有限公司 | 一种总磷总氮连续在线监测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yip et al. | Combinatorial optimization with use of guided evolutionary simulated annealing | |
Conte et al. | Challenging complexity of maximum common subgraph detection algorithms: A performance analysis of three algorithms on a wide database of graphs | |
Lan et al. | A two-phase learning-based swarm optimizer for large-scale optimization | |
Parimala et al. | A survey on density based clustering algorithms for mining large spatial databases | |
Zheng et al. | Unsupervised evolutionary clustering algorithm for mixed type data | |
CN110161464A (zh) | 一种雷达多目标聚类方法及装置 | |
Cromley | A comparison of optimal classification strategies for choroplethic displays of spatially aggregated data | |
Knobloch et al. | The classic differential evolution algorithm and its convergence properties | |
CN108710914A (zh) | 一种基于广义模糊聚类算法的无监督数据分类方法 | |
CN103617163B (zh) | 基于聚类分析的目标快速关联方法 | |
CN106528989B (zh) | 一种分布式并行sph仿真方法 | |
CN111311702B (zh) | 一种基于BlockGAN的图像生成和识别模块及方法 | |
CN109948705A (zh) | 一种基于k近邻图的稀有类检测方法及装置 | |
CN106886467B (zh) | 基于分组-综合多目标进化的多任务测试优选方法 | |
CN110070620A (zh) | 基于遗传算法的三维网格面模型整体近似轴对称判定算法 | |
Su et al. | Geometric computation based assembly sequencing and evaluating in terms of assembly angle, direction, reorientation, and stability | |
CN108171785B (zh) | 用于光线跟踪的sah-kd树设计方法 | |
CN115965318A (zh) | 一种基于变中心演化聚类的物流中心选址方法 | |
Tahernezhadiani et al. | Towards enhancing solution space diversity in multi-objective optimization: a hypervolume-based approach | |
CN112182704A (zh) | 一种地图中建筑物群移位优化方法及装置 | |
Zakharova et al. | Methods for Construction and Research Stereometric Visual Images of Multi-criteria Alternatives | |
Christianto et al. | Highest order Voronoi diagram optimization | |
Osinska et al. | Mapping evaluation for semantic browsing | |
Ramathilagam et al. | Robust fuzzy clustering techniques for analyzing complicated colon cancer database | |
CN108090514A (zh) | 基于两阶段密度聚类的红外图像识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190730 |
|
RJ01 | Rejection of invention patent application after publication |