CN112995715A - 视频插帧处理方法、装置、电子设备及存储介质 - Google Patents

视频插帧处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112995715A
CN112995715A CN202110422224.1A CN202110422224A CN112995715A CN 112995715 A CN112995715 A CN 112995715A CN 202110422224 A CN202110422224 A CN 202110422224A CN 112995715 A CN112995715 A CN 112995715A
Authority
CN
China
Prior art keywords
video frame
mapping
optical flow
reverse
reference information
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
Application number
CN202110422224.1A
Other languages
English (en)
Other versions
CN112995715B (zh
Inventor
祝叶
李昱
王鑫涛
罗越
单瀛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110422224.1A priority Critical patent/CN112995715B/zh
Publication of CN112995715A publication Critical patent/CN112995715A/zh
Application granted granted Critical
Publication of CN112995715B publication Critical patent/CN112995715B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请提供了一种视频插帧处理方法、装置、电子设备及计算机可读存储介质,涉及云技术在视频处理领域的应用;方法包括:从视频中获取第一视频帧和第二视频帧,其中,第一视频帧是第二视频帧的前向帧;获取从第一视频帧到第二视频帧的第一后向光流,基于第一后向光流进行前向映射处理,得到前向映射结果;获取从第二视频帧到第一视频帧的第一前向光流,基于第一前向光流进行反向映射处理,得到反向映射结果;基于前向映射结果和反向映射结果进行融合处理,得到第三视频帧,将第三视频帧插入到视频的第一视频帧和第二视频帧之间。通过本申请,能够生成高质量的中间视频帧,以提高插帧后视频的播放效果。

Description

视频插帧处理方法、装置、电子设备及存储介质
技术领域
本申请涉及视频处理技术领域,尤其涉及一种视频插帧处理方法、装置、电子设备及计算机可读存储介质。
背景技术
人工智能(AI,Artificial Intelligence)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
视频处理是人工智能的典型应用,其中,视频插帧又是视频处理中的一个经典任务,旨在根据一段视频中的前后视频帧合成过渡平滑的中间视频帧,以使得视频播放更加流畅,从而提升用户的观看体验。例如可以通过视频插帧处理将24帧率的视频转变为48帧率的视频,从而让用户在观看时感觉视频更加清晰流畅。
然而,相关技术提供的方案在根据前后视频帧生成中间视频帧时,生成的中间视频帧存在模糊和重影等问题,从而影响视频插帧效果。
发明内容
本申请实施例提供一种视频插帧处理方法、装置、电子设备及计算机可读存储介质,能够生成高质量的中间视频帧,以提高插帧后视频的播放效果。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种视频插帧处理方法,包括:
从视频中获取第一视频帧和第二视频帧,其中,所述第一视频帧是所述第二视频帧的前向帧;
获取从所述第一视频帧到所述第二视频帧的第一后向光流,基于所述第一后向光流进行前向映射处理,得到前向映射结果;
获取从所述第二视频帧到所述第一视频帧的第一前向光流,基于所述第一前向光流进行反向映射处理,得到反向映射结果;
基于所述前向映射结果和所述反向映射结果进行融合处理,得到第三视频帧,将所述第三视频帧插入到所述视频的所述第一视频帧和所述第二视频帧之间。
上述方案中,所述基于所述第一后向光流对所述第一视频帧、以及所述第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息,包括:基于所述第一后向光流,确定从所述第一视频帧的第一时刻到中间时刻的第二后向光流,其中,所述中间时刻是所述第一时刻和所述第二视频帧的第二时刻之间的任意值;基于所述第二后向光流,对所述第一视频帧以及所述第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息,其中,所述第一前向映射视频帧是所述中间时刻对应的视频帧。
上述方案中,所述第一参考信息包括以下至少之一:所述第一视频帧对应的第一特征图像、所述第一视频帧对应的第一边缘图像;所述第二参考信息包括以下至少之一:所述第二视频帧对应的第二特征图像、所述第二视频帧对应的第二边缘图像。
上述方案中,所述基于所述第一前向光流对所述第二视频帧、以及所述第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息,包括:基于所述第一前向光流,确定从中间时刻到所述第二视频帧的第二时刻的第三后向光流,其中,所述中间时刻是所述第一视频帧的第一时刻和所述第二时刻之间的任意值;基于所述第三后向光流,对所述第二视频帧以及所述第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息,其中,所述第一反向映射视频帧是所述中间时刻对应的视频帧。
本申请实施例提供一种视频插帧处理装置,包括:
获取模块,用于从视频中获取第一视频帧和第二视频帧,其中,所述第一视频帧是所述第二视频帧的前向帧;
所述获取模块,还用于获取从所述第一视频帧到所述第二视频帧的第一后向光流;
前向映射模块,用于基于所述第一后向光流进行前向映射处理,得到前向映射结果;
所述获取模块,还用于获取从所述第二视频帧到所述第一视频帧的第一前向光流;
反向映射模块,用于基于所述第一前向光流进行反向映射处理,得到反向映射结果;
融合模块,用于基于所述前向映射结果和所述反向映射结果进行融合处理,得到第三视频帧,将所述第三视频帧插入到所述视频的所述第一视频帧和所述第二视频帧之间。
上述方案中,所述前向映射模块,还用于基于所述第一后向光流对所述第一视频帧、以及所述第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息;其中,所述第一参考信息包括以下至少之一:所述第一视频帧对应的第一特征图像、所述第一视频帧对应的第一边缘图像;将所述第一前向映射视频帧以及所述第一前向映射参考信息组合为前向映射结果。
上述方案中,所述装置还包括确定模块,用于基于所述第一后向光流,确定从所述第一视频帧的第一时刻到中间时刻的第二后向光流,其中,所述中间时刻是所述第一时刻和所述第二视频帧的第二时刻之间的任意值;所述前向映射模块,还用于基于所述第二后向光流,对所述第一视频帧以及所述第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息,其中,所述第一前向映射视频帧是所述中间时刻对应的视频帧。
上述方案中,所述前向映射模块,还用于基于所述第一后向光流对所述第一视频帧、以及所述第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息;其中,所述第一参考信息包括以下至少之一:所述第一视频帧对应的第一特征图像、所述第一视频帧对应的第一边缘图像;以及用于基于所述第一前向光流对所述第二视频帧、以及所述第二视频帧对应的第二参考信息进行前向映射处理,得到第二前向映射视频帧以及第二前向映射参考信息;其中,所述第二参考信息包括以下至少之一:所述第二视频帧对应的第二特征图像、所述第二视频帧对应的第二边缘图像;将所述第一前向映射视频帧、所述第一前向映射参考信息、所述第二前向映射视频帧以及所述第二前向映射参考信息组合为前向映射结果。
上述方案中,所述确定模块,还用于基于所述第一后向光流,确定从所述第一视频帧的第一时刻到中间时刻的第二后向光流,其中,所述中间时刻是所述第一时刻和所述第二视频帧的第二时刻之间的任意值;所述前向映射模块,还用于基于所述第二后向光流,对所述第一视频帧以及所述第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息。
上述方案中,所述确定模块,还用于基于所述第一前向光流,确定从所述第二视频帧的第二时刻到中间时刻的第二前向光流,其中,所述中间时刻是所述第一视频帧的第一时刻和所述第二时刻之间的任意值;所述前向映射模块,还用于基于所述第二前向光流,对所述第二视频帧以及所述第二视频帧对应的第二参考信息进行前向映射处理,得到第二前向映射视频帧以及第二前向映射参考信息,其中,所述第二前向映射视频帧是所述中间时刻对应的视频帧。
上述方案中,所述反向映射模块,还用于基于所述第一前向光流对所述第二视频帧、以及所述第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息;其中,所述第二参考信息包括以下至少之一:所述第二视频帧对应的第二特征图像、所述第二视频帧对应的第二边缘图像;将所述第一反向映射视频帧以及所述第一反向映射参考信息组合为反向映射结果。
上述方案中,所述确定模块,还用于基于所述第一前向光流,确定从中间时刻到所述第二视频帧的第二时刻的第三后向光流,其中,所述中间时刻是所述第一视频帧的第一时刻和所述第二时刻之间的任意值;所述反向映射模块,还用于基于所述第三后向光流,对所述第二视频帧以及所述第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息,其中,所述第一反向映射视频帧是所述中间时刻对应的视频帧。
上述方案中,所述反向映射模块,还用于基于所述第一前向光流对所述第二视频帧、以及所述第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息;其中,所述第二参考信息包括以下至少之一:所述第二视频帧对应的第二特征图像、所述第二视频帧对应的第二边缘图像;以及用于基于所述第一后向光流对所述第一视频帧、以及所述第一视频帧对应的第一参考信息进行反向映射处理,得到第二反向映射视频帧以及第二反向映射参考信息;其中,所述第一参考信息包括以下至少之一:所述第一视频帧对应的第一特征图像、所述第一视频帧对应的第一边缘图像;将所述第一反向映射视频帧、所述第一反向映射参考信息、所述第二反向映射视频帧以及所述第二反向映射参考信息组合为反向映射结果。
上述方案中,所述确定模块,还用于基于所述第一前向光流,确定从中间时刻到所述第二视频帧的第二时刻的第三后向光流,其中,所述中间时刻是所述第一视频帧的第一时刻和所述第二时刻之间的任意值;所述反向映射模块,还用于基于所述第三后向光流,对所述第二视频帧以及所述第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息。
上述方案中,所述确定模块,还用于基于所述第一后向光流,确定从中间时刻到所述第一视频帧的第一时刻的第三前向光流,其中,所述中间时刻是所述第一时刻和所述第二视频的第二时刻之间的任意值;所述反向映射模块,还用于基于所述第三前向光流,对所述第一视频帧、以及所述第一视频帧对应的第一参考信息进行反向映射处理,得到第二反向映射视频帧以及第二反向映射参考信息,其中,所述第二反向映射视频帧是所述中间时刻对应的视频帧。
上述方案中,所述装置还包括编码模块,用于对所述前向映射结果进行编码处理,得到前向中间特征;以及用于对所述反向映射结果进行编码处理,得到反向中间特征;所述融合模块,还用于对所述前向中间特征和所述反向中间特征进行融合处理,得到融合中间特征;所述装置还包括解码模块,用于对所述融合中间特征进行解码处理,得到第三视频帧。
上述方案中,所述编码模块,还用于对所述前向映射结果进行下采样处理,得到不同分辨率尺度的前向映射结果;分别对每个所述分辨率尺度的前向映射结果进行编码处理,得到对应分辨率尺度的前向中间特征;以及用于对所述反向映射结果进行下采样处理,得到不同分辨率尺度的反向映射结果;分别对每个所述分辨率尺度的反向映射结果进行编码处理,得到对应分辨率尺度的反向中间特征;所述融合模块,还用于将相同分辨率尺度的前向中间特征和反向中间特征进行融合处理,得到多个不同分辨率尺度的融合中间特征。
上述方案中,所述编码处理和所述解码处理是通过生成网络模型来实现的;所述装置还包括训练模块,用于通过以下方式训练所述生成网络模型:获取第一视频帧样本和第二视频帧样本,所述第一视频帧样本是所述第二视频帧样本的前向帧;通过所述生成网络模型对所述第一视频帧样本和第二视频帧样本进行预测处理,得到预测中间视频帧;将所述预测中间视频帧和标记中间视频帧代入损失函数,以确定对应的误差,并根据所述误差确定所述生成网络模型的梯度;根据所述梯度更新所述生成网络模型的参数。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的视频插帧处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的视频插帧处理方法。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,用于被处理器执行时,实现本申请实施例提供的视频插帧处理方法。
本申请实施例具有以下有益效果:
通过结合使用前向映射和反向映射,并对前向映射结果和反向映射结果进行融合处理,以生成中间视频帧,可以通过反向映射的结果为前向映射的结果存在的空洞提供信息,同时,也可以通过前向映射的准确结果来辅助反向映射的结果,即通过同时使用前向映射和反向映射能够生成高质量的中间视频帧,从而提高最终视频插帧形成的视频的播放的流畅度。
附图说明
图1是本申请实施例提供的视频插帧处理系统100的架构示意图;
图2是本申请实施例提供的服务器200的结构示意图;
图3是本申请实施例提供的视频插帧处理方法的原理示意图;
图4是本申请实施例提供的视频插帧处理方法的流程示意图;
图5是本申请实施例提供的视频插帧处理方法的流程示意图;
图6是本申请实施例提供的视频插帧处理方法的流程示意图;
图7是本申请实施例提供的视频插帧处理方法的原理示意图;
图8是本申请实施例提供的生成网络模型的结构示意图;
图9A是本申请实施例提供的参考视频帧;
图9B是通过相关技术提供的前向映射方法生成的中间视频帧;
图9C是通过相关技术提供的反向映射方法生成的中间视频帧;
图9D是通过本申请实施例提供的视频插帧处理方法生成的中间视频帧。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解, “一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)光流(Optical Flow),当人的眼睛观察运动物体时,物体的景象在人眼的视网膜上形成一系列连续变化的图像,这一系列连续变化的信息不断“流过”视网膜(即图像平面),好像是一种光的“流”,故称之为光流。光流估计就是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息。光流包括前向光流和后向光流,其中,前向光流是指从较早时刻的视频帧到较晚时刻的视频帧的光流,例如从T1时刻对应的第一视频帧到T2时刻对应的第二视频帧的光流(T1<T2);后向光流是指从较晚时刻的视频帧到较早时刻的视频帧的光流,例如从T2时刻对应的第二视频帧到T1时刻对应的第一视频帧的光流(T2>T1)。
2)前向映射,以原图(即待映射的图像)每个像素为基准计算被它影响的新图(即映射后的图像)像素。例如以将第一视频帧I 1前向映射至中间时刻tmid为例,对于待映射的第一视频帧I 1,假设某个位置为(x,y)的像素点,其对应的光流(即从第一视频帧I 1对应的第一时刻t1到中间时刻tmid的光流)为(u,v),则将第一视频帧I 1映射到中间时刻tmid后,该像素点的位置将变成(x+u,y+v)。
3)反向映射,以新图(即映射后的图像)每个像素为基准计算影响它的原图(即待映射的图像)像素。例如以将第一视频帧I 1后向映射至中间时刻tmid为例,对于映射后的视频帧(即中间时刻tmid对应的视频帧),假设某个位置为(x,y)的像素点,其对应的光流(即从中间时刻tmid到第一视频帧I 1对应的第一时刻t1的光流)为(u,v),则通过反向映射在待映射的第一视频帧I 1的位置为(x+u,y+v)处进行采样,从而可以得到映射后的视频帧中(x,y)的值 。
4)边缘图像,是对原始图像进行边缘提取后得到的图像。图像最基本的特征就是边缘,边缘是图像性区域和另一个属性区域的交接处,是区域属性发生突变的地方,是图像中不确定性最大的地方,也是图像信息最集中的地方,图像的边缘包含着丰富的信息。常见的图像边缘提取方法包括:基于固定的局部运算方法,例如微分法、拟合法等;以能量最小化为准则的全局提取方法;小波变换法等。
5)特征图像,即特征图,主要包括图像的颜色特征、纹理特征、形状特征和空间关系特征等。其中,颜色特征是一种全局特征,描述了图像或图像区域所对应的对象的表面性质;纹理特征也是一种全局特征,也描述了图像或图像区域所对应对象的表面性质,但与颜色特征不同,纹理特征不是基于像素点的特征,它需要在包含多个像素点的区域中进行统计计算;形状特征包括轮廓特征和区域特征;空间关系特征是指图像中分割出来的多个对象之间的相互的空间位置或相对方向关系。
视频插帧是指在已有的视频帧基础上生成中间视频帧,以使得视频播放更加顺滑。目前,相关技术在进行视频插帧时,通常是采用深度学习的方法来进行中间视频帧的预测,根据使用方法的不同,可以分为直接预测中间视频帧和基于光流的方法。
其中,基于光流的视频插帧方法可以大致分为如下步骤:首先,通过一个光流估计模型(例如可以是预先训练好的光流估计模型)得到前后视频帧间的光流,然后根据光流将前后视频帧及相关参考信息(例如可以是前后视频帧分别对应的特征图像、边缘图像等)映射到中间时刻得到初始预测结果(即初始中间视频帧),最后将映射后的初始预测结果输入到生成网络得到最终的预测结果(即最终生成的中间视频帧)。目前,相关技术在利用光流将前后视频帧及对应的参考信息映射到中间时刻时使用的映射方法可以分为两类,第一类是反向映射,第二类是前向映射。
也就是说,相关技术在进行视频插帧时,通常只使用单向的映射方法将前后视频帧及对应的参考信息映射到中间时刻。然而,申请人发现:无论是前向映射还是反向映射,其都存在不足导致映射后的初始预测结果存在问题,进而导致最终生成的中间视频帧存在瑕疵。例如对于前向映射会因为可能存在多个位置映射到同一个位置的情况而导致映射后的结果存在空洞和模糊;而对于反向映射则需要中间时刻到前后参考时刻(即前后视频帧分别对应的时刻)的光流,且目前只能通过前后视频帧间的光流进行近似计算,从而导致反向映射会存在映射不准确的情况。
申请人在实施本申请实施例的过程中还发现:前向映射和反向映射在一定意义上存在互补的情况,例如可以通过反向映射的结果为前向映射的结果存在的空洞提供信息,同时也可以通过前向映射的准确结果来辅助反向映射的结果来生成最终的中间视频帧。据此,在进行视频插帧时,可以同时使用前向映射和反向映射,将两种映射的结果作为初始结果输入一个生成网络来生成最终的中间视频帧,该生成网络可以接受两种映射的结果作为输入,并将两种映射的结果建立联系和双向特征交互,从而得到高质量的中间视频帧,以提高视频插帧效果。
鉴于此,本申请实施例提供一种视频插帧处理方法、装置、电子设备和计算机可读存储介质,能够生成高质量的中间视频帧,以提高视频插帧效果。下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为终端,也可以实施为服务器,或者由终端和服务器协同实施。下面,将说明电子设备实施为服务器时的示例性应用。
参见图1,图1是本申请实施例提供的视频插帧处理系统的架构示意图,为实现支撑一个视频插帧应用,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,终端400将待插帧的视频通过网络300上传至服务器200,由服务器200对终端400上传的待插帧的视频进行插帧处理,得到插帧后的视频,例如服务器200对终端400上传的24帧率的视频进行插帧处理,得到48帧率的视频,随后,服务器200将插帧后的视频回传至终端400,以调用终端400上运行的计算机程序410进行呈现和播放。
在图1中是以终端400和服务器200协同完成本申请实施例提供的视频插帧处理方法为例说明,可以理解的,作为替换方案,终端400可以依赖于自身的运算能力完成视频插帧处理。
在一些实施例中,终端400通过运行计算机程序410来实现本申请实施例提供的视频插帧处理方法,例如,计算机程序410可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,APPlication),即需要在操作系统中安装才能运行的程序,例如视频APP或者直播APP;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的视频小程序或者直播小程序。总而言之,上述计算机程序410可以是任意形式的应用程序、模块或插件。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端400以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
在另一些实施例中,本申请实施例提供的视频插帧处理方法也可以结合区块链技术实现。
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
下面以终端将待插帧的视频对应的标识上传至区块链网络进行保存为例,说明区块链网络的示例性应用。
首先,终端将待插帧的视频对应的标识发送至区块链网络,并生成对应的交易,交易包括:为了上链的待插帧的视频对应的标识、上链标识需要调用的智能合约以及向智能合约传递的参数;交易还可以包括终端的数字证书、签署的数字签名,并将交易广播到区块链网络中的共识节点。
接着,区块链网络中的共识节点在接收到交易时,对交易携带的数字证书和数字签名进行验证,验证成功后,根据交易中携带的终端的身份,确认终端是否具有交易权限,数字签名和权限验证中的任何一个验证错误都将导致交易失败。验证成功后签署共识节点自己的数字签名(例如,使用节点的私钥对交易的摘要进行加密得到),并继续在区块链网络中广播。
然后,区块链网络中的共识节点接收到验证成功的交易后,将交易填充到新的区块中,并进行广播。区块链网络中的共识节点广播新区块时,会对新区块进行验证,例如,验证新区块中交易的数字签名是否有效,如果验证成功,则将新区块追加到自身所存储的区块链的尾部,并根据交易的结果更新状态数据库,并执行新区块中的交易,例如对于提交的存储待插帧的视频对应的标识的交易,共识节点在状态数据库中添加包括待插帧的视频对应的标识的键值对。
再以服务器向区块链网络发送获取待插帧的视频对应的标识请求为例,继续说明区块链网络的示例性应用。
在一些实施例中,当服务器具有发起查询待插帧的视频对应的标识的权限时,可以由服务器生成用于查询待插帧的视频的标识的交易并提交到区块链网络中,其中,查询请求中携带键名,以供区块链网络中的共识节点执行交易从状态数据库中查询与键名对应的数据(即待插帧视频的标识),接着,区块链网络将查询到的标识发送至服务器,以使服务器根据标识获取对应的视频,并对视频进行插帧处理,如此,通过将待插帧视频对应的标识存储至区块链网络中,基于区块链网络去中心化、分布式存储和不可篡改的特性,确保了视频数据的安全性。
下面对图1中的服务器200的结构进行说明。参见图2,图2是本申请实施例提供的服务器200的结构示意图,图2所示的服务器200包括:至少一个处理器210、存储器240、至少一个网络接口220。服务器200中的各个组件通过总线系统230耦合在一起。可理解,总线系统230用于实现这些组件之间的连接通信。总线系统230除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统230。
处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器240可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器240可选地包括在物理位置上远离处理器 210的一个或多个存储设备。
存储器240包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器240旨在包括任意适合类型的存储器。
在一些实施例中,存储器240能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统241,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块242,用于经由一个或多个(有线或无线)网络接口220到达其他计算设备,示例性的网络接口220包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器240中的视频插帧处理装置243,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块2431、前向映射模块2432、反向映射模块2433、融合模块2434、确定模块2435、编码模块2436、解码模块2437和训练模块2438,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。需要指出,在图2中为了方便表达,一次性示出了上述所有模块,但不应视为在视频插帧处理装置243排除了可以只包括获取模块2431、前向映射模块2432、反向映射模块2433和融合模块2434的实施,将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的视频插帧处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
下面将结合本申请实施例提供的电子设备的示例性应用和实施,说明本申请实施例提供的视频插帧处理方法,本申请实施例提供的视频插帧处理方法可以由上文的终端400独立完成、也可以由上文的服务器200独立完成、或者由上文的终端400和服务器200协同完成。下面以由上文的服务器200独立实施本申请实施例提供的视频插帧处理方法为例进行说明。
参见图3,图3是本申请实施例提供的视频插帧处理方法的原理示意图,如图3所示,本申请实施例提供的视频插帧处理方法主要涉及边缘检测模型、光流估计模型、特征提取模型、双向映射(包括前向映射和反向映射)和生成网络模型五个部分。
示例的,可以通过边缘检测模型分别提取出第一视频帧和第二视频帧的边缘图像,同时,还可以基于光流估计模型计算出从第一视频帧到第二视频帧的第一前向光流、以及从第二视频帧到第一视频帧的第一后向光流,此外,还可以通过特征提取模型分别提取出第一视频帧和第二视频帧对应的特征图像;随后,可以通过光流估计模型得到的第一后向光流对第一视频帧以及对应的第一参考信息进行前向映射处理,得到前向映射结果、以及通过光流估计模型得到的第一前向光流对第二视频帧以及对应的第二参考信息进行反向映射处理,得到反向映射结果,随后,将前向映射结果和反向映射结果输入生成网络模型中进行融合处理,以得到用于插入第一视频帧和第二视频帧之间的第三视频帧。
下面对图3中示出的边缘检测模型、光流估计模型、特征提取模型、双向映射和生成网络模型进行具体说明。
示例的,参见图4,图4是本申请实施例提供的视频插帧处理方法的流程示意图,将结合图4示出的步骤进行说明。
在步骤S101中,从视频中获取第一视频帧和第二视频帧。
在一些实施例中,在从数据库中获取待插帧的视频后或者在接收到终端上传的待插帧的视频后,从视频中获取第一视频帧和第二视频帧,其中,第一视频帧是第二视频帧的前向帧。也就是说,第一视频帧和第二视频帧是待插帧的视频中的前后两帧,第一视频帧和第二视频帧可以是连续的前后两帧,也可以是不连续的前后两帧。除了二者之间的时序关系外,本申请实施例对第一视频帧和第二视频帧的选择不作限定。为了表述方便,下文中将第一视频帧记为I 1,将第二视频帧记为I 2
在步骤S102中,获取从第一视频帧到第二视频帧的第一后向光流,基于第一后向光流进行前向映射处理,得到前向映射结果。
在一些实施例中,在从待插帧的视频中获取I 1I 2后,可以调用预先训练好的光流估计模型(即图3中示出的光流估计模型)获取从I 1I 2的第一后向光流,即从I 1的第一时刻t1I 2的第二时刻t2的光流,为了表述方便,下文中将第一后向光流记为F1→2
示例的,光流估计模型可以是通过光流神经网络(FlowNet)训练得到的预测模型。在光流估计模型的训练过程中,通过光流神经网络对多对训练图像进行光流估计;并基于光流神经网络输出的光流以及真实的光流,对光流神经网络的网络参数进行更新,以使光流神经网络输出的光流尽可能接近真实的光流。
需要说明的是,F1→2也可以是通过其他光流估计算法计算得到的,例如两帧差分的光流估计算法(Lucas-Kanade)、估计图像的稠密光流场的光流估计算法(Horn-Schunck)等,本申请实施例中,对F1→2的获取方式,不加以限定。
在另一些实施例中,承接上述示例,在获取到F1→2后,基于F1→2进行前向映射处理,得到前向映射结果。
示例的,在获取到F1→2后,可以基于F1→2I 1、以及I 1对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息(例如可以基于F1→2I 1、以及I 1对应的第一参考信息映射到中间时刻tmid,其中,t1<tmid<t2,例如tmid可以是t1和t2的平均值,即需要插入中间视频帧的位置刚好位于第一视频帧和第二视频帧的正中间,当然,需要插入中间视频帧的位置也可以不在第一视频帧和第二视频帧的正中间);其中,第一参考信息包括以下至少之一:I 1对应的第一特征图像、I 1对应的第一边缘图像;随后,将第一前向映射视频帧以及第一前向映射参考信息组合成前向映射结果。
举例来说,以需要插入中间视频帧的时刻为tmid为例,其中,t1<tmid<t2,首先基于F1→2,计算出从I 1的第一时刻t1到中间时刻tmid的第二后向光流,为描述方便,下文中将第二后向光流记为F1→mid,例如当对象在I 1I 2之间线性运动(即运动轨迹为线性的匀速运动),则F1→mid=(tmid-t1)/(t2-t1)*F1→2;接着,基于F1→midI 1I 1对应的第一边缘图像、以及I 1对应的第一特征图像映射到中间时刻tmid,得到中间时刻tmid对应的第一前向映射视频帧、第一前向映射边缘图像以及第一前向映射特征图像,随后,将第一前向映射视频帧、第一前向映射边缘图像以及第一前向映射特征图像组合成前向映射结果,作为前向映射分支输入至生成网络中以生成最终的中间视频帧。
下面对前向映射的计算过程进行具体说明,前向映射的数学描述如下:
Figure 587689DEST_PATH_IMAGE001
其中,
Figure 317878DEST_PATH_IMAGE002
Figure 910665DEST_PATH_IMAGE003
表示映射后的图像(例如中间时刻tmid对应的视频帧)像素的坐标,
Figure 118923DEST_PATH_IMAGE004
Figure 746345DEST_PATH_IMAGE005
表示即待映射的图像(例如第一视频帧I 1)像素的坐标,
Figure 381857DEST_PATH_IMAGE006
Figure 524256DEST_PATH_IMAGE007
表示两种映射关系,通过输入的
Figure 536206DEST_PATH_IMAGE004
Figure 18134DEST_PATH_IMAGE005
来确定相应的
Figure 812828DEST_PATH_IMAGE008
Figure 380207DEST_PATH_IMAGE003
例如对于待映射的I 1,假设某个位置为(x,y)的像素点,其对应的光流为(u,v),则将I 1映射到中间时刻tmid后,该像素点的位置将变成(x+u,y+v),此外,当待映射的I 1中存在多个位置映射到同一个位置时,则可以通过softmax操作对多个值进行加权平均处理。
需要说明的是,当I 1I 2是视频中连续的前后两帧时,由于对象(例如物体、人等)在I 1I 2之间位置的变化很小,因此,假设物体在I 1I 2之间的运动是匀速的是合理的;而当I 1I 2是视频中不连续的前后两帧时,物体在I 1I 2之间的运动可能是非线性的,例如运动轨迹可能是一条抛物线,则需要根据物体的运动轨迹以及第一后向光流F1→2来计算对应的第二后向光流F1→mid
此外,还需要说明的是,对于I 1对应的第一特征图像,可以通过调用卷积神经网络(即图3中示出的特征提取模型)对I 1进行提取得到,例如可以使用一个由三个残差模块组成的卷积神经网络提取I 1的不同分辨率尺度的特征图像,以作为后续生成网络的参考信息;对于I 1对应的第一边缘图像,可以通过边缘检测算子(即图3中示出的边缘检测模型,其中,边缘检测算子可以是Sobel算子、Canny算子或者Laplace算子等)对I 1进行提取得到。
在另一些实施例中,图4示出的步骤S102可以通过图5示出的步骤S1021至步骤S1022实现,将结合图5示出的步骤进行说明。
在步骤S1021中,基于第一后向光流对第一视频帧、以及第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息。
在一些实施例中,可以通过以下方式实现上述的基于第一后向光流对第一视频帧、以及第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息:基于第一后向光流,确定从第一视频帧的第一时刻到中间时刻的第二后向光流,其中,中间时刻是第一时刻和第二视频帧的第二时刻之间的任意值;基于第二后向光流,对第一视频帧以及第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息。
示例的,以中间时刻为tmid为例,其中,t1<tmid<t2,首先基于第一后向光流F1→2,计算出从第一视频帧I 1的第一时刻t1到中间时刻tmid的第二后向光流F1→mid,接着,基于F1→midI 1I 1对应的第一边缘图像、以及I 1对应的第一特征图像映射到中间时刻tmid,从而得到中间时刻tmid对应的第一前向映射视频帧、第一前向映射边缘图像以及第一前向映射特征图像。
在步骤S1022中,基于第一前向光流对第二视频帧、以及第二视频帧对应的第二参考信息进行前向映射处理,得到第二前向映射视频帧以及第二前向映射参考信息。
在一些实施例中,可以通过以下方式实现上述的基于第一前向光流对第二视频帧、以及第二视频帧对应的第二参考信息进行前向映射处理,得到第二前向映射视频帧以及第二前向映射参考信息:基于第一前向光流,确定从第二视频帧的第二时刻到中间时刻的第二前向光流;基于第二前向光流,对第二视频帧以及第二视频帧对应的第二参考信息进行前向映射处理,得到第二前向映射视频帧以及第二前向映射参考信息。
示例的,以中间时刻为tmid为例,首先基于第一前向光流F2→1(即从I 2的第二时刻t2I 1的第一时刻t1的光流),计算出从I 2的第二时刻t2到中间时刻tmid的第二前向光流F2→mid,例如当对象在I 1I 2之间线性运动(即运动轨迹为线性的匀速运动),则F2→mid=(t2-tmid)/(t2-t1)*F2→1;接着,基于计算出的第二前后光流F2→midI 2I 2对应的第二边缘图像、以及I 2对应的第二特征图像映射到中间时刻tmid,从而得到中间时刻tmid对应的第二前向映射视频帧、第二前向映射边缘图像以及第二前向映射特征图像,随后,将第一前向映射视频帧(即基于F1→midI 1映射到tmid得到的视频帧)、第一前向映射边缘图像(即基于F1→midI 1对应的边缘图像映射到tmid得到的图像)、第一前向映射特征图像(即基于F1→midI 1对应的特征图像映射到tmid得到的图像)、第二前向映射视频帧(即基于F2→midI 2映射到tmid得到的视频帧)、第二前向映射边缘图像(即基于F2→midI 2对应的边缘图像映射到tmid得到的图像)以及第二前向映射特征图像(即基于F2→midI 2对应的边缘图像映射到tmid得到的图像)组合成前向映射结果。
如此,通过同时对第一视频帧和第一视频帧对应的第一参考信息、以及第二视频帧和第二视频帧对应的第二参考信息进行前向映射处理,能够在得到的前向映射结果中包括更多的信息,从而提高最终生成的中间视频帧的质量。
在步骤S103中,获取从第二视频帧到第一视频帧的第一前向光流,基于第一前向光流进行反向映射处理,得到反向映射结果。
在一些实施例中,在从待插帧的视频中获取I 1I 2后,可以调用预先训练好的光流估计模型(例如FlowNet、Lucas-Kanade等)获取从I 2I 1的第一前向光流F2→1,即从I 2的第二时刻t2I 1的第一时刻t1的光流。
需要说明的是,当对象在I 1I 2之间的运动符合某些运动规律时,则第一后向光流F1→2和第一前向光流F2→1之间也存在与该规律相应的换算关系。例如当对象在I 1I 2之间的运动是匀速直线运动时,则F1→2和F2→1互为相反光流,得到其中一个光流后进行取反操作就能计算出另一个光流。也就是说,互为相反光流的两个光流大小相同,方向相反,即F2→1=-F1→2。由于帧内对象在长时间内的任意运动都可以近似为大量短时间内线性运动的积累,因此,当I 1I 2是视频中的连续两帧时,或者当视频的帧率较高时,可以近似认为F2→1=-F1→2
在另一些实施例中,承接上述示例,在获取到F2→1后,基于F2→1进行反向映射处理,得到反向映射结果。
示例的,在获取到F2→1后,可以基于F2→1I 2、以及I 2对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息(例如可以基于F2→1I 2、以及I 2对应的第二参考信息映射到中间时刻tmid,其中,t1<tmid<t2);其中,第二参考信息包括以下至少之一:I 2对应的第二特征图像、I 2对应的第二边缘图像;随后,将第一反向映射视频帧以及第一反向映射参考信息组合成反向映射结果,以作为反向映射分支输入至生成网络中以得到最终的中间视频帧。
举例来说,以需要插入中间视频帧的时刻为tmid为例,其中,t1<tmid<t2,首先基于F2→1,计算出从中间时刻tmidI 2的第二时刻t2的第三后向光流,为描述方便,下文中将第三后向光流记为Fmid→2,例如当对象在I 1I 2之间的运动为匀速直线运动时,则Fmid→2=(tmid-t2)/(t2-t1)* F2→1,接着,基于计算出的第三后向光流Fmid→2I 2I 2对应的第二边缘图像、以及I 2对应的第二特征图像映射到中间时刻tmid,得到中间时刻tmid对应的第一反向映射视频帧、第一反向映射边缘图像以及第一反向映射特征图像;随后,将第一反向映射视频帧、第一反向映射边缘图像以及第一反向映射特征图像组合成反向映射结果,作为反向映射分支输入至生成网络中以生成最终的中间视频帧。
下面对反向映射的计算过程进行具体说明,反向映射的数学描述如下:
Figure 930268DEST_PATH_IMAGE009
其中,
Figure 266703DEST_PATH_IMAGE008
Figure 571913DEST_PATH_IMAGE003
表示映射后的图像(例如中间时刻tmid对应的视频帧)像素的坐标,
Figure 626588DEST_PATH_IMAGE004
Figure 511498DEST_PATH_IMAGE005
表示待映射的图像(例如第二视频帧I 2)像素的坐标,
Figure 968019DEST_PATH_IMAGE010
Figure 116234DEST_PATH_IMAGE011
表示两种映射关系,通过输出的
Figure 658205DEST_PATH_IMAGE008
Figure 753331DEST_PATH_IMAGE003
来确定相应的
Figure 872815DEST_PATH_IMAGE004
Figure 457511DEST_PATH_IMAGE005
也就是说,反向映射与前向映射相反,其是通过映射后的图像像素坐标反过来推算该像素在待映射的图像的坐标位置,映射后的图像的每一个像素都能通过映射找到对应的位置,从而不会产生映射不完全和映射重叠的问题。例如对于映射后的视频帧(即中间时刻tmid对应的视频帧),假设某个位置为(x,y)的像素点,其对应的光流为(u,v),则通过反向映射在待映射的第二视频帧I 2的位置为(x+u,y+v)处进行采样,从而可以得到映射后的视频帧中(x,y)处的值。
在另一些实施例中,图4示出的步骤S103可以通过图6示出的步骤S1031至步骤S1032实现,将结合图6示出的步骤进行说明。
在步骤S1031中,基于第一前向光流对第二视频帧、以及第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息。
在一些实施例中,可以通过以下方式实现上述的基于第一前向光流对第二视频帧、以及第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息:基于第一前向光流,确定从中间时刻到第二视频帧的第二时刻的第三后向光流,其中,中间时刻是第一视频帧的第一时刻和第二时刻之间的任意值;基于第三后向光流,对第二视频帧以及第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息。
示例的,以中间时刻为tmid为例,其中,t1<tmid<t2,首先基于第一前向光流F2→1,计算出从中间时刻tmidI 2的第二时刻t2的第三后向光流Fmid→2,接着,基于计算出的Fmid→2I 2I 2对应的第二边缘图像、以及I 2对应的第二特征图像映射到中间时刻tmid,从而得到中间时刻tmid对应的第一反向映射视频帧、第一反向映射边缘图像以及第一反向映射特征图像。
在步骤S1032中,基于第一后向光流对第一视频帧、以及第一视频帧对应的第一参考信息进行反向映射处理,得到第二反向映射视频帧以及第二反向映射参考信息。
在一些实施例中,可以通过以下方实现上述的基于第一后向光流对第一视频帧、以及第一视频帧对应的第一参考信息进行反向映射处理,得到第二反向映射视频帧以及第二反向映射参考信息:基于第一后向光流,确定从中间时刻到第一视频帧的第一时刻的第三前向光流,其中,中间时刻是第一时刻和第二视频的第二时刻之间的任意值;基于第三前向光流,对第一视频帧、以及第一视频帧对应的第一参考信息进行反向映射处理,得到第二反向映射视频帧以及第二反向映射参考信息。
示例的,仍以中间时刻为tmid为例,首先基于第一后向光流F1→2,计算出从中间时刻tmidI 1的第一时刻t1的第三前向光流,为描述方便,下文中将第三前向光流记为Fmid→1,例如当对象在I 1I 2之间线性运动(即运动轨迹为线性的匀速运动),则Fmid→1=(tmid-t1)/(t1-t2)*F1→2;接着,基于计算出的第三前向光流Fmid→1I 1I 1对应的第一边缘图像、以及I 1对应的第一特征图像映射到中间时刻tmid,从而得到中间时刻tmid对应的第二反向映射视频帧、第二反向映射边缘图像以及第二反向映射特征图像;随后,将第一反向映射视频帧(即基于Fmid→2I 2映射到中间时刻tmid得到的视频帧)、第一反向映射边缘图像(即基于Fmid→2I 2对应的边缘图像映射到中间时刻tmid得到的图像)、第一反向映射特征图像(即基于Fmid→2I 2对应的特征图像映射到中间时刻tmid得到的图像)、第二反向映射视频帧(即基于Fmid→1I 1映射到中间时刻tmid得到的视频帧)、第二反向映射边缘图像(即基于Fmid→1I 1对应的边缘图像映射到中间时刻tmid得到的图像)以及第二反向映射特征图像(即基于Fmid→1I 1对应的特征图像映射到中间时刻tmid得到的图像)组合成反向映射结果。
如此,通过同时对第一视频帧和第一视频帧对应的第一参考信息、以及第二视频帧和第二视频帧对应的第二参考信息进行反向映射处理,能够在得到的反向映射结果中包括更多的信息,从而提高最终生成的中间视频帧的质量。
在步骤S104中,基于前向映射结果和反向映射结果进行融合处理,得到第三视频帧,将第三视频帧插入到视频的第一视频帧和第二视频帧之间。
在一些实施例中,可以通过以下方式实现上述的基于前向映射结果和反向映射结果进行融合处理,得到第三视频帧:对前向映射结果进行编码处理,得到前向中间特征;对反向映射结果进行编码处理,得到反向中间特征;对前向中间特征和反向中间特征进行融合处理,得到融合中间特征;对融合中间特征进行解码处理,得到第三视频帧。
示例的,以前向映射结果包括第一前向映射视频帧、第一前向映射参考信息、第二前向映射视频帧以及第二前向映射参考信息,反向映射结果包括第一反向映射视频帧、第一反向映射参考信息、第二反向映射视频帧以及第二反向映射参考信息为例,针对前向映射分支,首先对第一前向映射视频帧、第一前向映射参考信息、第二前向映射视频帧和第二前向映射参考信息进行拼接处理,接着,对拼接后得到的图像进行编码处理,得到前向中间特征;针对反向映射分支,同样首先对第一反向映射视频帧、第一反向映射参考信息、第二反向映射视频帧以及第二反向映射参考信息进行拼接处理,接着,对拼接后得到的图像进行编码处理,得到后向中间特征;随后,服务器对前向中间特征和反向中间特征进行融合处理,得到融合中间特征;最后,将融合中间特征输入两个分支分别对应的解码器中进行解码处理,并将两个分支解码后得到的特征在通道域上进行拼接,从而得到最终的中间视频帧(即第三视频帧)。
在另一些实施例中,在调用编码器针对两种映射的结果进行编码处理之前,还可以执行以下操作:针对前向映射分支,首先对前向映射结果进行下采样处理,以得到不同分辨率尺度的前向映射结果,例如可以对前向映射结果进行两次下采样处理,从而得到三种不同分辨率尺度的前向映射结果,接着,分别对每个分辨率尺度的前向映射结果进行编码处理,得到对应分辨率尺度的前向中间特征;类似的,针对反向映射分支,首先对反向映射结果进行下采样处理,以得到不同分辨率尺度的反向映射结果,例如可以同样对反向映射结果进行两次下采样处理,从而得到三种不同分辨率尺度的反向映射结果,接着,分别对每个分辨率尺度的反向映射结果进行编码处理,得到对应分辨率尺度的反向中间特征;随后,将相同分辨率尺度的前向中间特征和反向中间特征进行融合处理,得到多个不同分辨率尺度的融合中间特征;最后,分别对多个不同分辨率尺度的融合中间特征进行解码处理,并基于得到的多个解码结果生成最终的中间视频帧,如此,通过对两种映射的结果进行下采样处理,以实现图像的逐渐精细化,从而进一步提高最终生成的中间视频帧的质量。
在一些实施例中,上述编码处理和解码处理可以是通过调用生成网络模型(即图3中示出的生成网络模型)来实现的,在通过生成网络模型对前向映射结果和反向映射结果进行编码处理和解码处理之前,还可以通过以下方式训练生成网络模型:获取第一视频帧样本和第二视频帧样本,其中,第一视频帧样本是第二视频帧样本的前向帧;通过生成网络模型对第一视频帧样本和第二视频帧样本进行预测处理,得到预测中间视频帧;将预测中间视频帧和标记中间视频帧代入损失函数,以确定对应的误差,并根据误差确定生成网络模型的梯度;根据梯度更新生成网络模型的参数。
示例的,损失函数是以预测中间视频帧和标记中间视频帧之间的误差作为差异因子,并最小化这个差异因子的。其中,损失函数的类型可以包括均方误差损失函数(MSE,Mean Squared Error)、合页损失函数(HLF,Hinge Loss Function)和交叉熵损失函数(Cross Entropy)等。在确定出误差后,可以基于计算得到的误差运用梯度下降算法,以从损失层开始往前计算生成网络模型中各层的损失,并更新各层的权重,即生成网络模型反向传播过程,从而得到训练后的生成网络模型。
本申请实施例提供的视频插帧处理方法,通过同时使用前向映射和反向映射,并对前向映射结果和反向映射结果进行融合处理,以生成中间视频帧,如此,可以通过反向映射的结果为前向映射的结果存在的空洞提供信息,同时,也可以通过前向映射的准确结果来辅助反向映射的结果,即通过同时使用前向映射和反向映射能够生成高质量的中间视频帧,从而提高最终的视频插帧效果。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例提供的视频插帧处理方法可以应用于在线视频播放场景,例如当待播放的视频为低帧率的视频时,终端可以使用本申请实施例提供的视频插帧处理方法对低帧率的视频进行插帧处理,以得到高帧率的视频,例如终端可以通过本申请实施例提供的视频插帧处理方法将24帧率的视频转换为48帧率的视频,从而使得视频播放更加流畅,进而提升用户的观看体验。
下面对本申请实施例提供的视频插帧处理方法进行具体说明。
示例的,参见图7,图7是本申请实施例提供的视频插帧处理方法的原理示意图,如图7所示,本申请实施例提供的视频插帧处理方法主要涉及边缘提取、光流估计、特征提取、双向映射(包括前向映射和反向映射)和生成网络模型五个部分,下面分别进行说明。
一、边缘提取:本申请实施例中的边缘提取模块可以通过边缘检测算子(例如Sobel算子、Canny算子、或者Laplace算子等)提取得到前后参考视频帧(即图7中示出的第一视频帧I 1和第二视频帧I 2,其中,第一视频帧I 1对应的第一时刻T=1,第二视频帧I 2对应的第二时刻T=2)分别对应的边缘图像。
二、光流估计:本申请实施例中的光流估计模块可以采用预先训练好的光流估计模型,通过输入前后参考视频帧(即图7中示出的第一视频帧I 1和第二视频帧I 2)得到从第一视频帧I 1对应的第一时刻T=1到第二视频帧I 2对应的第二时刻T=2的第一前向光流F1→2、以及从第二视频帧I 2对应的第二时刻T=2到第一视频帧I 1对应的第一时刻T=1的第一后向光流F2→1,对于光流图而言,其为两通道,分别表示图像像素在水平方向和垂直方向的运动位移。其中,光流估计模型可以采用开源的光流估计模型,例如可以是FlowNet、Lucas-Kanade、Horn-Schunck等。
三、特征提取:本申请实施例中的特征提取模块可以是一个由三个残差模块组成的卷积网络,用于提取输入的前后参考视频帧(即图7中示出的第一视频帧I 1和第二视频帧I 2)的多尺度的特征信息,以作为后续生成网络模型的辅助信息。
四、双向映射:本申请实施例同时使用前向映射和反向映射将前后参考视频帧(即图7中示出的第一视频帧I 1和第二视频帧I 2)及对应的辅助信息映射到中间时刻T=mid,其中,1<mid<2。
针对前向映射,本申请实施例可以采用抛雪球法(splatting)的方式将第一视频帧I 1和第二视频帧I 2映射到中间时刻T=mid,并且,当多个像素点映射到同一个位置时,可以通过softmax操作对多个像素值进行加权平均。
示例的,采用splatting的方式进行前向映射的具体过程如下:首先利用光流估计模块得到的第一前向光流F1→2和第一后向光流F2→1分别计算第一视频帧I 1对应的第一时刻T=1、以及第二视频帧I 2对应的第二时刻T=2到中间时刻T=mid的第二后向光流F1→mid和第二前向光流F2→mid,接着,基于计算出的第二后向光流F1→mid将T=1时刻对应的参考视频帧、边缘图像和特征图像(即第一视频帧I 1、第一视频帧I 1对应的边缘图像和特征图像)映射到中间时刻T=mid;同理,基于计算出的第二前向光流F2→mid将T=2时刻对应的参考视频帧、边缘图像和特征图像(即第二视频帧I 2、第二视频帧I 2对应的边缘图像和特征图像)映射到中间时刻T=mid。举例来说,对于待映射图像或特征Z,假设某个位置为(x,y)的像素点对应的光流为(u,v),则经过映射后的图像或特征Za对应的位置将变成(x+u,y+v)。此外,当Z中有多个位置映射到Za的同一位置时,则可以通过softmax操作对多个值进行加权平均。
针对反向映射,本申请实施例可以采用抽样(sample)的方式,在中间时刻像素点通过光流得到对应于前后参考视频帧的像素值。
示例的,采用sample的方式进行反向映射的具体过程如下:类似于前向映射,反向映射也是通过光流进行位置映射,与前向映射不同的是,反向映射通过光流估计模块得到的第一前向光流F1→2和第一后向光流F2→1分别估计中间时刻T=mid到第一视频帧I 1对应的第一时刻T=1、以及第二视频帧I 2对应的第二时刻T=2的第三前向光流Fmid→1和第三后向光流Fmid→2,接着,基于计算出的第三前向光流Fmid→1将T=1时刻对应的参考视频帧、边缘图像和特征图像(即第一视频帧I 1、第一视频帧I 1对应的边缘图像和特征图像)映射到中间时刻T=mid;同理,基于计算出的第三后向光流Fmid→2将T=2时刻对应的参考视频帧、边缘图像和特征图像(即第二视频帧I 2、第二视频帧I 2对应的边缘图像和特征图像)映射到中间时刻T=mid。举例来说,对于映射后的图像或特征Za,假设某个位置为(x,y)的像素点对应的光流为(u,v),则通过反向映射在待映射的图像或特征Z的位置(x+u,y+v)处进行采样,从而得到映射后的图像或者Za中(x,y)处的值。
五、生成网络模型:本申请实施例提供的生成网络模型能够把前向映射的结果和反向映射的结果作为输入,然后通过卷积操作得到多尺度特征,之后双向映射对应得到的多尺度特征进行相互交互,最后通过卷积操作生成最终的中间视频帧。
下面对本申请实施例涉及的生成网络模型的结构进行具体说明。
示例的,参见图8,图8是本申请实施例提供的生成网络模型的结构示意图,如图8所示,生成网络模型是一个具有两个分支的编解码结构模型,其中一个分支作为前向映射分支,另一个分支作为反向映射分支。每个分支是一个具有三个分辨率尺度的网格网络(也可以是其他分辨率尺度),其中,多尺度特征信息分别按照分辨率大小作为网格网络不同分辨率尺度的输入,而边缘图像、特征图像和映射得到的中间视频帧在通道域上拼接作为网格网络第一个尺度的输入。这些输入经过网格网络编码部分(即图8中的前三个模块)的处理分别在三个分辨率尺度得到中间特征信息,接着,将前向分支及反向分支得到的中间特征信息一对一通过相加进行交互得到新的特征信息(即融合特征信息),再将新的特征信息输入两个分支网格网络对应的解码部分进行解码处理,以得到解码后的特征,最后将两个分支的解码后的特征在通道域进行拼接,以生成最终的中间视频帧。
本申请实施例中可以使用多尺度拉普拉斯损失函数(Laplacian Loss)作为生成网络模型的损失函数,该损失函数由生成网络模型得到的中间预测视频帧
Figure 221199DEST_PATH_IMAGE013
和真实的中间视频帧
Figure 979070DEST_PATH_IMAGE015
作为输入,计算公式如下:
Figure 144603DEST_PATH_IMAGE016
其中,
Figure 900201DEST_PATH_IMAGE018
表示多尺度拉普拉斯损失函数,
Figure 151185DEST_PATH_IMAGE020
表示中间预测视频帧
Figure 384851DEST_PATH_IMAGE022
的第
Figure DEST_PATH_IMAGE024
层的Laplacian 金字塔表示,
Figure DEST_PATH_IMAGE026
表示真实的中间视频帧
Figure 358886DEST_PATH_IMAGE028
的第
Figure DEST_PATH_IMAGE030
层的Laplacian 金字塔表示,
Figure 86715DEST_PATH_IMAGE030
的取值范围为1至5。
下面继续对生成网络模型的训练过程进行说明。
本申请实施例可以采用随机梯度下降的方式来训练生成网络模型的参数,在实际应用中,优化器可以采用Adamax优化器,初始学习率设置为0.001,每一次训练迭代向生成网络模型输入8组参考视频帧样本来计算损失函数,从而通过反向传播和梯度下降来更新一次生成网络模型的参数。在训练过程中,本申请实施例可以利用一个拥有约30000组样本的数据集作为训练集,还有一个约3000组样本作为测试集,测试集与训练集的场景、来源等相似。生成网络模型的训练大约在100轮左右即可达到收敛状态。
本申请实施例提供的视频插帧处理方法,通过同时对前后参考视频帧及对应辅助信息进行前向映射和反向映射,得到两种映射后的初始预测帧,再通过一个能够结合两种映射后的结果并进行双向特征交互的生成网络模型,从而得到最终的中间视频帧。由于在生成阶段建立了两种映射的联系与交互,本申请实施例生成的中间视频帧,相较于相关技术中仅通过单向映射的方式得到的中间视频帧,质量更高,从而能够有效地提高视频插帧效果,进而提升用户的观看体验。
下面结合实验数据进一步说明本申请实施例提供的视频插帧处理方法的效果。
如表1所示,本申请实施例提供的视频插帧处理方法在客观指标上(例如峰值信噪比(PSNR,Peak Signal to Noise Ratio)和结构相似性(SSIM,Structural SIMilarity))均优于只采用单向映射的方法。并且,如表2所示,在公开数据集Vimeo90K的测试集上,本申请实施例提供的视频插帧处理方法在客观指标上也优于其他相关方法。
Figure DEST_PATH_IMAGE031
除了在客观指标上由于单向映射的方法,通过本申请实施例提供的视频插帧处理方法得到的中间视频帧在视觉效果上也优于仅通过单向映射的方式生成的中间视频帧。
示例的,图9A是本申请实施例提供的参考视频帧,图9B是通过相关技术提供的前向映射方法生成的中间视频帧,图9C是通过相关技术提供的反向映射生成的中间视频帧,图9D是通过本申请实施例提供的视频插帧处理方法生成的中间视频帧,对比图9B至图9D可以看出,本申请实施例生成的中间视频帧相比于相关技术提供的单向映射的方法生成的中间视频帧在视觉效果上也更好。
下面继续说明本申请实施例提供的视频插帧处理装置243实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器240的视频插帧处理装置243中的软件模块可以包括:获取模块2431、前向映射模块2432、反向映射模块2433和融合模块2434。
获取模块2431,用于从视频中获取第一视频帧和第二视频帧,其中,第一视频帧是第二视频帧的前向帧;获取模块2431,还用于获取从第一视频帧到第二视频帧的第一后向光流;前向映射模块2432,用于基于第一后向光流进行前向映射处理,得到前向映射结果;获取模块2431,还用于获取从第二视频帧到第一视频帧的第一前向光流;反向映射模块2433,用于基于第一前向光流进行反向映射处理,得到反向映射结果;融合模块2434,用于基于前向映射结果和反向映射结果进行融合处理,得到第三视频帧,将第三视频帧插入到视频的第一视频帧和第二视频帧之间。
在一些实施例中,前向映射模块2432,还用于基于第一后向光流对第一视频帧、以及第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息;其中,第一参考信息包括以下至少之一:第一视频帧对应的第一特征图像、第一视频帧对应的第一边缘图像;将第一前向映射视频帧以及第一前向映射参考信息组合为前向映射结果。
在一些实施例中,视频插帧处理装置243还包括确定模块2435,用于基于第一后向光流,确定从第一视频帧的第一时刻到中间时刻的第二后向光流,其中,中间时刻是第一时刻和第二视频帧的第二时刻之间的任意值;前向映射模块2432,还用于基于第二后向光流,对第一视频帧以及第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息,其中,第一前向映射视频帧是中间时刻对应的视频帧。
在一些实施例中,前向映射模块2432,还用于基于第一后向光流对第一视频帧、以及第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息;其中,第一参考信息包括以下至少之一:第一视频帧对应的第一特征图像、第一视频帧对应的第一边缘图像;以及用于基于第一前向光流对第二视频帧、以及第二视频帧对应的第二参考信息进行前向映射处理,得到第二前向映射视频帧以及第二前向映射参考信息;其中,第二参考信息包括以下至少之一:第二视频帧对应的第二特征图像、第二视频帧对应的第二边缘图像;将第一前向映射视频帧、第一前向映射参考信息、第二前向映射视频帧以及第二前向映射参考信息组合为前向映射结果。
在一些实施例中,确定模块2435,还用于基于第一后向光流,确定从第一视频帧的第一时刻到中间时刻的第二后向光流,其中,中间时刻是第一时刻和第二视频帧的第二时刻之间的任意值;前向映射模块2432,还用于基于第二后向光流,对第一视频帧以及第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息。
在一些实施例中,确定模块2435,还用于基于第一前向光流,确定从第二视频帧的第二时刻到中间时刻的第二前向光流,其中,中间时刻是第一视频帧的第一时刻和第二时刻之间的任意值;前向映射模块2432,还用于基于第二前向光流,对第二视频帧以及第二视频帧对应的第二参考信息进行前向映射处理,得到第二前向映射视频帧以及第二前向映射参考信息。
在一些实施例中,反向映射模块2433,还用于基于第一前向光流对第二视频帧、以及第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息;其中,第二参考信息包括以下至少之一:第二视频帧对应的第二特征图像、第二视频帧对应的第二边缘图像;将第一反向映射视频帧以及第一反向映射参考信息组合为反向映射结果。
在一些实施例中,确定模块2435,还用于基于第一前向光流,确定从中间时刻到第二视频帧的第二时刻的第三后向光流,其中,中间时刻是第一视频帧的第一时刻和第二时刻之间的任意值;反向映射模块2433,还用于基于第三后向光流,对第二视频帧以及第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息,其中,第一反向映射视频帧是中间时刻对应的视频帧。
在一些实施例中,反向映射模块2433,还用于基于第一前向光流对第二视频帧、以及第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息;其中,第二参考信息包括以下至少之一:第二视频帧对应的第二特征图像、第二视频帧对应的第二边缘图像;以及用于基于第一后向光流对第一视频帧、以及第一视频帧对应的第一参考信息进行反向映射处理,得到第二反向映射视频帧以及第二反向映射参考信息;其中,第一参考信息包括以下至少之一:第一视频帧对应的第一特征图像、第一视频帧对应的第一边缘图像;将第一反向映射视频帧、第一反向映射参考信息、第二反向映射视频帧以及第二反向映射参考信息组合为反向映射结果。
在一些实施例中,确定模块2435,还用于基于第一前向光流,确定从中间时刻到第二视频帧的第二时刻的第三后向光流,其中,中间时刻是第一视频帧的第一时刻和第二时刻之间的任意值;反向映射模块2433,还用于基于第三后向光流,对第二视频帧以及第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息。
在一些实施例中,确定模块2435,还用于基于第一后向光流,确定从中间时刻到第一视频帧的第一时刻的第三前向光流,其中,中间时刻是第一时刻和第二视频的第二时刻之间的任意值;反向映射模块2433,还用于基于第三前向光流,对第一视频帧、以及第一视频帧对应的第一参考信息进行反向映射处理,得到第二反向映射视频帧以及第二反向映射参考信息。
在一些实施例中,视频插帧处理装置243还包括编码模块2436,用于对前向映射结果进行编码处理,得到前向中间特征;以及用于对反向映射结果进行编码处理,得到反向中间特征;融合模块2434,还用于对前向中间特征和反向中间特征进行融合处理,得到融合中间特征;视频插帧处理装置243还包括解码模块2437,用于对融合中间特征进行解码处理,得到第三视频帧。
在一些实施例中,编码模块2436,还用于对前向映射结果进行下采样处理,得到不同分辨率尺度的前向映射结果;分别对每个分辨率尺度的前向映射结果进行编码处理,得到对应分辨率尺度的前向中间特征;以及用于对反向映射结果进行下采样处理,得到不同分辨率尺度的反向映射结果;分别对每个分辨率尺度的反向映射结果进行编码处理,得到对应分辨率尺度的反向中间特征;融合模块2434,还用于将相同分辨率尺度的前向中间特征和反向中间特征进行融合处理,得到多个不同分辨率尺度的融合中间特征。
在一些实施例中,编码处理和解码处理是通过生成网络模型来实现的;视频插帧处理装置243还包括训练模块2438,用于通过以下方式训练生成网络模型:获取第一视频帧样本和第二视频帧样本,第一视频帧样本是第二视频帧样本的前向帧;通过生成网络模型对第一视频帧样本和第二视频帧样本进行预测处理,得到预测中间视频帧;将预测中间视频帧和标记中间视频帧代入损失函数,以确定对应的误差,并根据误差确定生成网络模型的梯度;根据梯度更新生成网络模型的参数。
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本申请实施例提供的视频插帧处理装置中未尽的技术细节,可以根据图3-8任一附图的说明而理解。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备(例如计算机设备)的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的视频插帧处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图4-6示出的视频插帧处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以是被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个电子设备(例如计算机设备)上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行。
综上所述,本申请实施例通过同时使用前向映射和反向映射,并对前向映射结果和反向映射结果进行融合处理,以生成中间视频帧,如此,可以通过反向映射的结果为前向映射的结果存在的空洞提供信息,同时,也可以通过前向映射的准确结果来辅助反向映射的结果,即通过同时使用前向映射和反向映射能够生成高质量的中间视频帧,从而提高最终的视频插帧效果。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (15)

