三维模型的重构方法、装置、设备及存储介质与流程

文档序号:21369514发布日期:2020-07-04 04:46阅读:429来源:国知局
三维模型的重构方法、装置、设备及存储介质与流程

本申请实施例涉及三维建模领域,特别涉及一种三维模型的重构方法、装置、设备及存储介质。



背景技术:

三维重构是一种基于二维图像构建三维模型的技术。

相关技术中,基于二维图像进行三维重构时,首先需要获取多张二维图像,该多张二维图像是从不同角度对同一重构对象进行拍摄得到的。通过对多张二维图像进行编码(即特征提取过程),再对编码结果进行解码(即基于图像特征重构三维体素的过程),从而构建出重构对象对应的三维体素模型。

然而,通过上述方式进行三维重构时,需要先拍摄多张用于三维重构的二维图像,三维重构的流程复杂,且仅能重构具有实体的重构对象,导致三维重构的应用场景受限。



技术实现要素:

本申请实施例提供了一种三维模型的重构方法、装置、设备及存储介质,可以实现利用单张图像实现三维模型重构,降低了三维模型重构时对二维图像的要求,简化了三维重构的流程。所述技术方案如下:

一方面,本申请实施例提供了一种三维模型的重构方法,所述方法包括:

获取单张目标图像,所述目标图像中包含目标重构对象的影像;

对所述目标图像进行特征提取,得到所述目标图像对应的目标特征图;

将所述目标特征图输入网格重构网络,并将所述目标特征图输入体素重构网络,所述网格重构网络和所述体素重构网络之间语义连接,所述网格重构网络用于根据所述目标特征图重构所述目标重构对象的三维网格模型,所述体素重构网络用于根据所述目标特征图重构所述目标重构对象的体素模型;

根据所述网格重构网络输出的目标网格信息构建目标三维模型,所述目标网格信息是所述目标三维模型中网格顶点的信息。

另一方面,本申请实施例提供了一种三维模型的重构装置,所述装置包括:

图像获取模块,用于获取单张目标图像,所述目标图像中包含目标重构对象的影像;

第一提取模块,用于对所述目标图像进行特征提取,得到所述目标图像对应的目标特征图;

输入模块,用于将所述目标特征图输入网格重构网络,并将所述目标特征图输入体素重构网络,所述网格重构网络和所述体素重构网络之间语义连接,所述网格重构网络用于根据所述目标特征图重构所述目标重构对象的三维网格模型,所述体素重构网络用于根据所述目标特征图重构所述目标重构对象的体素模型;

重构模块,用于根据所述网格重构网络输出的目标网格信息构建目标三维模型,所述目标网格信息是所述目标三维模型中网格顶点的信息。

另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的三维模型的重构方法。

另一方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的三维模型的重构方法。

另一方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行如上述方面所述的三维模型的重构方法。

本申请实施例提供的技术方案带来的有益效果至少包括:

不同于相关技术中需要基于多张不同角度的二维图像进行三维重构,本申请实施例中,计算机设备只需要获取单张目标图像,即可通过对目标图像进行特征提取,并利用网格重构网络基于特征图进行网格重构,利用体素重构网络基于特征图进行体素重构,进而根据网格重构网络输出的目标网格信息完成三维模型重构,降低了对三维重构所需二维图像的要求,简化了三维重构的流程,并扩大了三维重构的应用场景(能够对无实体的重构对象进行三维重构);此外,通过将网格重构网络和体素重构网络进行语义连接,使网络之间能够进行特征融合,有助于提高最终输出的目标网格信息的准确性,从而提高了基于单张图像进行三维重构的重构质量。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一个示例性实施例提供的三维模型的重构方法的原理示意图;

图2是将三维模型的重构方法应用于游戏应用时的实施示意图;

图3示出了本申请一个示例性实施例提供的实施环境的示意图;

图4示出了本申请一个示例性实施例提供的三维模型的重构方法的流程图;

图5是本申请一个示例性实施例提供的三维模型的重构方法实施过程的示意图;

图6示出了本申请另一个示例性实施例提供的三维模型的重构方法的流程图;

图7是第一解码器和第二解码器之间语义连接方式的示意图;

图8是本申请一个示例性实施例提供的网络训练过程的流程图;

图9是本申请一个示例性实施例提供的网络训练过程的实施示意图;

图10是本申请另一个示例性实施例提供的网络训练过程的流程图;

图11是本申请一个示例性实施例提供的三维模型的重构装置的结构框图;

图12示出了本申请一个示例性实施例提供的计算机设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

计算机视觉(computervision,cv)是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、光学字符识别(opticalcharacterrecognition,ocr)、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3d技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。

本申请实施例提供的三维模型的重构方法即为计算机视觉技术在三维物体重建这一场景下的应用。采用本申请实施例提供的三维模型的重构方法,如图1所示,当需要对图像11中的重构对象(图1中为飞机)进行三维重构时,首先通过特征提取网络12对图像11进行特征提取,得到特征图13。对于提取到的特征图13,分别利用网格重构网络14基于特征图13进行三维网格模型重构,并利用体素重构网络15基于特征图13进行体素模型重构。为了提高基于单张图像进行三维重构的重构质量,网格重构网络14和体素重构网络15之间语义连接(语义融合),因此在利用网格重构网络14进行三维网格模型重构时,能够融合体素重构网络15中提取到的体素特征,进而提高网格重构网络14的重构质量。最终,根据网格重构网络14输出的网格信息,即可构建得到三维模型16。

