一种3D动画的生成方法及电子设备与流程

文档序号:31716506发布日期:2022-10-04 22:00阅读:57来源:国知局
一种3D动画的生成方法及电子设备与流程
一种3d动画的生成方法及电子设备
技术领域
1.本技术涉及终端技术领域,尤其涉及一种3d动画的生成方法及电子设备。


背景技术:

2.手机、平板等电子设备中,可以为用户提供人脸转化为三维(three demension,3d)动画的功能。例如,将人脸转化为动漫或者动物脸,使动漫或者动物脸具有人脸的表情。使用该功能,可以制作丰富的表情包或者特效。示例性的,使用该功能可以将图1左侧的人脸转化为右侧的动物表情。
3.在现有技术中,通常需要使用深度摄像头拍摄到包含深度信息的图像或者视频,才能从图像或者视频中方便的获取到深度信息,从而得到人脸的3d坐标。或者,需要使用双目摄像头从两个角度拍摄图像或者视频,并基于两个角度的图像或者视频计算深度信息,从而得到人脸的3d坐标。在得到人脸的3d坐标后,利用人脸的3d坐标和3d动画的模型数据,才能实现人脸到3d动画的转化。
4.上述现有技术需要特殊的硬件支持,如需要有深度摄像头或者双目摄像头。若硬件配置不高,从而导致硬件配置不高时则无法实现人脸到3d动画的转化。


技术实现要素:

5.有鉴于此,本技术提供了一种3d动画的生成方法及电子设备,针对普通单目摄像头拍摄的包括图像或者视频,也可以完成将其中的人脸转化为3d动画。
6.第一方面,本技术实施例提供一种3d动画的生成方法,可应用于手机、平板等具有将图像中的人脸转化为3d动画的需求的电子设备。其中,获得第一图像,第一图像中不包括深度信息。将第一图像作为输入,运行第一ai模型(如深度转化模型),得到第二图像,第二图像是与第一图像对应的、具有深度信息的图像,第一ai模型具有根据未携带深度信息的图像生成携带深度信息的图像的能力。基于第一图像和第二图像计算第一图像中人脸的多个特征点在相机坐标系下的多个第一3d坐标。匹配多个第一3d坐标和3d动画的模型中多个特征点的多个第二3d坐标,生成第一3d动画。
7.综上,采用本技术实施例的方法,可以采用第一ai模型实现将未携带深度信息的第一图像转换为携带有深度信息的第二图像。从而即使针对单目摄像头拍摄得到的图像,也可以得到深度信息。使得图像中人脸到3d动画的转换不仅局限于双目摄像头或者深度摄像头拍摄得到的图像。然后,基于第一图像和第二图像计算人脸中特征点的3d坐标,并仅通过特征点的匹配即可完成人脸到3d动画的转化。而无需对整个人脸进行3d重建,也无需将重建的3d人脸中大量的点与模型中的点匹配,可以极大的减少人脸到3d转换的运算量。
8.在一种可能的设计方式中,上述基于第一图像和第二图像计算第一图像中人脸的多个特征点在相机坐标系下的多个第一3d坐标,包括:获取第一图像中人脸的多个特征点在图像坐标系下的多个第一2d坐标。从第二图像中获取每个第一2d坐标处的深度信息,得到多个第一2d坐标对应的多个深度信息。基于多个第一2d坐标和多个深度信息,计算第一
图像中人脸的多个特征点在相机坐标系下的多个第一3d坐标。
9.也就是说,采用本实施例的方法,在得到携带深度信息的第二图像后,则不仅可以确定特征点的2d坐标,还可以进一步结合第二图像确定特征点的3d坐标,以用于后续特征点匹配。
10.在一种可能的设计方式中,上述获取第一图像中人脸的多个特征点的多个第一2d坐标,包括:将第一图像作为输入,运行第二ai模型(如改进的人脸检测模型),得到多个第一2d坐标,第二ai模型具有检测图像中人脸的特征点的2d坐标的能力。
11.也就是说,采用本实施例的方法,可以采用第二ai模型来确定特征点的2d坐标,从而可以智能的获取到特征点的2d坐标。
12.在一种可能的设计方式中,上述第二图像为灰度图像,第二图像中每个像素点的像素值表示该像素点的深度信息。从第二图像中获取每个第一2d坐标处的深度信息,包括:从第二图像中获取每个第一2d坐标处的像素值。
13.在一种可能的设计方式中,在从第二图像中获取每个第一2d坐标处的深度信息之前,上述方法还包括:调整第二图像的尺寸,使第二图像和第一图像的像素相同。
14.也就是说,采用本实施例的方法,可以先调节以使第二图像和第一图像的像素相同,在调节后,才能确保特征点在第一图像和第二图像中的坐标相同。如此,才能确保获取的各个特征点的深度信息的准确性。
15.在一种可能的设计方式中,上述生成第一3d动画,包括:计算每个第二3d坐标在相机坐标系下的第三3d坐标,得到多个第二3d坐标对应的多个第三3d坐标,每个第三3d坐标为模型中的一个特征点在相机坐标系下的3d坐标。基于多个第一3d坐标和多个第二3d坐标的匹配关系,以及多个第二3d坐标和多个第三3d坐标的对应关系,确定多个第三3d坐标和多个第一3d坐标的对应关系。调整模型中各个特征点的位置,使各个特征点从其所在的第三3d坐标处移动到相机坐标系下的第四3d坐标处,生成3d动画。其中,第四3d坐标的横坐标值为与第三3d坐标具有对应关系的第一3d坐标的横坐标值,第四3d坐标的纵坐标值为与第三3d坐标具有对应关系的第一3d坐标的纵坐标值,第四3d坐标的竖坐标值为第三3d坐标的竖坐标值。
16.也就是说,采用本实施例的方法,先将模型中特征点的3d坐标转换到相机坐标系下,使模型中的特征点和人脸中的特征点的参考系一致。如此,后续才能进行特征点匹配。然后,移动模型,使移动后模型的各个特征点的3d坐标的横坐标(即x坐标)和纵坐标(即y坐标)与人脸中相应特征点的横坐标和纵坐标相同,从而可以维持人脸上五官的形态(如表情)。并且,移动后模型的各个特征点的3d坐标的竖坐标(即z坐标)保持不变,从而可以使转化后的3d动画保持与模型的视觉效果(如远近效果)一致。
17.在一种可能的设计方式中,多个特征点包括五官的特征点和轮廓的特征点,在生成3d动画之前,上述方法还包括:计算第一图像中五官的第一特征点和轮廓的第二特征点之间的第一距离,计算模型中第一特征点和第二特征点之间的第二距离。基于第一距离和第二距离对模型进行缩放处理,使缩放后的模型中第一特征点和第二特征点之间距离为第一距离。
18.也就是说,采用本实施例的方法,可以按照人脸中五官和轮廓之间的距离,对模型进行缩放,从而使生成的3d动画保留人脸的比例特征。
19.在一种可能的设计方式中,上述方法还包括:获得第三图像,第三图像中包括深度信息。基于第三图像计算第三图像中人脸的多个特征点的多个第五3d坐标。匹配多个第五3d坐标和多个第二3d坐标,基于匹配结果生成第二3d动画。
20.也就是说,采用本实施例的方法,针对携带有深度信息的图像,如深度摄像头拍摄到的图像,其自身就携带深度信息,从而无需采用深度转化模型对其转化。而可以直接基于该图像得到特征点的3d坐标,从而完成特征点的匹配并生成3d动画。
21.在一种可能的设计方式中,第一ai模型为基于对抗生成网络的网络结构或者神经风格迁移网络结构。
22.在一种可能的设计方式中,第二ai模型为fast rcnn、faster rcnn或者yolo网络结构。
23.第二方面,本技术实施例提供一种电子设备,电子设备包括存储器和处理器,所述存储器和所述处理器耦合;其中,存储器中存储有计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被处理器执行时,使得电子设备执行如第一方面及其任一种可能的设计方式的方法。
24.第三方面,本技术实施例提供一种芯片系统,该芯片系统应用于包括显示屏和存储器的电子设备;所述芯片系统包括一个或多个接口电路和一个或多个处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
25.第四方面,本技术提供一种计算机存储介质,该计算机存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
26.第五方面,本技术提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的方法。
27.可以理解地,上述提供的第二方面所述的电子设备,第三方面所述的芯片系统,第四方面所述的计算机存储介质,第五方面所述的计算机程序产品所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
28.图1为本技术实施例提供的一种人脸转化为3d动画的效果图;图2为本技术实施例提供的一种3d动画的生成方法的原理框图;图3为本技术实施例提供的一种电子设备的硬件结构图;图4为本技术实施例提供的一种人脸检测的原理图;图5为本技术实施例提供的一种rgb图像转化为深度图像的原理图;图6为本技术实施例提供的一种深度转化模型的训练示意图;图7为本技术实施例提供的一种人脸的特征点的示意图;图8为本技术实施例提供的另一种3d动画的生成方法的原理框图;图9为本技术实施例提供的另一种人脸检测的原理图;
图10为本技术实施例提供的一种获取特征点的深度信息的原理图;图11为本技术实施例提供的再一种3d动画的生成方法的原理框图;图12为本技术实施例提供的一种3d动画的生成方法的流程图;图13为本技术实施例提供的一种相机坐标系的示意图;图14为本技术实施例提供的一种芯片系统的结构图。
具体实施方式
29.下面结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。其中,在本技术实施例的描述中,以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本技术以下各实施例中,“至少一个”、“一个或多个”是指一个或两个以上(包含两个)。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
30.在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。术语“连接”包括直接连接和间接连接,除非另外说明。“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
31.在本技术实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
32.为了使本领域的技术人员更好地理解本技术的技术方案,下面结合附图和具体实施例对本技术作进一步的详细说明。
33.采用人脸转化到3d动画的功能,可以制作丰富的表情包或者特效。示例性的,采用该功能,可以将图1左侧的人脸转化为右侧的动物表情。在一些实施例中,通常只能将深度摄像头或者双目摄像头采集的图像中的人脸转化为3d动画。
34.基于上述问题,本技术实施例提供一种三维动画的生成方法,可用于手机、平板等电子设备中,实现将普通单目摄像头拍摄到的图像或者单目摄像头拍摄到的视频中任一帧图像中的人脸转化为3d动画。为了方便说明,可以将单目摄像头拍摄到的图像或者单目摄像头拍摄到的视频中任一帧图像称为第一图像。也就是说,第一图像为不携带深度信息的rgb图像。参见图2,在本技术实施例中,电子设备可以使用深度转化模型将第一图像转化为携带深度信息的图像(可简称为深度图像),如图2所示的210过程。其中,深度转化模型具有
根据rgb图像生成深度图像的功能,深度图像中包括第一图像中各个像素点的深度信息。然后,电子设备基于第一图像中人脸的多个像素点的二维(two demension,2d)坐标、第二图像携带的深度信息以及3d动画模型则可以生成人脸对应的3d动画,如图2所示的220过程。
35.综上所述,采用本技术实施例的方法,针对不携带深度信息的第一图像,电子设备可以通过深度转化模型生成对应的深度图像。从而可用于将单目摄像头拍摄的图像中的人脸转化为3d动画,不会受到特殊硬件的限制。
36.示例性的,本技术实施例中的电子设备可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,pda)、增强现实(augmented reality,ar)\虚拟现实(virtual reality,vr)设备等具有一定运算能力,尤其是图像处理能力的设备。本技术实施例对该电子设备的具体形态不作特殊限制。
37.请参见图3,为本技术实施例提供的一种电子设备的硬件结构图。如图3所示,以电子设备是手机300为例,电子设备可以包括处理器310,外部存储器接口320,内部存储器321,通用串行总线(universal serial bus,usb)接口330,充电管理模块340,电源管理模块341,电池342,天线1,天线2,移动通信模块350,无线通信模块360,音频模块370,扬声器370a,受话器370b,麦克风370c,耳机接口370d,传感器模块380,按键390,马达391,指示器392,摄像头393,显示屏394,以及用户标识模块(subscriber identification module,sim)卡接口395等。
38.可以理解的是,本实施例示意的结构并不构成对手机300的具体限定。在另一些实施例中,手机300可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
39.处理器310可以包括一个或多个处理单元,例如:处理器310可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。在一些实施例中,可以由处理器310完成根据第一图像生成3d动画的处理。
40.可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对手机300的结构限定。在另一些实施例中,手机300也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
41.充电管理模块340用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块340可以通过usb接口330接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块340可以通过手机300的无线充电线圈接收无线充电输入。充电管理模块340为电池342充电的同时,还可以通过电源管理模块341为手机300供电。
42.电源管理模块341用于连接电池342,充电管理模块340与处理器310。电源管理模块341接收电池342和/或充电管理模块340的输入,为处理器310,内部存储器321,外部存储器,显示屏394,摄像头393,和无线通信模块360等供电。电源管理模块341还可以用于监测
电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块341也可以设置于处理器310中。在另一些实施例中,电源管理模块341和充电管理模块340也可以设置于同一个器件中。
43.手机300的无线通信功能可以通过天线1,天线2,移动通信模块350,无线通信模块360,调制解调处理器以及基带处理器等实现。
44.无线通信模块360可以提供应用在手机300上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块360可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块360经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器310。无线通信模块360还可以从处理器310接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
45.手机300通过gpu,显示屏394,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏394和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器310可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
46.手机300可以通过isp,摄像头393,视频编解码器,gpu,显示屏394以及应用处理器等实现拍摄功能。isp 用于处理摄像头393反馈的数据。摄像头393用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。
47.手机300可以包括1个或n个摄像头393,n为大于1的正整数。示例性的,摄像头393可以包括深度摄像头、双目摄像头和/或单目摄像头。在一些实施例中,第一图像由电子设备中的单目摄像头拍摄得到。
48.外部存储器接口320可以用于连接外部存储卡,例如micro sd卡,实现扩展手机300的存储能力。外部存储卡通过外部存储器接口320与处理器310通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
49.内部存储器321可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器310通过运行存储在内部存储器321的指令,从而执行手机300的各种功能应用以及数据处理。例如,处理器310可以通过执行存储在内部存储器321中的指令,响应于用户展开显示屏394的操作,在显示屏394显示不同的内容。内部存储器321可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储手机300使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器321可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
50.手机300可以通过音频模块370,扬声器370a,受话器370b,麦克风370c,耳机接口370d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
51.按键390包括开机键,音量键等。按键390可以是机械按键。也可以是触摸式按键。手机300可以接收按键输入,产生与手机300的用户设置以及功能控制有关的键信号输入。马达391可以产生振动提示。马达391可以用于来电振动提示,也可以用于触摸振动反馈。指
示器392可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。sim卡接口395用于连接sim卡。sim卡可以通过插入sim卡接口395,或从sim卡接口395拔出,实现和手机300的接触和分离。手机300可以支持1个或n个sim卡接口,n为大于1的正整数。
52.本技术实施例提供的三维动画的生成方法,可以在具有上述硬件结构的手机300中实现。
53.本技术实施例中,手机300可以将单目摄像头拍摄到的第一图像中的人脸转化为3d动画。其中,第一图像可以由手机300中的单目摄像头拍摄得到。或者,第一图像也可以由其它设备传输给手机300。例如,该其它设备可以是另一部手机、平板或者相机等。
54.为了实现将第一图像中的人脸转化为3d动画,第一方面,手机300需要检测第一图像中的人脸区域,该人脸区域可用于确定人脸中多个像素点的2d坐标;第二方面,手机300需要将未携带深度信息的第一图像转化为深度图像。下面将分别说明这两个方面:第一方面,检测第一图像中的人脸区域。手机300可以使用人脸检测技术检测出第一图像中的人脸区域。
55.在一些实施例中,手机300可以使用适用于人脸检测的人工智能(artificial intelligence,ai)模型来检测第一图像中的人脸区域。为了方便说明,可以将该用于人脸检测的ai模型称为人脸检测模型。人脸检测模型可以是快速目标检测卷积神经网络(fast region proposals convolutional neural network,fast rcnn)、改进型快速目标检测卷积神经网络(faster region proposals convolutional neural network,faster rcnn)、浏览一次即识别物体(you only look once,yolo)等网络结构。手机300将第一图像作为输入,运行人脸检测模型,则可以输出人脸区域在第一图像中的位置信息。示例性的,参见图4,将第一图像输入至人脸检测模型410,运行人脸检测模型可以输出第一图像中人脸区域420在第一图像中的位置信息,如人脸区域420的四个顶点在第一图像中的2d坐标。其中,图4中用于指示人脸区域420的虚线矩形框仅为示意性的,实际在第一图像中并不会显示。
56.应理解,若人脸检测模型输出的结果指示第一图像中没有人脸,如输出“false”,手机300则无需针对第一图像继续执行人脸转化为3d动画的处理,而是可以结束针对第一图像的处理。
57.本技术实施例这里将示例性的说明上述人脸检测模型的训练过程:可以选择多张图像(如从开源数据集wider face中选择)作为多个第一图像样本。第一图像样本中包括人脸。在一些实施例中,为了提高人脸检测模型的准确性,上述多个第一图像样本包括含有各个角度的人脸的图像。并且,使用图像数据标注工具(如labelimg)在标注每个第一图像样本中人脸区域的位置信息样本,得到多个第一图像样本对应的多个位置信息样本。应理解,若第一图像样本中不包含人脸,则位置信息样本可以为特殊值,如“null”或者“false”等。然后,将多个第一图像样本作为输入样本,将多个第一图像样本对应的多个位置信息样本作为输出样本,训练第一网络,该第一网络可以为fast rcnn、faster rcnn、yolo等网络结构。基于第一网络的实际输出和输出样本之间的误差调整第一网络的网络参数并迭代训练,直至实际输出和输出样本之间的误差满足预设误差条件时则结束训练,结束训练时得到的第一网络即为人脸检测模型。示例性的,网络参数包括但不限于损失函数、优化器等参数。
58.进一步的,可以将多个第一图像样本和对应的多个位置信息样本按照预设比例(如6:2:2)划分为训练集、测试集和验证集。训练集用于第一网络学习第一图像样本和位置信息样本之间的关联。测试集用于测试第一网络是否可以在输入rgb图像后输出得到rgb图像中人脸区域的位置信息。验证集用于验证第一网络的实际输出和输出样本之间的误差是否满足预设误差条件,若满足预设误差条件则结束训练,否则调整第一网络的网络参数继续迭代训练。从而可以确保人脸检测模型可基于rgb图像准确的输出人脸区域的位置信息。
59.第二方面,将第一图像转化为深度图像。
60.本技术实施例中,手机300可以使用深度转化模型(也可以称为第一ai模型)将不携带深度信息的rgb图像(如第一图像)转化为深度图像。深度图像可以是灰度图像,并且深度图像中各个像素点的像素值(即颜色的深浅)可以表示该像素点的深度信息。通常情况下,像素点的像素值越高(即颜色越深),表示在拍摄第一图像时,该像素点对应的物与摄像头之间的距离(也可以称为物距,下同)越近;像素点的像素值越低(即颜色越浅),表示在拍摄第一图像时,该像素点对应的物与摄像头之间的距离越远。其中,摄像头是指拍摄第一图像的摄像头。
61.上述深度转化模型可以为基于对抗生成网络的网络结构,如引言生成式对抗网络(generative adversarial networks,gan)、循环生成对抗网络(cycle generative adversarial networks,cyclegan)等网络结构。或者,深度转化模型也可以是神经风格迁移的结构,如快速图片风格迁移(fast photo style)。以基于对抗生成网络的网络结构为例,对抗生成网络中包含一个生成器(generator)和一个判别器(discriminator),生成器用于生成图片,判别器用于判定所生成的图片是否符合标准,若符合标准,则可以输出。示例性的,参见图5,手机300将第一图像作为输入,运行深度转化模型510,深度转化模型510则可以输出深度图像。为了方便说明,深度图像也可以称为第二图像。
62.本技术实施例这里将说明上述深度转化模型的训练过程:参见图6,可以选择具有深度图像的多个rgb图像(如从开源数据集nyu-v2中选择)作为多个第二图像样本,将每个第二图像样本的深度图像作为第三图像样本,则可以得到多个第二图像样本对应的多个第三图像样本。然后,将多个第二图像样本作为输入样本,将多个第三图像样本作为输出样本,训练第二网络,该第二网络可以为gan、cyclegan、fast photo shop等网络结构。基于第二网络的实际输出和输出样本之间的误差调整第二网络的网络参数并迭代训练,直至实际输出和输出样本之间的误差满足预设误差条件时则结束训练,结束训练时得到的第二网络即为深度转化模型。
63.进一步的,也可以将多个第二图像样本和多个第三图像样本按照预设比例(如6:2:2)划分为训练集、测试集和验证集。训练集用于第二网络学习第二图像样本和第三图像样本之间的关联。测试集用于测试第二网络是否可以在输入rgb图像后输出得到rgb图像对应的深度图像。验证集用于验证第二网络的实际输出和输出样本之间的误差是否满足预设误差条件,若满足预设误差条件则结束训练,否则调整第二网络的网络参数继续迭代训练。从而可以确保深度转化模型可基于rgb图像准确的输出深度图像。
64.至此,需要说明的是,前述第一图像是单目摄像头拍摄的图像或者是单目摄像头拍摄的视频中的一帧图像。但是实际中,双目摄像头只是从两个角度去拍摄图像或者视频,其拍摄得到的图像或者视频与单目摄像头拍摄到的并无差异,都是未携带深度信息的rgb
图像。也就是说,上述第一方面和第二方面也可以适用于双目摄像头拍摄的图像或者视频中的一帧图像。换言之,上述第一图像也可以是双目摄像头拍摄到的图像或者视频中的一帧图像。将上述第二方面应用于双目摄像头拍摄到的第一图像,则无需通过复杂的运算来就要两个角度的图像或者视频计算深度信息,而可以直接通过深度转化模型得到包括深度信息的深度图像。从而可以节省运算量。
65.在经过前述第一方面得到第一图像中人脸区域的位置信息,以及经过第二方面得到第一图像的深度图像后,手机300可以计算得到第一图像中人脸的多个像素点的多个3d坐标。然后,手机300基于人脸的多个像素点的多个3d坐标和3d动画模型,则可以将第一图像中的人脸转化为3d动画。
66.示例性的,手机300可基于人脸的多个像素点的多个3d坐标完成人脸的3d重建,最后将重建得到的3d人脸与3d动画模型匹配,则可以得到3d动画。
67.上述通过人脸3d重建实现人脸到3d动画转化的方式,可以准确得到与3d人脸匹配的3d动画。但是,人脸3d重建的计算量大,对设备(如手机300)的运算能力要求较高。基于此,在本技术实施例中,手机300还可以通过人脸的特征点与3d动画模型中的特征点匹配的方式,实现将人脸转化为3d动画。从而可以省去人脸3d重建的过程,降低对手机300的运算能力的要求。上述特征点包括五官、轮廓等特征点。示例性的,人脸的特征点可以为图7所示的0-80共81个点。应理解,实际实施时,特征点的数量可以比图7所示的81点更多或者更少。
68.进一步的,通过人脸的特征点与3d动画模型中的特征点匹配的方式,实现将人脸转化为3d动画的过程主要包括如下两个步骤:步骤一,确定第一图像中人脸的特征点的3d坐标(也可以称为第一3d坐标);步骤二,将人脸的特征点的3d坐标与3d动画模型中相应特征点的3d坐标匹配,生成3d动画。下面将分别说明:步骤一,确定第一图像中人脸的特征点的3d坐标。在本步骤中,手机300可以基于第一图像及其深度图像计算第一图像中人脸的特征点的3d坐标。具体的,手机300可以先确定第一图像中人脸的特征点的2d坐标(也可以称为第一2d坐标),然后结合深度图像中携带的深度信息,计算特征点的3d坐标。其中,2d坐标是指特征点在第一图像的图像坐标系下的坐标。通常情况下,以图像的左上顶点作为图像坐标的原点,向右为横轴的正方向,向下为纵轴的正方向。
69.在一些实施例中,参见图8,手机300可以采用改进的人脸检测模型确定第一图像中人脸的特征点的2d坐标。其中,改进的人脸检测模型(也可以称为第二ai模型)不仅可以检测出第一图像中的人脸区域,还可以确定人脸的特征点的2d坐标。示例性的,参见图9,手机300将第一图像作为输入,运行改进的人脸检测模型410a,改进的人脸检测模型410a则可以输出人脸区域420的位置信息和人脸的特征点的2d坐标。
70.本技术实施例这里将说明上述改进的人脸检测模型的训练过程:与训练上述人脸检测模型不同的是,在训练改进的人脸检测模型时,还需要按预设顺序(如按照图7所示0-80的顺序)标注各个第一图像样本中特征点的2d坐标样本。然后,将多个第一图像样本作为输入样本,将标注得到的多个第一图像样本对应的位置信息样本和2d坐标样本作为输出样本,训练第一网络。在一种具体的实现方式中,手机300可以将各张第一图像样本的位置信息样本和2d坐标样本以xml格式存储,然后则可以从xml数据中获取各张第一图像样本的位置信息样本和2d坐标样本作为输出样本。基于第一网络的实际输
出和输出样本之间的误差调整第一网络的网络参数并迭代训练,直至实际输出和输出样本之间的误差满足预设误差条件时则结束训练,结束训练时得到的第一网络即为改进的人脸检测模型。
71.继续参见图8,手机300在得到(如采用改进的人脸检测模型410a得到)特征点的2d坐标,以及在得到(如采用深度转化模型510得到)第一图像的深度图像后,可以基于特征点的2d坐标和深度图像,计算第一图像中人脸的特征点的3d坐标,如图8所示的过程810。
72.针对任一特征点,手机300从深度图像中该特征点的2d坐标(u,v)处获取像素值作为该特征点的深度信息。从而可以得到第一图像中人脸的各个特征点的深度信息。深度信息可以表示在拍摄第一图像时,该特征点与摄像头之间的距离(即为物距)。
73.示例性的,参见图10,以第一图像和深度图像的左上顶点为坐标原点o,过坐标原点o向右为横轴的正方向,过坐标原点o向下为纵轴的正方向为例,人脸的特征点33在第一图像中的2d坐标为(u1,v1)。手机300则可以在深度图像上查找(u1,v1)对应的位置,将该位置处的像素值作为特征点33的深度信息。该深度信息可以表示在拍摄第一图像时,特征点33与摄像头之间的距离。
74.在一些场景中,深度转化模型输出的深度图像与输入的第一图像的尺寸不同。在一些实施例,为了提高获取的各个特征点的深度信息的准确性,手机300在从深度图像中获取深度信息之前,先调整深度图像的尺寸,使调整后的深度图像和第一图像的尺寸保持一致。如此,才能保证第一图像的图像坐标系和深度图像的图像坐标系下,同一2d坐标表示同一像素点。然后,针对任一特征点,手机300从深度图像中该特征点的2d坐标(u,v)处获取的像素值,才能准确的作为该特征点的深度信息。应理解, 物距通常是特征点在相机坐标系下的3d坐标中z轴的坐标值。本实施例中,相机坐标系是指拍摄第一图像的摄像头的坐标系。
75.然后,手机300基于下述图像坐标系和相机坐标系之间的转换公式,可以计算出人脸的特征点在相机坐标系下的3d坐标(x,y,z)。
[0076] 转换公式上述转换公式中,u为特征点的2d坐标中的横坐标值,v为特征点的2d坐标中的纵坐标值。depth为特征点的深度信息。f为摄像头的焦距。cx、cy为x轴、y轴方向的畸变。
[0077]
需要说明的是,关于图像坐标系和相机坐标系之间的转换的具体实现,可参见相关现有技术中的说明,本文中不多赘述。
[0078]
步骤二,将人脸的特征点的3d坐标与3d动画模型中相应特征点的3d坐标匹配,生成3d动画,如图8所示的820过程。
[0079]
其中,3d动画模型通常是指3d动画的模型图(3d图),而且3d动画模型上各个点(如动画脸上的特征点)在模型坐标系下的3d坐标以及模型坐标系的参数都是已知的。应理解,
模型坐标系是由建模人员确定的或者是由建模软件默认确定的,模型坐标系的参数是已知的,如x轴、y轴和z轴都是已知的。
[0080]
为了方便说明,可以将特征点在相机坐标系下的3d坐标记为特征点的第一3d坐标,将特征点在模型坐标系下的3d坐标记为特征点的第二3d坐标。
[0081]
针对任一特征点,手机300可以建立该特征点的第一3d坐标与第二3d坐标的映射关系,得到多个特征点对应的多组3d坐标对,每组3d坐标对中包括一个第一3d坐标和一个第二3d坐标。示例性的,建立图7所示的81个特征点的第一3d坐标和第二3d坐标的映射,得到81组3d坐标对。
[0082]
然后,手机300将模型坐标系转换(如通过平移和/或旋转的方式转换)至相机坐标系下,则3d动画模型上的各个点的3d坐标会发生变化。其中,各个特征点的第二3d坐标会变化为相机坐标系下的第三3d坐标。应理解,第一3d坐标和第二3d坐标具有映射关系,第二3d坐标和第三3d坐标对应,那么,第一3d坐标和第三3d坐标也具有映射关系。如此,可以得到多个特征点的第一3d坐标和第三3d坐标的映射关系。
[0083]
示例性的,图7所示的特征点33在相机坐标系下的3d坐标,即第一3d坐标为(a1,b1,c1),在模型坐标系下的3d坐标,即第二3d坐标为(a2,b2,c2),则(a1,b1,c1)和(a2,b2,c2)为一组3d坐标对。在此基础上,将模型坐标系转换到相机坐标系下后,特征点33从第二3d坐标(a2,b2,c2)变化为在相机坐标系下的3d坐标,即第三3d坐标(a3,b3,c3),则第一3d坐标(a1,b1,c1)和第三3d坐标(a3,b3,c3)也具有映射关系。
[0084]
再后,手机300移动已经转换到相机坐标系下的模型图,使模型图中各个特征点的横坐标值(即相机坐标系的x轴的坐标值)与相应特征点的第一3d坐标中的横坐标值(即相机坐标系的x轴的坐标值)相同,使模型图中各个特征点的纵坐标值(即相机坐标系的y轴的坐标值)与相应特征点的第一3d坐标中的纵坐标值(即相机坐标系的y轴的坐标值)相同,与此同时,保持各个特征点的竖坐标值(即相机坐标系的z轴的坐标值)不变。也就是说,模型图中各个特征点在相机坐标系下的3d坐标由第三3d坐标变成第四3d坐标,第四3d坐标的横坐标值和纵坐标值分别与对应的第一3d坐标的横坐标值和纵坐标值相同,第四3d坐标的竖坐标值依然为第三3d坐标中的竖坐标值。
[0085]
沿用前述图7所示特征点33的举例,其第一3d坐标为(a1,b1,c1),第三3d坐标(a3,b3,c3),则移动后的第四3d坐标为(a1,b1,c3)。
[0086]
另外,模型图中除特征点之外的点则直接随着特征点的移动而同步移动即可,以保持模型图中除特征点之外的点与特征点的相对位置不变。经过上述移动后得到的模型图即为第一图像中人脸的3d动画。
[0087]
如此,则仅需特征点的匹配移动,即可生成人脸的3d动画,无需复杂的人脸3d重建,也无需将重建得到的3d人脸中的大量点与模型图中的点匹配,从而可以极大地减少运算量。
[0088]
实际中,不同人脸的比例存在较大的差异,其中包括五官与脸部轮廓之间的距离。例如,眼睛与两侧之间的距离,嘴巴与下巴之间的距离,眉毛与发际线之间的距离等。那么,采用前述特征点匹配的方式,最终得到的3d动画的轮廓与五官之间的距离可能与第一图像中人脸的五官和轮廓之间的距离相差较大,从而丧失了第一图像中人脸的特征。例如,最终得到的3d动画的轮廓与五官之间的距离为正常的距离,但是第一图像中人脸的五官和轮廓
之间的距离偏大或者偏小,则很显然得到的3d动画不具有人脸的特征。
[0089]
基于此,在一些实施例中,手机300可以计算第一图像中人脸五官的第一特征点与轮廓的第二特征点之间的第一距离,以及计算模型图中的第一特征点与第二特征点之间的第二距离。根据第一距离和第二距离的比例对模型图缩放,使缩放后的模型图中第一特征点和第二特征点之间距离为第一距离。例如,第一特征点为图7中的特征点19,第二特征点为图7中的特征点72;第一特征点为图7中的特征点27,第二特征点为图7中的特征点74;第一特征点为图7中的特征点59,第二特征点为图7中的特征点8。
[0090]
本实施例的上述步骤可以在输出3d动画之前的任一时机执行。示例性的,可以针对未转换到相机坐标系下的模型图执行,相应的,在缩放后则需要更新模型图中各个点在模型坐标系下的3d坐标。例如,更新特征点的第二3d坐标,得到缩放后的第二3d坐标。或者,可以针对转换到相机坐标系系、但未移动的模型图执行,相应的,在缩放后则需要更新模型图中各个点在相机坐标系下的3d坐标。例如,更新特征点的第三3d坐标,得到缩放后的第三3d坐标。或者,可以针对移动后的模型图执行,则在移动完成后,再经过缩放则可以得到人脸的3d动画。
[0091]
采用本实施例的方法,可以使3d动画保留人脸的比例特征。
[0092]
前文实施例中,主要说明了将不携带深度信息的第一图像中的人脸转化为3d动画的具体实现。而对于本身就携带深度信息的图像(也可以称为第三图像),如采用深度摄像头拍摄到的图像或者视频中的任一帧图像,则可以直接从图像中获得深度信息。基于此,在一些实施例中,参见图11,针对任一图像,手机300可以根据图像的格式,判断该图像是否携带有深度信息,如图11所示的1110过程。
[0093]
若不具有深度信息,则表明是单目摄像头或者双目摄像头拍摄到的第一图像,手机300可以采用前文实施例的方式(即按照第一图像的处理流程,如图8所示的流程)将第一图像中的人脸转化为3d动画。若具有深度信息,则表明是深度摄像头拍摄到的第三图像,手机300可以省去生成深度图像的步骤,即无需通过深度转化模型来得到深度图像。手机300可以在采用改进的人脸检测模型410a确定出第三图像中人脸的特征点的2d坐标后,直接从第三图像中获得各个特征点的深度信息,从而可以计算得到特征点的3d坐标(也可以称为第五3d坐标),然后与3d动画模型中特征点的3d坐标(如前文第二3d坐标)匹配,从而生成3d动画。如此,深度摄像头拍摄的第三图像也可以采用特征点匹配的方式来实现人脸到3d动画的转化。
[0094]
在前述图11的示例中,在确定特征点的2d坐标前,就执行判断图像是否具有深度信息的步骤,如图11所示的1110过程。实际实施时,并不以此为限。示例性的,可以在获得图像后至使用深度转换模型得到深度图像前的任一时刻执行判断图像是否具有深度信息的步骤,若携带有深度信息,则无需执行使用深度转换模型得到深度图像的步骤。
[0095]
为了便于对前文实施例的理解,下面以一个完整的示例来说明本技术方案。参见图12,本技术方案包括如下步骤:s1200、手机300确定待转化的图像。其中,待转化的图像可以是第一图像或者第三图像。
[0096]
示例性的,用户可以在图库选择图像,手机300可以确定用户选择的图像为待转化的图像。又示例性的,用户可以在通讯应用(如短信、聊天等应用)的自定义表情包界面触发
拍摄待转化的图像,手机300可以确定该拍摄的图像为待转化的图像。
[0097]
s1201、手机300确定目标区域。
[0098]
手机300响应于用户对待转化的图像中部分区域的选择操作,可以确定待转化的目标区域。示例性的,待转化的图像中包括多张人脸,则用户可以选择包括一张人脸的区域,手机300可以确定包括该一张人脸的区域为目标区域。
[0099]
应理解,在一些实施例中,手机300也可以不确定目标区域,而直接针对整张待转化的图像进行处理。即,上述s1201是可选的步骤。
[0100]
s1202、手机300采用改进的人脸检测模型确定目标区域中人脸区域的位置信息,以及确定特征点的2d坐标。
[0101]
参见前文关于人脸检测模型以及改进的人脸检测模型的相关说明,此处不再赘述。
[0102]
s1203、手机300判断是否检测到人脸;若是,则执行s1204,若否,则执行s1201。
[0103]
若改进的人脸检测模型输出的结果为“false”、“null”等,则表明未检测到人脸。反之,则检测到人脸。若检测到人脸,则继续生成3d动画的流程;若未检测到人脸,则重复执行s1201,重新确定目标区域,如确定包括人脸的目标区域。
[0104]
s1204、手机300判断待转化的图像是否携带深度信息;若否,则执行s1205;若是,则执行s1206。
[0105]
若未携带深度信息,则表明为单目摄像头或者双目摄像头拍摄的图像,则执行s1205,以得到深度图像。若携带有深度信息,则表明为深度摄像头拍摄的图像,则执行s1206,可以直接获取深度信息。
[0106]
需要说明的是,s1204的执行时机并不以图12所示为限,实际实施时,可以在s1200之后、s1205之前的任一时机执行。
[0107]
s1205、手机300采用深度转化模型将待转化的图像转化为深度图像。
[0108]
参见前文关于深度转化模型的相关说明,此处不再赘述。
[0109]
s1206、手机300获取目标区域中多个特征点的深度信息。
[0110]
示例性的,从s1205中得到的深度图像中获得深度信息,或者从自身就携带深度信息的待转化的图像中获得深度信息。
[0111]
s1207、手机300根据多个特征点的深度信息和2d坐标,计算多个特征点的第一3d坐标。
[0112]
参见前文关于计算特征点在相机坐标系下的3d坐标的说明,此处不再赘述。
[0113]
s1208、手机300确定是否需要转化为3d动画。若是,则执行s1209;若否,则执行s1200。
[0114]
由于人脸到3d动画的转化需要一定的时间,尤其是通过特征点的匹配生成3d动画过程耗时较长,用户可能需要等待。基于此,手机300可以提示是否需要将图像中的人脸转化为3d动画,并响应用户的选择来确定是否需要转化为3d动画。若确定需要转化为3d动画,则继续执行后续s1209;若确定不需要转化为3d动画,则重新执行s1200,以确定新的待转化的图像。
[0115]
需要说明的是,s1208的执行时机并不以图12所示为限,实际实施时,可以在s1200之后、s1209之前的任一时机执行。
[0116]
应理解,在一些实施例中,也可以省去上述s1208,而直接执行下述s1209。
[0117]
s1209、手机300确定3d动画的模型。
[0118]
在一些实施例中,手机300中存储有模型库,模型库中包括多个3d动画的模型。用户可以从中选择本次需要转化的3d动画的模型。手机300响应于用户对模型的选择,则可以确定模型。
[0119]
s1210、手机300匹配第一图像中的特征点和3d动画模型中的特征点,根据匹配结果生成3d动画。
[0120]
参见前文关于步骤二的相关说明,此处不再赘述。
[0121]
需要在此声明的是:参见图13,本文中的相机坐标系是以摄像头(拍摄第一图像或者第三图像的摄像头)的光心o1为原点,以光轴为竖坐标轴(如图13中的z轴)建立的三维直角坐标系。并且,相机坐标系的横坐标轴(如图13中的x轴)与该摄像头拍摄的图像的图像坐标系(图13中以图像的左上顶点为坐标原点o2)的横坐标轴(如图13中的u轴)平行,以及,相机坐标系的纵坐标轴(如图13中的y轴)与图像坐标系的纵坐标轴(如图13中的v轴)平行。
[0122]
本技术实施例还提供一种电子设备,该电子设备可以包括:存储器和一个或多个处理器。存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中设备执行的各个功能或者步骤。
[0123]
本技术实施例还提供一种芯片系统,如图14所示,该芯片系统1400包括至少一个处理器1401和至少一个接口电路1402。处理器1401和接口电路1402可通过线路互联。例如,接口电路1402可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路1402可用于向其它装置(例如处理器1401)发送信号。示例性的,接口电路1402可读取存储器中存储的指令,并将该指令发送给处理器1401。当所述指令被处理器1401执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本技术实施例对此不作具体限定。
[0124]
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的图像处理方法。
[0125]
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的图像处理方法。
[0126]
另外,本技术的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的图像处理方法。
[0127]
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
[0128]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成
以上描述的全部或者部分功能。
[0129]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0130]
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0131]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0132]
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0133]
最后应说明的是,以上实施例仅用以说明本技术的技术方案而非限制,尽管参照较佳实施例对本技术进行了详细说明,本领域的普通技术人员应当理解,可以对本技术的技术方案进行修改或等同替换,而不脱离本技术技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1