3D虚拟形象的生成方法和装置与流程

文档序号:14992103发布日期:2018-07-20 22:28阅读:2205来源:国知局

本发明涉及计算机技术领域,尤其涉及一种3d虚拟形象的生成方法和装置。



背景技术:

随着智能设备的普及和各种应用的推广,用户在相关应用场景下使用3d形象进行个性化交互的需求日益增长。3d形象的重点在于人脸部分,为了增加应用的可玩性和真实感,3d形象的构建可以参照用户提供的人脸图像。

现有基于真实人脸的3d虚拟人物的创建方法包括:根据人脸图像重建3d人脸模型,然后在3d人脸模型的基础上通过二次建模生成人物对应的身体、头发等其他模型,最终组合为3d虚拟人物模型。其中,重建3d人脸模型时,需要采集人脸正面图像,通过自动提取或人工标定方式进行人脸特征点定位,然后调整3d人脸模型上与人脸特征点对应的顶点,并逐个调整其他非对应的顶点,最后进行人脸纹理拟合。

上述方法存在以下缺陷:

1)现实场景中,很多情况下无法采集到人脸正面图像,比如在进行人脸识别时,很有可能仅采集到侧脸图像,此时采用上述的人脸重建方法将无法构建出3d人脸,或者构建的3d人脸效果极差;

2)在进行人脸轮廓调整时,先调整通用3d人脸模型上与人脸特征点对应的顶点,然后调整其他非对应的顶点,其计算处理过程复杂、耗时长。



技术实现要素:

本发明提供一种3d虚拟形象的生成方法和装置。在根据2d图像调整3d模型的特征部分时,可以一步实现对3d模型上一系列点的调整,简化了模型重建步骤,提高了效率。

本发明第一方面提供一种3d虚拟形象的生成方法,所述方法包括:

获取2d图像,所述2d图像包含图像元素,确定所述2d图像的特征点,所述特征点的集合用于反映所述图像元素的轮廓;

根据所述特征点获取3d模型,所述3d模型具有与所述2d图像的图像元素相应的特征部分,所述特征部分包括控制点和与所述控制点关联的随动点,所述控制点与所述特征点一一对应;

根据所述特征点调整所述3d模型的特征部分的控制点,并根据预设的控制策略控制所述随动点跟随所述控制点的变化而变化,以重建3d模型的特征部分;

将所述2d图像的纹理映射到重建的所述3d模型的特征部分上,得到与所述2d图像对应的3d虚拟形象。

本发明第二方面提供一种3d虚拟形象的生成装置,所述装置包括:

图像获取单元,用于获取2d图像,所述2d图像包含图像元素;

特征点确定单元,用于确定所述2d图像的特征点,所述特征点的集合用于反映所述图像元素的轮廓;

模型获取单元,用于根据所述特征点获取3d模型,所述3d模型具有与所述2d图像的图像元素相应的特征部分,所述特征部分包括控制点和与所述控制点关联的随动点,所述控制点与所述特征点一一对应;

重建单元,用于根据所述特征点调整所述3d模型的特征部分的控制点,并根据预设的控制策略控制所述随动点跟随所述控制点的变化而变化,以重建3d模型的特征部分;

纹理映射单元,用于将所述2d图像的纹理映射到重建的所述3d模型的特征部分上,得到与所述2d图像对应的3d虚拟形象。

实施本发明方案,具有如下有益效果:

在3d模型的特征部分预置控制点和随动点,当调整控制点位置时,随动点跟随控制点的变化而变化,实现了一次调整带动一系列相关点变化,简化调整模型的程序,极大的提高了重建3d模型特征部分的效率;并且,通过随动点跟随控制点变化的方式调整模型,可以确保模型表面的平滑度,进而使渲染得到的3d虚拟形象形象生动。

附图说明

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

图1是可用于实施本发明实施例的3d虚拟形象的重建方法的计算机终端的硬件结构框图;

图2是本发明实施例揭示的3d虚拟形象的重建方法的流程图;

图3是本发明实施例揭示的对2d图像进行人脸特征点识别得到的识别结果的示意图;

图4是本发明实施例揭示的确定2d图像的特征点的方法的流程图;

图5是本发明实施例揭示的矫正特征点的方法的流程图;

图6是本发明实施例揭示的基于目标特征点调整3d模型的控制点的方法的流程图;

图7是本发明实施例揭示的计算3d模型的控制点的第一位移量的方法的流程图;

图8是本发明实施例揭示的3d虚拟形象的生成装置的结构示意图;

图9是本发明实施例揭示的特征点确定单元的结构示意图;

图10是本发明实施例揭示的重建单元的结构示意图;

图11是本发明实施例揭示的控制子单元的结构示意图;