本申请实施例提供的三维模型的重构方法的应用场景可以包括如下两种:

一、在应用程序中添加新的物体

其中,该应用程序可以为虚拟现实应用程序、三维地图应用程序、军事仿真程序、第一人称射击游戏、多人在线战术竞技游戏(multiplayeronlinebattlearenagames,moba)。以应用程序为游戏为例,如图2所示,当用户需要在游戏中增加自定义虚拟武器时,在自定义武器界面21中选择上传包含自定义武器影像的图片22,由应用程序根据图片22重构自定义武器的三维模型23。当用户确定使用自定义武器时,在游戏过程中,自定义武器的三维模型23即显示在游戏画面24中,相应的,用户可以控制游戏中的虚拟对象使用该自定义武器进行攻击。

二、3d打印

将三维模型的重构方法应用于3d打印时,该方法可以实现成为3d打印应用程序的部分或全部。将待打印物体的图片输入3d打印应用程序后,3d打印应用程序即根据该图片进行三维模型重构,得到待打印物体的网格模型。进一步的,3d打印应用程序将该网格模型的模型数据发送至3d打印设备,由3d打印设备根据该模型数据进行3d打印。相较于相关技术中需要向3d打印设备输入一系列复杂的参数以及对物体的抽象描述,采用上述方法,只需要输入单张图片即可完成3d打印,简化了3d打印的流程,并降低了3d打印的实现难度。

当然,上述仅以两种典型的应用场景为例进行说明,本申请实施例提供的方法可以应用于其他需要使用到三维模型重构技术的场景(比如游戏应用开发、虚拟现实技术等等),本申请实施例并不对具体应用场景进行限定。

本申请实施例提供的三维模型的重构方法可以应用于终端或者服务器等计算机设备中。在一种可能的实施方式中,本申请实施例提供的三维模型的重构方法可以实现成为应用程序或应用程序的一部分,并被安装到终端中,使终端具备根据单张图像进行三维模型重构的功能;或者,可以应用于应用程序的后台服务器中,从而由服务器为终端中的应用程序提供三维模型重构服务。

请参考图3,其示出了本申请一个示例性实施例提供的实施环境的示意图。该实施环境中包括终端310和服务器320,其中,终端310与服务器320之间通过通信网络进行数据通信,可选地,通信网络可以是有线网络也可以是无线网络,且该通信网络可以是局域网、城域网以及广域网中的至少一种。

终端310中安装有三维模型重构需求的应用程序,该应用程序可以是虚拟现实应用程序、三维地图应用程序、军事仿真程序、第一人称射击游戏、3d打印应用程序或其他应用于三维模型重构领域的人工智能(artificialintelligence,ai)应用程序,本申请实施例对此不作限定。

可选的,终端310可以是平板电脑、膝上便携式笔记本电脑等移动终端,也可以是台式电脑、投影式电脑等终端,本申请实施例对此不做限定。

服务器320可以实现为一台服务器,也可以实现为一组服务器构成的服务器集群,其可以是物理服务器,也可以实现为云服务器。在一种可能的实施方式中,服务器320是终端310中应用程序的后台服务器。

如图3所示,终端310通过网络将单张图像上传至服务器320后,服务器320首先对图像进行特征提取,得到特征图321,然后通过语义连接的网格重构网络322和体素重构网络323分别进行三维网格模型以及体素模型重构,并最终根据网格重构网络322输出的网格信息324重构三维模型325,进而将三维模型325(可以反馈模型数据)反馈给终端310。

在其他可能的实施方式中,上述三维模型重构的过程也可以在本地完成(即由终端310实现),而无需借助服务器320,本实施例对此不作限定。

为了方便表述,下述各个实施例以三维模型的重构方法由计算机设备执行为例进行说明。

请参考图4,其示出了本申请一个示例性实施例提供的三维模型的重构方法的流程图。本实施例以该方法用于计算机设备为例进行说明,该方法包括如下步骤。

步骤401,获取单张目标图像,目标图像中包含目标重构对象的影像。

其中,目标图像为二维色彩图像,该二维色彩图像可以为灰度图像(每个像素点包含灰度值)或者红绿蓝(red-green-blue,rgb)图像(每个像素点包含rgb值)等等,本申请实施例并不对目标图像的具体类型进行限定。

并且,目标图像中包含的目标重构对象可以是人物、动物、建筑物、载具、武器、静态物体等等,本实施例并不对目标重构对象的具体类型进行限定。

可选的,当目标图像中包含多个对象的影像时,计算机设备可以根据人为指示确定目标重构对象在目标图像中所处的位置,或者自动识别(比如将图像中所占比例最大的对象确定为目标重构对象,或将图像中指定类型的对象确定为目标重构对象)目标重构对象在目标图像中所处的位置。

可选的,目标图像可以为拍摄的图像、视频截图图像或者手绘图像等等,本实施例对此不作限定。