1.一种视频插帧处理方法,其特征在于,所述方法包括:
从视频中获取第一视频帧和第二视频帧,其中,所述第一视频帧是所述第二视频帧的前向帧;
获取从所述第一视频帧到所述第二视频帧的第一后向光流,基于所述第一后向光流进行前向映射处理,得到前向映射结果;
获取从所述第二视频帧到所述第一视频帧的第一前向光流,基于所述第一前向光流进行反向映射处理,得到反向映射结果;
基于所述前向映射结果和所述反向映射结果进行融合处理,得到第三视频帧,将所述第三视频帧插入到所述视频的所述第一视频帧和所述第二视频帧之间。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一后向光流进行前向映射处理,得到前向映射结果,包括:
基于所述第一后向光流对所述第一视频帧、以及所述第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息;
其中,所述第一参考信息包括以下至少之一:所述第一视频帧对应的第一特征图像、所述第一视频帧对应的第一边缘图像;
将所述第一前向映射视频帧以及所述第一前向映射参考信息组合为前向映射结果。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第一后向光流进行前向映射处理,得到前向映射结果,包括:
基于所述第一后向光流对所述第一视频帧、以及所述第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息;
基于所述第一前向光流对所述第二视频帧、以及所述第二视频帧对应的第二参考信息进行前向映射处理,得到第二前向映射视频帧以及第二前向映射参考信息;
将所述第一前向映射视频帧、所述第一前向映射参考信息、所述第二前向映射视频帧以及所述第二前向映射参考信息组合为前向映射结果。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一后向光流对所述第一视频帧、以及所述第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息,包括:
基于所述第一后向光流,确定从所述第一视频帧的第一时刻到中间时刻的第二后向光流,其中,所述中间时刻是所述第一时刻和所述第二视频帧的第二时刻之间的任意值;
基于所述第二后向光流,对所述第一视频帧以及所述第一视频帧对应的第一参考信息进行前向映射处理,得到第一前向映射视频帧以及第一前向映射参考信息。
5.根据权利要求3所述的方法,其特征在于,所述基于所述第一前向光流对所述第二视频帧、以及所述第二视频帧对应的第二参考信息进行前向映射处理,得到第二前向映射视频帧以及第二前向映射参考信息,包括:
基于所述第一前向光流,确定从所述第二视频帧的第二时刻到中间时刻的第二前向光流,其中,所述中间时刻是所述第一视频帧的第一时刻和所述第二时刻之间的任意值;
基于所述第二前向光流,对所述第二视频帧以及所述第二视频帧对应的第二参考信息进行前向映射处理,得到第二前向映射视频帧以及第二前向映射参考信息,其中,所述第二前向映射视频帧是所述中间时刻对应的视频帧。
6.根据权利要求1所述的方法,其特征在于,所述基于所述第一前向光流进行反向映射处理,得到反向映射结果,包括:
基于所述第一前向光流对所述第二视频帧、以及所述第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息;
将所述第一反向映射视频帧以及所述第一反向映射参考信息组合为反向映射结果。
7.根据权利要求1所述的方法,其特征在于,所述基于所述第一前向光流进行反向映射处理,得到反向映射结果,包括:
基于所述第一前向光流对所述第二视频帧、以及所述第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息;
基于所述第一后向光流对所述第一视频帧、以及所述第一视频帧对应的第一参考信息进行反向映射处理,得到第二反向映射视频帧以及第二反向映射参考信息;
将所述第一反向映射视频帧、所述第一反向映射参考信息、所述第二反向映射视频帧以及所述第二反向映射参考信息组合为反向映射结果。
8.根据权利要求7所述的方法,其特征在于,所述基于所述第一前向光流对所述第二视频帧、以及所述第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息,包括:
基于所述第一前向光流,确定从中间时刻到所述第二视频帧的第二时刻的第三后向光流,其中,所述中间时刻是所述第一视频帧的第一时刻和所述第二时刻之间的任意值;
基于所述第三后向光流,对所述第二视频帧以及所述第二视频帧对应的第二参考信息进行反向映射处理,得到第一反向映射视频帧以及第一反向映射参考信息。
9.根据权利要求7所述的方法,其特征在于,所述基于所述第一后向光流对所述第一视频帧、以及所述第一视频帧对应的第一参考信息进行反向映射处理,得到第二反向映射视频帧以及第二反向映射参考信息,包括:
基于所述第一后向光流,确定从中间时刻到所述第一视频帧的第一时刻的第三前向光流,其中,所述中间时刻是所述第一时刻和所述第二视频的第二时刻之间的任意值;
基于所述第三前向光流,对所述第一视频帧、以及所述第一视频帧对应的第一参考信息进行反向映射处理,得到第二反向映射视频帧以及第二反向映射参考信息,其中,所述第二反向映射视频帧是所述中间时刻对应的视频帧。
10.根据权利要求1所述的方法,其特征在于,所述基于所述前向映射结果和所述反向映射结果进行融合处理,得到第三视频帧,包括:
对所述前向映射结果进行编码处理,得到前向中间特征;
对所述反向映射结果进行编码处理,得到反向中间特征;
对所述前向中间特征和所述反向中间特征进行融合处理,得到融合中间特征;
对所述融合中间特征进行解码处理,得到第三视频帧。
11.根据权利要求10所述的方法,其特征在于,
所述对所述前向映射结果进行编码处理,得到前向中间特征,包括:
对所述前向映射结果进行下采样处理,得到不同分辨率尺度的前向映射结果;
分别对每个所述分辨率尺度的前向映射结果进行编码处理,得到对应分辨率尺度的前向中间特征;
所述对所述反向映射结果进行编码处理,得到反向中间特征,包括:
对所述反向映射结果进行下采样处理,得到不同分辨率尺度的反向映射结果;
分别对每个所述分辨率尺度的反向映射结果进行编码处理,得到对应分辨率尺度的反向中间特征;
所述对所述前向中间特征和所述反向中间特征进行融合处理,得到融合中间特征,包括:
将相同分辨率尺度的前向中间特征和反向中间特征进行融合处理,得到多个不同分辨率尺度的融合中间特征。
12.根据权利要求10所述的方法,其特征在于,
所述编码处理和所述解码处理是通过生成网络模型来实现的;
在通过所述生成网络模型对所述前向映射结果和所述反向映射结果进行所述编码处理和所述解码处理之前,所述方法还包括:
通过以下方式训练所述生成网络模型:
获取第一视频帧样本和第二视频帧样本,所述第一视频帧样本是所述第二视频帧样本的前向帧;
通过所述生成网络模型对所述第一视频帧样本和第二视频帧样本进行预测处理,得到预测中间视频帧;
将所述预测中间视频帧和标记中间视频帧代入损失函数,以确定对应的误差,并根据所述误差确定所述生成网络模型的梯度;
根据所述梯度更新所述生成网络模型的参数。
13.一种视频插帧处理装置,其特征在于,所述装置包括:
获取模块,用于从视频中获取第一视频帧和第二视频帧,其中,所述第一视频帧是所述第二视频帧的前向帧;
所述获取模块,还用于获取从所述第一视频帧到所述第二视频帧的第一后向光流;
前向映射模块,用于基于所述第一后向光流进行前向映射处理,得到前向映射结果;
所述获取模块,还用于获取从所述第二视频帧到所述第一视频帧的第一前向光流;
反向映射模块,用于基于所述第一前向光流进行反向映射处理,得到反向映射结果;
融合模块,用于基于所述前向映射结果和所述反向映射结果进行融合处理,得到第三视频帧,将所述第三视频帧插入到所述视频的所述第一视频帧和所述第二视频帧之间。
14.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至12任一项所述的视频插帧处理方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,所述可执行指令被执行时用于实现权利要求1至12任一项所述的视频插帧处理方法。
CN202110422224.1A 2021-04-20 2021-04-20 视频插帧处理方法、装置、电子设备及存储介质 Active CN112995715B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110422224.1A CN112995715B (zh) 2021-04-20 2021-04-20 视频插帧处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110422224.1A CN112995715B (zh) 2021-04-20 2021-04-20 视频插帧处理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112995715A true CN112995715A (zh) 2021-06-18
CN112995715B CN112995715B (zh) 2021-09-03

