CN115210716A - 用于多帧视频帧插值的系统和方法 - Google Patents
用于多帧视频帧插值的系统和方法 Download PDFInfo
- Publication number
- CN115210716A CN115210716A CN202180017962.6A CN202180017962A CN115210716A CN 115210716 A CN115210716 A CN 115210716A CN 202180017962 A CN202180017962 A CN 202180017962A CN 115210716 A CN115210716 A CN 115210716A
- Authority
- CN
- China
- Prior art keywords
- frame
- light flow
- modified
- frames
- optical flow
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 119
- 230000003287 optical effect Effects 0.000 claims abstract description 193
- 230000033001 locomotion Effects 0.000 claims abstract description 141
- 238000012986 modification Methods 0.000 claims abstract description 94
- 230000004048 modification Effects 0.000 claims abstract description 92
- 238000012549 training Methods 0.000 claims abstract description 37
- 238000012937 correction Methods 0.000 claims abstract description 29
- 238000010586 diagram Methods 0.000 claims description 62
- 238000012545 processing Methods 0.000 claims description 49
- 230000006870 function Effects 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 230000002123 temporal effect Effects 0.000 abstract description 53
- 238000013528 artificial neural network Methods 0.000 abstract description 42
- 230000003044 adaptive effect Effects 0.000 abstract description 8
- 230000002040 relaxant effect Effects 0.000 abstract description 5
- 239000013598 vector Substances 0.000 description 18
- 230000001133 acceleration Effects 0.000 description 14
- 238000013527 convolutional neural network Methods 0.000 description 14
- 238000010801 machine learning Methods 0.000 description 12
- 230000015572 biosynthetic process Effects 0.000 description 9
- 239000007787 solid Substances 0.000 description 9
- 238000003786 synthesis reaction Methods 0.000 description 9
- 238000003062 neural network model Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000002457 bidirectional effect Effects 0.000 description 5
- 230000004927 fusion Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012966 insertion method Methods 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 241001647769 Mirza Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000003042 antagnostic effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- 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/251—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Television Systems (AREA)
Abstract
提供了用于多帧视频帧插值的系统和方法。高阶运动建模,如三阶运动建模,通过松弛初始光流估计中使用的损失函数所施加的约束,实现了多个插值帧之间的中间光流的预测。时间金字塔光流修正模块对用于生成中间帧的光流图进行粗到细修正,从而将成比例更多的修正注意力集中到高误差中间帧的光流图上。时间金字塔像素修正模块对生成的中间帧进行粗到细修正,从而将成比例更多的修正注意力集中到所述高误差中间帧上。生成式对抗网络(generative adversarial network,GAN)模块计算用于训练在光流估计模块、时间金字塔光流修正模块和/或时间金字塔像素修正模块中使用的神经网络的损失函数。
Description
相关申请的交叉引用
本申请要求2020年11月23日提交的发明名称为“用于多帧视频帧插值的系统和方法(Systems and methods for multi-frame video frame interpolation)”的第17/102,114号美国非临时专利申请的权益,该专利申请要求2020年3月5日提交的发明名称为“用于多帧视频帧插值的系统、设备和方法(System,device and method for multi-framevideo frame interpolation)”的第62/985,524号美国临时专利申请的权益,这些在先申请的全部内容通过引用并入本文。
技术领域
本发明涉及视频帧插值,具体地,涉及用于多帧视频帧插值的系统和方法。
背景技术
视频帧插值
视频帧插值是为了合成数字视频的帧(称为中间帧),该帧将在数字视频的两个现有连续帧之间的时间步长上出现。给定数字视频的两个现有连续帧(起始帧和结束帧),视频帧插值系统合成一个或多个中间帧(插值中间帧),这些中间帧表现为填充起始帧与结束帧之间的过渡。
图1A示出了数字视频,该数字视频包括现有起始视频帧102(起始帧102)、现有结束视频帧104(结束帧104)和由视频帧插值系统合成的插值中间视频帧106(插值中间帧106)。更一般地,视频帧插值系统合成插值中间帧106,该插值中间帧106包括表示数字视频中两个连续帧(即起始帧102和结束帧104)之间对象的时刻的图像。
大多数视频插值方法组合起始帧102和结束帧104的像素值,以确定帧102、104内对象的估计运动,如下所示:
It=f(I0,I1) (等式1)
其中,It是两个帧之间时间t处的插值中间帧106,I0是起始帧102,I1是结束帧104。坐标(x,y)处的像素值通过组合运动矢量(u0,v0)和(u1,v1)定义的位置的像素来获得,这两个运动矢量对应于从I0和I1到时间t的It的运动:
It(x,y)=f(I0(x–u0,y–v0),I1(x–u1,y–v1)) (等式2)
最近的视频帧插值方法使用模型根据起始帧和结束帧合成插值中间帧,这些模型是使用机器学习算法根据数字视频的样本视频帧(以下简称帧)构造或构建的。例如,通过在训练期间将具有已知期望输出的输入馈送到神经网络模型,在用于视频帧插值的神经网络模型的训练期间学习这类神经网络模型的权重和偏差。在神经网络模型的训练期间,现有视频的帧1和帧3被输入到神经网络,该神经网络根据帧1和帧3合成插值中间帧,并输出插值中间帧。根据误差函数(即损失函数),将插值中间帧与现有视频的帧2进行比较。这种比较会产生误差(也称为损失),该误差指示由神经网络模型输出的合成插值帧与地面真值(例如帧2)的偏离程度。后向传播算法用于调整(例如更新)神经网络模型的参数。可以使用视频帧的大型数据集重复这一过程,直到模型的参数经过调整生成与期望输出高度匹配的输出,即,当馈送现有视频的帧1和帧3时,经过训练的神经网络模型合成与现有视频的帧2高度匹配的插值中间帧。在此阶段,神经网络模型可以称为训练模型。
最近的视频帧插值方法通常是基于矢量的或基于内核的。基于矢量的视频帧插值方法依赖于从视频的一对连续帧中估计双向稠密光流。然后,使用视频的这一对连续帧之间的估计光流,执行像素重映射以合成视频的这一对连续帧之间的插值中间帧。插值中间帧通常根据以下等式合成:
It(x,y)=m·I1(x-u,y-v)+(1-m)·I2(x,y) (等式3)
其中,I1和I2是起始帧和结束帧,It是插值中间帧,x和y是像素坐标,m是融合掩码,u和v是光流矢量。
作为基于矢量的视频帧插值方法的替代方案,基于内核的视频帧插值方法通过利用预测空间自适应内核对数字视频的一对顺序连续帧的任何输入片(patch)执行卷积来合成插值中间帧的像素值。具体而言,对于目标插值中间帧中的每个像素,基于内核的方法生成内核,例如矩形41×41矩阵。最后,通过使用点积对起始帧像素和结束帧像素的邻域应用内核来计算输出的插值中间帧中的像素值。
图1B示出了基于内核和基于矢量的方法的基本操作。基于矢量的视频帧插值方法120通过应用光流矢量(u,v)122,基于起始帧It 102的(x+u,y+v)124处的对应像素值合成插值像素值,从而合成插值中间帧It+1106的像素(x,y)126。因此,It+1(x,y)=f(It(x+u,y+v))。
而基于内核的视频帧插值方法130通过将内核K(x,y)132按点积应用于起始帧It102的像素(x,y)134的邻域P(x,y)138来生成插值中间帧It+1106的像素(x,y)136。因此,It+1(x,y)=K(x,y)·P(x,y)。
多帧插值
基于矢量和基于内核的帧插值方法已应用于生成多个中间帧的问题,称为多帧插值。
图2A示出了多帧插值的示例,从数字视频(下文称为视频序列100)的帧序列开始。视频序列100包括起始帧(起始帧102)和结束帧(结束帧104)。多帧插值不仅在起始帧102与结束帧104之间的中点生成中间帧106,而且在起始帧102与结束帧104之间的各时间戳处生成多个中间帧。此处,已经生成了七个中间帧,即从起始帧102到结束帧104的时间距离的八分之一处的第一中间帧108到从起始帧102到结束帧104的时间距离的八分之七处的第七中间帧110。第四中间帧是中间帧106。在本说明书的上下文中,起始帧102的时间戳称为t=0,结束帧104的时间戳称为t=1。因此,第一中间帧108的时间戳为0.125,中间帧106的时间戳为0.5,第七中间帧110的时间戳为0.875。
使用通过机器学习算法构造的模型的多帧插值方法使用的训练技术与上述用于单帧插值的训练技术类似。在训练中,从训练数据集中的视频序列中选择不连续的起始帧和结束帧,并将这两个帧作为输入提供给监督式机器学习算法。来自两个非连续输入帧之间的训练数据的位于视频序列中的实际(地面真值)中间帧用作地面真值数据,用于计算用于调整模型参数的损失。使用起始输入帧和结束输入帧以及对应的地面真值中间帧的大型集合多次重复此操作。
应用于数字视频的多帧插值方法可以产生可用作慢动作数字视频、自适应视频流、重建以替换丢失帧或损坏帧的视频序列或用于高帧率显示器的高帧率视频序列的插值视频序列。通常,较高的帧率可以提供具有更平滑运动的更高质量视频。例如,在数字视频的帧序列中的两个顺序帧之间插入一个新帧使数字视频的播放速率慢两倍或平滑两倍,可以生成一个以上的新帧并插入帧序列中的两个顺序帧之间,以使数字视频的播放速率甚至更慢或更平滑。
如上所述,一种单帧插值方法是基于估计数字视频的帧序列的一对连续帧(例如两个顺序帧)之间的光流,并将该运动线性扩展到中间帧,以获得中间帧中像素的位置。在多帧插值中,起始帧或结束帧与中间帧(即,对应于起始帧的时间戳与结束帧的时间戳之间中间的时间戳的帧)之间的运动通常通过如下方式映射:假设起始帧与结束帧之间线性过渡并根据相对时间差使用线性模型扩展运动矢量。但是,数字视频的帧序列的帧中反映的真实世界运动遵循各种复杂的非线性趋势,导致实际运动与插值帧中的重建运动之间存在差异。
生成多帧可以通过递归方法或时间戳插入方法利用单帧插值方案。在递归方法中,重复多次在两个顺序帧之间插入中间帧。用于生成一个中间帧106(即在给定对的中间时间步长处)的典型单帧插值方法用于在数字视频的两个顺序帧之间生成一个帧。然后,在下一步中,对于每对初始帧和生成帧,递归地生成一个附加中间帧。
图2B示出了用于插入七个新帧的递归帧插值的示例,其中,在第一级别112中,在中间生成一个新帧(t=0.5处的中间帧106),在第二级别114中生成两个中间帧,最后在第三级别116中,在每对帧之间插入一个中间帧,从而生成4个附加新帧,总共生成七个帧。
在递归多帧插值方法中,可以针对不同级别顺序执行操作,以达到所需数量的生成帧。通常不可能并行运行这些操作,因为每个较低级别都依赖于较高级别生成的帧。在生成新帧时,它还只使用来自两个相邻帧的信息。递归多帧插值方法的另一个缺点是,它在要生成的帧数量方面不够灵活:生成的帧通常要求为2n–1的数量,其中,n是级别的数量。
用于生成在起始帧与结束帧之间具有任意时间戳的多个中间帧的其它方法。根据从起始帧到结束帧是线性移动的假设,可以在对应的时间戳中逐个生成新中间帧。这些方法设置了一个参数来控制插值帧的时间戳。
在这些方法中,在起始帧102与结束帧104之间的任何时间t(0<t<1)插入新中间帧。为了在这种方法中在一对给定帧之间生成多个新中间帧,对应于每个新中间帧的时间戳用于生成新中间帧,如图2C所示。这种方法没有操作是并行运行的递归多帧插值方法的相同限制;但是,帧生成优化不能使用来自一个生成的新中间帧的信息来优化另一个新中间帧,并且在此过程中针对每个新中间帧的操作与其它中间帧的操作是独立的。从计算成本的角度来看,它可能并不高效,而且生成的新中间帧之间可能存在时间不一致和不平滑。
鉴于上述情况,希望改进多帧视频帧插值方法。
发明内容
本发明提供了用于视频帧插值的系统和方法。考虑到用于生成多个新中间帧的当前单帧插值方法所面临的挑战,例如复杂性、灵活性和时间不一致,需要一种用于以高时间一致性在一个处理过程中生成所有新中间帧的方法。
一些实施例使用比现有的多帧视频帧插值方法更高阶的运动建模,例如三阶运动建模(与现有方法使用的二阶或线性运动建模相比),以便更准确地预测数字视频的帧序列的起始帧与结束帧之间的多个插值的新中间帧之间的中间光流。数字视频的帧序列在下文称为视频序列。在一些实施例中,高阶运动建模与松弛在初始光流估计中使用的损失函数所施加的约束结合使用。一些实施例使用时间金字塔光流修正模块对用于在视频序列的起始帧与结束帧之间生成(例如插值)新中间帧的光流图进行粗到细修正,将成比例更多的修正注意力集中到高误差最中间帧(即,具有最接近起始帧时间戳与结束帧时间戳之间的时间中点的时间戳的中间帧)的光流图上。一些实施例使用时间金字塔像素修正模块对生成的新中间帧进行粗到细修正,将成比例更多的修正注意力集中到所述高误差最中间帧上。一些实施例使用实现生成式对抗网络(generative adversarial network,GAN)的模块来计算用于训练在光流估计模块、时间金字塔光流修正模块和/或时间金字塔像素修正模块中实现的神经网络的损失。
一些实施例可以改进现有视频帧插值方法的限制。一些实施例可以在一次处理过程中在视频序列的起始帧与结束帧之间生成多个新中间帧。一些实施例可以通过将自适应处理应用于用于生成中间帧的光流图和/或生成的中间帧本身,以将处理集中在高误差最中间帧上来考虑时间一致性。一些实施例可以应用比现有的多帧视频帧插值方法更高程度的运动模型。
一些实施例可以提供快速和并行的多帧视频插值。在一些实施例中,使用时间金字塔修正模块来修正光流图和/或中间帧可以考虑中间帧的误差水平作为它们到起始帧和结束帧的时间距离的函数。一些实施例可以提供一种视频插值系统,其可扩展到在视频序列的起始帧与结束帧之间生成(例如插值)任何数量的新中间帧。在一些实施例中,金字塔处理可用于考虑误差传播的视频序列中帧的任何时间处理。一些实施例可以执行快速多帧视频帧插值方法以生成超超慢动作视频。
本文所使用的术语“光流”是指对象(例如像素)在一个视频帧与另一个视频帧之间的运动的表示。因此,例如,如果特定像素存在于第一视频帧中的(x,y)坐标(100,100)处和第二视频帧中的(110,100)处,则在位置(100,100)处从第一帧到第二帧的光流可以表示为矢量(10,0)。示出第一帧的每个像素位置的光流的二维图可以称为表示从第一帧到第二帧的光流的“光流图”;在本示例中,光流图可以表示为位置(100,100)处值为(10,0)的矢量场。这种示出从第一帧到第二帧的光流的光流图,假设第一帧对应于第二帧之前的时间点,可以称为表示“前向光流”。也可以根据第二帧的特定像素的位置及这些特定像素在第一帧中的对应位置计算表示“后向光流”(即对象在第二帧与第一帧之间的移动)的第二光流图。前向光流图和后向光流图的组合可以称为“双向光流图”,而单个前向光流图或后向光流图可以称为“单向光流图”。本文描述的实施例可以使用双向光流图或单向光流图,但双向光流图可以提供可以提高所描述实施例的精度或性能的附加信息。可以假定术语“光流图”是指单向光流图或双向光流图。
本文所使用的术语“中间帧”和“外帧”是指在现有视频序列的起始帧与结束帧之间使用插值生成的中间帧。“中间”帧是指(在时间上)距离起始帧和结束帧都相对较远的插值中间帧,相比之下,“外帧”(在时间上)距离起始帧或结束帧相对较近。因此,在时间t=0处的起始帧与时间t=8处的结束帧之间插值七个中间帧(帧1至帧7)的示例中,七个中间帧(时间上)分别位于t=1至t=7处,帧1和帧7可以被认为是“最外层”帧,帧4可以被认为是“最中间”帧。本文描述的实施例相对于外帧可以将相对更多的处理资源用于修正中间帧,因为中间帧与地面真值(即起始帧和结束帧)的时间距离往往导致插值的误差更高,因此更需要修正。
附图说明
现在将参考附图通过示例描述实施例,其中,相同的附图标记可以用于指示相同的特征。
图1A是示出包括起始帧、插值中间帧和结束帧的数字视频的图。
图1B是基于矢量的视频帧插值方法和基于内核的视频帧插值方法的图。
图2A是示出包括起始帧和结束帧的视频序列的图,所述起始帧和结束帧用于生成七个插值中间帧。
图2B是示出多帧插值的递归中间帧插入方法的示意图。
图2C是示出基于时间戳的多帧插值方法的示意图。
图3A是多个插值帧的帧索引相对于以分贝为单位测量的峰值信噪比的图表,示出了三种已知的多帧插值技术的性能。
图3B是时间索引相对于帧中对象位置的图,示出了实际运动与几种多帧插值技术中几个建模运动轨迹的比较。
图4是本文描述的示例性实施例提供的用于执行多帧插值的示例性计算系统的框图。
图5是本文描述的示例性实施例提供的用于执行多帧插值的示例性方法的高级流程图。
图6是本文描述的示例性实施例提供的多帧插值系统的框图。
图7是本文描述的示例性实施例提供的各种运动模型的性能图。
图8是根据本文描述的示例性实施例,对象在多个帧上的x和y坐标的图,示出了实际运动与线性运动模型和三阶运动模型的比较。
图9是对象在多个帧上的x和y坐标的图,示出了实际运动与线性运动模型和二阶运动模型的比较。
图10是本文描述的示例性实施例提供的多帧插值系统的时间金字塔光流修正模块的框图。
图11是图9A的时间金字塔光流修正模块的子网络的框图。
图12是图10的时间金字塔光流修正模块的简化框图。
图13是本文描述的示例性实施例提供的多帧插值系统的时间金字塔像素修正模块的框图。
图14是本文描述的示例性实施例提供的在训练多帧视频帧插值系统时使用的生成式对抗网络的框图。
图15是本文描述的示例性实施例提供的多帧视频帧插值系统的时间金字塔光流修正模块的另一框图。
具体实施方式
本文使用的“模块”可以指软件系统的组件或部件,其包括可由计算系统的处理单元执行的机器可读指令。“模块”还可以指硬件处理电路和可由硬件处理电路执行的机器可读指令(软件和/或固件)的组合。处理单元可以是具有硬件加速器的中央处理单元(central processing unit,CPU)、张量处理单元(tensor processing unit,TPU)或神经处理单元(neural processing unit,NPU)。硬件处理电路可以包括微处理器、多核微处理器的内核、微控制器、专用可编程集成电路(application specific programmableintegrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FGPA)、中央处理单元(central processing unit,CPU)、张量处理单元、神经处理单元或其它硬件处理电路的任何或某些组合。
本发明是参考附图进行的,附图中示出了实施例。但是,可以使用许多不同的实施例,因此描述不应解释为局限于本文中阐述的实施例。相反,提供这些实施例是为了使得本发明彻底和完整。在可能的情况下,在附图和以下描述中使用相同的附图标记来指代相同的元件,并且在替代实施例中使用素数表示法来指示相同的元件、操作或步骤。所示系统和设备的功能元件的单独框或所示分离不一定需要这些功能的物理分离,因为这些元件之间的通信可以在没有任何这种物理分离的情况下通过消息传递、函数调用、共享内存空间等方式发生。因此,尽管为了便于解释,本文分开示出了功能,但是这些功能不需要在物理或逻辑上分离的平台中实现。不同的设备可以具有不同的设计,使得尽管一些设备在固定功能硬件中实现一些功能,但其它设备可以在可编程处理器中实现这些功能,该处理器具有从机器可读介质获得的代码。最后,以单数提及的元件可以是复数,反之亦然,除非上下文明确或固有地指示。
现在将描述用于视频帧插值,特别是多帧视频插值的软件系统、计算系统和方法的示例性实施例。软件系统和计算系统的一些示例性实施例使用经过训练的模型来执行全部或部分视频帧插值方法。系统和设备的一些示例性实施例包括执行全部或部分视频帧插值方法的经过训练的神经网络。
现有的多帧插值技术通常以相同的重要性处理视频序列的所有帧;通常不利用在不同时间戳下,在视频的帧序列(下文称为视频序列)的起始帧与结束帧之间生成多个中间帧的预期难度级别。事实上,随着运动的扩展,生成更接近视频序列的两个初始帧之一(即起始帧和结束帧)的中间帧比生成具有较大时间距离的中间帧更容易。因此,现有的多帧插值系统实现的机器学习模型在模型大小(即模型的学习参数数量)或执行时间方面没有优化,这使得它们不适用于(或未优化用于)面向用户的软件应用。为此,本文描述的一些实施例可以使用时间金字塔处理操作,高效地将多帧生成集成到一个单个神经网络中。所描述的实施例可以用浅处理步骤自适应地处理低误差中间插值帧(例如,接近起始帧或结束帧的帧),以指导由更深层处理步骤处理的高误差中间插值帧(例如,远离起始帧和结束帧的帧)的生成。通过对所有中间帧进行联合优化,可以合成更高质量的插值中间帧,这些插值中间帧在中间插值帧序列上具有更高的时间一致性。
此外,大多数现有的多帧视频帧插值方法通过简单地假设起始帧与结束帧之间的运动线性过渡来合成中间帧。但是,视频帧中反映的真实世界运动遵循各种复杂的非线性趋势。为了消除这一限制,可以使用二阶运动预测模型的扩展。但是,假设输入帧之间有恒定加速度,二阶运动预测模型在某些情况下可能仍然不足以对对象的真实世界运动进行建模,特别是对于非刚性对象。在真实世界中,施加于运动对象的力不一定是恒定的,导致对象或对象部分的加速度变化。为了解决这个问题,一些实施例可以利用多帧输入的优点来实现高级高阶运动预测模型(例如,三阶而不是二阶),该模型解释了加速度的变化。此外,一些实施例可以通过在光流估计模块的光流估计神经网络的训练期间使用松弛损失函数来提高运动预测以及最终插值中间帧的质量。这可以提供将像素映射到参考帧处其地面真值位置的邻域所需的灵活性,同时可以实现中间帧的更好运动预测。一些实施例还可以优化光流估计神经网络大小(即,经过训练的神经网络的学习参数数量)和运行时间,使得它们适用于真实世界的应用,特别是在移动设备上。
可以观察到,在多帧视频帧插值中存在误差的时间分布。
如图3A所示,具有沿水平X轴302间隔开的帧索引1至7的七个插值中间帧具有如垂直Y轴304上所示的不同的峰值信噪比(peak signal-to-noise ratio,PSNR)水平。绘制了三种已知的多帧视频帧插值方法DAIN 306、SepConv 308和CyclicGen 310中的每一种方法的曲线,示出了最中间插值中间帧(即最接近起始帧102与结束帧104之间中点的中间帧)具有最低PSNR且因此具有最高误差水平的一致模式。这是可以预期的,因为时间戳更接近起始帧或结束帧的的新插值中间帧预计具有较低的误差水平,而中间帧104(此处为具有帧索引4的帧)在时间上距离地面真值帧(即起始帧和结束帧)最远。
还可以观察到,各帧之间的运动可能不是恒定的速度。
在图3B中,实曲线320是对象(例如帧中的像素)在非线性运动中的实际路径,点322(在–4、–2、2和4的时间戳330处)是由四个输入帧给出的在该路径上的对象位置的观察。用于视频帧插值的运动建模是为了为要插值的每个帧寻找在–2到2之间的时间(即预测的目标间隔,对应于新插值中间帧要填充的时间段)的对象位置。直虚线324是观察之间的直接路径。目标间隔中的七个实心点326是使用点322建模运动时的预测点。实心点326远离实际路径(即实曲线320)。
所描述的用于视频插值,特别是多帧视频插值的软件系统、计算系统和方法的示例性实施例可以解决这些观察中的一个或多个观察,以提高多帧视频帧插值的性能。一些实施例使用比现有的多帧视频帧插值方法更高阶的运动预测模型来建模帧内对象的运动,例如三阶运动建模(相对于例如线性或二阶运动建模),以便更准确地预测多个插值中间帧之间的中间光流。在一些实施例中,高阶运动建模与松弛在训练由光流估计模块实现的光流估计神经网络中使用的损失函数所施加的约束结合使用。一些实施例将成比例更少的修正注意力集中到低误差最外层帧的光流图(即,粗修正)并将成比例更多的修正注意力集中到高误差最中间帧的光流图,从而使用时间金字塔光流修正模块对用于在起始帧与结束帧之间生成中间帧的光流图进行粗到细修正。一些实施例使用时间金字塔像素修正模块对生成的中间帧进行粗到细修正,将成比例更多的修正注意力集中到高误差中间帧上。一些实施例使用生成式对抗网络(generative adversarial network,GAN)来计算在光流估计模块、时间金字塔光流修正模块和/或时间金字塔像素修正模块中实现的神经网络的训练期间使用的损失函数。这些模块都将在其自己的部分中进行详细说明。
计算系统
图4示出了本发明的示例性实施例提供的用于执行视频帧插值,特别是多帧视频插值的计算系统400的选定组件。在各种实施例中,计算系统400可以是物理计算机(即,如台式计算机、笔记本电脑、服务器等物理计算机)或由例如云服务提供商提供的虚拟计算机(即,虚拟机)。如图4所示,计算系统400包括处理器402,该处理器402通过通信总线或通信链路404耦合到存储器426,该通信总线或通信链路404提供存储器426与处理器402之间的通信路径。在一些实施例中,存储器426可以是随机存取存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、持久(非易失性)存储器,例如闪存可擦除可编程只读存储器(erasable programmable read only memory,EPROM)(闪存)。处理器402可以包括一个或多个处理单元,例如包括一个或多个中央处理单元(central processingunit,CPU)、一个或多个图形处理单元(graphical processing unit,GPU)、一个或多个张量处理单元(tensor processing unit,TPU)以及其它处理单元。处理器402还可以包括一个或多个硬件加速器。
计算系统400的存储器426存储有包括视频帧插值指令462的指令,该指令可以由处理器402执行以实现包括其各种功能模块的多帧视频帧插值软件系统700,如下文在多帧插值部分中参考图6进一步描述的。在各种实施例中,视频帧插值指令462包括流估计指令464、运动建模指令466、光流修正指令468和/或后修正指令470中的一个或多个指令。流估计指令464由处理器402执行时使计算系统400操作流估计模块704,如下文流估计部分中进一步描述的。运动建模指令466由处理器402执行时使计算系统400操作运动建模模块,例如高阶运动建模模块708,如下文高阶运动建模部分中参考图7至图9进一步描述的。光流修正指令468由处理器402执行时使计算系统400操作光流修正模块712,如下文光流修正部分中参考图10至图12进一步描述的。后修正指令470由处理器402执行时使计算系统400操作像素修正模块716,如下文像素修正部分中参考图13和图14进一步描述的。
存储器426还存储各种数据480。数据480可以包括视频数据482(即,代表数字视频的数据),该视频数据482包括代表视频的起始帧(下文称为起始帧486)的数据和代表视频的结束帧(下文称为结束帧488)的数据。起始帧486和结束帧488是视频的一对连续帧。包括视频帧解释指令462、流估计指令464、运动建模指令466、光流修正指令468和后修正指令470的指令可以临时加载到易失性存储器(例如存储器426的RAM)中,该易失性存储器用于存储运行时数据变量和其它类型的数据和/或信息。由视频帧插值指令462实现的多帧视频帧插值软件系统700所接收的数据也可以存储在存储器426的RAM中。虽然描述了各种类型存储器的特定功能,但这只是一个示例,也可以使用对存储器类型的不同功能分配。
计算系统400可以是单个设备,例如容纳在单个外壳内的电路集合。在其它实施例中,计算系统400可以分布在两个或两个以上设备或外壳上,可能在空间上彼此分离。通信总线404可以包括一个或一个以上通信链路或网络。
机器学习
机器学习(machine learning,ML)是一种人工智能技术,其中,使用算法从能够应用于新输入数据以执行特定任务(即,根据新的输入数据进行预测或决策)的样本数据中针对特定任务构造或构建“模型”,而无需显式编程以执行特定任务。
本文所使用的“模型”应指机器学习模型。机器学习模型是指可以执行的可执行计算结构,例如处理器可执行的软件指令。在模型训练期间,使用样本数据(例如来自训练数据集的数据)学习模型的参数。在模型被训练后,经过训练的模型可以在推理模式下部署和操作(例如应用于新输入数据),以执行特定任务(即根据新输入数据进行预测或决策)。本文描述的机器学习模型可以由已经过训练以执行任务(特别是视频帧插值)的卷积神经网络模拟。但是,应理解,本文描述的系统、设备和方法的各种实施例可以同样适用于本文描述的其它任务、其它神经网络架构(例如全连接或递归神经网络)和其它机器学习技术,包括其它深度学习技术,并对某些操作进行适当的改变。此外,本文描述的软件系统、计算系统和方法的一些实施例可以应用于机器学习上下文之外的领域。
多帧插值-概述
现在将描述用于视频帧插值,特别是多帧视频帧插值的软件系统、计算系统和方法的示例性实施例。本文公开的软件系统和计算系统的一些实施例使用一个或多个经过训练的模型来执行全部或部分视频帧插值方法,特别是多帧插值方法。
图5示出了多帧插值的第一方法600的高级流程图,该方法由视频帧插值指令462实现的图6的多帧视频帧插值软件系统700执行。由视频解释指令462实现的多帧视频帧插值软件系统700和由指令464、466、468和470实现的各种子模块可以执行方法600的各种步骤(即操作),如本部分中后面参考图6和图15更详细描述的。在步骤602中,接收视频的视频序列的帧。这些帧包括t=0处的起始帧I0 102和t=1处的结束帧I1 104。可选地,可以接收两个附加帧:t=–1处(即在起始帧102之前)的前一帧和t=2处(即在结束帧104之后)的后一帧。如上文关于图3B所描述的,前一帧和后一帧可以用于对视频序列的两个或四个帧上物体的估计运动进行高阶运动建模。
在步骤604中,光流估计模块704估计起始帧102与结束帧104之间的光流,并生成一对光流图(即,双向光流图,包括表示从t=0向前运动到t=1的前向单向光流图和表示从t=1向后运动到t=0的后向单向光流图)。光流估计模块704包括卷积神经网络(convolutional neural network,CNN),如下文流估计部分中详细描述的。在所描述的实施例中,可选地,用于训练包括在光流估计模块704中的CNN的损失函数可以在训练期间松弛光流估计约束,以使光流估计模块704的输出能够提供在步骤606中执行的后续高阶运动建模所需的灵活性。
在步骤606中,使用运动建模模块708(例如高阶运动建模模块)估计I0 102与I1104之间对象(例如像素)的运动,并且根据估计的运动在中间帧之间生成估计的中间光流710,如下文运动建模部分中详细描述的。在一些实施例中,可以使用三阶运动建模代替传统的线性或二阶运动建模。
在本文描述的示例中,中间帧的数量是7个,指定为It1到It7。应当理解,可以使用本文描述的多帧视频帧插值方法生成任意数量的中间帧。
在步骤608中,使用金字塔时间光流修正来修正中间光流图710,如下文光流修正部分中详细描述的。金字塔时间光流修正将修正注意力集中在具有最高预期误差水平的最中间帧的中间光流图710上。
在步骤610中,根据在步骤608中生成的修正中间光流图生成新中间帧。
在步骤612中,使用金字塔时间像素修正来修正生成的中间帧。该步骤在本文可以称为“像素修正”或“后修正”,是指在没有该后修正步骤612的情况下,对可以用作方法600的输出的完整中间帧执行附加像素级修正。
应当理解,一些实施例可以省略这些步骤中的一些步骤或替代各种步骤的替代实现方式。在一些实施例中,可以省略步骤604处光流估计约束的松弛和步骤606处高阶运动建模的使用,替换为传统的光流估计和线性或二阶运动建模。在一些实施例中,可以省略光流修正步骤608,或者可以替换为非金字塔光流修正步骤。在一些实施例中,可以省略像素修正步骤612,或者可以替换为非金字塔像素修正步骤。这些步骤中的每个步骤有助于获得通过多帧视频帧插值方法600获得的最终结果,并且可以在没有一个或多个其它步骤的情况下使用。
图6示出了执行方法600的多帧视频帧插值软件系统700的高级框图。输入帧702(此处示出为时间索引为–1、0、1和2的四个帧)由光流估计模块704的卷积神经网络(convolutional neural network,CNN)接收。时间索引0处的输入帧702是起始帧102;时间索引1处的输入帧702是结束帧104;时间索引–1和2处的两个帧是运动建模模块708用于执行高阶运动建模的附加帧,如下文高阶运动建模部分中所述。光流估计模块704执行步骤604以生成在t=0与t=1之间的初始光流图706。高阶运动建模模块708执行步骤606,以使用三阶运动模型根据初始光流图706生成像素的运动。高阶运动建模模块708生成多个中间光流图710。多个中间光流图710在此处示出为对应于往返于每个中间帧及其邻域的光流的七对光流图:即,中间光流图710包括估计第一中间帧It1与其邻域(起始帧I0 102和第二中间帧It2)之间的光流的第一对中间光流图,依此类推,直到估计第七中间帧It1与其邻域(第六中间帧It6和结束帧I0 104)之间的光流的第七对中间光流图。
中间光流图710由光流修正模块712(此处示出为金字塔时间光流修正模块)修正,该模块执行光流修正步骤608,如下文光流修正部分中详细描述的。由光流修正模块712生成的修正光流图(未示出)由帧合成模块(未示出)用于执行帧合成步骤610,以通过将修正中间光流图应用于输入帧702的起始帧102和结束帧104来生成中间帧714。在中间帧714已经生成后,这些中间帧由像素修正模块716(此处示出为时间金字塔像素修正模块)进一步修正,以使用像素修正子网络718的金字塔配置执行像素修正步骤612。在本文所示的实施例中,像素修正子网络718是卷积神经网络。像素修正模块716的输出是一组修正中间帧720。
图15示出了由多帧视频帧插值软件系统700执行的步骤(即操作)的另一流程图,示出了由光流估计模块704执行的步骤(即操作)的进一步细节,并包括在由光流修正模块712执行的步骤(即操作)之后的帧合成步骤1508。这些详细信息在下文流估计和光流修正部分中进行了描述。
流估计
现有的流估计技术可能无法高效地利用相邻帧(例如,t=–1处的前一帧和t=2处的后一帧),有些技术仅限于单向光流估计。在一些实施例中,光流估计模块704是定制的两阶段光流估计模块,用于使用相邻帧(例如,在t=–1处的前一帧和在t=2处的后一帧)执行光流估计的两个阶段,以为目标帧对(I0和I1)提供更好的光流估计,如图15所示。
光流估计模块704包括用于执行光流估计的两个阶段1502、1506的类似三尺度神经网络,并且用于执行光流估计的每个阶段1502、1506的神经网络共享两个较粗级别的权重,即,用于执行第一阶段1502的第一神经网络包括三个增加修正级别,用于执行第二阶段1506的第二神经网络包括三个增加修正级别,其中,第一神经网络的第一级别共享第二神经网络的第一级别的权重,第一神经网络的第二级别共享第二神经网络的第二级别的权重。用于执行光流估计的第一阶段1502的第一神经网络用于接收两个连续(例如顺序)帧,并计算两个连续(例如顺序)帧之间的双向光流。使用该执行第一阶段的网络,使用对应帧(即,f0→–1使用t=–1处的前一帧和t=0处的起始帧,以及f1→2使用t=1处的结束帧和t=2处的后续帧)作为输入来估计f0→–1和f1→2,如图15中的数字1504所示。然后,这两个光流1504用作f0→1和f1→0的初始估计,并与I0(起始帧)和I1(结束帧)组合,并传递到第二神经网络的最佳级别(即第三级别),该最佳级别用于执行第二阶段1506,以获得f0→1和f1→0的最终估计。并行地,f0→21503和f1→–1 1505的估计由第一阶段1502的神经网络生成,并由高阶运动建模模块708使用。
现有的光流估计技术通常尝试将像素从第一帧映射到第二帧中的确切位置。但是,精确的光流并不是为许多计算机视觉任务(包括视频帧插值)量身定制的。具体而言,现有的光流估计技术导致在第一帧和第二帧的遮挡区域中性能不是最佳。换句话说,光流的最佳方案作为指向完成进一步任务(例如视频帧插值)的步骤不一定产生进一步任务的最佳方案。类似地,对输入帧之间光流估计的强约束可能会降低中间帧的运动预测和插值效果,特别是对于复杂的非线性运动。相比之下,在估计输入帧之间的光流时接受一些灵活性可以在预测各帧之间更接近两个初始帧之间可能发生的非线性运动模式的对象运动时提供灵活性。这种灵活性可以提供某些优点,如以下示例所示。
在图8中,示出了根据示例实性施例使用三阶运动模型执行光流估计的结果。虚曲线901模拟像素在四帧跨越的时间内的运动路径,x轴920和y轴922是帧中的像素坐标。像素位置在四个连续帧中给出为X–1 906、X0 910、X1 914和X2 918。目的是寻找X0 910与X1 914之间像素的七个位置,如图中使用X0 910作为参考点通过图案化星形902所指示的。连接给定位置的直线905代表X0 910与其它三个点之间的光流。应用三阶模型(如以下高阶运动建模部分中的(等式11)所述)产生由实体星形904所示的预测运动路径。
图8中所示的使用三阶运动模型执行光流估计的结果可以与图9进行比较,图9示出了使用二阶运动模型执行光流估计的结果。像素位置在三个连续帧中给出为X–1 906、X0910和X1 914。使用二阶运动模型执行光流估计产生由实体星形904所示的预测运动路径。
在图8和图9中可以看出,预测位置904远离地面真值(图案化星形902)。可以观察到,并非通过考虑下一帧的地面真值位置(X1 914)来估计中间插值帧中的像素位置以拟合运动模型,赋予运动模型移动到X1'912等相邻位置的灵活性可以显著改善中间位置的运动预测。(类似地,如下所述松弛流估计约束可以支持使用相邻位置X–1'908和X2'916而不是X–1906和X2 918。)在图8和图9中,通过将实体星形904移动到对应的轮廓星形903,中间位置的预测位置的均方误差(mean squared error,MSE)将显著降低。在光流估计模块704的一些实施例中,通过松弛流估计模块704使用的流估计模型的损失函数,允许在光流估计过程中引入某些误差,可以赋予这种灵活性。
为了应用松弛在流估计模块704中用于光流估计的模型的损失函数的理念,一些实施例可以使用无监督式学习,类似于Jiang,H.、Sun,D.、Jampani,V.、Yang,M.H.、Learned-Miller,E.和Kautz,J.在超级slomo:用于视频插值的多个中间帧的高质量估计(Super slomo:High quality estimation of multiple intermediate frames forvideo interpolation),IEEE计算机视觉和模式识别会议记录,第9000-9008页(2018)(其全文通过引用并入本文)使用的无监督式学习。但是,可以使用松弛的翘曲损失函数来训练一些实施例,以优化光流f0→1,如下:
其中,I0 w→1表示被f0→1翘曲到用作地面真值参考点的结束帧I1的I0,d确定邻域的范围。在训练期间,将相同的损失函数应用于由流估计模块704中包括的神经网络估计的所有光流。
在一些实施例中,流估计模块704包括神经网络,其中,输入帧对I0(起始帧102)和I1(结束帧104)从低分辨率到高分辨率进行处理,并且在每个低分辨率下获得的光流估计由下一个高分辨率估计神经网络使用。图15示出了流估计模块704的更详细视图。为了更好地估计目标对(I0 102和I1 104)中的光流,由流估计模块704执行的光流估计的第一阶段1502估计I–1与I0之间以及I1与I2之间的先前光流和后续光流(optical flow,OF)f0→–1和f1→2 1504。然后,这些先前光流和后续光流1504由光流估计模块704在执行光流估计的第二阶段1506时用来引导I0与I1之间的OF估计,并生成初始光流图706,示出为表示双向光流的前向光流图和后向光流图。
为了优化由光流估计模块704执行的光流估计,通常,每个神经网络估计光流,使得起始帧中的每个像素被映射到结束帧中的精确对应位置。但是,经验结果表明,这种约束可能不会产生中间帧的像素位置的最佳估计,特别是在非线性运动的情况下。图3B所示的示例性非线性运动模式可用于说明灵活OF估计(即,允许OF估计中有一定量的误差)对运动预测精度的影响。
可以观察到,在光流估计模块704中包括的神经网络的训练期间接受一定程度的误差使估计的OF可以离开由实心点326定义的路径,并朝着由目标间隔(t=–2至t=2)中的预测的图案化点328定义的路径移动,这些图案化点比实心点326更好地估计实际曲线320。因此,为了生成更准确的中间运动预测,松弛了对光流估计的约束,并且在光流估计模块704中包括的神经网络的训练期间允许光流估计有一些误差。使用以下损失函数的一些实施例可以用于训练光流估计模块704的神经网络:
其中,I0 warped(x,y)=I0(x–△u,y–△v),且(△u,△v)是计算的光流。
这种松弛损失函数可以与传统的光流估计损失函数进行比较,传统的光流估计损失函数通过计算两个矢量之间的欧几里得(Euclidian)距离,将每个像素位置处的预测光流矢量(△u,△v)与地面真值光流矢量进行比较,计算端到端点误差。因此,示例性传统损失函数是:
其中,I0 warped(x,y)=I0(x–△u,y–△v),I1是地面真值,(△u,△v)是计算的光流。
在一些实施例中,光流模块704中包括的神经网络的用于光流估计的参数的更新仅使用四个帧的小邻域中的光流计算,这可以使训练模型更高效。
高阶运动建模
除了上述松弛的OF估计外,运动建模所采取的方法对预测的精度有重大影响。图7示出了几种不同的运动建模方法的结果。
在图7中,在三种运动场景下,用于执行运动建模的三个不同模型用它们的对象位置预测820绘制:恒定速度802、恒定加速度804和可变加速度806。对象位置在四个时间戳(t=0、t=1、t=2和t=3)给出,由带有垂直虚线交叉阴影的圆圈显示,模型用于预测对象在t=1.5处的位置。
线性运动场景802对应于图3B中的线连接点322:线性模型812、二阶运动模型814和三阶模型816都实现了与地面真值810对齐的相同预测。但是,高阶模型814、816与通常包括许多非线性运动的真实情况产生更好的拟合:在恒定加速度804场景下,线性模型812预测的对象位置820与高阶模型814、816不同;在可变加速度场景806下,线性模型812预测的对象位置820与二阶模型814不同,而二阶模型814又预测比三阶模型816更偏离的对象位置820。
因此,使用三阶运动模型进行运动建模可以是一种更强大的运动建模方法,在对象面临可变面和加速度的现实生活场景中捕捉运动。在一些实施例中,高阶运动建模模块708可以使用基于初始光流图706的三阶运动模型,由以下等式描述:
其中,t是生成中间帧的时间,ft1->t2是t=1处的输入帧702(结束帧I1104)与t=2处的输入帧702(I1104之后的后续帧)之间的光流。该等式可以应用于帧序列702,以生成中间光流图710。
三阶运动模型能够对具有变化加速度的对象的运动进行建模。考虑从时间0开始到中间时间戳ti的运动为f0→ti,通过三阶模型将此运动建模为:
其中,v0、a0和Δa0分别是在I0处估计的速度、加速度和加速度变化率。加速度项可以计算为:
Δa0=a1-a0,a0=f0→1+f0→-1,a1=f1→2+f1→0。 (等式8)
在上面的等式中,分别为帧I0和I1中的像素计算a0和a1。但是,对于这两个帧之间的对应像素,应考虑加速度变化。因此,ai被重新公式化,以根据帧I0中的像素位置计算Δa0,如下所示:
a1=f0→2-2×f0→1。 (等式9)
由于当加速度可变时v0不是恒定的,因此可以将上述三阶运动等式应用于t=1,以仅使用上文计算的信息求解v0:
最后,任何t∈[0,1]的f0→ti可以仅根据两个帧之间的光流表示:
f0→ti可以通过相同的方式计算。
光流修正
为了利用多个帧之间的相似性来辅助插值,并且还考虑到最中间帧中的误差增加的模式,一些实施例可以使用自适应联合处理作为光流修正模块712和/或像素修正模块716的一部分。一个或两个修正模块712、716可以使用金字塔模型来连续修正最容易出错的插值帧。
在光流修正模块712中,通过以上(等式11)预测的双向光流图f0→ti和f1→ti基于输入帧702之间计算的光流图。初始光流预测可能从光流估计和三阶运动建模继承误差,特别是在运动边界。为了改进光流图f0→ti和f1→ti,光流修正模块712考虑中间帧之间的关系,并在一个前向传递中处理所有中间帧。
为此,光流修正模块712包括时间金字塔光流修正模块,其用于强制实现中间帧之间的强结合,如图10所示。
图10示出了使用单个卷积神经网络从容易到困难逐步执行多帧插值的实施例。单个CNN接收七对初始预测光流的级联(双向中间光流图710),并根据插值中间帧的预期质量自适应地修正光流图。最接近两个初始帧(I0102和I1104)的中间帧(此处为It1和It7)更有可能获得更高质量的插值结果,因此它们仅由金字塔中的第一级别1152处理,而其它帧则由更多级别1154、1156和/或1158根据这些帧到初始帧I0102和I1104的距离处理。中间帧106(在这种情况下为It4)的光流由该架构中的所有级别1152、1154、1156、1158处理,因为它预计将实现最低质量的插值。为了充分利用光流修正模块712的每个级别1152、1154、1156、1158处的修正光流图,帧被在每个级别获得的光流翘曲为I0 w→ti和I1 w→ti,并馈送到下一个级别。这种翘曲和前馈有助于在下一级别获得更好的结果,因为与I0和I1相比,翘曲帧在时域上更接近该层目标帧中的位置。因此,I0与I1之间的运动由分段线性运动组成,每个运动都在短时间间隔内测量。
在所提出的单个CNN中,除了光流之外,在每个级别上还生成融合掩码bti。因此,可以生成(例如合成)中间帧,如下:
其中,和是ti处的修正双向光流图,⊙表示逐元素乘法,g(·,·)是双线性翘曲函数,如Liu,Z.、Yeh,R.A.、Tang,X.、Liu,Y.和Agarwala,A.在使用深度体素流的视频帧合成(Video frame synthesis using deep voxel flow),IEEE计算机视觉国际会议记录,第4463-4471页(2017)(其全文通过引用并入本文)中所述。
在操作中,中间光流图710被传递到光流修正模块712。如图10所示,光流修正模块712具有金字塔结构的神经网络,该神经网络根据作为中间帧到起始帧102和结束帧104的时间距离的函数的中间帧的预期质量自适应地修正中间光流图710。通过使用具有金字塔流修正的光流修正模块和具有复杂运动建模的光流估计模块,在金字塔处理操作中修正中间帧的估计流,同时考虑高阶(例如三阶)运动模型,以更好地处理非线性运动模式。光流修正模块712的金字塔结构提供了插值中间帧之间的强连接,以强制实现时间一致性。
如上文关于图3A所描述的,最接近起始帧102和结束帧104的帧It1和It7更有可能具有更高的质量。因此,It1和It7在金字塔的第一级别1152中处理,而其它帧根据它们与起始帧102和结束帧104的距离由金字塔中的更多处理步骤处理。在这种方法中,七个生成帧(It4)的中间帧由金字塔的所有级别1152、1154、1156、1158处理,因为它预计在插值中具有最低的质量级别。此外,当像素在时间步长上向中间帧中的位置靠近时,由翘曲操作1104产生的翘曲帧被馈送到下一级别用于融合。
从图10所示的光流修正模块712的左侧开始,中间光流图710在被馈送到金字塔结构的第一级别1152之前经历级联操作1102,所述金字塔结构包括光流修正神经网络的第一子网络1120,此处示为卷积神经网络的64通道子网络。It1 1132和It7 1144的光流图各自由具有泄漏relu函数的卷积块1106生成。这些光流图1132、1144各自由翘曲函数1104翘曲,以分别生成翘曲的第一中间帧I0 w→t1和翘曲的第七中间帧I0 w→t7。这些翘曲帧通过级联操作1102级联到第一子网络1120的特征图输出。
该过程在第二级别1154重复,第二级别1154包括48通道第二子网络子网络1122,并为It2 1134和It6 1142生成光流图,类似地将翘曲的第二中间帧和第六中间帧反馈回第二子网络1122的特征图输出。
该过程在第三级别1156重复,第三级别1156包括32通道第三子网络1124,并为It31136和It5 1140生成光流图,类似地将翘曲的第二中间帧和第六中间帧反馈回第三子网络1124的特征图输出。
第四级别1158是24通道第四子网络1126,它为中间帧It4 1138生成光流图作为其输出。
图11示出了每个子网络1120、1122、1124、1126的子网结构。子网络1120示为具有泄漏relu函数的两个卷积块1106、单个卷积块1108、加法操作1110、1106、1108和1110的第二次重复以及具有泄漏relu函数的最终卷积块1106的线性序列。第一侧通道将来自具有泄漏relu函数的第一卷积块1106的输出传递到第一加法操作1110,第二侧通道将来自第一加法操作1110的输出传递到第二加法操作1110。
图12示出了时间金字塔光流修正模块712的操作的进一步简化图示。
如图15所示,帧合成步骤(即操作)1508根据由光流修正模块712生成的修正中间光流图生成(例如合成)一组中间帧714。在一些实施例中,帧合成步骤(即操作)1508由光流修正模块712执行。帧合成步骤(即操作)1508可以使用翘曲、混合和/或其它帧合成技术来根据修正中间帧以及输入帧702的起始帧102和结束帧104合成中间帧。在一些实施例中,由光流修正模块712的翘曲操作1104生成的翘曲帧用作中间帧714。
像素修正
在一些实施例中,像素修正模块716根据从帧序列702获得的信息修正生成的中间帧714,使用金字塔处理结构在一次前向传递中处理所有中间帧714,并提高时间一致性。中间帧714可能仍然包括由于不准确的光流或融合掩码而产生的伪影。
如图13所示,像素修正模块716使用与光流修正模块712的时间金字塔结构类似的时间金字塔结构自适应地修正生成的中间帧714。但是,由于生成的中间帧714不对齐,将所有生成的中间帧714馈送到像素修正模块716的第一级别1352可能不能适当地提高生成的中间帧的质量。而是,各个生成的中间帧714根据它们的时间距离,分别提供在卷积神经网络的不同级别:It1和It7提供给第一级别1352;It2和It6提供给第二级别1354;It3和It5提供给第三级别1356;并且It4提供给第四级别1358。在每个时间戳ti,由光流修正模块712的翘曲操作1104生成的翘曲输入I0 w→ti和I1 w→ti也馈送到每个级别,以减少由不准确的融合掩码引起的误差。与光流修正模块712类似,修正中间帧也馈送到下一级别,以帮助修正更接近中间时间戳的生成的中间帧714。
如图13所示,相同的像素修正子网络718用于金字塔的每个级别。像素修正子网络718由两个残差块组成,一个卷积块在输入端,另一个卷积块在输出端。残差块可以如Nah,S.、Hyun Kim,T.和Mu Lee,K.在用于动态场景去模糊的深度多尺度卷积神经网络(Deepmulti-scale convolutional neural network for dynamic scene deblurring),IEEE计算机视觉和模式识别会议记录,第3883-3891页(2017)(其全文通过引用并入本文)中所述。
对于两个时间金字塔修正模块712、716,可以使用残差学习来学习光流和帧残差。在光流修正模块712中,通道的数量可以按递减顺序设置(例如,图10所示的64、48、32和24通道),因为当移动到中间时间步长时处理的帧较少。相比之下,在所示实施例中,相同数量的通道用于像素修正模块716的所有级别。
在操作中,由光流修正模块712生成的光流用于翘曲初始图像(输入帧702的起始帧102和结束帧104)并创建中间帧714。然后,将中间帧714传递到像素修正模块716,以使用另一个金字塔处理结构在像素级别修正,并生成最终修正的中间帧720作为输出。图13示出了示例性像素修正模块716的架构。由于中间帧714之间的运动偏移和使用丰富的RGB颜色空间,在第一级别1352输入所有七个候选中间帧714可能不能提供最佳的像素修正。较早的级别(例如1352和1354)可能没有大感受野来覆盖所有运动范围,并且七个帧的丰富图像内容可能会使早期级别混乱;更容易准确地修正更接近起始帧102或结束帧104的帧。因此,与光流修正模块712相比,像素修正模块716根据中间帧714与起始帧102和结束帧104的距离及其与中间时间步长(在这种情况下是t4)的接近程度,在神经网络的不同级别接收中间帧714输入。为了实现信息共享,将较早级别的特征图传递到后期级别。
在第一级别1352处,级联操作1102接收与两个中间帧It1和It7有关的输入数据:由[I0 w→t1、I1 w→t1和It1]组成的第一中间帧输入数据1302和由[I0 w→t7、I1 w→t7和It7]组成的第七中间帧输入数据1314。这些输入1302、1314被级联并馈送到第一像素修正子网络718,此处示出为像素修正卷积神经网络的64通道子网络。第一像素修正子网络718通过具有泄漏relu函数1310的卷积块生成对应于其输入中间帧714的修正帧720作为输出:第一修正中间帧和第七修正中间帧
第二级别1354使用级联操作1102将第一像素修正子网络718的特征图输出与其输入、第二中间帧输入数据1304和第六中间帧输入数据1312级联在一起,以产生其它对应的修正帧720:第二修正中间帧和第六修正中间帧
训练和损失函数
图13和图14还示出了用于训练包括在多帧插值系统700中的所有或一些模型(例如神经网络)的对抗式学习方案的基本结构。在训练期间,来自训练视频序列的输入帧702作为输入提供到多帧插值系统700,所述输入帧702包括非连续的起始帧102和结束帧104,在训练视频序列中,多个实际(地面真值)中间帧1334在时间上位于起始帧102与结束帧104之间。由像素修正模块716根据输入帧702以及从训练视频序列中获取的地面真值帧集合1334生成的修正帧720用于使用时间一致性生成式对抗网络(generative adversarialnetwork,GAN)的鉴别器网络1380计算对抗损失1390。在一些实施例中,多帧插值系统700可以构成单个金字塔神经网络,在单个金字塔网络的更高级别上逐步指导帧生成过程。通过联合优化所有中间帧,可以利用时间一致性。生成式对抗学习方案还可以用于在插值帧之间施加一致性,如Zhang,H.、Shen,C.、Li,Y.、Cao,Y.、Liu,Y.和Yan,Y.在利用时间一致性用于实时视频深度估计(Exploiting temporal consistency for real-time video depthestimation),IEEE计算机视觉国际会议记录,第1725-1734页(2019)(其全文通过引用并入本文)中所述。两人最小-最大游戏(two-player min-max game)的理念可以用来训练鉴别器网络D,如Goodfellow,I.、Pouget-Abadie,J.、Mirza,M.、Xu,B.、Warde-Farley,D.、Ozair,S.、Courville,A.和Bengio,Y.在生成式对抗网络(Generative adversarialnets),神经信息处理系统进展,第2672-2680页(2014)(其全文通过引用并入本文)中所述。因此,GAN(即生成器的参数)可以优化以下问题:
其中,g=[It1 gt,…It7 gt]是七个地面真值帧,x=[I–1,I0,I1,I2]是四个输入帧。到鉴别器1380的输入是由多帧插值系统700的像素修正模块716的神经网络生成的七个修正中间帧720的级联,用作GAN的生成器。添加GAN的以下生成分量作为时间损失:
为了优化光流修正模块712和像素修正模块716,应用l1损失。通过组合所有损失函数来训练整个多帧插值系统700:
其中,λ是加权系数,等于0.001。
现在描述多帧插值系统710中包括的模型(或神经网络)的训练示例。为了训练包括在多帧插值系统700中的神经网络,组装分辨率为720×1280像素的240fps视频剪辑的训练数据集。为了覆盖各种类型的场景,选择了903个短视频,长度在2秒与10秒之间。从这些视频中创建了8463个样本,每个样本由25个连续帧组成。每个样本用作一批训练数据,因此每个批次包括25个连续样本帧。多帧插值系统700接收第1帧、第9帧、第17帧和第25帧作为输入,并通过将第10帧至第16帧视为其地面真值,在第9帧与第17帧之间生成七个帧。随机改变的样本版本也用于训练中的数据增强:从样本的帧中随机裁剪352×325像素的片,并应用水平、垂直和时间翻转。
为了提高收敛速度,对包括在多帧视频帧插值软件系统700中的神经网络进行逐阶段训练。首先,除鉴别器网络外的每个神经网络通过不更新其它网络的参数,以10–4的学习速率在15个周期内独立使用l1损失进行训练。然后,使用上面的等式(15)和10–5的学习速率在100个周期内联合训练多帧视频帧插值软件系统700中包括的神经网络。使用Adam优化器(如Kingma,D.P.和Ba,J.在Adam:随机优化方法(Adam:A method for stochasticoptimization).arXiv preprint,arXiv:1412.6980(2014)中所述),等式(4)中的邻域范围d设置为9。在多帧视频帧插值软件系统700中包括的神经网络的训练期间,所有图像的像素值被扩展到范围[–1,1]。训练可以在Nvidia P100 GPU上进行。
其它应用
已经就慢动作视频生成领域中的应用描述了多帧插值系统700。但是,本文描述的一些实施例可以用于广泛的应用,例如视频内绘、视频对象移除和来自视频片段的对象的高分辨率3D重建。在光流修正模块712和像素修正模块716的上下文中描述的一般时间金字塔结构可以用于一系列序列处理和插值任务,其中,任务产生的接近提供给任务的给定输入数据的输出数据的质量比远离输入数据的输出数据更准确。输入数据可以是时间序列或任何其它序列:例如,业务分析数据、曲线超分辨率或高分辨率构造和分析。
在一些实施例中,在高阶运动建模模块708的上下文中描述的运动建模方法可以用于提高例如计算机视觉和计算机图形中的运动估计和合成的性能。一个示例性应用是时间分辨率有限的运动捕获,使用高阶运动建模生成具有运动微细节的超高分辨率视频帧。
应当理解,本文描述的方法、设备、系统和介质也适合于其它实际应用。
方法和处理器可读介质
本文描述的流程图和附图中的步骤和/或操作仅用于示例目的。在不脱离本发明的教导的情况下,这些步骤和/或操作可以有许多变化。例如,可以按不同的顺序执行步骤,或者可以添加、删除或修改步骤。
考虑到本发明,用于执行描述的上述方法的软件编码在本领域普通技术人员的范围内。可由一个或多个相应设备的一个或多个处理器执行以执行上述方法的机器可读代码可以存储在如数据管理器的存储器等机器可读介质中。术语“软件”和“固件”在本发明中是可互换的,并包括存储在存储器中供处理器执行的任何计算机程序,所述存储器包括随机存取存储器(random access memory,RAM)存储器、只读存储器(read only memory,ROM)存储器、EPROM存储器、电EPROM(electrically EPROM,EEPROM)存储器和非易失性RAM(non-volatile RAM,NVRAM)存储器。上述存储器类型仅仅是示例,因此并不限制可用于存储计算机程序的存储器类型。
概述
还公开了公开范围内的所有值和子范围。此外,虽然本文所公开和示出的系统、设备和过程可以包括特定数量的元件,但是可以修改这些系统、设备和组件以包括更多或更少此类元件。虽然本文描述了几个示例性实施例,但可以进行修改、适配和采取其它实现方式。例如,可以对附图中所示的元件进行替换、添加或修改,并且可以通过替换、重新排序或添加所公开方法的步骤来修改本文描述的示例性方法。此外,阐述了许多具体细节,以提供对本文描述的示例性实施例的透彻理解。但是,本领域的普通技术人员应了解,可以在没有这些具体细节的情况下实践本文描述的示例性实施例。此外,为了不模糊本文描述的示例性实施例,没有详细描述公知的方法、过程和元件。本文描述的主题旨在覆盖和涵盖所有适当的技术变更。
尽管描述了本发明,但至少部分地,就方法而言,本领域普通技术人员应理解,本发明还涉及各种元件,用于通过硬件、软件或其组合执行所描述方法的至少一些方面和特征。因此,本发明的技术方案可以体现在非易失性或非瞬时性机器可读介质(例如,光盘、闪存等)中,该介质上存储有有形地存储在其中的可执行指令,使处理设备能够执行本文公开的方法的示例。
术语“处理器”可以包括任何可编程系统,包括使用以下各项的系统:微处理器/控制器或纳米处理器/控制器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、精简指令集电路(reduced instruction set circuit,RISC)、逻辑电路,以及能够执行本文所述功能的任何其它电路或处理器。术语“数据库”可以指数据体、关系数据库管理系统(relational database management system,RDBMS)或两者。本文所使用的数据库可以包括任何数据集合,包括层次数据库、关系数据库、平面文件数据库、对象关系数据库、面向对象的数据库和存储在计算机系统中的任何其它结构化记录或数据集合。上述示例仅仅是示例,因此并不意欲以任何方式限制术语“处理器”或“数据库”的定义和/或含义。
本发明可以其它特定形式体现,而不脱离权利要求的主题。所描述的示例性实施例在所有方面均被视为仅是说明性的而非限制性的。本发明旨在覆盖和涵盖所有适当的技术变更。因此,本发明的范围由所附权利要求而不是由上述描述来描述。权利要求的范围不应受到示例中阐述的实施例限制,而应给予与整个描述一致的最广泛的解释。
示例性实施例的其它细节,以及实验结果,与其它技术的比较,用于训练和测试实施例的数据的识别,以及所依赖的其它参考文献,在以下题为“具有高阶运动建模的时间自适应多帧插值”的论文中阐述,该论文将被视为本详细描述的一部分。本文中引用的所有外部参考文献均通过引用全文并入本文。
Claims (22)
1.一种用于多帧视频帧插值的方法,其特征在于,所述方法包括:
获取对应于起始时间与结束时间之间的多个时间的多个光流图;
处理所述多个光流图,以生成对应于接近所述起始时间或所述结束时间的第一中间时间的第一修正光流图;
处理所述多个光流图和第一修正中间光流图,以生成对应于远离所述起始时间和所述结束时间的第二中间时间的第二修正光流图;
根据所述第一修正光流图生成第一新中间帧;
根据所述第二修正光流图生成第二新中间帧。
2.根据权利要求1所述的方法,其特征在于,还包括:
接收视频的视频序列,所述视频序列包括:
所述视频序列的起始帧,所述起始帧对应于所述视频序列的起始时间;
所述视频序列的结束帧,所述结束帧对应于所述视频序列的结束时间;
接收对应于两个附加时间的所述视频的两个附加帧,每个附加时间在所述视频序列的所述起始时间之前或所述结束时间之后;
生成对应于所述起始帧与所述结束帧之间估计的光流的至少一个初始光流图;
通过将运动模型应用于所述至少一个初始光流图,处理所述至少一个初始光流图以生成所述多个中间光流图,所述多个中间光流图对应于所述视频序列的所述起始时间与所述结束时间之间的多个中间时间。
3.根据权利要求2所述的方法,其特征在于,所述运动模型是三阶或更高阶的。
4.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:
对所述多个光流图进行处理,以生成至少一个附加修正光流图,其中,所述第一修正光流图、所述第二修正光流图和所述至少一个附加修正光流图构成对应于所述多个时间的多个修正光流图;
根据所述至少一个附加修正光流图生成至少一个附加的新中间帧,其中,所述第一新中间帧、所述第二新中间帧和所述至少一个附加的新中间帧构成对应于所述多个时间的多个新中间帧。
5.根据权利要求4所述的方法,其特征在于,还包括:
获取所述多个新中间帧;
通过以下方式对所述第一新中间帧和所述第二新中间帧进行修正:
根据所述多个新中间帧,生成对应于接近所述起始时间或所述结束时间的第一时间的第一修正帧;
根据所述多个新中间帧和所述第一修正帧,生成对应于远离所述起始时间和所述结束时间的第二时间的第二修正帧。
6.根据权利要求5所述的方法,其特征在于,还包括修正所述多个新中间帧,以根据所述多个新中间帧生成多个修正的新中间帧。
7.根据权利要求1至6中任一项所述的方法,其特征在于,还包括:
使用光流模型生成所述多个中间光流图,所述光流模型使用监督式学习算法、训练数据集和松弛损失函数进行训练,所述松弛损失函数被配置为在所述光流修正模型的训练期间允许所述估计的光流中有预定量的误差。
8.根据权利要求7所述的方法,其特征在于,所述松弛损失函数包括由生成式对抗网络生成的对抗损失函数。
9.根据权利要求4至6中任一项所述的方法,其特征在于,所述至少一个附加修正光流图是使用像素修正模型生成的,所述像素修正模型是使用生成式对抗网络生成的对抗损失函数训练的。
10.根据权利要求1至9中任一项所述的方法,其特征在于,处理所述多个光流图以生成第一修正光流图以及处理所述多个光流图和所述第一修正中间光流图以生成第二修正光流图是使用光流修正模型执行的,所述光流修正模型是使用生成式对抗网络生成的对抗损失函数训练的。
11.一种计算系统,其特征在于,包括:
处理器;
存储器,其中存储处理器可执行指令,其中,所述指令由所述处理器执行时,使所述计算系统:
获取对应于起始时间与结束时间之间的多个时间的多个光流图;
处理所述多个光流图,以生成对应于接近所述起始时间或所述结束时间的第一中间时间的第一修正光流图;
处理所述多个光流图和所述第一修正光流图,以生成对应于远离所述起始时间和所述结束时间的第二中间时间的第二修正光流图;
根据所述第一修正光流图生成第一新中间帧;
根据所述第二修正光流图生成第二新中间帧。
12.根据权利要求11所述的计算系统,其特征在于,所述指令由所述处理器执行时,还使所述计算系统:
接收视频的视频序列,所述视频序列包括:
所述视频序列的起始帧,所述起始帧对应于所述视频序列的起始时间;
所述视频序列的结束帧,所述结束帧对应于所述视频序列的结束时间;
接收对应于两个附加时间的所述视频的两个附加帧,每个附加时间在所述视频序列的所述起始时间之前或所述结束时间之后;
生成对应于所述起始帧与所述结束帧之间估计的光流的至少一个初始光流图;
通过将运动模型应用于所述至少一个初始光流图,处理所述至少一个初始光流图以生成所述多个中间光流图,所述多个中间光流图对应于所述视频序列的所述起始时间与所述结束时间之间的多个中间时间。
13.根据权利要求12所述的计算系统,其特征在于,所述运动模型是三阶或更高阶的。
14.根据权利要求11至13中任一项所述的计算系统,其特征在于,所述指令由所述处理器执行时,还使所述计算系统:
对所述多个光流图进行处理,以生成至少一个附加修正光流图,其中,所述第一修正光流图、所述第二修正光流图和所述至少一个附加修正光流图构成对应于所述多个时间的多个修正光流图;
根据所述至少一个附加修正光流图生成至少一个附加的新中间帧,其中,所述第一新中间帧、所述第二新中间帧和所述至少一个附加的新中间帧构成对应于所述多个时间的多个新中间帧。
15.根据权利要求14所述的计算系统,其特征在于,所述指令由所述处理器执行时,还使所述计算系统:
获取所述多个新中间帧;
通过以下方式对所述第一新中间帧和所述第二新中间帧进行修正:
根据所述多个新中间帧,生成对应于接近所述起始时间或所述结束时间的第一时间的第一修正帧;
根据所述多个新中间帧和所述第一修正帧,生成对应于远离所述起始时间和所述结束时间的第二时间的第二修正帧。
16.一种多帧视频帧插值系统,其特征在于,包括:
光流修正模块,用于:
获取对应于起始时间与结束时间之间的多个时间的多个光流图;
处理所述多个光流图,以生成对应于接近所述起始时间或所述结束时间的第一中间时间的第一修正光流图;
处理所述多个光流图和第一修正中间光流图,以生成对应于远离所述起始时间和所述结束时间的第二中间时间的第二修正光流图;
根据所述第一修正光流图生成第一新中间帧;
根据所述第二修正光流图生成第二新中间帧。
17.根据权利要求16所述的多帧视频帧插值系统,其特征在于,还包括:
光流估计模块,用于:
接收视频的视频序列,所述视频序列包括:
所述视频序列的起始帧,所述起始帧对应于所述视频序列的起始时间;
所述视频序列的结束帧,所述结束帧对应于所述视频序列的结束时间;接收对应于两个附加时间的所述视频的两个附加帧,每个附加时间在所述视频序列的所述起始时间之前或所述结束时间之后;
生成对应于所述起始帧与所述结束帧之间估计的光流的至少一个初始光流图;
运动建模模块,用于通过将运动模型应用于所述至少一个初始光流图,处理所述至少一个初始光流图以生成所述多个中间光流图,所述多个中间光流图对应于所述视频序列的所述起始时间与所述结束时间之间的多个中间时间。
18.根据权利要求17所述的多帧视频帧插值系统,其特征在于,所述运动建模模块用于使用为三阶或更高阶的运动模型生成所述多个中间光流图。
19.根据权利要求16至18中任一项所述的多帧视频帧插值系统,其特征在于,所述光流修正模块还用于:
对所述多个光流图进行处理,以生成至少一个附加修正光流图,其中,所述第一修正光流图、所述第二修正光流图和所述至少一个附加修正光流图构成对应于所述多个时间的多个修正光流图;
根据所述至少一个附加修正光流图生成至少一个附加的新中间帧,其中,所述第一新中间帧、所述第二新中间帧和所述至少一个附加的新中间帧构成对应于所述多个时间的多个新中间帧。
20.根据权利要求19所述的多帧视频帧插值系统,其特征在于,还包括像素修正模块,所述像素修正模块用于:
获取所述多个新中间帧;
通过以下方式对所述第一新中间帧和所述第二新中间帧进行修正:
根据所述多个新中间帧,生成对应于接近所述起始时间或所述结束时间的第一时间的第一修正帧;
根据所述多个新中间帧和所述第一修正帧,生成对应于远离所述起始时间和所述结束时间的第二时间的第二修正帧。
21.一种有形存储有指令的非瞬时性计算机可读介质,其特征在于,所述指令由处理单元执行时,使所述处理单元执行根据权利要求1至10中任一项所述的方法。
22.一种包括指令的计算机程序,其特征在于,所述指令由处理单元执行时,使所述处理单元执行根据权利要求1至10中任一项所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062985524P | 2020-03-05 | 2020-03-05 | |
US62/985,524 | 2020-03-05 | ||
US17/102,114 | 2020-11-23 | ||
US17/102,114 US11430138B2 (en) | 2020-03-05 | 2020-11-23 | Systems and methods for multi-frame video frame interpolation |
PCT/CN2021/073451 WO2021175041A1 (en) | 2020-03-05 | 2021-01-23 | Systems and methods for multi-frame video frame interpolation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115210716A true CN115210716A (zh) | 2022-10-18 |
Family
ID=77556288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180017962.6A Pending CN115210716A (zh) | 2020-03-05 | 2021-01-23 | 用于多帧视频帧插值的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11430138B2 (zh) |
CN (1) | CN115210716A (zh) |
WO (1) | WO2021175041A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115861384A (zh) * | 2023-02-27 | 2023-03-28 | 广东工业大学 | 基于生成对抗和注意力机制的光流估计方法及系统 |
CN115941872A (zh) * | 2023-02-08 | 2023-04-07 | 吉林大学 | 一种水下高速移动目标的视频插帧方法及其系统 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12039742B2 (en) * | 2020-11-13 | 2024-07-16 | Qualcomm Incorporated | Supervised learning and occlusion masking for optical flow estimation |
CN112584077B (zh) * | 2020-12-11 | 2023-02-21 | 北京百度网讯科技有限公司 | 视频的插帧方法、装置及电子设备 |
US11889057B2 (en) * | 2021-02-02 | 2024-01-30 | Novatek Microelectronics Corp. | Video encoding method and related video encoder |
US11399198B1 (en) * | 2021-03-01 | 2022-07-26 | Qualcomm Incorporated | Learned B-frame compression |
US11831909B2 (en) * | 2021-03-11 | 2023-11-28 | Qualcomm Incorporated | Learned B-frame coding using P-frame coding system |
CN115174824A (zh) * | 2021-03-19 | 2022-10-11 | 阿里巴巴新加坡控股有限公司 | 视频生成方法及装置、宣传类型视频生成方法及装置 |
US20230344962A1 (en) * | 2021-03-31 | 2023-10-26 | Meta Platforms, Inc. | Video frame interpolation using three-dimensional space-time convolution |
US11941080B2 (en) * | 2021-05-20 | 2024-03-26 | Retrocausal, Inc. | System and method for learning human activities from video demonstrations using video augmentation |
EP4318376A4 (en) * | 2021-05-24 | 2024-05-22 | Samsung Electronics Co., Ltd. | AI-BASED FRAME INTERPOLATION METHOD AND DEVICE |
US12003885B2 (en) * | 2021-06-14 | 2024-06-04 | Microsoft Technology Licensing, Llc | Video frame interpolation via feature pyramid flows |
CN113837136B (zh) * | 2021-09-29 | 2022-12-23 | 深圳市慧鲤科技有限公司 | 视频插帧方法及装置、电子设备和存储介质 |
CN114066730B (zh) * | 2021-11-04 | 2022-10-28 | 西北工业大学 | 一种基于无监督对偶学习的视频插帧方法 |
US20230245328A1 (en) * | 2022-02-02 | 2023-08-03 | Samsung Electronics Co., Ltd. | Multi-frame optical flow network with lossless pyramid micro-architecture |
US20240005587A1 (en) * | 2022-07-01 | 2024-01-04 | Adobe Inc. | Machine learning based controllable animation of still images |
US20240098216A1 (en) * | 2022-09-20 | 2024-03-21 | Nvidia Corporation | Video frame blending |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7916791B2 (en) * | 2006-06-16 | 2011-03-29 | International Business Machines Corporation | Method and system for non-linear motion estimation |
US9626770B2 (en) * | 2015-04-10 | 2017-04-18 | Apple Inc. | Generating synthetic video frames using optical flow |
US10003768B2 (en) | 2016-09-28 | 2018-06-19 | Gopro, Inc. | Apparatus and methods for frame interpolation based on spatial considerations |
US10776688B2 (en) * | 2017-11-06 | 2020-09-15 | Nvidia Corporation | Multi-frame video interpolation using optical flow |
US11122238B1 (en) * | 2017-11-07 | 2021-09-14 | Twitter, Inc. | Frame interpolation with multi-scale deep loss functions and generative adversarial networks |
WO2019168765A1 (en) | 2018-02-27 | 2019-09-06 | Portland State University | Context-aware synthesis for video frame interpolation |
CN109949221B (zh) | 2019-01-30 | 2022-05-17 | 深圳大学 | 一种图像处理方法及电子设备 |
-
2020
- 2020-11-23 US US17/102,114 patent/US11430138B2/en active Active
-
2021
- 2021-01-23 WO PCT/CN2021/073451 patent/WO2021175041A1/en active Application Filing
- 2021-01-23 CN CN202180017962.6A patent/CN115210716A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115941872A (zh) * | 2023-02-08 | 2023-04-07 | 吉林大学 | 一种水下高速移动目标的视频插帧方法及其系统 |
CN115861384A (zh) * | 2023-02-27 | 2023-03-28 | 广东工业大学 | 基于生成对抗和注意力机制的光流估计方法及系统 |
CN115861384B (zh) * | 2023-02-27 | 2023-05-23 | 广东工业大学 | 基于生成对抗和注意力机制的光流估计方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US11430138B2 (en) | 2022-08-30 |
WO2021175041A1 (en) | 2021-09-10 |
US20210279840A1 (en) | 2021-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115210716A (zh) | 用于多帧视频帧插值的系统和方法 | |
Chi et al. | All at once: Temporally adaptive multi-frame interpolation with advanced motion modeling | |
Eldesokey et al. | Confidence propagation through cnns for guided sparse depth regression | |
Zhang et al. | Unifying motion deblurring and frame interpolation with events | |
Ren et al. | A fusion approach for multi-frame optical flow estimation | |
KR102235745B1 (ko) | 컨볼루션 순환 신경망을 훈련시키는 방법 및 훈련된 컨볼루션 순환 신경망을 사용하는 입력된 비디오의 의미적 세그먼트화 방법 | |
CN110378348B (zh) | 视频实例分割方法、设备及计算机可读存储介质 | |
CN113076685B (zh) | 图像重建模型的训练方法、图像重建方法及其装置 | |
CN109903315B (zh) | 用于光流预测的方法、装置、设备以及可读存储介质 | |
Hu et al. | Capturing small, fast-moving objects: Frame interpolation via recurrent motion enhancement | |
WO2020170785A1 (ja) | 生成装置及びコンピュータプログラム | |
EP3298579B1 (en) | Visual data processing using energy networks | |
Tananaev et al. | Temporally consistent depth estimation in videos with recurrent architectures | |
Shangguan et al. | Learning cross-video neural representations for high-quality frame interpolation | |
CN112541972B (zh) | 一种视点图像处理方法及相关设备 | |
Chen et al. | PDWN: Pyramid deformable warping network for video interpolation | |
Jung et al. | Anyflow: Arbitrary scale optical flow with implicit neural representation | |
CN114973071A (zh) | 基于长短期时序特征的无监督视频目标分割方法及系统 | |
Choi et al. | Test-time adaptation for video frame interpolation via meta-learning | |
KR102057395B1 (ko) | 기계학습 기반 비디오 보외법을 이용한 영상 생성 방법 | |
CN111275751A (zh) | 一种无监督绝对尺度计算方法及系统 | |
CN108600762B (zh) | 结合运动补偿和神经网络算法的递进式视频帧生成方法 | |
US20230419507A1 (en) | Systems and methods for motion estimation and view prediction | |
EP4224860A1 (en) | Processing a time-varying signal using an artificial neural network for latency compensation | |
Ertenli et al. | Streaming multiscale deep equilibrium models |
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 |