一种人体三维模型重建方法与流程

文档序号:26940094发布日期:2021-10-12 15:29阅读:347来源:国知局
一种人体三维模型重建方法与流程

1.本技术涉及计算机视觉技术领域,尤其涉及一种人体三维模型重建方法。


背景技术:

2.三维重建是计算机视觉未来发展的关键技术,目前在开发应用的是针对诸如人体这种有特定形貌和特征的群体,广泛应用于各种交互场景中。人体三维模型重建是指根据单张或者多张的二维图像重建出人体三维模型的过程。
3.人体三维模型重建可以根据多张图像生成人体三维模型,也可根据单张图像生成人体三维模型。根据多张图像生成人体三维模型过程较为繁琐;根据单张rgbd图像对硬件系统的要求较高,一般需要基于红外深度的摄像头,成本高,支持设备少;而根据单张rgb图像生成人体三维模型的方法,若需求高分辨率的人体三维模型,则需要大量的存储和计算资源。
4.现有技术都是一次性重建身体所有部分,重建分辨率一致。因而产生高精度三维模型需要大量的算力和内存需求,而产生分辨率较低三维模型虽然可以在手机等终端设备实施,但是难以满足用户需求。


技术实现要素:

5.本技术提供了一种人物识别方法及装置,能够解决当目标人物更换衣物后,识别准确率低的问题。
6.为达到上述目的,本技术采用如下技术方案:
7.本技术第一方面,提供了一种人体三维模型重建方法。
8.具体的,在获取到即时拍摄到的或从已经存储的图片中选取的包括人体特征目标图像后,对该目标图像进行图像分割,得到掩模,所述掩模用于区分所述人体特征和非人体特征;对该目标图像或掩模进行三维重建,得到总人体三维模型,所述总人体三维模型用于描述整个人体特征;对目标图像进行语义分割,得到用于区分具有不同语义的人体特征的语义分割图像,或者,对掩模进行语义分割,得到用于区分具有不同语义的人体特征的语义分割掩模,对语义分割图像或语义分割掩模进行三维重建,得到子人体三维模型,所述子人体三维模型用于描述具有不同语义的人体特征;融合总人体三维模型和子人体三维模型,得到融合人体三维模型,其中,由于总人体三维模型的分辨率和子人体三维模型的分辨率不同,因此,融合人体三维模型的不同特征部分具有不同的分辨率。
9.本技术第一方面提供的一种人体三维模型重建方法能够在保持人体三维模型的部分特征高分辨率的同时,降低人体三维模型重建对于终端计算能力和存储能力的要求。
10.根据第一方面,在第一方面的第一种可能的实现方式中,具有不同语义的人体特征包括:头部,身体,胳膊,腿部,手部或脚部。
11.具有不同语义的人体特征能够很好的区分人体特征,用户可以根据需要确定哪些语义的人体特征对高分辨率的需求很高,哪些语义的人体特征不需要很高的分辨率即可。
12.根据第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,对所述目标图像进行图像分割,得到掩模具体包括:
13.将所述目标图像输入到预先训练好的第一神经网络模型中进行图像分割,得到掩模,所述掩模用于区分所述人体特征和非人体特征,所述第一神经网络是根据预先标注人体与背景的图像训练得到的。
14.掩模能够很好的区分人体特征和非人体特征,有益于更好的识别目标图像中的人体特征。
15.根据第一方面或第一方面的第一至第二种可能的实现方式,在第一方面的第三种可能的实现方式中,对所述目标图像或掩模进行三维重建,得到总人体三维模型具体包括:
16.将所述目标图像或所述掩模输入到重建模块中,得到所述总人体三维模型,所述总人体三维模型用于描述整个人体特征。重建模块包括第三神经网络模型或参数化模型,所述重建模块能够根据二维图像通过卷积生成三维模型。总人体三维模型包括总人体三维网格模型或总人体三维符号距离场体模型。
17.根据第一方面或第一方面的第一至第三种可能的实现方式,在第一方面的第四种可能的实现方式中,根据所述语义分割图像,得到所述子人体三维模型具体包括:
18.将所述目标图像或所述掩模输入到预先训练好的第二神经网络模型中进行语义分割,得到所述语义分割图像或所述语义分割掩模,所述语义分割图像或所述语义分割掩模用于区分所述具有不同语义的人体特征,所述第二神经网络是根据预先标注人体特征语义的图像训练得到的。
19.根据第一方面或第一方面的第一至第四种可能的实现方式,在第一方面的第五种可能的实现方式中,对所述语义分割图像或语义分割掩模进行三维重建,得到子人体三维模型具体包括:
20.将所述语义分割掩模或所述语义分割图像输入到重建模块中,得到所述子人体三维模型,所述子人体三维模型用于描述具有不同语义的人体特征。重建模块包括第三神经网络模型或参数化模型,所述重建模块能够根据二维图像通过卷积生成三维模型。子人体三维模型包括子人体三维网格模型或子人体三维符号距离场体模型。
21.根据第一方面或第一方面的第一至第五种可能的实现方式,在第一方面的第六种可能的实现方式中,当子人体三维模型为所述子人体三维网格模型,或者,当总人体三维模型为所述总人体三维网格模型时,所述方法还包括:
22.网格处理,所述网格处理包括对所述总人体三维网格模型或所述子人体三维网格模型进行网格补洞,网格均一化和/或网格平滑。
23.根据第一方面或第一方面的第一至第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述融合所述总人体三维模型和所述子人体三维模型,得到融合人体三维模型,具体包括:
24.对所述子人体三维模型和所述总人体三维模型进行边缘切割,其中,所述子人体三维模型上所切割的边缘和所述总人体三维模型上所切割的边缘具有互补性;
25.缝合所述总人体三维模型和所述子人体三维模型,得到所述融合人体三维模型。
26.通过边缘切割和缝合得到的融合人体三维模型,能够在保证整体性的情况下,保持高分辨率的同时,降低人体三维模型重建对于终端计算能力和存储能力的要求。
27.本技术第二方面,提供了一种人体三维模型重建装置。该人体三维模型重建装置包括获取单元、处理单元和融合单元。
28.具体的,上述获取单元,用于获取到即时拍摄到的或从已经存储的图片中选取的包括人体特征目标图像;上述处理单元,用于对该目标图像进行图像分割,得到掩模,所述掩模用于区分所述人体特征和非人体特征;对该目标图像或掩模进行三维重建,得到总人体三维模型,所述总人体三维模型用于描述整个人体特征;对目标图像进行语义分割,得到用于区分具有不同语义的人体特征的语义分割图像,或者,对掩模进行语义分割,得到用于区分具有不同语义的人体特征的语义分割掩模,对语义分割图像或语义分割掩模进行三维重建,得到子人体三维模型,所述子人体三维模型用于描述具有不同语义的人体特征;上述融合单元,用于融合总人体三维模型和子人体三维模型,得到融合人体三维模型,其中,由于总人体三维模型的分辨率和子人体三维模型的分辨率不同,因此,融合人体三维模型的不同特征部分具有不同的分辨率。
29.本技术第二方面提供的一种人体三维模型重建装置能够在保持人体三维模型的部分特征高分辨率的同时,降低人体三维模型重建对于终端计算能力和存储能力的要求。
30.根据第二方面,在第二方面的第一种可能的实现方式中,具有不同语义的人体特征包括:头部,身体,胳膊,腿部,手部或脚部。
31.具有不同语义的人体特征能够很好的区分人体特征,用户可以根据需要确定哪些语义的人体特征对高分辨率的需求很高,哪些语义的人体特征不需要很高的分辨率即可。
32.根据第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,对所述目标图像进行图像分割,得到掩模具体包括:
33.将所述目标图像输入到预先训练好的第一神经网络模型中进行图像分割,得到掩模,所述掩模用于区分所述人体特征和非人体特征,所述第一神经网络是根据预先标注人体与背景的图像训练得到的。
34.掩模能够很好的区分人体特征和非人体特征,有益于更好的识别目标图像中的人体特征。
35.根据第二方面或第二方面的第一至第二种可能的实现方式,在第二方面的第三种可能的实现方式中,对所述目标图像或掩模进行三维重建,得到总人体三维模型具体包括:
36.将所述目标图像或所述掩模输入到重建模块中,得到所述总人体三维模型,所述总人体三维模型用于描述整个人体特征。重建模块包括第三神经网络模型或参数化模型,所述重建模块能够根据二维图像通过卷积生成三维模型。总人体三维模型包括总人体三维网格模型或总人体三维符号距离场体模型。
37.根据第二方面或第二方面的第一至第三种可能的实现方式,在第二方面的第四种可能的实现方式中,根据所述语义分割图像,得到所述子人体三维模型具体包括:
38.将所述目标图像或所述掩模输入到预先训练好的第二神经网络模型中进行语义分割,得到所述语义分割图像或所述语义分割掩模,所述语义分割图像或所述语义分割掩模用于区分所述具有不同语义的人体特征,所述第二神经网络是根据预先标注人体特征语义的图像训练得到的。
39.根据第二方面或第二方面的第一至第四种可能的实现方式,在第二方面的第五种可能的实现方式中,对所述语义分割图像或语义分割掩模进行三维重建,得到子人体三维
模型具体包括:
40.将所述语义分割掩模或所述语义分割图像输入到重建模块中,得到所述子人体三维模型,所述子人体三维模型用于描述具有不同语义的人体特征。重建模块包括第三神经网络模型或参数化模型,所述重建模块能够根据二维图像通过卷积生成三维模型。子人体三维模型包括子人体三维网格模型或子人体三维符号距离场体模型。
41.根据第二方面或第二方面的第一至第五种可能的实现方式,在第二方面的第六种可能的实现方式中,当子人体三维模型为所述子人体三维网格模型,或者,当总人体三维模型为所述总人体三维网格模型时,所述方法还包括:
42.网格处理,所述网格处理包括对所述总人体三维网格模型或所述子人体三维网格模型进行网格补洞,网格均一化和/或网格平滑。
43.根据第二方面或第二方面的第一至第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述融合所述总人体三维模型和所述子人体三维模型,得到融合人体三维模型,具体包括:
44.对所述子人体三维模型和所述总人体三维模型进行边缘切割,其中,所述子人体三维模型上所切割的边缘和所述总人体三维模型上所切割的边缘具有互补性;
45.缝合所述总人体三维模型和所述子人体三维模型,得到所述融合人体三维模型。
46.通过边缘切割和缝合得到的融合人体三维模型,能够在保证整体性的情况下,保持高分辨率的同时,降低人体三维模型重建对于终端计算能力和存储能力的要求。
47.本技术第三方面,提供一种人体三维模型重建装置,所述人体三维模型重建装置包括存储器和处理器;所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述处理器执行所述计算机指令时,所述人体三维模型重建装置执行本技术第一方面及其任一种可能的实现方式所述的人体三维模型重建方法。
48.本技术第四方面,提供一种芯片系统,其特征在于,所述芯片系统应用于电子设备;所述芯片系统包括一个或多个接口电路,以及一个或多个处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述电子设备执行本技术第一方面及其任一种可能的实现方式所述的人体三维模型重建方法。
49.本技术第五方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在人体三维模型重建装置上运行时,使得所述人体三维模型重建装置执行如第一方面及其任一种可能的实现方式所述的人体三维模型重建方法。
50.本技术第六方面,提供一种计算机程序产品,该计算机程序产品包括计算机指令,当所述计算机指令在人体三维模型重建装置上运行时,使得所述人体三维模型重建装置执行如第一方面及其任一种可能的设计方式所述的人体三维模型重建方法。
51.本技术中第二方面到第六方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面到第六方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
52.本技术的有益效果在于,在进行人体三维模型重建的终端设备的计算单元的计算
能力和存储能力有限的情况下,可以保留人体部分特征的高分辨率,降低人体其他特征部分的分辨率,满足不同人体部分对于分辨率的不同需求,换句话说,能够在保持人体三维模型的部分特征高分辨率的同时,降低人体三维模型重建对于终端计算能力和存储能力的要求。
53.本技术的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
54.图1为本技术实施例提供的一种系统架构示意图;
55.图2为本技术实施例提供的一种卷积神经网络模型示意图;
56.图3为本技术实施例提供的一种芯片系统的芯片硬件结构示意图;
57.图4为本技术实施例提供的一种人体三维模型重建方法的流程示意图;
58.图5为本技术实施例提供的一种人体三维模型重建装置的结构示意图;
59.图6为本技术实施例提供的一种人体三维模型重建方法应用于虚拟试衣场景的流程示意图;
60.图7为本技术实施例提供的一种人体三维模型重建方法应用于虚拟三维通话场景的流程示意图;
61.图8为本技术实施例提供的一种神经网络模型训练装置示意图;
62.图9是本技术实施例提供的一种人体三维模型重建装置的硬件结构示意图;
63.图10是本技术实施例提供的一种芯片系统示意图;
64.图11是本技术实施例提供的一种计算机程序产品的概念性示意图;
65.图12是本技术实施例提供的一种可能的技术效果示意图。
具体实施方式
66.下面将结合附图,对本技术中的技术方案进行描述。
67.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
68.由于本技术实施例涉及大量神经网络的应用,为了便于理解,下面先对本技术实施例涉及的相关术语及神经网络等相关概念进行介绍。
69.(1)人体三维模型重建:指根据单张或者多张二维图像重建出人体三维模型的过程。
70.(2)神经网络
71.神经网络可以是由神经单元组成的,神经单元可以是指以x
s
和截距1为输入的运算单元,该运算单元的输出可以为:
[0072][0073]
其中,s=1、2、
……
n,n为大于1的自然数,w
s
为x
s
的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输
入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
[0074]
(3)深度神经网络
[0075]
深度神经网络(deep neural network,dnn),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从dnn按不同层的位置划分,dnn内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然dnn看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,是偏移向量,w是权重矩阵(也称系数),α是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于dnn层数多,则系数w和偏移向量的数量也就很多了。这些参数在dnn中的定义如下所述:以系数w为例:假设在一个三层的dnn中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数w所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第l-1层的第k个神经元到第l层的第j个神经元的系数定义为需要注意的是,输入层是没有w参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。
[0076]
(4)卷积神经网络
[0077]
卷积神经网络(cnn,convolutional neuron network)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核的数量越多,卷积操作反映的图像信息越丰富。
[0078]
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
[0079]
通常卷积神经网络由一个或多个卷积层和顶端的全连通层(对应经典的神经网
络)组成,同时也包括关联权重和池化层(pooling layer)。
[0080]
(5)参数化模型:是一种利用参数可以改变人体姿态和体型的模型,其中,体型控制部分一般由一个标准人体的顶点模型和若干个偏移模板构成,通过线性组合得到不同的体型,人体姿态控制部分是包含通过适配各种体型静态人体的关节点的位置信息和关节旋转信息通过铰链运动和蒙皮信息来驱动人体得到各种不同人体姿态。
[0081]
(6)rgb和rgbd:红黄蓝图像和红黄蓝深度图像。
[0082]
(7)蒙皮多人体线性模型(smpl,a skinned multi-person linear model):该模型是一种参数化人体模型,可以进行任意的人体建模和动画驱动。这种方法与传统的蒙皮驱动(linear blend skinning)的最大的不同在于其提出的人体姿态影像体表形貌的方法,这种方法可以模拟人的肌肉在肢体运动过程中的凸起和凹陷,可以精准的刻画人的肌肉拉伸以及收缩运动的形貌。
[0083]
(8)符号距离场(signed distance field,sdf):一种表达三维空间内的曲面的方式,用每个离散空间网格上的点距离面的带符号的距离来表达面,该距离为空间中的一个点到最近的三角面的距离,如果在物体外部为正值,如果在物体内部则是负值,一般过零面就是所表达面的所在位置。
[0084]
(9)增强现实/虚拟现实(ar/vr,augmented reality/virtual reality),一种使用户部分或完全沉浸于虚拟世界的一种显示和交互技术的综合技术。
[0085]
随着计算机技术的日益发展,人体三维模型重建在计算机视觉领域中已成为一个重要的热点问题。本技术实施例提供的人体三维模型重建方法能够应用在虚拟试衣,虚拟三维通话,三维打印,arvr(增强现实和虚拟现实)等场景。
[0086]
所谓人体三维模型重建是指根据单张或者多张的二维图像重建出人体三维模型的过程。其中,二维图像包括rgb图像或者rgbd图像,人体三维模型包括网格模型或符号距离场体模型。
[0087]
现有技术中,根据单张rgb图像生成人体三维模型的方法受制于普通用户能够采用的计算单元(比如个人pc或者手机等终端设备)的计算你能力和存储空间,难以重建出高分辨率的人体三维模型。
[0088]
为此,本技术实施例提供一种人体三维模型重建方法,能够基于单张rgb图像,或者基于rgbd图像的rgb信息部分,利用一个或者多个神经网络模型,和/或参数化模型,构造出基于整体的总人体三维模型和基于不同语义的子人体三维模型,并将它们融合,得到融合人体三维模型,该融合人体三维模型的不同部分具有不同的分辨率。其中,总人体参数模型能够用于描述整个人体特征,子人体三维模型用于描述具有不同语义的人体特征,例如,头部子人体三维模型,手部子人体三维模型。例如,在进行人体三维模型重建的终端设备的计算单元的计算能力和存储能力有限的情况下,可以保留头部特征部分的高分辨率,降低人体其他特征部分的分辨率,满足不同人体部分对于分辨率的不同需求。
[0089]
首先从模型训练侧和模型应用侧对本技术提供的方法进行描述:
[0090]
本技术实施例提供的神经网络的训练方法,涉及计算机视觉的处理,具体可以应用于数据训练、机器学习、深度学习等数据处理方法,对训练数据(如本技术中的包括人体特征的图像或掩模)进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终得到预先训练好的人体三维模型重建神经网络,可以理解的是,训练数据还可以是二维图像,使
用该训练数据的神经网络还可为掩模神经网络,输出该二维图像所对应的掩模;训练数据还可以是图像或掩模,使用该训练数据的神经网络为语义分割神经网络。并且,本技术实施例提供的人体三维模型重建方法可以运用上述预先训练好的神经网络,将输入数据(如本技术中的二维图像)输入到所述预先训练好的神经网络中,得到输出数据(如本技术中的人体三维模型)。需要说明的是,本技术实施例提供的神经网络的训练方法和人体三维模型重建方法是基于同一个构思产生的发明,也可以理解为一个系统中的两个部分,或一个整体流程的两个阶段:如模型训练阶段和模型应用阶段。其中,实施例一为模型训练阶段,实施例二为模型应用阶段。
[0091]
下面介绍本技术实施例提供的系统架构。本技术所应用到的神经网络模型包括三种,第一种为掩模神经网络模型,即第一神经网络模型,用于目标图像进行图像分割得到用于区分所述人体特征和非人体特征的掩模;第二种为语义分割神经网络模型,即第二神经网络模型,用于对目标图像或掩模进行语义分割,得到用于区分具有不同语义的人体特征语义分割图像或语义分割掩模;第三种为人体三维模型重建神经网络模型,即第三神经网络模型,用于对语义分割图像或语义分割掩模进行三维重建,得到用于描述具有不同语义的人体特征的子人体三维模型,或者,用于对语义分割图像或语义分割掩模进行三维重建,得到用于描述具有不同语义的人体特征的子人体三维模型。
[0092]
第一神经网络是根据预先标注人体与背景的图像训练得到的,在一种可能的实现方式中,第一神经网络的训练采用预先标注的人体与背景图,其中掩模中人体所在区域的值设置为1,背景部分设置为0。其中,通过训练一个rgb三通道图像到二值化掩膜的有监督的全卷积网络,其中训练的惩罚项设置为网络输出与标注图像之间的交叉熵,训练完成后,该网络可以直接从rgb图像通过图像卷积得到掩模。
[0093]
第一神经网络模型的具体工作方式为,目标图像经过预先训练好的掩模神经网络模型的图像分割处理后,能够得到用于区分所述人体特征和非人体特征掩模。目标图像包括二维图像,在一种可能的实现方式中,该二维图像可以包括人体特征,该二维图像可以为室外和室内场景中自然拍摄得到的包括人全身或部分的图像,按照人工标准的形式获得真实的掩模,掩模指的是用于区分前景和背景的二值化图像。网络的参数可以采用深度学习常规的训练方式得到,网络的结构是现有通用的网络结构,如全卷积神经网络,在此不再赘述。
[0094]
第二神经网络是根据预先标注人体特征语义的图像训练得到的。第二神经网络模型是一个可以从三通道二维图像或二值化掩模通过卷积生成语义掩模的神经网络,训练方法是有监督训练,其中监督的标注数据获取方法如下:通过预先大量包含人体的图像进行语义标注,获得rgb图片和对应的语义掩模作为标注数据构成一组监督数据,训练的惩罚项设置为网络输出语义预测与标注数据中的语义掩模之间的多分类交叉熵。
[0095]
第二神经网络模型的具体工作方式为,目标图像经过预先训练好的语义分割神经网络模型的语义分割处理后,能够用于区分具有不同语义的人体特征的语义分割图像;掩模,或者,目标图像或掩模一起经过预先训练好的语义分割神经网络模型处理后,能够得到用于区分具有不同语义的人体特征的语义分割掩模。在一种可能的实现方式中,该语义分割掩模为包括0-24表示的单通道图像,单通道图像包括二值化图像和灰度图,每个数值都代表着不同的语义,例如,0代表无意义的背景,1-24分别代表身体的不同部位,1代表头部,
2代表肩部,3代表左手,4代表右手等等,数值和语义存在对应关系。该二维图像可以包括人体特征,该二维图像可以为室外和室内场景中自然拍摄得到的包括人全身或部分的图像,按照人工标准的形式获得真实的掩模,掩模指的是用于区分前景和背景的二值化图像。网络的参数可以采用深度学习常规的训练方式得到,网络的结构是现有通用的网络结构,如全卷积神经网络,在此不再赘述。
[0096]
第三神经网络模型是根据二维图像训练得到的,能够根据二维图像通过卷积生成三维模型。第三神经网络模型是一个可以从三通道二维图像通过卷积生成三维数据的神经网络,训练方法是有监督训练,其中监督的标注数据获取方法如下:通过预先对设备采集好的带纹理三维网格模型进行虚拟采集,获得的不同视角下对应的rgb图片,同时生成的该角度下的三维人体模型。一个rgb图片和一个三维人体模型构成一组监督数据,训练的惩罚项设置为网络输出的三维人体模型与标注数据中的三维人体模型的加权交叉熵
[0097]
第三神经网络模型的具体工作方式为,目标图像和/或掩模经过预先训练好的人体三维模型重建神经网络模型处理后,能够得到用于描述整个人体特征的总人体三维模型,或者,语义分割掩模和/或语义分割图像经过预先训练好的人体三维模型重建神经网络模型处理后,能够得到子人体三维模型,其中,语义分割图像是将目标图像按照语义进行分割后得到的具有不同语义的图像块,所有的语义分割图像组合起来即为目标图像。网络的参数可以采用深度学习常规的训练方式得到,网络的结构是现有通用的网络结构,如全卷积神经网络,在此不再赘述。可以理解的是,由于rgb目标图像在神经网络的处理过程汇总可以提供一些暗示,比如一些明暗变化可以提示表面的细节(衣服的褶皱),或者,肤色可以暗示五官的位置,而五官位置对于面部的几何有好处,因此,目标图像或掩模,或者,语义分割掩模和语义分割图像一起输入到人体三维模型重建神经网络模型处理后的会得到优化的结果。可以理解的是,a和/或b包括a,b,a和b三种情况。
[0098]
参见附图1,本发明实施例一提供了一种系统架构100。如系统架构100所示,数据采集设备160用于采集训练数据,本技术实施例中训练数据包括:目标图像,掩模,语义分割图像,和/或,语义分割掩模。其中,目标图像和语义分割图像可以为rgb图像,也可以为rgbd图像的rgb部分。将训练数据存入数据库130,训练设备120基于数据库130中维护的训练数据训练得到目标模型101,其中,目标模型101包括第一神经网络模型,第二神经网络模型或者第三神经网络模型。下面将更详细地描述训练设备120如何基于训练数据得到目标模型101,该目标模型能够用于实现本技术实施例提供的人体三维模型重建方法,即,将目标图像经过相关预处理后输入第一神经网络模型模型,即可得到用于区分所述人体特征和非人体特征的掩模;将目标图像或掩模经过相关预处理后输入第二神经网络模型模型,即可得到用于区分具有不同语义的人体特征的语义分割图像或语义分割掩模;将目标图像或掩模经过相关预处理后输入第三神经网络模型模型,即可得到用于描述整个人体特征的总人体三维模型,或者,将语义分割掩模或语义分割图像经过相关预处理后输入第三神经网络模型模型,即可得到用于描述具有不同语义的人体特征的子人体三维模型。
[0099]
本技术实施例中的目标模型101具体可以为掩模神经网络模型,即第一神经网络模型;语义分割神经网络模型,即第二神经网络模型;或者,人体三维模型重建神经网络模型,即第三神经网络模型。在本技术提供的实施例中,该掩模神经网络模型、语义分割神经网络模型和人体三维模型重建神经网络模型均是通过训练全卷积神经网络模型得到的。需
要说明的是,在实际的应用中,所述数据库130中维护的训练数据不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练数据进行目标模型101的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本技术实施例的限定。
[0100]
根据训练设备120训练得到的目标模型101可以应用于不同的系统或设备中,如应用于图1所示的执行设备110,所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,ar/vr,车载终端等,还可以是服务器或者云端等。在附图1中,执行设备110配置有i/o接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向i/o接口112输入数据,所述输入数据在本技术实施例中可以包括:目标图像、掩模、语义分割图像和/或语义分割掩模。
[0101]
预处理模块113用于根据i/o接口112接收到的输入数据(如所述xx图像)进行预处理,在本技术实施例中,预处理模块113可以用于对输入数据进行预处理,例如,对输入数据的各个通道进行去中心化和归一化处理。
[0102]
在执行设备110对输入数据进行预处理,或者在执行设备110的计算模块111执行计算等相关的处理过程中,执行设备110可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
[0103]
最后,i/o接口112将处理结果,如上述得到的掩模、语义分割掩模、总人体三维模型或子人体三维模型返回给客户设备140,用于后续的处理或者直接呈现给用户。具体的,在一种可能的实现方式中,第一神经网络模型输出掩模或第二神经网络模型输出语义分割掩模时,用于后续的处理,例如,将掩模或语义分割掩模作为第三神经网络模型的输入数据;在另一种可能的实现方式中,第三神经网络模型输出的总人体三维模型或子人体三维模型,用于呈现给用户或者输送到后续的处理模块,进行切割、替换或缝合。
[0104]
值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型101,该相应的目标模型101即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
[0105]
在附图1中所示情况下,用户可以手动给定输入数据,该手动给定可以通过i/o接口112提供的界面进行操作。另一种情况下,客户设备140可以自动地向i/o接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端,采集如图所示输入i/o接口112的输入数据及输出i/o接口112的输出结果作为新的样本数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由i/o接口112直接将如图所示输入i/o接口112的输入数据及输出i/o接口112的输出结果,作为新的样本数据存入数据库130。
[0106]
值得注意的是,附图1仅是本发明实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图1中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中。
[0107]
如图1所示,根据训练设备120训练得到目标模型101,该目标模型101在本技术实
施例中可以是掩模神经网络、语义分割神经网络或人体三维模型重建神经网络,本技术实施例提供的神经网络结构包括卷积神经网络,优选的,本技术实施例提供的神经网络结构为全卷积神经网络。
[0108]
如前文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,cnn是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。
[0109]
如图2所示,为一种卷积神经网络模型示意图,卷积神经网络(cnn)200可以包括输入层210,卷积层/池化层220(其中池化层为可选的),以及神经网络层230。
[0110]
卷积层/池化层220:
[0111]
卷积层:
[0112]
如图2所示卷积层/池化层220可以包括如示例221-226层,举例来说:在一种实现中,221层为卷积层,222层为池化层,223层为卷积层,224层为池化层,225为卷积层,226为池化层;在另一种实现方式中,221、222为卷积层,223为池化层,224、225为卷积层,226为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
[0113]
下面将以卷积层221为例,介绍一层卷积层的内部工作原理。
[0114]
卷积层221可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素
……
这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行
×
列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行
×
列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。
[0115]
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络200进行正确的预测。
[0116]
当卷积神经网络200有多个卷积层的时候,初始的卷积层(例如221)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络200深度的加深,越往后的卷积层(例如226)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义
越高的特征越适用于待解决的问题。
[0117]
池化层:
[0118]
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图2中220所示例的221-226各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
[0119]
神经网络层230:
[0120]
在经过卷积层/池化层220的处理后,卷积神经网络200还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层220只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络200需要利用神经网络层230来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层230中可以包括多层隐含层(如图2所示的231、232至23n)以及输出层240,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建。
[0121]
在神经网络层230中的多层隐含层之后,也就是整个卷积神经网络200的最后层为输出层240,该输出层240具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络200的前向传播(如图2由210至240方向的传播为前向传播)完成,反向传播(如图2由240至210方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络200的损失,及卷积神经网络200通过输出层输出的结果和理想结果之间的误差。
[0122]
需要说明的是,如图2所示的卷积神经网络200仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。
[0123]
可以理解的是,本技术实施例提供的神经网络模型不限于卷积神经网络,在一种可能的实现方式中,目标模型可以为全卷积神经网络模型。全卷积神经网络模型与卷积神经网络模型区别在于,全卷积神经网络模型包括全连接层,更适用与图像分割场景,本技术实施例在神经网络模型上不做具体限制,只要能够完成输入数据到输出数据的转化即可。
[0124]
神经网络在应用的时候最小的应用单元可以为包括存储器和处理器的芯片系统。
[0125]
如图3所示,为本发明实施例提供的一种芯片系统的芯片硬件结构示意图,该芯片包括神经网络处理器30。该芯片可以被设置在如图1所示的执行设备110中,用以完成计算模块111的计算工作。该芯片也可以被设置在如图1所示的训练设备120中,用以完成训练设备120的训练工作并输出目标模型101。如图2所示的卷积神经网络中各层的算法均可在如图3所示的芯片中得以实现。
[0126]
神经网络处理器npu 30npu作为协处理器挂载到主cpu(host cpu)上,由host cpu
分配任务。npu的核心部分为运算电路30,控制器304控制运算电路303提取存储器(权重存储器或输入存储器)中的数据并进行运算。
[0127]
在一些实现中,运算电路303内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路303是二维脉动阵列。运算电路303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路303是通用的矩阵处理器。
[0128]
举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器302中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器301中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)308中。
[0129]
向量计算单元307可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元307可以用于神经网络中非卷积/非fc层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
[0130]
在一些实现种,向量计算单元能307将经处理的输出的向量存储到统一缓存器306。例如,向量计算单元307可以将非线性函数应用到运算电路303的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元307生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路303的激活输入,例如用于在神经网络中的后续层中的使用。
[0131]
统一存储器306用于存放输入数据以及输出数据。
[0132]
权重数据直接通过存储单元访问控制器305(direct memory access controller,dmac)将外部存储器中的输入数据搬运到输入存储器301和/或统一存储器306、将外部存储器中的权重数据存入权重存储器302,以及将统一存储器306中的数据存入外部存储器。
[0133]
总线接口单元(bus interface unit,biu)510,用于通过总线实现主cpu、dmac和取指存储器309之间进行交互。
[0134]
与控制器304连接的取指存储器(instruction fetch buffer)309,用于存储控制器304使用的指令;
[0135]
控制器304,用于调用指存储器309中缓存的指令,实现控制该运算加速器的工作过程。
[0136]
一般地,统一存储器306,输入存储器301,权重存储器302以及取指存储器309均为片上(on-chip)存储器,外部存储器为该npu外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random access memory,简称ddr sdram)、高带宽存储器(high bandwidth memory,hbm)或其他可读可写的存储器。
[0137]
可以理解的是,图1和图2中的程序算法是由主cpu和npu共同配合完成的
[0138]
其中,图2所示的卷积神经网络中各层的运算可以由运算电路303或向量计算单元307执行。
[0139]
本技术实施例二提供一种人体三维模型重建方法,图4为本技术实施例提供的一
种人体三维模型重建方法的流程示意图,如图4所示,本技术实施例提供的人体三维模型重建方法包括:
[0140]
s401:获取目标图像。
[0141]
目标图像包括人体特征,该人体特征包括具有不同语义的人体特征,具有不同语义的人体特征包括:头部,身体,胳膊,腿部,手部或脚部。目标图像可以为单张rgb图像,也可以为rgbd图像的rgb信息部分。
[0142]
目标图像可以为摄像头即时拍摄得到的,也可以为从已经存储的图像中选取的。这里,已经存储的图像可以包括:从网络服务器下载得到的,接收其他设备传输得到的(如蓝牙传输),接收社交应用传输得到的,截图得到等,本技术实施例对此不作限定。
[0143]
s402:将目标图像输入到预先训练好的第一神经网络模型中,对所述目标图像进行图像分割,得到用于区分所述人体特征和非人体特征的掩模。
[0144]
预先训练好的第一神经网络模型用于对输入的目标图像进图像分割,获得输入的目标图像所对应的用于区分所述人体特征和非人体特征的掩模掩模。第一神经网络模型在训练的时候,训练数据可以为室外和室内场景中自然拍摄得到的包括人全身或部分的图像,通过人工设定的标准,区分人体特征和背景特征,人体特征为包括头部,身体,胳膊,腿部,手部和脚部的整个人体,背景特征为非人体特征,即目标图像中除了人体特征部分的其他部分。输出的掩模指的是能够区分人体特征和背景的二值化图像。
[0145]
本技术实施例中预先训练好的第一神经网络模型可以为深度神经网络。深度神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类。
[0146]
深度神经网络一般包括多个网络层(如卷积层、全连接层等)。深度神经网络的多层结构能自动学习特征,并且可以学习到多个层次的特征:较浅的卷积层感知域较小,学习到一些局部区域的特征;较深的卷积层具有较大的感知域,能够学习到更加抽象一些的特征。
[0147]
示例性的,本技术实施例中预先训练好的神经网络模型可以为卷积神经网络模型,也可以为全卷积神经网络模型,或者,为其他深度神经网络模型,本技术实施例对此不作限定。
[0148]
s403:将目标图像或掩模输入到第二神经网络模型中,对目标图像进行语义分割,得到用于区分具有不同语义的人体特征的语义分割图像,或者,对掩模进行语义分割,得到用于区分具有不同语义的人体特征的语义分割掩模。
[0149]
预先训练好的第二神经网络模型用于根据输入的目标图像或掩模,进行语义化分割,获得语义分割图像或语义分割掩模,语义分割掩模可以有n个,n为大于等于1的整数。语义用来表示人体的特征,不同的语义代表着不同的人体部位,在第二神经网络模型训练的时候,会人工设置好不同的语义以及不同语义所对应的人体特征。在一种可能的实现方式中,该语义分割掩模为包括0-24表示的单通道图像,单通道图像包括二值化图像和灰度图,每个数值都代表着不同的语义,以及不同语义所对应的人体特征,例如,0代表无意义的背景,1-24分别代表身体的不同部位,1代表头部,2代表肩部,3代表左手,4代表右手等等,数值和语义直接存在对应关系。可选的,第二神经网络模型的输入可以为目标图像或掩模的点对点乘积。
[0150]
s404:将掩模或目标图像输入到重建模块中,对所述目标图像或所述掩模进行三维重建,得到用于描述整个人体特征的总人体三维模型,。
[0151]
在一种可能的实现方式中,重建模块可以是预先训练好的第三神经网络模型。
[0152]
预先训练好的第三神经网络模型用于根据输入的掩模或目标图像,获得总人体三维模型。总人体三维模型指的是完整的人体三维模型,或者,指的是包括至少两个人体特征的人体三维模型。
[0153]
总人体三维模型包括总人体三维网格模型或者总人体三维符号距离场体模型。
[0154]
在一种可能的实现方式中,预先训练好的第三神经网络模型用于根据输入的掩模或目标图像,获得用于描述整个人体特征总人体三维网格模型,具体的,第三神经网络模型可以根据输入的掩模或目标图像输出总人体三维符号距离场体模型,然后再进一步根据等值面提取算法提取总人体三维符号距离场体模型的等值面,输出总人体三维网格模型,等值面提取算法可以是marchingcube算法;在另一种可能的实现方式中,预先训练好的第三神经网络模型用于根据输入的掩模或目标图像,直接获得总人体三维符号距离场体模型,例如,整个人体二维图像经过预先训练好的第三神经网络模型后,输出整个人体的三维符号距离场体模型,整个人体的三维符号距离场体模型的分辨率为64*64*64。
[0155]
可选的,当总人体三维模型为总人体三维网格模型是,s404还可以包括步骤s4041,网格处理。网格处理包括对总人体三维网格模型进行网格补洞,网格均一化和/或网格平滑。
[0156]
每一个经过等值面提取算法提取出来的总人体三维网格模型有时不是理想的网格,并且由于神经网络模型在应用时的不可控因素,可能存在孔洞。因此还需要对总人体三维网格模型进行网格补洞,补洞完成后进行图形学标准的均一化和平滑等操作。最终输出为每个部分的完全封闭、网格均一且平滑的总人体三维网格。
[0157]
对总人体三维网格模型进行补洞处理时,可以采用基于径向基函数(radial basis function,rbf)的三角网格补洞方法,或者基于泊松方程的补洞算法。在对总人体三维网格模型进行网格均一化处理时,可以采用点聚类方法和边折叠以及顶点增删法等网格均一化算法。在对总人体三维网格模型进行网格平滑处理时,可以采用基于泊松方程或离散拉普拉斯方程等网格平滑方法。
[0158]
对总人体三维网格模型进行补洞处理后,使得总人体三维网格模型更加完整,提高三维模型重建的准确度。执行网格均一化处理,可以防止获得的总人体三维网格模型中网格过于密集或者过于稀疏,而影响三维模型重建的准确度。执行网格平滑处理,能够去除总人体三维网格模型中的不准确的网格,即噪点,进而提高三维模型重建的准确度和光顺性。
[0159]
在另一种可能的实现方式中,重建模块也可以是参数化模型。
[0160]
参数化模型指的是一种利用参数控制人体姿态和体型的模型,其中,体型控制部分一般由一个标准人体的顶点模型和若干个偏移模板构成,通过顶点模型与不同的偏移模板所构成的不同的线性组合得到不同的体型;姿态控制部分指的是,通过适配各种体型静态人体的关节点的位置信息和关节旋转信息,通过铰链运动和蒙皮信息来驱动人体得到各种不同人体姿态。参数化模型可以为现有技术的参数化模型,例如,smpl蒙皮多人体线性模型,此处不做限制。
[0161]
s405:将语义分割掩模或语义分割图像输入到重建模块中,对语义分割图像或所述语义分割掩模进行三维重建,得到用于描述具有不同语义的人体特征子人体三维模型。
[0162]
在一种可能的实现方式中,重建模块可以是预先训练好的第三神经网络模型。
[0163]
预先训练好的第三神经网络模型用于根据输入的语义分割掩模或语义分割图像,获得用于描述具有不同语义的人体特征的子人体三维模型,该子人体三维模型、语义分割掩模或语义分割图像的语义是相同的,即子人体三维模型、语义分割掩模或语义分割图像所表征的人体特征是一致的。例如,语义为人体特征中的头部时,输入为头部图像和头部掩模,输出为头部人体三维模型。其中,语义分割图像是将目标图像按照语义进行分割后得到的具有不同语义的图像块,所有的语义分割图像组合起来即为目标图像。
[0164]
子人体三维模型包括子人体三维网格模型或者子人体三维符号距离场体模型。
[0165]
在一种可能的实现方式中,预先训练好的第三神经网络模型用于根据输入的语义分割掩模或语义分割图像,获得子人体三维网格模型,具体的,第三神经网络模型可以根据输入的语义分割掩模或语义分割图像输出子人体三维符号距离场体模型,然后再进一步根据等值面提取算法提取子人体三维符号距离场体模型的等值面,输出子人体三维网格模型,等值面提取算法可以是marchingcube算法;在另一种可能的实现方式中,预先训练好的第三神经网络模型用于根据输入的语义分割掩模或语义分割图像,直接获得子人体三维符号距离场体模型。在一种可能的实现方式中,头部特征的语义分割图像经过预先训练好的第三神经网络模型后,输出头部的三维符号距离场体模型,头部的三维符号距离场体模型的分辨率为128*128*128,与s404中总人体三维符号距离场体模型的分辨率64*64*64不同。
[0166]
可以理解的是,分辨率的具体设置本技术不做限制,可以根据实际情况预先设定或者由用户根据情况自主选择。不同的人体子人体三维模型的分辨率也可以不同,在一种可能的实现方式中,用户对头部人体三维模型的分辨率要求最高,对手部人体三维模型的分辨率要求次之,对除了头部和手部的人体其他部分的人体三维模型的分辨率要求最低。例如,手部特征的语义分割图像经过预先训练好的第三神经网络模型后,输出手部的三维符号距离场体模型,手部的三维符号距离场体模型的分辨率为128*128*128,与s404中总人体三维符号距离场体模型的分辨率64*64*64不同,与头部的三维符号距离场体模型的分辨率为256*256*256也不同。
[0167]
可选的,当子人体三维模型为子人体三维网格模型是,s405还可以包括步骤s4051,网格处理。网格处理包括对子人体三维网格模型进行网格补洞,网格均一化和/或网格平滑。
[0168]
每一个经过等值面提取算法提取出来的子人体三维网格模型有时不是理想的网格,并且由于神经网络模型在应用时的不可控因素,可能存在孔洞。因此还需要对子人体三维网格模型进行网格补洞,补洞完成后进行图形学标准的均一化和平滑等操作。最终输出为每个部分的完全封闭、网格均一且平滑的子人体三维网格。
[0169]
对子人体三维网格模型进行补洞处理时,可以采用基于径向基函数(radial basis function,rbf)的三角网格补洞方法,或者基于泊松方程的补洞算法。在对子人体三维网格模型进行网格均一化处理时,可以采用点聚类方法和边折叠以及顶点增删法等网格均一化算法。在对子人体三维网格模型进行网格平滑处理时,可以采用基于泊松方程或离散拉普拉斯方程等网格平滑方法。
[0170]
对子人体三维网格模型进行补洞处理后,使得子人体三维网格模型更加完整,提高三维模型重建的准确度。执行网格均一化处理,可以防止获得的子人体三维网格模型中网格过于密集或者过于稀疏,而影响三维模型重建的准确度。执行网格平滑处理,能够去除子人体三维网格模型中的不准确的网格,即噪点,进而提高三维模型重建的准确度和光顺性。
[0171]
在另一种可能的实现方式中,重建模块也可以是参数化模型。
[0172]
参数化模型指的是一种利用参数控制人体姿态和体型的模型,其中,体型控制部分一般由一个标准人体的顶点模型和若干个偏移模板构成,通过顶点模型与不同的偏移模板所构成的不同的线性组合得到不同的体型;姿态控制部分指的是,通过适配各种体型静态人体的关节点的位置信息和关节旋转信息,通过铰链运动和蒙皮信息来驱动人体得到各种不同人体姿态。参数化模型可以为现有技术的参数化模型,此处不做限制。
[0173]
s406:对子人体三维模型和总人体三维模型进行边缘切割。
[0174]
由于在每个语义分割图像与目标图像的身体图像在分割的时候存在一个边界,因此在人体三维模型上必定对应一个切口边缘。对子人体三维模型进行切割时,按照语义分割图像与子人体三维模型的对应关系,在子人体三维模型上切出一个切口边缘。对总人体三维模型进行切割时,在总人体三维模型上对每一个语义所对应的身体特征部分进行切割操作,并通过遍历的方法找到网格边缘的单向环。边缘切割可以使用现有的三维图像切割方法,此处不再赘述。
[0175]
其中,在每个子人体三维模型上所切割的边缘和总人体三维模型上所切割的边缘具有互补性,即每个子人体三维模型上所切割的边缘均可以与总人体三维模型上与该子人体三维模型特征相同的部分所切割的边缘完整契合。例如,手部子人体三维模型所切割的边缘能够与总人体三维模型的手部所切割的边缘完整契合,头部子人体三维模型所切割的边缘能够与总人体三维模型的头部所切割的边缘完整契合。
[0176]
s407:缝合总人体三维模型和子人体三维模型,得到多分辨率的融合人体三维模型。该多分辨率的融合人体三维模型的不同部分具有不同的分辨率。其中,不同部分指的是融合人体三维模型中表征不同身体特征的部分。
[0177]
将子人体三维模型和总人体三维模型具有互补性的边缘进行缝合,用子人体三维模型替换掉总人体三维模型中与该子人体三维模型表征同一身体特征的部分。
[0178]
其中,总人体三维模型的分辨率和子人体三维模型的分辨率不同。
[0179]
三维模型的重建过程所需的计算装置的计算能力和存储能力和用户需求可以理解为时对立的条件。理论上,用户需要重建的三维模型的分辨率要尽可能高,但是高分辨率的三维模型重建所需的计算装置的计算能力和存储能力的要求又很大,这是相互矛盾的。可以理解的是,若子人体三维模型和总人体三维模型的分辨率相同时,所做的边缘切割和缝合并没有实质性的技术效果,当子人体三维模型和总人体三维模型具有不同的分辨率时,经切割和缝合得到的人体三维模型的不同身体特征部分具有不同的分辨率,能够在进行人体三维模型重建的终端设备的计算单元的计算能力和存储能力有限的情况下,满足不同人体部分对于分辨率的不同需求。例如,可以保留头部特征部分的高分辨率,降低人体其他特征部分的分辨率,满足用户对于人脸特征部分高分辨率需求的同事,降低系统的运算和内存,提升系统运行效率。
[0180]
缝合的具体步骤如下:该步骤的输入为总人体三维模型和子人体三维模型,输出为具有多分辨率的融合人体三维模型。
[0181]
在一种可能的实现方式中,当三维模型为三维网格模型时,将子人体三维网格模型和总人体三维网格模型具有互补性的边缘,采用泊松网格处理方法进行网格的移植,例如,将表征头部特征部分的子人体三维网格模型的头部下面的切口边缘移植到表征身体特征部分总人体三维网格模型的的脖子上面的切口边缘上,子人体三维网格模型的头部下面的切口边缘和总人体三维网格模型的的脖子上面的切口边缘完整契合。子人体三维网格模型和总人体三维网格模型的切口边缘具有多个三维顶点,这些三维顶点的形状可以是三角形。将对应的三维顶点按顺序连接起来,并在人体三维网格模型的三角面片的列表中增加缝合部分的三角形,网格平滑后就可以得到完整的融合人体三维网格模型。
[0182]
其中上述泊松网格处理方法的过程为:
[0183]
所有的三角形顶点分为固定部分(控制柄)和可平滑部分(自由点),拉普拉斯坐标是每个三维顶点的一种局部特征。当维持可平滑部分的原始的局部拉普拉斯坐标,而维持固定部分的三维坐标位置,则所有的三角形顶点的三维坐标可以求解如下:
[0184][0185]
当维持除了控制柄(handle)附近区域的顶点不动,剩下的自由运动点构成的区域趋近于平滑表面,也即是拉普拉斯坐标等于0,则求解公式如下所示:
[0186][0187]
其中δ是拉普拉斯运算,v
handle
代表固定位置的顶点位置,v
free
代表自由顶点的空间坐标位置,δv
free
代表自由顶点的离散拉普拉斯坐标,l0和l1是拉普拉斯矩阵,i代表单位矩阵,求解(1)可以得到平滑保持局部细节的平滑结果。
[0188]
在另一种可能的实现方式中,当三维模型为符号距离场体模型时,将总人体三维符号距离场体模型和子人体三维符号距离场体模型通过双线性插值的方法融合成新的融合三维符号距离场体模型。
[0189]
步骤s408:对融合人体三维模型进行平滑和简化。
[0190]
对融合人体三维模型进行平滑和简化可以解决缝合的边缘两侧网格细节参数的一致性问题,提高融合人体三维模型的显示效果,平滑和简化的方法为现有技术,此处不再赘述。例如,平滑的方法可以为标准的前向拉普拉斯迭代优化,通常选择迭代次数为5次。
[0191]
可以理解的是,s408为可选步骤,若s407输出的融合人体三维模型已经能够满足用户需求,则不需要s408步骤。
[0192]
可以理解实施例一为神经网络模型的训练阶段(如图1所示的训练设备120执行的阶段),具体训练是采用由实施例一以及实施例一基础上任意一种可能的实现方式中提供的神经网络模型进行的;而实施例二则可以理解为实施例一所提供的三种神经网络的应用阶段(如图1所示的执行设备110执行的阶段)。
[0193]
上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功
能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0194]
本技术实施例可以根据上述方法示例对人体三维重建装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0195]
本技术另一实施例提供的一种人体三维模型重建装置,如图5所示,为本技术实施例提供的一种人体三维模型重建装置的结构示意图。人体三维模型重建装置用于根据目标图像生成人体三维模型,例如用于执行图4所示的方法。人体三维模型重建装置可以包括获取单元501、处理单元502、存储单元503和融合单元504。
[0196]
存储单元503,用于存储预先训练好的神经网络模型或参数化模型。上述获取单元501,用于获取包括人体特征目标图像。上述处理单元502,用于将上述获取单元501获取到的目标图像输入到存储单元503中存储的预先训练好的神经网络模型或参数化模型中进行图像分割,得到用于区分所述人体特征和非人体特征的掩模;或者,
[0197]
将目标图像或掩模输入到存储单元503中存储的预先训练好的神经网络模型或参数化模型中进行三维重建,得到用于描述整个人体特征的总人体三维模型;或者,
[0198]
将目标图像或掩模输入到存储单元503中存储的预先训练好的神经网络模型或参数化模型中进行语义分割,得到用于区分具有不同语义的人体特征语义分割图像或语义分割掩模;或者,
[0199]
将语义分割图像或语义分割掩模输入到存储单元503中存储的预先训练好的神经网络模型或参数化模型中进行三维重建,得到用于描述具有不同语义的人体特征的子人体三维模型。
[0200]
上述融合单元504,用于融合上述处理单元502输出的总人体三维模型和子人体三维模型,其中,总人体三维模型的分辨率和子人体三维模型的分辨率不同,从而得到不同部分具有不同分辨率的融合人体三维模型。
[0201]
例如,结合图4,获取单元501可以用于执行s401,处理单元502可以用于执行s402、s403、s404、s405,融合单元504可以用于执行s406、s407、s408,存储单元503用于第一神经网络模型、第二神经网络模型、第三神经网络模型或参数化模型。
[0202]
可选的,上述目标图像可以包括人体特征,人体特征可以包括具有不同语义的人体特征,具有不同语义的人体特征包括:头部,身体,胳膊,腿部,手部或脚部。
[0203]
可选的,上述目标图像为即时拍摄到的,或者,为从已经存储的图片中选取的。
[0204]
可选的,上述处理单元501,得到总人体三维模型具体包括:
[0205]
将目标图像输入到预先训练好的第一神经网络模型中,得到掩模,掩模用于区分人体特征和非人体特征;将掩模或目标图像输入到重建模块中,得到总人体三维模型。
[0206]
可选的,上述重建模块包括第三神经网络模型或参数化模型。可选的,上述总人体
三维模型包括总人体三维网格模型或总人体三维符号距离场体模型。
[0207]
可选的,上述处理单元501,得到子人体三维模型具体包括:
[0208]
将目标图像或掩模输入到预先训练好的第二神经网络模型中,得到语义分割掩模,语义分割掩模用于区分具有不同语义的人体特征;将语义分割掩模或语义分割图像输入到重建模块中,得到子人体三维模型。
[0209]
可选的,上述重建模块包括第三神经网络模型或参数化模型。可选的,上述子人体三维模型包括子人体三维网格模型或子人体三维符号距离场体模型。
[0210]
可选的,当所述子人体三维模型为所述子人体三维网格模型,或者,当所述总人体三维模型为所述总人体三维网格模型时,所述处理单元还用于:
[0211]
网格处理,所述网格处理包括对所述总人体三维网格模型或所述子人体三维网格模型进行网格补洞,网格均一化和/或网格平滑
[0212]
可选的,上述融合单元具体用于:
[0213]
对所述子人体三维模型和所述总人体三维模型进行边缘切割,其中,所述子人体三维模型上所切割的边缘和所述总人体三维模型上所切割的边缘具有互补性;
[0214]
缝合所述总人体三维模型和所述子人体三维模型,得到所述融合人体三维模型。
[0215]
本实施例中相关内容的解释可参考上述方法实施例,此处不再赘述。
[0216]
本技术实施例中的人体三维模型重建方法可以在人体三维模型重建装置中操作执行,本技术实施例提供的人体三维模型重建装置可以应用于终端。具体的,该终端可以是手机、平板电脑、arvr设备,可穿戴电子设备等便携式设备,也可以是车载设备、智能机器人等设备,还可以是个人计算机(personal computer,pc)、个人数字助理(personal digital assistant,pda)、arvr头戴装置等、上网本等设备。此外,本技术实施例中的人体三维模型重建装置还可以是云计算中心或服务器。
[0217]
当上述人体三维模型重建装置应用于终端时,所述人体三维模型重建方法可以通过安装在终端上的用于识别人物的应用程序实现,该应用程序可以包括计算机可读存储介质。
[0218]
上述用于识别人物的应用程序可以是安装在终端中的嵌入式应用程序(即终端的系统应用)或者可下载应用程序。其中,嵌入式应用程序是作为终端(如手机)实现的一部分提供的应用程序。可下载应用程序是一个可以提供自己的因特网协议多媒体子系统(internet protocol multimedia subsystem,ims)连接的应用程序,该可下载应用程序是可以预先安装在终端中的应用或可以由用户下载并安装在终端中的第三方应用。
[0219]
具体而言,本技术实施例的人体三维模型重建方法和装置能够应用在虚拟试衣场景、虚拟三维通话场景和arvr场景中,下面分别对虚拟试衣场景、虚拟三维通话场景和arvr场景进行简单的介绍。
[0220]
虚拟试衣场景:虚拟试衣指的是用户可以不用真正的试穿衣服,而是通过人体三维模型重建,模拟出用户的身材、外貌等相关信息,利用虚拟的用户穿上虚拟的衣服来模拟实际试衣的过程。虚拟试衣场景中基于虚拟试衣系统,人体三维模型重建方法应用于虚拟试衣场景的流程示意图如图6所示。具体步骤如下:
[0221]
s601:终端摄像装置获取人体图像。
[0222]
终端可以是电脑,手机或平板等设备,此处不做限制,该终端运行虚拟试衣系统;
该终端具有摄像装置,可以获取待试衣用户的人体图像。若摄像装置包括三维摄像头,三维摄像头可以估计出人体身高和其他试衣参数,例如,胸围,肩宽,腰围等,若摄像装置不包括三维摄像头,则用户可以通过终端设备的用户交互界面,例如,触摸屏,输入自己的身高和其他试衣参数。
[0223]
s602:使用本技术实施例的人体三维模型重建方法生成人体三维模型。
[0224]
将摄像装置所拍摄的人体二维图像,通过本技术实施例的人体三维模型重建方法,生成人体三维模型,其中,人体三维模型包括网格模型或者符号距离场体模型。
[0225]
s603:将人体三维模型归一化。
[0226]
由于s602生成的人体三维模型不具备尺寸信息,因此需要结合s601中获取的用户身高和其他试衣参数,对人体三维模型归一化处理,使得人体三维模型的身高和其他试衣参数与实际用户相匹配,也使得人体三维模型和虚拟试衣系统中的衣服相对应。
[0227]
s604:将虚拟试衣系统中的衣服网格参数化。
[0228]
虚拟试衣系统中的衣服经过网格参数化后,可以覆盖到人体三维模型表面,将所有待选择衣服网格参数化后,可以形成符合该人体三维模型的虚拟衣柜。
[0229]
s605:可视化后支持用户选择。
[0230]
将虚拟衣柜中的衣服和人体三维模型可视化后,经虚拟试衣系统的ui显示界面与用户交互,使得用户可以看到不同衣服穿在虚拟人体三维模型上的效果,用户从衣柜中自主选择衣服时,ui显示界面更新显示效果。
[0231]
本技术实施例提供的人体三维模型重建方法可以根据输入或拍摄得到的用户照片,重建出人体三维模型,能够结合虚拟的衣服、裤子或鞋子等,模拟出用户穿上上述衣物的人体三维模型,帮助用户分析衣物的款式、尺寸是否合适。本技术实施例提供的人体三维模型重建方法能够在内存和算力有限的情况下提升人体三维模型重建的效果,进而提升虚拟试衣场景中用户的使用体验。
[0232]
虚拟三维通话场景:虚拟三维通话指的是用户可以在视频通话等远程互动场景中看到所通话对象的三维图像,是视频通话二维图像的升级。该虚拟三维通话场景基于虚拟三维通话系统,人体三维模型重建方法应用于虚拟三维通话场景的流程示意图如图7所示。具体步骤如下:
[0233]
s701:终端摄像装置采集人体图像。
[0234]
终端可以是电脑,手机或平板、arvr头戴等设备,此处不做限制,该终端运行虚拟三维通话系统;该终端具有摄像装置,可以获取待三维通话用户的人体图像。
[0235]
s702:使用本技术实施例的人体三维模型重建方法生成人体三维模型。
[0236]
将摄像装置所拍摄的人体二维图像,通过本技术实施例的人体三维模型重建方法,生成人体三维模型,其中,人体三维模型包括网格模型或者符号距离场体模型。其中,生成的人体三维模型可以在终端侧生成,也可以在与该用户的终端侧相连的云侧生成。生成的人体三维模型被发送到另一终端侧。
[0237]
s703:接收生成的人体三维模型。
[0238]
另一终端侧的用户接收生成的人体三维模型,使得该用户可以通过终端的ui显示界面,在通话时,看到所通话用户的人体三维模型。
[0239]
本技术实施例提供的人体三维模型重建方法可以根据一张包括人物的图像,重建
出该人物的人体三维模型,并将该人体三维模型在通话的两侧用户之间传输,使得虚拟三维通话的应用场景更加逼真,在内存和算力有限的情况下提升人体三维模型重建的效果,进而提升虚拟三维通话场景中用户的使用体验。
[0240]
arvr场景:arvr(增强现实和虚拟现实)指的是一种使用户部分或完全沉浸于虚拟世界的一种显示和交互技术的综合技术。arvr场景即用户使用arvr设备或处于arvr环境中时的应用场景,例如重建完成后的虚拟人物可以在完全虚拟的环境中活动,满足用户的娱乐需求,或者是作为虚拟人物放在真实环境中,与现实进行交互,如行走,跳跃,舞蹈或作出其他动作,满足用户娱乐需求。
[0241]
本技术实施例提供的人体三维模型重建方法可以根据一张包括人物的图像,重建出该人物的人体三维模型,使得arvr的应用场景更加逼真,在内存和算力有限的情况下提升人体三维模型重建的效果,进而提升arvr场景中用户的使用体验。
[0242]
本技术另一实施例还提供一种神经网络模型训练装置,图8是本技术实施例提供的一种神经网络模型训练装置示意图,神经网络模型报告上述实施例的第一神经网络模型,第二神经网络模型和/或第三神经网络模型。图8所示的神经网络模型训练装置800(该装置800具体可以是一种计算机设备)包括存储器801、处理器802、通信接口803以及总线804。其中,存储器801、处理器802、通信接口803通过总线804实现彼此之间的通信连接。
[0243]
存储器801可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器801可以存储程序,当存储器801中存储的程序被处理器802执行时,处理器802和通信接口803用于执行本技术实施例的神经网络模型的训练方法的各个步骤。
[0244]
处理器802可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现本技术实施例的神经网络模型的训练装置中的单元所需执行的功能,或者执行本技术方法实施例的神经网络模型的训练方法。
[0245]
处理器802还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的神经网络模型的训练方法的各个步骤可以通过处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器802还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器802读取存储器801中的信息,结合其硬件完成本技术实施例的神经网络模型的训练装置中包括的单元所需执行的功能,或者执行本技术方法实施例的神经网络模型的训练方法。
[0246]
通信接口803使用例如但不限于收发器一类的收发装置,来实现装置800与其他设
备或通信网络之间的通信。例如,可以通过通信接口803获取训练数据(如本技术实施例一所述的目标图像)。
[0247]
总线804可包括在装置800各个部件(例如,存储器801、处理器802、通信接口803)之间传送信息的通路。
[0248]
本技术另一实施例还提供一种人体三维模型重建装置,该人体三维模型重建装置至少包括存储器和处理器;存储器和处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令;当处理器执行计算机指令时,人体三维模型重建执行上述实施例所述的人体三维模型重建方法。
[0249]
本技术另一实施例还提供一种人体三维模型重建装置,图9是本技术实施例提供的人体三维模型重建装置的硬件结构示意图。图9所示的人体三维模型重建装置900(该装置900具体可以是一种计算机设备)包括存储器901、处理器902、通信接口903以及总线904。其中,存储器901、处理器902、通信接口903通过总线904实现彼此之间的通信连接。
[0250]
存储器901可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器901可以存储程序,当存储器901中存储的程序被处理器902执行时,处理器902和通信接口903用于执行本技术实施例的人体三维模型重建方法的各个步骤。
[0251]
处理器902可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现本技术实施例的人体三维模型重建装置中的单元所需执行的功能,或者执行本技术方法实施例的人体三维模型重建方法。
[0252]
处理器902还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的人体三维模型重建方法的各个步骤可以通过处理器902中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器902还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器901,处理器902读取存储器901中的信息,结合其硬件完成本技术实施例的人体三维模型重建装置中包括的单元所需执行的功能,或者执行本技术方法实施例的人体三维模型重建方法。
[0253]
通信接口903使用例如但不限于收发器一类的收发装置,来实现装置900与其他设备或通信网络之间的通信。例如,可以通过通信接口903获取训练数据(如本技术实施例一所述的目标图像)。
[0254]
总线904可包括在装置900各个部件(例如,存储器901、处理器902、通信接口903)之间传送信息的通路。
[0255]
应理解,人体三维模型重建装置700中的获取单元140相当于人体三维模型重建装
置900中的通信接口903;人体三维模型重建装置700中的存储单元142可以相当于人体三维模型重建装置900中的存储器901;人体三维模型重建装置700中的处理单元141和融合单元143可以相当于人体三维模型重建装置900中的处理器902。
[0256]
应注意,尽管图8和图9所示的装置800和900仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置800和900还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置800和900还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置800和900也可仅仅包括实现本技术实施例所必须的器件,而不必包括图8或图9中所示的全部器件。
[0257]
可以理解,所述装置800相当于1中的所述训练设备120,所述装置900相当于图1中的所述执行设备110。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0258]
本技术另一实施例还提供一种芯片系统,如图10所示为该芯片系统示意图,该芯片系统包括至少一个处理器1001和至少一个接口电路1002。处理器1001和接口电路1002可通过线路互联。例如,接口电路102可用于从其它装置(例如人体三维模型重建装置的存储器)接收信号。又例如,接口电路1002可用于向其它装置(例如处理器1001)发送信号。示例性的,接口电路1002可读取存储器中存储的指令,并将该指令发送给处理器1001。当所述指令被处理器1001执行时,可使得人体三维模型重建装置装置执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本技术实施例对此不作具体限定。
[0259]
本技术另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当指令在人体三维模型重建装置上的识别装置上运行时,该识别装置执行上述方法实施例所示的方法流程中识别装置执行的各个步骤。
[0260]
本技术另一实施例还提供一种计算机程序产品,该计算机程序产品中存储有计算机指令,当指令在人体三维模型重建装置上的识别装置上运行时,该识别装置执行上述方法实施例所示的方法流程中识别装置执行的各个步骤。
[0261]
在一些实施例中,所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。
[0262]
图11示出了本技术实施例提供的计算机程序产品的概念性示意图,所述计算机程序产品包括用于在计算设备上执行计算机进程的计算机程序。
[0263]
在一个实施例中,计算机程序产品是使用信号承载介质110来提供的。所述信号承载介质110可以包括一个或多个程序指令,其当被一个或多个处理器运行时可以提供以上针对图4描述的功能或者部分功能。因此,例如,参考图4中s401~s408的一个或多个特征可以由与信号承载介质110相关联的一个或多个指令来承担。此外,图11中的程序指令也描述示例指令。
[0264]
在一些示例中,信号承载介质110可以包含计算机可读介质111,诸如但不限于,硬盘驱动器、紧密盘(cd)、数字视频光盘(dvd)、数字磁带、存储器、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等等。
[0265]
在一些实施方式中,信号承载介质110可以包含计算机可记录介质112,诸如但不限于,存储器、读/写(r/w)cd、r/w dvd、等等。
[0266]
在一些实施方式中,信号承载介质110可以包含通信介质113,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。
[0267]
信号承载介质110可以由无线形式的通信介质113(例如,遵守ieee 802.11标准或者其它传输协议的无线通信介质)来传达。一个或多个程序指令可以是,例如,计算机可执行指令或者逻辑实施指令。
[0268]
在一些示例中,本技术实施例描述的人体三维模型重建装置可以被配置为,响应于通过计算机可读介质111、计算机可记录介质112、和/或通信介质113中的一个或多个程序指令,提供各种操作、功能、或者动作。
[0269]
应该理解,这里描述的布置仅仅是用于示例的目的。因而,本领域技术人员将理解,其它布置和其它元素(例如,机器、接口、功能、顺序、和功能组等等)能够被取而代之地使用,并且一些元素可以根据所期望的结果而一并省略。另外,所描述的元素中的许多是可以被实现为离散的或者分布式的组件的、或者以任何适当的组合和位置来结合其它组件实施的功能实体。
[0270]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0271]
图12所示为本技术的实施例提供的一种可能的技术效果示意图,如图所示,1201为人体三维模型的头部特征部分,1202为人体三维模型除头部以外的其他人体特征部分,1201部分的分辨率大于1202部分的分辨率。
[0272]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0273]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0274]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0275]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0276]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1