Family

ID=76341202

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110422224.1A Active CN112995715B (zh) 2021-04-20 2021-04-20 视频插帧处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112995715B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113365110A (zh) * 2021-07-14 2021-09-07 北京百度网讯科技有限公司 模型训练、视频插帧方法,装置,设备以及存储介质
US20230049430A1 (en) * 2021-08-10 2023-02-16 GE Precision Healthcare LLC System and method for cohesive multi-regional functional-anatomical medical image registration
WO2023160426A1 (zh) * 2022-02-24 2023-08-31 影石创新科技股份有限公司 视频插帧方法、训练方法、装置和电子设备
WO2023160525A1 (zh) * 2022-02-22 2023-08-31 北京字跳网络技术有限公司 视频处理方法、装置、设备及介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090052532A1 (en) * 2007-08-24 2009-02-26 Simon Robinson Automatically identifying edges of moving objects
CN109151474A (zh) * 2018-08-23 2019-01-04 复旦大学 一种生成新视频帧的方法
US20190138889A1 (en) * 2017-11-06 2019-05-09 Nvidia Corporation Multi-frame video interpolation using optical flow
CN109756690A (zh) * 2018-12-21 2019-05-14 西北工业大学 基于特征级别光流的轻量级视频插值方法
CN109922231A (zh) * 2019-02-01 2019-06-21 重庆爱奇艺智能科技有限公司 一种用于生成视频的插帧图像的方法和装置
CN110798630A (zh) * 2019-10-30 2020-02-14 北京市商汤科技开发有限公司 图像处理方法及装置、电子设备和存储介质
CN110913218A (zh) * 2019-11-29 2020-03-24 合肥图鸭信息科技有限公司 一种视频帧预测方法、装置及终端设备
CN111277863A (zh) * 2018-12-05 2020-06-12 阿里巴巴集团控股有限公司 一种光流插帧方法和装置
CN111405316A (zh) * 2020-03-12 2020-07-10 北京奇艺世纪科技有限公司 插帧方法、电子设备及可读存储介质
CN112104830A (zh) * 2020-08-13 2020-12-18 北京迈格威科技有限公司 视频插帧方法、模型训练方法及对应装置
CN112184779A (zh) * 2020-09-17 2021-01-05 无锡安科迪智能技术有限公司 插帧图像处理方法及装置
US10958869B1 (en) * 2019-11-14 2021-03-23 Huawei Technologies Co., Ltd. System, device and method for video frame interpolation using a structured neural network

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090052532A1 (en) * 2007-08-24 2009-02-26 Simon Robinson Automatically identifying edges of moving objects
US20190138889A1 (en) * 2017-11-06 2019-05-09 Nvidia Corporation Multi-frame video interpolation using optical flow
US10776688B2 (en) * 2017-11-06 2020-09-15 Nvidia Corporation Multi-frame video interpolation using optical flow
CN109151474A (zh) * 2018-08-23 2019-01-04 复旦大学 一种生成新视频帧的方法
CN111277863A (zh) * 2018-12-05 2020-06-12 阿里巴巴集团控股有限公司 一种光流插帧方法和装置
CN109756690A (zh) * 2018-12-21 2019-05-14 西北工业大学 基于特征级别光流的轻量级视频插值方法
CN109922231A (zh) * 2019-02-01 2019-06-21 重庆爱奇艺智能科技有限公司 一种用于生成视频的插帧图像的方法和装置
CN110798630A (zh) * 2019-10-30 2020-02-14 北京市商汤科技开发有限公司 图像处理方法及装置、电子设备和存储介质
US10958869B1 (en) * 2019-11-14 2021-03-23 Huawei Technologies Co., Ltd. System, device and method for video frame interpolation using a structured neural network
CN110913218A (zh) * 2019-11-29 2020-03-24 合肥图鸭信息科技有限公司 一种视频帧预测方法、装置及终端设备
CN111405316A (zh) * 2020-03-12 2020-07-10 北京奇艺世纪科技有限公司 插帧方法、电子设备及可读存储介质
CN112104830A (zh) * 2020-08-13 2020-12-18 北京迈格威科技有限公司 视频插帧方法、模型训练方法及对应装置
CN112184779A (zh) * 2020-09-17 2021-01-05 无锡安科迪智能技术有限公司 插帧图像处理方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WENBO BAO等: "MEMO-Net:Motion Estimation and Motion Compensation Driven Neural Network for Video Interpolation and Enhancement", 《COMPUTER VISION AND PATTERN RECOGNITION》 *
张倩等: "基于深度学习的视频插帧算法", 《智能计算机与应用》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113365110A (zh) * 2021-07-14 2021-09-07 北京百度网讯科技有限公司 模型训练、视频插帧方法,装置,设备以及存储介质
US20230049430A1 (en) * 2021-08-10 2023-02-16 GE Precision Healthcare LLC System and method for cohesive multi-regional functional-anatomical medical image registration
WO2023160525A1 (zh) * 2022-02-22 2023-08-31 北京字跳网络技术有限公司 视频处理方法、装置、设备及介质
WO2023160426A1 (zh) * 2022-02-24 2023-08-31 影石创新科技股份有限公司 视频插帧方法、训练方法、装置和电子设备