图12是本发明实施例揭示的纹理映射单元的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本申请实施例提供的3d虚拟形象的生成方法基于服务器,该服务器可以是移动终端、计算机终端或者类似的运算装置。在介绍本申请的3d虚拟形象的生成方法之前,首先以计算机终端为例介绍服务器的硬件结构,图1是可用于实施本发明实施例的3d虚拟形象的生成方法的计算机终端的硬件结构框图。如图1所示,计算机终端100可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的3d虚拟形象的生成方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的3d虚拟形象的生成。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端100的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在上述运行环境下,本实施例提供了如图2所示的3d虚拟形象的生成方法。该方法可以应用于智能终端设备中,由智能终端设备中的处理器执行,智能终端设备可以是智能手机、平板电脑等。智能终端设备中安装有至少一个应用程序,本发明实施例并不限定应用程序的种类,可以为系统类应用程序,也可以为软件类应用程序。

图2是本发明实施例揭示的3d虚拟形象的生成方法的流程图。如图2所示,该方法的一种可选的方案包括如下步骤:

步骤s201:获取2d图像,所述2d图像包含图像元素。

对于获取的2d图像,其可以是本地存储的,也可以是从网络上下载的,对于图像的格式本实施例不进行限定,其可以是jpeg格式、bmp格式等等。本申请中获取的2d图像需包含图像元素,图像元素可以是人脸、全身人像、动物面部、动物全身等。2d图像可以不以正面视图来展示图像元素,允许偏离正面一定角度。对于2d图像中的图像元素为人脸来说,2d图像可以不是人脸正面图像,可以是偏离正面一定角度的人脸图像;较优的,2d图像中的人脸不能够偏离正面角度过大,以控制在能够看到人脸上的两个眼睛的角度最好。

在可选实施例中,可以通过摄像模块拍摄获取得到2d图像,进而实时的对拍摄获得到的图像进行图像元素的识别。

步骤s202:确定所述2d图像的特征点,所述特征点的集合用于反映所述图像元素的轮廓。

确定所述2d图像的特征点包括:

s2021,提取2d图像的图像特征点。

对于2d图像,可以使用fcd(fastcornerdetector,快速角点检测)完成图像特征点的提取,并利用sift(scale-invariantfeaturetransform,尺度不变特征转换)算法直接在灰度空间上生成相应特征点的sift描述符。其中,sift特征是一种电脑视觉的算法,用来侦测与描述图像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由davidlowe在1999年所发表,2004年完善总结。

s2022,根据图像特征点确定2d图像的图像元素。

图像特征点的集合可以反映图像元素的轮廓,根据图像特征点可以判别2d图像中包含哪一种图像元素。当然,2d图像中可能包含多种图像元素,这种情况下,可以将在2d图像中占比最大的一种图像元素作为2d图像的图像元素。

s2023,依据所述2d图像中图像元素和预先设定的特征点列表对所述图像特征点进行筛选,获得2d图像的特征点。

本实施例预先针对各个图像元素设置了特征点列表,特征点列表记录了图像元素、图像元素的关键特征点以及各关键特征点与预先设置的3d模型的控制点的对应关系,该3d模型包含了与图像元素相应的特征部分,该控制点为特征部分的控制点。举例来说,图像元素为人脸,3d模型的特征部分为人脸模型,特征点列表可以记录图像元素的名称、图像元素的关键特征点以及与关键特征点对应的控制点。

具体的,对所述图像特征点进行筛选,获得2d图像的特征点的步骤可以包括:从特征点列表中查找所述2d图像的图像元素对应的关键特征点,将关键特征点与所述2d图像的图像特征点进行匹配,将与关键特征点匹配成功的图像特征点作为2d图像的特征点,并保存关键特征点与所述特征点的对应关系。由于关键特征点分别与2d图像的特征点和3d模型的控制点对应,因此2d图像的特征点和3d模型的控制点之间相互对应。

以2d图像为人脸图像为例,先提取2d图像的图像特征点,根据图像特征点识别人脸元素,然后根据人脸元素和特征点列表确定2d图像的特征点。2d图像的特征点可以是预先设定好的人脸上的点,一般性的为多个特征点。这些特征点的集合用于表征人脸轮廓,人脸中的眉部、眼睛、鼻子、嘴巴、下巴以及两侧脸颊能够较好地刻画一张脸,因此可以将这些位置上的某几个点作为特征点。所述2d人脸图像的特征点可以包括眼睛特征点、鼻子特征点、嘴唇特征点、眉部特征点以及脸部边缘特征点中的任一种或多种。可选的,人脸图像中的特征点的个数可以为预设的数量,例如总共88个、99个、155个等,特征点的数量与预设的3d人物模型的人脸部分的控制点的数量相关。较优的,人脸图像中的特征点个数与3d人物模的控制点的个数相同,即:若预设的3d人物模型的人脸部分的控制点总共为88个,则人脸图像中的特征点的个数总共也为88个。具体的,特征点的数量越多则重建的3d人脸与人脸图像的相似度越高。

