
三维物体的近似最小体积包围盒快速求解方法.docx
2页三维物体的近似最小体积包围盒快速求解方法专利名称:三维物体的近似最小体积包围盒快速求解方法技术领域:本发明提供一种三维物体的近似最小体积包围盒快速求解方法,属于计算机辅助设计领域背景技术:三维物体的最小包围盒在铸造模具分型、产品包装设计、碰撞检测、图像处理和模式识别等领域具有广泛的应用目前,常见的三维物体最小包围盒求解算法主要包括O’ Rourke算法、投影旋转法和主元分析法三类 1)O’ Rourke算法是一种基于三维物体凸包的最小包围盒求解算法,该算法能够准确 求解物体的最小包围盒,时间复杂度为0(n3); 2)投影旋转法基于“长方体的三个互相垂直面,当且仅当其面积最小时,长方体体积最小”,将三维物体的轴向包围盒分别围绕三个坐标轴旋转,确定各面最小投影矩形获得最小包围盒,但是确定某个最小面积的矩形后,包围盒围绕其它轴旋转时会改变已确定投影矩形的边长,使矩形的面积改变,所以不能同时满足包围盒三个互相垂直面的面积最小条件; 3)主元分析法利用协方差矩阵确定散乱点云的主元向量,将主元向量作为坐标轴求解散乱点云的轴向包围盒,但当散乱点云各维相关度较小时,该方法难以得到最优的主元向量,造成较大的误差。
综上所述,目前尚缺乏一种能够兼顾求解效率与精度的三维物体最小体积包围盒求解方法发明内容本发明的目的在于提供一种基于遗传算法的三维物体近似最小体积包围盒的快速求解方法,能够有效提高三维物体最小包围盒的求解效率并能保证包围盒精度符合工程需求,技术方案如下一种三维物体的近似最小体积包围盒快速求解方法,其特征在于包含以下步骤I)对三维物体进行扫描采样获取表面点云数据;2)求解表面点云数据的凸包并计算凸包所对应的高斯球;3)确定遗传算法的目标函数,方法是基于O’ Rourke算法在求解三维物体凸包的最小包围盒问题上的精确性特点,选取O’Rourke算法中包围盒的体积函数Hejr ek)作为目标函数,其中~和4表示凸包的任意两条边,J'和々为[l,n]之间的整数,η为凸包的边数;4)确定个体的编码与解码方式,方法是由目标函数ek)中的决策变量可知需要对凸包的任意两条边进行组合编码,采用符号编码的方式,凸包的η条边^ ^…,4所对应的编码符号分别用而,m2,…,%表示,个体编码后的基因型为(^.,%),解码后所对应的表现型为4),且为了能够快速定位个体基因型与表现型之间的对应关系,以编码符号为键、其所对应的边为键值建立哈希表,存储两者之间的关系;5)确定适应度函数,方法是由于个体对应的包围盒体积值越小,其适应度应越大,故将适应度函数设为, s為),Viei為)具体实施例方式实施案例快速求解兔子模型的近似最小体积包围盒,下面结合附图对本发明作进一步说明。
图I是本发明三维物体的近似最小体积包围盒快速求解方法的程序实现流程图,三维物体的近似最小体积包围盒快速求解程序包含凸包及其高斯球计算程序1,O’ Rourke包围盒体积计算预定义程序2以及利用标准遗传算法求解最小体积包围盒程序3在凸包及其高斯球计算程序I中,预先对三维物体进行扫描采样得到其表面点云数据,然后对点云数据进行求解计算其凸包P,最后根据凸包与高斯球之间的映射关系计算凸包对应的高斯球S图2为本实施例所使用的三维实体模型一兔子模型,它的表面由大量复杂曲面拼接组合而成,实施例就是求解该兔子模型的近似最小体积包围盒图3为利用三维激光扫描仪对兔子模型表面进行扫描采样获得的兔子模型表面点云数据,数据点个数为34834个,输出的文件格式为ASC格式,即文件中每一行记录一个点的三维坐标值(H ^)图4为利用Qhull程序计算求解得到的兔子模型三维散乱点云的凸包,Qhull(WWW. qhull. org)是一款用于计算任意维数点集的凸包、Delaunay三角剖分以及Voronoi图等的开源程序软件,本实施例即是使用Qhull来计算求解兔子模型三维散乱点云的凸包图5为凸包所对应的高斯球,对于给定凸包的多面体结构P,计算其高斯球S的时间复杂度是线性的,具体方法如下①计算P中各个面的单位法向量,将法向量起点平移到高斯球的球心,法向量终点为该面在高斯球S上的映像点将各对相邻面在高斯球上的映像点使用大圆圆弧连接起来。
为达到线性时间复杂度的目的,在步骤②中必须能够以线性的复杂度来判断P上的相邻面,否则高斯球求解复杂度将变为Oifl2、本实施例在利用Qhull构建凸包多面体结构P的过程中,利用Qhull提供的Fn参数,可输出邻接面信息,从而实现以线性的复杂度来判断P上的相邻面在O’ Rourke包围盒体积计算预定义程序2中,基于O’ Rourke算法对三维物体最小包围盒计算精确性特点,选用O’ Rourke算法中包围盒的体积函数K(ey ek)计算凸包包围盒的体积,其中和q表示凸包的边,J和左为[l,n]之间的整数,η为凸包的边数并且将O’ Rourke体积函数ek)作为遗传算法的目标函数,并由此确定遗传算法中适应度函数为ΓC为当前代中所有个体目标函数的体积最大值·根据目标函数的形式确定采用符号编码的方式对凸包的任意两条边组合进行编码,凸包的η条边&, &所对应的编码符号分别设为m2,…,,个体编码后的基因型为~),解码后所对应的表现型为ej,且为了能够快速查找编码符号所对应的边,采用哈希表存储两者的对应关系,键为编码符号,键值为其指向相应边的指针,其存储关系不意图如图6所7]^在利用标准遗传算法求解最小体积包围盒程序3中,具体的求解步骤为①初始化种群,设置进化代数计数器t=0,最大进化代数T=50,群体规模的大小#=100,通过随机方法产生个体直到满足种群规模将其作为初始种群P(O);②个体评价,计算种群P (t)中个体的适应度ek)并选取得到种群最优个体及其体积值^若t=0则初始化全局最优个体及其体积值否则比较^和全局最小体积值如果K>3,则设当前种群P (O)中最优个体的体积值为r = 2973. 652cm3,令全局最小体积值匕=2973. 652cm3 ; 采用比例选择算子进行选择运算 设定交叉概率凡=O. 8,采用单点交叉算子进行交叉运算④设定变异概率凡=O. 01,采用均匀变异算子进行变异运算,种群P(t)经过选择、交叉和变异之后产生新一代种群P (t+1) 6终止条件判断,若t ( T,则t=t+l,转到步骤②,否则输出全局最优个体及其体积值,解码求解得到兔子模型近似最小体积包围盒。
图7即为求解得到的兔子模型的最小体积包围盒,根据求得的兔子模型最小包围盒的边界数据,计算出兔子模型近似最小体积包围盒的外形尺寸,其长、宽、高分别为11.28cm, 12. 55cm, 16. 95cm,体积为 2399. 510cm3其它三维物体的近似最小体积包围盒的求解方法同上权利要求1. 一种三维物体的近似最小体积包围盒快速求解方法,其特征在于包含以下步骤1)对三维物体进行扫描采样获取表面点云数据;2)求解表面点云数据的凸包并计算凸包所对应的高斯球;3)确定遗传算法的目标函数,方法是基于O’ Rourke算法在求解三维物体凸包的最小包围盒问题上的精确性特点,选取O’ Rourke算法中包围盒的体积函数Hejr ek)作为目标函数,其中~和4表示凸包的任意两条边,J'和々为[l,n]之间的整数,η为凸包的边数;4)确定个体的编码与解码方式,方法是由目标函数ek)中的决策变量可知需要对凸包的任意两条边进行组合编码,采用符号编码的方式,凸包的η条边^ ^…,4所对应的编码符号分别用而,m2,…,%表示,个体编码后的基因型为(^.,%),解码后所对应的表现型为4),且为了能够快速定位个体基因型与表现型之间的对应关系,以编码符号为键、其所对应的边为键值建立哈希表,存储两者之间的关系;5)确定适应度函数,方法是由于个体对应的包围盒体积值越小,其适应度应越大,故将适应度函数设为 t 、 fC—F(e,.,&k) , V(e,-,ek)全文摘要本发明提供一种三维物体的近似最小体积包围盒快速求解方法,其特征在于对三维物体进行扫描采样获取表面点云数据,然后对物体表面点云数据进行计算求解其三维凸包及其对应的高斯球,选取O’Rourke算法中包围盒的体积函数V(ej,ek)作为遗传算法的目标函数,并根据该目标函数确定遗传算法的适应度函数以及个体的编码和解码方式,进而利用标准遗传算法求解三维物体凸包的近似最小体积包围盒。
采用本方法能够有效提高三维物体的最小体积包围盒的求解效率并保证包围盒精度符合工程需求。