步骤402,对目标图像进行特征提取,得到目标图像对应的目标特征图。

在一种可能的实施方式中,计算机设备中预先设置有特征提取网络,对目标图像进行预处理(比如调整图像尺寸)后,计算机设备即通过特征提取网络对目标图像进行特征提取,得到输出的目标特征图。其中,该特征提取网络可以是由若干层卷积层构成的卷积神经网络,本实施例对此不作限定。

步骤403,将目标特征图输入网格重构网络,并将目标特征图输入体素重构网络,网格重构网络和体素重构网络之间语义连接,网格重构网络用于根据目标特征图重构目标重构对象的三维网格模型,体素重构网络用于根据目标特征图重构目标重构对象的体素模型。

网格(mesh)是三维计算机图形学中表示多面体形状的顶点与多边形的集合,也被称为非结构网络,通常由三角形、四边形等简单凸多边形组成。本申请实施例中的网格重构网络即用于根据输入的特征图输出网格模型中网格顶点的网格信息。

体素是体积元素(volumepixel)的简称,是三维空间中的最小分割单位(类似于二维空间中最小的分割单位像素)。本申请实施例中的体素重构模型即用于根据输入的特征图输出体素模型中体素的体素信息。相较于网格模型,体素模型表面的平滑度较低,且缺乏节点以及节点之间的信息,模型的精度低于网格模型。

相较于基于多张不同角度的图像进行三维模型重构,基于单张图像进行三维模型重构时所能提取到的特征较少,因此为了提高模型重构质量,本申请实施例中,计算机设备分别通过网格重构网络和体素重构网络对目标特征图进行处理,并对网格重构网络和体素重构网络进行语义连接,使得网格重构网络进行网格顶点重构过程中,能够融合体素重构网络中输出的体素信息,进而提高网格顶点重构的准确性。

可选的,网格重构网络和体素重构网络之间进行语义连接后,体素重构网络中的体素特征经过映射,与网格重构网络中网格顶点的图节点特征相融合,用于网格重构网络的网格(顶点)重构,从而提高网格重构的准确度。

当然,由于本申请实施例中需要最终构建网格模型,因此需要将体素重构网络的特征融合到网格重构网络,在其他可能的实施方式中,当需要最终构建体素模型时,也可以将网格重构网络的特征融合到体素重构网络,本实施例对此不作限定。

步骤404,根据网格重构网络输出的目标网格信息构建目标三维模型,目标网格信息是目标三维模型中网格顶点的信息。

在一种可能的实施方式中,网格重构网络基于目标特征图输出目标网格信息,体素重构网络基于目标特征图输出体素信息,在进行三维模型重构时,计算机设备采用目标网格信息构建得到目标三维模型(三维网格模型)。

可选的,目标网格信息包括网格顶点的顶点坐标(三维空间坐标),还可以包括网格顶点之间的连接关系。

可选的,当目标图像的rgb图像时,计算机设备可以根据rgb图像对目标三维模型进行上色,或者,为目标三维模型添加模型纹理,本实施例对此不作限定。

综上所述,不同于相关技术中需要基于多张不同角度的二维图像进行三维重构,本申请实施例中,计算机设备只需要获取单张目标图像,即可通过对目标图像进行特征提取,并利用网格重构网络基于特征图进行网格重构,利用体素重构网络基于特征图进行体素重构,进而根据网格重构网络输出的目标网格信息完成三维模型重构,降低了对三维重构所需二维图像的要求,简化了三维重构的流程,并扩大了三维重构的应用场景(能够对无实体的重构对象进行三维重构);此外,通过将网格重构网络和体素重构网络进行语义连接,使网络之间能够进行特征融合,有助于提高最终输出的目标网格信息的准确性,从而提高了基于单张图像进行三维重构的重构质量。

在一种可能的实施方式中,当上述方法用于支持虚拟环境的应用程序时,构建得到目标三维模型后,计算机设备在虚拟环境中显示目标三维模型,该目标三维模型可以是虚拟环境中的虚拟道具(比如虚拟外武器)、虚拟载具(比如虚拟飞机、虚拟汽车)或虚拟对象(比如虚拟人物、虚拟动物等等)中的至少一种;当上述方法用于立体打印应用程序(比如3d打印机)时,计算机设备向立体打印设备发送目标三维模型的模型数据,以便立体打印设备根据该模型数据打印实体模型。

在一种可能的实施方式中,如图5所示,网格重构网络由关键点提取子网络504、邻接关系提取子网络506和第一解码器508构成,而体素重构网络由第二解码器509构成,且第一解码器508和第二解码器509语义连接。通过编码器502对目标图像501进行特征提取得到目标特征图503后,利用关键点提取子网络506从目标特征图503中提取出关键点特征图507,利用邻接关系提取子网络504提取出指示特征点邻接关系的邻接矩阵505,从而将邻接矩阵505和关键点特征图507输入第一解码器508,完成网格模型重构。同时,将目标特征图503输入第二解码器509,并根据第一解码器508和第二解码器509的语义连接结果输入目标网格信息,重构得到目标三维模型510。下面采用示例性的实施例进行说明。

请参考图6,其示出了本申请另一个示例性实施例提供的三维模型的重构方法的流程图。本实施例以该方法用于计算机设备为例进行说明,该方法包括如下步骤。

步骤601,获取单张目标图像,目标图像中包含目标重构对象的影像。

本步骤的实施方式可以参考上述步骤401,本实施例在此不再赘述。

步骤602,对目标图像进行特征提取,得到目标图像对应的目标特征图。

示意性的,如图5所示,计算机设备将目标图像501输入编码器502中,由编码器502中的卷积层对目标图像进行特征提取(逐步提取浅层特征和深层特征),输出目标特征图503。其中,目标特征图为多通道(channel)特征图。

完成特征图提取后,计算机设备通过下述步骤603至605进行网格重构,通过下述步骤606进行体素重构。需要说明的是,下述步骤603至605与步骤606之间并不存在严格的先后时序,本实施例以步骤603至605与步骤606同步执行为例进行说明,但并不对此构成限定。

步骤603,将目标特征图输入关键点提取子网络,得到关键点提取子网络输出的关键点特征图,关键点特征图包括目标图像中关键特征点的图像特征。

经过特征提取得到的目标特征图包含大量通道(每个通道对应一张特征图),其中包含少量关键特征点(在特征提取过程中对卷积核响应较高的特征点)对应的特征图,以及大量非关键特征点(在特征提取过程中对卷积核响应较低的特征点)对应的特征图。若直接基于目标特征图进行后续网格重构,运算量过大,且存在大量无效运算,不仅影响模型重构速度,还会造成运算资源浪费。

为了降低运算量并提高模型重构速度,可选的,计算机设备通过关键点提取子网络,从目标特征图中提取出关键特征点对应的关键点特征图(或称为关键点图层),达到了限制特征图通道数的效果。其中,关键点特征图的数量可以为预设数量。比如,关键点特征图的数量为100。

针对提取关键点特征图的方式,在一种可能的实施方式中,计算机设备预先训练关键点提取子网络(采用卷积网络),该关键点提取子网络的输入为目标特征图,输出即为预设数量的关键点特征图。

示意性的,当关键点特征图的数量为100时,计算机设备即训练输出通道为100的关键点提取子网络,并在应用过程中,将目标特征图(比如包含1000个通道)输入该关键点提取子网络,得到输出的100个通道的关键点特征图。

在另一种可能的实施方式中,由于在特征提取过程关键特征点对卷积核的响应高于非关键特征点,因此计算机设备可以根据各个通道对应特征图中,特征值的绝对值之和,从中选取绝对值之和最大的前k个特征图,并将这k个特征图确定为关键点特征图。

示意性的,当提高到5×5×1000(1000为通道数)的目标特征图时,计算机设备计算各个特征图中25个特征值的绝对值之和,得到1000个绝对值之和,并筛选出绝对值之和最大的前100个特征图作为关键点特征图。

当然,除了采用上述两种方式获取关键点特征图外,计算机设备还可以采用其他可能的方式提取关键特征点对应的特征图,本实施例对此不作限定。

通过上述对特征图的通道数进行限制后,在保留关键特征点对应特征图的前提下,降低了后续对特征图进行处理时的运算量,又保证了后续模型重构的质量,又提高了模型重构的速度。

步骤604,将目标特征图输入邻接关系提取子网络,得到邻接关系提取子网络输出的邻接矩阵,邻接矩阵用于表征目标重构对象中特征点的邻接关系。

除了确定出关键点特征图外,计算机设备还需要基于目标特征图提取目标重构对象中特征点之间的邻接关系,该邻接关系即采用邻接矩阵表示。

邻接矩阵(adjacencymatrix)是一种用于表示顶点之间相邻关系的矩阵,且邻接矩阵中的元素关于主对角线对称。其中,对于一个i×j的邻接矩阵,对于矩阵元素aij,若aij的值为0,表示第i个顶点与第j个顶点之间不相邻(即不存在连线直接连接两个顶点),若aij的值为1,表示第i个顶点与第j个顶点之间不相邻,且aij与aji的值相同。

本申请实施例中,计算机设备通过邻接关系提取子网络,基于目标特征图提取特征点之间的邻接关系。其中,计算机设备可以通过坍塌二维空间的方式得到邻接矩阵。

针对通过邻接关系提取子网络获取邻接矩阵的方式,在一种可能的实施方式中,计算机设备通过邻接关系提取子网络对目标特征图进行线性变化,得到特征矩阵a,从而根据特征矩阵a及其导致at,计算得到目标特征图对应的邻接矩阵,其中,该邻接矩阵=a×at

当然,除了采用上述方式获取邻接矩阵外,计算机设备还可以采用其他可能的方式提取特征点之间的邻接关系,本实施例对此不作限定。

需要说明的是,上述步骤603与604之间并不存在严格的先后关系,本实施例以步骤603和604同步执行为例进行说明,但并不对此构成限定。

步骤605,通过第一解码器对关键点特征图和邻接矩阵进行图卷积处理。

可选的,第一解码器由若干个图卷积层构成,各个图卷积层用于对输入进行图卷积处理,输出重构网格顶点的特征(即图节点特征),而第一解码器最终输出的则是重构网格顶点的网格信息。

由于通过上述步骤604得到的邻接矩阵用于表征各个特征点之间的邻接关系,而步骤603筛选出关键特征点对应的关键点特征图,因此通过第一解码器进行图卷积处理时,还包括如下步骤。

一、根据关键点特征图中各个位置的特征值,确定关键特征点。

由于关键特征点对卷积核的响应较高,因此可选的,计算机设备确定各个关键点特征图中特征值(绝对值)最大的位置,进而将该位置对应的特征点(空间位置)确定为关键特征点。

二、根据关键特征点和邻接矩阵,确定关键点邻接矩阵,关键点邻接矩阵用于表征关键特征点之间的邻接关系。

进一步的,计算机设备根据关键特征点对邻接矩阵中非关键特征点对应的矩阵元素进行过滤,得到指示关键特征点间邻接关系的关键点邻接矩阵,该关键点邻接矩阵为k×k矩阵,k即为关键特征点的数量。

三、通过第一解码器对关键点特征图和关键点邻接矩阵进行图卷积处理。

通过上述步骤得到关键点邻接矩阵后,计算机设备即将关键点邻接矩阵(关键特征点邻接关系)以及关键点特征图(关键特征点的特征)输入第一解码器,由第一解码器进行图卷积处理。

步骤606,通过第二解码器对目标特征图进行三维卷积处理。

可选的,第二解码器由若干个三维卷积层(3d卷积层)构成,各个三维卷积层用于对输入进行三维卷积处理,输出重构体素的三维特征,而第二解码器最终输出的则是重构体素的体素信息。

本申请实施例中,第一解码器与第二解码器之间语义连接,且第二解码器中三维卷积层输出的特征能够与第一解码器中图卷积层输出的特征进行融合。示意性的,第一解码器与第二解码器之间语义连接关系如图7所示。计算机设备通过第一解码器和第二解码器进行解码过程中,对解码器中间解码结果进行语义融合的过程如下述步骤607至609所述。

步骤607,获取第二解码器中第n三维卷积层输出的三维特征,三维特征用于表征重构体素的特征,n为大于等于1的整数。

在一种可能的实施方式中,三维卷积层输出的三维特征表示为w(宽)×h(高)×d(深度)×c(通道)的特征图,第n三维卷积层对输入进行三维卷积处理后,输出三维特征,为了在进行网格重构时能够融入体素重构的特征,计算机设备获取该三维特征,用于后续特征融合。

步骤608,获取第一解码器中第n图卷积层输出的图节点特征,图节点特征用于表征重构网格顶点的特征。

可选的,图卷积层除了输出图节点特征外,还输出重构网格顶点的顶点坐标。与上述步骤类似的,计算机设备获取与第n三维卷积层对应的第n图卷积层输出的图节点特征,用于后续特征融合。

步骤609,对三维特征和图节点特征进行特征融合,并将融合后的特征输入第n+1图卷积层。

对于获取到的三维特征和图节点特征,计算机设备将两者进行特征融合,从而将融合后的特征输入第n+1图卷积层进行图卷积处理。由于输入n+1图卷积层的特征融入和体素特征,即特征的表征维度更加丰富,因此第n+1图卷积层进行图卷积处理后输出的图节点特征更加准确,相应的,重构网格顶点的顶点坐标更加贴合目标重构对象。

针对特征融合的方式,在一种可能的实施方式中,本步骤包括如下步骤。

一、获取图节点特征对应重构网格顶点的顶点坐标。

将三维特征融合到图节点特征的过程可以理解为三维空间的特征投射到二维空间(节点池化过程)。因此在进行特征融合前,计算机设备需要获取图节点特征对应重构网格顶点的顶点坐标,以便将三维空间中该顶点坐标处的特征投射到二维空间。

可选的,该顶点坐标由第n图卷积层输出,表示为(x,y,z)。

二、对顶点坐标周侧的三维特征进行线性插值运算,并将线性插值运算得到的特征与图节点特征进行特征融合。

在一种可能的实施方式中,获取到顶点坐标后,计算机设备根据该顶点坐标,获取该顶点坐标周侧体素(比如周侧8个体素)对应的三维特征,从而对获取到的三维特征进行线性插值运算,得到待融合特征。

进一步的,计算机设备将运算得到的特征与图节点特征进行特征融合(可以采用concat进行特征融合),输入下一个图卷积层。

示意性的,如图7所示,计算机设备对三维卷积层71输出的三维特征进行节点池化后,将节点池化后的特征与图卷积层74输出的图节点特征进行特征融合,并将融合后的特征输入图卷积层75;类似的,计算机设备对三维卷积层72输出的三维特征进行节点池化后,将节点池化后的特征与图卷积层75输出的图节点特征进行特征融合,并将融合后的特征输入图卷积层76。

步骤610,根据第一解码器输出的目标网格信息构建目标三维模型,目标网格信息是目标三维模型中网格顶点的信息。

在进行三维模型重构时,计算机设备采用第一解码器输出的目标网格信息构建目标三维模型。

本实施例中,计算机设备利用关键点提取子网络对目标特征图的通道数进行限制,得到关键特征点对应的关键特征图,进而对关键特征图以及关键点邻接矩阵进行图卷积处理,实现网格重构,在保证重构质量的前提下,降低重构时的运算量,提高了模型重构的速度。