Also Published As

Publication number Publication date
CN112995715B (zh) 2021-09-03

Similar Documents

Publication Publication Date Title
CN112995715B (zh) 视频插帧处理方法、装置、电子设备及存储介质
CN113034380B (zh) 基于改进可变形卷积校正的视频时空超分辨率方法和装置
CN110738432A (zh) 新能源汽车充电管理方法、装置、服务器及可读存储介质
CN114339409B (zh) 视频处理方法、装置、计算机设备及存储介质
CN111563868B (zh) 基于人工智能的头部装饰处理方法及装置
CN112906721A (zh) 图像处理方法、装置、设备及计算机可读存储介质
CN115170388A (zh) 人物线稿生成方法、装置、设备及介质
CN115914505A (zh) 基于语音驱动数字人模型的视频生成方法及系统
CN111078942B (zh) 一种推荐视频的方法、装置及存储介质
CN117095019A (zh) 一种图像分割方法及相关装置
WO2023151333A1 (zh) 视频处理方法、装置、设备及存储介质
Topiwala et al. Deep learning techniques in video coding and quality analysis
CN106412567A (zh) 用于确定视频清晰度的方法及系统
CN113808157B (zh) 图像处理方法、装置、及计算机设备
CN110460463A (zh) 基于深度神经网络的服务质量预测方法及其系统
CN116156218A (zh) 视频插帧模型的确定方法及装置、视频插帧方法及装置
CN112995433B (zh) 一种时序视频生成方法、装置、计算设备及存储介质
CN104732508A (zh) 基于分布式压缩感知的图像融合方法
CN114936377A (zh) 模型训练和身份匿名化方法、装置、设备及存储介质
CN113658231A (zh) 光流预测方法、装置、电子设备及存储介质
CN114359769A (zh) 视频表征学习方法、视频处理方法、装置、介质及设备
CN113822790A (zh) 一种图像处理方法、装置、设备及计算机可读存储介质
CN113469377A (zh) 联邦学习审计方法和装置
CN116708725B (zh) 基于语义编解码的低带宽人群场景安防监控方法及系统
Zhang et al. A novel depth spatial-temporal consistency enhancement algorithm for high compression performance

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40046417

Country of ref document: HK