1.本技术涉及互联网信息处理技术领域,更具体地,涉及一种三维模型的构建方法、装置、电子设备及存储介质。
背景技术:2.三维(3d)模型,是指利用计算机技术,构建出的真实物体在虚拟三维空间中对应的三维数据的模型。三维模型,由于其数据的直观性,已成为计算机视觉领域的研究热点。比如虚拟现实(virtual reality,简称vr)、机器人导航、3d打印等。
3.目前,常用的一种三维模型的构建方式,是利用深度图像构建视锥,再通过构建的视锥建立物体的三维模型。但是,采用现有的三维模型的构建方法,三维模型的构建效率较低。
技术实现要素:4.有鉴于此,本技术实施例提出了一种三维模型的构建方法、装置、电子设备及存储介质,以改善上述问题。
5.第一方面,本技术实施例提供了一种三维模型的构建方法,方法包括:获取目标对象的深度图像;对所述深度图像进行图像划分处理,得到多个子图像;针对每个所述子图像,根据所述子图像的近焦平面和远焦平面,构建所述子图像的视锥;根据每个所述子图像的视锥,构建对应所述目标对象的三维模型。
6.第二方面,本技术实施例提供了一种三维模型的构建装置,所述装置包括:获取模块,用于获取目标对象的深度图像;划分模块,用于对所述深度图像进行图像划分处理,得到多个子图像;视锥构建模块,用于针对每个所述子图像,根据所述子图像的近焦平面和远焦平面,构建所述子图像的视锥;模型构建模块,用于根据每个所述子图像的视锥,构建对应所述目标对象的三维模型。
7.第三方面,本技术实施例提供了一种电子设备,包括处理器以及存储器;一个或多个程序被存储在存储器中并被配置为由处理器执行以实现上述的方法。
8.第四方面,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有程序代码,其中,在程序代码被处理器运行时执行上述的方法。
9.第五方面,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的方法。
10.本技术实施例提供的一种三维模型的构建方法、装置、电子设备及存储介质,通过将深度图像划分为多个子图像,并根据每个子图像本身的近焦平面和远焦平面,构建每个子图像对应的视锥,使得每个子图像的视锥的体积小于该子图像在整个深度图像的视锥中对应的部分体积,进而使得各个子图像的视锥体积之和小于整个深度图像的视锥的体积,
大大减少了构建三维模型的所需要处理的数据量,从而提高了三维模型构建效率。
附图说明
11.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
12.图1示出了本技术一个实施例提出的一种三维模型的构建方法的流程图;
13.图2示出了本技术实施例中一种子图像的视锥的示意图;
14.图3示出了本技术图1所示的方法中步骤s140的流程示意图;
15.图4示出了本技术实施例中碰撞检测的示意图;
16.图5示出了本技术图3所示的方法中步骤s250的流程示意图;
17.图6示出了本技术图5所示的方法中步骤s340的一种流程示意图;
18.图7示出了本技术图5所示的方法中步骤s340的又一种流程示意图;
19.图8示出了本技术图1所示的方法中步骤s130的流程示意图;
20.图9示出了本技术实施例提出的一种三维模型的构建装置的框图;
21.图10示出了用于执行根据本技术实施例的三维模型的构建方法的电子设备的结构框图。
具体实施方式
22.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。根据本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
23.在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
24.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
25.相关技术中,根据目标对象的深度图像构建视锥,该视锥是基于整个深度图像对应的近焦平面和远焦平面的,导致构建的视锥体积较大,使得构建三维模型时,需要处理的数据量较多,导致三维模型构建效率较低。
26.因此,发明人提出一种三维模型的构建方法、装置、电子设备及存储介质。通过获取目标对象的深度图像;对所述深度图像进行图像划分处理,得到多个子图像;针对每个所述子图像,根据所述子图像的近焦平面和远焦平面,构建所述子图像的视锥;根据每个所述子图像的视锥,构建对应所述目标对象的三维模型。每个子图像对应的视锥是基于每个子图像本身的近焦平面和远焦平面,使得每个子图像的视锥的体积小于该子图像在整个深度图像的视锥中对应的部分体积,进而使得各个子图像的视锥体积之和小于整个深度图像的
视锥的体积,减少了构建三维模型的所需要处理的数据量,从而提高了三维模型构建效率。
27.请参阅图1,图1示出了本技术一个实施例提出的一种三维模型的构建方法的流程图,该方法可以应用于电子设备,该方法包括:
28.s110、获取目标对象的深度图像。
29.可以将目标对象放置于空间的某一处,通过深度相机对目标对象进行拍照得到深度图像,深度图像可以包括目标对象以及目标对象以外的部分区域。例如,桌面上放置于目标对象——鼠标,对鼠标进行拍照,得到鼠标的深度图像,该深度图像包括鼠标以及桌面的部分。深度图像还可以包括目标对象的部分,例如,桌面上放置于目标对象——水杯,对水杯进行拍照,得到水杯的深度图像,该深度图像包括水杯的下半部分以及桌面的部分,其中水杯的上半部分处于深度相机的视野外,并未被拍摄到。
30.可以是通过深度相机对目标对象进行扫描,并移动深度相机,以使深度相机对目标对象拍摄不同角度的深度图像。在不同的扫描时刻,对目标对象进行拍摄得到目标对象不同的深度图像,对于每个深度图像,均执行本技术的方式,以得到目标对象的三维模型。
31.在一种实施方式中,电子设备可以与深度相机连接,深度相机拍摄目标对象,得到深度图像,并将深度图像发送给电子设备。
32.在另一种实施方式中,电子设备集成有深度相机,电子设备控制深度相机对目标对象进行拍摄,得到深度图像。
33.在又一种实施方式中,电子设备连接到服务器,服务器接收深度相机或其他电子设备发送的深度图像,电子设备从服务器获取深度图像。
34.s120、对所述深度图像进行图像划分处理,得到多个子图像。
35.深度图像可以是矩形的图像,对深度图像进行划分,得到划分后的多个子图像,每个子图像为深度图像的一部分区域。具体的,可以是对深度图像均匀划分,得到多个形状和尺寸均相同的子图像,例如,深度图像的尺寸为1280*960,将深度图像划分为四个尺寸均为640*320的子图像。
36.由于深度相机拍摄的目标对象通常放置于深度相机的视野中心,在另一些实施方式中,可以在深度图像中确定出中心区域,然后对中心区域进行均匀划分,将中心区域周围的区域划分为多个矩形。例如,深度图像的尺寸为1280*960,确定出的中心区域为的尺寸为800*500,中心区域的左右两侧分别剩余240列像素,中心区域的上下两侧分别剩余180行像素,然后将中心区域划分为尺寸均为400*250的四个子图像,将周围区域划分为尺寸分别为1280*180、1280*180、500*240以及500*240的四个子图像,共得到四个子图像。其中,对于周围区域的划分方式可以是其他方式,本技术不做限定,
37.s130、针对每个所述子图像,根据所述子图像的近焦平面和远焦平面,构建所述子图像的视锥。
38.针对每个子图像,确定出对应的近焦平面和远焦平面,并根据近焦平面和远焦平面构建该子图像的视锥;遍历全部的子图像,得到全部的子图像的视锥。
39.在一种可能的实现方式中,可以是根据子图像中的最大深度确定远焦平面,根据子图像的最小深度确定子图像的近焦平面。
40.深度相机的视场角包括水平视场角和垂直视场角,水平视场角和垂直视场角对应的观测区域为四棱锥状的空间区域,深度相机的视点则为该四棱锥状的空间区域的棱锥顶
点。针对每个子图像,根据近焦平面和远焦平面,对四棱锥状的空间区域进行截取,处于近焦平面和远焦平面之间的部分作为该子图像的虚拟椎体;然后在该子图像的虚拟椎体中确定出子图像对应的部分空间区域,作为该子图像的视锥。
41.请参阅图2,图2示出了本技术实施例中一种子图像的视锥的示意图。x0、y0以及z0为深度相机的相机坐标系的三个正方向,深度相机的视点作为相机坐标系的原点。用于拍摄深度图像的深度相机的视点作为相机坐标系的坐标原点,深度相机的视场角(图2中视点发出的粗虚线之间的空间角度)与子图像1的近焦平面相交,得到深色矩形区域作为子图像1的近焦平面对应的观测区域,深度相机的视场角与子图像1的远焦平面相交,得到深色矩形区域作为子图像1的远焦平面对应的观测区域,将两个观测区域之间且处于视场角之内的空间区域作为该子图像1的虚拟椎体。
42.然后,根据视场角和子图像1,确定出子图像1对应的有效视角(图2中从视点触发的细虚线之间的空间角度),并将该虚拟椎体内处于该有效视角内的部分作为该子图像的视锥;如图2中,子图像1的远焦平面对应的观测区域中的虚线矩形框以及子图像1的近焦平面对应的观测区域中虚线矩形框之间,且处于有效视角内的空间区域作为子图像1的视锥。其中,一个子图像的有效视角是指从视点仅仅观测到该子图像时的视场角,该有效视角为深度相机的视场角的一部分。
43.s140、根据每个所述子图像的视锥,构建对应所述目标对象的三维模型。
44.对于每个子图像的视锥,进行三维模型构建操作,得到该子图像对应的部分三维模型,根据全部子图像的三维模型,得到最终目标对象的三维模型。
45.可选地,所述根据每个所述子图像的视锥,构建对应所述目标对象的三维模型,包括:根据并行指令集,对每个所述子图像的视锥进行并行处理,构建对应所述目标对象的三维模型。并行指令集可以包括多种并行指令,通过并行指令集中的指令,对多个子图像的视锥进行并行处理,得到多个子图像各自的三维模型,然后根据多个子图像各自的三维模型,得到目标对象的三维模型。
46.对子图像的视锥进行处理可以是每次并行处理两个子图像的视锥,也可以对全部的子图像的视锥进行并行处理。
47.本实施例提出一种三维模型的构建方法。通过获取目标对象的深度图像;对所述深度图像进行图像划分处理,得到多个子图像;针对每个所述子图像,根据所述子图像的近焦平面和远焦平面,构建所述子图像的视锥;根据每个所述子图像的视锥,构建对应所述目标对象的三维模型。每个子图像对应的视锥是基于每个子图像本身的近焦平面和远焦平面,使得每个子图像的视锥的体积小于该子图像在整个深度图像的视锥中对应的部分体积,进而使得各个子图像的视锥体积之和小于整个深度图像的视锥的体积,大大减少了构建三维模型的所需要处理的数据量,从而提高了三维模型构建效率。
48.请参阅图3,图3示出了本技术图1所示的三维模型构建方法中s140的流程示意图,方法可以用于电子设备,在本实施方式中,步骤s140可以包括:
49.s210、构建包括每个所述子图像的视锥的六面体。
50.可以确定出每个子图像的坐标最大值和坐标最小值,其中,坐标最大值包括x、y和z三个方向的最大值,坐标最小值包括x、y和z三个方向的最小值,每个子图像的坐标可以是指在世界坐标系下的坐标,x、y和z三个方向为在世界坐标系的三个正方向。根据x方向的坐
标最大值和坐标最小值,构建平行于yoz面的两个平面,根据y方向的坐标最大值和坐标最小值,构建平行于xoz面的两个平面,根据z方向的坐标最大值和坐标最小值,构建平行于xoy面的两个平面,然后将6个平面相交所产生的六面体作为该子图像的六面体。由于该6面体是基于子图像的x、y和z三个方向的最大值和最小值的,则该六面体也是包括该子图像的视锥的。
51.例如,子图像a的x、y和z三个方向的最大值分别为100、150以及200,子图像a的x、y和z三个方向的最小值分别为10、15以及20,根据x、y和z三个方向的最大值以及最小值,构建六个平面,将六个平面香蕉所产生的六面体作为该子图像的六面体,其中,6面体的8个顶点分别为(10,15,20)、(100,15,20)、(10,150,20)、(100,150,20)、(10,15,200)、(100,15,200)、(10,150,200)以及(100,150,200)。
52.s220、对每个所述六面体进行划分处理,得到对应每个所述视锥的多个体块。
53.针对每个子图像的六面体,将其划分为多个均匀的小立方体,划分后的小立方体作为该子图像的视锥的体块,其中,小立方体的体积可以是0.4*0.4*0.4,单位可以是m。可以是基于不同精度需求和目标对象的尺寸,确定每个小立方体的体积和单位。
54.例如,一个子图像b对应的六面体的体积为12*10*8,每个立方体的尺寸为0.4*0.4*0.4,则将该六面体划分为30*25*20=15000个立方体,该15000个立方体作为子图像b的视锥的15000个体块。
55.s230、根据每个所述视锥,对每个所述视锥的多个体块进行碰撞检测。
56.s240、将通过碰撞检测的体块作为每个所述视锥的有效体块。
57.一个子图像对应一个视锥,该子图像对应一个六面体,该子图像的视锥与该子图像的六面体也相对应。针对一个子图像,将该子图像的视锥与该子图像的六面体做碰撞检测,将六面体中与视锥存在重合的体块作为该子图像的视锥的有效体块。
58.请参阅图4,图4示出了本技术实施例中碰撞检测的示意图。六面体(图4中细实线为六面体的边框)被划分为多个体块(图4中体块的边框为细虚线),将视锥与六面体放置于同于空间内,与视锥重叠的体块作为有效体块。
59.s250、根据各个所述视锥的有效体块,构建对应所述目标对象的三维模型。
60.在确定出每个视锥的有效体块后,根据该视锥的有效体块,构建该视锥对应的子图像所对应的部分三维模型,遍历全部的视锥的有效体块,得到全部的子图像各自对应的三维模型,根据全部的子图像各自的三维模型,得到目标对象的三维模型。
61.在本实施例中,针对每个子图像的视锥,确定出有效体块,相较于确定出整个深度图像的有效体块,本技术的有效体块的数量较少,使得构建三维模型所处理的数据量较少,提高了三维模型构建效率。
62.请参阅图5,图5示出了本技术图3所示的方法中s250的流程示意图,方法可以用于电子设备,在本实施方式中,步骤s250可以包括:
63.s310、针对每个所述视锥的每个有效体块,确定所述有效体块中每个体素相对于所述有效体块的起点的体素偏移量。
64.针对每个体块,可以包括多个体素,体素的尺寸可以是0.05*0.05*0.05,单位为m,在体块的尺寸为0.4*0.4*0.4,且单位为m时,每个体块包括512个体素。同理,对于每个有效体块,也包括多个体素。
65.针对每个有效体块,可以选定有效体块上的某一个点作为起点,该起点可以是该体块中x、y以及z方向坐标值最小的点,也可以是该体块中距离水平面最近的点,本技术不做限定。
66.每个体素的起点与所属的体块的起点的相对坐标作为该体素相对于所属的体块的起点的体素偏移量,其中,每个体素的起点的选择与体块的起点的选择方式类似。例如,在一个体块c包括512个体素时,针对该体块,确定出该512个体素与该体块c的起点的体素偏移量,得到512个体素偏移量。
67.s320、在每个所述视锥的有效体块中确定出当前有效体块。
68.在本技术具体实施时,对于每个体块可以具有索引值,不同的体块对应有不同的索引值。相同视锥的不同有效体块具有不同索引值,不同视锥的有效体块也具有不同索引值。
69.针对每个视锥,每次根据索引值选定不同的有效体块作为当前有效体块。例如,一个视锥d对应200个有效体块,索引值为1-200,按照索引值的由小到大依次确定有效体块,第一次确定的有效体块为索引值为1的有效体块,作为当前有效体块,针对第100次确定的有效体块为索引值为100的有效体块,作为当前有效体块。
70.在一些实施方式中,可以是根据有效体块的索引值,随机确定当前有效体块,根据有效体块的索引值确定有效体块是否被处理过,以避免有效体块被重复处理。
71.s320、确定所述当前有效体块的起点的起点位置信息。
72.当前有效体块的起点的坐标作为当前有效体块的起点的起点位置信。
73.s330、根据所述当前有效体块中每个体素对应的体素偏移量和所述当前有效体块对应的起点位置信息,得到所述当前有效体块中每个体素的截断符号距离函数值和权重。
74.针对每个有效体块,可以根据projecting mapping的方法,基于所述当前有效体块中每个体素对应的体素偏移量和所述当前有效体块对应的起点位置信息,确定出该有效体块中每个体素的截断符号距离函数值(trucated signed distance function,简称tsdf),并根据确定的截断符号距离函数值,确定出该体素的权重。对于每个有效体块,得到每个体素的截断符号距离函数值和权重,例如,有效体块e包括512个体素,得到512个截断符号距离函数值和512个权重。
75.可以根据深度相机进行建模,得到深度相机的噪声参数,根据该噪声参数确定阈值,当得体素的截断符号距离函数值未超过阈值时,对该体素的权重赋值为1,当得体素的截断符号距离函数值超过阈值时,对该体素的权重赋值为0。
76.s340、返回执行所述在每个所述视锥中的有效体块中确定出当前有效体块的步骤,直到遍历每个所述视锥的全部有效体块,得到对应每个所述视锥的截断符号距离函数值集合和权重集合。
77.确定出一个有效体块中每个体素的截断符号距离函数值和权重后,根据有效体块的索引值,重新确定出一个当前有效体块,并重复上述计算步骤,得到该当前有效体块中每个体素的截断符号距离函数值和权重。遍历该视锥的全部有效体块,得到全部有效体块中每个体素的截断符号距离函数值和权重,一个视锥的全部有效体块中每个体素的截断符号距离函数值组成的集合作为截断符号距离函数值集合,一个视锥的全部有效体块中每个体素的权重组成的集合作为权重集合,一个视锥对应一个截断符号距离函数值集合和一个权
重集合。
78.例如,一个视锥f对应100个有效体块,每个有效体块包括512个体素,则获得的截断符号距离函数值集合包括51200个体素各自的断符号距离函数值,得到的权重集合包括51200个体素各自的权重。
79.s360、根据每个所述视锥的截断符号距离函数值集合和权重集合,构建对应所述目标对象的三维模型。
80.针对每个子图像的视锥,得到该视锥的截断符号距离函数值集合和权重集合,根据该视锥的截断符号距离函数值集合和权重集合,构建该视锥对应的子图像各自的三维模型,遍历全部的子图像的视锥,得到全部的子图像各自的三维模型,根据全部的子图像各自的三维模型,得到目标对象的三维模型。
81.在本实施例中,每个有效体块对应多个体素,每个体素的尺寸较小,使得构建的三维模型的数据处理精度较高,从而提高构建的三维模型准确率。
82.同时,针对每个子图像的视锥中的有效体块,每次选定一个有效体块,并遍历该体块中的全部的体素,得到有效体块的全部体素的截断符号距离函数值和权重,再遍历其他的有效体块,相较于相关技术中对相同的体块多次遍历,按照本技术的方法降低了遍历次数,提高了遍历效率,从而提高了模型构建效率。
83.请参阅图6,图6示出了本技术图5所示的方法中s340的一种流程示意图,方法可以用于电子设备,在本实施方式中,步骤s340可以包括:
84.s410、根据所述当前有效体块中每个体素对应的体素偏移量和所述当前有效体块对应的起点位置信息,得到所述当前有效体块中每个体素的位置信息。
85.针对当前有效体块中的每个体素,根据体素偏移量和起点位置信息,计算每个体素相对于相机坐标系的坐标原点的坐标值,作为每个体素的位置信息。其中,可以是将每个体素的体素偏移量和对应的有效体块的起点位置信息做和,得到每个体素的位置信息。其中,每个体素对应的体素偏移量和所述当前有效体块对应的起点位置信息均是在相机坐标系下的。
86.s420、将所述当前有效体块中每个体素的中心投影到所述深度图像上,得到投影后的结果。
87.s430、在所述投影后的结果中读取所述当前有效体块中每个体素的深度值。
88.将每个体素的中心投影到深度图像上,得到投影后的结果。具体的,可以是根据针孔相机模型,将每个体素的中心投影到的深度图像,得到投影后的结果。
89.s440、根据当前有效体块中每个体素的位置信息以及深度值,得到所述当前有效体块中每个体素的截断符号距离函数值和权重。
90.对于当前有效体块种的每个体素,根据体素的位置信息中的z值与在投影后的结果中获取的该体素的深度值,计算每个体素的截断符号距离函数值,并在截断符号距离函数值未超过阈值时,将该体素的权重赋值为1,在截断符号距离函数值超过阈值时,将该体素的权重赋值为0。
91.请参阅图7,图7示出了本技术图5所示的三维模型构建方法中s340的又一种流程示意图,方法可以用于电子设备,在本实施方式中,步骤s340可以包括:
92.s510、获取所述深度图像的相机位姿,所述相机位姿为拍摄所述深度图像的深度
相机的位姿;针对每个所述视锥的每个有效体块,确定所述有效体块中每个体素相对于所述有效体块的起点的初始体素偏移量,所述初始体素偏移量是在世界坐标系下的;根据所述相机位姿和所述初始体素偏移量,得到每个所述有效体块的起点的体素偏移量,所述体素偏移量是在所述深度相机的相机坐标系下的。
93.相机位姿可以是指拍摄深度图像时,深度相机相对于世界坐标系的旋转矩阵和平移矩阵。当通过移动深度相机对目标对象进行扫描时,不同的扫描时刻的相机位姿可能是不同的,每一个时刻的相机位姿为该时刻深度相机相对于世界坐标系的实时相机位姿。
94.每个体素的初始体素偏移量是指在世界坐标系下,体素相对于体块的起点的相对坐标;通过相机位姿,对初始体素偏移量进行转换,得到在相机坐标系下,体素相对于体块的起点的相对坐标,作为该体素的体素偏移量。
95.s520、在每个所述视锥的有效体块中确定出当前有效体块。
96.其中,s520的描述参照s420的描述,此处不在赘述。
97.s530、确定所述当前有效体块的起点的初始起点位置信息,所述初始起点位置信息是在世界坐标系下的;根据所述相机位姿和所述初始起点位置信息,得到所述当前有效体块的起点位置信息,所述起点位置信息是在所述深度相机的相机坐标系下的。
98.对于每个有效体块,确定出有效体块在世界坐标系下的坐标作为初始起点位置信息,然后根据的相机位姿,对初始起点位置信息进行转换,得到有效体块在相机坐标系下的坐标作为起点位置信息。
99.s540、根据所述当前有效体块中每个体素对应的体素偏移量和所述当前有效体块对应的起点位置信息,得到所述当前有效体块中每个体素的截断符号距离函数值和权重。
100.s550、返回执行所述在每个所述视锥中的有效体块中确定出当前有效体块的步骤,直到遍历每个所述视锥的全部有效体块,得到对应每个所述视锥的截断符号距离函数值集合和权重集合。
101.s560、根据每个所述视锥的截断符号距离函数值集合和权重集合,构建对应所述目标对象的三维模型。
102.其中,s540-s560的描述参照上文s340-s360的描述,不再赘述。
103.请参阅图8,图8示出了本技术图1所示的三维模型构建方法中s130的流程示意图,方法可以用于电子设备,在本实施方式中,步骤s130可以包括:
104.s610、确定深度相机的相机位姿、视场角以及视点,所述深度相机为拍摄所述深度图像的深度相机。
105.s620、根据每个所述子图像近焦平面、远焦平面、所述视场角和所述视点,构建每个所述子图像的虚拟椎体。
106.s630、根据每个所述子图像、每个所述子图像的虚拟椎体以及所述视点,得到每个所述子图像的视锥。
107.针对每个子图像,可以根据该子图像的远焦平面、近焦平面深度相机的视点以及深度相机的视场角,得到该子图像的虚拟椎体,然后根据该深度相机的视点和子图像,确定该子图像的对应的有效视角,以视点为该有效视角的起点,该子图像的虚拟椎体中处于该有效视角内的部分作为该子图像的视锥。
108.如图2,用于拍摄深度图像的深度相机的视点作为相机坐标系的坐标原点,深度相
机的视场角(图2中视点发出的粗虚线之间的空间角度)与子图像1的近焦平面相交,得到深色矩形区域作为子图像1的近焦平面对应的观测区域,深度相机的视场角与子图像1的远焦平面相交,得到深色矩形区域作为子图像1的远焦平面对应的观测区域,将两个观测区域之间且处于视场角之内的空间区域作为一个虚拟椎体。
109.然后,根据视场角和子图像1,确定出子图像1对应的有效视角(图2中从视点触发的细虚线之间的空间角度),并将该虚拟椎体内处于该有效视角内的部分作为该子图像的视锥;如图2中,子图像1的远焦平面对应的观测区域中的虚线矩形框以及子图像1的近焦平面对应的观测区域中虚线矩形框之间,且处于有效视角内的空间区域作为子图像1的视锥。
110.在一种可能的实现方式中,深度图像可能包括多个,多个深度图像按照拍摄的时间顺序排列,按照深度图像的排列顺序进行深度图像处理,对于第一个深度图像,进行如下处理:
111.针对每个深度图像,对深度图像进行图像划分处理,得到多个子图像;根据每个子图像近焦平面、远焦平面、深度相机的视场角和深度相机的视点,构建每个子图像的虚拟椎体;根据每个子图像、每个子图像的虚拟椎体以及视点,得到每个子图像的视锥;之后,构建包括每个子图像的视锥的六面体;对每个六面体进行划分处理,得到对应每个视锥的多个体块;根据每个视锥,对每个视锥的多个体块进行碰撞检测;将通过碰撞检测的体块作为每个视锥的有效体块。
112.针对每个视锥的每个有效体块,确定有效体块中每个体素相对于有效体块的起点的初始体素偏移量,初始体素偏移量是在世界坐标系下的;根据相机位姿和初始体素偏移量,得到每个有效体块的起点的体素偏移量,体素偏移量是在深度相机的相机坐标系下的。
113.在每个视锥的有效体块中确定出当前有效体块,确定当前有效体块的起点的初始起点位置信息,初始起点位置信息是在世界坐标系下的;根据相机位姿和初始起点位置信息,得到当前有效体块的起点位置信息,起点位置信息是在深度相机的相机坐标系下的。
114.根据当前有效体块中每个体素对应的体素偏移量和当前有效体块对应的起点位置信息,得到当前有效体块中每个体素的位置信息;将当前有效体块中每个体素的中心投影到深度图像上,得到投影后的结果;在投影后的结果中读取当前有效体块中每个体素的深度值;根据当前有效体块中每个体素的位置信息以及深度值,得到当前有效体块中每个体素的截断符号距离函数值和权重。其中,对于第一次处理的深度图像,一个体素的初始权重为0,截断符号距离函数值未超过阈值时,确定截断符号距离函数值有效,将该体素的权重在初始值的基础上加1,截断符号距离函数值超过阈值时,确定截断符号距离函数值无效,将该体素的权重保持初始值。
115.返回执行在每个视锥中的有效体块中确定出当前有效体块的步骤,直到遍历每个视锥的全部有效体块,得到对应每个视锥的截断符号距离函数值集合和权重集合;根据每个视锥的截断符号距离函数值集合和权重集合,构建对应目标对象的三维模型。
116.对于第一个图像之后的第n个深度图像,其中n为大于1的整数,进行如下处理:
117.按照上述与第一个深度图像同样的处理方式,求得第n个深度图像对应的各个有效体块的体素的截断符号距离函数值和权重。针对第n个深度图像的每个体素,若一个体素在当前的深度图像中对应有有效的截断符号距离函数值,则对该体素的权重加1,该体素的截断符号距离函数值为该体素在第n个深度图像对应的截断符号距离函数值;若一个体素
在当前的深度图像中对应无效的截断符号距离函数值,则该体素的权重不变,与前一个深度图像中该体素的权重相同,该体素的截断符号距离函数值为该体素在第n个深度图像对应的截断符号距离函数值。
118.例如,对于一个体素h1,对目标对象的第2个深度图像进行处理时,得到体素h1的截断符号距离函数值j1未超过预设阈值,且,体素h1在第一个深度图像的对应的截断符号距离函数值j2未超过预设阈值,此时,体素h1对应的权重为0+1+1=2,截断符号距离函数值为j1;若对目标对象的第2个深度图像进行处理时,得到体素h1的截断符号距离函数值j3未超过预设阈值,且,体素h1在第一个深度图像的对应的截断符号距离函数值j4超过预设阈值,此时,体素h1对应的权重为0+0+1=1,且截断符号距离函数值为j3。
119.之后,返回执行在每个视锥中的有效体块中确定出当前有效体块的步骤,直到遍历每个视锥的全部有效体块,得到对应每个视锥的截断符号距离函数值集合和权重集合;根据第n个深度图像中每个视锥的截断符号距离函数值集合和权重集合,构建对应目标对象的三维模型。
120.遍历全部的深度图像后,完成三维模型的构建。
121.请参阅图9,图9示出了本技术一个实施例提出的一种三维模型的构建装置的框图,所述装置1100包括:
122.获取模块1110,用于获取目标对象的深度图像;
123.划分模块1120,用于对所述深度图像进行图像划分处理,得到多个子图像;
124.视锥构建模块1130,用于针对每个所述子图像,根据所述子图像的近焦平面和远焦平面,构建所述子图像的视锥;
125.模型构建模块1140,用于根据每个所述子图像的视锥,构建对应所述目标对象的三维模型。
126.可选地,所述模型构建模块1140,还用于构建包括每个所述子图像的视锥的六面体;对每个所述六面体进行划分处理,得到对应每个所述视锥的多个体块;根据每个所述视锥,对每个所述视锥的多个体块进行碰撞检测;将通过碰撞检测的体块作为每个所述视锥的有效体块;根据各个所述视锥的有效体块,构建对应所述目标对象的三维模型。
127.可选地,每个所述有效体块包括多个体素;所述模型构建模块1140,还用于针对每个所述视锥的每个有效体块,确定所述有效体块中每个体素相对于所述有效体块的起点的体素偏移量;在每个所述视锥的有效体块中确定出当前有效体块;确定所述当前有效体块的起点的起点位置信息;根据所述当前有效体块中每个体素对应的体素偏移量和所述当前有效体块对应的起点位置信息,得到所述当前有效体块中每个体素的截断符号距离函数值和权重;返回执行所述在每个所述视锥中的有效体块中确定出当前有效体块的步骤,直到遍历每个所述视锥的全部有效体块,得到对应每个所述视锥的截断符号距离函数值集合和权重集合;根据每个所述视锥的截断符号距离函数值集合和权重集合,构建对应所述目标对象的三维模型。
128.可选地,所述模型构建模块1140,还用于根据所述当前有效体块中每个体素对应的体素偏移量和所述当前有效体块对应的起点位置信息,得到所述当前有效体块中每个体素的位置信息;将所述当前有效体块中每个体素的中心投影到所述深度图像上,得到投影后的结果;在所述投影后的结果中读取所述当前有效体块中每个体素的深度值;根据当前
有效体块中每个体素的位置信息以及深度值,得到所述当前有效体块中每个体素的截断符号距离函数值和权重。
129.可选地,所述模型构建模块1140,还用于获取所述深度图像的相机位姿,所述相机位姿为拍摄所述深度图像的深度相机的位姿;针对每个所述视锥的每个有效体块,确定所述有效体块中每个体素相对于所述有效体块的起点的初始体素偏移量,所述初始体素偏移量是在世界坐标系下的;根据所述相机位姿和所述初始体素偏移量,得到每个所述有效体块的起点的体素偏移量,所述体素偏移量是在所述深度相机的相机坐标系下的;确定所述当前有效体块的起点的初始起点位置信息,所述初始起点位置信息是在世界坐标系下的;根据所述相机位姿和所述初始起点位置信息,得到所述当前有效体块的起点位置信息,所述起点位置信息是在所述深度相机的相机坐标系下的。
130.可选地,所述模型构建模块1140,还用于根据并行指令集,对每个所述子图像的视锥进行并行处理,构建对应所述目标对象的三维模型。
131.可选地,所述视锥构建模块1130,还用于确定深度相机的相机位姿、视场角以及视点,所述深度相机为拍摄所述深度图像的深度相机;根据每个所述子图像近焦平面、远焦平面、所述视场角和所述视点,构建每个所述子图像的虚拟椎体;根据每个所述子图像、每个所述子图像的虚拟椎体以及所述视点,得到每个所述子图像的视锥。
132.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
133.在本技术所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
134.另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
135.图10示出了用于执行根据本技术实施例的三维模型的构建方法的电子设备的结构框图。需要说明的是,图10示出的电子设备的计算机系统1200仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
136.如图10所示,计算机系统1200包括中央处理单元(central processing unit,cpu)1201,其可以根据存储在只读存储器(read-only memory,rom)1202中的程序或者从存储部分1208加载到随机访问存储器(random access memory,ram)1203中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在ram 1203中,还存储有系统操作所需的各种程序和数据。cpu1201、rom1202以及ram 1203通过总线1204彼此相连。输入/输出(input/output,i/o)接口1205也连接至总线1204。
137.以下部件连接至i/o接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至i/o接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。
138.特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(cpu)1201执行时,执行本技术的系统中限定的各种功能。
139.需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
140.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
141.描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
142.作为另一方面,本技术还提供了一种计算机可读存储介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载计算机可读指令,当该计算机可读存储指令被处理器执行时,实现上述任一实施例中的方法。
143.根据本技术的一个方面,还提供了一种电子设备,其包括:处理器;存储器,存储器
上存储有计算机可读指令,计算机可读指令被处理器执行时,实现上述任一实施例中的方法。
144.根据本技术实施例的一个方面,提供了计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一实施例中的方法。
145.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
146.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本技术实施方式的方法。
147.本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
148.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
技术特征:1.一种三维模型的构建方法,其特征在于,所述方法包括:获取目标对象的深度图像;对所述深度图像进行图像划分处理,得到多个子图像;针对每个所述子图像,根据所述子图像的近焦平面和远焦平面,构建所述子图像的视锥;根据每个所述子图像的视锥,构建对应所述目标对象的三维模型。2.根据权利要求1所述的方法,其特征在于,所述根据每个所述子图像的视锥,构建对应所述目标对象的三维模型,包括:构建包括每个所述子图像的视锥的六面体;对每个所述六面体进行划分处理,得到对应每个所述视锥的多个体块;根据每个所述视锥,对每个所述视锥的多个体块进行碰撞检测;将通过碰撞检测的体块作为每个所述视锥的有效体块;根据各个所述视锥的有效体块,构建对应所述目标对象的三维模型。3.根据权利要求2所述的方法,其特征在于,每个所述有效体块包括多个体素;所述根据各个所述视锥的有效体块,构建对应所述目标对象的三维模型,包括:针对每个所述视锥的每个有效体块,确定所述有效体块中每个体素相对于所述有效体块的起点的体素偏移量;在每个所述视锥的有效体块中确定出当前有效体块;确定所述当前有效体块的起点的起点位置信息;根据所述当前有效体块中每个体素对应的体素偏移量和所述当前有效体块对应的起点位置信息,得到所述当前有效体块中每个体素的截断符号距离函数值和权重;返回执行所述在每个所述视锥中的有效体块中确定出当前有效体块的步骤,直到遍历每个所述视锥的全部有效体块,得到对应每个所述视锥的截断符号距离函数值集合和权重集合;根据每个所述视锥的截断符号距离函数值集合和权重集合,构建对应所述目标对象的三维模型。4.根据权利要求3所述的方法,其特征在于,所述根据所述当前有效体块中每个体素对应的体素偏移量和所述当前有效体块对应的起点位置信息,得到所述当前有效体块中每个体素的截断符号距离函数值和权重,包括:根据所述当前有效体块中每个体素对应的体素偏移量和所述当前有效体块对应的起点位置信息,得到所述当前有效体块中每个体素的位置信息;将所述当前有效体块中每个体素的中心投影到所述深度图像上,得到投影后的结果;在所述投影后的结果中读取所述当前有效体块中每个体素的深度值;根据当前有效体块中每个体素的位置信息以及深度值,得到所述当前有效体块中每个体素的截断符号距离函数值和权重。5.根据权利要求3所述的方法,其特征在于,所述针对每个所述视锥的每个有效体块,确定所述有效体块中每个体素相对于所述有效体块的起点的体素偏移量,包括:获取所述深度图像的相机位姿,所述相机位姿为拍摄所述深度图像的深度相机的位姿;
针对每个所述视锥的每个有效体块,确定所述有效体块中每个体素相对于所述有效体块的起点的初始体素偏移量,所述初始体素偏移量是在世界坐标系下的;根据所述相机位姿和所述初始体素偏移量,得到每个所述有效体块的起点的体素偏移量,所述体素偏移量是在所述深度相机的相机坐标系下的;所述确定所述当前有效体块的起点的起点位置信息,包括:确定所述当前有效体块的起点的初始起点位置信息,所述初始起点位置信息是在世界坐标系下的;根据所述相机位姿和所述初始起点位置信息,得到所述当前有效体块的起点位置信息,所述起点位置信息是在所述深度相机的相机坐标系下的。6.根据权利要求1所述的方法,其特征在于,所述根据每个所述子图像的视锥,构建对应所述目标对象的三维模型,包括:根据并行指令集,对每个所述子图像的视锥进行并行处理,构建对应所述目标对象的三维模型。7.根据权利要求1所述的方法,其特征在于,所述针对每个所述子图像,根据所述子图像的近焦平面和远焦平面,构建所述子图像的视锥,包括:确定深度相机的相机位姿、视场角以及视点,所述深度相机为拍摄所述深度图像的深度相机;根据每个所述子图像近焦平面、远焦平面、所述视场角和所述视点,构建每个所述子图像的虚拟椎体;根据每个所述子图像、每个所述子图像的虚拟椎体以及所述视点,得到每个所述子图像的视锥。8.一种三维模型的构建装置,其特征在于,所述装置包括:获取模块,用于获取目标对象的深度图像;划分模块,用于对所述深度图像进行图像划分处理,得到多个子图像;视锥构建模块,用于针对每个所述子图像,根据所述子图像的近焦平面和远焦平面,构建所述子图像的视锥;模型构建模块,用于根据每个所述子图像的视锥,构建对应所述目标对象的三维模型。9.一种电子设备,其特征在于,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-7中任一项所述的方法。10.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7中任一项所述的方法。
技术总结本申请公开了一种三维模型的构建方法、装置、电子设备及存储介质。该方法包括:获取目标对象的深度图像;对所述深度图像进行图像划分处理,得到多个子图像;针对每个所述子图像,根据所述子图像的近焦平面和远焦平面,构建所述子图像的视锥;根据每个所述子图像的视锥,构建对应所述目标对象的三维模型。通过本申请的方法,提高了三维模型的构建效率。提高了三维模型的构建效率。提高了三维模型的构建效率。
技术研发人员:刘平
受保护的技术使用者:OPPO广东移动通信有限公司
技术研发日:2022.04.18
技术公布日:2022/7/5