此外,本实施例中,计算机设备对第二解码器中三维卷积层输出的三维特征进行节点池化,并与对应图卷积层输出的图节点特征进行融合,实现了体素特征与网格特征的互补,进而提高了模型重构的质量。

关于上述网格重构网络和体素重构网络的训练方式,在一种可能的实施方式,如图8所示,该训练过程包括如下步骤。

步骤801,对样本图像进行特征提取,得到样本图像对应的样本特征图,样本图像中包括样本重构对象的影像。

其中,计算机设备对样本图像进行特征提取的过程可以参考应用阶段对目标图像进行特征提取的过程,本实施例在此不再赘述。

步骤802,将样本特征图输入网格重构网络,并将样本特征图输入体素重构网络。

与应用阶段类似的,在训练阶段,计算机设备分别将样本特征图输入网格重构网络和体素重构网络(网络间同样语义连接),由网格重构网络对样本重构对象进行网格模型重构,由体素重构网络对样本重构对象进行体素模型重构。

步骤803,获取网格重构网络输出的样本网格信息,以及体素重构网络输出的样本体素信息。

由于体素重构网络中的体素特征会融入到网格重构网络中,因此,体素重构网络输出的体素信息的准确性也将影响到网格重构网络输出的网格信息的准确性,因此在训练阶段,计算机设备需要同时基于网格重构网络输出的样本网格信息,以及体素重构网络输出的样本体素信息,对两个网络进行同步训练。

可选的,样本网络信息包括网格重构模型中各个网格顶点对应的顶点坐标,体素信息包括体素重构模型中各个体素对应的体素坐标。

步骤804,根据样本网格信息、样本体素信息以及标准三维模型,确定网络损失,标准三维模型是样本重构对象对应的三维模型。

在一种可能的实施方式中,计算机设备根据样本网格信息和标准三维模型(对应的标准网格信息),通过损失函数(lossfunction)确定网格重构损失,根据样本体素信息和标准三维模型(对应的标准体素信息)确定体素重构损失,从而将网格重构损失和体素重构损失确定为网络损失。

可选的,样本图像可以是对标准三维模型进行二维图像采集得到的图像;或者,标准三维模型可以是基于样本图像中样本重构对象人为构建的三维模型,作为网络训练过程中的监督。

步骤805,根据网络损失训练网格重构网络和体素重构网络。

可选的,计算机设备采用端到端的方式进行网络训练,即根据网络损失通过反向传播算法或梯度下降算法对网格重构网络和体素重构网络中的网络参数进行训练,直至网络损失满足收敛条件时,完成网络训练。

在一种可能的实施方式中,如图9所示,样本图像901经过编码器902编码后得到样本特征图903,由网格重构网络904基于样本特征图903进行网格模型重构,输出样本网格信息905,并由体素重构网络906基于样本特征图903进行体素模型重构,输出样本体素信息907。可见,优于后续网格和体素重构均依赖于样本特征图903,因此编码器902的特征提取质量尤为重要。因此,计算机设备在训练网络的同时,需要对编码器进行同步训练。

在一种可能的实施方式中,如图10所述,训练过程可以包括如下步骤。

步骤1001,通过编码器对样本图像进行特征提取,得到样本图像对应的样本特征图,样本图像中包括样本重构对象的影像。

可选的,编码器是由若干个卷积层构成的卷积神经网络。本实施例对编码器的结构不作限定。

步骤1002,将样本特征图输入网格重构网络,并将样本特征图输入体素重构网络。

步骤1003,获取网格重构网络输出的样本网格信息,以及体素重构网络输出的样本体素信息。

上述步骤1002至1003的实施方式可以参考步骤802至803,本实施例在此不再赘述。

步骤1004,获取编码器输出的中间特征图,中间特征图的特征提取深度低于样本特征图的特征提取深度。

编码器对图像进行特征过程中,特征提取的深度不断增加(越来越多抽象),最终输出表征图像深层特征的特征图。为了提高后续重构图像的质量,计算机设备除了基于样本特征图(深层特征)进行图像重构外,还需要基于编码器编码过程中输出的中间特征图。

在一种可能的实施方式中,计算机设备获取编码器中指定卷积层输出的中间特征图,从而得到表征浅层特征的特征图。

步骤1005,对中间特征图和样本特征图进行跳跃连接,并将连接得到的特征图输入第三解码器,得到第三解码器输出的重构样本图像。

可选的,计算机设备采用跳跃连接的方式,将获取到的样本特征图和中间特征图进行连接。其中,特征图之间跳跃连接的过程可以参考u形网络(u-net)中不同层级之间特征跳跃连接的过程(深层特征和浅层特征相连接)。

在一个示意性的例子中,计算机设备获取到5个中间特征图,分别为第一中间特征图、第二中间特征图、第三中间特征图、第四中间特征图和第五中间特征图。进行跳跃连接时,计算机设备将第一中间特征图与样本特征图连接,将第二中间特征图与第五中间特征图连接,将第三中间特征图与第四中间特征图连接。

