一种用于实时虚拟换脸的方法与设备与流程

文档序号:18455019发布日期:2019-08-17 01:32阅读:785来源:国知局
一种用于实时虚拟换脸的方法与设备与流程

本申请涉及图像处理领域,尤其涉及一种用于实时虚拟换脸的技术。



背景技术:

随着社交网络、视频直播、互动娱乐等娱乐方式融入人们的日常生活,对人脸相关图像的处理技术也日益受到人们的青睐,如人脸美颜、卡通化、虚拟换脸等功能的应用需求日益增长等。虚拟换脸作为一种人脸“编辑”的重要组成部分,有着广泛应用,如在客服进行通话时可以根据用户要求对客服进行换脸等,获取更良好的视觉体验,增加一定的趣味性和实用性。



技术实现要素:

本申请的一个目的是提供一种用于实时虚拟换脸的方法与设备。

根据本申请的一个方面,提供了一种用于实时虚拟换脸的方法,该方法包括:

获取关于待替换人脸的视频流的当前图像帧中所述待替换人脸的人脸特征点信息;

在所述视频流的当前图像帧中对所述人脸特征点信息进行特征点信息跟踪;

根据特征点信息跟踪后的所述人脸特征点信息以及模板人脸的模板特征点信息,用所述模板人脸替换所述待替换人脸;

对所述替换人脸后的当前图像帧进行颜色融合及边缘处理。

根据本申请的另一个方面,提供了一种用于实时虚拟换脸的设备,该设备包括:

一一模块,用于获取关于待替换人脸的视频流的当前图像帧中所述待替换人脸的人脸特征点信息;

一二模块,用于在所述视频流的当前图像帧中对所述人脸特征点信息进行特征点信息跟踪;

一三模块,用于根据特征点信息跟踪后的所述人脸特征点信息以及模板人脸的模板特征点信息,用所述模板人脸替换所述待替换人脸;

一四模块,用于对所述替换人脸后的当前图像帧进行颜色融合及边缘处理。

根据本申请的一个方面,提供了一种用于实时虚拟换脸的设备,该设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上所述方法的操作。

根据本申情的一个方面,提供了一种存储指令的计算机可读介质,所述指令在被执行时使所述处理器执行如上所述方法的操作。

与现有技术相比,本申请通过获取关于待替换人脸的视频流的当前图像帧中所述待替换人脸的人脸特征点信息,在所述视频流的当前图像帧中对所述人脸特征点信息进行特征点信息跟踪,根据特征点信息跟踪后的所述人脸特征点信息以及模板人脸的模板特征点信息,用所述模板人脸替换所述待替换人脸,对所述替换人脸后的当前图像帧进行颜色融合及边缘处理。本申请通过对人脸特征点信息在所述视频流的前后帧中进行关联,对人脸特征点进行稳定跟踪,避免了由于人脸特征点定位精度限制引起的人脸抖动现象,使得换脸效果更加自然,提升了用户的使用体验。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请一个实施例的一种用于实时虚拟换脸的示例图,其中,图(a)所示为模板人脸,图(b)所示为待替换人脸,图(c)所示为替换后的人脸;

图2示出根据本申请一个实施例的一种用于实时虚拟换脸的方法流程图;

图3示出根据本申请一个实施例的一种人脸检测的示例图;

图4示出根据本申请一个实施例的一种提取人脸特征点的示例图;

图5示出根据本申请一个实施例的一种三角剖分的示例图;

图6示出根据本申请一个实施例的一种基于三角剖分进行仿射变换的示例图,其中,图(a)所示为模板人脸的模板特征点信息的示例,图(b)所示为待替换人脸,图(c)所示为待替换人脸的人脸特征点信息的示例,所述图(a)的模板特征点信息与所述图(c)的人脸特征点信息中的各三角形相对应;

图7示出根据本申请一个实施例的一种颜色融合的示例图;

图8示出根据本申请一个实施例的一种人脸轮廓适配的示例图,图(a)所示为模板人脸,图(b)所示为待替换人脸,图(c)所示为人脸轮廓适配后的待替换人脸;

图9示出根据本申请一个实施例的一种用于实时虚拟换脸的设备的功能模块;

图10示出可被用于实施本申请中所述的各个实施例的示例性系统。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(例如,中央处理器(centralprocessingunit,cpu))、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(randomaccessmemory,ram)和/或非易失性内存等形式,如只读存储器(readonlymemory,rom)或闪存(flashmemory)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(phase-changememory,pcm)、可编程随机存取存储器(programmablerandomaccessmemory,pram)、静态随机存取存储器(staticrandom-accessmemory,sram)、动态随机存取存储器(dynamicrandomaccessmemory,dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(electrically-erasableprogrammableread-onlymemory,eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(compactdiscread-onlymemory,cd-rom)、数字多功能光盘(digitalversatiledisc,dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

本申请所指设备包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备包括但不限于任何一种可与用户进行人机交互(例如通过触摸板进行人机交互)的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、ios操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑器件(programmablelogicdevice,pld)、现场可编程门阵列(fieldprogrammablegatearray,fpga)、数字信号处理器(digitalsignalprocessor,dsp)、嵌入式设备等。所述网络设备包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、vpn网络、无线自组织网络(adhoc网络)等。优选地,所述设备还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的程序。

当然,本领域技术人员应能理解上述设备仅为举例,其他现有的或今后可能出现的设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

在本申请的描述中,“多个”的含义是两个或者更多,除非另有明确具体的限定。

图1示出根据本申请一个实施例的一种用于实时虚拟换脸的示例图,其中,图(a)所示为模板人脸,图(b)所示为待替换人脸,图(c)所示为替换后的人脸。本方案由计算设备完成,所述计算设备包括但不限于用户设备、网络设备及用户设备与网络设备的组合等。所述计算设备包括输出装置,用于输出处理后的图像信息,如显示屏等;所述计算设备还包括视频图像处理装置,用于对所述图像中人脸进行检测、替换以及对图像进行处理等。所述计算设备通过获取关于待替换人脸的视频流中图(b)所示的当前图像帧中所述待替换人脸的人脸特征点信息,对所述人脸特征点信息进行特征点信息跟踪后基于三角剖分和仿射变换用图(a)所示的模板人脸替换所述待替换人脸,随后,对替换后的当前图像帧进行颜色融合及边缘处理等,得到图(c)所示的最终的处理结果。目前虚拟换脸中使用的人脸背景融合大多使用泊松融合算法,其计算量太大,影响实时性的需求,且当两人脸光照差别较大,融合效果不太自然,肉眼看出有人为编辑的痕迹,本申请通过对人脸图像帧替换前后进行颜色融合,不仅计算量小,而且融合后的效果也非常自然,能很好地满足实时性的需求。

参考图1所示的示例,图2示出根据本申请一个方面的一种用于实时虚拟换脸的方法,其中,该方法包括步骤s101、步骤s102、步骤s103以及步骤s104。在步骤s101中,计算设备获取关于待替换人脸的视频流的当前图像帧中所述待替换人脸的人脸特征点信息;在步骤s102中,计算设备在所述视频流的当前图像帧中对所述人脸特征点信息进行特征点信息跟踪;在步骤s103中,计算设备根据特征点信息跟踪后的所述人脸特征点信息以及模板人脸的模板特征点信息,用所述模板人脸替换所述待替换人脸;在步骤s104中,计算设备对所述替换人脸后的当前图像帧进行颜色融合及边缘处理。

在步骤s101中,计算设备获取关于待替换人脸的视频流的当前图像帧中所述待替换人脸的人脸特征点信息。例如,计算设备还包括输入装置,用于接收其他设备发送的关于待替换人脸的视频流,如数据传输接口等;或者,计算设备还包括摄像装置,用于拍摄关于待替换人脸的视频流等,如摄像头、深度摄像机等。所述待替换人脸的人脸特征点信息包括所述待替换人脸的眼睛、鼻子、嘴和脸轮廓等标志性特征对应的各特征点在所述当前图像帧中的图像位置信息等。所述计算设备通过接收其他设备发送的关于待替换人脸的视频流,基于所述视频流中当前图像帧中的人脸位置,通过人脸特征点提取等方式提取所述待替换人脸的人脸特征点,从而获取人脸特征点信息。如在一些实施方式中,所述步骤s101包括子步骤s1011(未示出)和子步骤s1012(未示出),在步骤s1011中,计算设备获取关于待替换人脸的视频流中当前图像帧中所述待替换人脸的图像位置信息;在步骤s1012中,计算设备根据所述图像位置信息提取所述当前图像帧中人脸特征点信息。例如,所述待替换人脸的图像位置信息包括所述待替换人脸的轮廓或者自定义外接图形(如外接矩形)等在所述当前图像帧的图像坐标系中的像素坐标,如外接矩形的边框四条线段对应的线段方程,或者外接矩形的至少两个对角对应的角点像素坐标等。在一些实施方式中,所述待替换人脸的图像位置信息基于用户的操作(如框选等)等,在所述当前图像帧中选中确定,如基于用户的点击框选操作等,在用户点击或框选位置确定对应的人脸外接矩形等;在另一些实施方式中,所述待替换人脸的图像位置信息由计算设备对所述当前图像帧进行人脸检测确定,如在所述步骤s1011中,计算设备对关于待替换人脸的视频流中当前图像帧进行人脸检测,确定至少一个人脸对应的图像位置信息,从所述至少一个人脸的图像位置信息中确定所述待替换人脸的图像位置信息。例如,所述人脸检测包括计算设备通过人脸相关特征在所述当前图像帧中确定一个或多个人脸轮廓或者外接矩形在所述当前图像帧中的像素坐标等,包括但不限于基于haar特征的adaboost级联人脸检测算法、acf(aggregatechannelfeaturesformulti-viewfacedetection,基于聚合通道的多视图人脸检测)、dpm(deformablepartmodel,可变形的组件模型)、cascadecnn(aconvolutionalneuralnetworkcascadeforfacedetection,卷积神经网络的人脸检测算法)、densebox(densebox:unifyinglandmarklocalizationwithendtoendobjectdetection,基于全卷积网络的物体检测算法)、faceness-net(faceness-net:facedetectionthroughdeepfacialpartresponses,基于深度学习的视频人脸检测识别算法)、facer-cnn、pyramidbox(pyramidbox:acontext-assistedsingleshotfacedetector,环境辅助的单步人脸检测器)等;此处我们采用基于haar特征的adaboost级联人脸检测算法,此方法检测速度快,鲁棒性好,能够很好的实现人脸检测,获得如图3所示人脸检测的示例图中的矩形框,以及矩形框两个对角坐标(x1,y1)、(x2,y2)。当然,本领域技术人员应能理解上述人脸检测算法仅为举例,其他现有的或今后可能出现的人脸检测算法如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

在一些实施方式中,计算设备通过上述人脸检测算法,可以检测到当前图像帧中存在一个或多个人脸外接矩形框,计算设备可以基于用户的选中操作等,从所述一个或多个人脸外接矩形框中确定所述待替换人脸的人脸外接矩形框等;或者计算设备根据所述视频流的上一图像帧中待替换人脸的图像位置信息,进行目标跟踪从所述一个或多个人脸外接矩形对应的图像位置信息中确定所述待替换人脸的图像位置信息。随后,计算设备基于待替换人脸的图像位置信息,提取人脸相关的特征点信息,在此,所述特征点定位算法包括但不限于gbdt(gradientboostingdecisontree,算法梯度提升树)、asm(activeshapemodels,主动形状模型)、aam(activeappearancemodels,主动纹理模型)、dcnn(extensivefaciallandmarklocalizationwithcoarsetofineconvolutionalnetworkcascade,粗到精人脸特征点定位算法)、tcdcn(faciallandmarkdetectionbydeepmulti-tasklearning,任务驱动型的深度模型)、mtcnn(jointfacedetectionandalignmentusingmulti-taskcascadedconvolutionalnetworks,基于多任务级联卷积神经网络的人脸检测和对齐)、tcnn(faciallandmarkdetectionwithtweakedconvolutionalneuralnetworks,调整卷积神经网络的人脸检测)等。在此,我们采用gbdt一种基于回归树的人脸对齐算法,通过建立一个级联的残差回归树来使人脸形状从当前形状一步一步回归到真实形状;每一个gbdt的每一个叶子节点上都存储着一个残差回归量,当输入落到一个节点上时,就将残差加到该输入上,起到回归的目的,最终将所有残差叠加在一起,得到如图4所示的提取的人脸特征点信息的示例图,提取到人脸的75个特征点,该算法计算速度快,性能稳定,在pc上每个人脸仅需要1-2毫秒即可完成人脸特征点的定位,在此提取特征点的数量也不仅限于75个,还可以是29、68、83、106等其他个数的关键点等。当然,本领域技术人员应能理解上述人脸特征点定位算法仅为举例,其他现有的或今后可能出现的人脸特征点定位算法如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

在步骤s102中,计算设备在所述视频流的当前图像帧中对所述人脸特征点信息进行特征点信息跟踪。例如,在目前已知的人脸特征点定位方法,都存在一定的不稳定性,即使人脸在视频中是不动的,但是受限于定位精度的影响,其人脸特征点信息在前后帧中会存在几个像素内的抖动,如果直接用人脸特征点信息定位得到的结果进行后续的人脸替换等,替换后的人脸在视频流中会存在一定的抖动现象。本方案通过对前后帧中人脸特征点信息进行跟踪,能够进行有效修正处理,获得较为稳定的人脸图像呈现效果。所述特征点信息跟踪包括基于上一图像帧的待替换人脸的人脸特征点信息进行跟踪获取预测的跟踪人脸特征点信息,结合当前图像帧中人脸特征点信息,确定最终的人脸特征点信息。如在一些实施方式中,在步骤s102中,计算设备利用光流跟踪算法在所述视频流的当前视频中对所述人脸特征点信息进行特征点信息跟踪。例如,所述光流跟踪算法包括klt(kanade-lucas-tomasi)光流法,具体方法包括:对于每个特征点,假设所述视频流的上一图像帧中通过前述提取人脸特征点信息的方法提取了上一图像帧对应的人脸特征点信息,并基于该klt光流法预测其在当前图像帧中的人脸特征点的位置信息,得到对应的跟踪人脸特征点信息,并结合通过前述提取人脸特征点信息的方法提取当前图像帧对应的人脸特征点信息,得到对应的最终人脸特征点信息。如在一些实施方式中,所述步骤s102包括子步骤s1021(未示出)和子步骤s1022(未示出),在步骤s1021中,计算设备根据所述视频流中上一图像帧中所述待替换人脸的人脸特征点信息,利用光流跟踪算法预测所述视频流的当前图像帧中所述待替换人脸的跟踪人脸特征点信息;在步骤s1022中,计算设备根据所述跟踪人脸特征点信息及所述当前图像帧中所述人脸特征点信息确定所述当前图像帧中的最终人脸特征点信息。

在一些实施方式中,在步骤s1022中,计算设备获取所述跟踪人脸特征点信息的权重信息及所述当前图像帧中所述人脸特征点信息对应的权重信息,并根据所述跟踪人脸特征点信息、所述人脸特征点信息、所述跟踪人脸特征点信息的权重信息以及所述人脸特征点信息的权重信息确定所述当前图像帧中的最终人脸特征点信息。例如,对于每个特征点,设上一图像帧中人脸特征点信息得到的位置坐标为p(t-1),通过klt光流法预测其在当前帧的位置,设为p0(t)。在当前帧得到人脸特征点信息其坐标设为p(t),则最终得到人脸特征点信息的最终坐标ps(t)为(即结合跟踪结果和当前定位结果):

ps(t)=(1-α)p(t)+αp0(t)(1)

其中,α表示所述跟踪人脸特征点信息的权重信息,1-α表示所述当前图像帧中人脸特征点信息的权重信息。在此,α可以是预设的,也可以是基于前后图像帧的相关参数确定的。如在一些实施方式中,所述跟踪人脸特征点信息的权重信息与所述待替换人脸在所述上一图像帧与所述当前图像帧中的位移大小负相关。

例如,假设α是基于自然底数e的指数相关函数:

其中,

d=||p(t)-p(t-1)||(3)

σ2=(h*h)/1500(4)

其中,式(4)中,h为通过人脸检测得到的人脸矩形框的高度,其中,1500的取值仅为举例,也可以选择其它数值作为对应分母。

由以上公式可知,最终得到的坐标通过各自的权重信息,把当前定位得到人脸特征点信息的像素坐标和通过上一帧预测到的跟踪人脸特征点的像素坐标结合起来,若人脸在上一图像帧至当前图像帧中运动越大,则d越大,则α越小,则最终的特征点坐标ps(t)越趋向使用当前定位得到的坐标;若人脸在上一图像帧至当前图像帧中运动较小,则d越小,则α越大,则最终的人脸特征点信息的像素坐标ps(t)越趋向使用通过上一图像帧跟踪得到跟踪人脸特征点信息。这种方法充分考虑人脸的运动和人脸分辨率(即h)来自适应调整当前帧人脸特征点的位置,比简单地通过连续帧的轨迹平滑更具稳定性和实时性。

在步骤s103中,计算设备根据特征点信息跟踪后的所述人脸特征点信息以及模板人脸的模板特征点信息,用所述模板人脸替换所述待替换人脸。例如,所述模板人脸的模板特征点信息包括用于替换所述待替换人脸的模板人脸的眼睛、鼻子、嘴以及脸轮廓等特征在所述模板图像中的图像位置信息等。计算设备获取到特征点信息跟踪处理后的所述人脸特征点,并基于该人脸特征点与用于替换所述待替换人脸的模板人脸的模板特征点信息,用所述模板人脸替换所述待替换人脸,如利用delaunay三角剖分及人脸轮廓适配等。

在一些实施方式中,该方法在步骤s103之前还包括步骤s106(未示出),在步骤s106中,计算设备基于特征点信息跟踪后的所述人脸特征点以及所述模板人脸的模板特征点信息检测所述待替换人脸与所述模板人脸是否脸型匹配;若所述待替换人脸与所述模板人脸脸型失配,则根据根据特征点信息跟踪后的所述人脸特征点信息以及所述模板人脸的模板特征点信息对所述待替换人脸进行人脸轮廓适配处理,使得处理后的所述待替换人脸与所述模板人脸脸型匹配。

例如,脸型匹配包括但不限于对所述人脸特征点信息的外轮廓组成的多边形与所述模板特征点信息的外轮廓组成的多边形在相似条件下进行多边形重合度的匹配,如先确定所述人脸特征点信息的外轮廓对应的外接人脸矩形和所述模板特征点信息的外轮廓对应的外接模板矩形,保证所述外接人脸矩形和所述外接模板矩形的长或宽一致的条件下,将所述外接人脸矩形和所述外接模板矩形的中心重合,计算所述人脸特征点信息的外轮廓组成的人脸多边形与所述模板特征点信息的外轮廓组成的模板多边形的重合面积s1及非重合面积s2,若所述非重合面积s2占重合面积与非重合面积总和(s1+s2)的比例大于或等于一定阈值,确定所述人脸特征点信息与所述模板特征点信息的脸型不匹配;若所述非重合面积s2占重合面积与非重合面积总和(s1+s2)的比例小于一定阈值,确定所述人脸特征点信息与所述模板特征点信息的脸型匹配。在一些实施方式中,若脸型匹配,计算设备可根据所述人脸特征点信息以及所述模板人脸的模板特征点信息,将所述待替换人脸与所述模板人脸中至少一个划分为多个三角形区域,并根据仿射变换,用所述模板人脸替换所述待替换人脸;若不匹配,计算设备根据特征点信息跟踪后的所述人脸特征点信息以及所述模板人脸的模板特征点信息进行人脸轮廓适配。

如在一些实施方式中,在步骤s103中,计算设备根据所述人脸特征点信息以及所述模板人脸的模板特征点信息,将所述待替换人脸与所述模板人脸中至少一个划分为多个三角形区域,并根据仿射变换,用所述模板人脸替换所述待替换人脸。例如,基于图4所示的模板人脸中75个特征点,计算设备对其75个特征点通过delaunay三角剖分方法将人脸区域分成119个三角形,如图5示出的三角剖分示例,每个三角形由3个特征点组成,总共119组特征点。随后,如图6所示,图(a)所示为模板人脸的模板特征点信息的示例,图(b)所示为待替换人脸,图(c)所示为待替换人脸的人脸特征点信息的示例,所述图(a)的模板特征点信息与所述图(c)的人脸特征点信息中的各三角形相对应,通过仿射变换,将模板人脸的模板特征点信息中人脸的每个三角形的图像,变换到当前帧对应的人脸特征点信息组成的三角形区域中,最终实现把模板人脸的模板特征信息与当前图像帧的人脸特征点信息建立对应关系,并根据对应关系将模板人脸变换至所述待替换人脸中,在所述当前图像帧中覆盖所述待替换人脸。

在另一些实施方式中,步骤s103包括子步骤s1031(未示出)和步骤s1032(未示出)。在步骤s1031中,计算设备根据特征点信息跟踪后的所述人脸特征点信息以及所述模板人脸的模板特征点信息对所述待替换人脸进行人脸轮廓适配;在步骤s1032中,计算设备根据所述人脸轮廓适配后的所述人脸特征点信息以及所述模板人脸的模板特征点信息,用所述模板人脸替换所述待替换人脸。例如,基于delaunay三角剖分的方法进行人脸替换,虽然人脸变换后比较自然,但如果真实人脸的脸型与模板人脸的脸型相差较大,则变换后的人脸脸型还是与原来待替换人脸一致,肉眼上整体可以看出与模板人脸不一致。为了减少上述的影响,使变形后的脸型与模板人脸比较逼真,本方案采用人脸轮廓适配的方式,先将模板人脸的脸型匹配到待替换人脸的脸型,对待替换人脸的脸型进行变形,使得待替换人脸和模板人脸的脸型相似,再把模板人脸替换至待替换人脸获得对应的当前图像帧。由于从模板人脸的轮廓变换到待替换人脸的变换矩阵包括6个未知数,最少需要3个点对,即从所述模板特征点信息的轮廓和所述人脸特征点信息的轮廓中取至少三个点对,计算对应的变换矩阵信息,随后,根据对应的变换矩阵信息调整所述人脸特征点信息。如在一些实施方式中,所述步骤s1031包括子步骤s10311(未示出)和子步骤s10312(未示出)。在步骤s10311中,计算设备从所述人脸特征点信息的轮廓和所述模板特征点信息的轮廓中取至少三个点对,确定所述模板特征点信息到所述人脸特征点信息的变换矩阵信息;在步骤s10312中,计算设备根据所述变换矩阵信息调整所述人脸特征点信息。例如,所述人脸特征点信息的轮廓包括人脸特征点中人脸外轮廓特征点及四个眼角的特征点,所述模板特征点信息的轮廓包括模板人脸外轮廓特征点及四个眼角的特征点,如图4所示的特征点集合中包含其17个外轮廓特征点及四个眼角的特征点,总共21个特征点。又例如所述人脸特征点信息的轮廓包括人脸特征点中人脸外轮廓特征点,所述模板特征点信息的轮廓包括模板人脸外轮廓特征点。从所述人脸特征点信息的轮廓和所述模板特征点信息的轮廓中取至少三个点对,求解6个未知数,可以得到对应的变换矩阵信息,从而根据所述变换矩阵信息调整所述人脸特征点信息,如通过所述模板特征点及所述变换矩阵信息计算所述人脸特征点的像素坐标,又如通过所述模板特征点及所述变换矩阵信息计算所述人脸特征点调整的调整位置信息,并基于所述调整位置信息调整所述人脸特征点信息的像素坐标等,其中,关于人脸特征点调整可以是只调整人脸特征点信息的轮廓,也可以是调整整张脸对应的全部人脸特征点信息。

在一些实施方式中,在步骤s10311中,计算设备从所述人脸特征点信息的轮廓和所述模板特征点信息的轮廓中取至少三个点对,利用最小二乘原理确定所述模板特征点信息到人脸特征点信息的最优变换矩阵信息;在步骤s10312中,计算设备根据所述最优变换矩阵信息调整所述人脸特征点信息。例如,假设模板人脸的模板特征点信息的特征点坐标为(x,y),待替换人脸的人脸特征点信息的特征点坐标为(x’,y’),用至少三个特征点对,根据以下公式,使用最小二乘法,计算模板人脸到真实人脸的最优相似变换矩阵m,

根据式(5)计算得到相似变换矩阵m,把模板人脸的模板特征点信息基于所述相似变换矩阵变换至所述当前图像帧中,如图(8)所示,图(a)所示为模板人脸,图(b)所示为待替换人脸,图(c)所示为人脸轮廓适配后的待替换人脸,计算设备将图(a)中所示的深色点的模板特征点的外轮廓经过相似变换矩阵投影至图(b)中,并将图(b)中浅色点的人脸特征点的轮廓变换至对应的深色点的位置,形成图(c)所示的人脸轮廓适配后的结果。

在一些实施方式中,在步骤s10312中,计算设备根据所述最优变换矩阵信息及移动最小二乘的图像变形算法调整所述人脸特征点信息。例如,如图8所示,假设(b)图浅色点(待替换人脸的人脸轮廓特征点标)的坐标为(x1n,y1n)(实际是x’,y’),深色点(模板人脸的人脸轮廓特征点)坐标为(x2n,y2n)(实际是x,y经变换矩阵变换之后得到的点),n=0….20,根据这21对点,使用移动最小二乘的图像变形法,把(b)图的人脸变形到如深色点的人脸形状,得到图(c)(实际上利用该算法整张图都会变形,只是人脸部分变形明显)。

随后,计算根据变换后的人脸外轮廓的特征点,如图8(c)中的21个深色点,在待替换人脸上把这些点依次连起来,得到一个多边形,将模板人脸的多边形图像变换至对应的待替换人脸的多边形区域,得到新的换脸后的人脸。

在一些实施方式中,所述人脸特征点信息与所述模板特征点信息经过人脸轮廓适配后即可进行后续的人脸替换、颜色融合及边缘处理等,在另一些实施方式中,为了使得换脸所得图像更加自然,可以在进行人脸轮廓适配后继续进行三角剖分及仿射变换等进行模板特征点与人脸特征点信息的替换。如在一些实施方式中,在步骤s1032中,计算设备根据所述人脸轮廓适配后的所述人脸特征点信息以及所述模板人脸的模板特征点信息,将所述待替换人脸与所述模板人脸中至少一个划分为多个三角形区域,并根据仿射变换,用所述模板人脸替换所述待替换人脸。例如,将所述模板特征点信息及所述人脸特征点信息中至少一个进行三角剖分,并基于所得三角形建立模板人脸的模板特征信息与当前图像帧的人脸特征点信息建立映射关系,并根据映射关系将模板人脸变换至所述待替换人脸中,在所述当前图像帧中覆盖所述待替换人脸。

在步骤s104中,计算设备对所述替换人脸后的当前图像帧进行颜色融合及边缘处理。例如,由于人脸模板与当前真实人脸的肤色和光照很可能并不一致,如真实人脸的额头部分并不能被人脸模板覆盖等,被覆盖的人脸区域和未被覆盖的肤色区域在肤色和色调上可能不一致,会有明显的人为编辑的痕迹,所以需要对人脸进行颜色融合,目前已知的人脸融合算法大多采用通用的泊松融合算法,此种算法计算量大,很难满足实时性要求,且当两人脸光照差别较大时,融合效果性能会受到影响。本方案提供一种稳定的人脸颜色融合方法,其中,因为要使两个人脸的整体颜色更加融合,所以在色调(h),饱和度(s),明度(v)上进行调节,hsv颜色空间符合人的直观特征等,所以在hsv颜色空间对所述替换人脸后的当前图像帧进行颜色融合。在一些实施方式中,所述颜色融合可以是基于该图像帧所有像素点的颜色进行处理的;在另一些实施方式中,所述颜色融合基于替换前的人脸区域及替换后的人脸区域的像素点的颜色进行处理。如在一些实施方式中,在步骤s104中,计算设备将替换人脸前的原当前图像帧与所述替换后的现当前图像帧的颜色空间转换至hsv颜色空间,进行颜色融合,并将融合后的当前图像帧的颜色空间转换至rgb颜色空间;利用滤波器对颜色融合后的所述当前图像帧进行边缘处理。所述原当前图像帧是指未替换人脸前的原始视频流中图像帧,所述现当前图像帧指用模板人脸替换待替换人脸后的当前图像帧。计算设备先将原当前图像帧与现当前图像帧的颜色空间从rgb颜色空间转换至hsv空间,基于预定的颜色融合算法,得到融合后的当前图像帧,并将该图像帧的颜色空间从hsv空间转换至rgb空间,从而得到对应的当前图像帧。此时,当前图像帧中在替换人脸的边缘部分存在较明显的分界线,看得出明显的人为编辑的痕迹,计算设备通过滤波器对模板人脸(替换人脸)和当前图像帧的背景边缘进行平滑过渡,所述滤波器包括但不限于高斯滤波、领域平滑滤波、中值滤波等。在一些实施方式中,所述颜色融合算法包括:将所述hsv颜色空间中h通道拉伸至0-180,s、v通道拉伸至0-255,分别计算所述原当前图像帧、所述现当前图像帧中在各颜色通道的像素平均值;根据所述原当前图像帧、所述现当前图像帧中在各颜色通道的像素平均值,以及预设的融合算法,确定融合后的所述当前图像帧中hsv颜色分布。例如,计算设备将所述原当前图像帧及现当前图像帧分别转换到hsv图像空间,得到hsv图像i1和i2,并把h通道拉伸到0~180,s、v通道拉伸到0~255,以便于一个像素占3个字节,适用计算机运算。对这两个图像的各自的h、s、v3个通道,分别计算其像素值的均值,得到i1的h通道的均值像素值m1h、i1的s通道的均值像素值m1s、i1的v通道的均值像素值m1v,i2的m2h、m2s、m2v。然后按以下公式计算融合后的人脸hsv图像:

m1h=(m1h+90)%180;

m2h=(m2h+90)%180;

i3h(i,j)=(m1h+i2h(i,j)–m2h+180)%180;

i3s(i,j)=m1s+i2s(i,j)–m2s;

i3v(i,j)=m1v+i2v(i,j)–m2v;

其中,当i3s(i,j)的值大于255时,则i3s(i,j)取值255;当i3s(i,j)的值小于0时,则i3s(i,j)取值0,i3v(i,j)同理。

其中,i3h(i,j)、i3s(i,j)、i3v(i,j)为融合后的人脸图像的hsv三个通道在图像坐标位置(i,j)上的像素值,i2h(i,j)、i2s(i,j)、i2v(i,j)为替换后的人脸图像的hsv三个通道在图像坐标位置(i,j)上的像素值。

最后,把融合后的人脸图像从hsv颜色空间转换到bgr颜色空间,如图7示出替换后的当前图像帧经过颜色融合后的示例。

在一些实施方式中,所述视频流包括用户设备在实时视频通信时传输的实时视频流。例如,用户甲持有用户设备(如手机等),用户甲通过用户设备中对应应用建立与用户乙的实时视频通信连接,用户甲的用户设备通过实时视频通信接收所述用户乙拍摄的实时视频流。用户甲的用户设备基于用户甲的操作,在所述实时视频流中对用户乙拍摄的视频流进行实时虚拟换脸,如在用户设备甲本地进行虚拟换脸操作,或向对应网络设备发送对应换脸操作指令,并接收网络设备返回的换脸后的实时视频流;或者用户乙的用户设备基于用户乙的操作将拍摄的实时视频流进行实时虚拟换脸操作,并将所述换脸后的视频流传输至用户甲等,其中,虚拟换脸操作可以是在用户乙的用户设备端完成,也可以是在网络设备端完成。

在一些实施方式中,所述视频流包括增强现实设备的摄像装置拍摄的实时视频流。例如,用户甲持有增强现实设备,所述增强现实设备包括摄像装置,用于采集当前用户甲前方的实时视频流。所述实时视频流中包括对应的待替换人脸,所述增强现实设备基于所述实时视频流进行虚拟换脸操作或者所述增强现实设备将所述实时视频流传输至网络设备,网络设备对所述实时视频流进行虚拟换脸等。在一些实施方式中,所述方法还包括步骤s105(未示出),在步骤s105中,计算设备确定所述替换后人脸在所述增强现实设备的显示装置上的呈现位置信息;基于所述呈现位置信息呈现替换后的所述模板人脸。例如,所述增强现实设备包括显示装置,用于叠加呈现所述模板人脸;增强现实设备基于对应的坐标转换参数,计算所述待替换人脸在所述显示装置中的位置,并在该位置叠加呈现对应的模板人脸。在一些实施方式中,所述实时视频流通过所述增强现实设备的显示装置呈现,所述增强现实设备在所述显示装置对应位置(待替换人脸位置)叠加对应的模板人脸;在另一些实施方式中,所述实时视频流用于计算所述待替换人脸在所述显示装置中的位置信息,并通过在所述显示装置对应位置叠加呈现所述模板人脸,达到用所述模板人脸替换真实世界中待替换人脸的增强现实效果。

参考图1所示的示例,图9示出根据本申请一个方面的一种用于实时虚拟换脸的计算设备,其中,该设备包括一一模块101、一二模块102、一三模块103以及一四模块104。一一模块101,用于获取关于待替换人脸的视频流的当前图像帧中所述待替换人脸的人脸特征点信息;一二模块102,用于在所述视频流的当前图像帧中对所述人脸特征点信息进行特征点信息跟踪;一三模块103,用于根据特征点信息跟踪后的所述人脸特征点信息以及模板人脸的模板特征点信息,用所述模板人脸替换所述待替换人脸;一四模块104,用于对所述替换人脸后的当前图像帧进行颜色融合及边缘处理。

一一模块101,用于获取关于待替换人脸的视频流的当前图像帧中所述待替换人脸的人脸特征点信息。例如,计算设备还包括输入装置,用于接收其他设备发送的关于待替换人脸的视频流,如数据传输接口等;或者,计算设备还包括摄像装置,用于拍摄关于待替换人脸的视频流等,如摄像头、深度摄像机等。所述待替换人脸的人脸特征点信息包括所述待替换人脸的眼睛、鼻子、嘴和脸轮廓等标志性特征对应的各特征点在所述当前图像帧中的图像位置信息等。所述计算设备通过接收其他设备发送的关于待替换人脸的视频流,基于所述视频流中当前图像帧中的人脸位置,通过人脸特征点提取等方式提取所述待替换人脸的人脸特征点,从而获取人脸特征点信息。如在一些实施方式中,所述一一模块101包括一一一子模块1011(未示出)和一一二子模块1012(未示出),一一一子模块1011,用于获取关于待替换人脸的视频流中当前图像帧中所述待替换人脸的图像位置信息;一一二子模块1012,用于根据所述图像位置信息提取所述当前图像帧中人脸特征点信息。例如,所述待替换人脸的图像位置信息包括所述待替换人脸的轮廓或者自定义外接图形(如外接矩形)等在所述当前图像帧的图像坐标系中的像素坐标,如外接矩形的边框四条线段对应的线段方程,或者外接矩形的至少两个对角对应的角点像素坐标等。在一些实施方式中,所述待替换人脸的图像位置信息基于用户的操作(如框选等)等,在所述当前图像帧中选中确定,如基于用户的点击框选操作等,在用户点击或框选位置确定对应的人脸外接矩形等;在另一些实施方式中,所述待替换人脸的图像位置信息由计算设备对所述当前图像帧进行人脸检测确定,如一一一子模块1011,用于对关于待替换人脸的视频流中当前图像帧进行人脸检测,确定至少一个人脸对应的图像位置信息,从所述至少一个人脸的图像位置信息中确定所述待替换人脸的图像位置信息。例如,所述人脸检测包括计算设备通过人脸相关特征在所述当前图像帧中确定一个或多个人脸轮廓或者外接矩形在所述当前图像帧中的像素坐标等,包括但不限于基于haar特征的adaboost级联人脸检测算法、acf(aggregatechannelfeaturesformulti-viewfacedetection,基于聚合通道的多视图人脸检测)、dpm(deformablepartmodel,可变形的组件模型)、cascadecnn(aconvolutionalneuralnetworkcascadeforfacedetection,卷积神经网络的人脸检测算法)、densebox(densebox:unifyinglandmarklocalizationwithendtoendobjectdetection,基于全卷积网络的物体检测算法)、faceness-net(faceness-net:facedetectionthroughdeepfacialpartresponses,基于深度学习的视频人脸检测识别算法)、facer-cnn、pyramidbox(pyramidbox:acontext-assistedsingleshotfacedetector,环境辅助的单步人脸检测器)等;此处我们采用基于haar特征的adaboost级联人脸检测算法,此方法检测速度快,鲁棒性好,能够很好的实现人脸检测,获得如图3所示人脸检测的示例图中的矩形框,以及矩形框两个对角坐标(x1,y1)、(x2,y2)。当然,本领域技术人员应能理解上述人脸检测算法仅为举例,其他现有的或今后可能出现的人脸检测算法如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

在一些实施方式中,计算设备通过上述人脸检测算法,可以检测到当前图像帧中存在一个或多个人脸外接矩形框,计算设备可以基于用户的选中操作等,从所述一个或多个人脸外接矩形框中确定所述待替换人脸的人脸外接矩形框等;或者计算设备根据所述视频流的上一图像帧中待替换人脸的图像位置信息,进行目标跟踪从所述一个或多个人脸外接矩形对应的图像位置信息中确定所述待替换人脸的图像位置信息。随后,计算设备基于待替换人脸的图像位置信息,提取人脸相关的特征点信息,在此,所述特征点定位算法包括但不限于gbdt(gradientboostingdecisontree,算法梯度提升树)、asm(activeshapemodels,主动形状模型)、aam(activeappearancemodels,主动纹理模型)、dcnn(extensivefaciallandmarklocalizationwithcoarsetofineconvolutionalnetworkcascade,粗到精人脸特征点定位算法)、tcdcn(faciallandmarkdetectionbydeepmulti-tasklearning,任务驱动型的深度模型)、mtcnn(jointfacedetectionandalignmentusingmulti-taskcascadedconvolutionalnetworks,基于多任务级联卷积神经网络的人脸检测和对齐)、tcnn(faciallandmarkdetectionwithtweakedconvolutionalneuralnetworks,调整卷积神经网络的人脸检测)等。在此,我们采用gbdt一种基于回归树的人脸对齐算法,通过建立一个级联的残差回归树来使人脸形状从当前形状一步一步回归到真实形状;每一个gbdt的每一个叶子节点上都存储着一个残差回归量,当输入落到一个节点上时,就将残差加到该输入上,起到回归的目的,最终将所有残差叠加在一起,得到如图4所示的提取的人脸特征点信息的示例图,提取到人脸的75个特征点,该算法计算速度快,性能稳定,在pc上每个人脸仅需要1-2毫秒即可完成人脸特征点的定位,在此提取特征点的数量也不仅限于75个,还可以是29、68、83、106等其他个数的关键点等。当然,本领域技术人员应能理解上述人脸特征点定位算法仅为举例,其他现有的或今后可能出现的人脸特征点定位算法如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

一二模块102,用于在所述视频流的当前图像帧中对所述人脸特征点信息进行特征点信息跟踪。例如,在目前已知的人脸特征点定位方法,都存在一定的不稳定性,即使人脸在视频中是不动的,但是受限于定位精度的影响,其人脸特征点信息在前后帧中会存在几个像素内的抖动,如果直接用人脸特征点信息定位得到的结果进行后续的人脸替换等,替换后的人脸在视频流中会存在一定的抖动现象。本方案通过对前后帧中人脸特征点信息进行跟踪,能够进行有效修正处理,获得较为稳定的人脸图像呈现效果。所述特征点信息跟踪包括基于上一图像帧的待替换人脸的人脸特征点信息进行跟踪获取预测的跟踪人脸特征点信息,结合当前图像帧中人脸特征点信息,确定最终的人脸特征点信息。如在一些实施方式中,一二模块102,用于利用光流跟踪算法在所述视频流的当前视频中对所述人脸特征点信息进行特征点信息跟踪。例如,所述光流跟踪算法包括klt(kanade-lucas-tomasi)光流法,具体方法包括:对于每个特征点,假设所述视频流的上一图像帧中通过前述提取人脸特征点信息的方法提取了上一图像帧对应的人脸特征点信息,并基于该klt光流法预测其在当前图像帧中的人脸特征点的位置信息,得到对应的跟踪人脸特征点信息,并结合通过前述提取人脸特征点信息的方法提取当前图像帧对应的人脸特征点信息,得到对应的最终人脸特征点信息。如在一些实施方式中,所述一二模块102包括一二一子模块1021(未示出)和一二二子模块1022(未示出),一二一子模块1021,用于根据所述视频流中当前图像帧中所述待替换人脸的人脸特征点信息,利用光流跟踪算法预测所述视频流的当前图像帧中所述待替换人脸的跟踪人脸特征点信息;一二二子模块1022,用于根据所述跟踪人脸特征点信息及所述当前图像帧中所述人脸特征点信息确定所述当前图像帧中的最终人脸特征点信息。

在一些实施方式中,一二二子模块1022,用于获取所述跟踪人脸特征点信息的权重信息及所述当前图像帧中所述人脸特征点信息对应的权重信息,并根据所述跟踪人脸特征点信息、所述人脸特征点信息、所述跟踪人脸特征点信息的权重信息以及所述人脸特征点信息的权重信息确定所述当前图像帧中的最终人脸特征点信息。例如,对于每个特征点,设上一图像帧中人脸特征点信息得到的位置坐标为p(t-1),通过klt光流法预测其在当前帧的位置,设为p0(t)。在当前帧得到人脸特征点信息其坐标设为p(t),则最终得到人脸特征点信息的最终坐标ps(t)为(即结合跟踪结果和当前定位结果):

ps(t)=(1-α)p(t)+αp0(t)(6)

其中,α表示所述跟踪人脸特征点信息的权重信息,1-α表示所述当前图像帧中人脸特征点信息的权重信息。在此,α可以是预设的,也可以是基于前后图像帧的相关参数确定的。如在一些实施方式中,所述跟踪人脸特征点信息的权重信息与所述待替换人脸在所述上一图像帧与所述当前图像帧中的位移大小负相关。

例如,假设α是基于自然底数e的指数相关函数:

其中,

d=||p(t)-p(t-1)||(8)

σ2=(h*h)/1500(9)

其中,式(9)中,h为通过人脸检测得到的人脸矩形框的高度,其中,1500的取值仅为举例,也可以选择其它数值作为对应分母。

由以上公式可知,最终得到的坐标通过各自的权重信息,把当前定位得到人脸特征点信息的像素坐标和通过上一帧预测到的跟踪人脸特征点的像素坐标结合起来,若人脸在上一图像帧至当前图像帧中运动越大,则d越大,则α越小,则最终的特征点坐标ps(t)越趋向使用当前定位得到的坐标;若人脸在上一图像帧至当前图像帧中运动较小,则d越小,则α越大,则最终的人脸特征点信息的像素坐标ps(t)越趋向使用通过上一图像帧跟踪得到跟踪人脸特征点信息。这种方法充分考虑人脸的运动和人脸分辨率(即h)来自适应调整当前帧人脸特征点的位置,比简单地通过连续帧的轨迹平滑更具稳定性和实时性。

一三模块103,用于根据特征点信息跟踪后的所述人脸特征点信息以及模板人脸的模板特征点信息,用所述模板人脸替换所述待替换人脸。例如,所述模板人脸的模板特征点信息包括用于替换所述待替换人脸的模板人脸的眼睛、鼻子、嘴以及脸轮廓等特征在所述模板图像中的图像位置信息等。计算设备获取到特征点信息跟踪处理后的所述人脸特征点,并基于该人脸特征点与用于替换所述待替换人脸的模板人脸的模板特征点信息,用所述模板人脸替换所述待替换人脸,如利用delaunay三角剖分及人脸轮廓适配等。

在一些实施方式中,该设备在执行一三模块103之前还包括一六模块106(未示出),一六模块106,用于基于特征点信息跟踪后的所述人脸特征点以及所述模板人脸的模板特征点信息检测所述待替换人脸与所述模板人脸是否脸型匹配;若所述待替换人脸与所述模板人脸脸型失配,则根据根据特征点信息跟踪后的所述人脸特征点信息以及所述模板人脸的模板特征点信息对所述待替换人脸进行人脸轮廓适配处理,使得处理后的所述待替换人脸与所述模板人脸脸型匹配。

例如,脸型匹配包括但不限于对所述人脸特征点信息的外轮廓组成的多边形与所述模板特征点信息的外轮廓组成的多边形在相似条件下进行多边形重合度的匹配,如先确定所述人脸特征点信息的外轮廓对应的外接人脸矩形和所述模板特征点信息的外轮廓对应的外接模板矩形,保证所述外接人脸矩形和所述外接模板矩形的长或宽一致的条件下,将所述外接人脸矩形和所述外接模板矩形的中心重合,计算所述人脸特征点信息的外轮廓组成的人脸多边形与所述模板特征点信息的外轮廓组成的模板多边形的重合面积s1及非重合面积s2,若所述非重合面积s2占重合面积与非重合面积总和(s1+s2)的比例大于或等于一定阈值,确定所述人脸特征点信息与所述模板特征点信息的脸型不匹配;若所述非重合面积s2占重合面积与非重合面积总和(s1+s2)的比例小于一定阈值,确定所述人脸特征点信息与所述模板特征点信息的脸型匹配。在一些实施方式中,若脸型匹配,计算设备可根据所述人脸特征点信息以及所述模板人脸的模板特征点信息,将所述待替换人脸与所述模板人脸中至少一个划分为多个三角形区域,并根据仿射变换,用所述模板人脸替换所述待替换人脸;若不匹配,计算设备根据特征点信息跟踪后的所述人脸特征点信息以及所述模板人脸的模板特征点信息进行人脸轮廓适配。

如在一些实施方式中,一三模块103,用于根据所述人脸特征点信息以及所述模板人脸的模板特征点信息,将所述待替换人脸与所述模板人脸中至少一个划分为多个三角形区域,并根据仿射变换,用所述模板人脸替换所述待替换人脸。例如,基于图4所示的模板人脸中75个特征点,计算设备对其75个特征点通过delaunay三角剖分方法将人脸区域分成119个三角形,如图5示出的三角剖分示例,每个三角形由3个特征点组成,总共119组特征点。随后,如图6所示,图(a)所示为模板人脸的模板特征点信息的示例,图(b)所示为待替换人脸,图(c)所示为待替换人脸的人脸特征点信息的示例,所述图(a)的模板特征点信息与所述图(c)的人脸特征点信息中的各三角形相对应,通过仿射变换,将模板人脸的模板特征点信息中人脸的每个三角形的图像,变换到当前帧对应的人脸特征点信息组成的三角形区域中,最终实现把模板人脸的模板特征信息与当前图像帧的人脸特征点信息建立对应关系,并根据对应关系将模板人脸变换至所述待替换人脸中,在所述当前图像帧中覆盖所述待替换人脸。

在另一些实施方式中,一三模块103包括一三一子模块1031(未示出)和一三二子模块1032(未示出)。一三一子模块1031,用于根据特征点信息跟踪后的所述人脸特征点信息以及所述模板人脸的模板特征点信息对所述待替换人脸进行人脸轮廓适配;一三二子模块1032,用于根据所述人脸轮廓适配后的所述人脸特征点信息以及所述模板人脸的模板特征点信息,用所述模板人脸替换所述待替换人脸。例如,基于delaunay三角剖分的方法进行人脸替换,虽然人脸变换后比较自然,但如果真实人脸的脸型与模板人脸的脸型相差较大,则变换后的人脸脸型还是与原来待替换人脸一致,肉眼上整体可以看出与模板人脸不一致。为了减少上述的影响,使变形后的脸型与模板人脸比较逼真,本方案采用人脸轮廓适配的方式,先将模板人脸的脸型匹配到待替换人脸的脸型,对待替换人脸的脸型进行变形,使得待替换人脸和模板人脸的脸型相似,再把模板人脸替换至待替换人脸获得对应的当前图像帧。由于从模板人脸的轮廓变换到待替换人脸的变换矩阵包括6个未知数,最少需要3个点对,即从所述模板特征点信息的轮廓和所述人脸特征点信息的轮廓中取至少三个点对,计算对应的变换矩阵信息,随后,根据对应的变换矩阵信息调整所述人脸特征点信息。如在一些实施方式中,所述一三一子模块1031包括一三一一单元10311(未示出)和一三一二单元10312(未示出)。一三一一单元10311,用于从所述人脸特征点信息的轮廓和所述模板特征点信息的轮廓中取至少三个点对,确定所述模板特征点信息到所述人脸特征点信息的变换矩阵信息;一三一二单元10312,用于根据所述变换矩阵信息调整所述人脸特征点信息。例如,所述人脸特征点信息的轮廓包括人脸特征点中人脸外轮廓特征点及四个眼角的特征点,所述模板特征点信息的轮廓包括模板人脸外轮廓特征点及四个眼角的特征点,如图4所示的特征点集合中包含其17个外轮廓特征点及四个眼角的特征点,总共21个特征点。又例如所述人脸特征点信息的轮廓包括人脸特征点中人脸外轮廓特征点,所述模板特征点信息的轮廓包括模板人脸外轮廓特征点。从所述人脸特征点信息的轮廓和所述模板特征点信息的轮廓中取至少三个点对,求解6个未知数,可以得到对应的变换矩阵信息,从而根据所述变换矩阵信息调整所述人脸特征点信息,如通过所述模板特征点及所述变换矩阵信息计算所述人脸特征点的像素坐标,又如通过所述模板特征点及所述变换矩阵信息计算所述人脸特征点调整的调整位置信息,并基于所述调整位置信息调整所述人脸特征点信息的像素坐标等,其中,关于人脸特征点调整可以是只调整人脸特征点信息的轮廓,也可以是调整整张脸对应的全部人脸特征点信息。

在一些实施方式中,一三一一单元10311,用于从所述人脸特征点信息的轮廓和所述模板特征点信息的轮廓中取至少三个点对,利用最小二乘原理确定所述模板特征点信息到人脸特征点信息的最优变换矩阵信息;一三一二单元10312,用于根据所述最优变换矩阵信息调整所述人脸特征点信息。例如,假设模板人脸的模板特征点信息的特征点坐标为(x,y),待替换人脸的人脸特征点信息的特征点坐标为(x’,y’),用至少三个特征点对,根据以下公式,使用最小二乘法,计算模板人脸到真实人脸的最优相似变换矩阵m,

根据式(10)计算得到相似变换矩阵m,把模板人脸的模板特征点信息基于所述相似变换矩阵变换至所述当前图像帧中,如图(8)所示,图(a)所示为模板人脸,图(b)所示为待替换人脸,图(c)所示为人脸轮廓适配后的待替换人脸,计算设备将图(a)中所示的深色点的模板特征点的外轮廓经过相似变换矩阵投影至图(b)中,并将图(b)中浅色点的人脸特征点的轮廓变换至对应的深色点的位置,形成图(c)所示的人脸轮廓适配后的结果。

在一些实施方式中,一三一二单元10312,用于根据所述最优变换矩阵信息及移动最小二乘的图像变形算法调整所述人脸特征点信息。例如,如图8所示,假设(b)图浅色点的坐标为(x1n,y1n)(实际是x’,y’),深色点坐标为(x2n,y2n)(实际是x,y经变换矩阵变换之后得到的点),n=0….20,根据这21对点,使用移动最小二乘的图像变形法,把(b)图的人脸变形到如深色点的人脸形状,得到图(c)(实际上利用该算法整张图都会变形,只是人脸部分变形明显)。

随后,计算根据变换后的人脸外轮廓的特征点,如图8(c)中的21个深色点,在待替换人脸上把这些点依次连起来,得到一个多边形,将模板人脸的多边形图像变换至对应的待替换人脸的多边形区域,得到新的换脸后的人脸。

在一些实施方式中,所述人脸特征点信息与所述模板特征点信息经过人脸轮廓适配后即可进行后续的人脸替换、颜色融合及边缘处理等,在另一些实施方式中,为了使得换脸所得图像更加自然,可以在进行人脸轮廓适配后继续进行三角剖分及仿射变换等进行模板特征点与人脸特征点信息的替换。如在一些实施方式中,一三二子模块1032,用于根据所述人脸轮廓适配后的所述人脸特征点信息以及所述模板人脸的模板特征点信息,将所述待替换人脸与所述模板人脸中至少一个划分为多个三角形区域,并根据仿射变换,用所述模板人脸替换所述待替换人脸。例如,将所述模板特征点信息及所述人脸特征点信息中至少一个进行三角剖分,并基于所得三角形建立模板人脸的模板特征信息与当前图像帧的人脸特征点信息建立映射关系,并根据映射关系将模板人脸变换至所述待替换人脸中,在所述当前图像帧中覆盖所述待替换人脸。

一四模块104,用于对所述替换人脸后的当前图像帧进行颜色融合及边缘处理。例如,由于人脸模板与当前真实人脸的肤色和光照很可能并不一致,如真实人脸的额头部分并不能被人脸模板覆盖等,被覆盖的人脸区域和未被覆盖的肤色区域在肤色和色调上可能不一致,会有明显的人为编辑的痕迹,所以需要对人脸进行颜色融合,目前已知的人脸融合算法大多采用通用的泊松融合算法,此种算法计算量大,很难满足实时性要求,且当两人脸光照差别较大时,融合效果性能会受到影响。本方案提供一种稳定的人脸颜色融合方法,其中,因为要使两个人脸的整体颜色更加融合,所以在色调(h),饱和度(s),明度(v)上进行调节,hsv颜色空间符合人的直观特征等,所以在hsv颜色空间对所述替换人脸后的当前图像帧进行颜色融合。在一些实施方式中,所述颜色融合可以是基于该图像帧所有像素点的颜色进行处理的;在另一些实施方式中,所述颜色融合基于替换前的人脸区域及替换后的人脸区域的像素点的颜色进行处理。如在一些实施方式中,在步骤s104中,计算设备将替换人脸前的原当前图像帧与所述替换后的现当前图像帧的颜色空间转换至hsv颜色空间,进行颜色融合,并将融合后的当前图像帧的颜色空间转换至rgb颜色空间;利用滤波器对颜色融合后的所述当前图像帧进行边缘处理。所述原当前图像帧是指未替换人脸前的原始视频流中图像帧,所述现当前图像帧指用模板人脸替换待替换人脸后的当前图像帧。计算设备先将原当前图像帧与现当前图像帧的颜色空间从rgb颜色空间转换至hsv空间,基于预定的颜色融合算法,得到融合后的当前图像帧,并将该图像帧的颜色空间从hsv空间转换至rgb空间,从而得到对应的当前图像帧。此时,当前图像帧中在替换人脸的边缘部分存在较明显的分界线,看得出明显的人为编辑的痕迹,计算设备通过滤波器对模板人脸(替换人脸)和当前图像帧的背景边缘进行平滑过渡,所述滤波器包括但不限于高斯滤波、领域平滑滤波、中值滤波等。在一些实施方式中,所述颜色融合算法包括:将所述hsv颜色空间中h通道拉伸至0-180,s、v通道拉伸至0-255,分别计算所述原当前图像帧、所述现当前图像帧中在各颜色通道的像素平均值;根据所述原当前图像帧、所述现当前图像帧中在各颜色通道的像素平均值,以及预设的融合算法,确定融合后的所述当前图像帧中hsv颜色分布。例如,计算设备将所述原当前图像帧及现当前图像帧分别转换到hsv图像空间,得到hsv图像i1和i2,并把h通道拉伸到0~180,s、v通道拉伸到0~255,以便于一个像素占3个字节,适用计算机运算。对这两个图像的各自的h、s、v3个通道,分别计算其像素值的均值,得到i1的h通道的均值像素值m1h、i1的s通道的均值像素值m1s、i1的v通道的均值像素值m1v,i2的m2h、m2s、m2v。然后按以下公式计算融合后的人脸hsv图像:

m1h=(m1h+90)%180;

m2h=(m2h+90)%180;

i3h(i,j)=(m1h+i2h(i,j)–m2h+180)%180;

i3s(i,j)=m1s+i2s(i,j)–m2s;

i3v(i,j)=m1v+i2v(i,j)–m2v;

其中,当i3s(i,j)的值大于255时,则i3s(i,j)取值255;当i3s(i,j)的值小于0时,则i3s(i,j)取值0,i3v(i,j)同理。

其中,i3h(i,j)、i3s(i,j)、i3v(i,j)为融合后的人脸图像的hsv三个通道在图像坐标位置(i,j)上的像素值,i2h(i,j)、i2s(i,j)、i2v(i,j)为替换后的人脸图像的hsv三个通道在图像坐标位置(i,j)上的像素值。

最后,把融合后的人脸图像从hsv颜色空间转换到bgr颜色空间,如图7示出替换后的当前图像帧经过颜色融合后的示例。

在一些实施方式中,所述视频流包括用户设备在实时视频通信时传输的实时视频流。例如,用户甲持有用户设备(如手机等),用户甲通过用户设备中对应应用建立与用户乙的实时视频通信连接,用户甲的用户设备通过实时视频通信接收所述用户乙拍摄的实时视频流。用户甲的用户设备基于用户甲的操作,在所述实时视频流中对用户乙拍摄的视频流进行实时虚拟换脸,如在用户设备甲本地进行虚拟换脸操作,或向对应网络设备发送对应换脸操作指令,并接收网络设备返回的换脸后的实时视频流;或者用户乙的用户设备基于用户乙的操作将拍摄的实时视频流进行实时虚拟换脸操作,并将所述换脸后的视频流传输至用户甲等,其中,虚拟换脸操作可以是在用户乙的用户设备端完成,也可以是在网络设备端完成。

在一些实施方式中,所述视频流包括增强现实设备的摄像装置拍摄的实时视频流。例如,用户甲持有增强现实设备,所述增强现实设备包括摄像装置,用于采集当前用户甲前方的实时视频流。所述实时视频流中包括对应的待替换人脸,所述增强现实设备基于所述实时视频流进行虚拟换脸操作或者所述增强现实设备将所述实时视频流传输至网络设备,网络设备对所述实时视频流进行虚拟换脸等。在一些实施方式中,所述设备还包括一五模块105(未示出),用于确定所述替换后人脸在所述增强现实设备的显示装置上的呈现位置信息;基于所述呈现位置信息呈现替换后的所述模板人脸。例如,所述增强现实设备包括显示装置,用于叠加呈现所述模板人脸;增强现实设备基于对应的坐标转换参数,计算所述待替换人脸在所述显示装置中的位置,并在该位置叠加呈现对应的模板人脸。在一些实施方式中,所述实时视频流通过所述增强现实设备的显示装置呈现,所述增强现实设备在所述显示装置对应位置(待替换人脸位置)叠加对应的模板人脸;在另一些实施方式中,所述实时视频流用于计算所述待替换人脸在所述显示装置中的位置信息,并通过在所述显示装置对应位置叠加呈现所述模板人脸,达到用所述模板人脸替换真实世界中待替换人脸的增强现实效果。

除上述各实施例介绍的方法和设备外,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。

本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。

本申请还提供了一种计算机设备,所述计算机设备包括:

一个或多个处理器;

存储器,用于存储一个或多个计算机程序;

当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。

图10示出了可被用于实施本申请中所述的各个实施例的示例性系统;

如图10所示在一些实施例中,系统1000能够作为各所述实施例中的任意一个上述设备。在一些实施例中,系统1000可包括具有指令的一个或多个计算机可读介质(例如,系统存储器或nvm/存储设备1020)以及与该一个或多个计算机可读介质耦合并被配置为执行指令以实现模块从而执行本申请中所述的动作的一个或多个处理器(例如,(一个或多个)处理器1005)。

对于一个实施例,系统控制模块1010可包括任意适当的接口控制器,以向(一个或多个)处理器1005中的至少一个和/或与系统控制模块1010通信的任意适当的设备或组件提供任意适当的接口。

系统控制模块1010可包括存储器控制器模块1030,以向系统存储器1015提供接口。存储器控制器模块1030可以是硬件模块、软件模块和/或固件模块。

系统存储器1015可被用于例如为系统1000加载和存储数据和/或指令。对于一个实施例,系统存储器1015可包括任意适当的易失性存储器,例如,适当的dram。在一些实施例中,系统存储器1015可包括双倍数据速率类型四同步动态随机存取存储器(ddr4sdram)。

对于一个实施例,系统控制模块1010可包括一个或多个输入/输出(i/o)控制器,以向nvm/存储设备1020及(一个或多个)通信接口1025提供接口。

例如,nvm/存储设备1020可被用于存储数据和/或指令。nvm/存储设备1020可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(hdd)、一个或多个光盘(cd)驱动器和/或一个或多个数字通用光盘(dvd)驱动器)。

nvm/存储设备1020可包括在物理上作为系统1000被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,nvm/存储设备1020可通过网络经由(一个或多个)通信接口1025进行访问。

(一个或多个)通信接口1025可为系统1000提供接口以通过一个或多个网络和/或与任意其他适当的设备通信。系统1000可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信。

对于一个实施例,(一个或多个)处理器1005中的至少一个可与系统控制模块1010的一个或多个控制器(例如,存储器控制器模块1030)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1005中的至少一个可与系统控制模块1010的一个或多个控制器的逻辑封装在一起以形成系统级封装(sip)。对于一个实施例,(一个或多个)处理器1005中的至少一个可与系统控制模块1010的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器1005中的至少一个可与系统控制模块1010的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(soc)。

在各个实施例中,系统1000可以但不限于是:服务器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)。在各个实施例中,系统1000可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统1000包括一个或多个摄像机、键盘、液晶显示器(lcd)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(asic)和扬声器。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。

通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、rf、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。

作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(ram,dram,sram);以及非易失性存储器,诸如闪存、各种只读存储器(rom,prom,eprom,eeprom)、磁性和铁磁/铁电存储器(mram,feram);以及磁性和光学存储设备(硬盘、磁带、cd、dvd);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。

在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

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