发明内容
本发明实施例提供一种三维模型构建方法及装置,以解决现有方法中构建的三维模型不准确的技术问题。
本发明实施例提供一种三维模型构建方法,其包括:
获取待重建对象的图像数据;
基于所述图像数据,确定所述待重建对象对应的三维模型空间;
根据预设的模型重建精度划分所述三维模型空间,得到多个三维子空间;
计算所述三维子空间的角点坐标对应的有向距离值;
基于各角点坐标对应的有向距离值,在所述三维模型空间中形成所述待重建对象与所述三维子空间相交的至少一个三角面;
基于形成的三角面,构建所述待重建对象的三维模型。
在本发明所述的三维模型构建方法中,所述计算所述三维子空间的角点坐标对应的有向距离值,包括:
获取所述待重建对象在预设相机下的三维坐标;
根据所述三维坐标以及预设对象掩膜,计算所述三维子空间的角点坐标对应的有向距离值。
在本发明所述的三维模型构建方法中,所述根据所述三维坐标以及预设对象掩膜,计算所述三维子空间的角点坐标对应的有向距离值,包括:
确定预设相机的焦距和主点;
根据所述三维坐标、预设相机的焦距和主点,计算所述三维子空间的角点在预设相机平面内的二维坐标;
根据所述二维坐标以及预设相机平面所有像素的有向距离值,确定所述三维子空间的角点坐标在预设相机平面内的有向距离值。
在本发明所述的三维模型构建方法中,所述根据所述二维坐标以及预设相机平面所有像素的有向距离值,确定所述三维子空间的角点坐标对应的有向距离值,包括:
根据所述二维坐标以及预设相机平面所有像素的有向距离值,得到所述三维子空间的角点坐标在每个预设相机平面内的平面有向距离值;
基于所述平面有向距离值,确定所述三维子空间的角点坐标对应的有向距离值。
在本发明所述的三维模型构建方法中,所述获取所述待重建对象在预设相机下的三维坐标,包括:
确定所述三维子空间的角点对应的参考三维坐标;
对所述参考三维坐标进行转置,得到所述三维子空间的角点在预设相机下的三维坐标。
在本发明所述的三维模型构建方法中,所述根据预设的模型重建精度划分所述三维模型空间,得到多个三维子空间,包括:
获取预设的模型重建精度;
对所述三维模型空间进行划分,得到与所述模型重建精度对应数量的三维子空间。
在本发明所述的三维模型构建方法中,所述基于各角点坐标对应的有向距离值,在所述三维模型空间中形成所述待重建对象与所述三维子空间相交的至少一个三角面,包括:
基于各角点坐标对应的有向距离值,确定每个三维子空间与所述待重建对象相交的情况;
根据每个三维子空间与所述待重建对象相交的情况,在所述三维模型空间中形成所述待重建对象与所述三维子空间相交的至少一个三角面。
本发明实施例还提供一种三维模型构建装置,其包括:
获取模块,用于获取待重建对象的图像数据;
确定模块,用于基于所述图像数据,确定所述待重建对象对应的三维模型空间;
划分模块,用于根据预设的模型重建精度划分所述三维模型空间,得到多个三维子空间;
计算模块,用于计算所述三维子空间的角点坐标对应的有向距离值;
形成模块,用于基于各角点坐标对应的有向距离值,在所述三维模型空间中形成所述待重建对象与所述三维子空间相交的至少一个三角面;
构建模块基于形成的三角面,构建所述待重建对象的三维模型。
在本发明所述的三维模型构建装置中,所述计算模块包括:
获取单元,用于获取所述待重建对象在预设相机下的三维坐标;
计算单元,用于根据所述三维坐标以及预设对象掩膜,计算所述三维子空间的角点坐标对应的有向距离值。
本发明实施例还提供一种存储介质,其内存储有处理器可执行指令,所述指令由一个或一个以上处理器加载,以执行上述三维模型构建方法。
相较于现有技术,本发明的三维模型构建方法及三维模型构建装置根据预设的模型重建精度将三维模型空间划分成多个三维子空间,并在三维模型空间中形成待重建对象与三维子空间相交的至少一个三角面,以此构建三维模型,可见,在构建三维模型时,利用有向距离值确定待重建对象与三维子空间之间相交的情况,确定待重建对象各部分的形状,因此,不会因为原始数据特征的问题,导致构建的三维模型缺失待重建对象中的某些信息;有效解决现有方法中构建的三维模型不准确的技术问题。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。
在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行之作业的步骤及符号来说明,除非另有述明。因此,其将可了解到这些步骤及操作,其中有数次提到为由计算机执行,包括了由代表了以一结构化型式中的数据之电子信号的计算机处理单元所操纵。此操纵转换该数据或将其维持在该计算机之内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机之运作。该数据所维持的数据结构为该内存之实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
本发明的三维模型构建方法及传输装置可设置在任何的电子设备中,用于获取待重建对象的图像数据,基于所述图像数据,确定待重建对象对应的三维模型空间,根据预设的模型重建精度划分三维模型空间,得到多个三维子空间,计算三维子空间的角点坐标对应的有向距离值,基于各角点坐标对应的有向距离值,在三维模型空间中形成待重建对象与三维子空间相交的至少一个三角面,基于形成的三角面,构建待重建对象的三维模型。该电子设备包括但不限于可穿戴设备、头戴设备、医疗健康平台、个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。该三维模型构建装置优选为进行三维模型数据处理的图像处理终端或服务器,其基于图像数据,确定待重建对象对应的三维模型空间,并根据预设的模型重建精度划分三维模型空间,得到多个三维子空间,随后计算三维子空间的角点坐标对应的有向距离值,进而基于各角点坐标对应的有向距离值,在三维模型空间中形成待重建对象与三维子空间相交的至少一个三角面,最终得到三维模型,其利用有向距离值确定待重建对象与三维子空间之间相交的情况,确定待重建对象各部分的形状,因此,不会因为原始数据特征的问题,导致构建的三维模型缺失待重建对象中的某些信息,有效提高了构建得到的三维模型的准确性。
目前,常用的三维模型构建方法是基于双目视觉算法进行三维模型构建的,双目视觉算法:双目视觉是模拟人类视觉原理,使用计算机被动感知距离的方法。从两个或者多个点观察一个物体,获取这个同样物体在不同视角下的图像,根据图像之间像素的位移和匹配关系,通过三角测量原理计算出像素之间的偏移来获取物体的三维信息。得到了物体的景深信息,就可以计算出物体与相机之间的实际距离,物体三维大小,两点之间实际距离。
请参阅图1,对于图1中S区域的物体,采用双目视觉算法构建其三维模型的效果并不佳,其原因为:双目算法的核心原理是判断相同视觉特征在左、右眼两张图像上的位移,而相同特征的计算方式又是基于一个小图像块的整体信息,因此过细的物体在“图像块”中的占比会过小,从而受到背景图像的干扰,从而难以判断为相同物体,进而难以正确的计算三维信息。
此外,双目视觉算法也难以重建反光物体。由于双目算法的核心原理是判断相同视觉特征在左、右眼两张图像上的位移,但是由于反光物体在不同角度的反光不同,因此难以找到相同的特征,或是容易找到错误的匹配。
针对一些较细的物体难以被三维重建出来,如高尔夫球杆或跳绳等,本发明的核心是仅使用前后景分离后的二维掩膜就能重建物体的三维模型,从而很好的三维重建了传统重建方法无法实现的细小物体重建,进而提高构建的三维模型的精度。
请参照图2,图2为本发明的三维模型构建方法的一实施例的流程图。本实施例的三维模型构建方法可使用上述的电子设备进行实施,本实施例的三维模型构建方法包括:
步骤101、获取待重建对象的图像数据;
步骤102、基于图像数据,确定待重建对象对应的三维模型空间;
步骤103、根据预设的模型重建精度划分三维模型空间,得到多个三维子空间;
步骤104、计算三维子空间的角点坐标对应的有向距离值;
步骤105、基于各角点坐标对应的有向距离值,在三维模型空间中形成待重建对象与三维子空间相交的至少一个三角面;
步骤106、基于形成的三角面,构建待重建对象的三维模型。
下面详细说明本实施例的三维模型构建方法。
在步骤101中,为了后续进行三维模型的重建,因此,需要采集待重建对象多个角度的图像,以确保后续构建的三维模型的准确性,其中,可以通过移动图像采集装置围绕待重建对象的整体或局部进行连续拍摄,比如,该连续拍摄可以是按照预设频率进行照片拍摄。可选地,在一些实施例中,还可以是通过设定多个图像采集装置同时获取待重建对象的图像数据。待重建对象可以是人、动物、物品、植物和/或建筑,具体根据实际情况而定。可选的,可以采集待重建对象的彩色图像和/或深度图像,需要说明的是,彩色图像是红绿蓝格式的彩色图像。深度图像中的每个像素点存储有深度摄像头到场景中各个真实点的距离(深度)值。
在步骤102中,在此,需要引出包围盒的概念,本发明将相机包围的空间定义为一个包围盒(即三维模型空间),包围盒算法是一种求离散点集最优包围空间的方法,基本思想就是用体积稍大且特性简单的几何体(包围盒)来近似地代替复杂的集合对象。
具体的,可以根据采集的图像数据,确定相机的图像采集区域(三维模型空间);当相机的数量为1个时,则确定相机在每个采集时刻对应的位置,由此确定相机的图像采集区域;当相机的数量为多个时,根据各相机的采集位置,确定相机的图像采集区域。
在步骤103中,模型重建精度可以是由运维人员、服务器或终端预先设置的,具体根据实际情况而定,其中,不同的模型重建精度对应不同的空间划分策略,模型重建精度可以理解为三维模型的图像分辨率,图像分辨率指图像中存储的信息量,是每英寸图像内有多少个像素点,分辨率的单位为PPI(Pixels Per Inch),通常叫做像素每英寸,比如,100PPI对应的空间划分策略为将三维模型空间划分为8个三维子空间,50PPI对应的空间划分策略为将三维模型空间划分为3个三维子空间等等,具体的对应关系可以根据实际情况进行调整,在此不作限制,即,步骤103具体可以包括:
(11)获取预设的模型重建精度;
(12)对三维模型空间进行划分,得到与模型重建精度对应数量的三维子空间。
可以理解的是,模型重建精度越高,所花费的开销则越高(如占用的内存以及模型重建的时间)等等。可选的,在一些实施例中,本实施例提供的三维模型构建方法采用空间八叉树算法将三维模型空间划分为多个三维子空间。
空间八叉树算法是一个空间非均匀网格剖分算法,该算法将含有整个场景的空间立方体按三个方向分割成八个子立方体网格,组织成一棵八叉树。按照限定的深度递归分割,每次平均的分成8份,形成了八叉树,每个立方体空间成为一个节点。然后把各种对象按所在位置记录到叶节点中,形成索引表,上述剖分过程直至八叉树每一个叶子节点所含面片数均小于给定的阈值为止。
请参阅图3,假设三维模型空间(即包围盒)为一个正方体空间,其边长为a,以该正
方体空间的中心为坐标(0,0,0),A点坐标为
,B点坐标为
,根据空间八叉树算法对该包围盒进行递归划分,假设递归深度为8,那
么最小的三维子空间对应的边长则为
,由此,可以确定每个最小三维子空间对应的角
点坐标。
在步骤104中,首先介绍有向距离场(Signed Distance Field,SDF)的概念,SDF是由到(多边形模型)物体表面最近距离的采样网格。作为惯例,使用负值来表示物体内部,使用正值表示物体外部。具体的,请参阅图4,在本实施例中,采用蒙版(又称掩膜)的方式,计算三维子空间的角点坐标对应的有向距离值,即,步骤104具体可以包括:
(21)获取待重建对象在预设相机下的三维坐标;
(22)根据三维坐标以及预设对象掩膜,计算三维子空间的角点坐标对应的有向距离值。
首先,这里创建每个预设相机下的人物模型对应二维图像的每个像素点的有向距离值,具体创建方式可参阅图4,以人物模型为例进行具体说明,在该实施例中,以人物模型的边界作为物体的边界,即,人物模型的边界上每个点对应的有向距离值为0,由此,则可以计算出未知点的有向距离值(即每个相机平面内像素的距离值)。具体的,可以采用下式进行计算
SDF(p) =[ (x’- x)^2 + (y’- y)^2]^(1/2) + SDF(p’) (1)
上述公式中,(x,y)为当前点的二维坐标,(x’,y’)为已经有SDF值的点的坐标,SDF(p)为当前点的SDF值,SDF(p’)为已知点p’的SDF值;在计算过程中,先用扫描线从左上角到右下角扫描,此时只有mask边界的点有SDF值,即为0,然后遍历扫描线上的每个点,基于预设扫描半径进行上下左右的搜索,找到所有有SDF值的点,按照公式1进行计算;之后按照右下至左上再扫描一次即可;需要注意的是,一开始掩膜外的SDF值均为正,掩膜内的SDF值均为负,至此,得到了每个相机平面每个像素的SDF值I(x,y,j)。x,y为像素的横坐标和纵坐标,j为第j个相机。即得到了每个相机平面每个像素的二维坐标与SDF值I(x,y,j)的对应关系。
然后,再根据每个相机的参数、三维坐标以及预设相机平面所有像素的有向距离值,确定三维子空间的角点坐标在预设相机平面内的有向距离值,即,可选的,步骤“根据三维坐标以及预设对象掩膜,计算三维子空间的角点坐标对应的有向距离值”,具体可以包括:
(31)确定预设相机的焦距和主点;
(32)根据三维坐标、预设相机的焦距和主点,计算三维子空间的角点在预设相机平面内的二维坐标;
(33)根据二维坐标以及预设相机平面所有像素的有向距离值,确定三维子空间的角点坐标在预设相机平面内的有向距离值。
在图像处理领域中,坐标系转换就是为了将空间的三维世界坐标系转换至图像处理的二维像素坐标系,常用的坐标系包括世界坐标系、相机坐标系和图像坐标系,世界坐标系(world coordinate)(xw,yw,zw),也称为测量坐标系,是一个三维直角坐标系,以其为基准可以描述相机和待测物体的空间位置;相机坐标系(camera coordinate)(xc,yc,zc),也是一个三维直角坐标系,原点位于镜头光心处,xc、yc轴分别与像面的两边平行,zc轴为镜头光轴,与像平面垂直;图像坐标系(image coordinate)(x,y),是像平面上的二维直角坐标系。图像坐标系的原点为镜头光轴与像平面的交点(也称主点,principal point),它的x轴与相机坐标系的xc轴平行,它的y轴与相机坐标系的yc轴平行。
具体的,在计算得到预设相机平面所有像素的有向距离值后,将最小的三维子空间的图像投影至每个相机的平面上,对于图像中任一个像素点而言,可以基于SDF值确定图像中像素点与相机平面的点之间的对应关系,以便实现对三维对象的三维构建,假设空间包围盒对应8个相机,定义最小的三维子空间为gi,八个角点坐标为Pi(xi, yi, zi)(i∈[1-8]),首先,将三维坐标系下的Pi转换为相机三维坐标系下的坐标,然后,再对转换得到的三维坐标转换为相机二维坐标(图像坐标系下的二维坐标),最后,基于转换得到二维坐标以及预设相机平面所有像素的有向距离值,确定三维子空间的角点坐标在预设相机平面内的有向距离值,即,步骤“根据二维坐标以及预设相机平面所有像素的有向距离值,确定三维子空间的角点坐标在预设相机平面内的有向距离值”,具体可以包括:
(41)根据二维坐标以及预设相机平面所有像素的有向距离值,得到三维子空间的角点坐标在每个预设相机平面内的平面有向距离值;
(42)基于平面有向距离值,确定三维子空间的角点坐标对应的有向距离值。
具体的,将世界三维坐标Pi转换为相机三维坐标pij,Pij = R_jT * (Pi - Tj)其中,R_jT为第j个相机旋转矩阵的转置,Tj为第j个相机的位移向量,即,步骤“获取待重建对象在预设相机下的三维坐标”,具体可以包括:
(51)确定三维子空间的角点对应的参考三维坐标;
(52)对参考三维坐标进行转置,得到三维子空间的角点在预设相机下的三维坐标。
具体的,将相机三维坐标pij转换为相机二维坐标p’i’j’,可以按照以下方式进行转换:
x’ = (x / z)* fx + cx
y’ = (y / z)*fy + cy
其中,fx,fy为相机的焦距,cx, cy是相机的主点,在相机二维坐标下角点坐标为p’i’j’(x’ ,y’),对应的相机三维坐标为pij(x,y,z)。
最后,基于每个相机平面每个像素的二维坐标与SDF值I(x,y,j)的对应关系,得到每个相机的包围盒的各个角点的SDF值,然后取同一角点在不同相机中的SDF值(平面有向距离值)的平均值,作为该角点在三维子空间中的有向距离值(SDF值)。
具体为计算相机包围盒中8个角点对应的SDF值的平均值,由于gi投影到了所有的相机上取值,所以I(gi)的值取决于所有相机SDF值I(g_i_j)的均值
I(g_i) = ∑I(g_i_j) / n
比如,在C1相机上角点a的取值为X1,在C2相机上角点a的取值为X2,在C3相机上角
点a的取值为X3,那么角点a的SDF均值则为
,对于包围盒其余的七个角点,采
用同样的方式计算其对应的取值,由此,得到各角点在三维子空间中对应的有向距离值。
在步骤105中,可以基于各角点坐标对应的有向距离值,确定每个三维子空间与所述待重建对象相交的情况,然后,根据每个三维子空间与待重建对象相交的情况,在所述三维模型空间中形成待重建对象与所述三维子空间相交的至少一个三角面,最后,根据形成的三角面,构建待重建对象的三维模型。
请参阅图5,如果8个角点的值都大于0,或都小于0,说明这个包围盒完全在目标模型的内部或是外部,因此完全不生成任何三角面,如图5第一行第一列的示意图所示,剩下的情况是8个角点有正有负,因此一定和目标模型有交叉,可以归结为14种情况(除去全正全负的1种情况)。
这14种情况可为图5第一行第一列的不相交情况,即不形成任何三角面;
图5第一行第二列的一个角点的有向距离值大于0的情况,即目标模型与该角点对应的三个相邻边均相交,形成与三个相邻边相交的一个三角面;该三角面可将有向距离值大于0的角点与其他角点隔离开。
图5第一行第三列的两个相邻角点的有向距离值大于0的情况,即目标模型与这两个角点单独对应的四个边(连接两个角点的边除外)均相交,即形成与四个边中三个边相交的两个三角面;这两个三角面可将有向距离值大于0的两个相邻角点与其他角点隔离开。
图5第一行第四列的两个不相邻但共面的角点的有向距离值大于0的情况,目标模型与每个角点对应的三个相邻边均相交,形成与三个相邻边相交的两个三角面;该两个三角面可将有向距离值大于0的角点与其他角点隔离开。
图5第一行第五列的三个相邻且共面的角点的有向距离值大于0的情况,目标模型与除了相邻角点之间的边之外所有的相关边均相交,形成与五个边中三个边相交的三个三角面;该三个三角面可将有向距离值大于0的角点与其他角点隔离开。
图5第二行第一列的四个相邻且共面的角点的有向距离值大于0的情况,目标模型与每个角点对应的其中一个相邻边相交,且4个相邻边均不相交,形成与四个边中三个边相交的两个三角面;该两个三角面可将有向距离值大于0的角点与其他角点隔离开。
图5第二行第二列的四个角点(其中三个相邻且共面的角点)的有向距离值大于0的情况,目标模型与不共面的角点的三个邻边均相交,目标模型与共面的三个角点除了相邻角点之间的边之外所有的相关边均相交,形成与八个边中三个边相交的四个三角面;该四个三角面可将有向距离值大于0的角点与其他角点隔离开。
图5第二行第三列的四个不相邻的角点的有向距离值大于0的情况,目标模型与每个角点对应的三个相邻边均相交,形成与三个相邻边相交的四个三角面;该四个三角面可将有向距离值大于0的角点与其他角点隔离开。
图5第二行第四列的四个相邻且共面的角点的有向距离值大于0的情况,目标模型与除了相邻角点之间的边之外所有的相关边均相交,形成与六个边中三个边相交的四个三角面;该四个三角面可将有向距离值大于0的角点与其他角点隔离开。
图5第二行第五列的四个角点(其中三个相邻且共面的角点)的有向距离值大于0的情况,目标模型与除了相邻角点之间的边之外所有的相关边均相交,形成与六个边中三个边相交的四个三角面;该四个三角面可将有向距离值大于0的角点与其他角点隔离开。
图5第三行第一列的两个不相邻的角点的有向距离值大于0的情况,目标模型与每个角点对应的三个相邻边均相交,形成与三个相邻边相交的两个三角面;该两个三角面可将有向距离值大于0的角点与其他角点隔离开。
图5第三行第二列的三个角点的有向距离值大于0的情况,其中两个角点共面且相邻,目标模型与不共面的角点的三个邻边均相交,目标模型与共面的三个角点除了相邻角点之间的边之外所有的相关边均相交,形成与七个边中三个边相交的三个三角面;该三个三角面可将有向距离值大于0的角点与其他角点隔离开。
图5第三行第三列的三个不相邻的角点的有向距离值大于0的情况,目标模型与每个角点对应的三个相邻边均相交,形成与三个相邻边相交的三个三角面;该三个三角面可将有向距离值大于0的角点与其他角点隔离开。
图5第三行第四列的两组相邻的角点(共四个角点)的有向距离值大于0的情况,目标模型与除了相邻角点之间的边之外所有的相关边均相交,形成与八个边中三个边相交的四个三角面;该四个三角面可将有向距离值大于0的角点与其他角点隔离开。
图5第三行第五列的两组相邻的角点(共四个角点)的有向距离值大于0的情况,目标模型与除了相邻角点之间的边之外所有的相关边均相交,形成与六个边中三个边相交的四个三角面;该四个三角面可将有向距离值大于0的角点与其他角点隔离开。
最后,基于形成的三角面的集合即为待重建对象的三维模型,如图6所示。
这样即完成了本实施例的三维模型构建过程。
本实施例的三维模型构建方法基于图像数据,确定待重建对象对应的三维模型空间,并根据预设的模型重建精度划分三维模型空间,得到多个三维子空间,随后计算三维子空间的角点坐标对应的有向距离值,进而基于各角点坐标对应的有向距离值,在三维模型空间中形成待重建对象与三维子空间相交的至少一个三角面,最终得到三维模型,其利用有向距离值确定待重建对象与三维子空间之间相交的情况,确定待重建对象各部分的形状,因此,不会因为原始数据特征的问题,导致构建的三维模型缺失待重建对象中的某些信息,有效提高了构建得到的三维模型的准确性。
本申请实施例还提供一种三维模型构建方法,其中,该三维模型构建装置集成在云端中,请参阅图7,具体流程如下:
步骤201、云端获取待重建对象的图像数据;
步骤202、云端基于图像数据,确定待重建对象对应的三维模型空间;
步骤203、云端根据预设的模型重建精度划分三维模型空间,得到多个三维子空间;
步骤204、云端计算三维子空间的角点坐标对应的有向距离值;
步骤205、云端基于各角点坐标对应的有向距离值,在三维模型空间中形成待重建对象与三维子空间相交的至少一个三角面;
步骤206、云端基于形成的三角面,构建待重建对象的三维模型。
在三维全景虚拟现实的应用场景下,请参阅图8,云端可以获取由相机拍摄的待重建对象的图像数据,然后,云端根据图像展示终端的展示精度划分重建对象的图像数据,接着,云端计算三维子空间的角点坐标对应的有向距离值,最后,云端基于各角点坐标对应的有向距离值,构建待重建对象的三维模型,由此,在提高三维模型精度的同时,减小了终端的开销。
本发明还提供一种三维模型构建装置,请参照图9,图9为本发明的三维模型构建装置的一实施例的结构示意图,本实施例的三维模型构建装置可使用上述的三维模型构建方法进行实施。本实施例的三维模型构建装置30包括获取模块301、确定模块302、划分模块303、计算模块304、形成模块305以及构建模块306,具体如下:
获取模块301,用于获取待重建对象的图像数据。
确定模块302,用于基于图像数据,确定待重建对象对应的三维模型空间。
划分模块303,用于根据预设的模型重建精度划分所述三维模型空间,得到多个三维子空间。
计算模块304,用于计算三维子空间的角点坐标对应的有向距离值。
形成模块305,用于基于各角点坐标对应的有向距离值,在三维模型空间中形成待重建对象与三维子空间相交的至少一个三角面。
构建模块306,用于基于形成的三角面,构建待重建对象的三维模型。
可选地,在一些实施例中, 划分模块303具体可以用于:获取预设的模型重建精度,对三维模型空间进行划分,得到与模型重建精度对应数量的三维子空间。
请参照图10,图10为本发明的三维模型构建装置的一实施例的计算模块的结构示意图,该计算模块304包括获取单元3041和计算单元3042。
其中,获取单元3041用于获取待重建对象在预设相机下的三维坐标;计算单元3042用于根据三维坐标以及预设对象掩膜,计算三维子空间的角点坐标对应的有向距离值。
计算单元3042具体用于:确定预设相机的焦距和主点;根据三维坐标、预设相机的焦距和主点,计算三维子空间的角点在预设相机平面内的二维坐标;根据二维坐标以及预设相机平面所有像素的有向距离值,确定三维子空间的角点坐标在预设相机平面内的有向距离值。
进一步的,计算单元3042具体还用于:根据二维坐标以及预设相机平面所有像素的有向距离值,得到三维子空间的角点坐标在每个预设相机平面内的平面有向距离值;基于平面有向距离值,确定三维子空间的角点坐标对应的有向距离值。
可选地,在一些实施例中,形成模块305具体可以用于:基于各角点坐标对应的有向距离值,确定每个三维子空间与待重建对象相交的情况;根据每个三维子空间与待重建对象相交的情况,在三维模型空间中形成待重建对象与三维子空间相交的至少一个三角面。
这样即完成了本实施例的三维模型构建装置30构建三维模型的过程。
本实施例的三维模型构建装置的具体工作原理与上述三维模型构建方法的实施例中的描述相同或相似,具体请参见上述三维模型构建方法的实施例中的详细描述。
本实施例的三维模型构建装置基于图像数据,确定待重建对象对应的三维模型空间,并根据预设的模型重建精度划分三维模型空间,得到多个三维子空间,随后计算三维子空间的角点坐标对应的有向距离值,进而基于各角点坐标对应的有向距离值,在三维模型空间中形成待重建对象与三维子空间相交的至少一个三角面,最终得到三维模型,其利用有向距离值确定待重建对象与三维子空间之间相交的情况,确定待重建对象各部分的形状,因此,不会因为原始数据特征的问题,导致构建的三维模型缺失待重建对象中的某些信息,有效提高了构建得到的三维模型的准确性。
如本申请所使用的术语“组件”、“模块”、“系统”、“接口”、“进程”等等一般地旨在指计算机相关实体:硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于是运行在处理器上的进程、处理器、对象、可执行应用、执行的线程、程序和/或计算机。通过图示,运行在控制器上的应用和该控制器二者都可以是组件。一个或多个组件可以有在于执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。
图11和随后的讨论提供了对实现本发明所述的视频数据传输装置所在的电子设备的工作环境的简短、概括的描述。图11的工作环境仅仅是适当的工作环境的一个实例并且不旨在建议关于工作环境的用途或功能的范围的任何限制。实例电子设备1012包括但不限于可穿戴设备、头戴设备、医疗健康平台、个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。
尽管没有要求,但是在“计算机可读指令”被一个或多个电子设备执行的通用背景下描述实施例。计算机可读指令可以经由计算机可读介质来分布(下文讨论)。计算机可读指令可以实现为程序模块,比如执行特定任务或实现特定抽象数据类型的功能、对象、应用编程接口(API)、数据结构等等。典型地,该计算机可读指令的功能可以在各种环境中随意组合或分布。
图11图示了包括本发明的视频数据传输装置中的一个或多个实施例的电子设备1012的实例。在一种配置中,电子设备1012包括至少一个处理单元1016和存储器1018。根据电子设备的确切配置和类型,存储器1018可以是易失性的(比如RAM)、非易失性的(比如ROM、闪存等)或二者的某种组合。该配置在图1中由虚线1014图示。
在其他实施例中,电子设备1012可以包括附加特征和/或功能。例如,设备1012还可以包括附加的存储装置(例如可移除和/或不可移除的),其包括但不限于磁存储装置、光存储装置等等。这种附加存储装置在图11中由存储装置1020图示。在一个实施例中,用于实现本文所提供的一个或多个实施例的计算机可读指令可以在存储装置1020中。存储装置1020还可以存储用于实现操作系统、应用程序等的其他计算机可读指令。计算机可读指令可以载入存储器1018中由例如处理单元1016执行。
本文所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。存储器1018和存储装置1020是计算机存储介质的实例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储装置、盒式磁带、磁带、磁盘存储装置或其他磁存储设备、或可以用于存储期望信息并可以被电子设备1012访问的任何其他介质。任意这样的计算机存储介质可以是电子设备1012的一部分。
电子设备1012还可以包括允许电子设备1012与其他设备通信的通信连接1026。通信连接1026可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频发射器/接收器、红外端口、USB连接或用于将电子设备1012连接到其他电子设备的其他接口。通信连接1026可以包括有线连接或无线连接。通信连接1026可以发射和/或接收通信媒体。
术语“计算机可读介质”可以包括通信介质。通信介质典型地包含计算机可读指令或诸如载波或其他传输机构之类的“己调制数据信号”中的其他数据,并且包括任何信息递送介质。术语“己调制数据信号”可以包括这样的信号:该信号特性中的一个或多个按照将信息编码到信号中的方式来设置或改变。
电子设备1012可以包括输入设备1024,比如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外相机、视频输入设备和/或任何其他输入设备。设备1012中也可以包括输出设备1022,比如一个或多个显示器、扬声器、打印机和/或任意其他输出设备。输入设备1024和输出设备1022可以经由有线连接、无线连接或其任意组合连接到电子设备1012。在一个实施例中,来自另一个电子设备的输入设备或输出设备可以被用作电子设备1012的输入设备1024或输出设备1022。
电子设备1012的组件可以通过各种互连(比如总线)连接。这样的互连可以包括外围组件互连(PCI)(比如快速PCI)、通用串行总线(USB)、火线(IEEE 13104)、光学总线结构等等。在另一个实施例中,电子设备1012的组件可以通过网络互连。例如,存储器1018可以由位于不同物理位置中的、通过网络互连的多个物理存储器单元构成。
本领域技术人员将认识到,用于存储计算机可读指令的存储设备可以跨越网络分布。例如,可经由网络1028访问的电子设备1030可以存储用于实现本发明所提供的一个或多个实施例的计算机可读指令。电子设备1012可以访问电子设备1030并且下载计算机可读指令的一部分或所有以供执行。可替代地,电子设备1012可以按需要下载多条计算机可读指令,或者一些指令可以在电子设备1012处执行并且一些指令可以在电子设备1030处执行。
本文提供了实施例的各种操作。在一个实施例中,所述的一个或多个操作可以构成一个或多个计算机可读介质上存储的计算机可读指令,其在被电子设备执行时将使得计算设备执行所述操作。描述一些或所有操作的顺序不应当被解释为暗示这些操作必需是顺序相关的。本领域技术人员将理解具有本说明书的益处的可替代的排序。而且,应当理解,不是所有操作必需在本文所提供的每个实施例中存在。
而且,尽管已经相对于一个或多个实现方式示出并描述了本公开,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件、资源等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定应用而言是期望和有利的其他实现方式的一个或多个其他特征组合。而且,就术语“包括”、“具有”、“含有”或其变形被用在具体实施方式或权利要求中而言,这样的术语旨在以与术语“包含”相似的方式包括。
本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。上述的各装置或系统,可以执行相应方法实施例中的方法。
综上所述,虽然本发明已以实施例揭露如上,实施例前的序号仅为描述方便而使用,对本发明各实施例的顺序不造成限制。并且,上述实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。