示例性的,可以得到如图3所示的人脸特征点识别结果。需要指出的是,图3仅为示例,在可选实施例中可以在以上人脸特征点中仅识别部分或更多的特征点,或采用其他方式标记各个特征点,均属于本发明实施例的范畴。

步骤s203:根据所述特征点获取3d模型,所述3d模型具有与所述2d图像的图像元素相应的特征部分,所述特征部分包括控制点和与所述控制点关联的随动点,所述控制点与所述特征点一一对应。

2d图像的特征点集合可以反映图像元素的轮廓,根据该图像元素的轮廓可以确定2d图像的图像元素,进而可以在三维模型库中找到包含同类元素的3d模型。例如,若2d图像的图像元素是人脸,则对应的3d模型可以是人脸模型、包括人脸的半身模型或者是全身模型;若2d图像的图像元素是斗牛犬,则对应的3d模型可以是斗牛犬的全身模型。

可选地,预先建立三维模型库,用于存储3d模型。其中,三维模型库中的3d模型是根据不同的元素类别创建的,3d模型可以是模仿真实的人或动物的模型,也可以是一些虚拟的卡通人物或动物模型,这些模型在建模过程中预留了用于调整特定部位的控制单元,控制单元包括控制点和与控制点关联的随动点,所述控制点与所述2d模型上的特征点存在一一对应关系。

以3d人物模型为例,3d人物模型是设计人员根据不同的人脸脸型预先创建出来的高矮胖瘦大小不一的模型,3d人物模型的人脸部分处预留了可以通过程序进行位置控制的控制单元,例如,眼睛部分预留了眼角控制单元、上眼睑控制单元、下眼睑控制单元、眼珠控制单元等。每个控制单元包括控制点和与控制点关联的随动点,控制单元还预置了随动点的控制策略,当控制点调整时,随动点可以根据控制策略与控制点关联动作。作为可选地实施方式,每个控制单元对应一个控制点和多个随动点,以实现一个点带动多个点动作,获得较佳的控制效果。此外,为了提高3d人物模型的通用性,优选地,可以统一每个3d人物模型的控制点数量和位置分布。例如,每个人物模型的人脸轮廓用88个控制点来表示,其中,左眉毛分布8个控制点,右眉毛分布8个控制点,左眼睛分布8个控制点,右眼睛分布8个控制点,鼻子分布13个控制点,嘴巴分布22个控制点,下巴分布5个控制点,左侧脸颊分布8个控制点,右侧脸颊分布8个控制点。控制点的数量可以增减,只要能够勾勒出人脸轮廓,当然,使用较多的控制点能够勾勒出更精细的人脸轮廓。

可选地,根据2d图形的特征点获取3d模型的方法可以是从三维模型库中调取具有与所述2d图像的图像元素相应的特征部分的3d模型,其中,可以根据预设的特征元素判断模板分析并确定所述2d图像的特征元素。作为一种可选的实施方式,预设的特征元素判断模板为现有技术中通过对训练图像样本进行预处理(例如光照补齐、旋转矫正等),提取gabor特征,训练图像样本信息由二维矩阵转变成一维向量,对训练图像样本的特征向量进行特征降维,以降低复杂度,输入svm(supportvectormachine,支持向量机,一种可训练的机器学习方法)分类器进行训练与识别,得到的特征元素判断模板,本实施例中,导入2d图像进行识别,根据预设的特征元素判断模板识别到2d图像的图像元素。

步骤s204:根据所述特征点调整所述3d模型的特征部分的控制点,并根据预设的控制策略控制所述随动点跟随所述控制点的变化而变化,以重建3d模型的特征部分。

作为一种可选的实施方式,根据特征点的位置以及特征点与3d模型的控制点的对应关系,调整3d模型的控制点,使得3d模型上各个控制点之间的位置关系与2d图像上各特征点之间的位置关系一致;在改变控制点位置的同时,与该控制点关联的随动点还根据预设的控制策略与该控制点一起进行位置调整,从而实现多个随动点与控制点联动的效果;与现有技术中逐个调整3d模型上与特征点对应的点和非对应点相比,这种方式极大的简化了计算过程,还能确保调整后的3d模型表面过渡平滑。

作为另一种可选的实施方式,根据所述特征点调整所述3d模型的特征部分的控制点,并根据预设的控制策略控制所述随动点跟随所述控制点的变化而变化,以重建3d模型的特征部分,可以包括:

s2041,矫正所述特征点,得到用于3d模型特征部分重建的目标特征点;

s2042,基于所述目标特征点调整所述3d模型的特征部分的控制点,并根据预设的控制策略控制所述随动点跟随所述控制点的变化而变化,以重建3d模型的特征部分。

