CN111640180B - 一种三维重建方法、装置及终端设备 - Google Patents
一种三维重建方法、装置及终端设备 Download PDFInfo
- Publication number
- CN111640180B CN111640180B CN202010766571.1A CN202010766571A CN111640180B CN 111640180 B CN111640180 B CN 111640180B CN 202010766571 A CN202010766571 A CN 202010766571A CN 111640180 B CN111640180 B CN 111640180B
- Authority
- CN
- China
- Prior art keywords
- dimensional model
- scene
- vertex
- initial
- image
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Abstract
本申请适用于三维重建技术领域,提供了一种三维重建方法、装置及终端设备。本申请实施例通过获取场景的RGB图像和深度图像,用来构建能够反应场景中每个点的颜色信息和深度值的初始三维模型和纹理图像;并根据纹理图像中的每个像素点的梯度值,获得与初始三维模型的每个网格对应的迭代次数,以对初始三维模型的每个网格进行细分并迭代对应的迭代次数,获得场景的中间三维模型;然后分别控制中间三维模型的每个顶点沿法线方向移动对应的移动量并迭代预设次数,从而可以获得能够体现场景的表面细节的最终三维模型,保真度高。
Description
技术领域
本申请属于三维重建技术领域,尤其涉及一种三维重建方法、装置及终端设备。
背景技术
主流的三维重建技术一般通过深度相机(例如,RGB-D相机)获取景物表面的各个点在三维空间中深度值,普通相机只能获取景物表面的各个点在二维空间中的颜色信息,因此,基于深度相机重建景物表面的三维信息相对普通相机而言更容易。
然而,基于RGB-D相机重建景物表面的三维信息时,重度依赖RGB-D相机的光源发射到景物表面的光量,景物表面的材质及曲率决定了景物对光的吸收程度,RGB-D相机对黑色景物有局限性,其获取的深度图像与RGB图像相比,无法做到每个像素点都有深度值,容易缺失景物表面的细节部位的深度值。
发明内容
有鉴于此,本申请实施例提供了一种三维重建方法、装置及终端设备,以解决现有技术中RGB-D相机对黑色景物有局限性,其获取的深度图像与RGB图像相比,无法做到每个像素点都有深度值,容易缺失景物表面的细节部位的深度值的问题。
本申请实施例的第一方面提供了一种三维重建方法,包括:
获取场景的RGB图像和深度图像;
根据所述RGB图像和所述深度图像,构建所述场景的初始三维模型和纹理图像;
根据所述纹理图像中的每个像素点的梯度值,获得与所述初始三维模型的每个网格对应的迭代次数;
对所述初始三维模型的每个网格进行细分并迭代对应的迭代次数,获得所述场景的中间三维模型;
分别控制所述中间三维模型的每个顶点沿法线方向移动对应的移动量并迭代预设次数,获得所述场景的最终三维模型。
本申请实施例的第二方面提供了一种三维重建装置,包括:
图像获取模块,用于获取场景的RGB图像和深度图像;
三维重建模块,用于根据所述RGB图像和所述深度图像,构建所述场景的初始三维模型和纹理图像;
计算模块,用于根据所述纹理图像中的每个像素点的梯度值,获得与所述初始三维模型的每个网格对应的迭代次数;
网格细分模块,用于对所述初始三维模型的每个网格进行细分并迭代对应的迭代次数,获得所述场景的中间三维模型;
更新模块,用于分别控制所述中间三维模型的每个顶点沿法线方向移动对应的移动量并迭代预设次数,获得所述场景的最终三维模型。
本申请实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例的第一方面所述方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请实施例的第一方面所述方法的步骤。
本申请实施例的第一方面提供的三维重建方法,通过获取场景的RGB图像和深度图像,用来构建能够反应场景中每个点的颜色信息和深度值的初始三维模型和纹理图像;并根据纹理图像中的每个像素点的梯度值,获得与初始三维模型的每个网格对应的迭代次数,以对初始三维模型的每个网格进行细分并迭代对应的迭代次数,获得场景的中间三维模型;然后分别控制中间三维模型的每个顶点沿法线方向移动对应的移动量并迭代预设次数,从而可以获得能够体现场景的表面细节的最终三维模型,保真度高。
可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的三维重建方法的第一种流程示意图;
图2是本申请实施例提供的人脸的初始三维模型的示意图;
图3是本申请实施例提供的人脸的初始三维模型在UV坐标系下的网格的示意图;
图4是本申请实施例提供的三维重建方法的第二种流程示意图;
图5是本申请实施例提供的初始三维模型的示意图;
图6是本申请实施例提供的初始三维模型和中间三维模型的示意图;
图7是本申请实施例提供的三个不同的中间三维模型的示意图;
图8是本申请实施例提供的三维重建方法的第三种流程示意图;
图9是本申请实施例提供的标识有顶点的法线方向的中间三维模型的示意图;
图10是本申请实施例提供的三维重建装置的结构示意图;
图11是本申请实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供一种三维重建方法,可以应用于机器人、手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备,本申请实施例对终端设备的具体类型不作任何限制。本申请实施例提供的三维重建方法通过获取场景的RGB图像和深度图像,并基于场景的RGB图像和深度图像对场景进行三维重建,得到场景的三维模型,然后对该三维模型进行进一步的网格细分和顶点移动操作,最终获得能够体现场景的表面细节的三维模型,保真度高,可以用于识别场景中的景物,还用于进行场景感知。
本申请实施例提供的三维重建方法应用于机器人时,可以有效提高机器人的场景感知和景物识别功能的准确度,从而提高机器人的灵敏度。机器人具体可以是服务机器人、水下机器人、娱乐机器人、军用机器人、农业机器人等,其中,服务机器人和娱乐机器人具体可以是人形机器人、机器狗、机器猫等仿生机器人,本申请实施例对机器人的具体类型不作任何限制。
如图1所示,本申请实施例提供的三维重建方法,包括:
步骤S101、获取场景的RGB图像和深度图像。
在应用中,场景可以是集成于终端设备的相机,或者,与终端设备通信连接且受终端设备控制的相机的视野中的任意场景,该场景可以包括背景和位于背景中的至少一个景物,也可以仅包括至少一个景物或者至少一个景物的局部区域。相机可以仅包括能够拍摄RGB图像和深度图像的RGB-D相机,也可以是RGB相机和深度相机的组合,深度相机具体可以是RGB-D相机或TOF(Time Of Flight,飞行时间)相机。
在应用中,RGB图像是基于RGB色彩模式的图像,RGB色彩模式是一种颜色标准,通过对红(Red,R)、绿(Green,G)、蓝(Blue,B)三个颜色通道的颜色变化以及它们相互之间的叠加来得到各式各样的颜色,R、G和B即是代表红、绿、蓝三个颜色通道的颜色。深度图像(depth image/depth map)也被称为距离影像(range image),是将深度相机的图像传感器到场景中各点的距离(深度值)作为像素值的图像,它直接反映了场景中的景物表面的几何形状。深度图像经过坐标转换计算可以得到点云数据,点云数据也可以逆运算为深度图像。场景的RGB图像和深度图像分别记录了场景中各点的颜色信息和深度值。对于场景中的任一个点,RGB图像记录的该点的颜色信息和深度图像中记录的该点的深度值对应,也即,RGB图像中的每个像素点的颜色信息与深度图像中位置相同的一个像素点的深度值对应。位置相同是指在RGB图像和深度图像中的行位置和列位置相同,例如,RGB图像中的第I行、第J列的像素点的颜色信息与深度图像中的第I行、第J列的像素点的深度值对应;其中,I≥1、J≥1且I和J均为整数。
在一个实施例中,步骤S101包括:
通过RGB-D相机获取场景的RGB图像和深度图像;
或者,通过RGB相机获取场景的RGB图像,通过深度相机获取场景的深度图像;其中,所述RGB相机和所述深度相机已进行标定。
在应用中,在通过RGB相机获取场景的RGB图像,通过深度相机获取场景的深度图像之前,需要事先对RGB相机和深度相机进行标定,以将RGB图像和深度图像对应到同一坐标空间,使得RGB图像中的每个像素点的颜色信息与深度图像中位置相同的一个像素点的深度值对应。
步骤S102、根据所述RGB图像和所述深度图像,构建所述场景的初始三维模型和纹理图像。
在应用中,可以采用常用的三维重建算法(例如,Kinect Fusion(融合): Real-Time Dense Surface Mapping and Tracking(实时致密的表面映射和跟踪)算法),对RGB图像和深度图像进行重建,以获得场景的三维模型和纹理图像。为了与后续步骤中得到的中间三维模型和最终三维模型进行区分,步骤S101中获得的三维模型定义为初始三维模型。纹理图像是将选定的几个角度的RGB图像融合在一起得到的图像。
在一个实施例中,步骤S102包括:
对所述深度图像中的每个像素点的深度值进行投影变换,构建所述场景的初始三维模型;其中,所述深度图像中的每个像素点的深度值与所述初始三维模型的一个顶点的坐标对应;
对所述RGB图像进行仿射变换,构建所述场景的纹理图像;
将所述纹理图像贴合到所述初始三维模型,获得所述初始三维模型的每个顶点的坐标与所述纹理图像中的一个像素点的坐标之间的对应关系。
在应用中,由于RGB图像与深度图像已经事先标定对应到同一坐标空间,因此,RGB图像中的像素点与深度图像中的深度值(表现为初始三维模型中的顶点)存在一一对应的关系。三维图像算法会计算RGB图像的不同帧之间的变换关系矩阵,选定的几个角度的RGB图像经过仿射变换,最终融合成一张纹理图像。然后进行纹理贴图(UV mapping)操作:将纹理图像贴合到初始三维模型,初始三维模型的网格经过展开得到二维空间(即UV坐标系(水平方向是U,垂直方向是V))的网格,从而获得网格的顶点的坐标与纹理图像中的像素点坐标之间的对应关系。初始三维模型的每个顶点的坐标与纹理图像中的一个像素点之间的对应关系用UV坐标系描述。
如图2所示,示例性的示出了人脸的初始三维模型的示意图。
如图3所示,示例性的示出了图2中人脸的初始三维模型在UV坐标系下的网格的示意图。
步骤S103、根据所述纹理图像中的每个像素点的梯度值,获得与所述初始三维模型的每个网格对应的迭代次数。
在应用中,纹理图像中每个像素点的梯度值可以根据每个像素点的R通道、G通道和B通道的梯度值获得。具体的,对于任一像素点,可以选取该像素点的R通道、G通道和B通道的梯度值中的最大梯度值作为该像素点的梯度值;也可以对该像素点的R通道、G通道和B通道的梯度值进行排序,然后选取三个梯度值中的中位数作为该像素点的梯度值;还可以取该像素点的R通道、G通道和B通道的梯度值的平均值作为该像素点的梯度值。由于纹理图像中的每个像素点对应初始三维模型中的一个顶点,每个顶点都附属于一个网格,因此,可以间接获得网格与纹理图像中像素点的对应关系,然后根据每个网格对应的一个像素点的梯度值获得每个网格对应的迭代次数。
如图4所示,在一个实施例中,步骤S103包括:
步骤S401、计算所述纹理图像中的每个像素点的R通道、G通道和B通道的梯度值。
在应用中,可以通过常用的图像梯度计算方法(例如,Robert(罗伯特)算子、sobel(索贝尔)算子、Robinson(罗宾逊)算子、Canny(坎尼)算子,罗盘算子等边缘检测算子)来计算每个像素点的梯度值。
步骤S402、分别获取所述纹理图像中每个像素点的R通道、G通道和B通道的梯度值中的最大梯度值,作为所述纹理图像中每个像素点的梯度值。
在应用中,可以通过对像素点的R通道、G通道和B通道的梯度值进行两两比较或排序的方式,来获得其中的最大梯度值。
步骤S403、根据所述初始三维模型的每个顶点对应的所述纹理图像中的像素点的梯度值,获得所述初始三维模型的每个顶点附属的网格对应的迭代次数。
在应用中,对于纹理图像中的任一像素点,可以对该像素点的梯度值进行向上或向下取整,或者,将该像素点的梯度值乘以一个第一预设系数之后再取整,以获得与该像素点对应的顶点所附属的一个网格对应的迭代次数。第一预设系数为预先设定的已知常数,可以根据实际需要进行设定,例如,第一预设系数的取值范围为0.1~1.5,具体可以为0.1或0.6。
在一个实施例中,步骤S303,包括:
分别获取第一预设系数与所述初始三维模型的每个顶点对应的所述纹理图像中的像素点的梯度值的乘积;
分别对每个所述乘积进行向上或向下取整,得到所述初始三维模型的每个顶点附属的网格对应的迭代次数。
在应用中,乘积可以通过基于乘法器实现的乘法,或者基于加法器和移位寄存器实现的累加和移位方法来计算。可以通过向上取整函数来进行向上取整,向上取整时,迭代次数较小(例如,2.5向上取整之后为2),可以加快网格的细分进程,降低计算量,从而加快整个三维重建方法的执行速度,提高终端设备的灵敏度。可以通过向下取整函数来进行向下取整,向下取整时,迭代次数较大(例如,2.5向下取整之后为3),网格细分次数更多,使得三维模型能够体现场景的更多表面细节、提高保真度。
步骤S104、对所述初始三维模型的每个网格进行细分并迭代对应的迭代次数,获得所述场景的中间三维模型。
在应用中,对网格进行细分具体是指:在网格(三角形)的3个边中间增加1个新的顶点,然后连接新增加的3个顶点,得到新的网格。1个网格进行一次细分之后可以得到4个新的网格(三角形)。对于一个包括m个顶点和对应的m个网格的初始三维模型,对每个网格进行细分时的迭代次数都为1时,得到4×m个新的网格;对每个网格进行细分时的迭代次数都为2时,得到42×m个新的网格;…;依此类推,对每个网格进行细分时的迭代次数都为n时,得到4n×m个新的网格;其中,m≥1,n≥3且m、n为整数。对每个网格进行细分时的迭代次数,由该网格对应的纹理图像中的像素点的梯度值和第一预设系数的乘积决定,因此,对不同网格进行细分时的迭代次数不一定相同。
如图5所示,示例性的示出了初始三维模型包括3个顶点1和对应的3个网格时,对该初始三维模型的每个网格进行一次细分之后,得到的中间三维模型的示意图;其中,新增加的3个顶点标识为2,新增加的边标识为虚线。
如图6所示,示例性的示出了初始三维模型包括9个顶点3和对应的9个网格时,对该初始三维模型的每个进行一次细分之后,得到的中间三维模型的示意图;其中,左图为初始三维模型,右图为中间三维模型,新增加的17个顶点标识为4。
如图7所示,示例性的示出了对人脸的初始三维模型的每个网格进行细分并分别迭代第一迭代次数、第二迭代次数和第三迭代次数之后,得到的三个不同的中间三维模型的示意图;其中,第一迭代次数<第二迭代次数<第三迭代次数。
步骤S105、分别控制所述中间三维模型的每个顶点沿法线方向移动对应的移动量并迭代预设次数,获得所述场景的最终三维模型。
在应用中,每个顶点的法线方向为垂直于该顶点附属的网格所在的平面且指向中间三维模型的外部的方向。在每次迭代过程中,每个顶点可移动的移动量可以根据实际需要进行设置,只要保证移动量与预设次数的乘积小于或等于该顶点对应的移动总量即可,该顶点对应的移动总量的大小由该顶点对应的纹理图像中的像素点的梯度值和初始三维模型的所有网格的最大边长决定。预设次数可以根据实际需要进行设置,例如,预设次数的取值范围为5~20。预设次数较小时,可以加快中间三维模型的更新进程,降低计算量,从而加快整个三维重建方法的执行速度,提高终端设备的灵敏度。预设次数较大时,中间三维模型的更新次数更多,使得最终三维模型能够体现场景的更多表面细节、提高保真度。
在一个实施例中,步骤S105之前,包括:
分别获取第二预设系数与所述中间三维模型的每个顶点对应的移动总量的乘积,得到所述中间三维模型的每个顶点对应的移动量;
所述中间三维模型的每个顶点对应的移动总量的表达式为:
L i =▽ i ×A/(max▽ i -min▽ i );
其中,L i 表示所述中间三维模型的顶点i对应的移动总量,▽ i 表示所述顶点i对应的所述纹理图像中的像素点的梯度值,max▽ i 表示所述顶点i对应的所述纹理图像中的像素点的R通道、G通道和B通道的梯度值中的最大值,min▽ i 表示所述顶点i对应的所述纹理图像中的像素点的R通道、G通道和B通道的梯度值中的最小值,A表示所述初始三维模型的所有三角形的边长中的最大边长。
在应用中,第二预设系数可以根据实际需要进行设置,第二预设系数应当小于或等于预设次数的倒数。
如图8所示,在一个实施例中,步骤S105包括:
步骤S801、计算所述中间三维模型的每个顶点的法线方向,进入步骤S802;
步骤S802、分别控制所述中间三维模型的每个顶点沿法线方向移动对应的移动量,以更新所述中间三维模型,进入步骤S803;
步骤S803、更新所述中间三维模型的迭代次数是否达到预设次数;若是,则进入步骤S804;若否,则返回步骤S801;
步骤S804、停止迭代,将更新预设次数后的所述中间三维模型作为所述场景的最终三维模型。
在应用中,在分别控制中间三维模型的每个顶点沿法线方向移动对应的移动量,以更新中间三维模型之后,若迭代次数未达到预设次数,则重新计算中间三维模型的每个顶点的法线方向,然后再次分别控制中间三维模型的每个顶点沿法线方向移动对应的移动量,以再次更新中间三维模型;如此循环往复,直到迭代次数达到预设次数时停止迭代,并将此时更新得到的最新的中间三维模型作为最终的三维模型。
如图9所示,示例性的示出了标识有每个顶点的法线方向的中间三维模型的示意图;其中,法线方向标识为5。
在一个实施例中,步骤S105之后,包括:
对所述最终三维模型进行识别,以确定所述场景中的景物的类型。
在应用中,场景中的景物可以包括人脸、人体、动物、植物、建筑物、家具、电器等,通过对最终三维模型进行识别,可以确定场景中具体包括哪些景物,从而实现景物识别功能。进一步的,还可以根据场景中的景物类型,确定场景的类型,以实现场景感知功能,例如,场景中包括家具、电器时,可以确定场景的类型为室内场景;场景中包括植物、建筑物时,可以确定场景的类型为室外场景。
本申请实施例提供的三维重建方法,通过获取场景的RGB图像和深度图像,用来构建能够反应场景中每个点的颜色信息和深度值的初始三维模型和纹理图像;并根据纹理图像中的每个像素点的梯度值,获得与初始三维模型的每个网格对应的迭代次数,以对初始三维模型的每个网格进行细分并迭代对应的迭代次数,获得场景的中间三维模型;然后分别控制中间三维模型的每个顶点沿法线方向移动对应的移动量并迭代预设次数,从而可以获得能够体现场景的表面细节的最终三维模型,保真度高。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请实施例还提供一种三维重建装置,用于执行上述三维重建方法实施例中的方法步骤,该三维重建装置可以是终端设备中的虚拟装置(virtual appliance),由终端设备的处理器运行,也可以是终端设备本身。
如图10所示,本申请实施例的三维重建装置100,包括:
图像获取模块101,用于获取场景的RGB图像和深度图像;
三维重建模块102,用于根据所述RGB图像和所述深度图像,构建所述场景的初始三维模型和纹理图像;
计算模块103,用于根据所述纹理图像中的每个像素点的梯度值,获得与所述初始三维模型的每个网格对应的迭代次数;
网格细分模块104,用于对所述初始三维模型的每个网格进行细分并迭代对应的迭代次数,获得所述场景的中间三维模型;
更新模块105,用于分别控制所述中间三维模型的每个顶点沿法线方向移动对应的移动量并迭代预设次数,获得所述场景的最终三维模型。
在一个实施例中,所述计算模块,还用于:
分别获取第二预设系数与所述中间三维模型的每个顶点对应的移动总量的乘积,得到所述中间三维模型的每个顶点对应的移动量;
所述中间三维模型的每个顶点对应的移动总量的表达式为:
L i =▽ i ×A/(max▽ i -min▽ i );
其中,L i 表示所述中间三维模型的顶点i对应的移动总量,▽ i 表示所述顶点i对应的所述纹理图像中的像素点的梯度值,max▽ i 表示所述顶点i对应的所述纹理图像中的像素点的R通道、G通道和B通道的梯度值中的最大值,min▽ i 表示所述顶点i对应的所述纹理图像中的像素点的R通道、G通道和B通道的梯度值中的最小值,A表示所述初始三维模型的所有三角形的边长中的最大边长。
在一个实施例中,所述三维重建装置还包括:
识别模块,用于对所述最终三维模型进行识别,以确定所述场景中的景物的类型。
在应用中,三维重建装置中的各模块可以为软件程序模块,也可以通过处理器中集成的不同逻辑电路实现,还可以通过多个分布式处理器实现。图像获取模块具体可以是RGB-D相机,或者,RGB相机和深度相机的组合。
如图11所示,本申请实施例还提供一种终端设备200,其与RGB-D相机300和RGB相机400通信连接,终端设备200包括:至少一个处理器201(图11中仅示出一个处理器)、存储器202以及存储在所述存储器202中并可在所述至少一个处理器201上运行的计算机程序203,所述处理器201执行所述计算机程序203时实现上述任意三维重建方法实施例中的步骤。
在应用中,终端设备可以是机器人、桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图11仅仅是终端设备的举例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
在应用中,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在应用中,存储器在一些实施例中可以是终端设备的内部存储单元,例如终端设备的硬盘或内存。存储器在另一些实施例中也可以是终端设备的外部存储设备,例如终端设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器还可以既包括终端设备的内部存储单元也包括外部存储设备。存储器用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如计算机程序的程序代码等。存储器还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将所述装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中,上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的三维重建方法。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述任一实施例所述的三维重建方法。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置、终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置、终端设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或模块的间接耦合或通讯连接,可以是电性,机械或其它的形式。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种三维重建方法,其特征在于,包括:
获取场景的RGB图像和深度图像;
根据所述RGB图像和所述深度图像,构建所述场景的初始三维模型和纹理图像;
根据所述纹理图像中的每个像素点的梯度值,获得与所述初始三维模型的每个网格对应的迭代次数;
对所述初始三维模型的每个网格进行细分并迭代对应的迭代次数,获得所述场景的中间三维模型;
分别控制所述中间三维模型的每个顶点沿法线方向移动对应的移动量并迭代预设次数,获得所述场景的最终三维模型。
2.如权利要求1所述的三维重建方法,其特征在于,获取场景的RGB图像和深度图像,包括:
通过RGB-D相机获取场景的RGB图像和深度图像;
或者,通过RGB相机获取场景的RGB图像,通过深度相机获取场景的深度图像;其中,所述RGB相机和所述深度相机已进行标定。
3.如权利要求1所述的三维重建方法,其特征在于,根据所述RGB图像和所述深度图像,构建所述场景的初始三维模型和纹理图像,包括:
对所述深度图像中的每个像素点的深度值进行投影变换,构建所述场景的初始三维模型;其中,所述深度图像中的每个像素点的深度值与所述初始三维模型的一个顶点的坐标对应;
对所述RGB图像进行仿射变换,构建所述场景的纹理图像;
将所述纹理图像贴合到所述初始三维模型,获得所述初始三维模型的每个顶点的坐标与所述纹理图像中的一个像素点的坐标之间的对应关系。
4.如权利要求1所述的三维重建方法,其特征在于,根据所述纹理图像中的每个像素点的梯度值,获得与所述初始三维模型的每个网格对应的迭代次数,包括:
计算所述纹理图像中的每个像素点的R通道、G通道和B通道的梯度值;
分别获取所述纹理图像中每个像素点的R通道、G通道和B通道的梯度值中的最大梯度值,作为所述纹理图像中每个像素点的梯度值;
根据所述初始三维模型的每个顶点对应的所述纹理图像中的像素点的梯度值,获得所述初始三维模型的每个顶点附属的网格对应的迭代次数。
5.如权利要求4所述的三维重建方法,其特征在于,根据所述初始三维模型的每个顶点对应的所述纹理图像中的像素点的梯度值,获得所述初始三维模型的每个顶点附属的网格对应的迭代次数,包括:
分别获取第一预设系数与所述初始三维模型的每个顶点对应的所述纹理图像中的像素点的梯度值的乘积;
分别对每个所述乘积进行向上或向下取整,得到所述初始三维模型的每个顶点附属的网格对应的迭代次数。
6.如权利要求5所述的三维重建方法,其特征在于,所述第一预设系数的取值范围为0.1~1.5。
7.如权利要求1所述的三维重建方法,其特征在于,分别控制所述中间三维模型的每个顶点沿法线方向移动对应的移动量并迭代预设次数,获得所述场景的最终三维模型之前,包括:
分别获取第二预设系数与所述中间三维模型的每个顶点对应的移动总量的乘积,得到所述中间三维模型的每个顶点对应的移动量;
所述中间三维模型的每个顶点对应的移动总量的表达式为:
L i =▽ i ×A/(max▽ i -min▽ i );
其中,L i 表示所述中间三维模型的顶点i对应的移动总量,▽ i 表示所述顶点i对应的所述纹理图像中的像素点的梯度值,max▽ i 表示所述顶点i对应的所述纹理图像中的像素点的R通道、G通道和B通道的梯度值中的最大值,min▽ i 表示所述顶点i对应的所述纹理图像中的像素点的R通道、G通道和B通道的梯度值中的最小值,A表示所述初始三维模型的所有三角形的边长中的最大边长。
8.如权利要求1至7任一项所述的三维重建方法,其特征在于,分别控制所述中间三维模型的每个顶点沿法线方向移动对应的移动量并迭代预设次数,获得所述场景的最终三维模型,包括:
计算所述中间三维模型的每个顶点的法线方向;
分别控制所述中间三维模型的每个顶点沿法线方向移动对应的移动量,以更新所述中间三维模型;
返回执行计算所述中间三维模型中的每个顶点的法线方向的步骤,直到更新所述中间三维模型的迭代次数达到预设次数时停止迭代,将更新预设次数后的所述中间三维模型作为所述场景的最终三维模型。
9.一种三维重建装置,其特征在于,包括:
图像获取模块,用于获取场景的RGB图像和深度图像;
三维重建模块,用于根据所述RGB图像和所述深度图像,构建所述场景的初始三维模型和纹理图像;
计算模块,用于根据所述纹理图像中的每个像素点的梯度值,获得与所述初始三维模型的每个网格对应的迭代次数;
网格细分模块,用于对所述初始三维模型的每个网格进行细分并迭代对应的迭代次数,获得所述场景的中间三维模型;
更新模块,用于分别控制所述中间三维模型的每个顶点沿法线方向移动对应的移动量并迭代预设次数,获得所述场景的最终三维模型。
10.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010766571.1A CN111640180B (zh) | 2020-08-03 | 2020-08-03 | 一种三维重建方法、装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010766571.1A CN111640180B (zh) | 2020-08-03 | 2020-08-03 | 一种三维重建方法、装置及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111640180A CN111640180A (zh) | 2020-09-08 |
CN111640180B true CN111640180B (zh) | 2020-11-24 |
Family
ID=72331866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010766571.1A Active CN111640180B (zh) | 2020-08-03 | 2020-08-03 | 一种三维重建方法、装置及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111640180B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112132972B (zh) * | 2020-09-29 | 2024-03-22 | 凌美芯(北京)科技有限责任公司 | 一种激光与图像数据融合的三维重建方法及系统 |
CN112837406B (zh) * | 2021-01-11 | 2023-03-14 | 聚好看科技股份有限公司 | 一种三维重建方法、装置及系统 |
CN112887633B (zh) * | 2021-01-14 | 2023-06-20 | 四川航天神坤科技有限公司 | 一种基于摄像头的视频拼接和三维监控显示方法及系统 |
CN113032699B (zh) * | 2021-03-04 | 2023-04-25 | 广东博智林机器人有限公司 | 机器人的模型构建方法、模型构建装置和处理器 |
CN113421292A (zh) * | 2021-06-25 | 2021-09-21 | 北京华捷艾米科技有限公司 | 一种三维建模细节增强方法及装置 |
CN116542115B (zh) * | 2023-07-06 | 2023-10-20 | 湖南安泰康成生物科技有限公司 | 生物体目标区域电场强度模的确定方法、装置及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106875482B (zh) * | 2017-01-13 | 2020-04-28 | 浙江大学 | 一种同时定位与稠密三维重建方法 |
CN109992809B (zh) * | 2017-12-29 | 2023-03-10 | 深圳市优必选科技有限公司 | 一种建筑模型的构建方法、装置及存储装置 |
CN109636732B (zh) * | 2018-10-24 | 2023-06-23 | 深圳先进技术研究院 | 一种深度图像的空洞修复方法以及图像处理装置 |
CN111311662B (zh) * | 2020-02-12 | 2023-05-09 | 清华大学深圳国际研究生院 | 一种实时重建三维场景的方法及装置 |
CN111369666A (zh) * | 2020-03-02 | 2020-07-03 | 中国电子科技集团公司第五十二研究所 | 一种基于多台rgbd相机的动态目标重建方法和装置 |
-
2020
- 2020-08-03 CN CN202010766571.1A patent/CN111640180B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111640180A (zh) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111640180B (zh) | 一种三维重建方法、装置及终端设备 | |
CN109737974B (zh) | 一种3d导航语义地图更新方法、装置及设备 | |
CN109003325B (zh) | 一种三维重建的方法、介质、装置和计算设备 | |
CN109887003B (zh) | 一种用于进行三维跟踪初始化的方法与设备 | |
US10726580B2 (en) | Method and device for calibration | |
CN111985036B (zh) | 户型框线图绘制方法和装置、存储介质、电子设备 | |
US10832471B2 (en) | Fast T-spline fitting system and method | |
KR20210119417A (ko) | 깊이 추정법 | |
CN113689578B (zh) | 一种人体数据集生成方法及装置 | |
CN111583381B (zh) | 游戏资源图的渲染方法、装置及电子设备 | |
EP2856431A2 (en) | Combining narrow-baseline and wide-baseline stereo for three-dimensional modeling | |
CN115439607A (zh) | 一种三维重建方法、装置、电子设备及存储介质 | |
US11087536B2 (en) | Methods, devices and computer program products for generation of mesh in constructed 3D images | |
CN114187589A (zh) | 一种目标检测方法、装置、设备和存储介质 | |
CN110378948B (zh) | 3d模型重建方法、装置及电子设备 | |
US10861174B2 (en) | Selective 3D registration | |
CN116642490A (zh) | 基于混合地图的视觉定位导航方法、机器人及存储介质 | |
CN116012805A (zh) | 目标感知方法、装置、计算机设备、存储介质和程序产品 | |
CN113822994B (zh) | 三维模型构建方法、装置及存储介质 | |
CN113344957B (zh) | 图像处理方法、图像处理装置和非瞬时性存储介质 | |
CN112848312B (zh) | 三维模型对象的检测方法、装置、计算机设备及存储介质 | |
CN112419460A (zh) | 烘焙模型贴图的方法、装置、计算机设备和存储介质 | |
CN117292349B (zh) | 确定路面高度的方法、装置、计算机设备及存储介质 | |
CN112419459B (zh) | 烘焙模型ao贴图的方法、装置、计算机设备和存储介质 | |
CN115115697A (zh) | 一种3d激光定位点云地图处理方法、装置及机器人 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |