CN103177473B - 一种基于实例的大规模场景合成方法 - Google Patents
一种基于实例的大规模场景合成方法 Download PDFInfo
- Publication number
- CN103177473B CN103177473B CN201310075955.9A CN201310075955A CN103177473B CN 103177473 B CN103177473 B CN 103177473B CN 201310075955 A CN201310075955 A CN 201310075955A CN 103177473 B CN103177473 B CN 103177473B
- Authority
- CN
- China
- Prior art keywords
- model
- node
- candidate
- label
- tectonic element
- 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.)
- Expired - Fee Related
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于实例的大规模场景合成方法,该方法通过对构造单元的自动式优化组合构建大规模场景,包括以下步骤:给定一个小场景模型,采用等间隔的三组正交平面组分割模型以建立模型的构造单元集合并提取各构造单元的几何特征及其之间的邻接关系;根据三个方向的扩展因子,定义一个Petri网结构建立目标模型构造过程的参数化表示;以所定义的Petri网及其变异算子为目标模型的编码表示,使用人工免疫算法实现对构造过程的优化以得到与实例模型结构最为相似的模型。本发明利用实例模型的结构特征扩展规模以生成大规模的场景模型,提高了建模效率,并实现了对模型资源的有效重用。
Description
技术领域
本发明涉及一种基于实例的大规模场景合成方法,属于计算机软件和计算机图形学技术领域,具体地说,是一种运用计算机进行模型分析、推理建模和优化组合等过程扩展实例模型的规模以生成更大规模的场景模型的方法。
背景技术
在数字娱乐、虚拟现实等领域中,构建大规模复杂几何模型如城市、山地已经成为丰富用户体验的必要手段,工业领域、数字遗产保护等领域对三维模型的需求也日益增强。现有建模方法往往采用标准CAD建模工具,其操作流程复杂导致用户需要经过大量时间的培训,且在构建复杂模型时建模效率低下因而难以满足实际应用领域的需要。因此,在复杂几何建模过程引入自动或半自动机制可以简化用户交互负担成为一种新的技术趋势。
已有的自动化建模方法包括基于扫描数据的重建方法和过程化建模方法。基于扫描数据的重建方法包括文献1:Nan L.L.,Andrei S.,Zhang H.,Cohen-Or D.,Chen B.Q.,SmartBoxes for Interactive Urban Reconstruction,Proceedings SIGGRAPH2010,Article93等,这类方法需要昂贵的设备进行数据的捕获,且大规模点云数据的处理对计算机硬件有很高的要求,三维点云数据固有的歧义性和噪音也对重建模型的质量有较强的影响,因而此类方法不适合直接进行交互式的场景建模;过程化建模方法如文献2:MullerP.,Wonka P.,Haegler,S.,Ulmer,A.,and Gool L.V.,Procedural modeling of buildings.ACM Transaction of Graphics,25(3)614–623,2006.等方法根据手工定义的模型构造规则采用推理方法自动创建复杂的模型,这类方法对用户交互负担小,且无需昂贵的捕获和计算设备,因而成为创建复杂场景的强有力工具。然而,其构造规则定义的复杂性和抽象性使得用户难以直观控制过程化建模结果。
近年来,过程化建模方法采用模型分析技术自动的构造模型构造规则,从而避免了繁琐的手工定义过程。文献3:Merrell P.Example-based model synthesis.Proceedings ofthe2007symposium on Interactive3D Graphics and Games.2007,105-112提出了模型合成方法,其可利用离散的三维实例模型自身结构相似性生成大规模三维场景模型。这种方法仅需用户提供小的场景模型即可完成任意大场景的自动合成,为大规模复杂场景建模提供了一种便捷的途径。已有模型合成方法仅满足于寻找符合实例模型邻接约束的一个可行解,无法完整体现实例模型的其他构造特点。本专利在现有模型合成方法的基础上,引入全局优化组合机制以保证建模结果满足用户所提供实例的结构特征。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于实例的模型合成方法,该方法能根据用户提供的实例模型自动合成更大规模的模型或场景。
技术方案:本发明公开了一种基于实例的大规模场景合成方法,包括以下步骤:
步骤一,实例分析:给定一个实例场景模型,计算实例场景模型的构造单元集合及构造单元之间的约束关系;
步骤二,目标模型构造过程的参数化建模:给定目标模型的规模,生成Petri网结构表示目标模型构造单元的组合过程,并描述建模过程;
步骤三,基于人工免疫的组合优化:使用人工免疫算法对参数化的构造过程进行优化以得到与实例场景模型的结构特征最为相似的模型。
本发明步骤一中,包括以下步骤:
使用对称单元检测算法提取实例场景模型的自相似单元,根据自相似单元的大小和位置信息构造等间隔的三组正交平面组以分割实例场景模型,各组平面分别以X轴、Y轴和Z轴方向为法方向,其平面数目分别为Nx,Ny和Nz,由此建立实例场景模型的构造单元集合{M[i,j,k]|1≤i≤Nx,1≤j≤Ny,1≤k≤Nz},其中,M[i,j,k]为一个构造单元,i,j和k分别表示该构造单元沿X轴、Y轴和Z轴的序数;
使用三角形网格面片将每个构造单元表示为:M[i,j,k]={V[i,j,k],F[i,j,k],l[i,j,k]},其中,V[i,j,k]为顶点集,F[i,j,k]为三角面片集,l[i,j,k]为标号;
计算每个构造单元M[i,j,k]的形状特征,包括网格表面积S,长方体凸包特征{x0,x1,y0,y1,z0,z1}和网格顶点覆盖标记{fuvw|0≤u,v,w≤1},其中,下标u,v和w表示网格顶点覆盖标记fuvw指示的长方体凸包顶点序号,所述网格表面积S=∑AF,AF为网格上一个三角形面片的面积,所述长方体凸包特征{x0,x1,y0,y1,z0,z1}为凸包在X,Y和Z三个主轴上的坐标极值,网格顶点覆盖标记fuvw表示长方体凸包顶点[xu,yv,zw]是否属于顶点集V[i,j,k],若属于则fuvw=1,反之则fuvw=0;
使用形状特征对构造单元聚类以提取构造单元的自相似关系,若两个构造单元和的特征完全一致(其中,和表示序数组,为[i,j,k]的简化表示形式),则使用同一标号L对该两个单元进行标记,即将所用的标号L并入标号集合UL中;
使用如下布尔函数表示实例场景模型构造单元的邻接约束集合:
其中,L1和L2是标号集合UL中的两个标号,是一个布尔函数,其定义域为UL×UL,值域为{0,1}, 为三主轴上的单位向量。
步骤二中,采用有色Petri网建立目标模型的构造单元组合过程的参数化表示,进而完成对构造过程的描述,包括以下步骤:
根据用户设定的规模参数Sx,Sy和Sz,建立一个三维格状空间,Sx,Sy和Sz分别表示该格状空间沿X轴、Y轴和Z轴的子空间数目,取值范围为正整数;
在三维格状空间的每一个格子空间中建立局部Petri网,每个局部Petri网包括候选和填充两个库所节点以及候选更新和候选选择两个迁移节点,沿流关系依次为候选更新迁移节点、候选库所节点、候选选择迁移节点和填充库所节点,并连接任一候选库所节点和填充库所节点与相邻构造单元的候选更新迁移节点进行连接,从而建立目标模型的Petri网结构;
定义目标模型的Petri网结构中迁移节点的操作:
候选更新迁移节点:根据相邻构造单元的候选库所节点和填充库所节点的托肯信息和邻接约束集合计算该迁移节点的托肯;
候选选择迁移节点:从候选库所节点随机选择一个标号L进行组合,候选选择迁移节点的执行优先级比候选更新迁移节点的执行优先级低;
定义两类变异算子实现对构造单元组合过程的变异:
标号选择变异:该变异不改变推理的节点顺序,仅改变候选选择迁移节点选择的标号;
节点选择变异:该变异在进行候选选择迁移节点执行时,选择其他可行的迁移节点进行执行。
本发明步骤三中包含以下步骤:
记输入的实例场景模型为ME,进行实例模型的结构特征计算,得到实例模型的构造单元数目向量其中,表示实例场景模型ME所含标号为L的构造单元数目;
根据步骤二建立的Petri网结构,反复使用基于信号传递的推理方法,通过候选选择迁移节点的随机标号选择操作生成NAis个不同的新模型,记为初始种群Abs;
种群更新步骤:
进行个体结构特征计算,得到初始种群中每个个体的构造单元数目向量其中,表示每个个体所含标号为L的构造单元数目;
计算实例场景模型ME与每个个体MO间的亲和度,其计算公式为:
其中,aff(ME,MO)表示实例场景模型ME与个体MO间的亲和度;
选择亲和度最高的K个个体作为新的种群Abs2;
计算新的种群Abs2中每个个体M′O的浓度:其中,density(M′O)为个体M′O的浓度,h为求和公式序数,M′h为新的种群Abs2中第h个个体,aff(M′O,M′h)为个体M′O和M′h之间的亲和度;
对于种群Abs2中的每一个个体,根据浓度和亲和度克隆得到新的个体,以构成新的种群集合Abs3;
根据步骤二定义的变异算子对每个个体执行变异,并结合初始种群得到新种群Abs3∪Abs;
计算新种群Abs3∪Abs中每个个体与实例模型的亲和度;
选择亲和度最大的NAis个个体作为新的初始种群,返回种群更新步骤,直到所得种群不再发生变化为止。
有益效果:本发明具有以下优点:1、允许用户提供一个实例模型并自动进行模型的规模扩展,提高了建模效率,并实现了已有数据资源的有效重用;2、采用Petri网表示模型的构造过程,一方面隐式地表示模型的构造约束和特征,另一方面实现了对模型构造的管理,支持对构造过程的回溯和变异进而实现整个优化过程;3、本发明中针对构造过程的参数高维度特性,采用人工免疫作为优化方法,有效避免了优化结果陷入局部最优。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1是本发明的处理流程示意图。
图2a是实施例的输入模型集示例示意图。
图2b是实施例的输出模型集示例示意图。
图3a是实施例的正交分割平面组示意图。
图3b是实施例分割所得的若干构造单元示意图。
图4是实施例的Petri网结构。
具体实施方式:
本发明公开了一种基于实例的大规模场景合成方法,包括以下步骤:
步骤一,实例模型分析:给定一个实例模型,构建模型的构造单元集合及其之间的约束关系;
步骤二,目标模型构造过程的参数化建模:给定目标模型的规模,生成Petri网结构表示构造单元的组合过程,并采用推理过程实现对建模过程的有效描述;
步骤三,基于人工免疫的组合优化:使用人工免疫算法对参数化的构造过程进行优化以得到与实例模型特征最为相似的模型。
更具体地说,本发明让用户提供一个实例模型,其实施主要涉及模型分析、构造过程参数化建模和基于人工免疫的组合优化三大关键技术,实现对实例模型的规模扩展,其处理流程如图1所示,图2为建模结果的一个实例,图2a为输入模型,图2b为输出模型。模型分析是通过模型分割提取模型的构造单元集合,并使用参数方程表示单元之间的邻接关系;构造过程参数化建模是使用Petri网对构造单元的组合过程进行参数化建模,并定义变异和回溯操作实现对建模过程的管理;基于人工免疫的组合优化则使用克隆选择算法在对应可行解空间选择最能反映实例模型形状和结构特征的模型作为建模结果。下面分别介绍各部分的主要实施方式。
1.实例模型分析
本发明处理的实例模型ME均为三角形网格模型,可表示为{V,F},其中,为顶点集,其中,i′为顶点序数,为顶点数目,vEi′=[xEi′,yEi′,zEi′]为一个顶点,xEi′,yEi′,zEi′为点vEi′的三维坐标值,为三角形面片集合,其中,j′为面片序数,为三角形面片数目,fEj′=[t1j′,t2j′,t3j′]为一个三角形面片,该三角形由顶点集V中第t1j′、t2j′和t3j′个顶点组成。给定一个实例模型ME,本发明首先计算模型上的对称单元,并利用对称单元的大小和位置建立等间隔的三组正交平面组分割模型,分割结果即为实例模型的构造单元集合,然后计算构造单元间的约束关系,即根据各单元的形状特征对构造单元集合进行分类,并通过布尔函数表示构造单元之间的邻接约束关系。
1.1构造单元集合构建
该步骤利用等间隔的三组正交平面组分割模型从而得到模型的构造单元集合,本发明根据实例模型对称单元检测结果构造用以分割的三组正交平面组{PlaneX,PlaneY,PlaneZ},其中,PlaneX、PlaneY和PlaneZ分别表示以X、Y和Z轴为法向的三组平面。
给定两个三维模型MS1={VS1,FS1}和MS2={VS2,FS2},若模型MS1和MS2满足如下条件:
(1).模型MS1和MS2是模型ME={V,F}的子模型,即其中,l′为模型序数;
(2).模型MS1和MS2具有一致的网格拓扑结构,即顶点集VS1和VS2的集合大小相同,且存在顶点集VS1的一个排列,对顶点集VS1和三角形面片集FS1中每一个三角形面片中的顶点序号进行重新排列之后,所得的新三角形面片集合F′S1与FS2完全一致;
(3).存在一个仿射变换T,使得T(VS1)=VS2,其中,T(VS1)为对VS1中每一个顶点进行变换T后构成的顶点集合;
则模型MS1和MS2称为模型ME的一组对称单元,由以上定义可以看出,对称单元指模型上的一组具有仿射不变性的子模型。由于模型合成过程仅对构造单元进行平移变换,因此,本发明仅考虑具有平移不变形的对称单元。
本发明采用基于投票变换的对称单元检测方法提取实例模型上的对称单元集合,将其定义为{MSi′′|i′′=1,...,NMs},其中,MSi′′为模型ME上的第i′′个对称单元,对称单元集合大小为NMs,计算方法见文献4:Pauly M.,Mitra N.J.,Wallner J.,Pottmann H.,andGuibas L.J.Discovering structural regularity in3D geometry.ACM Transactions onGraphics,2008,27(3),Article43。
根据对称单元集合{MSi′′|i′′=1,...,NMs},本发明计算每一个单元MSi′′的三维矩形凸包大小,可表示为[lHxi′′,lHyi′′,lHzi′′],其中,lHxi′′、lHyi′′和lHzi′′分别表示单元MSi′′的三维矩形凸包的各边边长。为了使模型的构造单元集合包含更多的对称单元,本发明根据凸包体积最小的对称单元的位置和凸包边长构造等间隔的三组正交平面组,假设凸包体积最小的对称单元为M′S,其三维矩形凸包大小表示为[l′Hx,l′Hy,l′Hz],凸包中心的三维坐标值为[C′Mx,C′My,C′Mz],实例模型ME的三维矩形凸包的大小表示为[lHx,lHy,lHz],其中心的三维坐标值为[CMx,CMy,CMz],则三组正交平面组{PlaneX,PlaneY,PlaneZ}构造过程如下:
步骤1:计算实例模型三维矩形凸包沿各方向坐标的极小值计算公式为
步骤2:计算单元M′S三维矩形凸包沿各方向坐标的极小值计算公式为
步骤3:计算各组正交平面与相应法向坐标轴交点的最小坐标值其中,和分别表示平面组PlaneX中平面与X轴、平面组PlaneY中平面与Y轴和平面组PlaneZ中平面与Z轴的交点极小值,计算公式为
其中,为高斯函数;
步骤4:计算各组正交平面的数目[Nx,Ny,Nz],其中,Nx、Ny和Nz分别表示平面组PlaneX、PlaneY和PlaneZ中的平面数目,计算公式为
其中,为高斯函数;
步骤5:构造平面组PlaneX、PlaneY和PlaneZ,计算公式为
该三组正交平面可构造一个三维格状空间,共包括(Nx+1)×(Ny+1)×(Nz+1)个子空间,图3a(基于本发明效果的特性,只能使用灰度图显示)中粗网格线表示了三维格状空间在实施例上的分割线,每个子空间可使用一个参数化的三维坐标进行表示,其中,1≤i≤Nx,1≤j≤Ny,1≤k≤Nz。本发明根据所构造的三组正交平面组{PlaneX,PlaneY,PlaneZ}切割实例模型,可得到(Nx+1)×(Ny+1)×(Nz+1)个构造单元,图3b(基于本发明效果的特性,只能使用灰度图显示)为其中3个构造单元,每个构造单元均对应于所建三维格状空间中的一个子空间,本发明将所得的构造单元作为模型的构造单元集合,定义为{M[i,j,k]|1≤i≤Nx,1≤j≤Ny,1≤k≤Nz},其中M[i,j,k]为参数化坐标是[i,j,k]的子空间所对应的构造单元。
1.2构造约束计算
在得到模型的构造单元集合后,本发明计算各构造单元的形状特征,并根据形状特征对构造单元进行分类,属于同一类的单元将使用同一整数对其进行标记,最后通过布尔函数表示实例模型的构造单元间的邻接约束关系。
首先,计算构造单元M[i,j,k]的形状特征向量依次为网格表面积S,三维矩形凸包特征FH={x0,x1,y0,y1,z0,z1}和网格顶点覆盖标记{fuvw|0≤u,v,w≤1},其中,网格表面积S=∑AF,表示网格上所有三角形面片的面积AF之和,三维矩形凸包特征{x0,x1,y0,y1,z0,z1}为凸包在X,Y和Z三个主轴上的坐标极值,网格顶点覆盖标记fuvw表示长方体凸包顶点[xu,yv,zw]是否属于顶点集V,若属于则fuvw=1,反之则fuvw=0;
然后,对构造单元进行分类,若构造单元和的形状特征向量完全一致,则将单元和分为一类,假设最后将构造单元分为NS类,则使用整数集UL={1,...,NS}中的某一整数对各类中的构造单元进行标记,同一类的构造单元使用同一整数。
最后,本发明定义了一种布尔函数表示构造单元之间的邻接关系,该布尔函数表示为 其中, 为主轴单位向量集,若则表示了标号L1和L2所代表的构造单元沿单位向量可连接,反之,则表示相应的构造单元沿单位向量不可连接。实例模型ME的布尔函数计算过程如下:
步骤1:对于每个标号L1∈UL,标号l2∈UL,主轴单位向量向量初始化
步骤2:遍历三维格状空间的每个子空间,假设当前子空间的参数化坐标为[i,j,k],子空间对应的构造单元的标号为L1,依次计算该子空间沿单位向量的相邻子空间,则该相邻子空间的参数化坐标为若该参数化坐标在定义域内,则提取该相邻子空间对应的构造单元标号L2,并设置和
根据上述步骤,本发明计算得到实例模型对应的布尔函数以表示构造单元间的邻接约束关系,所生成的新模型均满足该邻接约束。
2.构造过程的参数化建模
由于本发明使用人工免疫算法对建模结果进行优化,因此需要建立一种对建模的过程化管理机制,本发明使用Petri网描述模型合成过程,根据所定义的Petri网结构,可利用基于Petri网的推理方法对模型合成过程进行表示,并可定义相应的变异算子以实现对推理过程的演变。
2.1Petri网结构
Petri网是一种描述异步并发***的强有力的工具,其结构为一种有向二分图,主要包含两类节点:库所节点和迁移节点,其中,库所节点描述的为***状态,可使用托肯表示库所节点的动态特征,迁移节点表示状态之间的变换。有向边仅能从库所节点到迁移节点,或者从迁移节点到库所节点,每次迁移节点的发生需要消耗输入库所节点的托肯,并在输出库所节点中产生相应的托肯。基本Petri网可使用三元组PN={SP,TR,FL}形式化表示,三元组须满足如下条件:
dom(FL)∪cod(FL)=SP∪TR
其中, ,SP和TR分别称为库所节点集和变迁集,FL为流关系,基本Petri网仅使用托肯的个数规定库所节点的状态。若使用基本Petri网实现对三维单元的增量填充过程,托肯数目将随着模型复杂度的提升大幅增长,造成网络“节点***”。因此,本发明使用有色Petri网实现对建模过程的描述,有色Petri网是一种高级Petri网结构,通过不同的颜色来区分不同种类的托肯,即赋予托肯一定的信息内容,从而在不增加库所节点的基础上提高了对***状态的描述能力。
本发明将库所节点对应于格状空间中每个子空间在填充过程处于的状态,并在迁移节点定义相应的操作,该操作根据输入库所节点的托肯信息计算输出库所节点的托肯信息。本发明将模型合成过程视为向一个三维格状空间填入构造单元的过程,该过程可分两步实现:首先计算各子空间可填充的候选构造单元集合,然后从候选构造单元集合中选择一个单元进行填充。据此,本发明首先根据用户设定的规模参数建立三维格状空间,然后在每个格状子空间处定义两类库所节点和两类迁移节点,图4为实施例的Petri网结构,按流关系方向依次为:候选更新迁移节点TR1、候选库所节点SP1、候选选择迁移节点TR2、填充库所节点SP2,相邻子空间之间的流关系从候选库所节点或填充库所节点流向候选更新迁移节点,表示候选更新迁移节点操作接受相邻子空间的候选库所节点或填充库所节点的信息,并计算所在子空间的候选填充单元序号信息。候选选择迁移节点从该子空间的候选库所节点中随机选择某一单元进行填充。若某一子空间中的候选库所节点或者填充库所节点中的状态发生变化,则通知相邻子空间进行状态更新。为了丰富库所节点的信息存储能力,本发明使用有色Petri网结构,通过在托肯记录建模过程的控制参数以支持基于推理的模型构造过程,所定义的托肯结构表示为Ttoken={suflag,SC,lr},其中,更新状态标记suflag∈(fu,fd,fl,fr,ff,fb),fu,fd,fl,fr,ff,fb分别表示该子空间上、下、左、右、前和后这六个邻接子空间是否已经更新各自状态,若为1,表示还未更新,反之则表示已更新;候选标号集合SC,为可填充到该空间的构造单元标号集;最终标号lr,为最终填充到该空间的构造单元标号。
2.2迁移节点操作定义
执行迁移节点操作可更新库所节点中的托肯信息。本发明中的Petri网包含两类迁移节点:候选更新迁移节点和候选选择迁移节点,其中,候选更新迁移节点的优先执行度比候选选择迁移节点的优先执行度高,下面将分别对该两类迁移节点操作详细介绍。
候选更新迁移节点:该迁移节点操作根据相邻子空间的候选标记集更新所在子空间的候选标记集,更新结果需满足实例模型布尔函数定义的邻接约束,一旦所在子空间的候选标记集中的某一标记在相邻单元的候选标记集中不存在可相邻的标记,即与约束关系发生冲突,则将这一标记从候选集合中去除。由子空间的定义可知,候选更新迁移节点共有12个输入库所节点,不失一般性,定义候选更新迁移节点TR1的输入库所节点集为:
{SP1u,SP2u,SP1d,SP2d,SP1l,SP2l,SP1r,SP2r,SP1f,SP2f,SP1b,SP2b},
其中,SP1u,SP2u分别为处于所在子空间上方的子空间中的候选库所节点和填充库所节点,SP1d,SP2d分别为处于所在子空间下方的子空间中的候选库所节点和填充库所节点,SP1l,SP2l分别为处于所在子空间左方的子空间中的候选库所节点和填充库所节点,SP1r,SP2r分别为处于所在子空间右方的子空间中的候选库所节点和填充库所节点,SP1f,SP2f分别为处于所在子空间前方的子空间中的候选库所节点和填充库所节点,SP1b,SP2b分别为处于所在子空间后方的子空间中的候选库所节点和填充库所节点。(注:位于边界子空间中的候选更新迁移节点的输入库所节点集是该集合的子集,只需从中去除不存在的输入库所节点即可)。对于候选更新迁移节点TR1,其触发条件标志FR1计算公式如下:
Fud=SP1u.fu∨SP2u.fu∨SP1d.fd∨SP2d.fd
Flr=SP1l.pl∨SP2l.pl∨SP1r.pr∨SP2r.pr
Ffb=SP1f.pf∨SP2f.pf∨SP1b.pb∨SP2b.pb,
FR1=Fud∨Flr∨Ffb
若标志FR1=1,则执行该候选迁移节点,其详细操作过程如下:
步骤1:遍历该迁移节点的每一个输入库所节点SPαβ,其中,α∈{1,2}表示库所节点类型标号,β∈{u,d,l,r,f,b}为子空间的方向标记,若SPαβ.pβ=0,则返回步骤1判断下一个输入库所节点;
步骤2:计算从迁移节点所在子空间到输入库所节点SPαβ所在子空间的单位向量,记迁移节点所在子空间的参数化坐标为[iT,jT,kT],输入库所节点所在子空间的参数化坐标为[i′T,j′T,k′T],则
步骤3:对于输入库所节点托肯中候选标号集合SC中的每一个标号构造标号集合该集合为所有满足邻接约束集合的标号l的集合,合并所有的标号集合为SU;
步骤4:设SCo为该迁移节点输入库所节点的候选标号集合,计算S′C=SCo∩SU为输出库所节点新的候选标号集合,设置SPαβ.pβ=0,若SCo≠S′C,则将输出库所节点托肯中所有的更新状态标记设置为1,返回步骤1判断下一个输入库所节点。
至此可完成候选更新迁移节点以实现对候选库所节点的状态更新。
候选选择迁移节点:该迁移节点操作从输入库所节点候选标号集合中选择任意标记对应的构造单元填充到迁移节点所在子空间中,执行候选选择迁移节点的触发条件是填充库所节点托肯中最终标号未被赋值。候选选择迁移节点的执行包括三种情况:
(1).候选库所节点托肯中的候选标号集合包含零个元素;
(2).候选库所节点托肯中的候选标号集合包含一个元素;
(3).候选库所节点托肯中的候选标号集合包含多于一个元素。
执行优先度为情况(1)>情况(2)>情况(3)。若候选标号集合包含零个元素,则推理构造过程失败,若出现这种情况则回溯至推理过程的最开始重新推理构造过程,直到推理构造成功为止;若候选标号集合仅包含一个元素,则该迁移节点直接将输出的填充库所节点托肯中最终标号赋值为该元素;若候选标号集合包含多于一个元素,则该迁移节点从候选标号集合随机选择一个标号赋予填充库所节点的最终标号,并设定填充库所节点托肯中的候选标号集合仅包含最终标号,同时设定所有更新状态标记设置为1。
2.3构造单元组合过程的变异
所述推理过程有两处随机选择过程,第一个随机选择过程是情况(3)的候选选择迁移节点选择,即不存在可行的其他类迁移节点时,本发明随机选择一个可执行的迁移节点执行;第二个随机选择过程是执行情况(3)下的候选选择迁移节点,从候选标号集合中随机选择一个标记作为最终标记。
根据以上两种随机选择情况,本发明定义了两种变异算子以实现对构造过程的演变:节点选择变异和标号选择变异。
节点选择变异:该变异在选择候选选择迁移节点进行随机选择时,选择其他可执行的候选选择迁移节点进行执行;
标号选择变异:该变异在执行同一候选选择迁移节点时,选择候选标号集合中的另一个标号。
通过以上两种变异算子,可通过对构造过程的演变以实现对所有满足实例模型邻接约束可行解集的遍历,从而可支持使用人工免疫算法从解集中选择最符合实例模型结构和形状特征的解。
3.基于人工免疫的优化组合
在构建了模型合成过程的参数化表示之后,本发明使用克隆选择算法实现对模型合成的组合优化。克隆选择算法是人工免疫领域的一个重要算法,已广泛应用于网络安全、病毒检测、模式识别、组合优化等领域,其基本思想是选择那些能够识别抗原的细胞做为新一代的免疫细胞,并进行扩增。本发明采用参数化的Petri网作为免疫细胞的编码,将节点选择变异和标号选择变异作为变异算子,亲和度计算以模型构成的单元数目比例为特征以衡量两个模型的相似度。
本发明的基于人工免疫优化的模型合成方法详细步骤描述如下:
实例模型的结构特征计算步骤:
记输入的实例场景模型为ME,进行实例模型的结构特征计算,得到实例模型的构造单元数目向量其中,表示实例场景模型ME所含标号为L的构造单元数目;
种群初始化步骤:
根据步骤二建立的Petri网结构,反复使用基于信号传递的推理方法,通过候选选择迁移节点的随机标号选择操作生成NAis个不同的新模型,记为初始种群Abs,包括以下步骤:
步骤1:初始化所有节点的库所节点中托肯的候选标号集合SC为标号集合UL,所有更新状态标记设置为0;
步骤2:随机选择某一候选选择迁移节点执行其操作;
步骤3:在Petri网中搜索可执行的候选更新迁移节点执行其操作,直到没有可执行的候选更新迁移节点为止;
步骤4:在Petri网中随机搜索某一可执行的候选选择迁移节点执行其操作,若存在没有执行的候选选择迁移节点,返回步骤2;
步骤5:根据Petri网的标号组合对应的构造单元构建最终模型。
由于推理过程存在着随机参数,不同的随机过程产生不同的结果,本发明反复执行基于信号传递的推理方法生成NAis个不同的新模型(本发明取NAis=100),记为初始种群Abs;
种群更新步骤:
进行个体结构特征计算,得到初始种群中每个个体的构造单元数目向量其中,表示每个个体所含标号为L的构造单元数目;
计算实例场景模型ME与每个个体MO间的亲和度,其计算公式为:
其中,aff(ME,MO)表示实例场景模型ME与个体MO间的亲和度;
选择亲和度最高的K个个体作为新的种群Abs2(本发明取K=30);
计算新的种群Abs2中每个个体M′O的浓度:其中,density(M′O)为个体M′O的浓度,h为求和公式序数,M′h为新的种群Abs2中第h个个体,aff(M′O,M′h)为个体M′O和M′h之间的亲和度;
对于种群Abs2中的每一个个体,根据浓度和亲和度克隆得到新的个体,以构成新的种群集合Abs3,与实例模型的亲和度越高,浓度越低则克隆越多;;
根据步骤二定义的变异算子对每个个体执行变异,并结合初始种群得到新种群Abs3∪Abs;
计算新种群Abs3∪Abs中每个个体与实例模型的亲和度;
选择亲和度最大的NAis个个体作为新的初始种群,返回种群更新步骤,直到所得种群不再发生变化为止。
经过优化过程,本发明选择亲和度最大的个体作为新的结果模型,从而完成基于人工免疫优化的模型合成。
本发明提供了一种基于实例的大规模场景合成方法的思路及方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (1)
1.一种基于实例的大规模场景合成方法,其特征在于,包括以下步骤:
步骤一,实例分析:给定一个实例场景模型,计算实例场景模型的构造单元集合及构造单元之间的约束关系;实例场景模型为三角网格模型;
步骤二,目标模型构造过程的参数化建模:给定目标模型的规模,生成Petri网结构表示目标模型构造单元的组合过程,并描述建模过程;
步骤三,基于人工免疫的组合优化:使用人工免疫算法对参数化的构造过程进行优化以得到与实例场景模型的结构特征最为相似的模型;
步骤一中,包括以下步骤:
使用对称单元检测算法提取实例场景模型的自相似单元,根据自相似单元的大小和位置信息构造等间隔的三组正交平面组以分割实例场景模型,各组平面分别以X轴、Y轴和Z轴方向为法方向,其平面数目分别为Nx,Ny和Nz,由此建立实例场景模型的构造单元集合{M[i,j,k]|1≤i≤Nx,1≤j≤Ny,1≤k≤Nz},其中,M[i,j,k]为一个构造单元,i,j和k分别表示该构造单元沿X轴、Y轴和Z轴的序数;
使用三角形网格面片将每个构造单元表示为:M[i,j,k]={V[i,j,k],F[i,j,k],l[i,j,k]},其中,V[i,j,k]为顶点集,F[i,j,k]为三角面片集,l[i,j,k]为标号;
计算每个构造单元M[i,j,k]的形状特征,包括网格表面积S,长方体凸包特征{x0,x1,y0,y1,z0,z1}和网格顶点覆盖标记{fuvw|0≤u,v,w≤1},其中,下标u,v和w表示网格顶点覆盖标记fuvw指示的长方体凸包顶点序号,所述网格表面积S=ΣAF,AF为网格上一个三角形面片的面积,所述长方体凸包特征{x0,x1,y0,y1,z0,z1}为凸包在X,Y和Z三个主轴上的坐标极值,网格顶点覆盖标记fuvw表示长方体凸包顶点[xu,yv,zw]是否属于顶点集V[i,j,k],若属于则fuvw=1,反之则fuvw=0;
使用形状特征对构造单元聚类以提取构造单元的自相似关系,若两个构造单元和的特征完全一致(其中,和表示序数组,为[i,j,k]的简化表示形式),则使用同一标号L对该两个构造单元和的标号和进行赋值,即将所用的标号L并入标号集合UL中;
使用如下布尔函数表示实例场景模型构造单元的邻接约束集合:
其中,L1和L2是标号集合UL中的两个标号,是一个布尔函数,其定义域为UL×UL,值域为{0,1}, 为X、Y和Z轴上的单位向量;
步骤二中,采用有色Petri网建立目标模型的构造单元组合过程的参数化表示,进而完成对构造过程的描述,包括以下步骤:
根据用户设定的规模参数Sx,Sy和Sz,建立一个三维格状空间,Sx,Sy和Sz分别表示该格状空间沿X轴、Y轴和Z轴的子空间数目,取值范围为正整数;
在三维格状空间的每一个格子空间中建立局部Petri网,每个局部Petri网包括候选和填充两个库所节点以及候选更新和候选选择两个迁移节点,沿流关系依次为候选更新迁移节点、候选库所节点、候选选择迁移节点和填充库所节点,并连接任一候选库所节点和填充库所节点与相邻构造单元的候选更新迁移节点进行连接,从而建立目标模型的Petri网结构;
定义目标模型的Petri网结构中迁移节点的操作:
候选更新迁移节点:根据相邻构造单元的候选库所节点和填充库所节点的托肯信息和邻接约束集合计算该迁移节点的托肯;
候选选择迁移节点:从候选库所节点随机选择一个标号L进行组合,候选选择迁移节点的执行优先级比候选更新迁移节点的执行优先级低;
定义两类变异算子实现对构造单元组合过程的变异:
标号选择变异:该变异不改变推理的节点顺序,仅改变候选选择迁移节点选择的标号;
节点选择变异:该变异在进行候选选择迁移节点执行时,选择其他可行的迁移节点进行执行;
步骤三中,包含以下步骤:
实例模型的结构特征计算步骤:
记输入的实例场景模型为ME,进行实例模型的结构特征计算,得到实例模型的构造单元数目向量其中,表示实例场景模型ME所含标号为L的构造单元数目;
种群初始化步骤:
根据步骤二建立的Petri网结构,反复使用基于信号传递的推理方法,通过候选选择迁移节点的随机标号选择操作生成NAis个不同的新模型,记为初始种群Abs;
种群更新步骤:
进行个体结构特征计算,得到初始种群中每个个体的构造单元数目向量其中,表示每个个体所含标号为L的构造单元数目;
计算实例场景模型ME与每个个体MO间的亲和度,其计算公式为:
其中,aff(ME,MO)表示实例场景模型ME与个体MO间的亲和度;
选择亲和度最高的K个个体作为新的种群Abs2;
计算新的种群Abs2中每个个体M′O的浓度:其中,density(M′O)为个体M′O的浓度,h为求和公式序数,M′h为新的种群Abs2中第h个个体,aff(M′O,M′h)为个体M′O和M′h之间的亲和度;
对于种群Abs2中的每一个个体,根据浓度和亲和度克隆得到新的个体,以构成新的种群集合Abs3;
根据步骤二定义的变异算子对每个个体执行变异,并结合初始种群得到新种群Abs3∪Abs;
计算新种群Abs3∪Abs中每个个体与实例模型的亲和度;
选择亲和度最大的NAis个个体作为新的初始种群,返回种群更新步骤,直到所得种群不再发生变化为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310075955.9A CN103177473B (zh) | 2013-03-11 | 2013-03-11 | 一种基于实例的大规模场景合成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310075955.9A CN103177473B (zh) | 2013-03-11 | 2013-03-11 | 一种基于实例的大规模场景合成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103177473A CN103177473A (zh) | 2013-06-26 |
CN103177473B true CN103177473B (zh) | 2015-08-19 |
Family
ID=48637299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310075955.9A Expired - Fee Related CN103177473B (zh) | 2013-03-11 | 2013-03-11 | 一种基于实例的大规模场景合成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103177473B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105957132B (zh) * | 2016-04-21 | 2019-03-08 | 北京大学 | 包含高度复杂绘制元素的三维场景高性能绘制优化方法 |
CN110309612B (zh) * | 2019-07-08 | 2021-07-06 | 西安交通大学 | 基于模糊故障Petri网的动力***故障处理方法 |
CN111582163B (zh) * | 2020-05-07 | 2020-12-25 | 北京理工大学 | 一种大规模人群位置变换方案生成方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101249019A (zh) * | 2008-03-11 | 2008-08-27 | 微创医疗器械(上海)有限公司 | 一种重建人体器官三维表面的方法及*** |
CN102012976A (zh) * | 2010-11-09 | 2011-04-13 | 刘丽 | 基于人工免疫网络的pet分子影像动力学建模方法 |
-
2013
- 2013-03-11 CN CN201310075955.9A patent/CN103177473B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101249019A (zh) * | 2008-03-11 | 2008-08-27 | 微创医疗器械(上海)有限公司 | 一种重建人体器官三维表面的方法及*** |
CN102012976A (zh) * | 2010-11-09 | 2011-04-13 | 刘丽 | 基于人工免疫网络的pet分子影像动力学建模方法 |
Non-Patent Citations (6)
Title |
---|
Discovering structural regularity in 3D geometry;Mark Pauly,et al;《Algorithmen und mathematische Modellierung》;20080831 * |
Example-based model synthesis;Paul Merrell;《Proceedings ofthe2007symposium on Interactive3D Graphics and Games》;20071230;105-112 * |
Procedural modeling of buildings;Pauly M,et al;《ACM Transaction of Graphics》;20070731;第26卷(第3期);614-623 * |
SmartBoxes for Interactive Urban Reconstruction;Liangliang Nan,et al;《ACM Transactions on Graphics》;20100731;第29卷(第4期);article 93 * |
刘凯,等.采用草绘轮廓的3维人脸建模方法.《中国图像图形学报》.2011,第16卷(第6期),1102-1110. * |
宋沫飞,等.采用多幅草图的正交多面体模型生成方法.《计算机辅助设计与图形学学报》.2012,第24卷(第1期),50-59. * |
Also Published As
Publication number | Publication date |
---|---|
CN103177473A (zh) | 2013-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114186687B (zh) | 一种面向神经网络模型计算的中间表示方法和装置 | |
CN107016175B (zh) | 适用神经网络处理器的自动化设计方法、装置及优化方法 | |
CN107103113B (zh) | 面向神经网络处理器的自动化设计方法、装置及优化方法 | |
CN101807308B (zh) | 三维模型分割装置和方法 | |
Frishman et al. | Multi-level graph layout on the GPU | |
CN102360494B (zh) | 一种多前景目标交互式图像分割方法 | |
CN103714577B (zh) | 一种适用于带纹理模型的三维模型简化方法 | |
Acharya et al. | A parallel and memory efficient algorithm for constructing the contour tree | |
CN103400372B (zh) | 一种基于Reeb图描述的三维拓扑信息提取方法 | |
CN103065354A (zh) | 点云优化方法及其装置 | |
CN102521854B (zh) | 一种适用于二维流场的并行流线放置方法 | |
CN109190461B (zh) | 一种基于手势关键点的动态手势识别方法和*** | |
Gan et al. | Research on role modeling and behavior control of virtual reality animation interactive system in Internet of Things | |
CN106875320A (zh) | 云环境下船舶航行数据的高效可视分析方法 | |
CN107665269A (zh) | 基于地理信息的快速人群疏散仿真方法和装置 | |
CN103177473B (zh) | 一种基于实例的大规模场景合成方法 | |
CN103440377B (zh) | 基于改进并行de算法的飞行器气动外形优化设计方法 | |
CN102193837A (zh) | 一种基于前线的包围盒碰撞检测方法 | |
CN110853120B (zh) | 基于分割绘图法的网络布局方法、***及介质 | |
Yuan et al. | Research on simulation of 3D human animation vision technology based on an enhanced machine learning algorithm | |
CN117193988A (zh) | 一种晶圆级架构ai加速芯片的任务调度方法及介质 | |
CN112116305A (zh) | 一种用于机器学习的电网概率可视化模型构建方法和*** | |
Tugurlan | Fast marching methods-parallel implementation and analysis | |
Huang et al. | A matching algorithm between precursory 3D process model and 2D working procedure drawing based on subgraph isomorphism | |
CN103793745B (zh) | 一种分布式粒子群优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150819 Termination date: 20180311 |
|
CF01 | Termination of patent right due to non-payment of annual fee |