进一步的,计算机设备将连接得到的特征图输入第三解码器,由第三解码器基于特征进行样本图像重构(或称为还原)。其中,第三解码器中包含若干反卷积层,用于对输入的特征进行反卷积处理,从而还原出原始图像。

步骤1006,根据样本网格信息、样本体素信息、标准三维模型、样本图像以及重构样本图像,确定网络损失。

在一种可能的实施方式中,本步骤可以包括如下步骤:

一、根据样本网格信息和标准三维模型,确定网格重构损失。

在一种可能的实施方式中,计算机设备根据样本网络信息以及标准三维模型对应的标准网格信息,通过第二范数损失函数计算网络重构损失,该计算过程可以表示为如下公式:

l2=l2(y,b)

其中,l2为网格重构损失,l2为第二范数损失,y为标准三维模型,b为样本网格信息。

二、根据样本体素信息和标准三维模型,确定体素重构损失。

在一种可能的实施方式中,计算机设备根据样本体素信息以及标准三维模型对应的标准体素信息,通过平均方差(meansquareerror)函数计算得到体素重构损失,该计算过程可以表示为如下公式:

l3=mse(y,c)

其中,l3为体素重构损失,mse为平均方差,y为标准三维模型,为样本体素信息。

三、根据重构样本图像和样本图像,确定图像重构损失。

在一种可能的实施方式中,计算机设备以样本图像为监督,通过mse函数计算重构样本图像的图像重构损失,该计算过程可以表示为如下公式:

l1=mse(x,a)

其中,l1为图像重构损失,x为样本图像,为重构样本图像。

四、将网格重构损失、体素重构损失和图像重构损失确定为网络损失。

在一种可能的实施方式中,计算机设备根据网格重构损失、体素重构损失和图像重构损失,及各项重构损失各自对应的超参数(用于控制损失比重),确定网络损失。其中,网络损失可以表示为:

l=l1+αl2+βl3

其中,α和β分别为网格重构损失和体素重构损失对应的超参数。

步骤1007,根据网络损失训练网格重构网络、体素重构网络、编码器和第三解码器。

与上述步骤805类似的,计算机设备采用端到端的方式进行网络训练,即根据网络损失通过反向传播算法或梯度下降算法对网格重构网络、体素重构网络、编码器和第三解码器中的网络参数进行训练,直至网络损失满足收敛条件时,完成网络训练。

本实施例中,计算机设备从网格重构损失、体素重构损失和图像重构损失三个方面构建网络损失,并基于网络损失对编码器以及解码器进行训练,提高了编码器和解码器的编解码质量,从而提高了后续模型重构的质量。

图11是本申请一个示例性实施例提供的三维模型的重构装置的结构框图,该装置可以设置于上述实施例所述的计算机设备,如图11所示,该装置包括:

图像获取模块1101,用于获取单张目标图像,所述目标图像中包含目标重构对象的影像;

第一提取模块1102,用于对所述目标图像进行特征提取,得到所述目标图像对应的目标特征图;

输入模块1103,用于将所述目标特征图输入网格重构网络,并将所述目标特征图输入体素重构网络,所述网格重构网络和所述体素重构网络之间语义连接,所述网格重构网络用于根据所述目标特征图重构所述目标重构对象的三维网格模型,所述体素重构网络用于根据所述目标特征图重构所述目标重构对象的体素模型;

重构模块1104,用于根据所述网格重构网络输出的目标网格信息构建目标三维模型,所述目标网格信息是所述目标三维模型中网格顶点的信息。

可选的,所述网格重构网络包括关键点提取子网络、邻接关系提取子网络和第一解码器;

所述输入模块1103,包括:

第一输入单元,用于将所述目标特征图输入所述关键点提取子网络,得到所述关键点提取子网络输出的关键点特征图,所述关键点特征图包括所述目标图像中关键特征点的图像特征;

第二输入单元,用于将所述目标特征图输入所述邻接关系提取子网络,得到所述邻接关系提取子网络输出的邻接矩阵,所述邻接矩阵用于表征所述目标重构对象中特征点的邻接关系;

图卷积单元,用于通过所述第一解码器对所述关键点特征图和所述邻接矩阵进行图卷积处理。

可选的,所述图卷积单元,用于:

根据所述关键点特征图中各个位置的特征值,确定所述关键特征点;

根据所述关键特征点和所述邻接矩阵,确定关键点邻接矩阵,所述关键点邻接矩阵用于表征所述关键特征点之间的邻接关系;

通过所述第一解码器对所述关键点特征图和所述关键点邻接矩阵进行图卷积处理。

可选的,所述体素重构网络包括第二解码器,所述第二解码器用于对所述目标特征图进行三维卷积处理,且所述第一解码器与所述第二解码器之间语义连接;

所述装置还包括:

第一特征获取模块,用于获取所述第二解码器中第n三维卷积层输出的三维特征,所述三维特征用于表征重构体素的特征,n为大于等于1的整数;

第二特征获取模块,用于获取所述第一解码器中第n图卷积层输出的图节点特征,所述图节点特征用于表征重构网格顶点的特征;

特征融合模块,用于对所述三维特征和所述图节点特征进行特征融合,并将融合后的特征输入第n+1图卷积层。