如果2d图像中图像元素角度有偏转,则根据2d图像的特征点不能表征图像元素的正面轮廓,若直接根据这些特征点进行3d模型上特征部分的重建,可能会出现重建的特征部分比例错误、失真,不能获得较好的效果;因此,需要对2d图像的特征点进行矫正,得到图像元素正面情况下的特征点,将矫正后的特征点作为用于3d重建的目标特征点,以提高重建的特征部分与2d图像的图像元素的相似度,确保获得较好的重建效果。步骤s2041仅调整特征点的位置,不改变特征点与控制点之间的对应关系。由于特征点与控制点对应,目标特征点与特征点对应,因此,目标特征点与控制点也存在一一映射关系。

进一步地,根据目标特征点的位置以及目标特征点与3d模型的控制点的对应关系,调整3d模型的控制点,使得3d模型上各个控制点之间的位置关系与目标特征点之间的位置关系一致;在改变控制点位置的同时,与该控制点关联的随动点还根据预设的控制策略与该控制点一起进行位置调整,从而实现多个随动点与控制点联动的效果;与现有技术中逐个调整3d模型上与2d图像特征点对应的点和非对应点相比,这种方式不仅简化了计算过程,还可以确保调整后的3d模型表面过渡平滑。此外,将从2d图像的特征点进行矫正,还原图像元素再正面情况下的特征点位置,再根据矫正后的特征点来重建3d模型的特征部分,从而不必限定图像元素的拍摄角度。例如,即使2d图像中人脸(图像元素)角度有偏转,也能确保3d模型人脸部分的重建效果。

步骤s205:将所述2d图像的纹理映射到重建的所述3d模型的特征部分上,得到与所述2d图像对应的3d虚拟形象。

3d模型的特征部分主要由几何结构信息和纹理信息两部分构成,当模型的特征部分重建完成后,也就得到了特征部分的几何结构信息,再通过纹理映射技术将所述2d图像的纹理映射到所述完成重建的特征部分上,即将3d模型特征部分的纹理替换为2d图像的图像元素的纹理,渲染得到3d虚拟形象。对于最终得到的3d虚拟形象,可以通过显示屏进行显示。

在纹理映射之前,还可以将图像元素的纹理和3d模型特征部分的纹理的亮度及色彩调整为一致,以提升渲染得到的3d虚拟形象的逼真效果,并保持3d模型的特征部分的颜色与其他区域的颜色协调。

上述的3d虚拟形象的生成方法,在3d模型的特征部分预置控制点和随动点,当调整控制点位置时,随动点跟随控制点的变化而变化,实现了一次调整带动一系列相关点变化,简化调整模型的程序,极大的提高了3d模型特征部分的重建效率;并且,通过随动点跟随控制点变化的方式调整模型,可以确保模型表面的平滑度,实现较好的模型重建效果。

如图4所示,在另一个实施例中,步骤s202可以包括以下步骤:

步骤s401,计算2d图像的所有局部二值特征。

步骤s402,采用预先训练的特征点分类器对所述局部二值特征进行判别。

具体的,所述分类器为随机森林分类器,通过以下方法训练得到:

获取多个训练样本,所有训练样本具有相同的样本元素,每个所述训练样本包含标定的样本特征点,所述样本特征点与3d模型的控制点一一映射,所述3d模型具有与所述样本元素相应的特征部分;计算所有样本特征点的局部二值特征;根据每个样本特征点的局部二值特征建立分类器;根据多个所述训练样本对所述分类器进行训练,得到特征点分类器。

步骤s403,根据判别结果确定所述2d图像的特征点。

本实施例采用随机森林的方式进行2d图像的图像特征点的检测。除了本实施例公开的方式之外,还可以采用主动形状模型asm(activeshapemodel)、主动表观模型aam(activeappearancemodel)、级联回归等算法进行特征点的检测标记。

针对不同的图像元素训练对应的特征点分类器,然后使用分类器对输入的2d图像进行特征点识别,可以得到2d图像的特征点以及这些特征点与3d模型的控制点之间的对应关系。

如图5所示,在一个实施例中,步骤s2041可以包括以下步骤:

s501,根据所述特征点的位置信息计算所述2d图像中图像元素的偏转角度;

s502,根据所述偏转角度矫正所述特征点,得到所述图像元素在偏转角度为0时的特征点,并将所述图像元素在偏转角度为0时的特征点作为用于3d模型特征部分重建的目标特征点。

示例性的,当2d图像中的图像元素为人脸时,可以通过以下方法计算得到2d图像中人脸偏转的角度。具体步骤包括:

(11)建立人脸的标准三维模型,标记确定2d图像中的特征点对应到标准三维模型中的点位置,记为pi。其中,标准三维模型的建立方法,可以自主采集大量人群的人脸三维信息,建立一个基于采样样本的“平均脸”三维模型,也可以直接使用人脸三维模型库已经采集好的数据。

(12)标记2d图像中特征点的二维位置,记为qi。

(13)通过三维投影到二维的投影公式,建立最小化误差模型:

其中,(α,β,γ)代表人脸姿态三个旋转角度(分别是沿x、y、z轴的旋转角度),n代表着所述2d人脸图像上标定特征点的个数,qi代表着待测试的特征点,pi代表与qi对应着的标准三维模型的特征点,r代表旋转矩阵,t为空间偏移向量,c为伸缩因子。r的具体形式是如下三个矩阵相乘:

