具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在一些基于人脸图像的显示场景中,存在一些需要将特效或产品添加至人脸图像的应用场景。例如,在实时直播场景中,需要将一些挂饰或美颜特效添加至人脸图像中。再例如,在AR化妆场景中,需要将美妆特效添加至人脸图像中。又例如,在AR试戴场景中,需要将一些例如太阳镜、耳环或帽子等试戴产品,添加至人脸图像中。其中,添加特效的过程实际上是基于2D人脸图像重建3D人脸模型,并对添加特效后的3D人脸模型执行向2D人脸图像的投影操作的过程。在整个过程中,涉及人脸模型的三维重建和重建后的3D人脸模型向2D人脸图像的投影操作。三维重建是指基于2D人脸图像还原3D人脸模型的过程;投影操作可以看作是一种将3D人脸模型上的三维点映射到2D人脸图像上的二维点的过程,其实质可以看作是三维坐标到二维坐标的变换过程。
在现有方案中,通常是利用正交投影或弱透视投影的方法,实现重建出的3D人脸模型到2D人脸图像的投影。其中,正交投影的公式为x=s∏(X)+t,s为常数,∏为3D到2D的投影变换矩阵,t为2×1的平移向量;弱透视投影的公式为=s*P*R*X+t,s为常数,P为正交投影矩阵[1,0,0;0,1,0],R为3×3的旋转矩阵,t为2×1的平移向量。然而,采用正交投影或弱透视投影的方式,损失了部分或全部人脸的姿态数据,因此,在执行投影操作后,可能会出现添加特效或产品的3D人脸模型与2D人脸图像不贴合的现象,例如,在AR化妆场景中出现的妆容扭曲或悬浮等问题,使得重建三维人脸模型的应用受到限制。
针对上述技术问题,在本申请一些实施例中,基于先验3D人脸模型对2D图像进行三维重建,在三维重建过程中,结合2D人脸图像到重建出的3D人脸模型的位置映射关系进行人脸姿态估计,获取2D人脸姿态数据,在将三维重建出的3D人脸模型投影到2D人脸图像时,利用该2D人脸姿态数据对目标3D人脸模型执行向2D人脸图像的透视投影处理,充分考虑2D人脸的姿态数据,使得3D人脸模型投影到2D图像的效果更贴合更真实,为高精度需求的应用提供更多的可能。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请示例性实施例提供的一种图像处理方法的流程示意图;如图1所示,该方法包括:
101、基于先验3D人脸模型对2D人脸图像进行三维重建,得到2D人脸图像对应的目标3D人脸模型;
102、在三维重建过程中,结合2D人脸图像到目标3D人脸模型中的位置映射关系进行人脸姿态估计,以得到2D人脸的姿态数据;
103、根据2D人脸的姿态数据针对目标3D人脸模型执行向2D人脸图像的透视投影处理。
在本申请实施例中,利用先验3D人脸模型对2D人脸图像进行三维重建,得到2D人脸图像对应的目标3D人脸模型之后,可以为目标3D人脸模型添加一些特效或试戴产品;之后,可对添加特效或试戴产品的目标3D人脸模型执行向2D人脸图像的投影处理。为了提高目标3D人脸模型、特效或试戴产品与2D人脸图像的贴合度,在本申请实施例中,在对2D图像进行三维重建过程中进行人脸姿态估计,获取2D人脸的姿态数据;基于2D人脸的姿态数据,在针对三维重建后的目标3D人脸模型执行向2D人脸图像的投影处理时,利用该2D人脸姿态数据对目标3D人脸模型执行向2D人脸图像的透视投影处理,透视投影的过程充分考虑2D人脸的姿态数据,使得3D人脸模型投影到2D图像的效果更贴合更真实,为高精度需求的应用提供更多的可能。
其中,利用该2D人脸姿态数据对目标3D人脸模型执行向2D人脸图像的透视投影处理是从某个投射中心将目标3D人脸模型或其上的特效或试戴产品投射到2D人脸图像上的投影过程,透视投影变换的表达式为x=K(RX+T),x为目标3D人脸模型上的3D点投影到2D人脸图像中的2D坐标,K为相机内参,R为3×3的旋转矩阵,T为3×1的平移向量,X为重建出的目标3D人脸模型中的3D点或3D点形成的点云。人脸在空间中具有六个自由度,即沿x、y、z三个直角坐标轴方向的移动自由度和绕这三个坐标轴的转动自由度。例如,上述透视变换的公式中的平移矩阵T即为沿x、y、z三个直角坐标轴方向的移动自由度,旋转矩阵R即为绕这三个坐标轴的转动自由度。在本实施例中,人脸的姿态数据可以用人脸的六自由度信息表示。
具体地,基于先验3D人脸模型对2D人脸图像进行三维重建,得到2D人脸图像对应的目标3D人脸模型。例如,对2D人脸图像和先验3D人脸模型分别进行特征提取,得到2D人脸特征信息和3D人脸特征信息;结合2D人脸特征信息和3D人脸特征信息,生成3D人脸形变参数;根据3D人脸形变参数和先验3D人脸模型,重建2D人脸图像对应的目标3D人脸模型。其中,先验3D人脸模型是一种通用的人脸模型,可以理解为一种3D人脸形状先验,或者可以理解为平均的人脸网格点(mesh),由于先验3D人脸模型的通用性,先验3D人脸模型是一种不包含人脸姿态信息的3D人脸模型。
在本申请实施例中,并不对获取先验3D人脸模型的实施方式进行限定。可选地,一种获取先验3D人脸模型的实施方式,包括:采用编码-解码(Encode-Decode)网络结构学习先验3D人脸模型,如图2所示,该编码-解码网络结构包括:编码器21和解码器22。具体地,采集一些2D人脸样本图像,对这些2D人脸样本图像进行三维重建,得到3D人脸网格,或者,也可以直接利用3D人脸采集设备采集一些3D人脸网格;之后,将这些3D人脸网格作为样本,每个样本中包含多个人脸3D点的三维坐标,将多个样本输入至编码器21,编码器21将输入的样本映射成隐层向量,并对多个样本的隐层向量进行平均,然后将平均后的隐层向量输入至解码器22,解码器22根据该平均后的隐层向量,生成先验3D人脸模型。
接着,在三维重建过程中,结合2D人脸图像到目标3D人脸模型中的位置映射关系进行人脸姿态估计,以得到2D人脸的姿态数据。其中,位置映射关系是指2D人脸图像中的像素点与目标3D人脸模型中3D点的位置转换关系。人脸姿态估计主要是获取脸部的朝向信息,2D人脸的姿态数据可通过旋转矩阵、旋转向量、四元数或欧拉角、多维自由度等进行表示,上述四个表示形式可以相互转换。可选地,人脸的姿态数据可以用人脸的六自由度信息进行表示,例如移动自由度和转动自由度,详细内容可参见前述实施例,在此不再赘述。
在得到2D人脸的姿态数据之后,可根据2D人脸的姿态数据针对目标3D人脸模型执行向2D人脸图像的透视投影处理。其中,可以采用透视投影变换的公式x=K(RX+T)进行透视投影处理。针对目标3D人脸模型执行向2D人脸图像的透视投影处理,包括但不限于以下几种方式:第一种,可以在基准3D人脸模型上添加特效对象,将目标3D人脸模型与基准3D人脸模型对齐,基于此,可将基准3D人脸模型上的特效对象直接投影到2D人脸图像中,其中,特效对象可以是美妆特效,例如,腮红、眉毛或口红等美妆特效,也可以是贴纸、涂鸦、文字或马赛克等特效,还可以是试戴产品,例如太阳镜、帽子或耳环等;第二种,在目标3D人脸模型上添加特效对象,将该特效对象和目标3D人脸模型投影到2D人脸图像中;第三种,在目标3D人脸模型上添加特效对象,将目标3D人脸模型透明化处理,并将特效对象和透明后的目标3D人脸模型投影到2D人脸图像中。
在本申请一可选实施例中,可以利用神经网络模型,实现基于先验3D人脸模型对2D人脸图像进行三维重建,并在三维重建过程中完成人脸姿态估计,最终得到2D人脸图像对应的目标3D人脸模型以及2D人脸的姿态数据。其中,一种基于神经网络模型进行人脸图像处理的方案架构如图3a所示。如图3a所示,将2D人脸图像和先验3D人脸模型输入至神经网络模型;在神经网络模型内部,一方面对2D人脸图像进行三维重建,得到目标3D人脸模型,另一方面在三维重建过程中进行人脸姿态估计得到2D人脸的姿态数据;在神经网络模型输出2D人脸的姿态数据和目标3D人脸模型之后,根据2D人脸的姿态数据针对目标3D人脸模型执行向2D人脸图像的透视投影处理。
进一步可选地,本实施例的神经网络模型可拆分为两个分支,即第一神经网络模型和第二神经网络模型,如图3b所示。其中,第一神经网络模型负责对2D人脸图像进行特征提取;第二神经网络模型负责对先验3D人脸模型进行特征提取。具体地,结合图3b所示,在进行三维重建过程中,针对2D人脸图像的处理,可以是将2D人脸图像输入至第一神经网络模型,利用第一神经网络模型对2D人脸图像进行特征提取,得到2D人脸全局特征图。第一神经网络模型是任何能够进行特征提取的神经网络模型,例如,第一神经网络模型可以是多层神经网络模型,即包括多个网络层,不同网络层可以有针对性地进行相应特征提取。其中,神经网络模型中的网络层可以包含但不限于:卷积神经网络(Convolutional NeuralNetworks,CNN)、循环神经网络(Recurrent Neural Network,RNN)、深度神经网络(DeepNeural Networks,DNN)或残差网络等。
结合图3b所示,在进行三维重建过程中,针对先验3D人脸模型的处理,可以是利用第二神经网络模型对先验3D人脸模型进行特征提取,得到先验3D人脸模型上多个3D点的特征向量。同样地,第二神经网络模型是任何能够进行特征提取的神经网络模型,例如,第二神经网络模型可以是多层神经网络模型,即包括多个网络层,不同网络层可以有针对性地进行相应特征提取。其中,神经网络模型中的网络层可以包含但不限于:卷积神经网络(Convolutional Neural Networks,CNN)、循环神经网络(Recurrent Neural Network,RNN)、深度神经网络(Deep Neural Networks,DNN)或残差网络等。
进一步,如图3b所示,在得到2D人脸全局特征图和先验3D人脸模型上多个3D点的特征向量之后,可以根据2D人脸全局特征图和多个3D点的特征向量,生成3D人脸形变参数;根据3D人脸形变参数和先验3D人脸模型,重建2D人脸图像对应的目标3D人脸模型。其中,3D人脸形变参数是目标3D人脸模型相对于先验3D人脸模型的形变参数,该形变参数可以用目标3D人脸模型相对于先验3D人脸模型的偏移量来表示。其中,根据3D人脸形变参数和先验3D人脸模型,重建2D人脸图像对应的目标3D人脸模型的方式不做限定。例如,可以利用3D人脸形变参数对先验3D人脸模型进行形变处理,得到2D人脸图像对应的目标3D人脸模型。又例如,可以将3D人脸形变参数叠加到先验3D人脸模型,重建2D人脸图像对应的目标3D人脸模型。
可选地,如图3c所示,一种根据2D人脸全局特征图和多个3D点的特征向量,生成3D人脸形变参数的实施方式,包括:将2D人脸全局特征图和多个3D点的特征向量进行拼接,得到第一融合特征;利用第三神经网络模型对第一融合特征进行特征学习,得到3D人脸形变参数。
在一可选实施例中,利用神经网络模型,除了可以生成3D人脸形变参数之外,还可以生成2D-3D映射参数,该2D-3D映射参数反应了2D人脸图像到目标3D人脸模型中的位置映射关系,具体地,可以是2D人脸图像上的像素点与目标3D人脸模型中的3D点之间的映射参数,该映射参数可以用映射矩阵或函数关系式等来表示。在获取到该2D-3D映射参数之后,可基于该2D-3D映射参数进行人脸姿态估计,得到2D人脸的姿态数据。
具体地,如图3c所示,在得到2D人脸全局特征图之后,还可以基于2D人脸全局特征图生成多个像素点的特征向量,其中,多个像素点来自2D人脸图像的人脸区域中,特征向量是基于2D人脸全局特征图做进一步特征提取得到的每个像素点具有的特征。进一步,如图3c所示,利用第二神经网络模型对先验3D人脸模型进行特征提取过程中,首先利用第二神经网络模型对先验3D人脸模型进行特征提取,得到3D人脸全局特征图;进一步基于3D人脸全局特征图生成多个3D点的特征向量。其中,根据3D人脸全局特征图和多个像素点的特征向量,可以生成用于反映2D人脸图像到目标3D人脸模型的位置映射关系的2D-3D映射参数。基于此,在三维重建过程中,结合2D人脸图像到所述目标3D人脸模型中的位置映射关系进行人脸姿态估计,以得到2D人脸的姿态数据的实施方式,包括:将3D人脸全局特征和多个像素点的特征向量进行拼接,得到第二融合特征;利用第四神经网络模型对第二融合特征进行特征学习,得到2D-3D映射参数;根据该2D-3D映射参数和目标3D人脸模型对2D人脸图像中的人脸进行姿态估计,以得到2D人脸的姿态数据,如图3c所示。
在本申请实施例中,并不限定第一神经网络模型的模型结构,凡是可以对2D人脸图像进行特征提取以得到2D人脸全局特征图和人脸区域中多个像素点的特征向量的模型结构均适用于本申请实施例。在一可选实施例中,如图3d所示,第一神经网络模型包括:人脸分割网络层、第一特征提取网络层以及第二特征提取网络层。首先,将2D人脸图像送入人脸分割网络层进行人脸分割,得到2D人脸图像的初始特征图和2D人脸图像中的人脸区域,该人脸区域包括:多个像素点,初始特征图中包括多个像素点的特征。然后,将多个像素点的特征输入第一特征提取网络层针对2D人脸进行特征提取,得到2D人脸全局特征图。最后,将2D人脸全局特征图输入第二特征提取网络层针对每个像素点进行特征提取,得到多个像素点的特征向量。其中,对于人脸分割网络层,可以预先采用已经标注好人脸区域的人脸图像训练人脸分割网络层,人脸分割网络层包括但不限于:卷积层、池化层、上采样层以及反卷积层等至少一种。另外,人脸分割网络层采用的损失函数可以包含但不限于:交叉熵损失函数(cross-entropy loss)或灶性损失(focal loss)等。
其中,第一特征提取网络层是预先训练出的用于根据人脸区域中多个像素点的特征从中提取2D人脸全局特征的神经网络模型,该模型支持输入的像素点的数量以及像素点的特征维度可由模型和应用而定,第二特征提取网络层是预先训练出的用于根据2D人脸全局特征从中提取各个像素点的特征向量的神经网络模型,特征向量的维度有模型和应用需求而定,对此不做限定。第一特征提取网络层或第二特征提取网络层采用但不限于:CNN、RNN、DNN、残差网络或多层感知机(Multi-Layer Perceptron,MLP)等方式实现,其模型架构不做限定。在一可选实施例中,第一特征提取网络层或第二特征提取网络层均采用MLP实现,但需要注意的是,两个网络层的功能不同,故两个MLP网络层的结构会有所差异。
在本实施例中,2D人脸图像可以采用红绿蓝(Red Green Blue,RGB)图像,也可以采用带有深度信息(Depth)的RGB图像,即RGB-D图像,还可以同时采用RGB图像和深度图像。若2D人脸图像为RGB图像,则初始特征图的特征包含图像的像素信息,不包含深度信息,可以从人脸区域中选择多个像素点,将选择出的多个像素点的特征(该特征是基于RGB图像得到的初始特征图中的不带有深度信息的特征)输入第一特征提取网络层针对2D人脸进行全局特征提取。若2D人脸图像为RGB-D图像,则初始特征图的特征包含图像的像素信息和深度信息,可以从人脸区域中选择多个像素点,将选择出的多个像素点的特征(该特征是基于RGB-D图像得到的初始特征图中带有深度信息的特征)输入第一特征提取网络层针对2D人脸进行全局特征提取。可选地,若2D人脸图像同时采用RGB图像和深度图像,则可以将RGB图像输入人脸分割网络层进行人脸分割,得到2D人脸图像的初始特征图和2D人脸图像中的人脸区域,初始特征图的特征包含图像的像素信息,可以从人脸区域中选择多个像素点,在将多个像素点的特征(该特征是基于RGB图像得到的初始特征图中不带有深度信息的特征)输入第一特征提取网络层针对2D人脸进行全局特征提取之前,还可以获取与该RGB图像对应的深度图像;从深度图像中提取多个像素点的深度特征,将每个像素点的深度特征融合至该像素点的特征(该特征是基于RGB图像得到的初始特征图中的特征)中,之后将多个像素点的特征(该特征是一种融合有深度信息和像素信息的特征)输入第一特征提取网络层针对2D人脸进行全局特征提取。
其中,从深度图像中提取多个像素点的深度特征的实施方式并不限定。在一可选实施例中,可以将深度图像送入人脸分割网络层进行人脸分割,得到深度图像的初始特征图,该深度图像的初始特征图中包括多个像素点的深度特征。在另一可选实施例中,深度图像上具有深度信息和像素点信息,若深度图像中人脸的坐标点包含三维坐标信息,三维坐标分别为x轴、y轴以及z轴,则x轴和y轴的坐标可以反映像素点信息,z轴的坐标可以反映深度信息,可以将深度图像中多个像素点的深度信息和像素点信息转换为3D点云数据,基于该3D点云数据,学习深度图像中多个像素点的深度特征。
同理,本申请实施例并不限定第二神经网络模型的模型结构,凡是对先验3D人脸模型进行特征提取,得到3D人脸全局特征图和先验3D人脸模型上多个3D点的特征向量的模型结构均适用于本申请实施例。在一可选实施例中,如图3e所示,第二神经网络模型包括第三特征提取网络层和第四特征提取网络层。结合图3e所示,利用第二神经网络模型对先验3D人脸模型进行特征提取,得到3D人脸全局特征,包括:从先验3D人脸模型上选取多个3D点,将多个3D点的位置坐标输入第三特征提取网络层进行特征提取,得到3D人脸全局特征,该3D人脸全局特征值体现了多个3D点的位置坐标,并不包含3D人脸的姿态数据,该3D人脸全局特征属于无姿态数据的特征;相应地,基于3D人脸全局特征图生成多个3D点的特征向量,包括:将3D人脸全局特征输入第四特征提取网络层进行特征提取,得到多个3D点的特征向量。其中,第三特征提取网络层是预先训练出的用于根据多个3D点的位置坐标提取3D人脸全局特征的神经网络模型,第四特征提取网络层是预先训练出的用于根据3D人脸全局特征从中提取各个3D点的特征向量的神经网络模型,对此不做限定。第三特征提取网络层或第四特征提取网络层可以包含但不限于:CNN、RNN、DNN、残差网络或MLP等。在一可选实施例中,第三特征提取网络层或第四特征提取网络层均采用MLP实现,但需要注意的是,两个网络层的功能不同,故两个MLP网络层的结构会有所差异。
在一些应用场景中,例如AR试戴场景,需要在目标3D模型上添加模型对象,模型对象可以是太阳镜或帽子等,从而针对添加模型对象的目标3D人脸模型执行向2D人脸图像的透视投影处理。在一些应用场景中,例如试戴产品的商家提供了基准3D人脸模型,则针对添加模型对象的目标3D人脸模型执行向2D人脸图像的透视投影处理的过程中,可以借助设置有模型对象(待投影对象)的基准3D人脸模型辅助进行透视投影处理。基于此,在得到2D人脸的姿态数据之前,还包括:获取基准3D人脸模型,基准3D人脸模型上设置有待投影对象;将目标3D人脸模型和基准3D人脸模型进行对齐。其中,对齐是一种针对目标3D人脸模型或基准3D人脸模型,自动定位出面部关键特征点,例如,眼睛、鼻尖、嘴角点、眉毛或人脸轮廓点等,并以基准3D人脸模型为基准,对目标3D人脸模型进行旋转、缩放、扩大或平移等操作,使得目标3D人脸模型尽可能的与基准3D人脸模型的形状接近的过程。在将目标3D人脸模型和基准3D人脸模型对齐的基础上,待投影对象在基准3D人脸模型上的位置效果可代替其在目标3D人脸模型上的效果。相应地,根据2D-3D映射参数和目标3D人脸模型对2D人脸图像中的人脸进行姿态估计,以得到2D人脸的姿态数据,包括:根据对齐后的目标3D人脸模型和2D-3D映射参数,对2D人脸图像中的人脸进行姿态估计,以得到2D人脸的姿态数据;由于目标3D人脸模型和基准3D人脸模型进行了对齐,所以该2D人脸的姿态数据同样适用于基准3D人脸模型及其上的待投影对象;基于此,根据2D人脸的姿态数据针对目标3D人脸模型执行向2D人脸图像的透视投影处理,包括:根据2D人脸的姿态数据,将待投影对象投影到2D人脸图像中,得到带有待投影对象的2D人脸图像。
在本申请上述实施例中,并未对神经网络模型的结构和输入输出维度等进行限定,在下面实施例中将分别以基于单幅RGB/RGB-D图像和3D人脸形状先验的神经网络模型结构和基于RGB图像与深度图像的融合和3D人脸形状先验的神经网络模型结构为例对本申请实施例的技术方案进行详细说明。其中,单幅RGB/RGB-D图像对应于前述方法中的2D人脸图像,3D人脸形状先验对应于前述方法中的先验3D人脸模型。
如图3f所示,针对基于单幅RGB/RGB-D图像和3D人脸形状先验的神经网络模型结构:
首先,获取一张RGB图像(如图3g所示),该RGB图像中包含人脸,使用人脸检测方法(传统机器学习方法或者深度神经网络方法)进行人脸检测,得到人脸检测框框出的人脸区域;基于该人脸检测框裁剪原始的RGB图像得到人脸RGB图像(如图3h所示),记为IRGB。若人脸检测框不能完整框出人脸区域,例如,该人脸检测框框出人脸区域中眉毛以下,下巴以上的区域,则对人脸检测框进行适当扩大,利用扩大后的检测框去裁剪原始的RGB图像得到完整的人脸RGB图像。
此外,还可以获取3D人脸形状的先验信息,这里可以理解为平均的3D人脸网格点(mesh),其中,可以通过一种encode-decode(编码-解码)的网络结构(如图2所示)学习3D人脸形状的先验信息,得到先验3D人脸形状,记为X∈R3。
进一步如图3f所示,将人脸检测后裁剪出的人脸RGB图像(是2D图像)输入卷积神经网络(如CNN),其中,RGB图像大小为H×W×3,H表示RGB图像的高度(High),W表示RGB图像的宽度(Wide),3表示RGB三个维度。将人脸RGB图像输入卷积神经网络经过卷积,之后对卷积结果进行上采样或反卷积,得到大小为H×W×C的特征图,C表示卷积过程中的通道数。在此过程中,同时对人脸RGB图像进行人脸分割,即为两种类别的分割,得到人脸RGB图像中的人脸区域和非人脸区域。根据人脸分割结果,在人脸区域随机选取m个像素点,每个像素点的特征为H×W×C的特征图中的C维度的值,最终得到m×C的特征向量,然后将该m×C的特征向量输入至多层感知机(MLP)网络层,并通过全局池化(pooling),得到1×f1的全局特征,f1为正整数,例如可以是512或1024等。将此1×f1的全局特征输入至下一个MLP网络层,得到m个像素点中每个像素点的特征向量1×c1,其中,m个像素点的特征向量表示为m×c1。
进一步如图3f所示,假设先验3D人脸形状的3D网格点为n×3,n为正整数,表示3D网格点(简称为3D点)的数量,3表示3D点的坐标维度为三维;接着,将该先验3D人脸形状的3D网格点输入一个MLP网络层进行特征提取,并通过全局池化得到1×f2的全局特征,f2为正整数;之后,将该1×f2的全局特征输入下一个MLP网络层进行学习得到n个3D点中每个3D点的特征向量1×c2,n个3D点的特征向量表示为n×c2。
进一步如图3f所示,一方面将1×f1的全局特征与n×c2的特征向量进行拼接,并将拼接后的特征输入一个神经网络模型进行预测,得到2D-3D映射矩阵m×n;另一方面将m×c1的特征向量与1×f2的全局特征进行拼接,并根据拼接后的特征向量预测每个3D点相对于先验3D人脸形状(该人脸形状是几何形状)的偏移量3Δ,3Δ表示三个坐标维度上的偏移量,n个3D点相对先验3D人脸形状的偏移量表示为n×3Δ,将此偏移量n×3Δ和输入的先验3D人脸形状的三维坐标值相加得到当前输入的2D人脸IRGB对应的重建后的3D人脸模型。
进一步,通过2D-3D映射矩阵m×n,结合m个像素点在人脸RGB图像中的坐标,即可得到m个像素点对应到重建后的3D人脸模型中的3D坐标信息,然后通过n点透视(perspective-n-point,PNP)的方法或其变种方法计算当前2D人脸的六自由度姿态信息,也即2D人脸的姿态数据。进而,基于2D人脸的六自由度姿态信息,针对重建出的3D人脸模型执行向人脸RGB图像的透视投影处理,如图3i所示,为在估计的六自由度姿态下利用重建的3D人脸模型投影到人脸RGB图像中的效果图。其中,为了便于查看,将3D人脸投影的轮廓用虚线表示。需要说明的是,在训练图3f所示网络模型时,可以不对人脸分割模型进行训练,而是在训练过程中直接使用真实标注的人脸信息代替人脸分割过程。
图3f所示的神经网络是一个多任务的网络结构,可以实现三个任务,第一个是进行人脸分割(人脸区域和非人脸区域),图像分割网络层可使用的损失函数可以包含但不限于:交叉熵损失函数或灶性损失等,第二个为生成2d-3D的映射矩阵,可以通过建模的方式,为每个2D到3D点建立分类模型,其中,可以采用的损失函数为softmax loss等;第三个任务为求解每个人脸3D点相对于先验3D人脸形状的坐标偏移量,可以用smooth L1或欧式距离loss等损失函数。
如图3j所示,针对基于RGB图像与深度图像的融合和3D人脸形状先验的神经网络模型结构:
获取人脸检测后裁剪出的人脸RGB图像(如图3h所示),将人脸RGB图像输入卷积神经网络经过卷积,对卷积结果进行上采样或反卷积,得到大小为H×W×C的特征图,并进行人脸分割,详细内容可参见前述实施例,在此不再赘述。进一步,如图3j所示,获取和原始RGB图像对应的原始Depth图像,可选地基于与人脸RGB图像同样的方法,对原始Depth图像裁剪得到人脸Depth图像,记为ID。人脸Depth图像的大小为H×W×1。之后,根据人脸分割结果在人脸Depth图像ID的人脸区域中随机选取m个像素点,将m个像素点转换为3D点云;然后通过MLP网络层(图3j中并未示出)对3D点云进行特征提取,将提取到的特征与人脸RGB图像卷积后得到的H×W×C的特征图中对应点的特征进行融合,得到m×C’的特征。其中,特征融合的方式有多种,例如,特征通道上的融合或逐点特征融合。
如图3j所示,在得到m×C’的特征之后,将该m×C’特征输入MLP网络层,并通过全局池化,得到1×f1的全局特征,将此1×f1的全局特征输入至下一个MLP网络层,得到每个像素点的特征向量1×c1,其中,m个像素点的特征向量表示为m×c1。其中,图3j中对先验3D人脸形状的处理以及后续基于先验3D人脸形状进行三维重建以及获取2D人脸姿态数据的内容,可参见前述实施例,在此不再赘述。
需要说明的是,除了采用PNP及其变种方法计算人脸的六自由度姿态信息之外,还可以通过最小二乘拟合的方式计算人脸的六自由度姿态信息。具体地,由于深度图像可以转换为3D点云,这里的2D-3D映射矩阵m×n也可以是深度图转换后的3D点云到人脸重建模型中3D点的映射,然后就可以通过3D点最小二乘拟合的方式计算人脸的六自由度姿态信息。
需要说明的是,本申请对输入RGB图像或Depth图像的人脸检测、图像分割或特征提取等操作是可以变化的。例如Depth图像也可以采用卷积网络的方式进行特征提取;又例如,RGB图像和Depth图像进行特征融合的方式也有很多方式,例如特征通道上的融合或逐点特征融合等。此外,本申请采用的网络结构中网络层参数和设置也都是可以变化的。
场景化实施例1:
下面以实时直播场景为例进行介绍。本申请实施还提供一种直播系统,如图4a所示,该直播系统400a包括:主播端401a、播放端402a、服务端403a以及图像采集设备404a。
其中,主播端401a和播放端402a可以实现为台式电脑、笔记本电脑或智能手机等终端设备,主播端401a和播放端402a的实现形态可以相同,也可以不同。播放端402a的数量为一个或多个,在图4中,以播放端402a是多个为例进行图示。
其中,图像采集设备404a可以是单目相机或者红绿蓝深度图(Red Green BlueDepth map,RGBD)摄像头等。图像采集设备404a用于采集初始直播视频,该初始直播视频中包含2D人脸图像,其中,人脸可以是主播的,也可以是画面中其他工作人员的。图像采集设备404a将采集到的初始直播视频经主播端401a提供给服务端403a。其中,若图像采集设备404a为单目相机,则初始直播视频包含的2D人脸图像为RGB图像;若图像采集设备404a为RGBD摄像头,则初始直播视频包含的2D人脸图像为RGB-D图像。
其中,服务器403a可以是常规服务器、云服务器或服务器阵列等服务端设备,在图4中以云服务器为例进行图示。服务端403a可基于先验3D人脸模型对2D人脸图像进行三维重建,得到2D人脸图像对应的目标3D人脸模型,在三维重建过程中,结合2D人脸图像到目标3D人脸模型的位置映射关系进行人脸姿态估计,以得到2D人脸的姿态数据。在主播或其他工作人员通过主播端401a添加直播动效或产品时,主播端401a将直播动效或产品提供给服务端403a。服务端403a将直播动效或产品添加至目标3D人脸模型上,并根据2D人脸的姿态数据针对添加直播动效或产品后的目标3D人脸模型执行向2D人脸图像的透视投影处理。其中,直播动效包括头饰、挂饰或美妆特效等。产品可以是但不限于:假发、太阳镜或帽子等。例如,可以在基准3D模型上添加直播动效或产品,将目标3D人脸模型与基准3D人脸模型对齐,基于此,可将基准3D人脸模型上的直播动效或产品直接投影到2D人脸图像中。再例如,在目标3D人脸模型上添加直播动效,将该直播动效和目标3D人脸模型投影到2D人脸图像中;第三种,在目标3D人脸模型上添加直播动效或产品,将目标3D人脸模型透明化处理,并将直播动效或产品和透明后的目标3D人脸模型投影到2D人脸图像中。服务端403a可以将执行透视投影处理的2D人脸图像提供给播放端402a,由播放端402a提供给观看用户。详细内容可参见前述实施例,在此不再赘述。
在本实施例中,图4a所示系统中的图像处理过程可以由服务端执行,也可以是主播端执行。如图4b所示,本申请实施例还提供一种直播方法,包括以下步骤:
401b、利用摄像头采集主播端的初始直播视频,初始直播视频中包含2D人脸图像;
402b、基于先验3D人脸模型对2D人脸图像进行三维重建,得到2D人脸图像对应的目标3D人脸模型,并在三维重建过程中,结合2D人脸图像到目标3D人脸模型的位置映射关系进行人脸姿态估计,以得到2D人脸的姿态数据;以及在3D目标人脸模型上添加直播动效或产品;
403b、根据2D人脸的姿态数据针对添加直播动效或产品后的目标3D人脸模型执行向2D人脸图像的透视投影处理,以得到目标直播视频,并将目标直播视频发送给播放终端,目标直播视频中包含带有直播动效或产品的2D人脸图像。
关于直播方法的详细内容可参见前述实施例,在此不再赘述。
本申请实施例提供的直播方法,基于先验3D人脸模型对2D图像进行三维重建,在三维重建过程中,结合2D人脸图像到重建出的3D人脸模型的位置映射关系进行人脸姿态估计,获取2D人脸姿态数据,在将三维重建出的3D人脸模型投影到2D人脸图像时,利用该2D人脸姿态数据对目标3D人脸模型执行向2D人脸图像的透视投影处理,充分考虑2D人脸的姿态数据,使得3D人脸模型投影到2D图像的效果更贴合更真实,为高精度需求的应用提供更多的可能。
场景化实施例2:
下面以AR显示场景为例进行介绍。本申请实施还提供一种AR显示系统,如图4c所示,该AR显示系统400c包括:AR显示设备401c和服务端设备402c。
其中,AR显示设备401c可以是但不限于:手机、平板、PC、车载抬头显示器(Head-upDisplay,HUD)或AR智能互动设备等。其中,AR显示设备401c具有图像采集功能,例如,AR显示设备401c上安装有单目相机或者RGBD摄像头等,用来实现图像采集功能。服务器402c可以是常规服务器、云服务器或服务器阵列等服务端设备。
在本实施例中,AR显示设备401c可采集使用者的2D人脸图像,并在其显示屏幕上显示2D人脸图像;AR显示设备401c可以将该2D人脸图像提供给服务端设备402c。服务端设备402c基于先验3D人脸模型对2D人脸图像进行三维重建,得到2D人脸图像对应的目标3D人脸模型,并在三维重建过程中,结合2D人脸图像到目标3D人脸模型的位置映射关系进行人脸姿态估计,以得到2D人脸的姿态数据。使用者需要在2D人脸图像上添加目标对象时,可通过AR显示设备401c将需要添加的目标对象发送给服务端设备402c。其中,目标对象可以是特效或产品。服务端设备402c接收需要添加的目标对象,在目标3D人脸模型上添加目标对象;根据2D人脸的姿态数据,针对添加目标对象后的目标3D人脸模型执行向2D人脸图像的透视投影处理,得到带有目标对象的2D人脸图像,并将该带有目标对象的2D人脸图像发送给AR显示设备401c。AR显示设备401c在显示屏幕上显示带有目标对象的2D人脸图像。
在本实施例中,图4c所示系统中的图像处理过程可以由服务端设备执行,也可以由AR显示设备401c执行。如图4d所示,本申请实施例还提供一种AR显示方法,包括以下步骤:
401d、AR显示设备利用摄像头采集使用者的2D人脸图像,并在其显示屏幕上显示2D人脸图像;
402d、基于先验3D人脸模型对2D人脸图像进行三维重建,得到2D人脸图像对应的目标3D人脸模型,并在三维重建过程中,结合2D人脸图像到目标3D人脸模型的位置映射关系进行人脸姿态估计,以得到2D人脸的姿态数据;以及在目标3D人脸模型上添加目标对象;
403d、根据2D人脸的姿态数据,针对添加目标对象后的目标3D人脸模型执行向2D人脸图像的透视投影处理,并在显示屏幕上显示带有目标对象的2D人脸图像。
本申请实施例提供的AR显示方法,基于先验3D人脸模型对2D图像进行三维重建,在三维重建过程中,结合2D人脸图像到重建出的3D人脸模型的位置映射关系进行人脸姿态估计,获取2D人脸姿态数据,在将三维重建出的3D人脸模型投影到2D人脸图像时,利用该2D人脸姿态数据对目标3D人脸模型执行向2D人脸图像的透视投影处理,充分考虑2D人脸的姿态数据,使得3D人脸模型投影到2D图像的效果更贴合更真实,为高精度需求的应用提供更多的可能。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤101至步骤103的执行主体可以为设备A;又比如,步骤101和102的执行主体可以为设备A,步骤103的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图5a为本申请示例性实施例提供的一种图像处理装置的结构示意图。如图5a所示,该图像处理装置50a包括:三维重建模块51a、姿态估计模块52a以及透视投影模块53a。
三维重建模块51a,用于基于先验3D人脸模型对2D人脸图像进行三维重建,得到2D人脸图像对应的目标3D人脸模型;
姿态估计模块52a,用于在三维重建过程中,结合2D人脸图像到目标3D人脸模型的位置映射关系进行人脸姿态估计,以得到2D人脸的姿态数据;
透视投影模块53a,用于根据2D人脸的姿态数据针对目标3D人脸模型执行向2D人脸图像的透视投影处理。
在一可选实施例中,三维重建模块51a用于:利用第一神经网络模型对2D人脸图像进行特征提取,得到2D人脸全局特征图;利用第二神经网络模型对先验3D人脸模型进行特征提取,得到先验3D人脸模型上多个3D点的特征向量;根据2D人脸全局特征图和多个3D点的特征向量,生成3D人脸形变参数;根据3D人脸形变参数和先验3D人脸模型,重建2D人脸图像对应的目标3D人脸模型。
在一可选实施例中,三维重建模块51a用于:将2D人脸全局特征图和多个3D点的特征向量进行拼接,得到第一融合特征;利用第三神经网络模型对第一融合特征进行特征学习,得到3D人脸形变参数。
在一可选实施例中,该装置还包括:生成模块;生成模块用于:基于2D人脸全局特征图生成多个像素点的特征向量,多个像素点来自2D人脸图像的人脸区域中;相应地,三维重建模块51a用于:利用第二神经网络模型对先验3D人脸模型进行特征提取,得到3D人脸全局特征图,基于3D人脸全局特征图生成多个3D点的特征向量;相应地,姿态估计模块52a,用于将3D人脸全局特征和多个像素点的特征向量进行拼接,得到第二融合特征;利用第四神经网络模型对第二融合特征进行特征学习,得到2D-3D映射参数;根据2D-3D映射参数和目标3D人脸模型对2D人脸图像中的人脸进行姿态估计,以得到2D人脸的姿态数据。
在一可选实施例中,三维重建模块51a用于:将2D人脸图像送入第一神经网络模型中的人脸分割网络层进行人脸分割,得到2D人脸图像的初始特征图和2D人脸图像中的人脸区域,人脸区域包括多个像素点,且初始特征图中包括多个像素点的特征;将多个像素点的特征输入第一神经网络模型中的第一特征提取网络层针对2D人脸进行特征提取,得到2D人脸全局特征图;相应地,生成模块用于:将2D人脸全局特征图输入第一神经网络模型中的第二特征提取网络层针对每个像素点进行特征提取,得到多个像素点的特征向量。
在一可选实施例中,2D人脸图像为RGB图像,在将多个像素点的特征输入第一神经网络模型中的第一特征提取网络层针对2D人脸进行特征提取之前,该装置还包括:第一获取模块和融合模块;第一获取模块用于:获取与RGB图像对应的深度图像;融合模块用于:从深度图像中提取多个像素点的深度特征,将每个像素点的深度特征融合至该像素点的特征中。
在一可选实施例中,三维重建模块51a用于:从先验3D人脸模型上选取多个3D点,将多个3D点的位置坐标输入第二神经网络模型中的第三特征提取网络层进行特征提取,得到3D人脸全局特征;将3D人脸全局特征输入第二神经网络模型中的第四特征提取网络层进行特征提取,得到多个3D点的特征向量。
在一可选实施例中,在得到2D人脸的姿态数据之前,该装置还包括:第二获取模块和对齐模块;第二获取模块用于:获取基准3D人脸模型,基准3D人脸模型上设置有待投影对象;对齐模块用于:将目标3D人脸模型和基准3D人脸模型进行对齐;相应地,姿态估计模块52a,用于根据对齐后的目标3D人脸模型和2D-3D映射参数,对2D人脸图像中的人脸进行姿态估计,以得到2D人脸的姿态数据;相应地,透视投影模块53a,用于根据2D人脸的姿态数据,将待投影对象投影到2D人脸图像中。
本申请实施例提供的图像处理装置,基于先验3D人脸模型对2D图像进行三维重建,在三维重建过程中,结合2D人脸图像到重建出的3D人脸模型的位置映射关系进行人脸姿态估计,获取2D人脸姿态数据,在将三维重建出的3D人脸模型投影到2D人脸图像时,利用该2D人脸姿态数据对目标3D人脸模型执行向2D人脸图像的透视投影处理,充分考虑2D人脸的姿态数据,使得3D人脸模型投影到2D图像的效果更贴合更真实,为高精度需求的应用提供更多的可能。
图5b为本申请示例性实施例提供的一种图像处理设备的结构示意图。如图5所示,该图像处理设备包括:存储器54b和处理器55b。
存储器54b,用于存储计算机程序,并可被配置为存储其它各种数据以支持在图像处理设备上的操作。这些数据的示例包括用于在图像处理设备上操作的任何应用程序或方法的指令。
存储器54b可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器55b,与存储器54b耦合,用于执行存储器54b中的计算机程序,以用于:基于先验3D人脸模型对2D人脸图像进行三维重建,得到2D人脸图像对应的目标3D人脸模型;在三维重建过程中,结合2D人脸图像到目标3D人脸模型的位置映射关系进行人脸姿态估计,以得到2D人脸的姿态数据;根据2D人脸的姿态数据针对目标3D人脸模型执行向2D人脸图像的透视投影处理。
在一可选实施例中,处理器55b在基于先验3D人脸模型对2D人脸图像进行三维重建,得到2D人脸图像对应的目标3D人脸模型时,具体用于:利用第一神经网络模型对2D人脸图像进行特征提取,得到2D人脸全局特征图;利用第二神经网络模型对先验3D人脸模型进行特征提取,得到先验3D人脸模型上多个3D点的特征向量;根据2D人脸全局特征图和多个3D点的特征向量,生成3D人脸形变参数;根据3D人脸形变参数和先验3D人脸模型,重建2D人脸图像对应的目标3D人脸模型。
在一可选实施例中,处理器55b在根据2D人脸全局特征图和多个3D点的特征向量,生成3D人脸形变参数时,具体用于:将2D人脸全局特征图和多个3D点的特征向量进行拼接,得到第一融合特征;利用第三神经网络模型对第一融合特征进行特征学习,得到3D人脸形变参数。
在一可选实施例中,在利用第一神经网络模型对所述2D人脸图像进行特征提取的过程中,处理器55b还用于:基于2D人脸全局特征图生成多个像素点的特征向量,多个像素点来自2D人脸图像的人脸区域中;相应地,处理器55b在利用第二神经网络模型对先验3D人脸模型进行特征提取,得到先验3D人脸模型上多个3D点的特征向量时,具体用于:利用第二神经网络模型对先验3D人脸模型进行特征提取,得到3D人脸全局特征图,基于3D人脸全局特征图生成多个3D点的特征向量;相应地,处理器55b在三维重建过程中,结合2D人脸图像到目标3D人脸模型的位置映射关系进行人脸姿态估计,以得到2D人脸的姿态数据时,具体用于:将3D人脸全局特征和多个像素点的特征向量进行拼接,得到第二融合特征;利用第四神经网络模型对第二融合特征进行特征学习,得到2D-3D映射参数;根据2D-3D映射参数和目标3D人脸模型对2D人脸图像中的人脸进行姿态估计,以得到2D人脸的姿态数据。
在一可选实施例中,处理器55b在利用第一神经网络模型对2D人脸图像进行特征提取,得到2D人脸全局特征图时,具体用于:将2D人脸图像送入第一神经网络模型中的人脸分割网络层进行人脸分割,得到2D人脸图像的初始特征图和2D人脸图像中的人脸区域,人脸区域包括多个像素点,且初始特征图中包括多个像素点的特征;将多个像素点的特征输入第一神经网络模型中的第一特征提取网络层针对2D人脸进行特征提取,得到2D人脸全局特征图;相应地,处理器55b在基于2D人脸全局特征图生成多个像素点的特征向量时,具体用于:将2D人脸全局特征图输入第一神经网络模型中的第二特征提取网络层针对每个像素点进行特征提取,得到多个像素点的特征向量。
在一可选实施例中,2D人脸图像为RGB图像,在将多个像素点的特征输入第一神经网络模型中的第一特征提取网络层针对2D人脸进行特征提取之前,处理器55b还用于:获取与RGB图像对应的深度图像;从深度图像中提取多个像素点的深度特征,将每个像素点的深度特征融合至该像素点的特征中。
在一可选实施例中,处理器55b在利用第二神经网络模型对先验3D人脸模型进行特征提取,得到3D人脸全局特征时,具体用于:从先验3D人脸模型上选取多个3D点,将多个3D点的位置坐标输入第二神经网络模型中的第三特征提取网络层进行特征提取,得到3D人脸全局特征;相应地,处理器55b在基于3D人脸全局特征图生成多个3D点的特征向量时,具体用于:将3D人脸全局特征输入第二神经网络模型中的第四特征提取网络层进行特征提取,得到多个3D点的特征向量。
在一可选实施例中,在得到2D人脸的姿态数据之前,处理器55b还用于:获取基准3D人脸模型,基准3D人脸模型上设置有待投影对象;将目标3D人脸模型和基准3D人脸模型进行对齐;相应地,处理器55b在根据2D-3D映射参数和目标3D人脸模型对2D人脸图像中的人脸进行姿态估计,以得到2D人脸的姿态数据时,具体用于:根据对齐后的目标3D人脸模型和2D-3D映射参数,对2D人脸图像中的人脸进行姿态估计,以得到2D人脸的姿态数据;相应地,处理器55b在根据2D人脸的姿态数据针对目标3D人脸模型执行向2D人脸图像的透视投影处理时,具体用于:根据2D人脸的姿态数据,将待投影对象投影到2D人脸图像中。
本申请实施例提供的图像处理设备,基于先验3D人脸模型对2D图像进行三维重建,在三维重建过程中,结合2D人脸图像到重建出的3D人脸模型的位置映射关系进行人脸姿态估计,获取2D人脸姿态数据,在将三维重建出的3D人脸模型投影到2D人脸图像时,利用该2D人脸姿态数据对目标3D人脸模型执行向2D人脸图像的透视投影处理,使得3D人脸模型投影到2D图像的效果更贴合更真实,为高精度需求的应用提供更多的可能。
进一步,如图5b所示,该图像处理设备还包括:通信组件56b、显示器57b、电源组件58b、音频组件59b等其它组件。图5b中仅示意性给出部分组件,并不意味着图像处理设备只包括图5b所示组件。需要说明的是,图5b中虚线框内的组件为可选组件,而非必选组件,具体可视图像处理设备的产品形态而定。
本实施例的图像处理设备可以实现为台式电脑、笔记本电脑或智能手机等终端设备,也可以是常规服务器、云服务器或服务器阵列等服务端设备。若本实施例的图像处理设备实现为台式电脑、笔记本电脑、智能手机等终端设备,可以包含图5b中虚线框内的组件;若本实施例的图像处理设备实现为常规服务器、云服务器或服务器阵列等服务端设备,则可以不包含图5b中虚线框内的组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器能够实现图1所示方法中可由图像处理设备执行的各步骤。
相应地,本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被处理器执行时,致使处理器实现图1所示方法中的步骤。
上述图5b中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述图5b中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述图5b中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述图5b中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。