自适应可视外壳生成方法及装置制造方法
【专利摘要】本发明公开了一种自适应可视外壳生成方法及装置,涉及图像三维重建【技术领域】,本发明对特定的节点进行细分,从而实现了重建模型的自适应细分,避免了将所有节点都分到同一层次,大幅提高了重建精度。
【专利说明】自适应可视外壳生成方法及装置
【技术领域】
[0001]本发明涉及图像三维重建【技术领域】,特别涉及一种自适应可视外壳生成方法及装置。
【背景技术】
[0002]三维重建是指对三维物体建立适合计算机表示和处理的数学模型,是在计算机环境下对其进行处理、操作和分析其性质的基础,也是在计算机中建立表达客观世界的虚拟现实的关键技术。
[0003]现有的三维重建方法产生了非常多的不必要的面片,而且面片的质量很差。一般来说,得到的网格需要通过正则化、优化和简化来得到比较合适的质量同时保持特征和精度,当使用八叉树来进行加速计算的时候,八叉树的最终可用叶子节点都必须在同一个层次,对内存给予了很大的限制,很难表现出重建物体的细节特征。
【发明内容】
[0004](一)要解决的技术问题
[0005]本发明要解决的技术问题是:如何对重建模型进行自适应细分,避免将所有节点都分到同一层次,造成由于细分不够而导致的模型精度缺失或细分层次过高导致的表面网格数据庞大。
[0006](二)技术方案
[0007]为解决上述技术问题,本发明提供了一种自适应可视外壳生成方法,所述方法包括以下步骤:
[0008]S1:获取N幅待重建的二值图像及标定参数,将所述二值图像转换为积分图,并根据所述二值图像及标定参数建立三维空间包围盒,所述二值图像区分前景部分和背景部分;
[0009]S2:将所述三维空间包围盒作为根节点,根据所述积分图进行M次的八叉树空间细分,所述M为不小于O的整数;
[0010]S3:将空间细分后得到的节点进行判断,若当前节点所包含的待重建物体体积小于阈值或所述当前节点所包含的待重建物体表面是平滑的,则不对所述当前节点进行八叉树空间细分,否则对所述当前节点进行八叉树空间细分,重复执行步骤S3,直至执行S3的次数达到T次,所述T为不小于I的整数;
[0011]S4:对步骤S3得到的叶子节点的顶点进行内外状态判断,并根据所述内外状态对所述叶子节点的各个顶点进行赋值,使用所述叶子节点的各个顶点的值给其父节点以及祖先节点对应的顶点进行赋值,根据所述叶子节点的各个顶点的值确定位于叶子节点上的所有线段,对所述叶子节点进行遍历,若当前叶子节点的某一个面上具有线段存在、邻居节点在该面上没有线段存在,并且该邻居节点的细分层数小于当前叶子节点,则以该邻居节点为根节点进行八叉树空间细分,直至该邻居节点与所述当前叶子节点的细分层数相同,再对所述邻居节点细分获得的叶子节点的内外状态进行判断,并根据所述内外状态对所述叶子节点的各个顶点进行赋值,使用所述叶子节点的各个顶点的值给其父节点以及祖先节点对应的顶点进行赋值,以获得所有节点的各个顶点的值;
[0012]S5:根据所述叶子节点的各个顶点的值寻找出等值点;
[0013]S6:根据所述等值点及所有节点的各个顶点的值确定连接线段,再根据所述等值点及等值点的连接线段形成封闭网格,以实现外壳生成。
[0014]其中,步骤SI中,建立所述三维空间包围盒包括:
[0015]SlOl:根据所述待重建的二值图像提取前景部分的矩形包围盒,第i幅二值图像对应的矩形包围盒的X方向的最小值和最大值分别为1^_和rixmax,所述第i幅二值图像对应的矩形包围盒的y方向的最小值和最大值分别为1^_和riymax,i=l,…,N ;
[0016]S102:对所有二值图像对应的不等式组联立求解,以获得所述待重建物体在三维空间X,Y, Z三个方向的最大值和最小值;
[0017]S103:根据所述X,Y, Z三个方向的最大值和最小值建立所述三维空间包围盒;
[0018]其中,所述不等式组包括以下四个公式:
[0019]
【权利要求】
1.一种自适应可视外壳生成方法,其特征在于,所述方法包括以下步骤: S1:获取N幅待重建的二值图像及标定参数,将所述二值图像转换为积分图,并根据所述二值图像及标定参数建立三维空间包围盒,所述二值图像区分前景部分和背景部分; S2:将所述三维空间包围盒作为根节点,根据所述积分图进行M次的八叉树空间细分,所述M为不小于O的整数; S3:将空间细分后得到的节点进行判断,若当前节点所包含的待重建物体体积小于阈值或所述当前节点所包含的待重建物体表面是平滑的,则不对所述当前节点进行八叉树空间细分,否则对所述当前节点进行八叉树空间细分,重复执行步骤S3,直至执行S3的次数达到T次,所述T为不小于I的整数; 54:对步骤S3得到的叶子节点的顶点进行内外状态判断,并根据所述内外状态对所述叶子节点的各个顶点进行赋值,使用所述叶子节点的各个顶点的值给其父节点以及祖先节点对应的顶点进行赋值,根据所述叶子节点的各个顶点的值确定位于叶子节点上的所有线段,对所述叶子节点进行遍历,若当前叶子节点的某一个面上具有线段存在、邻居节点在该面上没有线段存在,并且该邻居节点的细分层数小于当前叶子节点,则以该邻居节点为根节点进行八叉树空间细分,直至该邻居节点与所述当前叶子节点的细分层数相同,再对所述邻居节点细分获得的叶子节点的内外状态进行判断,并根据所述内外状态对所述叶子节点的各个顶点进行赋值,使用所述叶子节点的各个顶点的值给其父节点以及祖先节点对应的顶点进行赋值,以获得所有节点的各个顶点的值; 55:根据所述叶子节点的各个顶点的值寻找出等值点; 56:根据所述等值点及所有节点的各个顶点的值确定连接线段,再根据所述等值点及等值点的连接线段形成封闭网格,以实现外壳生成。
2.如权利要求1所述的方法,其特征在于,步骤SI中,建立所述三维空间包围盒包括: 5101:根据所述待重建的二值图像提取前景部分的矩形包围盒,第i幅二值图像对应的矩形包围盒的X方向的最小值和最大值分别为rixmin和rixmax,所述第i幅二值图像对应的矩形包围盒的I方向的最小值和最大值分别为riymiI^P riymax,i=l,…,N ; 5102:对所有二值图像对应的不等式组联立求解,以获得所述待重建物体在三维空间X,Y, Z三个方向的最大值和最小值; 5103:根据所述X,Y, Z三个方向的最大值和最小值建立所述三维空间包围盒; 其中,所述不等式组包括以下四个公式:
(Poo-P2o*rixmin) *X+ (P01-P21*ri?in) *Y+ (p02-p21*rixniin) *Ζ≥ P23*rixmin-p03
(Pio-P2o*riymin) *X+ (P11-P21^riymin) *Y+ (p12-p21*riymin) *Z ≥P23*riymin-p13
(Poo-P2o*rixmax) *X+ (P01_P21*ri腿x) *Y+ (p02_p21*ri腿x) *Z ≥ P23*ri皿x-p03
(Pio-P2o*riymax) *X+ (P11-P21^riymax) *Y+ (p12-p21*riymax) *Z ≥P23*rtymax-p13
其中,
3.如权利要求1所述的方法,其特征在于,所述根节点具有一个活动链表,所述活动链表中包括所述积分图的图像标号,所述二值图像中背景部分设为O,前景部分设为I ; 步骤S2包括: 5201:将所述三维空间包围盒作为根节点,并将根节点作为父节点; 5202:判断所述M是否为O,若否,则将所述父节点等分成八个长方体包围盒,每个长方体包围盒均代表一个子节点,每个子节点继承所述父节点的活动链表,若是直接执行步骤S3 ; 5203:遍历步骤S202获得的子节点,将当前子节点的八个顶点投影至所述当前子节点的活动链表中对应的积分图中,求取所述当前子节点在各积分图内的投影矩形包围盒的面积和投影矩形包围盒的局部积分图值,若满足下面两种情况,则直接处理下一子节点,第一种情况:各积分图的投影矩形包围盒的局部积分值至少一个为O ;第二种情况:各积分图的投影矩形包围盒的面积与局部积分值与投影矩形包围盒的局部积分图值均相等; 若不满足上面两种情况,则将所述当前子节点标记为灰色节点,若所述当前子节点在某积分图的投影矩形包围盒的面积和投影矩形包围盒的局部积分图值相等,则将该积分图的图像标号从所述当前子节点的活动链表中移除; 5204:将标记为灰色节点的子节点作为新的父节点,将所述M减1,并返回步骤S202。
4.如权利要求3所述的方法,其特征在于,步骤S3包括: 5301:在每个父节点中均匀采样X个三维点,判断每个父节点所采样出的三维点是否位于所述待重建物体表面,所述X为不小于8的整数; 5302:遍历步骤S301中的每个父节点,将当前父节点位于所述待重建物体表面的三维点进行主成分分析,以获得位于新三维坐标系中的三个特征值,所述三个特征值为位于所述待重建物体表面的三维点在新三维坐标系中三个轴上的投影长度,将其分别记为Axis1, Axis2, Axis,且 Axis1 ^ Axis2 ^ Axis3 ; 若Axis1 < δ i,则认为所述当前父节点所包含的待重建物体体积小于阈值,则直接处理下一父节点;
5.如权利要求4所述的方法,其特征在于,步骤S4包括: S401:对步骤S3得到的叶子节点的顶点进行内外状态判断,并若某个顶点的投影点在一幅二值图像中处于背景部分,则将该顶点赋值为O,若某个顶点的所有投影点均处于前景部分,则将该顶点赋值为1,使用所述叶子节点的各个顶点的值给其父节点以及祖先节点对应的顶点进行赋值; S402:根据所述叶子节点的各个顶点的值确定位于叶子节点上的所有线段,对所述叶子节点进行遍历,若当前叶子节点的某一个面上具有线段存在、邻居节点在该面上没有线段存在,并且该邻居节点的细分层数小于当前叶子节点,则以该邻居节点为根节点进行八叉树空间细分,直至该邻居节点与所述当前叶子节点的细分层数相同; S403:对所述邻居节点细分获得的叶子节点的内外状态进行判断,若某个顶点的投影点在一幅二值图像中处于背景部分,则将该顶点赋值为O,若某个顶点的所有投影点均处于前景部分,则将该顶点赋值为1,使用所述邻居节点细分获得的叶子节点的各个顶点的值给其父节点以及祖先节点对应的顶点进行赋值,以获得所有节点的各个顶点的值。
6.如权利要求5所述的方法,其特征在于,步骤S5包括: S501:若所述当前叶子节点具有的12条边中任何一条边的两个顶点的取值不同,则认为该边上具有等值点; S502:将判断为具有等值点的边在所述当前叶子节点的活动链表中的二值图像进行投影,以形成投影线段,寻找所述投影线段与所述二值图像的前景部分边界的交点,并记录所述投影线段处于所述二值图像的背景部分的长度与投影线段的比例; S503:根据所述比例最大的二值图像所对应的交点计算所述等值点的坐标。
7.—种自适应可视外壳生成装置,其特征在于,所述装置包括: 获取建立模块,用于获取N幅待重建的二值图像及标定参数,将所述二值图像转换为积分图,并根据所述二值图像及标定参数建立三维空间包围盒,所述二值图像区分前景部分和背景部分; 规则细分模块,用于将所述三维空间包围盒作为根节点,根据所述积分图进行M次的八叉树空间细分,所述M为不小于O的整数; 自适应细分模块,用于将空间细分后得到的节点进行判断,若当前节点所包含的待重建物体体积小于阈值或所述当前节点所包含的待重建物体表面是平滑的,则不对所述当前节点进行八叉树空间细分,否则对所述当前节点进行八叉树空间细分,重复执行步骤S3,直至执行S3的次数达到T次,所述T为不小于I的整数; 赋值细分模块,用于对所述自适应细分模块得到的叶子节点的顶点进行内外状态判断,并根据所述内外状态对所述叶子节点的各个顶点进行赋值,使用所述叶子节点的各个顶点的值给其父节点以及祖先节点对应的顶点进行赋值,根据所述叶子节点的各个顶点的值确定位于叶子节点上的所有线段,对所述叶子节点进行遍历,若当前叶子节点的某一个面上具有线段存在、邻居节点在该面上没有线段存在,并且该邻居节点的细分层数小于当前叶子节点,则以该邻居节点为根节点进行八叉树空间细分,直至该邻居节点与所述当前叶子节点的细分层数相同,再对所述邻居节点细分获得的叶子节点的内外状态进行判断,并根据所述内外状态对所述叶子节点的各个顶点进行赋值,使用所述叶子节点的各个顶点的值给其父节点以及祖先节点对应的顶点进行赋值,以获得所有节点的各个顶点的值; 等值点寻找模块,用于根据所述叶子节点的各个顶点的值寻找出等值点; 封闭网络形成模块,用于根据所述等值点及所有节点的各个顶点的值确定连接线段,再根据所述等值点及等值点的连接线段形成封闭网格,以实现外壳生成。
【文档编号】G06T17/00GK103679806SQ201310704742
【公开日】2014年3月26日 申请日期:2013年12月19日 优先权日:2013年12月19日
【发明者】杜凌霄, 张铭和, 伍忠 申请人:北京北科光大信息技术股份有限公司