即我们希望能求解出公式中的变量r,t,c,让对应标准三维模型中的特征点pi通过平移(t)、旋转(r)、缩放(c)后投影到二维平面的点与实际测量到的特征点qi之间的误差距离最小。

(14)通过梯度下降、牛顿法等方式求解这个利用非线性最小二乘法建立的方程组,得到在我们检测到的pi以及标准模型对应的qi参数下,最满足方程组的解r,t,c,再通过分解r(按rx,ry,rz的矩阵)得到具体旋转角(α,β,γ)。

进一步地,根据人脸偏转的角度矫正特征点,即利用偏转角度将人脸对应部位的特征点几何变换到偏转角度为0的“正脸模型”,可以采用基于3d人脸重建的方法(即3d法)实现。具体包括如下步骤:

(21)通过上述(11)-(14)的求解,得到了pi和qi之间映射关系的最优解r,t,c,以及人脸旋转角(α,β,γ);

(22)对于每个检测到的二维特征点qi,通过三维投影到二维的投影公式求解它在实际三维空间中对应的真实点ppi,可以得出:

qi=c(rppi+t)

反算出ppi=rrcr(qi-t)

其中rr,cr分别表示矩阵r,c的逆矩阵;

(23)在ppi的三维空间中,我们对每个三维特征点ppi进行反向旋转角度(-α,-β,-γ),即将每个三维特征点由角度(α,β,γ)旋转回(0,0,0)的正脸角度,得到正脸角度下的三维特征点pppi;

(24)将正脸角度下的三维特征点pppi投影回二维平面,得到对应的二维特征点qqqi,即得到了“正脸模型”下的人脸二维特征点。

应当注意的是,计算人脸偏转角度的方法较多,以上仅为一个示例性方法,本实施例的主要思想在于通过计算人脸偏转角度来矫正特征点,得到正面人脸的特征点,只要包含这种技术思路,即使采用其他方法来实现特征点矫正,仍然属于本发明实施例的范畴。

如图6所示,在一个实施例中,步骤s204可以包括以下步骤:

s601,参考所述目标特征点之间的位置关系,计算所述3d模型的控制点的第一位移量。

具体的,目标特征点之间的位置关系可以根据目标特征点的位置坐标来确定,目标特征点之间的位置关系包括目标特征点之间的距离和方位。第一位移量是将3d模型的控制点之间的位置关系调整为与目标特征点之间的位置关系一致情况下控制点需要移动的位移量,第一位移量包括位移长度和方向。

s602,获取与所述控制点关联的随动点的控制策略。

具体的,随动点的控制策略是预先制定的,控制策略用于明确在控制点位置发生改变时,与控制点关联的各个随动点应该做何种适应性调整,以确保不会因为控制点的位置调整导致模型表面不平滑。随动点的控制策略可以约束随动点的位移量,该位移量包括位移长度和方向。示例性的,与控制点a关联的一个随动点a1的控制策略可以是:a1跟随a移动,a1的位移长度为a的1/2,a1的位移方向与a相同。

作为一种优选的实施方式,控制策略可以通过如下方法确定:

(1)获取3d模型,所述3d模型包含特征部分,3d模型的特征部分预置有多个控制单元,每个控制单元包括一个控制点和与该控制点关联的多个随动点。

(2)根据3d模型从预设的模型库中获取多个样本模型,所述样本模型与3d模型包含相同的特征部分,例如3d模型和样本模型都具有人脸部分;每个样本模型具有多个顶点,且每个样本模型上都有与3d模型的控制点及随动点一一对应的顶点,当然,样本模型上的顶点数目可以远大于3d模型的控制点和随动点数目。

(3)为每个控制单元的控制点设定调整参数,调整参数与特征部分的动作相对应,例如,调整参数f对应特征部分的动作为微笑,调整参数g对应特征部分的动作为哭泣,调整参数h对应特征部分的动作为惊讶。同一个控制单元的同一个控制点可以具有多个调整参数,每个调整参数对应的随动点的控制策略可能各不相同,但随动点的控制策略的确定方法相同,具体可以通过如下的步骤(31)-(32)来确定当一个控制点按照一个预设的调整参数进行调整时,与控制点关联的任意一个随动点的控制策略。

(31)按照控制点的调整参数手动调整每个样本模型上与该控制点对应的顶点,并对该顶点附近的其他顶点进行手动调整,以确保调整后的样本模型表面平滑,且与调整参数对应的特征部分的动作相同或近似;

(32)根据随动点与样本模型上顶点的对应关系,确定每个样本模型上与随动点对应的顶点在样本模型调整前后的位移(包括位移量和方向),再根据所有与该随动点对应的顶点的位移求取位移平均值,将该位移平均值作为该随动点的控制策略。

按照上述步骤可以计算得到当控制点按照设定的调整参数移动后,与控制点关联的每个随动点的控制策略,可以将控制点的调整参数与随动点的控制策略进行对应存储,后续调整3d模型特征部分时,如果控制点按照预设的调整参数进行调整,与控制点关联的随动点可以按照各自对应的控制策略进行自动调整。从而不必像现有技术中那样对模型的顶点逐个进行调整,简化了调整模型的程序。

s603,根据所述控制策略和所述第一位移量,计算所述随动点的第二位移量。

s604,按照所述第一位移量调整所述控制点,以使所述控制点之间的位置关系与所述目标特征点之间的位置关系一致,并按照所述第二位移量调整与所述控制点关联的随动点,以重建3d模型的特征部分。

具体的,控制点和与控制点关联的随动点被包装为一个控制单元,通过修改控制点的位置参数,即可同时改变控制点和关联随动点的位置。

如图7所示,在一个实施例中,步骤s601包括如下步骤:

s701,确定目标特征点与控制点之间的映射关系。

具体的,目标特征点、特征点和控制点之间一一对应,目标特征点与控制点的映射关系即为与目标特征点对应的特征点与控制点之间的映射关系。

s702,根据所述目标特征点与控制点之间的映射关系计算形变系数。

鉴于2d图像中图像元素的大小与3d模型的特征部分的大小可能不一致,在进行模型调整之前,需要确定使二者大小保持一致或相近的形变系数。

在一个实施例中,计算形变系数的步骤可以包括:选取两个目标特征点,将两个目标特征点之间的距离作为第一参考长度;根据所述目标特征点与控制点之间的映射关系,查找得到与两个目标特征点对应的两个控制点,将与两个目标特征点对应的两个控制点之间的距离作为第二参考长度;计算所述第一参考长度与所述第二参考长度的比值,得到形变系数。

示例性的,以2d图像中图像元素为人脸,3d模型特征部分为人脸模型为例,可以选取2d图像中处于人脸的两眼位置的目标特征点m1和m2,将m1和m2之间的距离作为第一参考长度lm1m2;找到3d模型上分别与m1和m2对应的控制点n1和n2,将n1和n2之间的距离作为第二参考长度ln1n2,计算lm1m2和ln1n2的比值,获得形变系数。

s703,选取一个目标特征点作为第一参考点,并将与所述第一参考点对应的控制点作为第二参考点。

s704,确定所述目标特征点与所述第一参考点之间的第一位置关系以及所述目标特征点对应的控制点与所述第二参考点之间的第二位置关系。

具体的,第一位置关系包括目标特征点与第一参考点之间的距离以及方位信息,第二位置关系包括控制点与第二参考点之间的距离以及方位信息。

s705,根据所述第一位置关系、所述第二位置关系和所述形变系数,计算所述控制点的目标位置。

具体的,根据第一位置关系中的距离信息、第二位置关系中的距离信息以及形变系数,计算得到控制点目标位置与第二参考点之间的距离l,根据第一位置关系中的方位信息、第二位置关系中的方位信息和距离l确定控制点的目标位置。

s706,基于所述控制点的目标位置和当前位置确定所述控制点的第一位移量。

在一个实施例中,步骤s205包括如下步骤:

s1,将2d图像的特征点进行三角剖分,得到2d图像的三角面片;

s2,将3d模型的控制点进行三角剖分,得到3d模型的三角面片;

s3,根据所述特征点与所述控制点之间的映射关系,建立所述2d图像的三角面片与所述3d模型的三角面片之间的对应关系;

s4,参照建立的对应关系,将2d图像的三角面片中的纹理映射到对应的3d模型的三角面片。

具体的,将2d图像的三角面片中的纹理映射到对应的3d模型的三角面片,可以包括:

s41,根据3d模型的三角面片的纹理对对应的2d图像的三角面片的纹理进行自适应亮度调整。

具体的,自适应亮度调整方法可以包括:分别计算2d图像纹理数据和对应的3d模型纹理数据的平均亮度,将3d模型纹理数据的平均亮度减去2d图像纹理数据的平均亮度得到亮度差值,然后按照亮度差值对2d图像纹理每个像素点进行亮度提升,以使2d图像纹理的亮度与3d模型纹理的亮度一致。

s42,根据2d图像的三角面片的纹理对对应的3d模型的三角面片的纹理进行颜色调整。

具体的,颜色调整可以包括:分别计算2d图像纹理数据和对应的3d模型纹理数据的平均颜色,将2d图像纹理数据的平均颜色减去3d模型纹理数据的平均颜色得到颜色差值,然后按照颜色差值提升3d模型纹理的像素颜色,以使3d模型纹理的颜色与2d图像纹理的颜色一致。其中,可以通过叠加每个像素的rgb值,并除以像素个数,来得到平均颜色。

s43,将调整后的2d图像的三角面片的纹理与调整后的3d模型的三角面片的纹理进行alpha半透明融合。

