一种图像处理方法、电子设备及存储介质与流程

文档序号:30580211发布日期:2022-06-29 11:46阅读:97来源:国知局
一种图像处理方法、电子设备及存储介质与流程

1.本技术涉及图像处理技术领域,具体而言,涉及一种图像处理方法、电子设备及存储介质。


背景技术:

2.深度伪造(英语:deepfake),又被称为深伪技术,是深度学习(deep learning)和伪造(fake)的混成词,专指基于人工智能的人体图像合成技术的应用,使用deepfake技术可以将已有的图像或视频叠加至目标图像或视频上。
3.在一些场景下,如直播、搞笑等场景下,可能需要将一个图像中的人脸替换为另外一个人脸。目前,针对该种需求的主流做法是,使用深度伪造技术将一个视频中的人脸替换为另一个视频中的人脸,然而使用深度伪造技术的方法需要提取视频中的人脸特征(例如表情和唇部动作等),并将特征编码后再解码成换脸后的图像,这些特征提取、特征编码和特征解码的操作通常是比较耗时的,只适用于非实时应用场景中。然而,在一些实时应用场景中,实时应用场景例如:现场直播出现匿名嘉宾,需要实时地将人脸部分打马赛克,或者,在搞笑场景中,需要实时地将某演员人脸替换为其它演员的人脸。因此,使用目前的图像处理方法对视频中的人脸进行替换难以满足实时应用场景需求。


技术实现要素:

4.本技术实施例的目的在于提供一种图像处理方法、电子设备及存储介质,用于改善对视频中的人脸进行替换难以满足实时应用场景需求的问题。
5.第一方面,本技术实施例提供了一种图像处理方法,包括:获取第一对象对应的样本视频,以及,获取第二对象对应的样本图像,其中,样本视频中包括第一对象的脸部区域,样本图像中包括第二对象的脸部区域;从样本视频筛选出包括第一对象的脸部的目标图像帧;将目标图像帧中的第一对象的脸部替换为样本图像中的第二对象的脸部,获得替换后的替换图像帧;确定样本视频中的图像帧之间的相对位移特征图;基于替换图像帧、样本视频中的图像帧之间的相对位移特征图,将样本视频中的图像帧中第一对象的脸部替换为第二对象的脸部。在上述的实现过程中,通过先对样本视频中出现第一对象脸部的目标图像帧进行替换,然后根据样本视频中的其它图像帧与该目标图像帧之间的相对位移特征图来替换,获得实时替换人脸的换脸视频,达到了实时地将样本视频中的人脸进行替换的效果,从而避免了特征编码和特征解码等非常耗时的操作,让该换脸视频有效地满足了实时的应用场景需求,在不需要对人脸进行建模训练的前提下,实现了三维的换脸效果。
6.在第一方面的一种可选实现方式中,将目标图像帧中的第一对象的脸部替换为样本图像中的第二对象的脸部,获得替换后的替换图像帧,包括:确定样本图像所对应的样本纹理图,以及,基于样本图像确定脸部掩码纹理图;使用脸部掩码纹理图对样本纹理图中的非脸部区域进行过滤,获得第二对象的脸部区域;使用第二对象的脸部区域替换目标图像帧中第一对象的脸部区域,获得替换图像帧。
7.在上述的实现过程中,通过根据样本纹理图和掩码纹理图来进行脸部替换,获得替换后的图像帧,从而能够更加准确地找到脸部位置区域,从而在逐个像素点替换时只替换脸部区域,有效地提高了对视频中的脸部区域进行替换的精度。
8.在第一方面的一种可选实现方式中,确定样本图像所对应的样本纹理图,包括:对样本图像进行人脸检测,得到第二对象的初始脸部区域;对初始脸部区域进行目标处理,得到第二对象的待处理脸部区域,其中,目标处理包括裁剪处理;基于待处理脸部区域中的每个像素点的横坐标值和纵坐标值,对样本人脸图像的每个像素点对应的空间坐标值进行预测,获得待处理脸部区域对应的样本纹理图,样本纹理图中的每个像素点包括:空间坐标值、横坐标值和纵坐标值。
9.在上述的实现过程中,通过对样本图像进行人脸检测和截取,有效地去掉更多与人脸无关的背景区域,进一步地,通过预测出的样本人脸图像的每个像素点对应的空间坐标值来替换,可以增加更多的人脸有效信息,提升替换脸部区域的精度效果。
10.在第一方面的一种可选实现方式中,基于样本图像确定脸部掩码纹理图,包括:针对样本图像中的每个像素点,使用掩码神经网络模型预测出每个像素点对应的掩码值,获得样本图像对应的脸部掩码图,脸部掩码图的每个像素点包括:横坐标值和纵坐标值;根据脸部掩码图的每个像素点的横坐标值和纵坐标值对脸部掩码图的每个像素点对应的空间坐标值进行预测,进行纹理提取,获得脸部掩码纹理图,脸部掩码纹理图中的每个像素点包括:空间坐标值、横坐标值和纵坐标值。
11.在上述的实现过程中,通过使用掩码神经网络模型预测出每个像素点对应的掩码值,获得样本图像对应的脸部掩码图,并预测出脸部掩码图的空间坐标维度信息,有效地提高了根据空间坐标维度信息对视频中的人脸区域进行替换的精度。
12.在第一方面的一种可选实现方式中,使用第二对象的脸部区域替换目标图像帧中第一对象的脸部区域,获得替换图像帧,包括:对目标图像帧进行人脸检测,得到第一对象的脸部区域;将第二对象的脸部区域映射至目标图像帧中的第一对象的脸部区域,获得映射图像帧,映射图像帧是第二对象的脸部区域与第一对象的脸部区域对齐的图像帧;将映射图像帧确定为前景图,并将目标图像帧确定为背景图;将前景图中的每个像素点与背景图中对应的像素点进行融合。
13.在第一方面的一种可选实现方式中,将前景图中的每个像素点与背景图中对应的像素点进行融合,包括:针对前景图中的第二对象的脸部区域,计算出第二对象的脸部区域中的每个像素点与第二对象的脸部区域的全部边缘像素点的多个距离;根据多个距离中的最短距离与预设距离确定第二对象的脸部区域中的每个像素点的权重,获得第二对象的脸部区域对应的权重矩阵,预设距离是多个距离中的最长距离乘以预设比例获得的;将第二对象的脸部区域对应的权重矩阵与第二对象的脸部区域的全部像素点构成的矩阵进行逐个值相乘,获得平滑后的前景图;将平滑后的前景图中的每个像素点与背景图中对应的像素点进行逐点相加融合。
14.在上述的实现过程中,通过对人脸图像帧中的第二人脸进行平滑渐变融合,从而避免了替换的人脸与背景有明显风格差异的问题,有效地保证了换脸后的边缘的平滑和风格的统一。
15.在第一方面的一种可选实现方式中,确定样本视频中的图像帧之间的相对位移特
征图,包括:针对样本视频中的每个图像帧,计算出图像帧中的每个像素点与目标图像帧中运动相似像素点之间的相对位移,获得图像帧的各个像素点所对应的相对位移;针对图像帧中的每个像素点,获取像素点的位移权重;确定像素点的位移权重与像素点对应的相对位移的乘积,获得图像帧与目标图像帧之间的相对位移特征图。在上述的实现过程中,通过将替换人脸后的图像帧与每个图像帧对应的相对位移特征图进行相对位移计算,从而避免了特征编码和特征解码等非常耗时的操作,有效地实现了实时稳定的未换脸图像到换脸视频的转换。
16.在第一方面的一种可选实现方式中,基于替换图像帧、样本视频中的图像帧之间的相对位移特征图,将样本视频中的图像帧中第一对象的脸部替换为第二对象的脸部,包括:针对样本视频中的每个图像帧,确定图像帧中与替换图像帧中的各像素点运动相似的待替换像素点;基于相对位移特征图,确定替换图像帧中的待替换像素点所对应的位移乘积;根据位移乘积与替换图像帧中的每个像素点的像素值之和,来移动像素点对应的待替换像素点,获得多个移动图像帧,其中,移动图像帧中的第一对象的脸部均已被替换为第二对象的脸部。
17.在第一方面的一种可选实现方式中,在获得多个移动图像帧之后,还包括:针对移动图像帧中出现的空白区域,使用生成对抗网络基于移动图像帧中已有像素点的像素值预测空白区域中的每个像素点的像素值。
18.第二方面,本技术实施例还提供了一种图像处理方法,包括:获取第一对象对应的样本视频,以及,获取第二对象对应的样本图像,其中,样本视频中包括第一对象的脸部区域,样本图像中包括第二对象的脸部区域;从样本视频筛选出包括第一对象的脸部的目标图像帧;将目标图像帧中的第一对象的脸部替换为样本图像中的第二对象的脸部,获得替换后的替换图像帧;在每次替换后,确定当前替换得到的替换图像帧与其相邻的图像帧之间的相对位移特征图,并基于替换图像帧和相对位移特征图,将相邻的图像帧中第一对象的脸部替换为第二对象的脸部,实现样本视频中的图像帧中第一对象的脸部替换为第二对象的脸部。
19.第三方面,本技术实施例还提供了一种图像处理装置,包括:视频图像获取装置,用于获取第一对象对应的样本视频,以及,获取第二对象对应的样本图像,其中,样本视频中包括第一对象的脸部区域,样本图像中包括第二对象的脸部区域;目标图像筛选模块,用于从样本视频筛选出包括第一对象的脸部的目标图像帧;目标图像替换模块,用于将目标图像帧中的第一对象的脸部替换为样本图像中的第二对象的脸部,获得替换后的替换图像帧;位移特征确定模块,用于确定样本视频中的图像帧之间的相对位移特征图;脸部图像替换模块,用于基于替换图像帧、样本视频中的图像帧之间的相对位移特征图,将样本视频中的图像帧中第一对象的脸部替换为第二对象的脸部。
20.第四方面,本技术实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面第一方面或者第一方面的任意一种可选实现方式中描述的方法,或者,机器可读指令被处理器执行时执行如上面第二方面中描述的方法。
21.第五方面,本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面第一方面或者第一方
面的任意一种可选实现方式中描述的方法,或者,机器可读指令被处理器执行时执行如上面第二方面中描述的方法。
22.第六方面,本技术实施例还提供了一种计算机程序产品,包括计算机程序指令,计算机程序指令被处理器读取并运行时,执行如上面第一方面或者第一方面的任意一种可选实现方式中描述的方法,或者,机器可读指令被处理器执行时执行如上面第二方面中描述的方法。
附图说明
23.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术实施例中的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
24.图1示出的本技术实施例提供的图像处理方法的流程示意图;
25.图2示出的本技术实施例提供的逐个图像帧替换的流程示意图;
26.图3示出的本技术实施例提供的图像处理装置的结构示意图;
27.图4示出的本技术实施例提供的电子设备的结构示意图。
具体实施方式
28.近年来,基于人工智能的计算机视觉、深度学习、机器学习、图像处理、图像识别等技术研究取得了重要进展。人工智能(artificial intelligence,ai)是研究、开发用于模拟、延伸人的智能的理论、方法、技术及应用系统的新兴科学技术。人工智能学科是一门综合性学科,涉及芯片、大数据、云计算、物联网、分布式存储、深度学习、机器学习、神经网络等诸多技术种类。计算机视觉作为人工智能的一个重要分支,具体是让机器识别世界,计算机视觉技术通常包括人脸识别、活体检测、指纹识别与防伪验证、生物特征识别、人脸检测、行人检测、目标检测、行人识别、图像处理、图像识别、图像语义理解、图像检索、文字识别、视频处理、视频内容识别、三维重建、虚拟现实、增强现实、同步定位与地图构建(slam)、计算摄影、机器人导航与定位等技术。随着人工智能技术的研究和进步,该项技术在众多领域展开了应用,例如安全防控、城市管理、交通管理、楼宇管理、园区管理、人脸通行、人脸考勤、物流管理、仓储管理、机器人、智能营销、计算摄影、手机影像、云服务、智能家居、穿戴设备、无人驾驶、自动驾驶、智能医疗、人脸支付、人脸解锁、指纹解锁、人证核验、智慧屏、智能电视、摄像机、移动互联网、网络直播、美颜、美妆、医疗美容、智能测温等应用领域。
29.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术实施例中的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术实施例的详细描述并非旨在限制要求保护的本技术实施例的范围,而是仅仅表示本技术实施例中的选定实施例。基于本技术实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术实施例保护的范围。
30.在介绍本技术实施例提供的图像处理方法之前,先介绍本技术实施例中所涉及的
一些概念:
31.人脸检测(face detection),是一种在任意数字图像中找到人脸的位置和大小的计算机技术;人脸检测可以检测出面部特征,例如是人脸的位置和大小,并忽略诸如建筑物、树木和身体等其他任何东西。人脸检测模型,是指对图像进行人脸检测的神经网络模型;可以确定该图像中是否存在人脸。
32.开源计算机视觉库(open source computer vision library,opencv),是一个跨平台的计算机视觉库;opencv可用于开发实时的图像处理、计算机视觉以及模式识别程序。
33.生成对抗网络(generative adversarial network,gan),又被称为生成对抗式网络,是机器学习中的一种学习范式,通过让两个神经网络相互博弈的方式进行学习;生成对抗网络由一个生成器与一个鉴别器组成,生成器从潜在空间中随机取样作为输入数据,生成器的输出结果需要尽量模仿训练集中的真实样本。
34.需要说明的是,本技术实施例提供的图像处理方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者服务器,设备终端例如:智能手机、个人电脑、平板电脑、个人数字助理或者移动上网设备等。服务器是指通过网络提供计算服务的设备,服务器例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和unix服务器。
35.下面介绍该图像处理方法适用的应用场景,这里的应用场景包括但不限于:由于该图像处理方法是对样本视频中出现人脸的第一人脸的人脸图像帧进行替换,然后根据样本视频中的其它图像帧与该人脸图像帧之间的相对位移特征图来进行计算,能够达到实时地将视频中的人脸替换的效果;因此,可以使用该图像处理方法做成软件开发工具包(software development kit,sdk)和应用程序(application,app)等形式的软件,并将该软件安装部署到终端设备上,这些软件和设备终端适用于泛娱乐视频、文物写真、广告直播等等场景。
36.请参见图1示出的本技术实施例提供的图像处理方法的流程示意图;该图像处理方法的主要思路是,通过先对样本视频中出现第一对象脸部的目标图像帧进行替换,然后根据样本视频中的其它图像帧与该目标图像帧之间的相对位移特征图来进行替换,获得实时替换人脸的换脸视频,达到了实时地将样本视频中的人脸进行替换的效果,从而避免了特征编码和特征解码等非常耗时的操作,让该换脸视频有效地满足了实时的应用场景需求。上述的图像处理方法具体可以包括:
37.步骤s110:获取第一对象对应的样本视频,以及,获取第二对象对应的样本图像,其中,样本视频中包括第一对象的脸部区域,样本图像中包括第二对象的脸部区域。
38.样本视频,是指需要被替换人脸(即第一对象的人脸)的视频,此处的样本视频可以使用公式表示为va={i
ai
|i∈[1,n]};其中,n是样本视频中的图像帧总数量,a表示第一对象,i表示样本视频中的第i个图像帧,i
ai
表示样本视频中的第i个存在第一对象的图像帧。在一些场景中始终有第一对象的人脸,例如在直播场景中,主持人均是全程面对镜头的,那么该样本视频中的所有图像帧就是全部包括第一对象人脸的。当然在具体实施过程中,也可以是只有部分图像帧包括第一对象的人脸,另一部分图像帧不包括第一对象的人脸。
[0039]
样本图像,是指包括准备替换人脸(即第二对象的人脸)的图像,此处的样本图像
可以使用公式表示为ib;其中,b表示第二对象的人脸,ib表示包括第二人脸的样本图像。
[0040]
步骤s120:从样本视频筛选出包括第一对象的脸部的目标图像帧。
[0041]
步骤s130:将目标图像帧中的第一对象的脸部替换为样本图像中的第二对象的脸部,获得替换后的替换图像帧。
[0042]
步骤s140:确定样本视频中的图像帧之间的相对位移特征图。
[0043]
步骤s150:基于替换图像帧、样本视频中的图像帧之间的相对位移特征图,将样本视频中的图像帧中第一对象的脸部替换为第二对象的脸部。
[0044]
需要说明的是,当上述样本视频中只有部分图像帧包括第一对象的人脸时,可以先筛选出均有第一对象人脸的图像帧,然后只对有第一对象人脸的图像帧进行处理(包括上面步骤s140和步骤s150),即忽略掉其它没有第一对象人脸的图像帧,只确定有第一对象人脸的图像帧与其它图像帧之间的相对位移特征图,并根据该相对位移特征图进行脸部替换操作。
[0045]
在上述的实现过程中,通过先对样本视频中出现第一对象脸部的目标图像帧进行替换,然后根据样本视频中的其它图像帧与该目标图像帧之间的相对位移特征图来替换,获得实时替换人脸的换脸视频,达到了实时地将样本视频中的人脸进行替换的效果,从而避免了特征编码和特征解码等非常耗时的操作,让该换脸视频有效地满足了实时的应用场景需求,在不需要对人脸进行建模训练的前提下,实现了三维的换脸效果。
[0046]
作为上述步骤s120的一种可选实施方式,该实施方式例如:按照时间顺序对样本视频中的每个图像帧进行人脸检测,具体可以使用人脸检测模型对样本视频中的每个图像帧进行人脸检测,获得人脸检测结果,从而根据人脸检测结果来判断该图像帧中是否包括第一人脸;若是,则将该图像帧确定为包括第一人脸的人脸图像帧,否则,继续对下一个图像帧进行人脸检测。其中,可以使用的人脸检测模型包括:多任务级联卷积神经网络(multi-task cascaded convolutional networks,mtcnn)和区域卷积神经网络(region convolutional neural network,rcnn)。
[0047]
可以理解的是,上述从样本视频筛选出包括第一人脸的人脸图像帧作为目标图像帧,该目标图像帧可以表示为i
a1
,a1可以表示样本视频中第一次出现人脸的图像帧,也可以是任意次出现人脸的一个图像帧。上述过程可以使用公式具体表示为:其中,表示样本视频的目标图像帧中的第一对象的脸部(face),da表示对第一人脸进行人脸检测的动作,i
a1
表示目标图像帧。然后,使用prnet网络模型对第一对象的脸部进行纹理提取,获得目标图像帧对应的第一纹理图,具体例如:其中,表示第一纹理图,表示纹理图的坐标反向映射函数,表示目标图像帧中的第一对象的脸部。
[0048]
作为步骤s130的一种可选实施方式,具体的脸部替换过程可以包括:
[0049]
步骤s131:确定样本图像所对应的样本纹理图。
[0050]
步骤s132:基于样本图像确定脸部掩码纹理图。
[0051]
步骤s133:使用脸部掩码纹理图对样本纹理图中的非脸部区域进行过滤,获得第
二对象的脸部区域。
[0052]
步骤s134:使用第二对象的脸部区域替换目标图像帧中第一对象的脸部区域,获得替换图像帧。
[0053]
作为步骤s131中确定样本图像所对应的样本纹理图的一种可选实施方式,上述纹理提取过程可以包括:
[0054]
步骤s131a:对样本图像进行人脸检测,得到第二对象的初始脸部区域。
[0055]
步骤s131b:对初始脸部区域进行目标处理,得到第二对象的待处理脸部区域,其中,目标处理包括裁剪处理。
[0056]
可以理解的是,上述的目标处理除了裁剪处理之外,为了后续需要对换脸结果做融合,并放入到网络中作为输入,可能需要让图像的尺寸与网络的输入尺寸相同,所以还可以对初始脸部区域进行扩充或者缩放处理等。因此,上述的目标处理还可以包括:扩充和/或缩放处理等。
[0057]
步骤s131c:基于待处理脸部区域中的每个像素点的横坐标值和纵坐标值,对待处理脸部区域中的每个像素点对应的空间坐标值进行预测,获得待处理脸部区域对应的样本纹理图,样本纹理图中的每个像素点包括:空间坐标值、横坐标值和纵坐标值。
[0058]
上述步骤s131a至步骤s131c的实施方式例如:使用人脸检测模型对样本图像进行人脸检测和截取,获得样本人脸图像,具体例如:其中,表示样本人脸图像,ib表示包括第二人脸的样本图像,db表示对第二人脸进行人脸检测,获得人脸边框和类别概率,若是人脸的类别概率大于预设阈值,则根据人脸边框进行截取,从而获得样本人脸图像。其中,本技术实施例中的人脸检测模型具体可以采用mtcnn模型和rcnn模型来进行人脸检测,此处以mtcnn进行人脸检测为例,具体可以使用公式表示为:(x0,y0,x1,y1)=mtcnn(ib);其中,ib表示包括第二人脸的样本图像,(x0,y0,x1,y1)表示检测出人脸边框,mtcnn表示使用mtcnn进行人脸检测。然后,基于样本人脸图像的每个像素点的横坐标值和纵坐标值,对样本人脸图像的每个像素点对应的空间坐标值进行预测,获得样本图像对应的样本纹理图,样本纹理图中的每个像素点包括:空间坐标值、横坐标值和纵坐标值。
[0059]
可选地,考虑到后续需要对换脸结果做融合,并放入到网络中作为输入,这里可以在人脸检测的基础上进行扩充、裁剪和放缩,具体可以表示为:if=resize(crop(margin(ib,x0,y0,x1,y1,k)));其中,ib表示包括第二人脸的样本图像,(x0,y0,x1,y1)表示检测出人脸边框,(x0,y0)和(x1,y1)分别表示mtcnn检测出的人脸边框的左上和右下两点坐标,k代表扩充比例,margin代表扩充操作,corp代表裁剪操作,resize代表放缩操作。然后,使用prnet网络模型对样本人脸图像进行纹理提取,获得样本图像对应的样本纹理图,具体例如:其中,表示样本纹理图,表示纹理图的坐标反向映射函数,表示样本人脸图像。
[0060]
作为步骤s132的一种可选的实施方式,基于样本图像获得脸部掩码纹理图的过程包括:
[0061]
步骤s132a:针对样本图像中的每个像素点,使用掩码神经网络模型预测出每个像素点对应的掩码值,获得样本图像对应的脸部掩码图,脸部掩码图的每个像素点包括:横坐
标值和纵坐标值。
[0062]
步骤s132b:根据脸部掩码图的每个像素点的横坐标值和纵坐标值对脸部掩码图的每个像素点对应的空间坐标值进行预测,获得脸部掩码纹理图,脸部掩码纹理图中的每个像素点包括:空间坐标值、横坐标值和纵坐标值。
[0063]
上述步骤s132a至步骤s132b的实施方式例如:针对样本图像中的每个像素点,使用掩码神经网络模型预测出每个像素点对应的掩码值,获得样本图像对应的脸部掩码图,具体例如:其中,表示脸部掩码图,表示样本人脸图像,mask表示掩码神经网络模型的掩码处理操作,此处的掩码神经网络模型可以采用深度神经网络(deep neural networks,dnn)等作为分割模型,具体例如:假设该分割模型的输入256*256*3,那么该分割模型的输出是256*256*c,其中,c是每个点的维度向量。
[0064]
然后,根据脸部掩码图的每个像素点的横坐标值和纵坐标值对脸部掩码图的每个像素点对应的空间坐标值进行预测,即对脸部掩码图进行纹理提取,获得样本图像对应的掩码纹理图,具体例如:掩码纹理图,具体例如:其中,表示对脸部掩码图进行纹理提取后的图像,表示纹理图的坐标反向映射函数,表示脸部掩码图,表示掩码纹理图,pf={(w,h)}表示预设区域坐标点,w表示该预设区域的宽,h表示该预设区域的高。
[0065]
作为步骤s134的一种可选实施方式,使用第二对象的脸部区域替换目标图像帧中的位置区域的过程,可以包括:
[0066]
步骤s134a:对目标图像帧进行人脸检测,得到第一对象的脸部区域。
[0067]
步骤s134b:将第二对象的脸部区域映射至目标图像帧中的第一对象的脸部区域,获得映射图像帧,映射图像帧是第二对象的脸部区域与第一对象的脸部区域对齐的图像帧;
[0068]
步骤s134c:将映射图像帧确定为前景图,并将目标图像帧确定为背景图。
[0069]
步骤s134d:将前景图中的每个像素点与背景图中对应的像素点进行融合。
[0070]
上述步骤s134a至步骤s134d的实施方式例如:对目标图像帧进行人脸检测,获得第一对象的脸部在目标图像帧中的位置区域,并将第二对象的脸部区域映射至目标图像帧中的第一对象的脸部区域,以使第二对象的脸部区域与第一对象的脸部区域对齐。此处的对齐是指由于第一对象所在的视频图像帧的尺寸与第二对象所在的样本图像的尺寸并不相同,在替换的过程中,需要先第二对象的脸部区域与第一对象的脸部区域重合对齐时才能替换,此处的对齐有很多种方式,例如上面的将第二对象的脸部区域反向映射至目标图像帧中的第一对象的脸部区域,即可完成对齐操作。在第二对象的脸部区域与目标图像帧中的位置区域对齐之后,将第二对象的脸部区域确定为前景图,并将目标图像帧确定为背景图;具体例如:景图;具体例如:
其中,表示被掩码纹理图过滤后的纹理图,表示掩码纹理图,表示逐元素相乘,表示样本纹理图,表示映射掩码人脸图,表示纹理图的坐标反向映射函数,表示掩码效果图,表示人脸检测的逆映射运算,表示纹理图的坐标映射函数,表示对被掩码纹理图过滤后的纹理图进行纹理图坐标映射,获得的映射人脸图,表示前景图,表示背景图,i
a1
表示样本视频中的目标图像帧。进一步地,将前景图中的每个像素点与背景图中对应的像素点进行融合,具体例如:其中,i

a1
→b表示替换人脸后的图像帧中的像素点,表示前景图中的每个像素点,表示背景图中对应的像素点。
[0071]
作为步骤s134b的一种可选实施方式,在第二对象的脸部区域与目标图像帧中的位置区域对齐之后,还可以对第二对象的脸部区域进行平滑渐变融合,平滑渐变融合的过程可以包括:
[0072]
步骤s134e:针对前景图中的第二对象的脸部区域,计算出第二对象的脸部区域中的每个像素点与第二对象的脸部区域的全部边缘像素点的多个距离。
[0073]
步骤s134f:根据多个距离中的最短距离与预设距离确定第二对象的脸部区域中的每个像素点的权重,获得第二对象的脸部区域对应的权重矩阵,预设距离是多个距离中的最长距离乘以预设比例获得的。
[0074]
步骤s134g:将第二对象的脸部区域对应的权重矩阵与第二对象的脸部区域的全部像素点构成的矩阵进行逐个值相乘,获得平滑后的前景图。
[0075]
步骤s134h:将平滑后的前景图中的每个像素点与背景图中对应的像素点进行逐点相加融合。
[0076]
上述步骤s134e至步骤s134h的实施方式例如:通过opencv库中的边缘检测算法检测出第二对象的脸部区域的全部边缘像素点(即边缘区域),假设由一个n*2的数组表示,然后计算第二对象的脸部区域中的每个像素点到该脸部区域的全部边缘像素点之间的最短距离,作为距离d;那么平滑后的前景图可表示为其中,d表示第二对象的脸部区域中的每个像素点到该脸部区域的全部边缘像素点的最短距离,d
th
表示预设距离(即渐变距离阈值),该预设距离是先获得第二对象的脸部区域中的每个像素点到该脸部区域的全部边缘像素点的多个距离,再将多个距离中的最长距离乘以预设比例获得的。然后,使用此处的替换上述步骤中的再结合opencv中的泊松融合,融合替换人脸与背景的风格,从而得到抹除边缘换脸痕迹的换脸视频。
[0077]
作为步骤s140的一种可选实施方式,相对位移特征图的具体计算过程可以包括:
[0078]
步骤s141:针对样本视频中的每个图像帧,计算出图像帧中的每个像素点与目标图像帧中运动相似像素点之间的相对位移,获得图像帧的各个像素点所对应的相对位移。
[0079]
上述步骤s141的实施方式例如:假设目标图像帧是样本视频中的第1个图像帧,且第1个图像帧中的像素点p1在第i个图像帧中对应的像素点是pi,那么该像素点p1相对于点pi的相对位移可以表示为:其中,p1表示第1图像帧(假设是目标图像帧)中的像素点,pi表示第i图像帧中对应的像素点,表示第1图像帧中的像素点p1相对于第i图像帧中对应的像素点pi的相对位移。
[0080]
步骤s142:针对图像帧中的每个像素点,获取像素点的位移权重。
[0081]
步骤s143:确定像素点的位移权重与像素点对应的相对位移的乘积,获得图像帧与目标图像帧之间的相对位移特征图。
[0082]
上述步骤s142至步骤s143的实施方式例如:若像素点p点附近的点q运动趋势与像素点p相似,则可以通过泰勒展开,此处的运动趋势可以通过光流算法计算得出像素点p点附近的点q运动趋势。通过像素点p点附近的点q运动趋势与像素点p相似可以预测出:附近的点q运动趋势。通过像素点p点附近的点q运动趋势与像素点p相似可以预测出:其中,中,表示像素点q从第i视频帧到第1视频帧的相对位移,p1表示第1视频帧中的像素点,pi表示第i视频帧中对应的像素点,此处舍弃掉高阶o项即是相对位移的一阶逼近,剩下的f(q)表示该像素点的位移权重,故可以称为一阶运动模型。
[0083]
作为步骤s150的一种可选实施方式,根据相对位移特征图替换样本视频中的图像帧的过程可以包括:
[0084]
步骤s150a:针对样本视频中的每个图像帧,确定图像帧中与替换图像帧中的各像素点运动相似的待替换像素点。
[0085]
步骤s150b:基于相对位移特征图,确定替换图像帧中的待替换像素点所对应的位移乘积。
[0086]
可以理解的是,上述的相对位移特征图是由各个像素点的位移乘积构成的,此处的位移乘积是指待替换像素点对应的位移权重与相对位移的乘积,此处的位移权重表征表征该像素点在各个帧中移动的权重,即同一个像素点在不同的图像帧中移动的程度,由于同一个像素点在不同图像帧的移动程度不相同,因此需要使用权重来表征该像素点的移动程度。
[0087]
步骤s150c:根据位移乘积与替换图像帧中的每个像素点的像素值之和,来移动像素点对应的待替换像素点,获得多个移动图像帧,其中,移动图像帧中的第一对象的脸部均已被替换为第二对象的脸部。
[0088]
上述步骤s150a和步骤s150c的实施方式例如:针对替换图像帧和需要被替换的图像帧中同时出现,即存在对应关系的像素点可以直接计算得到像素点的替换结果,具体地,通过光流算法,在每个图像帧中找到与替换图像帧的像素点运动相似的待替换像素点,假设替换图像帧是样本视频中的第1个图像帧,且第1个图像帧中的像素点p1在第i个图像帧中对应的像素点是pi,那么该像素点p1相对于点pi的相对位移可以表示为:的相对位移可以表示为:其中,p1表示第1个替换图像帧中的像素点,pi表示第i图像帧中对应的像素点,表示第1个替换图像帧中的像素点p1相对于第i图像帧中对应的像素点pi的相对位移。针对样
本视频中的每个图像帧,确定待替换像素点在相对位移特征图中对应的相对位移,并根据该相对位移来移动待替换像素点,获得多个移动图像帧;也就是说,将替换图像帧与样本视频中的每个图像帧对应的相对位移特征图进行对应像素点的位移坐标相加计算,获得多个位移计算后的图像帧。因此,可以通过i
ai
→b=i
a1
→b+δ1→i将替换图像帧与样本视频中的每个图像帧对应的相对位移特征图进行计算,从而获得多个位移计算后的移动图像帧;其中,δ1→i表示像素点从第i图像帧到第1图像帧的相对位移特征图中的位移乘积,也就是说,该相对位移特征图中包括样本视频中的(除目标图像帧之外的)每个图像帧中每个像素点的位移权重与相对位移的乘积,i
a1
→b表示替换后的替换图像帧中的像素点,i
ai
→b表示多个位移计算后的移动图像帧的像素点。
[0089]
作为步骤s150的一种可选实施方式,针对替换图像帧和需要被替换的图像帧中没有同时出现,即不存在对应关系的像素点可以使用gan来补充,并将补充的像素点作为像素点的替换结果。具体地,在移动待替换像素点之后,还包括:
[0090]
步骤s150c:针对移动图像帧中出现的空白区域,使用生成对抗网络基于移动图像帧中已有像素点的像素值预测空白区域中的每个像素点的像素值,获得替换后的多个图像帧。
[0091]
上述步骤s150c的实施方式例如:针对多个移动图像帧中的每个图像帧在移动后出现的空白区域,使用生成对抗网络(gan)基于移动图像帧中已有像素点的像素值预测空白区域中的每个像素点的像素值。其中,可以使用的生成对抗网络包括:gan、stylegan、stylegan2、wgan(wasserstein gan)、wgan-gp(wasserstein gan-gradient penalty)和辅助分类生成对抗网络(auxiliary classifier generative adversarial network,ac-gan)等。
[0092]
可选地,在获得替换后的多个图像帧,还可以将获得替换后的多个图像帧封装为换脸视频,封装为换脸视频的过程可以包括:
[0093]
步骤s150d:将获得替换后的多个图像帧封装为换脸视频。
[0094]
上述步骤s150d的实施方式例如:通过上述方式计算出每一个像素在样本视频中的第n帧到第1帧(即替换图像帧)的相对位移特征图,并根据替换图像帧和每个图像帧对应的相对位移特征图确定替换后的多个图像帧,将最后获得的多个图像帧按照视频格式封装为换脸视频。
[0095]
可以理解的是,上面是基于目标图像帧与每个图像帧之间的相对位移特征图进行替换的,在具体的实践过程中,也可以在每次在相邻的前一个图像帧替换后,就将该图像帧作为目标图像帧,再基于目标图像帧与每个图像帧之间的相对位移特征图进行替换,从而实现逐个图像帧替换的效果。
[0096]
请参见图2示出的本技术实施例提供的逐个图像帧替换的流程示意图;此处的逐个图像帧替换的图像处理方法,可以包括:
[0097]
步骤s210:获取第一对象对应的样本视频,以及,获取第二对象对应的样本图像,其中,样本视频中包括第一对象的脸部区域,样本图像中包括第二对象的脸部区域。
[0098]
步骤s220:从样本视频筛选出包括第一对象的脸部的目标图像帧。
[0099]
步骤s230:将目标图像帧中的第一对象的脸部替换为样本图像中的第二对象的脸部,获得替换后的替换图像帧。
[0100]
步骤s240:在每次替换后,确定当前替换得到的替换图像帧与其相邻的图像帧之间的相对位移特征图,并基于替换图像帧和相对位移特征图,将相邻的图像帧中第一对象的脸部替换为第二对象的脸部,实现样本视频中的图像帧中第一对象的脸部替换为第二对象的脸部。
[0101]
为了清楚地描述上述步骤s220至步骤s250的过程,以第一目标图像帧至第三目标图像帧的替换过程为例详细地说明,具体例如:从样本视频筛选出包括第一对象的脸部的第一目标图像帧。将第一目标图像帧中的第一对象的脸部替换为样本图像中的第二对象的脸部,获得替换后的第一替换图像帧。确定第一目标图像帧与其相邻的第二目标图像帧之间的第一相对位移特征图,并基于第一替换图像帧和第一相对位移特征图,将第二目标图像帧中第一对象的脸部替换为第二对象的脸部,获得第二替换图像帧。确定第二目标图像帧与其相邻的第三目标图像帧之间的第二相对位移特征图,并基于第二替换图像帧和第二相对位移特征图,将第三目标图像帧中第一对象的脸部替换为第二对象的脸部,获得第三替换图像帧。
[0102]
可以理解的是,上述的第二相对位移特征图有两种确定方式,第一种确定方式,直接按照上述步骤s140的方式计算第二目标图像帧与第三目标图像帧之间的相对位移特征图,具体的计算方式请参照步骤s140,此处不再赘述。第二种确定方式,事先计算好第一目标图像帧与所有图像帧之间的相对位移特征图,获得多个相对位移特征图,然后,将需要计算相邻的相对位移特征图之间相减即可,具体例如:假设已经计算好第一目标图像帧与第二目标图像帧之间的相对位移特征图(表示为a),且计算好第一目标图像帧与第三目标图像帧之间的相对位移特征图(表示为b),那么可以直接使用b减去a,从而获得上述的第二相对位移特征图,其中,上述的第一目标图像帧与第三目标图像帧是不同的图像帧。
[0103]
请参见图3示出的本技术实施例提供的图像处理装置的结构示意图;本技术实施例提供了一种图像处理装置300,包括:
[0104]
视频图像获取装置310,用于获取第一对象对应的样本视频,以及,获取第二对象对应的样本图像,其中,样本视频中包括第一对象的脸部区域,样本图像中包括第二对象的脸部区域。
[0105]
目标图像筛选模块320,用于从样本视频筛选出包括第一对象的脸部的目标图像帧。
[0106]
目标图像替换模块330,用于将目标图像帧中的第一对象的脸部替换为样本图像中的第二对象的脸部,获得替换后的替换图像帧。
[0107]
位移特征确定模块340,用于确定样本视频中的图像帧之间的相对位移特征图。
[0108]
脸部图像替换模块350,用于基于替换图像帧、样本视频中的图像帧之间的相对位移特征图,将样本视频中的图像帧中第一对象的脸部替换为第二对象的脸部。
[0109]
可选地,在本技术实施例中,目标图像替换模块,包括:
[0110]
图像纹理确定模块,用于确定样本图像所对应的样本纹理图。
[0111]
掩码纹理确定模块,用于基于样本图像确定脸部掩码纹理图。
[0112]
掩码纹理过滤模块,用于使用脸部掩码纹理图对样本纹理图中的非脸部区域进行过滤,获得第二对象的脸部区域。
[0113]
替换图像获得模块,用于使用第二对象的脸部区域替换目标图像帧中第一对象的
脸部区域,获得替换图像帧。
[0114]
可选地,在本技术实施例中,图像纹理提取模块,包括:
[0115]
人脸检测截取模块,用于对样本图像进行人脸检测,得到第二对象的初始脸部区域。
[0116]
脸部目标处理模块,用于对初始脸部区域进行目标处理,得到第二对象的待处理脸部区域,其中,目标处理包括裁剪处理。
[0117]
样本纹理获得模块,用于基于待处理脸部区域中的每个像素点的横坐标值和纵坐标值,对待处理脸部区域中的每个像素点对应的空间坐标值进行预测,获得待处理脸部区域对应的样本纹理图,样本纹理图中的每个像素点包括:空间坐标值、横坐标值和纵坐标值。
[0118]
可选地,在本技术实施例中,掩码纹理提取模块,包括:
[0119]
像素掩码预测模块,用于针对样本图像中的每个像素点,使用掩码神经网络模型预测出每个像素点对应的掩码值,获得样本图像对应的脸部掩码图,脸部掩码图的每个像素点包括:横坐标值和纵坐标值。
[0120]
掩码纹理获得模块,用于根据脸部掩码图的每个像素点的横坐标值和纵坐标值对脸部掩码图的每个像素点对应的空间坐标值进行预测,获得脸部掩码纹理图,脸部掩码纹理图中的每个像素点包括:空间坐标值、横坐标值和纵坐标值。
[0121]
可选地,在本技术实施例中,替换图像获得模块,包括:
[0122]
图像人脸检测模块,用于对目标图像帧进行人脸检测,得到第一对象的脸部区域;
[0123]
前景背景确定模块,用于将第二对象的脸部区域映射至目标图像帧中的第一对象的脸部区域,获得映射图像帧,映射图像帧是第二对象的脸部区域与第一对象的脸部区域对齐的图像帧。
[0124]
前景背景确定模块,用于将映射图像帧确定为前景图,并将目标图像帧确定为背景图。
[0125]
前景背景融合模块,用于将前景图中的每个像素点与背景图中对应的像素点进行融合。
[0126]
可选地,在本技术实施例中,前景背景确定模块,包括:
[0127]
边缘距离计算模块,用于针对前景图中的第二对象的脸部区域,计算出第二对象的脸部区域中的每个像素点与第二对象的脸部区域的全部边缘像素点的多个距离。
[0128]
权重矩阵获得模块,用于根据多个距离中的最短距离与预设距离确定第二对象的脸部区域中的每个像素点的权重,获得第二对象的脸部区域对应的权重矩阵,预设距离是多个距离中的最长距离乘以预设比例获得的。
[0129]
区域矩阵相乘模块,用于将第二对象的脸部区域对应的权重矩阵与第二对象的脸部区域的全部像素点构成的矩阵进行逐个值相乘,获得平滑后的前景图。
[0130]
逐点相加融合模块,用于将平滑后的前景图中的每个像素点与背景图中对应的像素点进行逐点相加融合。
[0131]
可选地,在本技术实施例中,位移特征确定模块,包括:
[0132]
相对位移计算模块,用于针对样本视频中的每个图像帧,计算出图像帧中的每个像素点与目标图像帧中运动相似像素点之间的相对位移,获得图像帧的各个像素点所对应
的相对位移。
[0133]
权重位移相乘模块,用于针对图像帧中的每个像素点,获取像素点的位移权重。
[0134]
位移特征图获得模块,用于确定像素点的位移权重与像素点对应的相对位移的乘积,获得图像帧与目标图像帧之间的相对位移特征图。
[0135]
可选地,在本技术实施例中,脸部图像替换模块,包括:
[0136]
运动相似确定模块,用于针对样本视频中的每个图像帧,确定图像帧中与替换图像帧的各像素点运动相似的待替换像素点。
[0137]
像素点移动模块,用于基于相对位移特征图,确定替换图像帧中的待替换像素点所对应的位移乘积。
[0138]
移动图像帧获得模块,用于根据位移乘积与替换图像帧中的每个像素点的像素值之和,来移动像素点对应的待替换像素点,获得多个移动图像帧,其中,移动图像帧中的第一对象的脸部均已被替换为第二对象的脸部。
[0139]
可选地,在本技术实施例中,脸部图像替换模块,还包括:
[0140]
空白区域补充模块,用于针对移动图像帧中出现的空白区域,使用生成对抗网络基于移动图像帧中已有像素点的像素值预测空白区域中的每个像素点的像素值。
[0141]
其中,本技术实施例提供的图像处理装置中各个模块所对应功能的具体实现过程可参考上述方法实施例,该图像处理装置与上述的图像处理方法实施例对应,能够执行上述图像处理方法实施例涉及的各个步骤,该图像处理装置具体的功能可以参见上文中的描述,此处不再赘述。
[0142]
本技术实施例还提供了一种计算机程序产品,包括计算机程序指令,计算机程序指令被处理器读取并运行时,执行如上面描述步骤s110至步骤s150的方法,或者,执行如上面描述步骤s210至步骤s240的方法。应理解的是,该程序产品与上述的图像处理方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该程序产品具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该程序产品包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在程序产品的操作系统(operating system,os)中的软件功能模块。
[0143]
请参见图4示出的本技术实施例提供的电子设备的结构示意图。本技术实施例提供的一种电子设备400,包括:处理器410和存储器420,存储器420存储有处理器410可执行的机器可读指令,机器可读指令被处理器410执行时执行如上步骤s110至步骤s150的方法,或者,机器可读指令被处理器410执行时执行如上步骤s210至步骤s240的方法。
[0144]
本技术实施例还提供了一种计算机可读存储介质430,该计算机可读存储介质430上存储有计算机程序,该计算机程序被处理器410运行时执行如上步骤s110至步骤s150的方法,或者,机器可读指令被处理器410执行时执行如上步骤s210至步骤s240的方法。
[0145]
其中,计算机可读存储介质430可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。
[0146]
本技术实施例提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅是示意性的,例如,附图中的流程图和框图显示了根据本技术实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以和附图中所标注的发生顺序不同。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这主要根据所涉及的功能而定。
[0147]
另外,在本技术实施例中的各个实施例的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0148]
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
[0149]
以上的描述,仅为本技术实施例的可选实施方式,但本技术实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1