可选的,所述特征融合模块,包括:

坐标获取单元,用于获取所述图节点特征对应重构网格顶点的顶点坐标;

融合单元,用于对所述顶点坐标周侧的所述三维特征进行线性插值运算,并将线性插值运算得到的特征与所述图节点特征进行特征融合。

可选的,所述装置还包括:

显示模块,用于在虚拟环境中显示所述目标三维模型,所述目标三维模型是所述虚拟环境中的虚拟道具、虚拟载具或虚拟对象中的至少一种;

或者,

打印模块,用于向立体打印设备发送所述目标三维模型的模型数据,所述立体打印设备用于根据所述模型数据打印实体模型。

可选的,所述装置还包括:

第二提取模块,用于对样本图像进行特征提取,得到所述样本图像对应的样本特征图,所述样本图像中包括样本重构对象的影像;

样本特征输入模块,用于将所述样本特征图输入所述网格重构网络,并将所述样本特征图输入所述体素重构网络;

样本信息获取模块,用于获取所述网格重构网络输出的样本网格信息,以及所述体素重构网络输出的样本体素信息;

损失计算模块,用于根据所述样本网格信息、所述样本体素信息以及标准三维模型,确定网络损失,所述标准三维模型是所述样本重构对象对应的三维模型;

训练模块,用于根据所述网络损失训练所述网格重构网络和所述体素重构网络。

可选的,所述样本特征图由编码器对所述样本图像进行特征提取得到;

所述装置还包括:

第三特征获取模块,用于获取所述编码器输出的中间特征图,所述中间特征图的特征提取深度低于所述样本特征图的特征提取深度;

图像重构模块,用于对所述中间特征图和所述样本特征图进行跳跃连接,并将连接得到的特征图输入第三解码器,得到所述第三解码器输出的重构样本图像;

所述损失计算模块,用于根据所述样本网格信息、所述样本体素信息、所述标准三维模型、所述样本图像以及所述重构样本图像,确定所述网络损失;

所述训练模块,用于根据所述网络损失训练所述网格重构网络、所述体素重构网络、所述编码器和所述第三解码器。

可选的,所述损失计算模块,还用于:

根据所述样本网格信息和所述标准三维模型,确定网格重构损失;

根据所述样本体素信息和所述标准三维模型,确定体素重构损失;

根据所述重构样本图像和所述样本图像,确定图像重构损失;

将所述网格重构损失、所述体素重构损失和所述图像重构损失确定为所述网络损失。

综上所述,不同于相关技术中需要基于多张不同角度的二维图像进行三维重构,本申请实施例中,计算机设备只需要获取单张目标图像,即可通过对目标图像进行特征提取,并利用网格重构网络基于特征图进行网格重构,利用体素重构网络基于特征图进行体素重构,进而根据网格重构网络输出的目标网格信息完成三维模型重构,降低了对三维重构所需二维图像的要求,简化了三维重构的流程,并扩大了三维重构的应用场景(能够对无实体的重构对象进行三维重构);此外,通过将网格重构网络和体素重构网络进行语义连接,使网络之间能够进行特征融合,有助于提高最终输出的目标网格信息的准确性,从而提高了基于单张图像进行三维重构的重构质量。

需要说明的是:上述实施例提供的三维模型的重构装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的三维模型的重构装置与三维模型的重构方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

请参考图12,其示出了本申请一个示例性实施例提供的计算机设备的结构示意图。具体来讲:所述计算机设备1200包括中央处理单元(centralprocessingunit,cpu)1201、包括随机存取存储器1202和只读存储器1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。所述计算机设备1200还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(input/output,i/o系统)1206,和用于存储操作系统1213、应用程序1214和其他程序模块1215的大容量存储设备1207。

所述基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中所述显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1210连接到中央处理单元1201。所述基本输入/输出系统1206还可以包括输入输出控制器1210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1210还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。所述大容量存储设备1207及其相关联的计算机可读介质为计算机设备1200提供非易失性存储。也就是说,所述大容量存储设备1207可以包括诸如硬盘或者驱动器之类的计算机可读介质(未示出)。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括随机存取记忆体(ram,randomaccessmemory)、只读存储器(rom,readonlymemory)、闪存或其他固态存储其技术,只读光盘(compactdiscread-onlymemory,cd-rom)、数字通用光盘(digitalversatiledisc,dvd)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1207可以统称为存储器。

存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1201执行,一个或多个程序包含用于实现上述方法的指令,中央处理单元1201执行该一个或多个程序实现上述各个方法实施例提供的方法。

根据本申请的各种实施例,所述计算机设备1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1200可以通过连接在所述系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。

所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的方法中由计算机设备所执行的步骤。

本申请实施例还提供一种计算机可读存储介质,该可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述任一实施例所述的三维模型的重构方法。

本申请还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述各个方法实施例提供的三维模型的重构方法。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述任一方法实施例所述的三维模型的重构方法。

可选地,该计算机可读存储介质可以包括:rom、ram、固态硬盘(ssd,solidstatedrives)或光盘等。其中,ram可以包括电阻式随机存取记忆体(reram,resistancerandomaccessmemory)和动态随机存取存储器(dram,dynamicrandomaccessmemory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1