本实施例中,在做半透明融合之前需要对2d纹理数据和3d模型数据的亮度、色彩进行一致性调整,可以提升3d虚拟形象的逼真效果,并保持3d模型的特征部分的颜色与其他区域的颜色协调。如果没有这步处理,仅采用半透明alpha融合,则渲染出的虚拟形象中特征部分的颜色与其他区域的颜色会明显不一致。

以2d图像中图像元素为人脸,3d模型特征部分为人脸模型为例,若要将2d图形中的纹理映射到3d模型的特征部分,可以采用如下方法实现。包括:

1.对于检测到的2d图像的特征点集{x1,y1}和3d模型对应三维点{x2,y2,z2},通过最小二乘法建立{x1,y1}到{x2,y2,z2}的映射关系m,使得针对输入的每个{x2,y2,z2},通过m映射到二维平面的坐标点{x3,y3},与实际特征点{x1,y1}的距离最小。这一步可以建立起2d图像中每个坐标点到3d模型每个三维点的映射关系。

2.获取3d模型每个三维点{x2,y2,z2}与纹理点{u1,v1}的映射关系n,映射关系n在建模时已被记录于模型文件中,通过读取模型文件即可获得映射关系。

3.遍历3d模型的每个三角形面片,包括:

(1)针对三角形的三个顶点v1、v2、v3,通过映射关系m计算出对应的2d图像的像素点位置f1、f2、f3;

(2)针对三角形的三个顶点v1、v2、v3,通过映射关系n计算出对应的纹理像素点位置t1、t2、t3;

(3)确定2d图像的像素点位置与纹理像素点位置的对应关系,通过(1)-(2),即得到纹理像素点位置t1的颜色即为2d图像的像素点f1的颜色,同理得到t2对应f2,t3对应f3;

(4)对t1、t2、t3构成的三角形内部所有像素点进行线性插值,得到t1、t2、t3构成的三角形每个像素点,将2d图像上对应位置的像素颜色映射到3d模型。

4.通过步骤3的遍历,即可根据2d图像生成3d模型的纹理。

需要说明的是,除了以上的纹理映射方法之外,还可以采用保相似的网格参数化方法进行纹理映射。保相似的网格参数化方法从三角形表示的边角关系出发,利用相邻边长比值及夹角相等则三角形相似这一判定定理,在平面上构建与三维网格上对应的邻边的长度比值和夹角来建立全局的线性方程组,求解该方程组得到参数化后的二维平面网格,进而得到模型上顶点与二维平面各三角形顶点之间的映射关系。该方法计算简单快速,参数化后的三角形扭曲较小,可以产生较好的纹理映射效果。

本申请提供的3d虚拟形象生成方法可用于三维虚拟社交、三维形象模拟等需要展现三维虚拟形象的应用中,在这些场景下,用户可以通过单张包含图像元素的图像或视频流(图像或视频流可以通过手机即时拍摄、录制或从已有的资源中选择),通过本申请的方法将3d模型的特征部分调整为与原图像/视频中的图像元素近似,并进行纹理映射,进而根据模型数据和纹理数据渲染得到3d虚拟形象,并在客户端界面上进行展示,此外,还可以通过预先设计的模型的预置动作,控制3d虚拟形象做一些动作,从而与用户进行互动。

下面对本申请实施例提供的3d虚拟形象的生成装置进行描述,下文描述的3d虚拟形象的生成装置与上文描述的3d虚拟形象的生成方法可相互对应参照。本申请提供的3d虚拟形象的生成装置可以应用于图1所示的服务器,也可以通过终端实现。

参见图8,图8是本发明实施例揭示的3d虚拟形象的生成装置的结构示意图。

如图8所示,所述3d虚拟形象的生成装置80包括:

图像获取单元81,用于获取2d图像,所述2d图像包含图像元素;

特征点确定单元82,用于确定所述2d图像的特征点,所述特征点的集合用于反映所述图像元素的轮廓;

模型获取单元83,用于根据所述特征点获取3d模型,所述3d模型具有与所述2d图像的图像元素相应的特征部分,所述特征部分包括控制点和与所述控制点关联的随动点,所述控制点与所述特征点一一对应;

重建单元84,用于根据所述特征点调整所述3d模型的特征部分的控制点,并根据预设的控制策略控制所述随动点跟随所述控制点的变化而变化,以重建3d模型的特征部分;

纹理映射单元85,用于将所述2d图像的纹理映射到重建的所述3d模型的特征部分上,得到与所述2d图像对应的3d虚拟形象。

可选的,本申请实施例还公开了上述特征点确定单元82的一种可选结构,如图9所示,特征点确定单元82可以包括:

特征计算子单元821,用于计算2d图像的所有局部二值特征;

判别子单元822,用于采用预先训练的特征点分类器对所述局部二值特征进行判别;

特征点确定子单元823,用于根据判别结果确定所述2d图像的特征点。

