CN112104830A - 视频插帧方法、模型训练方法及对应装置 - Google Patents
视频插帧方法、模型训练方法及对应装置 Download PDFInfo
- Publication number
- CN112104830A CN112104830A CN202010815538.3A CN202010815538A CN112104830A CN 112104830 A CN112104830 A CN 112104830A CN 202010815538 A CN202010815538 A CN 202010815538A CN 112104830 A CN112104830 A CN 112104830A
- Authority
- CN
- China
- Prior art keywords
- video frame
- optical flow
- neural network
- mapped
- mapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
- H04N7/0135—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
- H04N7/014—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes involving the use of motion vectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/269—Analysis of motion using gradient-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Television Systems (AREA)
Abstract
本申请涉及视频处理技术领域,提供一种视频插帧方法、模型训练方法及对应装置。其中,视频插帧方法包括:获取第一视频帧和第二视频帧;基于第一视频帧和第二视频帧,利用第一神经网络计算出第一视频帧与第一中间视频帧之间的光流和/或第二视频帧与第一中间视频帧之间的光流;利用第一视频帧与第一中间视频帧之间的光流对第一视频帧进行后向映射,获得第一映射视频帧,和/或,利用第二视频帧与第一中间视频帧之间的光流对第二视频帧进行后向映射,获得第二映射视频帧;根据第一映射视频帧和/或第二映射视频帧确定第一中间视频帧。该方法计算中间帧光流的准确性较高,因此最终获得的第一中间视频帧图像质量较好,且使用该方法插帧效率较高。
Description
技术领域
本发明涉及视频处理技术领域,具体而言,涉及一种视频插帧方法、模型训练方法及对应装置。
背景技术
视频插帧是视频处理中的一个经典任务,旨在根据一段视频中的前后两帧合成过渡平滑的中间帧。视频插帧的应用场景包括:第一,用于提高设备显示的视频帧率,让用户感觉视频更加清晰流畅;第二,在视频制作和编辑上,用于辅助实现视频的慢动作效果,或者用于在动画的关键帧之间增加中间帧,减少动画制作的人力支出;第三,用于视频的中间帧压缩,或者为其他计算机视觉任务提供辅助数据。
基于光流的视频插帧算法是近年来研究较多的一类算法,利用这类算法进行插帧的典型做法是:先训练一个光流计算网络,利用该网络计算出前后帧之间的光流,然后对前后帧之间的光流进行线性插值得到中间帧光流,最后基于中间帧光流得到中间帧,即要***前后帧之间的帧。然而,由于中间帧光流是通过前后帧之间的光流合成的,所以在最终得到中间帧内,运动物体的边缘容易产生重影,导致插帧效果较差,并且现有算法步骤较为复杂,插帧过程耗时较长。
发明内容
本申请实施例的目的在于提供一种视频插帧方法、模型训练方法及对应装置,以改善上述技术问题。
为实现上述目的,本申请提供如下技术方案:
第一方面,本申请实施例提供一种视频插帧方法,包括:获取第一视频帧和第二视频帧;基于所述第一视频帧和所述第二视频帧,利用第一神经网络计算出第一中间视频帧到所述第一视频帧的光流和/或第一中间视频帧到所述第二视频帧的光流;其中,所述第一中间视频帧为待***所述第一视频帧和所述第二视频帧之间的视频帧;利用所述第一中间视频帧到所述第一视频帧的光流对所述第一视频帧进行后向映射,获得第一映射视频帧,和/或,利用所述第一中间视频帧到所述第二视频帧的光流对所述第二视频帧进行后向映射,获得第二映射视频帧;根据所述第一映射视频帧和/或所述第二映射视频帧确定所述第一中间视频帧。
第一视频帧和第二视频帧为视频中的前后两帧(可以是连续两帧,也可以不是连续两帧),上述方法在进行插帧时,直接基于第一视频帧和第二视频帧,利用第一神经网络计算出中间帧光流(指第一中间视频帧到第一视频帧的光流和/或第一中间视频帧到第二视频帧的光流),而无需利用第一视频帧和第二视频帧之间的光流,从而得到的中间帧光流准确性较高,在此基础上获得的第一中间视频帧图像质量较好,在运动物体的边缘也不容易产生重影。另外,上述方法步骤简单,显著提高了插帧效率,从而在应用于实时插帧、高清视频插帧等场景时,也能取得较好的效果。
在第一方面的一种实现方式中,所述第一神经网络包括依次连接的至少一个光流计算模块,基于所述第一视频帧和所述第二视频帧,利用第一神经网络计算出第一中间视频帧到所述第一视频帧的光流,包括:根据所述第一视频帧确定输入每个光流计算模块的第一图像,以及,根据所述第二视频帧确定输入每个光流计算模块的第二图像;利用每个光流计算模块,基于输入该光流计算模块的光流分别对输入该光流计算模块的第一图像和第二图像进行后向映射,基于映射得到的第一映射图像和第二映射图像对输入该光流计算模块的光流进行修正,并输出修正后的光流;其中,输入第一个光流计算模块的光流为所述第一视频帧与所述第一中间视频帧之间的预设光流,输入其他光流计算模块的光流为上一个光流计算模块输出的光流,最后一个光流计算模块输出的光流为所述第一神经网络计算出的所述第一中间视频帧到所述第一视频帧的光流。
在上述实现方式中,通过在第一神经网络中设置至少一个光流计算模块,不断修正中间帧光流的计算结果,最终得到精确的中间帧光流。
在第一方面的一种实现方式中,所述根据所述第一视频帧确定输入每个光流计算模块的第一图像,以及,根据所述第二视频帧确定输入每个光流计算模块的第二图像,包括:将所述第一视频帧作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧作为输入每个光流计算模块的第二图像;或者,将所述第一视频帧下采样后得到的图像作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧下采样后得到的图像作为输入每个光流计算模块的第二图像;其中,同一光流计算模块输入的两个下采样图像的形状相同;或者,将所述第一视频帧经卷积层处理后输出的特征图作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧经卷积层处理后输出的特征图作为输入每个光流计算模块的第二图像;其中,同一光流计算模块输入的两个特征图的形状相同。
在第一方面的一种实现方式中,所述将所述第一视频帧下采样后得到的图像作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧下采样后得到的图像作为输入每个光流计算模块的第二图像,包括:分别对所述第一视频帧和所述第二视频帧进行下采样,形成所述第一视频帧的图像金字塔和所述第二视频帧的图像金字塔,所述图像金字塔从顶层开始的每一层对应所述第一神经网络从第一个光流计算模块开始的一个光流计算模块;从两个图像金字塔的顶层开始向下进行逐层遍历,将位于同层的两个下采样图像分别作为输入该层对应的光流计算模块的第一图像和第二图像。
在第一方面的一种实现方式中,所述将所述第一视频帧经卷积层处理后输出的特征图作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧经卷积层处理后输出的特征图作为输入每个光流计算模块的第二图像,包括:利用第一特征提取网络分别对所述第一视频帧和所述第二视频帧进行特征提取,形成所述第一视频帧的特征金字塔和所述第二视频帧的特征金字塔,所述特征金字塔从顶层开始的每一层对应所述第一神经网络从第一个光流计算模块开始的一个光流计算模块;其中,所述第一特征提取网络为卷积神经网络;从两个特征金字塔的顶层开始向下进行逐层遍历,将位于同层的两个特征图分别作为输入该层对应的光流计算模块的第一图像和第二图像。
在上述三种实现方式中,光流计算模块的输入既可以是原图(指第一视频帧或第二视频帧),也可以是下采样后的原图,还可以是特征图,非常灵活。其中,若采用特征图作为光流计算模块的输入,则需要进行卷积计算,其计算量较大,但由于在进行光流计算时考虑了图像中更多的深层次特征,因此光流计算结果也较为准确。而采用原图或下采样后的原图作为光流计算模块的输入,则无需进行卷积计算,其计算量较小,计算光流的效率较高。
其中,在采用下采样图像作为光流计算模块的输入时,可以先基于原图构建图像金字塔,然后从图像金字塔顶层(对应尺寸较小、精度较低的下采样图像)开始,逐层将下采样图像输入至对应的光流计算模块,以实现光流计算的逐渐精细化。类似的,在采用特征图作为光流计算模块的输入时,可以先基于原图构建特征金字塔,然后从特征金字塔顶层(对应尺寸较小、精度较低的特征图)开始,逐层将特征图输入至对应的光流计算模块,以实现光流计算的逐渐精细化。
在第一方面的一种实现方式中,所述基于映射得到的第一映射图像和第二映射图像对输入该光流计算模块的光流进行修正,并输出修正后的光流,包括:基于映射得到的第一映射图像、第二映射图像以及输入该光流计算模块的光流,利用第二神经网络预测出光流修正项;利用所述光流修正项对输入该光流计算模块的光流进行修正,并输出修正后的光流。
在第一方面的一种实现方式中,所述基于映射得到的第一映射图像和第二映射图像对输入该光流计算模块的光流进行修正,并输出修正后的光流,包括:基于映射得到的第一映射图像和第二映射图像,利用LiteFlownet网络中的描述子匹配单元、亚像素修正层以及正则化层对输入该光流计算模块的光流进行修正,并输出修正后的光流。
以上两种实现方式给出了对中间帧光流进行修正的两种方案,其一是直接迁移LiteFlownet网络中的光流修正结构,其二是设计一个第二神经网络用于光流修正。例如,该第二神经网络可以采用简单的编解码器架构,其运算量小,有利于快速完成光流修正。
在第一方面的一种实现方式中,所述基于所述第一视频帧和所述第二视频帧,利用第一神经网络计算出第一中间视频帧到所述第一视频帧的光流和第一中间视频帧到所述第二视频帧的光流,包括:利用第一神经网络计算出第一中间视频帧到所述第一视频帧的光流,并根据所述第一中间视频帧到所述第一视频帧的光流计算所述第一中间视频帧到所述第二视频帧的光流;或者,利用第一神经网络计算出第一中间视频帧到所述第二视频帧的光流,并根据所述第一中间视频帧到所述第二视频帧的光流计算所述第一中间视频帧到所述第一视频帧的光流。
在上述实现方式中,第一中间视频帧到第一视频帧的光流与第一中间视频帧到第二视频帧的光流存在换算关系,从而只需得到其中一个就可以计算出另一个,无需通过第一神经网络进行两次光流计算,因此显著提高了光流计算的效率。
在第一方面的一种实现方式中,所述根据所述第一中间视频帧到所述第一视频帧的光流计算所述第一中间视频帧到所述第二视频帧的光流,包括:将所述第一中间视频帧到所述第一视频帧的光流取反后作为所述第一中间视频帧到所述第二视频帧的光流;所述根据所述第一中间视频帧到所述第二视频帧的光流计算所述第一中间视频帧到所述第一视频帧的光流,包括:将所述第一中间视频帧到所述第二视频帧的光流取反后作为所述第一中间视频帧到所述第一视频帧的光流。
在上述实现方式中,假定物体在第一视频帧和第二视频帧之间线性运动(运动轨迹为线性的匀速运动),则第一中间视频帧到第一视频帧的光流与第一中间视频帧到第二视频帧的光流互为相反光流(指两个光流方向相反,大小相同),计算起来简单高效。若第一视频帧和第二视频帧为连续的视频帧,或者在视频的帧率较高时,该假设容易满足,此时帧内物体的任意运动都可以近似为大量线性运动的累积。
在第一方面的一种实现方式中,所述根据所述第一映射视频帧和/或所述第二映射视频帧确定所述第一中间视频帧,包括:基于所述第一中间视频帧到所述第一视频帧的光流对所述第一映射视频帧进行修正,获得所述第一中间视频帧;或者,基于所述第一中间视频帧到所述第二视频帧的光流对所述第二映射视频帧进行修正,获得所述第一中间视频帧;或者,基于所述第一中间视频帧到所述第一视频帧的光流和/或所述第一中间视频帧到所述第二视频帧的光流,对所述第一映射视频帧和所述第二映射视频帧的融合后形成的第一融合视频帧进行修正,获得所述第一中间视频帧。
在上述实现方式中,对初步计算出的第一中间帧视频(指第一映射视频帧、第二映射视频帧或第一融合视频帧)进行修正,以提高图像质量,改善插帧效果。
在第一方面的一种实现方式中,基于所述第一中间视频帧到所述第一视频帧的光流,对所述第一映射视频帧和所述第二映射视频帧的融合后形成的第一融合视频帧进行修正,获得所述第一中间视频帧,包括:基于所述第一映射视频帧、所述第二映射视频帧以及所述第一中间视频帧到所述第一视频帧的光流,利用第三神经网络预测出第一图像修正项以及第一融合掩膜;根据所述第一融合掩膜中像素值的指示将所述第一映射视频帧和所述第二映射视频帧融合为所述第一融合视频帧;利用所述第一图像修正项对所述第一融合视频帧进行修正,获得所述第一中间视频帧。
在上述实现方式中,设计一个第三神经网络用于学习视频帧的融合以及修正的方法,有利于改善最终获得的第一中间视频帧的质量。
在第一方面的一种实现方式中,所述第三神经网络包括第二特征提取网络以及编解码器网络,所述编解码器网络包括编码器以及解码器,所述基于所述第一映射视频帧、所述第二映射视频帧以及所述第一中间视频帧到所述第一视频帧的光流,利用第三神经网络预测出第一图像修正项以及第一融合掩膜,包括:利用所述第二特征提取网络分别对所述第一视频帧和所述第一视频帧进行特征提取;利用所述第一中间视频帧到所述第一视频帧的光流对所述第二特征提取网络提取得到的特征图进行后向映射;将映射得到的映射特征图、所述第一映射视频帧、所述第二映射视频帧以及所述第一中间视频帧到所述第一视频帧的光流输入至所述编码器进行特征提取;利用所述解码器根据所述编码器提取到的特征预测出第一图像修正项以及第一融合掩膜。
在上述实现方式中,通过设计第二特征提取网络提取原图中的深层次特征(如边缘、纹理等),并将这些特征输入至编解码器网络中,有利于改善图像修正的效果。
在第一方面的一种实现方式中,根据所述第一映射视频帧和所述第二映射视频帧确定所述第一中间视频帧,包括:基于所述第一映射视频帧、所述第二映射视频帧以及所述第一中间视频帧到所述第一视频帧的光流,利用第四神经网络预测出第二融合掩膜;根据所述第二融合掩膜中像素值的指示将所述第一映射视频帧和所述第二映射视频帧融合为所述第一中间视频帧。
在上述实现方式中,设计一个第四神经网络用于学习视频帧的融合的方法,有利于改善最终获得的第一中间视频帧的质量。
第二方面,本申请实施例提供一种模型训练方法,包括:获取训练样本,所述训练样本包括第三视频帧、第四视频帧以及位于所述第三视频帧与所述第四视频帧之间的参考视频帧;基于所述第三视频帧和所述第四视频帧,利用第一神经网络计算第二中间视频帧到所述第三视频帧的光流和/或第二中间视频帧到所述第四视频帧的光流;其中,所述第二中间视频帧为待***所述第三视频帧和所述第四视频帧之间的视频帧;利用所述第二中间视频帧到所述第三视频帧的光流对所述第三视频帧进行后向映射,获得第三映射视频帧,和/或,利用所述第二中间视频帧到所述第四视频帧的光流对所述第四视频帧进行后向映射,获得第四映射视频帧;根据所述第三映射视频帧和/或所述第四映射视频帧确定所述第二中间视频帧;根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络的参数。
上述方法用于训练第一方面的视频插帧方法中使用的第一神经网络,该神经网络可准确计算中间帧光流,改善插帧效果。
在第二方面的一种实现方式中,所述根据所述第二中间视频帧和所述参考视频帧计算预测损失,包括:根据所述第二中间视频帧与所述参考视频帧的差异计算第一损失;分别计算所述第二中间视频帧的图像梯度以及所述参考视频帧的图像梯度,并根据所述第二中间视频帧的图像梯度与所述参考视频帧的图像梯度的差异计算第二损失;根据所述第一损失以及所述第二损失计算所述预测损失。
上述实现方式中,在预测损失中加入表征梯度图像差异的第二损失,有利于改善生成的第二中间视频帧内的物体边缘模糊的问题。
在第二方面的一种实现方式中,所述根据所述第二中间视频帧和所述参考视频帧计算预测损失,包括:根据所述第二中间视频帧与所述参考视频帧的差异计算第一损失;利用预训练的第五神经网络计算出所述参考视频帧到所述第三视频帧的光流和/或所述参考视频帧到所述第四视频帧的光流;根据所述第一神经网络计算出的光流与所述第五神经网络计算出的对应光流之间的差异计算第三损失;根据所述第一损失以及所述第三损失计算所述预测损失。
在上述实现方式中,利用预训练的第五神经网络计算出光流作为标签对第一神经网络进行有监督的训练,实现了光流知识迁移(具体体现为在预测损失中加入了第三损失),有利于改善第一神经网络对中间帧光流的预测准确性,进而改善最终得到的第一中间视频帧的质量。
在第二方面的一种实现方式中,所述第一神经网络包括依次连接的至少一个光流计算模块,每个光流计算模块均输出经该模块修正后的所述第二中间视频帧到所述第三视频帧的光流;所述根据所述第二中间视频帧和所述参考视频帧计算预测损失,包括:根据所述第二中间视频帧与所述参考视频帧的差异计算第一损失;利用预训练的第五神经网络计算出所述参考视频帧到所述第三视频帧的光流;根据每个光流计算模块输出的光流与所述第五神经网络计算出的光流之间的差异计算第四损失;根据所述第一损失以及所述第四损失计算所述预测损失。
在上述实现方式中,利用预训练的第五神经网络计算出光流作为标签对第一神经网络进行有监督的训练,实现了光流知识迁移(具体体现为在预测损失中加入了第四损失),有利于改善第一神经网络对中间帧光流的预测准确性,进而改善最终得到的第一中间视频帧的质量。
在第一神经网络包括至少一个光流计算模块时,光流计算结果是由粗到精逐渐产生的,从而可以对每个光流计算模块的输出都进行损失计算,并累加得到第四损失,通过计算第四损失,有利于更精确地调整每个光流计算模块的参数,使得每个光流计算模块的预测能力都得到提高。
在第二方面的一种实现方式中,所述根据所述第一神经网络计算出的光流与所述第五神经网络计算出的对应光流之间的差异计算第三损失,包括:利用所述第五神经网络计算出的光流对所述第三视频帧进行后向映射,获得第五映射视频帧;根据所述第五映射视频帧与所述参考视频帧的差异确定所述第五神经网络计算出的每个像素位置处的光流向量是否准确;根据所述第五神经网络计算出光流中的第一有效光流向量与所述第一神经网络计算出的对应光流中的第二有效光流向量的差异计算第三损失;其中,所述第一有效光流向量是指所述第五神经网络计算准确的光流向量,所述第二有效光流向量是指所述第一神经网络计算出的对应光流中位于所述第一有效光流向量对应的像素位置处的光流向量。
在第二方面的一种实现方式中,所述根据每个光流计算模块输出的光流与所述第五神经网络计算出的光流之间的差异计算第四损失,包括:利用所述第五神经网络计算出的光流对所述第三视频帧进行后向映射,获得第五映射视频帧;根据所述第五映射视频帧与所述参考视频帧的差异确定所述第五神经网络计算出的每个像素位置处的光流向量是否准确;根据所述第五神经网络计算出光流中的第一有效光流向量与每个光流计算模块输出的光流中的第三有效光流向量的差异计算第四损失;其中,所述第一有效光流向量是指所述第五神经网络计算准确的光流向量,所述第三有效光流向量是指每个光流计算模块输出的光流中位于所述第一有效光流向量对应的像素位置处的光流向量。
发明人长期研究发现,第五神经网络在进行光流计算时,可能会由于边界和遮挡区域存在歧义等原因,导致在部分像素位置处计算出的光流向量不准确,对于这些光流向量,可不将其作为第一神经网络进行有监督学习的标签,而只将那些计算较准确的光流向量作为光流标签,即以上两种实现方式的内容。
在第二方面的一种实现方式中,所述第一神经网络包括依次连接的至少一个光流计算模块,每个光流计算模块均利用LiteFlownet网络中的描述子匹配单元、亚像素修正层以及正则化层对输入该光流计算模块的光流进行修正,在所述基于所述第三视频帧和所述第四视频帧,利用第一神经网络计算第二中间视频帧到所述第三视频帧的光流和/或第二中间视频帧到所述第四视频帧的光流之前,所述方法还包括:利用LiteFlownet网络预训练得到的参数对所述第一神经网络的参数进行初始化。
若第一神经网络中的光流计算模块是基于LiteFlownet网络进行结构迁移得到的,则在训练第一神经网络时,可以直接载入LiteFlownet网络的参数作为其参数的初始值,并在此基础上进行参数微调(finetune),不仅可以加快第一神经网络的收敛速度,还有利于改善其性能。
在第二方面的一种实现方式中,根据所述第三映射视频帧和所述第四映射视频帧确定所述第二中间视频帧,包括:基于所述第三映射视频帧、所述第四映射视频帧以及所述第二中间视频帧到所述第三视频帧的光流,利用第三神经网络预测第二图像修正项以及第三融合掩膜;根据所述第三融合掩膜中像素值的指示将所述第三映射视频帧和所述第四映射视频帧融合为第二融合视频帧;利用所述第二图像修正项对所述第二融合视频帧进行修正,获得所述第二中间视频帧;所述根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络的参数,包括:根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络以及所述第三神经网络的参数。
若在利用第一神经网络进行插帧时会采用第三神经网络进行图像修正,则在模型训练阶段第三神经网络可以和第一神经网络一起进行训练,有利于简化训练过程。
在第二方面的一种实现方式中,根据所述第三映射视频帧和所述第四映射视频帧确定所述第二中间视频帧,包括:基于所述第三映射视频帧、所述第四映射视频帧以及所述第二中间视频帧到所述第三视频帧的光流,利用第四神经网络预测第二图像修正项以及第四融合掩膜;根据所述第四融合掩膜中像素值的指示将所述第三映射视频帧和所述第四映射视频帧融合为所述第二中间视频帧;所述根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络的参数,包括:根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络以及所述第四神经网络的参数。
若在利用第一神经网络进行插帧时会采用第四神经网络进行图像修正,则在模型训练阶段第四神经网络可以和第一神经网络一起进行训练,有利于简化训练过程。
第三方面,本申请实施例提供一种视频插帧装置,包括:第一视频帧获取单元,用于获取第一视频帧和第二视频帧;第一光流计算单元,用于基于所述第一视频帧和所述第二视频帧,利用第一神经网络计算出第一中间视频帧到所述第一视频帧的光流和/或第一中间视频帧到所述第二视频帧的光流;其中,所述第一中间视频帧为待***所述第一视频帧和所述第二视频帧之间的视频帧;第一后向映射单元,用于利用所述第一中间视频帧到所述第一视频帧的光流对所述第一视频帧进行后向映射,获得第一映射视频帧,和/或,利用所述第一中间视频帧到所述第二视频帧的光流对所述第二视频帧进行后向映射,获得第二映射视频帧;第一中间帧确定单元,用于根据所述第一映射视频帧和/或所述第二映射视频帧确定所述第一中间视频帧。
第四方面,本申请实施例提供一种模型训练装置,包括:第二视频帧获取单元,用于获取训练样本,所述训练样本包括第三视频帧、第四视频帧以及位于所述第三视频帧与所述第四视频帧之间的参考视频帧;第二光流计算单元,用于基于所述第三视频帧和所述第四视频帧,利用第一神经网络计算第二中间视频帧到所述第三视频帧的光流和/或第二中间视频帧到所述第四视频帧的光流;其中,所述第二中间视频帧为待***所述第三视频帧和所述第四视频帧之间的视频帧;第二后向映射单元,用于利用所述第二中间视频帧到所述第三视频帧的光流对所述第三视频帧进行后向映射,获得第三映射视频帧,和/或,利用所述第二中间视频帧到所述第四视频帧的光流对所述第四视频帧进行后向映射,获得第四映射视频帧;第二中间帧确定单元,用于根据所述第三映射视频帧和/或所述第四映射视频帧确定所述第二中间视频帧;参数更新单元,用于根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络的参数。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
第六方面,本申请实施例提供一种电子设备,包括:存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的视频插帧方法的一种可能的流程;
图2示出了本申请实施例提供的视频插帧方法的一种可能的网络架构;
图3示出了本申请实施例提供的第一神经网络的一种可能的结构;
图4示出了一种通过特征金字塔构造第一图像和第二图像的方法;
图5示出了本申请实施例提供的第二神经网络的一种可能的结构;
图6示出了本申请实施例提供的第三神经网络的一种可能的结构;
图7示出了本申请实施例提供的模型训练方法的一种可能的流程;
图8示出了本申请实施例提供的模型训练方法的一种可能的网络架构;
图9示出了本申请实施例提供的视频插帧装置的一种可能的结构;
图10示出了本申请实施例提供的视频插帧装置的另一种可能的结构;
图11示出了本申请实施例提供的电子设备的一种可能的结构。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
术语“第一”、“第二”等仅用于将一个实体或者操作与另一个实体或操作区分开来,而不能理解为指示或暗示相对重要性,也不能理解为要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
图1示出了本申请实施例提供的视频插帧方法的一种可能的流程,图2则示出了该方法中可以采用的一种网络架构,供阐述视频插帧方法时参考。图1中的方法可以但不限于由图11示出的电子设备执行,关于该电子设备的结构,可以参考后文关于图11的阐述。参照图1,该方法包括:
步骤S110:获取第一视频帧和第二视频帧。
第一视频帧和第二视频帧为待插帧的视频中的前后两帧,第一视频帧和第二视频帧既可以是连续的前后两帧,也可以不是连续的前后两帧。除了二者之间的时序关系外,对第一视频帧和第二视频帧的选择本申请不作限定。为方便阐述,将第一视频帧记为I1,第一视频帧记为I2。
步骤S120:基于第一视频帧和第二视频帧,利用第一神经网络计算出第一中间视频帧到第一视频帧的光流和第一中间视频帧到第二视频帧的光流。
第一中间视频帧为待***I1和I2之间的视频帧,至于第一中间视频帧的***位置本申请不限定,例如,可以是***到I1和I2的正中间位置,也可以不是***到I1和I2的正中间位置。为方便阐述,将第一中间视频帧记为Isyn1。
所谓插帧,其关键是获得Isyn1,至于将Isyn1***到视频当中是容易的。本申请的方案基于第一中间视频帧的光流获得Isyn1,第一中间视频帧的光流包括第一中间视频帧到第一视频帧的光流和第一中间视频帧到第二视频帧的光流,前者记为Flowmid→1,后者记为Flowmid→2。
在一些实现方式中,可以将I1和I2输入到第一神经网络,利用第一神经网络分别预测出Flowmid→1和Flowmid→2。
若I1和I2内的物体运动符合某些运动规律,则Flowmid→1和Flowmid→2之间也存在与该规律相应的换算关系。因此,在另一些实现方式中,可以利用第一神经网络计算出Flowmid→1,并根据Flowmid→1换算出Flowmid→2,如图2所示(Flowmid→2未示出)。当然,利用第一神经网络计算出Flowmid→2,并根据Flowmid→2换算出Flowmid→1也是可以的。在这些实现方式中,只需利用第一神经网络进行一次光流计算就可以得到所需的两个光流,因此显著提高了光流计算的效率。
进一步的,假定物体在I1和I2之间线性运动(运动轨迹为线性的匀速运动),则Flowmid→1和Flowmid→2互为相反光流,得到其中一个光流后进行取反就可以计算出另一个光流。所谓互为相反光流,用公式可以表示为Flowmid→1=-Flowmid→2,可以理解为Flowmid→1和Flowmid→2方向相反,大小相同。由于一个光流可以视为图像中每个像素位置处的光流向量的集合,因此求一个光流的相反光流,只需将该光流所包含的全部光流向量反向即可,计算起来简单、高效。由于帧内物体在长时间内的任意运动都可以近似为大量短时间内线性运动的累积,因此若I1和I2为连续的视频帧,或者在视频的帧率较高时,上述线性运动的假定容易满足,即采用上述方法进行光流换算具有高度的可行性。
以Flowmid→1=-Flowmid→2的情况为例,图3给出了一种可以计算出Flowmid→1的第一神经网络的结构。参照图3,第一神经网络包括依次连接的至少一个光流计算模块(图中示出了3个光流计算模块)。每个光流计算模块都用于对输入该模块的光流进行修正,并输出修正后的光流。
其中,输入第一个光流计算模块(如图3中的光流计算模块1)的光流为一个预设的Flowmid→1,由于此时尚未进行任何光流计算,所以该预设光流可以取默认值,例如取零(指光流包含的所有光流向量都取零)。第一个光流计算模块对该预设的Flowmid→1进行修正后,输出修正结果,该修正结果也可以视为第一个光流计算模块计算出的Flowmid→1。对于第一个光流计算模块之后的每个光流计算模块,都对上一个光流计算模块输出的Flowmid→1进行修正,并输出修正结果,修正结果可视为该光流计算模块计算出的Flowmid→1。对于最后一个光流计算模块(如图3中的光流计算模块3),其输出的Flowmid→1就是第一神经网络最终计算出的光流。可以看出,在第一神经网络中,Flowmid→1的计算结果由粗到精不断进行修正,最终得到比较精确的光流计算结果。
每个光流计算模块都具有类似的结构,如图3左侧的所示。光流计算模块的输入除了Flowmid→1之外,还包括第一图像和第二图像,为方便阐述,分别记为J1和J2,不过不同的光流计算模块输入的J1和J2并不一定相同。其中,J1是根据I1确定的,而J2是根据I2确定的,具体可以包括,但不限于如下方式之一:
(1)直接将I1作为J1,将I2作为J2,且每个光流计算模块均输入I1和I2。方式(1)无需计算光流计算模块的输入,因此有利于提高光流计算的效率。
(2)将I1经卷积层处理后输出的特征图作为J1,将I2经卷积层处理后输出的特征图作为J2。由于I1、I2经多个卷积层处理后可以输出多个尺度不同的特征图,因此,对于每个光流计算模块,可以输入尺度不同的特征图,但同一光流模块输入的J1和J2形状相同。方式(2)针对光流计算模块的输入需要进行卷积计算,其计算量较大,但由于在进行光流计算时考虑了图像中更多的深层次特征,因此光流计算结果也较为准确。
在一些实现方式中,可以利用第一特征提取网络分别对I1和I2进行特征提取,形成I1的特征金字塔和I2的特征金字塔,其中,第一特征提取网络为一个卷积神经网络,特征金字塔从顶层开始的每一层对应第一神经网络从第一个光流计算模块开始的一个光流计算模块,图像金字塔同层的特征形状相同。
例如,参照图4,利用第一特征提取网络(图未示出)分别对I1和I2进行特征提取,获得两个3层的特征金字塔,对应图3中的3个光流计算模块,其中,第1层(顶层,即图中最靠近I1和I2的那层)对应光流计算模块1,第2层对应光流计算模块2,第3层(底层,即图中最远离I1和I2的那层)对应光流计算模块3。特征金字塔的每一层都是一个特征图,在I1的特征金字塔中,第i(i=1,2,3)层的特征图记为在I2的特征金字塔中,第i层的特征图记为和具有相同的形状。
构建好两个特征金字塔后,从两个特征金字塔的顶层开始向下进行逐层遍历,将位于同层的两个特征图分别作为该层对应的光流计算模块的J1和J2。例如,在图4中,将和分别作为图3中第i个光流计算模块的J1和J2。
由于特征金字塔中的特征图尺寸从顶层到底层逐渐增大,顶层对应尺寸较小、精度较低的特征图,底层对应尺寸较大、精度较高的特征图,从而从特征金字塔顶层开始,逐层将特征图输入至对应的光流计算模块,有利于实现光流计算的逐渐精细化。但一般而言,根据卷积神经网络的特性,大尺寸特征图先被提取,小尺寸特征图后被提取,即特征金字塔的构建顺序是从底层至顶层。
需要指出的是,由于I1和I2自身也可以视为一种特殊的特征图,因此在方式(2)中也不排除将I1和I2作为第一个光流计算模块的J1和J2。
(3)将I1经下采样后得到的图像作为J1,将I2经下采样后得到的图像作为J2。由于I1、I2经多次下采样后可以输出多个尺度不同的下采样图像,因此,对于每个光流计算模块,可以输入尺度不同的下采样图像,但同一光流模块输入的J1和J2形状相同。方式(3)针对光流计算模块的输入只需进行简单的下采样计算,其计算量较小,因此有利于提高光流计算模块的计算效率。需注意的是,卷积操作在一定程度上也可以视为下采样,但方式(3)中的下采样应理解为不包含通过卷积进行下采样,例如,可以是按照下采样倍数直接间隔地抽取原图中的像素进行下采样。
在一些实现方式中,可以分别对I1和I2进行下采样,形成I1的图像金字塔和I2的图像金字塔,图像金字塔从顶层开始的每一层对应第一神经网络从第一个光流计算模块开始的一个光流计算模块,图像金字塔同层的图像形状相同。图像金字塔的结构与特征金字塔类似,只是构成金字塔的是下采样后的原始图像(指I1或I2)而非特征图。
构建好两个图像金字塔后,从两个图像金字塔的顶层开始向下进行逐层遍历,将位于同层的两个下采样图像分别作为该层对应的光流计算模块的J1和J2。
由于图像金字塔中的下采样图像尺寸从顶层到底层逐渐增大,顶层对应尺寸较小、精度较低的下采样图像,底层对应尺寸较大、精度较高的下采样图像,从而从图像金字塔顶层开始,逐层将下采样图像输入至对应的光流计算模块,有利于实现光流计算的逐渐精细化。但一般而言,根据下采样操作的特性,大尺寸的下采样图像先产生,小尺寸的下采样图像后产生,即图像金字塔的构建顺序是从底层至顶层。
需要指出的是,由于I1和I2自身也可以视为一种特殊的下采样图像(下采样倍数为1),因此在方式(3)中也不排除将I1和I2作为第一个光流计算模块的J1和J2。
继续参照图3,在光流计算模块中,基于输入该光流计算模块的Flowmid→1对输入该光流计算模块的J1进行后向映射(backward warp),得到第一映射图像,记为即有以及对输入该光流计算模块的J2进行后向映射,得到第二映射图像,记为即有
光流计算模块中包括一个光流修正模块,光流修正模块以输入该光流计算模块的Flowmid→1以及上面的为输入,用于对Flowmid→1进行修正,并输出修正后的Flowmid→1,该修正后的Flowmid→1也是光流计算模块的输出。
下面列举光流修正模块的两种实现方式,可以理解的,光流修正模块还可以采用其他实现方式:
(1)设计一个第二神经网络,将输入光流计算模块的Flowmid→1、 输入至第二神经网络,利用第二神经网络预测出一个光流修正项Flowres,然后利用Flowres对输入光流计算模块的Flowmid→1进行修正,得到修正后的Flowmid→1。例如,在可选的方案中,将输入光流计算模块的Flowmid→1与Flowres相加(可以是直接相加,也可以是加权求和)得到修正后的Flowmid→1。其中,第二神经网络可以采用比较简单的网络结构,以便减少运算量,提高光流修正效率,从而也就是加快了光流计算模块计算光流的速度。
第二神经网络可以采用一个编解码器网络,图5示出了第二神经网络的一种可能的结构。在图5中,网络的左侧部分(R1至R4)为编码器,右侧部分(D1至D4)为解码器。其中,Ri(i=1,2,3,4)表示一个编码模块,例如可以是一个残差块(Resblock),Di(i=1,2,3,4)表示一个解码模块,例如可以是一个反卷积层。Flowmid→1、三项数据拼接后输入至R1,除R4以外的每个编码模块除了将提取到的特征输入给下一个编码模块外,还会将其输入到解码器中,与对应的解码模块的输出相加以实现不同尺度上的特征融合,R4提取到的特征则直接输出给D4,D1输出第二神经网络预测的光流修正项Flowres。对第二神经网络的中间输出(指卷积层、反卷积层的输出)可以进行批归一化,并使用Prelu作为非线性激活函数。可以理解的,图5仅为示例,第二神经网络也可以采用其他结构。
(2)直接迁移LiteFlownet网络中的光流修正结构。LiteFlownet网络是一种可用于光流计算的现有网络,但LiteFlownet网络仅能用于计算前后帧之间的光流,例如第一视频帧到第二视频帧的光流Flow1→2,不能用于计算中间帧光流Flowmid→1。
在LiteFlownet网络中的NetE部分也有在作用上类似于光流修正模块的结构,称为光流推理模块(flow inference module),该结构大致可以分为三个部分:描述子匹配单元(descriptor matching unit)、亚像素修正层(sub-pixel refinement unit)以及正则化层(regularization module)。
上述光流推理模块可以直接迁移到本申请的光流修正模块中,但需要对各部分的输入进行一定程度的改造:
其中,描述子匹配单元的输入改造为以及修正前的Flowmid→1,在描述子匹配单元中计算和之间的匹配代价容量(cost volumn),并将修正前的Flowmid→1、计算出的匹配代价容量四项信息输入至描述子匹配单元中的卷积神经网络进行计算,最终输出描述子匹配单元计算出的Flowmid→1。其中,匹配代价容量用于衡量映射图像和之间的重合度。
方式(2)相较于方式(1)而言,有效迁移了现有的光流计算成果,但由于LiteFlownet网络中包含较多的算子,因此在运算上会复杂一些。
步骤S130:利用第一中间视频帧到第一视频帧的光流对第一视频帧进行后向映射,获得第一映射视频帧,以及,利用第一中间视频帧到第二视频帧的光流对第二视频帧进行后向映射,获得第二映射视频帧。
步骤S140:根据第一映射视频帧和第二映射视频帧确定第一中间视频帧。
在一些实现方式中,可以先将和进行融合,获得第一融合视频帧,记为Ifusion1,然后再根据Flowmid→1和/或Flowmid→2对Ifusion1进行修正,并将修正得到的图像作为Isyn1,此举有利于提高Isyn1的图像质量,改善插帧效果。其中,若Flowmid→1和Flowmid→2之间存在换算关系,则可以只根据Flowmid→1或Flowmid→2对Ifusion1进行修正。
上述帧融合以及图像修正的过程可以先后执行,例如,先对和求平均得到Ifusion1,再设计一个神经网络对Ifusion1进行修正。不过,帧融合以及图像修正的过程也可以都基于一个神经网络实现,即利用该神经网络同时学习视频帧的融合以及图像修正的方法,如图2所示。
然后,根据mask1中像素值的指示将和融合为Ifusion1。比如,mask1中的每个像素值只能取0或1,弱某个位置处的像素值为0,表示Ifusion1在该位置处的像素值取在该位置处的像素值,若某个位置处的像素值为1,表示Ifusion1在该位置处的像素值取在该位置处的像素值。
最后,利用Ires1对Ifusion1进行修正,得到Isyn1。例如,在可选的方案中将Ifusion1与Ires1相加(可以是直接相加,也可以是加权求和),得到Isyn1,在直接相加时,有Isyn1=Ifusion1+Ires1。
下面举例说明第三神经网络的结构,在一些实现方式中,第三神经网络包括第二特征提取网络和编解码器网络,其工作原理为:首先第二特征提取网络分别对I1和I2进行特征提取,然后利用Flowmid→1对第二特征提取网络提取得到的特征图进行后向映射,再将映射得到的映射特征图、 以及Flowmid→1输入至编解码器网络的编码器进行特征提取,最后利用编解码器网络的解码器根据编码器提取到的特征预测出Ires1以及mask1。
图6给出了一个符合上述描述的第三神经网络的实现方式。参照图6,网络的左侧部分(C1至C3)为第二特征提取网络,右侧部分为编解码器网络,其中编解码器网络的主要结构和图5类似,不再重点阐述。在第二特征提取网络中,Ci(i=1,2,3)表示一个或多个卷积层,从而利用第二特征提取网络构建了两个3层的特征金字塔,在基于I1构建的特征金字塔中,第i(i=1,2,3)层的特征图记为F1-i(F1-1为底层,F1-3为顶层),在基于I2构建的特征金字塔中,第i层的特征图记为F2-i(F2-1为底层,F2-3为顶层),F1-i和F2-i具有相同的形状。在图6中,基于Flowmid→1,对特征图F1-i和F2-i分别做后向映射,得到的映射特征图记为warp(F1-i)和warp(F2-i)。然后将warp(F1-i)和warp(F2-i)和编码模块Ri的输出拼接后作为编码模块Ri+l的输入。可以理解的,图6仅为示例,第三神经网络也可以采用其他结构。
在上面的实现方式中,通过设计第二特征提取网络提取原图中的深层次特征(如边缘、纹理等),并将这些特征输入至编解码器网络中,有利于改善图像修正的效果。
在图2示出的方案中,通过第三神经网络预测Ires1和mask1,但另在一些实现方式中,可以进一步简化该方案:首先将Flowmid→1输入至第四神经网络,然后利用第四神经网络预测出第二融合掩膜,记为mask2,最后根据mask2中像素值的指示将和融合为直接融合为Isyn1。这些实现方式由于不需计算Ires1,所以计算过程更为简单,并且第四神经网络也可以专注于融合掩膜的学习。其中,第四神经网络的设计可以参考第三神经网络,这里不再详细说明。
在图2示出的方案中,第一中间视频帧是通过第一映射视频帧和第二映射视频帧融合产生的(可能还会进行修正),但也存在一些方案,第一中间视频帧是直接基于第一映射视频帧或第二映射视频帧产生的(可能还会进行修正)。这些方案的具体步骤如下:
方案A
步骤A1:获取第一视频帧和第二视频帧;
步骤A2:基于第一视频帧和第二视频帧,利用第一神经网络计算出第一中间视频帧到第一视频帧的光流;
步骤A3:利用第一中间视频帧到第一视频帧的光流对第一视频帧进行后向映射,获得第一映射视频帧;
步骤A4:根据第一映射视频帧确定第一中间视频帧。
对于步骤A4,在不同的实现方式中,可以直接将第一映射视频帧作为第一中间视频帧;也可以基于第一中间视频帧到第一视频帧的光流对第一映射视频帧进行修正,获得第一中间视频帧,例如,可以设计一个神经网络对第一映射视频帧进行修正,该神经网络的结构可以参考第三神经网络,但由于不涉及视频帧融合,所以该神经网络只需预测图像修正项即可。步骤A1至A4的其他内容可以参考步骤S110至步骤S140,不再详细说明。
方案B
步骤B1:获取第一视频帧和第二视频帧;
步骤B2:基于第一视频帧和第二视频帧,利用第一神经网络计算出第一中间视频帧到第二视频帧的光流;
步骤B3:利用第一中间视频帧到第二视频帧的光流对第二视频帧进行后向映射,获得第二映射视频帧;
步骤B4:根据第二映射视频帧确定第一中间视频帧。
对于步骤B4,在不同的实现方式中,可以直接将第二映射视频帧作为第一中间视频帧;也可以基于第一中间视频帧到第二视频帧的光流对第二映射视频帧进行修正,获得第一中间视频帧。步骤B1至B4的其他内容可以参考步骤S110至步骤S140,不再详细说明。
综上所述,本申请实施例提供的插帧方法在进行视频插帧时,直接基于第一视频帧和第二视频帧,利用第一神经网络计算出中间帧光流(指第一中间视频帧到第一视频帧的光流和/或第一中间视频帧到第二视频帧的光流),而无需利用第一视频帧和第二视频帧之间的光流计算中间帧光流,从而得到的中间帧光流准确性较高,在此基础上获得的第一中间视频帧图像质量较好,在运动物体的边缘也不容易产生重影。另外,上述方法步骤简单,显著提高了插帧效率,从而在应用于实时插帧、高清视频插帧等场景时,也能取得较好的效果。
需要指出,在视频插帧方法的各种可能的实现方式中,所有使用后向映射之处,也可以替换为前向映射(forward warp),同时映射所使用的光流也需要相应地调整。例如,若采用Flowmid→1对第一视频帧做后向映射,替换后应采用Flow1→mid(第一视频帧到第一中间视频帧的光流)对第一视频帧做前向映射,并且第一神经网络也应改为输出Flow1→mid;又例如,若采用Flowmid→2对第二视频帧做后向映射,替换后应采用Flow2→mid(第二视频帧到第一中间视频帧的光流)对第二视频帧做前向映射,并且第一神经网络也应改为输出Flow2→mid。
此外,还需要指出,在视频插帧方法的某些实现方式中,不止一个步骤会对视频帧进行映射(例如,步骤S130中会进行后向映射,步骤S120若采用图3的实现方式也会进行后向映射),这些步骤或者全部采用后向映射,或者全部采用前向映射,即在视频插帧流程中,映射类型应保持一致。
相较而言,采用前向后向映射需要解决多点映射到同一位置时的融合问题,并且目前的硬件对前向后向映射支持不足,因此在本申请中主要以后向后向映射为例,但并非要排除采用前向后向映射的方案。
图7示出了本申请实施例提供的模型训练方法的一种可能的流程,该方法可用于训练图1中的模型插帧方法所使用的第一神经网络模型。图8则示出了该方法中可以采用的一种网络架构,供阐述模型训练方法时参考。图7中的方法可以但不限于由图11示出的电子设备执行,关于该电子设备的结构,可以参考后文关于图11的阐述。参照图7,该方法包括:
步骤S210:获取训练样本。
训练集由多个训练样本构成,在训练过程中对每个训练样本的使用方式是类似的,因此可以以其中任意一个训练样本为例说明训练过程。每个训练样本可以包括3个视频帧,分别是第三视频帧、第四视频帧以及位于第三视频帧与第四视频帧之间的参考视频帧,这3个视频帧分别记作I3、I4和Imid,如图8所示。其中,I3和I4之间待***的视频帧为第二中间视频帧,记为Isyn2,Imid与Isyn2对应,表示Isyn2位置处真实的视频帧(即中间帧的groundtruth)。在选择训练样本时,可以从视频中取连续的3帧作为一个样本,这3帧中的第一帧作为I3,第二帧作为Imid,第三帧作为I4。
步骤S220:基于第三视频帧和第四视频帧,利用第一神经网络计算第二中间视频帧到第三视频帧的光流和第二中间视频帧到第四视频帧的光流。
该步骤可以参考步骤S120,不再详细阐述。为方便阐述,第二中间视频帧到第三视频帧的光流和第二中间视频帧到第四视频帧的光流分别记为Flowmid→3和Flowmid→4。在图8中,假定物体在I3和I4之间线性运动,则有Flowmid→3=-Flowmid→4,从而在图8中,第一神经网络只需计算出Flowmid→3即可。
步骤S230:利用第二中间视频帧到第三视频帧的光流对第三视频帧进行后向映射,获得第三映射视频帧,以及,利用第二中间视频帧到第四视频帧的光流对第四视频帧进行后向映射,获得第四映射视频帧。
步骤S240:根据第三映射视频帧和第四映射视频帧确定第二中间视频帧。
步骤S240可以参考步骤S140。在一些实现方式中,步骤S240中会采用第三神经网络进行图像修正,参照图8,该过程具体为:
首先,将Flowmid→3输入至第三神经网络,利用第三神经网络预测出第二图像修正项以及第三融合掩膜,分别记为Ires2和mask3。然后,根据mask3中像素值的指示将和融合为Ifusion2,具体方法可参考前文对mask1的描述。最后,利用Ires2对Ifusion2进行修正,得到Isyn2。
在另一些实现方式中,还可以简化上面的方案:首先将Flowmid→3输入至第四神经网络,然后利用第四神经网络预测出第四融合掩膜,记为mask4,最后根据mask4中像素值的指示将和融合为直接融合为Isyn2。
步骤S250:根据第二中间视频帧和参考视频帧计算预测损失,并根据预测损失更新第一神经网络的参数。
关于损失计算稍后再说明,首先,在本申请的方案中,第一神经网络是必然会使用的,因此在计算出预测损失后,可以利用反向传播算法更新第一神经网络的参数。其次,若步骤S240中利用了第三神经网络,则在步骤S250中,第三神经网络的参数也会一同更新,即将第三神经网络和第一神经网络一同进行训练,此举可以简化训练过程。类似地,若步骤S240中利用了第四神经网络,则在步骤S250中,第四神经网络的参数也会一同更新,即将第四神经网络和第一神经网络一同进行训练。在训练时,迭代执行步骤S210至步骤S250,在满足训练终止条件(例如,模型收敛等)时结束训练。
预测损失可以用如下公式统一表示:
Losssum=Lossl1+αLosssobel+βLossepe+γLossmultiscale-epe
其中,Losssum为总的预测损失,右侧有四项损失,分别是第一损失Lossl1,第二损失Losssobel,第三损失Lossepe以及第四损失Lossmultiscale-epe,其中第一损失是基本损失,在计算预测损失时必然会包含,其他三项损失是可选的,根据实现方式的不同,可以加入其中的一项或多项,也可以都不加入,但注意第三损失和第四损失不能同时加入。α、β、γ为加权系数,作为网络的超参数。应当理解,等式右侧还可以加入其他损失项。下面具体介绍每项损失:
第一损失根据Isyn2与Imid的差异进行计算,设置第一损失的目的是为了通过学习,使得Isyn2更接近于Imid,即使得中间帧的图像质量更好。在一些实现方式中,Isyn2与Imid的差异可以定义为二者的逐像素距离,例如,在采用L1距离时:
Lossl1=∑i∑j|Isyn2(i,j)-Imid(i,j)|
其中,i、j共同表示一个像素位置。
第二损失根据Isyn2的图像梯度与Imid的图像梯度的差异进行计算,设置第二损失的目的是为了通过学习,改善生成的Isyn2的物体边缘模糊的问题(图像梯度对应图像中的边缘信息)。其中,图像梯度可以对图像应用梯度算子进行计算,例如Sobel算子、Roberts算子、Prewitt算子等,Isyn2的图像梯度与Imid的图像梯度的差异可以定义为二者的逐像素距离。例如,在采用Sobel算子及L1距离时有:
Losssobel=∑i∑j|Sobel(Isyn2)(i,j)-Sobel(Imid)(i,j)|
其中,Sobel(·)表示利用Sobel算子计算某个图像的图像梯度。
上述第一损失和第二损失的计算,都是和Isyn2直接相关的,但Isyn2是根据Flowmid→3计算的,因此第一神经网络对光流计算的准确性也十分重要,从而,在一些实现方式中,可以设置光流标签,对第一神经网络进行有监督的训练。
例如,参照图8,预训练(指在执行图7的步骤之前就将该网络训练好)一个具有光流计算功能的第五神经网络(例如,LiteFlownet网络),将I3和Imid输入至第五神经网络,将第五神经网络计算出的参考视频帧到第三视频帧的光流(记作)作为光流标签(即中间帧光流的ground truth)。其中,计算两个视频帧之间的光流(而非两个视频帧的中间帧的光流)是现有的光流计算网络可以做到的。
第三损失根据第三神经网络计算出的Flowmid→3与的差异进行计算,设置第三损失的目的是为了通过学习,改善第三神经网络计算出的Flowmid→3的准确性,该项损失体现了从第五神经网络到第三神经网络的光流知识迁移。在一些实现方式中,Flowmid→3与的差异可以定义为二者包含的光流向量之间的距离(L2距离),用公式表示如下:
其中,Flowmid→3(i,j)、均表示在像素位置(i,j)处的光流向量。进一步的,若第一神经网络包括至少一个光流计算模块(其结构参考图3),且每个光流计算模块均输出经该模块修正后的Flowmid→3,由粗到精地对Flowmid→3进行计算。此时,可以利用光流标签对每个光流计算模块都进行监督,改善每个光流计算模块的光流计算能力。具体做法为,对每个光流计算模块,都利用其输出的光流Flowmid→3与第五神经网络计算出的光流之间的差异计算一个损失(计算方式可参考第三损失的计算),然后将这些损失累加后得到第四损失。用公式表示第四损失的计算过程如下:
相较于第三损失,第四损失同样能够实现从第五神经网络到第三神经网络的光流知识迁移,并且通过计算第四损失,有利于更精确地调整每个光流计算模块的参数,但第四损失计算上会复杂一些。
进一步的,发明人长期研究发现,第五神经网络在进行光流计算时,可能会由于边界和遮挡区域存在歧义等原因,导致在部分像素位置处计算出的光流向量不准确,对于这些光流向量,可不将其作为第一神经网络进行有监督学习的标签,而只将那些计算较准确的光流向量作为光流标签。其具体做法如下:
然后,根据与Imid的差异确定第五神经网络计算出的每个像素位置处的光流向量是否准确。例如,可以计算与Imid在每个像素处的L1距离的均值(因为视频帧可能是多通道的图像,所以在每个像素处可以求均值),若L1距离的均值大于某个阈值,则表明第五神经网络在该像素位置处计算出光流向量不准确,否则表明第五神经网络在该像素位置处计算出光流向量准确,对于那些计算准确的光流向量,不妨称为第一有效光流向量,实验表明,第一有效光流向量占第五神经网络计算出的光流向量中的绝大多数,因为第五神经网络相当于在已知中间帧的情况下计算中间帧光流,其准确性还是可以保证的。
最后,根据第五神经网络计算出的光流中的第一有效光流向量计算第三损失或第四损失:
在计算第三损失时,根据第五神经网络计算出的中的第一有效光流向量与第一神经网络计算出的Flowmid→3中的第二有效光流向量的差异进行计算;其中,第二有效光流向量是指第一神经网络计算出的Flowmid→3中位于第一有效光流向量对应的像素位置处的光流向量。例如,第五神经网络计算出的中位于(1,1)处的光流向量是一个第一有效光流向量,则第一神经网络计算出的Flowmid→3中位于(1,1)处的光流向量是一个第二有效光流向量。
在计算第四损失时,根据第五神经网络计算出的中的第一有效光流向量与第一神经网络的每个光流计算模块输出的Flowmid→3中的第三有效光流向量的差异进行计算(分别计算差异后累加)。其中,第三有效光流向量是指每个光流计算模块输出的Flowmid→3中位于第一有效光流向量对应的像素位置处的光流向量。
前文提到,在一些实现方式中,第一神经网络中的光流计算模块是基于LiteFlownet网络进行结构迁移得到的(即在步骤S220中,每个光流计算模块均利用从LiteFlownet网络中迁移过来的描述子匹配单元、亚像素修正层以及正则化层对输入该光流计算模块的光流进行修正)。对于这些实现方式,在训练第一神经网络时,可以直接载入LiteFlownet网络预训练得到的参数作为其参数的初始值,并在此基础上进行参数微调(finetune),此种迁移学习的方式不仅可以加快第一神经网络的收敛速度,还有利于改善其性能。其中,LiteFlownet网络进行预训练,可以但不限于采用FlyingChairs数据集。
在图8示出的方案中,第二中间视频帧是通过第三映射视频帧和第四映射视频帧融合产生的(可能还会进行修正),但也存在一些方案,第二中间视频帧是直接基于第三映射视频帧或第四映射视频帧产生的(可能还会进行修正)。这些方案的具体步骤如下:
方案C
步骤C1:获取训练样本,训练样本包括第三视频帧、第四视频帧和参考视频帧;
步骤C2:基于第三视频帧和第四视频帧,利用第一神经网络计算出第二中间视频帧到第三视频帧的光流;
步骤C3:利用第二中间视频帧到第三视频帧的光流对第三视频帧进行后向映射,获得第三映射视频帧;
步骤C4:根据第三映射视频帧确定第二中间视频帧;
步骤C5:根据第二中间视频帧和参考视频帧计算预测损失,并根据预测损失更新第一神经网络的参数。
其中,若步骤C4中使用了神经网络(其结构可参考第三神经网络)对第三映射视频帧进行修正,则在步骤C5中该神经网络可以和第一神经网络一同进行参数更新。步骤C1至C5的其他内容可以参考步骤S210至步骤S250,不再详细说明。
方案D
步骤D1:获取训练样本,训练样本包括第三视频帧、第四视频帧和参考视频帧;
步骤D2:基于第三视频帧和第四视频帧,利用第一神经网络计算出第二中间视频帧到第四视频帧的光流;
步骤D3:利用第二中间视频帧到第四视频帧的光流对第四视频帧进行后向映射,获得第四映射视频帧;
步骤D4:根据第四映射视频帧确定第二中间视频帧;
步骤D5:根据第二中间视频帧和参考视频帧计算预测损失,并根据预测损失更新第一神经网络的参数。
其中,若步骤D4中使用了神经网络(其结构可参考第三神经网络)对第四映射视频帧进行修正,则在步骤D5中该神经网络可以和第一神经网络一同进行参数更新。步骤D1至D5的其他内容可以参考步骤S210至步骤S250,不再详细说明。
需要指出,若设置有第五神经网络提供光流标签,则第五神经网络的计算结果应当与第一神经网络的计算结果保持对应。比如,若第一神经网络计算的是第二中间视频帧到第三视频帧的光流(方案C),则第五神经网络应基于第三视频帧和参考视频帧计算二者之间的光流;若第一神经网络计算的是第二中间视频帧到第四视频帧的光流(方案D),则第五神经网络应基于第四视频帧和参考视频帧计算二者之间的光流;若第一神经网络计算的是第二中间视频帧到第三视频帧的光流以及第二中间视频帧到第四视频帧的光流(图7中的方案),则第五神经网络应基于第三视频帧和参考视频帧计算二者之间的光流,以及,基于第四视频帧和参考视频帧计算二者之间的光流。
需要指出,在模型训练方法的各种可能的实现方式中,所有使用后向映射之处,也可以替换为前向映射,同时映射所使用的光流也需要相应地调整。例如,若采用Flowmid→3对第三视频帧做后向映射,替换后应采用Flow3→mid(第三视频帧到第二中间视频帧的光流)对第三视频帧做前向映射,并且第一神经网络也应改为输出Flow3→mid;又例如,若采用Flowmid→4对第四视频帧做后向映射,替换后应采用Flow4→mid(第四视频帧到第二中间视频帧的光流)对第四视频帧做前向映射,并且第一神经网络也应改为输出Flow4→mid。
此外,还需要指出,在模型训练方法的某些实现方式中,不止一个步骤会对视频帧进行映射,这些步骤或者全部采用后向映射,或者全部采用前向映射,即在模型训练流程中,映射类型应保持一致。
图9示出了本申请实施例提供的视频插帧装置300的功能模块图。参照图9,视频插帧装置300包括:
第一视频帧获取单元310,用于获取第一视频帧和第二视频帧;
第一光流计算单元320,用于基于所述第一视频帧和所述第二视频帧,利用第一神经网络计算出第一中间视频帧到所述第一视频帧的光流和/或第一中间视频帧到所述第二视频帧的光流;其中,所述第一中间视频帧为待***所述第一视频帧和所述第二视频帧之间的视频帧;
第一后向映射单元330,用于利用所述第一中间视频帧到所述第一视频帧的光流对所述第一视频帧进行后向映射,获得第一映射视频帧,和/或,利用所述第一中间视频帧到所述第二视频帧的光流对所述第二视频帧进行后向映射,获得第二映射视频帧;
第一中间帧确定单元340,用于根据所述第一映射视频帧和/或所述第二映射视频帧确定所述第一中间视频帧。
在视频插帧装置300的一种实现方式中,所述第一神经网络包括依次连接的至少一个光流计算模块,第一光流计算单元320基于所述第一视频帧和所述第二视频帧,利用第一神经网络计算出第一中间视频帧到所述第一视频帧的光流,包括:根据所述第一视频帧确定输入每个光流计算模块的第一图像,以及,根据所述第二视频帧确定输入每个光流计算模块的第二图像;利用每个光流计算模块,基于输入该光流计算模块的光流分别对输入该光流计算模块的第一图像和第二图像进行后向映射,基于映射得到的第一映射图像和第二映射图像对输入该光流计算模块的光流进行修正,并输出修正后的光流;其中,输入第一个光流计算模块的光流为所述第一视频帧与所述第一中间视频帧之间的预设光流,输入其他光流计算模块的光流为上一个光流计算模块输出的光流,最后一个光流计算模块输出的光流为所述第一神经网络计算出的所述第一中间视频帧到所述第一视频帧的光流。
在视频插帧装置300的一种实现方式中,第一光流计算单元320根据所述第一视频帧确定输入每个光流计算模块的第一图像,以及,根据所述第二视频帧确定输入每个光流计算模块的第二图像,包括:将所述第一视频帧作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧作为输入每个光流计算模块的第二图像;或者,将所述第一视频帧下采样后得到的图像作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧下采样后得到的图像作为输入每个光流计算模块的第二图像;其中,同一光流计算模块输入的两个下采样图像的形状相同;或者,将所述第一视频帧经卷积层处理后输出的特征图作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧经卷积层处理后输出的特征图作为输入每个光流计算模块的第二图像;其中,同一光流计算模块输入的两个特征图的形状相同。
在视频插帧装置300的一种实现方式中,第一光流计算单元320将所述第一视频帧下采样后得到的图像作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧下采样后得到的图像作为输入每个光流计算模块的第二图像,包括:分别对所述第一视频帧和所述第二视频帧进行下采样,形成所述第一视频帧的图像金字塔和所述第二视频帧的图像金字塔,所述图像金字塔从顶层开始的每一层对应所述第一神经网络从第一个光流计算模块开始的一个光流计算模块;从两个图像金字塔的顶层开始向下进行逐层遍历,将位于同层的两个下采样图像分别作为输入该层对应的光流计算模块的第一图像和第二图像。
在视频插帧装置300的一种实现方式中,第一光流计算单元320将所述第一视频帧经卷积层处理后输出的特征图作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧经卷积层处理后输出的特征图作为输入每个光流计算模块的第二图像,包括:利用第一特征提取网络分别对所述第一视频帧和所述第二视频帧进行特征提取,形成所述第一视频帧的特征金字塔和所述第二视频帧的特征金字塔,所述特征金字塔从顶层开始的每一层对应所述第一神经网络从第一个光流计算模块开始的一个光流计算模块;其中,所述第一特征提取网络为卷积神经网络;从两个特征金字塔的顶层开始向下进行逐层遍历,将位于同层的两个特征图分别作为输入该层对应的光流计算模块的第一图像和第二图像。
在视频插帧装置300的一种实现方式中,第一光流计算单元320基于映射得到的第一映射图像和第二映射图像对输入该光流计算模块的光流进行修正,并输出修正后的光流,包括:基于映射得到的第一映射图像、第二映射图像以及输入该光流计算模块的光流,利用第二神经网络预测出光流修正项;利用所述光流修正项对输入该光流计算模块的光流进行修正,并输出修正后的光流。
在视频插帧装置300的一种实现方式中,第一光流计算单元320基于映射得到的第一映射图像和第二映射图像对输入该光流计算模块的光流进行修正,并输出修正后的光流,包括:基于映射得到的第一映射图像和第二映射图像,利用LiteFlownet网络中的描述子匹配单元、亚像素修正层以及正则化层对输入该光流计算模块的光流进行修正,并输出修正后的光流。
在视频插帧装置300的一种实现方式中,第一光流计算单元320基于所述第一视频帧和所述第二视频帧,利用第一神经网络计算出第一中间视频帧到所述第一视频帧的光流和第一中间视频帧到所述第二视频帧的光流,包括:利用第一神经网络计算出第一中间视频帧到所述第一视频帧的光流,并根据所述第一中间视频帧到所述第一视频帧的光流计算所述第一中间视频帧到所述第二视频帧的光流;或者,利用第一神经网络计算出第一中间视频帧到所述第二视频帧的光流,并根据所述第一中间视频帧到所述第二视频帧的光流计算所述第一中间视频帧到所述第一视频帧的光流。
在视频插帧装置300的一种实现方式中,第一光流计算单元320根据所述第一中间视频帧到所述第一视频帧的光流计算所述第一中间视频帧到所述第二视频帧的光流,包括:将所述第一中间视频帧到所述第一视频帧的光流取反后作为所述第一中间视频帧到所述第二视频帧的光流;第一光流计算单元320根据所述第一中间视频帧到所述第二视频帧的光流计算所述第一中间视频帧到所述第一视频帧的光流,包括:将所述第一中间视频帧到所述第二视频帧的光流取反后作为所述第一中间视频帧到所述第一视频帧的光流。
在视频插帧装置300的一种实现方式中,第一中间帧确定单元340根据所述第一映射视频帧和/或所述第二映射视频帧确定所述第一中间视频帧,包括:基于所述第一中间视频帧到所述第一视频帧的光流对所述第一映射视频帧进行修正,获得所述第一中间视频帧;或者,基于所述第一中间视频帧到所述第二视频帧的光流对所述第二映射视频帧进行修正,获得所述第一中间视频帧;或者,基于所述第一中间视频帧到所述第一视频帧的光流和/或所述第一中间视频帧到所述第二视频帧的光流,对所述第一映射视频帧和所述第二映射视频帧的融合后形成的第一融合视频帧进行修正,获得所述第一中间视频帧。
在视频插帧装置300的一种实现方式中,第一中间帧确定单元340基于所述第一中间视频帧到所述第一视频帧的光流,对所述第一映射视频帧和所述第二映射视频帧的融合后形成的第一融合视频帧进行修正,获得所述第一中间视频帧,包括:基于所述第一映射视频帧、所述第二映射视频帧以及所述第一中间视频帧到所述第一视频帧的光流,利用第三神经网络预测出第一图像修正项以及第一融合掩膜;根据所述第一融合掩膜中像素值的指示将所述第一映射视频帧和所述第二映射视频帧融合为所述第一融合视频帧;利用所述第一图像修正项对所述第一融合视频帧进行修正,获得所述第一中间视频帧。
在视频插帧装置300的一种实现方式中,所述第三神经网络包括第二特征提取网络以及编解码器网络,所述编解码器网络包括编码器以及解码器,第一中间帧确定单元340基于所述第一映射视频帧、所述第二映射视频帧以及所述第一中间视频帧到所述第一视频帧的光流,利用第三神经网络预测出第一图像修正项以及第一融合掩膜,包括:利用所述第二特征提取网络分别对所述第一视频帧和所述第一视频帧进行特征提取;利用所述第一中间视频帧到所述第一视频帧的光流对所述第二特征提取网络提取得到的特征图进行后向映射;将映射得到的映射特征图、所述第一映射视频帧、所述第二映射视频帧以及所述第一中间视频帧到所述第一视频帧的光流输入至所述编码器进行特征提取;利用所述解码器根据所述编码器提取到的特征预测出第一图像修正项以及第一融合掩膜。
在视频插帧装置300的一种实现方式中,第一中间帧确定单元340根据所述第一映射视频帧和所述第二映射视频帧确定所述第一中间视频帧,包括:基于所述第一映射视频帧、所述第二映射视频帧以及所述第一中间视频帧到所述第一视频帧的光流,利用第四神经网络预测出第二融合掩膜;根据所述第二融合掩膜中像素值的指示将所述第一映射视频帧和所述第二映射视频帧融合为所述第一中间视频帧。
本申请实施例提供的模型训练装置300,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。
图10示出了本申请实施例提供的模型训练装置400的功能模块图。参照图10,模型训练装置400包括:
第二视频帧获取单元410,用于获取训练样本,所述训练样本包括第三视频帧、第四视频帧以及位于所述第三视频帧与所述第四视频帧之间的参考视频帧;
第二光流计算单元420,用于基于所述第三视频帧和所述第四视频帧,利用第一神经网络计算第二中间视频帧到所述第三视频帧的光流和/或第二中间视频帧到所述第四视频帧的光流;其中,所述第二中间视频帧为待***所述第三视频帧和所述第四视频帧之间的视频帧;
第二后向映射单元430,用于利用所述第二中间视频帧到所述第三视频帧的光流对所述第三视频帧进行后向映射,获得第三映射视频帧,和/或,利用所述第二中间视频帧到所述第四视频帧的光流对所述第四视频帧进行后向映射,获得第四映射视频帧;
第二中间帧确定单元440,用于根据所述第三映射视频帧和/或所述第四映射视频帧确定所述第二中间视频帧;
参数更新单元450,用于根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络的参数。
在模型训练装置400的一种实现方式中,参数更新单元450根据所述第二中间视频帧和所述参考视频帧计算预测损失,包括:根据所述第二中间视频帧与所述参考视频帧的差异计算第一损失;分别计算所述第二中间视频帧的图像梯度以及所述参考视频帧的图像梯度,并根据所述第二中间视频帧的图像梯度与所述参考视频帧的图像梯度的差异计算第二损失;根据所述第一损失以及所述第二损失计算所述预测损失。
在模型训练装置400的一种实现方式中,参数更新单元450根据所述第二中间视频帧和所述参考视频帧计算预测损失,包括:根据所述第二中间视频帧与所述参考视频帧的差异计算第一损失;利用预训练的第五神经网络计算出所述参考视频帧到所述第三视频帧的光流和/或所述参考视频帧到所述第四视频帧的光流;根据所述第一神经网络计算出的光流与所述第五神经网络计算出的对应光流之间的差异计算第三损失;根据所述第一损失以及所述第三损失计算所述预测损失。
在模型训练装置400的一种实现方式中,所述第一神经网络包括依次连接的至少一个光流计算模块,每个光流计算模块均输出经该模块修正后的所述第二中间视频帧到所述第三视频帧的光流;参数更新单元450根据所述第二中间视频帧和所述参考视频帧计算预测损失,包括:根据所述第二中间视频帧与所述参考视频帧的差异计算第一损失;利用预训练的第五神经网络计算出所述参考视频帧到所述第三视频帧的光流;根据每个光流计算模块输出的光流与所述第五神经网络计算出的光流之间的差异计算第四损失;根据所述第一损失以及所述第四损失计算所述预测损失。
在模型训练装置400的一种实现方式中,参数更新单元450根据所述第一神经网络计算出的光流与所述第五神经网络计算出的对应光流之间的差异计算第三损失,包括:利用所述第五神经网络计算出的光流对所述第三视频帧进行后向映射,获得第五映射视频帧;根据所述第五映射视频帧与所述参考视频帧的差异确定所述第五神经网络计算出的每个像素位置处的光流向量是否准确;根据所述第五神经网络计算出光流中的第一有效光流向量与所述第一神经网络计算出的对应光流中的第二有效光流向量的差异计算第三损失;其中,所述第一有效光流向量是指所述第五神经网络计算准确的光流向量,所述第二有效光流向量是指所述第一神经网络计算出的对应光流中位于所述第一有效光流向量对应的像素位置处的光流向量。
在模型训练装置400的一种实现方式中,参数更新单元450根据每个光流计算模块输出的光流与所述第五神经网络计算出的光流之间的差异计算第四损失,包括:利用所述第五神经网络计算出的光流对所述第三视频帧进行后向映射,获得第五映射视频帧;根据所述第五映射视频帧与所述参考视频帧的差异确定所述第五神经网络计算出的每个像素位置处的光流向量是否准确;根据所述第五神经网络计算出光流中的第一有效光流向量与每个光流计算模块输出的光流中的第三有效光流向量的差异计算第四损失;其中,所述第一有效光流向量是指所述第五神经网络计算准确的光流向量,所述第三有效光流向量是指每个光流计算模块输出的光流中位于所述第一有效光流向量对应的像素位置处的光流向量。
在模型训练装置400的一种实现方式中,所述第一神经网络包括依次连接的至少一个光流计算模块,每个光流计算模块均利用LiteFlownet网络中的描述子匹配单元、亚像素修正层以及正则化层对输入该光流计算模块的光流进行修正,所述装置还包括:参数初始化单元,用于在第二光流计算单元420基于所述第三视频帧和所述第四视频帧,利用第一神经网络计算第二中间视频帧到所述第三视频帧的光流和/或第二中间视频帧到所述第四视频帧的光流之前,利用LiteFlownet网络预训练得到的参数对所述第一神经网络的参数进行初始化。
在模型训练装置400的一种实现方式中,第二中间帧确定单元440根据所述第三映射视频帧和所述第四映射视频帧确定所述第二中间视频帧,包括:基于所述第三映射视频帧、所述第四映射视频帧以及所述第二中间视频帧到所述第三视频帧的光流,利用第三神经网络预测第二图像修正项以及第三融合掩膜;根据所述第三融合掩膜中像素值的指示将所述第三映射视频帧和所述第四映射视频帧融合为所述第二融合视频帧;利用所述第二图像修正项对所述第二融合视频帧进行修正,获得所述第二中间视频帧;参数更新单元450根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络的参数,包括:根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络以及所述第三神经网络的参数。
在模型训练装置400的一种实现方式中,第二中间帧确定单元440根据所述第三映射视频帧和所述第四映射视频帧确定所述第二中间视频帧,包括:基于所述第三映射视频帧、所述第四映射视频帧以及所述第二中间视频帧到所述第三视频帧的光流,利用第四神经网络预测第二图像修正项以及第四融合掩膜;根据所述第四融合掩膜中像素值的指示将所述第三映射视频帧和所述第四映射视频帧融合为所述第二中间视频帧;参数更新单元450根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络的参数,包括:根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络以及所述第四神经网络的参数。
本申请实施例提供的模型训练装置400,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。
本申请实施例还提供一种视频插帧装置,包括:
第三视频帧获取单元,用于获取第一视频帧和第二视频帧;
第三光流计算单元,用于基于所述第一视频帧和所述第二视频帧,利用第一神经网络估计计算出所述第一视频帧到第一中间视频帧的光流和/或所述第二视频帧到第一中间视频帧的光流;其中,所述第一中间视频帧为待***所述第一视频帧和所述第二视频帧之间的视频帧;
第一前向映射单元,用于利用所述第一视频帧到所述第一中间视频帧的光流对所述第一视频帧进行前向映射,获得第一映射视频帧,和/或,利用所述第二视频帧到所述第一中间视频帧的光流对所述第二视频帧进行前向映射,获得第二映射视频帧;
第三中间帧确定单元,用于根据所述第一映射视频帧和/或所述第二映射视频帧确定所述第一中间视频帧。
上述视频插帧装置和视频插帧装置300比较类似,其区别主要在于采用前向映射替代了视频插帧装置300中的后向映射,该视频插帧装置的各种可能的实现方式也可以参考视频插帧装置300,不再重复阐述。
本申请实施例还提供一种模型训练装置,包括:
第四视频帧获取单元,用于获取训练样本,所述训练样本包括第三视频帧、第四视频帧以及位于所述第三视频帧与所述第四视频帧之间的参考视频帧;
第四光流计算单元,用于基于所述第三视频帧和所述第四视频帧,利用第一神经网络计算所述第三视频帧到第二中间视频帧的光流和/或所述第四视频帧到第二中间视频帧的光流;其中,所述第二中间视频帧为待***所述第三视频帧和所述第四视频帧之间的视频帧;
第二前向映射单元,用于利用第三视频帧到所述第二中间视频帧的光流对所述第三视频帧进行前向映射,获得第三映射视频帧,和/或,利用第四视频帧到所述第二中间视频帧的光流对所述第四视频帧进行前向映射,获得第四映射视频帧;
第三中间帧确定单元,用于根据所述第三映射视频帧和/或所述第四映射视频帧确定所述第二中间视频帧;
第二参数更新单元,用于根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络的参数。
上述模型训练装置和模型训练装置400比较类似,其区别主要在于采用前向映射替代了模型训练装置400中的后向映射,该模型训练装置的各种可能的实现方式也可以参考模型训练装置400,不再重复阐述。
图11示出了本申请实施例提供的电子设备500的一种可能的结构。参照图11,电子设备500包括:处理器510、存储器520以及通信接口530,这些组件通过通信总线540和/或其他形式的连接机构(未示出)互连并相互通讯。
其中,存储器520包括一个或多个(图中仅示出一个),其可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),电可擦除可编程只读存储器(Electric Erasable Programmable Read-Only Memory,简称EEPROM)等。处理器510以及其他可能的组件可对存储器520进行访问,读和/或写其中的数据。
处理器510包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器510可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称CPU)、微控制单元(Micro Controller Unit,简称MCU)、网络处理器(Network Processor,简称NP)或者其他常规处理器;还可以是专用处理器,包括图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-network ProcessingUnit,简称NPU)、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuits,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。并且,在处理器510为多个时,其中的一部分可以是通用处理器,另一部分可以是专用处理器。
通信接口530包括一个或多个(图中仅示出一个),可以用于和其他设备进行直接或间接地通信,以便进行数据的交互。通信接口530可以包括进行有线和/或无线通信的接口。
在存储器520中可以存储一个或多个计算机程序指令,处理器510可以读取并运行这些计算机程序指令,以实现本申请实施例提供的视频插帧方法和/或模型训练方法。
可以理解,图11所示的结构仅为示意,电子设备500还可以包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。图11中所示的各组件可以采用硬件、软件或其组合实现。电子设备500可能是实体设备,例如PC机、笔记本电脑、平板电脑、手机、服务器、嵌入式设备等,也可能是虚拟设备,例如虚拟机、虚拟化容器等。并且,电子设备500也不限于单台设备,也可以是多台设备的组合或者大量设备构成的集群。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机的处理器读取并运行时,执行本申请实施例提供的视频插帧方法。例如,计算机可读存储介质可以实现为图11中电子设备500中的存储器520。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (30)
1.一种视频插帧方法,其特征在于,包括:
获取第一视频帧和第二视频帧;
基于所述第一视频帧和所述第二视频帧,利用第一神经网络计算出第一中间视频帧到所述第一视频帧的光流和/或第一中间视频帧到所述第二视频帧的光流;其中,所述第一中间视频帧为待***所述第一视频帧和所述第二视频帧之间的视频帧;
利用所述第一中间视频帧到所述第一视频帧的光流对所述第一视频帧进行后向映射,获得第一映射视频帧,和/或,利用所述第一中间视频帧到所述第二视频帧的光流对所述第二视频帧进行后向映射,获得第二映射视频帧;
根据所述第一映射视频帧和/或所述第二映射视频帧确定所述第一中间视频帧。
2.根据权利要求1所述的视频插帧方法,其特征在于,所述第一神经网络包括依次连接的至少一个光流计算模块,基于所述第一视频帧和所述第二视频帧,利用第一神经网络计算出第一中间视频帧到所述第一视频帧的光流,包括:
根据所述第一视频帧确定输入每个光流计算模块的第一图像,以及,根据所述第二视频帧确定输入每个光流计算模块的第二图像;
利用每个光流计算模块,基于输入该光流计算模块的光流分别对输入该光流计算模块的第一图像和第二图像进行后向映射,基于映射得到的第一映射图像和第二映射图像对输入该光流计算模块的光流进行修正,并输出修正后的光流;
其中,输入第一个光流计算模块的光流为所述第一视频帧与所述第一中间视频帧之间的预设光流,输入其他光流计算模块的光流为上一个光流计算模块输出的光流,最后一个光流计算模块输出的光流为所述第一神经网络计算出的所述第一中间视频帧到所述第一视频帧的光流。
3.根据权利要求2所述的视频插帧方法,其特征在于,所述根据所述第一视频帧确定输入每个光流计算模块的第一图像,以及,根据所述第二视频帧确定输入每个光流计算模块的第二图像,包括:
将所述第一视频帧作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧作为输入每个光流计算模块的第二图像;或者,
将所述第一视频帧下采样后得到的图像作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧下采样后得到的图像作为输入每个光流计算模块的第二图像;其中,同一光流计算模块输入的两个下采样图像的形状相同;或者,
将所述第一视频帧经卷积层处理后输出的特征图作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧经卷积层处理后输出的特征图作为输入每个光流计算模块的第二图像;其中,同一光流计算模块输入的两个特征图的形状相同。
4.根据权利要求3所述的视频插帧方法,其特征在于,所述将所述第一视频帧下采样后得到的图像作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧下采样后得到的图像作为输入每个光流计算模块的第二图像,包括:
分别对所述第一视频帧和所述第二视频帧进行下采样,形成所述第一视频帧的图像金字塔和所述第二视频帧的图像金字塔,所述图像金字塔从顶层开始的每一层对应所述第一神经网络从第一个光流计算模块开始的一个光流计算模块;
从两个图像金字塔的顶层开始向下进行逐层遍历,将位于同层的两个下采样图像分别作为输入该层对应的光流计算模块的第一图像和第二图像。
5.根据权利要求3所述的视频插帧方法,其特征在于,所述将所述第一视频帧经卷积层处理后输出的特征图作为输入每个光流计算模块的第一图像,以及,将所述第二视频帧经卷积层处理后输出的特征图作为输入每个光流计算模块的第二图像,包括:
利用第一特征提取网络分别对所述第一视频帧和所述第二视频帧进行特征提取,形成所述第一视频帧的特征金字塔和所述第二视频帧的特征金字塔,所述特征金字塔从顶层开始的每一层对应所述第一神经网络从第一个光流计算模块开始的一个光流计算模块;其中,所述第一特征提取网络为卷积神经网络;
从两个特征金字塔的顶层开始向下进行逐层遍历,将位于同层的两个特征图分别作为输入该层对应的光流计算模块的第一图像和第二图像。
6.根据权利要求2-5中任一项所述的视频插帧方法,其特征在于,所述基于映射得到的第一映射图像和第二映射图像对输入该光流计算模块的光流进行修正,并输出修正后的光流,包括:
基于映射得到的第一映射图像、第二映射图像以及输入该光流计算模块的光流,利用第二神经网络预测出光流修正项;
利用所述光流修正项对输入该光流计算模块的光流进行修正,并输出修正后的光流。
7.根据权利要求2-5中任一项所述的视频插帧方法,其特征在于,所述基于映射得到的第一映射图像和第二映射图像对输入该光流计算模块的光流进行修正,并输出修正后的光流,包括:
基于映射得到的第一映射图像和第二映射图像,利用LiteFlownet网络中的描述子匹配单元、亚像素修正层以及正则化层对输入该光流计算模块的光流进行修正,并输出修正后的光流。
8.根据权利要求1-7中任一项所述的视频插帧方法,其特征在于,所述基于所述第一视频帧和所述第二视频帧,利用第一神经网络计算出第一中间视频帧到所述第一视频帧的光流和第一中间视频帧到所述第二视频帧的光流,包括:
利用第一神经网络计算出第一中间视频帧到所述第一视频帧的光流,并根据所述第一中间视频帧到所述第一视频帧的光流计算所述第一中间视频帧到所述第二视频帧的光流;或者,
利用第一神经网络计算出第一中间视频帧到所述第二视频帧的光流,并根据所述第一中间视频帧到所述第二视频帧的光流计算所述第一中间视频帧到所述第一视频帧的光流。
9.根据权利要求8所述的视频插帧方法,其特征在于,所述根据所述第一中间视频帧到所述第一视频帧的光流计算所述第一中间视频帧到所述第二视频帧的光流,包括:
将所述第一中间视频帧到所述第一视频帧的光流取反后作为所述第一中间视频帧到所述第二视频帧的光流;
所述根据所述第一中间视频帧到所述第二视频帧的光流计算所述第一中间视频帧到所述第一视频帧的光流,包括:
将所述第一中间视频帧到所述第二视频帧的光流取反后作为所述第一中间视频帧到所述第一视频帧的光流。
10.根据权利要求1-9中任一项所述的视频插帧方法,其特征在于,所述根据所述第一映射视频帧和/或所述第二映射视频帧确定所述第一中间视频帧,包括:
基于所述第一中间视频帧到所述第一视频帧的光流对所述第一映射视频帧进行修正,获得所述第一中间视频帧;或者,
基于所述第一中间视频帧到所述第二视频帧的光流对所述第二映射视频帧进行修正,获得所述第一中间视频帧;或者,
基于所述第一中间视频帧到所述第一视频帧的光流和/或所述第一中间视频帧到所述第二视频帧的光流,对所述第一映射视频帧和所述第二映射视频帧的融合后形成的第一融合视频帧进行修正,获得所述第一中间视频帧。
11.根据权利要求10所述的视频插帧方法,其特征在于,基于所述第一中间视频帧到所述第一视频帧的光流,对所述第一映射视频帧和所述第二映射视频帧的融合后形成的第一融合视频帧进行修正,获得所述第一中间视频帧,包括:
基于所述第一映射视频帧、所述第二映射视频帧以及所述第一中间视频帧到所述第一视频帧的光流,利用第三神经网络预测出第一图像修正项以及第一融合掩膜;
根据所述第一融合掩膜中像素值的指示将所述第一映射视频帧和所述第二映射视频帧融合为所述第一融合视频帧;
利用所述第一图像修正项对所述第一融合视频帧进行修正,获得所述第一中间视频帧。
12.根据权利要求11所述的视频插帧方法,其特征在于,所述第三神经网络包括第二特征提取网络以及编解码器网络,所述编解码器网络包括编码器以及解码器,所述基于所述第一映射视频帧、所述第二映射视频帧以及所述第一中间视频帧到所述第一视频帧的光流,利用第三神经网络预测出第一图像修正项以及第一融合掩膜,包括:
利用所述第二特征提取网络分别对所述第一视频帧和所述第一视频帧进行特征提取;
利用所述第一中间视频帧到所述第一视频帧的光流对所述第二特征提取网络提取得到的特征图进行后向映射;
将映射得到的映射特征图、所述第一映射视频帧、所述第二映射视频帧以及所述第一中间视频帧到所述第一视频帧的光流输入至所述编码器进行特征提取;
利用所述解码器根据所述编码器提取到的特征预测出第一图像修正项以及第一融合掩膜。
13.根据权利要求1-9中任一项所述的视频插帧方法,其特征在于,根据所述第一映射视频帧和所述第二映射视频帧确定所述第一中间视频帧,包括:
基于所述第一映射视频帧、所述第二映射视频帧以及所述第一中间视频帧到所述第一视频帧的光流,利用第四神经网络预测出第二融合掩膜;
根据所述第二融合掩膜中像素值的指示将所述第一映射视频帧和所述第二映射视频帧融合为所述第一中间视频帧。
14.一种模型训练方法,其特征在于,包括:
获取训练样本,所述训练样本包括第三视频帧、第四视频帧以及位于所述第三视频帧与所述第四视频帧之间的参考视频帧;
基于所述第三视频帧和所述第四视频帧,利用第一神经网络计算第二中间视频帧到所述第三视频帧的光流和/或第二中间视频帧到所述第四视频帧的光流;其中,所述第二中间视频帧为待***所述第三视频帧和所述第四视频帧之间的视频帧;
利用所述第二中间视频帧到所述第三视频帧的光流对所述第三视频帧进行后向映射,获得第三映射视频帧,和/或,利用所述第二中间视频帧到所述第四视频帧的光流对所述第四视频帧进行后向映射,获得第四映射视频帧;
根据所述第三映射视频帧和/或所述第四映射视频帧确定所述第二中间视频帧;
根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络的参数。
15.根据权利要求14所述的模型训练方法,其特征在于,所述根据所述第二中间视频帧和所述参考视频帧计算预测损失,包括:
根据所述第二中间视频帧与所述参考视频帧的差异计算第一损失;
分别计算所述第二中间视频帧的图像梯度以及所述参考视频帧的图像梯度,并根据所述第二中间视频帧的图像梯度与所述参考视频帧的图像梯度的差异计算第二损失;
根据所述第一损失以及所述第二损失计算所述预测损失。
16.根据权利要求14所述的模型训练方法,其特征在于,所述根据所述第二中间视频帧和所述参考视频帧计算预测损失,包括:
根据所述第二中间视频帧与所述参考视频帧的差异计算第一损失;
利用预训练的第五神经网络计算出所述参考视频帧到所述第三视频帧的光流和/或所述参考视频帧到所述第四视频帧的光流;
根据所述第一神经网络计算出的光流与所述第五神经网络计算出的对应光流之间的差异计算第三损失;
根据所述第一损失以及所述第三损失计算所述预测损失。
17.根据权利要求14或15所述的模型训练方法,其特征在于,所述第一神经网络包括依次连接的至少一个光流计算模块,每个光流计算模块均输出经该模块修正后的所述第二中间视频帧到所述第三视频帧的光流;
所述根据所述第二中间视频帧和所述参考视频帧计算预测损失,包括:
根据所述第二中间视频帧与所述参考视频帧的差异计算第一损失;
利用预训练的第五神经网络计算出所述参考视频帧到所述第三视频帧的光流;
根据每个光流计算模块输出的光流与所述第五神经网络计算出的光流之间的差异计算第四损失;
根据所述第一损失以及所述第四损失计算所述预测损失。
18.根据权利要求根据权利要求16所述的模型训练方法,其特征在于,所述根据所述第一神经网络计算出的光流与所述第五神经网络计算出的对应光流之间的差异计算第三损失,包括:
利用所述第五神经网络计算出的光流对所述第三视频帧进行后向映射,获得第五映射视频帧;
根据所述第五映射视频帧与所述参考视频帧的差异确定所述第五神经网络计算出的每个像素位置处的光流向量是否准确;
根据所述第五神经网络计算出光流中的第一有效光流向量与所述第一神经网络计算出的对应光流中的第二有效光流向量的差异计算第三损失;其中,所述第一有效光流向量是指所述第五神经网络计算准确的光流向量,所述第二有效光流向量是指所述第一神经网络计算出的对应光流中位于所述第一有效光流向量对应的像素位置处的光流向量。
19.根据权利要求根据权利要求17所述的模型训练方法,其特征在于,所述根据每个光流计算模块输出的光流与所述第五神经网络计算出的光流之间的差异计算第四损失,包括:
利用所述第五神经网络计算出的光流对所述第三视频帧进行后向映射,获得第五映射视频帧;
根据所述第五映射视频帧与所述参考视频帧的差异确定所述第五神经网络计算出的每个像素位置处的光流向量是否准确;
根据所述第五神经网络计算出光流中的第一有效光流向量与每个光流计算模块输出的光流中的第三有效光流向量的差异计算第四损失;其中,所述第一有效光流向量是指所述第五神经网络计算准确的光流向量,所述第三有效光流向量是指每个光流计算模块输出的光流中位于所述第一有效光流向量对应的像素位置处的光流向量。
20.根据权利要求14所述的模型训练方法,其特征在于,所述第一神经网络包括依次连接的至少一个光流计算模块,每个光流计算模块均利用LiteFlownet网络中的描述子匹配单元、亚像素修正层以及正则化层对输入该光流计算模块的光流进行修正,在所述基于所述第三视频帧和所述第四视频帧,利用第一神经网络计算第二中间视频帧到所述第三视频帧的光流和/或第二中间视频帧到所述第四视频帧的光流之前,所述方法还包括:
利用LiteFlownet网络预训练得到的参数对所述第一神经网络的参数进行初始化。
21.根据权利要求14-20中任一项所述的模型训练方法,其特征在于,根据所述第三映射视频帧和所述第四映射视频帧确定所述第二中间视频帧,包括:
基于所述第三映射视频帧、所述第四映射视频帧以及所述第二中间视频帧到所述第三视频帧的光流,利用第三神经网络预测第二图像修正项以及第三融合掩膜;
根据所述第三融合掩膜中像素值的指示将所述第三映射视频帧和所述第四映射视频帧融合为第二融合视频帧;
利用所述第二图像修正项对所述第二融合视频帧进行修正,获得所述第二中间视频帧;
所述根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络的参数,包括:
根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络以及所述第三神经网络的参数。
22.根据权利要求14-20中任一项所述的模型训练方法,其特征在于,根据所述第三映射视频帧和所述第四映射视频帧确定所述第二中间视频帧,包括:
基于所述第三映射视频帧、所述第四映射视频帧以及所述第二中间视频帧到所述第三视频帧的光流,利用第四神经网络预测第二图像修正项以及第四融合掩膜;
根据所述第四融合掩膜中像素值的指示将所述第三映射视频帧和所述第四映射视频帧融合为所述第二中间视频帧;
所述根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络的参数,包括:
根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络以及所述第四神经网络的参数。
23.一种视频插帧方法,其特征在于,包括:
获取第一视频帧和第二视频帧;
基于所述第一视频帧和所述第二视频帧,利用第一神经网络估计计算出所述第一视频帧到第一中间视频帧的光流和/或所述第二视频帧到第一中间视频帧的光流;其中,所述第一中间视频帧为待***所述第一视频帧和所述第二视频帧之间的视频帧;
利用所述第一视频帧到所述第一中间视频帧的光流对所述第一视频帧进行前向映射,获得第一映射视频帧,和/或,利用所述第二视频帧到所述第一中间视频帧的光流对所述第二视频帧进行前向映射,获得第二映射视频帧;
根据所述第一映射视频帧和/或所述第二映射视频帧确定所述第一中间视频帧。
24.一种模型训练方法,其特征在于,包括:
获取训练样本,所述训练样本包括第三视频帧、第四视频帧以及位于所述第三视频帧与所述第四视频帧之间的参考视频帧;
基于所述第三视频帧和所述第四视频帧,利用第一神经网络计算所述第三视频帧到第二中间视频帧的光流和/或所述第四视频帧到第二中间视频帧的光流;其中,所述第二中间视频帧为待***所述第三视频帧和所述第四视频帧之间的视频帧;
利用第三视频帧到所述第二中间视频帧的光流对所述第三视频帧进行前向映射,获得第三映射视频帧,和/或,利用第四视频帧到所述第二中间视频帧的光流对所述第四视频帧进行前向映射,获得第四映射视频帧;
根据所述第三映射视频帧和/或所述第四映射视频帧确定所述第二中间视频帧;
根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络的参数。
25.一种视频插帧装置,其特征在于,包括:
第一视频帧获取单元,用于获取第一视频帧和第二视频帧;
第一光流计算单元,用于基于所述第一视频帧和所述第二视频帧,利用第一神经网络计算出第一中间视频帧到所述第一视频帧的光流和/或第一中间视频帧到所述第二视频帧的光流;其中,所述第一中间视频帧为待***所述第一视频帧和所述第二视频帧之间的视频帧;
第一后向映射单元,用于利用所述第一中间视频帧到所述第一视频帧的光流对所述第一视频帧进行后向映射,获得第一映射视频帧,和/或,利用所述第一中间视频帧到所述第二视频帧的光流对所述第二视频帧进行后向映射,获得第二映射视频帧;
第一中间帧确定单元,用于根据所述第一映射视频帧和/或所述第二映射视频帧确定所述第一中间视频帧。
26.一种模型训练装置,其特征在于,包括:
第二视频帧获取单元,用于获取训练样本,所述训练样本包括第三视频帧、第四视频帧以及位于所述第三视频帧与所述第四视频帧之间的参考视频帧;
第二光流计算单元,用于基于所述第三视频帧和所述第四视频帧,利用第一神经网络计算第二中间视频帧到所述第三视频帧的光流和/或第二中间视频帧到所述第四视频帧的光流;其中,所述第二中间视频帧为待***所述第三视频帧和所述第四视频帧之间的视频帧;
第二后向映射单元,用于利用所述第二中间视频帧到所述第三视频帧的光流对所述第三视频帧进行后向映射,获得第三映射视频帧,和/或,利用所述第二中间视频帧到所述第四视频帧的光流对所述第四视频帧进行后向映射,获得第四映射视频帧;
第二中间帧确定单元,用于根据所述第三映射视频帧和/或所述第四映射视频帧确定所述第二中间视频帧;
第一参数更新单元,用于根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络的参数。
27.一种视频插帧装置,其特征在于,包括:
第三视频帧获取单元,用于获取第一视频帧和第二视频帧;
第三光流计算单元,用于基于所述第一视频帧和所述第二视频帧,利用第一神经网络估计计算出所述第一视频帧到第一中间视频帧的光流和/或所述第二视频帧到第一中间视频帧的光流;其中,所述第一中间视频帧为待***所述第一视频帧和所述第二视频帧之间的视频帧;
第一前向映射单元,用于利用所述第一视频帧到所述第一中间视频帧的光流对所述第一视频帧进行前向映射,获得第一映射视频帧,和/或,利用所述第二视频帧到所述第一中间视频帧的光流对所述第二视频帧进行前向映射,获得第二映射视频帧;
第三中间帧确定单元,用于根据所述第一映射视频帧和/或所述第二映射视频帧确定所述第一中间视频帧。
28.一种模型训练装置,其特征在于,包括:
第四视频帧获取单元,用于获取训练样本,所述训练样本包括第三视频帧、第四视频帧以及位于所述第三视频帧与所述第四视频帧之间的参考视频帧;
第四光流计算单元,用于基于所述第三视频帧和所述第四视频帧,利用第一神经网络计算所述第三视频帧到第二中间视频帧的光流和/或所述第四视频帧到第二中间视频帧的光流;其中,所述第二中间视频帧为待***所述第三视频帧和所述第四视频帧之间的视频帧;
第二前向映射单元,用于利用第三视频帧到所述第二中间视频帧的光流对所述第三视频帧进行前向映射,获得第三映射视频帧,和/或,利用第四视频帧到所述第二中间视频帧的光流对所述第四视频帧进行前向映射,获得第四映射视频帧;
第三中间帧确定单元,用于根据所述第三映射视频帧和/或所述第四映射视频帧确定所述第二中间视频帧;
第二参数更新单元,用于根据所述第二中间视频帧和所述参考视频帧计算预测损失,并根据所述预测损失更新所述第一神经网络的参数。
29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如权利要求1-24中任一项所述的方法。
30.一种电子设备,其特征在于,包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求1-24中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010815538.3A CN112104830B (zh) | 2020-08-13 | 2020-08-13 | 视频插帧方法、模型训练方法及对应装置 |
PCT/CN2021/085220 WO2022033048A1 (zh) | 2020-08-13 | 2021-04-02 | 视频插帧方法、模型训练方法及对应装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010815538.3A CN112104830B (zh) | 2020-08-13 | 2020-08-13 | 视频插帧方法、模型训练方法及对应装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112104830A true CN112104830A (zh) | 2020-12-18 |
CN112104830B CN112104830B (zh) | 2022-09-27 |
Family
ID=73753716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010815538.3A Active CN112104830B (zh) | 2020-08-13 | 2020-08-13 | 视频插帧方法、模型训练方法及对应装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112104830B (zh) |
WO (1) | WO2022033048A1 (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112954395A (zh) * | 2021-02-03 | 2021-06-11 | 南开大学 | 一种可***任意帧率的视频插帧方法及*** |
CN112995715A (zh) * | 2021-04-20 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 视频插帧处理方法、装置、电子设备及存储介质 |
CN113132664A (zh) * | 2021-04-19 | 2021-07-16 | 科大讯飞股份有限公司 | 一种插帧生成模型构建方法、视频插帧方法 |
CN113382247A (zh) * | 2021-06-09 | 2021-09-10 | 西安电子科技大学 | 基于间隔观测的视频压缩感知***及方法、设备及存储介质 |
CN113469930A (zh) * | 2021-09-06 | 2021-10-01 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、及计算机设备 |
CN113469880A (zh) * | 2021-05-28 | 2021-10-01 | 北京迈格威科技有限公司 | 图像拼接方法及装置、存储介质及电子设备 |
CN113542651A (zh) * | 2021-05-28 | 2021-10-22 | 北京迈格威科技有限公司 | 模型训练方法、视频插帧方法及对应装置 |
CN113556582A (zh) * | 2021-07-30 | 2021-10-26 | 海宁奕斯伟集成电路设计有限公司 | 视频数据处理方法、装置、设备以及存储介质 |
CN113837136A (zh) * | 2021-09-29 | 2021-12-24 | 深圳市慧鲤科技有限公司 | 视频插帧方法及装置、电子设备和存储介质 |
CN113935537A (zh) * | 2021-10-22 | 2022-01-14 | 北京华云星地通科技有限公司 | 一种基于深度学习的云图内插预测方法及*** |
CN114007135A (zh) * | 2021-10-29 | 2022-02-01 | 广州华多网络科技有限公司 | 视频插帧方法及其装置、设备、介质、产品 |
WO2022033048A1 (zh) * | 2020-08-13 | 2022-02-17 | 北京迈格威科技有限公司 | 视频插帧方法、模型训练方法及对应装置 |
CN114339409A (zh) * | 2021-12-09 | 2022-04-12 | 腾讯科技(上海)有限公司 | 视频处理方法、装置、计算机设备及存储介质 |
CN114422852A (zh) * | 2021-12-16 | 2022-04-29 | 阿里巴巴(中国)有限公司 | 视频播放方法、存储介质、处理器和*** |
CN114640885A (zh) * | 2022-02-24 | 2022-06-17 | 影石创新科技股份有限公司 | 视频插帧方法、训练方法、装置和电子设备 |
CN114862688A (zh) * | 2022-03-14 | 2022-08-05 | 杭州群核信息技术有限公司 | 基于深度学习的视频插帧方法、装置和*** |
CN115103147A (zh) * | 2022-06-24 | 2022-09-23 | 马上消费金融股份有限公司 | 中间帧图像生成方法、模型的训练方法及装置 |
WO2022242122A1 (zh) * | 2021-05-21 | 2022-11-24 | 中国科学院深圳先进技术研究院 | 一种视频优化方法、装置、终端设备及存储介质 |
WO2023020492A1 (zh) * | 2021-08-16 | 2023-02-23 | 北京字跳网络技术有限公司 | 视频帧调整方法、装置、电子设备和存储介质 |
WO2023103378A1 (zh) * | 2021-12-06 | 2023-06-15 | 深圳思谋信息科技有限公司 | 视频插帧模型训练方法、装置、计算机设备和存储介质 |
US11689693B2 (en) * | 2020-04-30 | 2023-06-27 | Boe Technology Group Co., Ltd. | Video frame interpolation method and device, computer readable storage medium |
WO2023160525A1 (zh) * | 2022-02-22 | 2023-08-31 | 北京字跳网络技术有限公司 | 视频处理方法、装置、设备及介质 |
CN117241065A (zh) * | 2023-11-14 | 2023-12-15 | 腾讯科技(深圳)有限公司 | 视频插帧图像生成方法、装置、计算机设备和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115883869B (zh) * | 2022-11-28 | 2024-04-19 | 江汉大学 | 基于Swin Transformer的视频帧插帧模型的处理方法、装置及处理设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2641544A2 (en) * | 2010-11-16 | 2013-09-25 | Alpinion Medical Systems Co., Ltd. | Color flow imaging method, and ultrasonic device therefor |
CN109068174A (zh) * | 2018-09-12 | 2018-12-21 | 上海交通大学 | 基于循环卷积神经网络的视频帧率上变换方法及*** |
CN109379550A (zh) * | 2018-09-12 | 2019-02-22 | 上海交通大学 | 基于卷积神经网络的视频帧率上变换方法及*** |
US20190138889A1 (en) * | 2017-11-06 | 2019-05-09 | Nvidia Corporation | Multi-frame video interpolation using optical flow |
CN109922231A (zh) * | 2019-02-01 | 2019-06-21 | 重庆爱奇艺智能科技有限公司 | 一种用于生成视频的插帧图像的方法和装置 |
CN110798630A (zh) * | 2019-10-30 | 2020-02-14 | 北京市商汤科技开发有限公司 | 图像处理方法及装置、电子设备和存储介质 |
CN111405316A (zh) * | 2020-03-12 | 2020-07-10 | 北京奇艺世纪科技有限公司 | 插帧方法、电子设备及可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304755B (zh) * | 2017-03-08 | 2021-05-18 | 腾讯科技(深圳)有限公司 | 用于图像处理的神经网络模型的训练方法和装置 |
CN109905624B (zh) * | 2019-03-01 | 2020-10-16 | 北京大学深圳研究生院 | 一种视频帧插值方法、装置及设备 |
CN112104830B (zh) * | 2020-08-13 | 2022-09-27 | 北京迈格威科技有限公司 | 视频插帧方法、模型训练方法及对应装置 |
-
2020
- 2020-08-13 CN CN202010815538.3A patent/CN112104830B/zh active Active
-
2021
- 2021-04-02 WO PCT/CN2021/085220 patent/WO2022033048A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2641544A2 (en) * | 2010-11-16 | 2013-09-25 | Alpinion Medical Systems Co., Ltd. | Color flow imaging method, and ultrasonic device therefor |
US20190138889A1 (en) * | 2017-11-06 | 2019-05-09 | Nvidia Corporation | Multi-frame video interpolation using optical flow |
CN109068174A (zh) * | 2018-09-12 | 2018-12-21 | 上海交通大学 | 基于循环卷积神经网络的视频帧率上变换方法及*** |
CN109379550A (zh) * | 2018-09-12 | 2019-02-22 | 上海交通大学 | 基于卷积神经网络的视频帧率上变换方法及*** |
CN109922231A (zh) * | 2019-02-01 | 2019-06-21 | 重庆爱奇艺智能科技有限公司 | 一种用于生成视频的插帧图像的方法和装置 |
CN110798630A (zh) * | 2019-10-30 | 2020-02-14 | 北京市商汤科技开发有限公司 | 图像处理方法及装置、电子设备和存储介质 |
CN111405316A (zh) * | 2020-03-12 | 2020-07-10 | 北京奇艺世纪科技有限公司 | 插帧方法、电子设备及可读存储介质 |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11689693B2 (en) * | 2020-04-30 | 2023-06-27 | Boe Technology Group Co., Ltd. | Video frame interpolation method and device, computer readable storage medium |
WO2022033048A1 (zh) * | 2020-08-13 | 2022-02-17 | 北京迈格威科技有限公司 | 视频插帧方法、模型训练方法及对应装置 |
CN112954395A (zh) * | 2021-02-03 | 2021-06-11 | 南开大学 | 一种可***任意帧率的视频插帧方法及*** |
CN112954395B (zh) * | 2021-02-03 | 2022-05-17 | 南开大学 | 一种可***任意帧率的视频插帧方法及*** |
CN113132664A (zh) * | 2021-04-19 | 2021-07-16 | 科大讯飞股份有限公司 | 一种插帧生成模型构建方法、视频插帧方法 |
CN112995715B (zh) * | 2021-04-20 | 2021-09-03 | 腾讯科技(深圳)有限公司 | 视频插帧处理方法、装置、电子设备及存储介质 |
CN112995715A (zh) * | 2021-04-20 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 视频插帧处理方法、装置、电子设备及存储介质 |
WO2022242122A1 (zh) * | 2021-05-21 | 2022-11-24 | 中国科学院深圳先进技术研究院 | 一种视频优化方法、装置、终端设备及存储介质 |
CN113469880A (zh) * | 2021-05-28 | 2021-10-01 | 北京迈格威科技有限公司 | 图像拼接方法及装置、存储介质及电子设备 |
CN113542651A (zh) * | 2021-05-28 | 2021-10-22 | 北京迈格威科技有限公司 | 模型训练方法、视频插帧方法及对应装置 |
CN113542651B (zh) * | 2021-05-28 | 2023-10-27 | 爱芯元智半导体(宁波)有限公司 | 模型训练方法、视频插帧方法及对应装置 |
WO2022247394A1 (zh) * | 2021-05-28 | 2022-12-01 | 北京迈格威科技有限公司 | 图像拼接方法及装置、存储介质及电子设备 |
CN113382247A (zh) * | 2021-06-09 | 2021-09-10 | 西安电子科技大学 | 基于间隔观测的视频压缩感知***及方法、设备及存储介质 |
CN113556582A (zh) * | 2021-07-30 | 2021-10-26 | 海宁奕斯伟集成电路设计有限公司 | 视频数据处理方法、装置、设备以及存储介质 |
WO2023020492A1 (zh) * | 2021-08-16 | 2023-02-23 | 北京字跳网络技术有限公司 | 视频帧调整方法、装置、电子设备和存储介质 |
CN113469930B (zh) * | 2021-09-06 | 2021-12-07 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、及计算机设备 |
CN113469930A (zh) * | 2021-09-06 | 2021-10-01 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、及计算机设备 |
CN113837136A (zh) * | 2021-09-29 | 2021-12-24 | 深圳市慧鲤科技有限公司 | 视频插帧方法及装置、电子设备和存储介质 |
CN113935537A (zh) * | 2021-10-22 | 2022-01-14 | 北京华云星地通科技有限公司 | 一种基于深度学习的云图内插预测方法及*** |
CN114007135B (zh) * | 2021-10-29 | 2023-04-18 | 广州华多网络科技有限公司 | 视频插帧方法及其装置、设备、介质、产品 |
CN114007135A (zh) * | 2021-10-29 | 2022-02-01 | 广州华多网络科技有限公司 | 视频插帧方法及其装置、设备、介质、产品 |
WO2023103378A1 (zh) * | 2021-12-06 | 2023-06-15 | 深圳思谋信息科技有限公司 | 视频插帧模型训练方法、装置、计算机设备和存储介质 |
CN114339409A (zh) * | 2021-12-09 | 2022-04-12 | 腾讯科技(上海)有限公司 | 视频处理方法、装置、计算机设备及存储介质 |
WO2023103576A1 (zh) * | 2021-12-09 | 2023-06-15 | 腾讯科技(深圳)有限公司 | 视频处理方法、装置、计算机设备及存储介质 |
CN114422852A (zh) * | 2021-12-16 | 2022-04-29 | 阿里巴巴(中国)有限公司 | 视频播放方法、存储介质、处理器和*** |
WO2023160525A1 (zh) * | 2022-02-22 | 2023-08-31 | 北京字跳网络技术有限公司 | 视频处理方法、装置、设备及介质 |
CN114640885A (zh) * | 2022-02-24 | 2022-06-17 | 影石创新科技股份有限公司 | 视频插帧方法、训练方法、装置和电子设备 |
WO2023160426A1 (zh) * | 2022-02-24 | 2023-08-31 | 影石创新科技股份有限公司 | 视频插帧方法、训练方法、装置和电子设备 |
CN114640885B (zh) * | 2022-02-24 | 2023-12-22 | 影石创新科技股份有限公司 | 视频插帧方法、训练方法、装置和电子设备 |
CN114862688A (zh) * | 2022-03-14 | 2022-08-05 | 杭州群核信息技术有限公司 | 基于深度学习的视频插帧方法、装置和*** |
CN115103147A (zh) * | 2022-06-24 | 2022-09-23 | 马上消费金融股份有限公司 | 中间帧图像生成方法、模型的训练方法及装置 |
CN117241065B (zh) * | 2023-11-14 | 2024-03-08 | 腾讯科技(深圳)有限公司 | 视频插帧图像生成方法、装置、计算机设备和存储介质 |
CN117241065A (zh) * | 2023-11-14 | 2023-12-15 | 腾讯科技(深圳)有限公司 | 视频插帧图像生成方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022033048A1 (zh) | 2022-02-17 |
CN112104830B (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112104830B (zh) | 视频插帧方法、模型训练方法及对应装置 | |
AU2017324923B2 (en) | Predicting depth from image data using a statistical model | |
Meister et al. | Unflow: Unsupervised learning of optical flow with a bidirectional census loss | |
CN113542651B (zh) | 模型训练方法、视频插帧方法及对应装置 | |
Xu et al. | A segmentation based variational model for accurate optical flow estimation | |
CN110533712A (zh) | 一种基于卷积神经网络的双目立体匹配方法 | |
Van Amersfoort et al. | Frame interpolation with multi-scale deep loss functions and generative adversarial networks | |
CN112396645B (zh) | 一种基于卷积残差学习的单目图像深度估计方法和*** | |
CN111835983B (zh) | 一种基于生成对抗网络的多曝光图高动态范围成像方法及*** | |
Ttofis et al. | High-quality real-time hardware stereo matching based on guided image filtering | |
US20230401672A1 (en) | Video processing method and apparatus, computer device, and storage medium | |
CN113538525B (zh) | 光流估计方法、模型训练方法及对应装置 | |
Durasov et al. | Double refinement network for efficient monocular depth estimation | |
CN114170558A (zh) | 用于视频处理的方法、***、设备、介质和产品 | |
CN111968208B (zh) | 一种基于人体软组织网格模型的人体动画合成方法 | |
JP4563982B2 (ja) | 動き推定方法,装置,そのプログラムおよびその記録媒体 | |
Xiao et al. | Progressive motion boosting for video frame interpolation | |
Tsuji et al. | Non-guided depth completion with adversarial networks | |
CN115984944A (zh) | 表情信息识别方法、装置、设备、可读存储介质及产品 | |
Wan et al. | PRAFlow_RVC: Pyramid recurrent all-pairs field transforms for optical flow estimation in robust vision challenge 2020 | |
CN114119678A (zh) | 光流估计方法、计算机程序产品、存储介质及电子设备 | |
CN113469880A (zh) | 图像拼接方法及装置、存储介质及电子设备 | |
Yusiong et al. | Unsupervised monocular depth estimation of driving scenes using siamese convolutional LSTM networks | |
US11908155B2 (en) | Efficient pose estimation through iterative refinement | |
CN109427071A (zh) | 一种全搜索块匹配方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |