本公开涉及图像处理领域,特别是涉及一种视频处理方法、装置、电子设备及介质。
背景技术:
在当前的影视娱乐业中,由于一些原因,需要在作品拍摄完成后对某些演员进行替换。聘请其他演员重新录制相关镜头将消耗大量时间成本与物资成本。视频是一个帧序列的集合,通常用每秒帧的数量(即fps)衡量。按照常用的每秒24帧来估计,每10秒钟的视频片段就有240帧图像,人工处理的工作量极大,且需要图形图像的专业人士进行操作,对专业能力和熟练程度要求较高,否则处理效果无法得到保证。随着人工智能深度学习技术的不断发展,将人工智能技术用于视频中人脸自动替换成为可能。
技术实现要素:
(一)要解决的技术问题
针对于上述技术问题,本公开提出一种视频处理方法、装置、电子设备及介质,用于至少解决上述技术问题。
(二)技术方案
根据本公开实施例的第一方面,提供一种视频处理方法,方法包括:分别将待替换视频与目标视频解码成第一帧序列及第二帧序列,获取各自分别对应的待替换对象图像及目标对象图像;对待替换对象图像进行编码,编码过程中加入预选噪声;对编码结果进行风格迁移;对风格迁移的编码结果进行解码重建,使得目标对象图像替换待替换对象图像,得到重建图像;将重建图像融合到第一帧序列,得到替换后的第一帧序列,将替换后的第一帧序列恢复为视频。
可选地,对待替换对象图像进行编码,包括:获取第一降噪自编码器;将待替换对象图像输入第一降噪自编码器进行编码。
可选地,对风格迁移的编码结果进行解码重建,包括:获取第二降噪自编码器;将风格迁移的编码结果输入第二降噪自编码器进行解码重建。
可选地,方法还包括:训练第一降噪自编码器或第二降噪自编码器,该操作包括:获取第一训练数据集及第二训练数据集,第一训练数据集包括训练用的待替换视频,第二训练数据集包括训练用的目标视频;提取训练用的待替换视频中的第一图像数据,提取训练用的目标视频的第二图像数据;采用层次训练方法,利用第一图像数据训练第一降噪自编码器,利用第二图像数据训练第二降噪自编码器。
可选地,采用层次训练方法,利用第一图像数据训练第一降噪自编码器,包括:采用双层卷积对第一图像数据进行第一次训练,得到第一参数;采用四层卷积对第一图像数据及第一参数进行训练,得到第二参数;采用六层卷积对第一图像数据及第二参数进行训练,得到第三参数;以此类推,每次增加两层卷积,其中一层对应第一降噪自编码器的编码器,另一层对应第一降噪自编码器的解码器。
可选地,方法还包括:获取待替换对象图像在待替换视频中的位置信息。
可选地,将重建图像融合到帧序列,包括:将重建图像融合到帧序列中位置信息指向的位置。
可选地,预选噪声选择高斯噪声。
根据本公开实施例的第二方面,提供了一种视频处理装置,该装置包括:分解模块,用于将分别将待替换视频与目标视频解码成第一帧序列及第二帧序列,获取各自分别对应的待替换对象图像及目标对象图像;第一自编码器,用于对待替换对象图像进行编码,编码过程中加入预选噪声;迁移模块,用于对编码结果进行风格迁移;第二自编码器,用于对风格迁移的编码结果进行解码重建,使得目标对象图像替换待替换对象图像,得到重建图像;替换模块,用于将重建图像融合到第一帧序列,得到替换后的第一帧序列,将替换后的第一帧序列恢复为视频。
根据本公开实施例的第三方面,提供了一种电子设备,包括:一个或多个处理器。存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
根据本公开实施例的第四方面,提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开实施例的第五方面,提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
(三)有益效果
本公开提一种视频处理方法、装置、电子设备及介质,有益效果为:
1、替换视频作品时,只需要针对被替换的对象训练一模型,便可对视频中的所有镜头进行处理,节约了时间成本和物资成本。
2、对待替换对象编码过程中,加入了降噪机制,对编码结果进行的风格迁移,并且,模型训练过程中采用了层次训练方法,减少了替换痕迹,从而保证换脸效果的清晰度与真实度,具备较高的观看效果。
3、将该方法中的操作封装于程序存储于装置或电子设备中,使用者不必深入掌握计算机科学与图像处理的专业知识,只需要具备基本的计算机操作能力,按照训练步骤和使用流程运行相应程序即可,操作简单。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。其中:
图1示意性示出了根据本公开一示例性实施例的视频处理方法的流程图;
图2示意性示出了根据本公开一示例性实施例的自编码器的原理图;
图3示意性示出了根据本公开一示例性实施例的自编码器的网络结构图;
图4示意性示出了根据本公开一示例性实施例的自编码器的训练方法流程图;
图5示意性示出了根据本公开一示例性实施例的vgg19网络结构图;
图6示意性示出了根据本公开一示例性实施例的视频处理装置的框图;以及
图7示意性示出了根据本公开一示例性实施例的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
本公开实施例提供一种视频处理方法,包括:分别将待替换视频与目标视频解码成第一帧序列及第二帧序列,获取各自分别对应的待替换对象图像及目标对象图像。对待替换对象图像进行编码,编码过程中加入预选噪声。对编码结果进行风格迁移。对风格迁移的编码结果进行解码重建,使得目标对象图像替换待替换对象图像,得到重建图像。将重建图像融合到第一帧序列,得到替换后的第一帧序列,将替换后的第一帧序列恢复为视频。
图1示意性示出了根据本公开一示例性实施例的视频处理方法的流程图,该方法例如可以包括操作s101~s104。
s101,分别将待替换视频与目标视频解码成第一帧序列及第二帧序列,获取各自分别对应的待替换对象图像及目标对象图像。
在本实施例一可行的方式中,例如可以使用视频解码软件将待替换视频解码为帧,得到第一帧序列,将目标视频解码为帧,得到第二帧序列,并将第一帧序列及第二帧序列分别保存在两个文件夹中。针对于每一帧,提取出待替换对象图像及目标对象图像,待替换对象图像例如可以为人脸,本发明不做限制。若需要对人脸进行使用,则可以使用人脸检测器(dlib)或多任务级联卷积神经网络(multi-taskcascadedconvolutionalneuralnetworks,mtcnn)提取到每帧中的人脸图像并对齐,具体提取方法本发明不做限制。为了便于后续能够将替换后的对象(人脸)还原到视频中的原位置,需要获取待替换对象的位置信息,并将的位置信息保存,以便替换后融合到原帧序列中。
s102,对待替换对象图像进行编码,编码过程中加入预选噪声。
在本实施例一可行的方式中,可以采用自编码器对待替换图像进行编码。自编码器是一种无监督学习模型,该模型由编码器(encoder)和解码器(decoder)两部分组成。编码器可由函数h=f(x)表示,解码器可由函数r=g(h)表示。输入图像数据x,经过编码器得到其隐藏特征h=f(x),再经过解码器得到输出图像数据x’=g(h)=g(f(x)),自编码器的目的是对输出加以一定约束,使编码器学习到图像中的有判别力的特征,让解码器重建的输出图像数据x’尽可能复现输入图像x。
实际应用中,由于视频中场景复杂,人物脸部角度和表情变化众多,且脸部的局部区域易被头发或其它物品遮挡,即脸部图像无关噪声很大。因此,在进行人脸替换时,可能会出现局部模糊的情况,甚至出现错误替换,导致输出图像噪声也很大。为了克服该问题,本实施例基于常用的自编码器进行重新训练,得到第一降噪自编码器,降噪自编码器的原理如图2所示。下面以替换视频中人脸为例详细介绍训练过程,但该训练过程不仅限于人脸。
首先,获取第一训练数据集,该训练数据集包括待替换训练视频,待替换训练视频指的是用于训练的待替换视频。
然后,将用于训练的待替换视频解码成帧序列,提取每帧图像中的人脸图像x,作为第一图像数据,提取方法例如可以采用dlib。向人脸图像加入噪声,得到噪声图片,其中。噪声例如可以为高斯噪声。将噪声图片输入待训练的自编码器,该自编码器的编码器和解码器的网络结构如图3所示,卷积核尺寸及各层输出通道数均有具体标示,编码器和解码器各包含5层卷积层。
由于使用随机梯度下降法训练网络时,易出现梯度弥散现象。因此,在本实施例一可行的方式中,采用层次训练方法训练第一图像数据,训练过程如图4所示,采用双层卷积对第一图像数据进行第一次训练,得到第一参数,即只训练第一层。采用四层卷积对第一图像数据及第一参数进行训练,得到第二参数,即将第一层参数加入第二层一起训练。采用六层卷积对第一图像数据及第二参数进行训练,得到第三参数,以此类推,每次增加两层卷积层,其中一层对应第一降噪自编码器的编码器,另一层对应第一降噪自编码器的解码器。其中,每训练100000轮加深一层。相关参数例如可以为:训练参数:batch_size:16,权重衰减0.0001,初始学习率0.0001,网络输出图像y,损失函数为均方差函数mse:
l(x,y)=||x-y||2
至此得到的编码器记为ea,解码器记为da。
训练完成后,获取该第一降噪自编码器,将待替换对象图像输入第一降噪自编码器进行编码。
由于后续需要恢复视频,将待替换对象图像替换为目标对象图像,需要对编码结果进行解码,因此,基于上述相同的训练方法,训练得到第二降噪自编码器,得到第二降噪自编码器的编码器记为eb,解码器记为db。该训练过程采用的是第二训练数据集,第二训练数据集包括训练用的目标视频。
s103,对编码结果进行风格迁移。
由于待替换对象与目标对象的视频场景和拍摄环境不同,导致光线差异较大。自然光线经过透镜处理、ccd感光等过程输入到摄像器材,电子设备不可避免地会加入暗电流噪声、热噪声和散粒噪声。同时,摄像器材对感知到的信息进行差值、白平衡、伽马矫正等数学量化操作,最终得到数字图像,这一过程中会产生量化噪声。因此,待替换对象与目标对象具备不同的光影效果和噪声模式。如果直接将编码器ea和解码器db级联起来使用,替换后的人脸虽然可以实现换脸的基本要求,但是不够真实自然,具有一定的人工痕迹,观赏效果不佳。
因此,在本实施例一可行的方式中,引入一个迁移网络tθ,级联在编码器ea和解码器db之间,使用vgg损失对替换流程进一步训练,能够保持原有的风格特征,整体效果更加真实协调。
该迁移网络tθ的训练过程例如可以如下:
以第一训练数据集为训练数据,即输入的待替换人脸图像x。迁移网络的结构例如可以为两层全连接层加一层卷积层,输出神经元个数分别为1024和4*4*1024,卷积层卷积核为3*3,输出通道数为1024。
训练损失函数为:
loss=lvgg(y,x)=lvgg(db(tθ(ea(x))),x)
其中,
s104,对风格迁移的编码结果进行解码重建,使得目标对象图像替换待替换对象图像,得到重建图像。
获取上述训练的第二降噪自编码器,将风格迁移后的编码结果输入该第二降噪自编码器进行解码,基于解码结果重建图像,该重建图像具备目标对象的身份特征。这样,输入的图像x经过第一降噪自编码器的编码器ea,再经过迁移网络,最后经过第二降噪自编码器的解码器db解码,得到重建图像y=db(tθ(ea(x)))。
s105,将重建图像融合到第一帧序列,得到替换后的第一帧序列,将替换后的第一帧序列恢复为视频。
根据保存的位置信息将替换后的重建图像无缝融合到第一帧序列中,并将第一帧序列恢复成视频,至此,完成待替换视频中对象的替换。
本实施例中替换视频作品时,只需要针对被替换的对象训练一模型,便可对视频中的所有镜头进行处理,节约了时间成本和物资成本。对待替换对象编码过程中,加入了降噪机制,对编码结果进行的风格迁移,并且,模型训练过程中采用了层次训练方法,减少了替换痕迹,从而保证换脸效果的清晰度与真实度,具备较高的观看效果。将该方法中的操作封装于程序存储于装置或电子设备中,使用者不必深入掌握计算机科学与图像处理的专业知识,只需要具备基本的计算机操作能力,按照训练步骤和使用流程运行相应程序即可,操作简单。
图6示意性示出了根据本公开一示例性实施例的视频处理装置的框图,如图6所示,该装置600例如可以包括分解模块610、第一自编码器620、迁移模块630、第二自编码器640及替换模块650。
分解模块610,用于将分别将待替换视频与目标视频解码成第一帧序列及第二帧序列,获取各自分别对应的待替换对象图像及目标对象图像。
第一自编码器620,用于对待替换对象图像进行编码,编码过程中加入预选噪声。
迁移模块630,用于对编码结果进行风格迁移。
第二自编码器640,用于对风格迁移的编码结果进行解码重建,使得目标对象图像替换待替换对象图像,得到重建图像。
替换模块650,用于将重建图像融合到第一帧序列,得到替换后的第一帧序列,将替换后的第一帧序列恢复为视频。
需要说明的是,装置部分的实施例方式与方法部分的实施例方式对应类似,具体细节请参照方法实施例部分,在此不再赘述。
根据本公开的实施例的模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,分解模块610、第一自编码器620、迁移模块630、第二自编码器640及替换模块650中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,分解模块610、第一自编码器620、迁移模块630、第二自编码器640及替换模块650中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,分解模块610、第一自编码器620、迁移模块630、第二自编码器640及替换模块650中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图7是根据一示例性实施例示出的一种电子设备的框图。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700包括处理器710、计算机可读存储介质720。该电子设备700可以执行根据本公开实施例的方法。
具体地,处理器710例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器710还可以包括用于缓存用途的板载存储器。处理器710可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质720,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存等等。
计算机可读存储介质720可以包括计算机程序721,该计算机程序721可以包括代码/计算机可执行指令,其在由处理器710执行时使得处理器710执行根据本公开实施例的方法或其任何变形。
计算机程序721可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序721中的代码可以包括一个或多个程序模块,例如包括721a、模块721b、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器710执行时,使得处理器710可以执行根据本公开实施例的方法或其任何变形。
根据本公开的实施例分解模块610、第一自编码器620、迁移模块630、第二自编码器640及替换模块650中的至少一个可以实现为参考图7描述的计算机程序模块,其在被处理器710执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的,也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,具体依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
1.一种视频处理方法,其特征在于,方法包括:
分别将待替换视频与目标视频解码成第一帧序列及第二帧序列,获取各自分别对应的待替换对象图像及目标对象图像;
对所述待替换对象图像进行编码,编码过程中加入预选噪声;
对编码结果进行风格迁移;
对风格迁移的编码结果进行解码重建,使得所述目标对象图像替换所述待替换对象图像,得到重建图像;
将所述重建图像融合到所述第一帧序列,得到替换后的第一帧序列,将所述替换后的第一帧序列恢复为视频。
2.根据权利要求1所述的方法,其特征在于,所述对所述待替换对象图像进行编码,包括:
获取第一降噪自编码器;
将所述待替换对象图像输入所述第一降噪自编码器进行编码。
3.根据权利要求1所述的方法,其特征在于,所述对风格迁移的编码结果进行解码重建,包括:
获取第二降噪自编码器;
将所述风格迁移的编码结果输入所述第二降噪自编码器进行解码重建。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:训练所述第一降噪自编码器或所述第二降噪自编码器,该操作包括:
获取第一训练数据集及第二训练数据集,所述第一训练数据集包括用于训练的待替换视频,所述第二训练数据集包括用于训练的目标视频;
提取所述用于训练的待替换视频中的第一图像数据,提取所述用于训练的目标视频的第二图像数据;
采用层次训练方法,利用所述第一图像数据训练所述第一降噪自编码器,利用所述第二图像数据训练所述第二降噪自编码器。
5.根据权利要求4所述的方法,其特征在于,所述采用层次训练方法,利用所述第一图像数据训练所述第一降噪自编码器,包括:
采用双层卷积对所述第一图像数据进行第一次训练,得到第一参数;
采用四层卷积对所述第一图像数据及第一参数进行训练,得到第二参数;
采用六层卷积对所述第一图像数据及第二参数进行训练,得到第三参数;
以此类推,每次增加两层卷积,其中一层对应所述第一降噪自编码器的编码器,另一层对应所述第一降噪自编码器的解码器。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述待替换对象图像在所述待替换视频中的位置信息。
7.根据权利要求2所述的方法,其特征在于,所述将所述重建图像融合到所述帧序列,包括:
将所述重建图像融合到所述帧序列中所述位置信息指向的位置。
8.根据权利要求1所述的方法,其特征在于,所述预选噪声选择高斯噪声。
9.一种视频处理装置,其特征在于,装置包括:
分解模块,用于将分别将待替换视频与目标视频解码成第一帧序列及第二帧序列,获取各自分别对应的待替换对象图像及目标对象图像;
第一自编码器,用于对所述待替换对象图像进行编码,编码过程中加入预选噪声;
迁移模块,用于对编码结果进行风格迁移;
第二自编码器,用于对风格迁移的编码结果进行解码重建,使得所述目标对象图像替换所述待替换对象图像,得到重建图像;
替换模块,用于将所述重建图像融合到所述第一帧序列,得到替换后的第一帧序列,将所述替换后的第一帧序列恢复为视频。
10.一种电子设备,其特征在于,该电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至8中任一项所述的方法。
技术总结