其中,所述分类器通过以下方法训练得到:获取多个训练样本,所有训练样本具有相同的样本元素,每个所述训练样本包含标定的样本特征点,所述样本特征点与3d模型的控制点一一映射,所述3d模型具有与所述样本元素相应的特征部分;计算所有样本特征点的局部二值特征;根据每个样本特征点的局部二值特征建立分类器;根据多个所述训练样本对所述分类器进行训练,得到特征点分类器。

可选的,本申请实施例还公开了上述重建单元84的一种可选结构,如图10所示,重建单元84可以包括:

目标特征点确定子单元841,用于矫正所述特征点,得到用于3d模型特征部分重建的目标特征点;

控制子单元842,用于基于所述目标特征点调整所述3d模型的特征部分的控制点,并根据预设的控制策略控制所述随动点跟随所述控制点的变化而变化,以重建3d模型的特征部分

所述目标特征点确定子单元841包括:

偏转角度计算模块8411,用于根据所述特征点的位置信息计算所述2d图像中图像元素的偏转角度;

目标特征点确定模块8412,用于根据所述偏转角度矫正所述特征点,得到所述图像元素在偏转角度为0时的特征点,并将所述图像元素在偏转角度为0时的特征点作为用于3d模型特征部分重建的目标特征点。

可选的,本申请实施例还公开了上述控制子单元842的一种可选结构,如图11所示,控制子单元842可以包括:

第一位移量计算模块8421,用于参考所述目标特征点之间的位置关系,计算所述3d模型的控制点的第一位移量;

控制策略获取模块8422,用于获取与所述控制点关联的随动点的控制策略;

第二位移量计算模块8423,用于根据所述控制策略和所述第一位移量,计算所述随动点的第二位移量;

调整模块8424,用于按照所述第一位移量调整所述控制点,以使所述控制点之间的位置关系与所述目标特征点之间的位置关系一致,并按照所述第二位移量调整与所述控制点关联的随动点,以重建3d模型的特征部分。

优选地,所述第一位移量计算模块8421包括:

映射关系确定子模块84211,用于确定目标特征点与控制点之间的映射关系;

形变系数计算子模块84212,用于根据所述目标特征点与控制点之间的映射关系计算形变系数;

参考点确定子模块84213,用于选取一个目标特征点作为第一参考点,并将与所述第一参考点对应的控制点作为第二参考点;

位置关系确定子模块84214,用于确定所述目标特征点与所述第一参考点之间的第一位置关系以及所述目标特征点对应的控制点与所述第二参考点之间的第二位置关系;

目标位置计算子模块84215,用于根据所述第一位置关系、所述第二位置关系和所述形变系数,计算所述控制点的目标位置;

位移量计算子模块84216,用于基于所述控制点的目标位置和当前位置确定所述控制点的第一位移量。

优选地,所述形变系数计算子模块84212包括:

第一参考长度确定子模块,用于选取两个目标特征点,将两个目标特征点之间的距离作为第一参考长度;

第二参考长度确定子模块,用于根据所述目标特征点与控制点之间的映射关系,查找得到与两个目标特征点对应的两个控制点,将与两个目标特征点对应的两个控制点之间的距离作为第二参考长度;

形变系数计算子模块,用于计算所述第一参考长度与所述第二参考长度的比值,得到形变系数。

可选的,本申请实施例还公开了上述纹理映射单元85的一种可选结构,如图12所示,纹理映射单元85可以包括:

第一剖分子单元851,用于将2d图像的特征点进行三角剖分,得到2d图像的三角面片;

第二剖分子单元852,用于将3d模型的控制点进行三角剖分,得到3d模型的三角面片;

关系建立子单元853,用于根据所述特征点与所述控制点之间的映射关系,建立所述2d图像的三角面片与所述3d模型的三角面片之间的对应关系;

纹理映射子单元854,用于参照建立的对应关系,将2d图像的三角面片中的纹理映射到对应的3d模型的三角面片。

优选地,所述纹理映射子单元854包括:

亮度调整模块,用于根据3d模型的三角面片的纹理对对应的2d图像的三角面片的纹理进行亮度调整;

颜色调整模块,用于根据2d图像的三角面片的纹理对对应的3d模型的三角面片的纹理进行颜色调整;

纹理融合模块,用于将调整后的2d图像的三角面片的纹理与调整后的3d模型的三角面片的纹理进行半透明融合。

本实施例提供的3d虚拟形象生成装置,在3d模型的特征部分预置控制点和随动点,当调整控制点位置时,随动点跟随控制点的变化而变化,实现了一次调整带动一系列相关点变化,简化调整模型的程序,极大的提高了3d模型特征部分的重建效率;并且,通过随动点跟随控制点变化的方式调整模型,可以确保模型表面的平滑度,使渲染得到的3d虚拟形象逼真。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only目标特征点memory,rom)等非易失性存储介质,或随机存储记忆体(random目标特征点access目标特征点memory,ram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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