CN116912303A - 用于生成深度图的方法和系统 - Google Patents

用于生成深度图的方法和系统 Download PDF

Info

Publication number
CN116912303A
CN116912303A CN202310402675.8A CN202310402675A CN116912303A CN 116912303 A CN116912303 A CN 116912303A CN 202310402675 A CN202310402675 A CN 202310402675A CN 116912303 A CN116912303 A CN 116912303A
Authority
CN
China
Prior art keywords
grid points
frame
depth
frames
values
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
Application number
CN202310402675.8A
Other languages
English (en)
Inventor
K·卡茵斯
J·D·吉布森
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.)
Blackmagic Design Pty Ltd
Original Assignee
Blackmagic Design Pty 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 Blackmagic Design Pty Ltd filed Critical Blackmagic Design Pty Ltd
Publication of CN116912303A publication Critical patent/CN116912303A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/269Analysis of motion using gradient-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种用于生成与视频剪辑中的帧序列中的帧相对应的深度图的方法和系统。这可以包括为多个帧中的每一个生成单图像深度图,对所述单图像深度图进行定标,以及处理定标后的单图像深度图的时间序列,以生成与视频剪辑中的帧序列中的帧相对应的所述深度图。

Description

用于生成深度图的方法和系统
技术领域
本公开涉及与图像中的深度估计(例如,在包括帧的时间序列的视频剪辑帧中的深度估计)有关的方法和系统。
背景技术
在数字电影后期制作中,有时需要估计视频帧中可见的一个或多个元素的深度。例如,可能需要基于元素的深度将给定的图像处理技术应用于或不应用于某一元素,或者需要以随深度变化的方式应用图像处理技术。在计算机视觉领域也普遍出现类似的需求。深度可以是指从捕捉图像的相机或人工生成的图像中的虚拟视点到对象(或对象上的点)的真实或隐含距离。
发明人了解用于深度估计的技术。这种技术生成深度图,该深度图包括针对图像中每个像素的估计深度值。这些可以在视觉上表示为颜色或灰度图像,其将深度显示为相应的颜色或灰度级。例如,图1显示了来自图像(a)中的电影剪辑的图像帧以及图像(b)中相应的深度图。在深度图(图像(b))中,每个像素的深度被表示为灰度级,较亮的像素具有比较暗的像素更低的深度,从而白色像素是离拍摄该图像的相机最近的,而黑色像素离拍摄该图像的相机最远。
一些深度估计技术依赖于双目或立体图像,以使深度能够通过三角测量来确定。但是立体图像通常是不可获得的。还存在单目深度估计技术。这些通常对单个图像(例如,照片或电影的单个帧)执行深度估计。然而,当将单图像深度估计技术应用于包括电影剪辑的帧的时间序列中的每个帧时,在深度图中发生“闪烁”是常见的。闪烁是对从一帧到下一帧发生变化的对象或区域(或者对象或区域中的点)的深度估计的结果。绝对深度中的小变化可能是可以接受的,但错误的相对变化可能更成问题。最引起人注意的是(在没有明显的场景变化或相机移动的情况下)两个对象的相对深度在帧之间发生变化,从而使一个对象在先前位于其后面或前面的另一个对象的前面或后面移动。
本说明书中描述的系统、设备、方法和途径及其组成部分为发明人所知。因此,除非另有说明,否则不应假设所描述的任何这样的系统、设备、方法、途径或它们的组成部分仅仅由于它们包含在说明书中而被引用为现有技术,也不应假设这种系统、设备、方法、途径及组成部分通常是本领域普通技术人员已知的。
发明内容
在第一方面,提供了一种生成与视频剪辑中的帧序列中的帧相对应的深度图的方法。该方法包括:
针对多个帧中的每个帧生成单图像深度图;
通过将标度值应用于所述单图像深度图的每个像素,对每个帧的单图像深度图进行定标,以生成针对所述每个帧的定标后的单图像深度图;以及
处理定标后的单图像深度图的时间序列,以生成与所述视频剪辑中的帧序列中的帧相对应的所述深度图。
可以使用包括以下步骤的方法来生成针对单图像深度图的每个像素的相对应的标度值:针对遍布于帧上的多个网格点中的每个网格点:
使用所述网格点的深度值以及与来自多个时间相关帧的相同的网格点相对应的深度值来生成初始标度值;
基于所述网格点的初始标度值以及一个或多个相邻网格点的初始标度值来生成所述网格点的最终标度值;以及
根据网格点的最终标度值来确定要应用于所述单图像深度图的每个像素的对应的标度值。
使用所述网格点的深度值以及来自多个时间相关帧的相同的网格点的深度值来生成初始标度值的步骤可以包括:通过确定包括所述网格点的区域的平均深度值来确定所述帧中的网格点的深度值;并且确定与多个时间相关帧的相同的网格点相对应的深度值包括:确定所述帧的内容与所述时间相关帧的内容之间的对应关系,使得能够为所述多个时间相关帧中的每个帧确定与所述网格点对应的位置;以及在每个时间相关帧中确定包括所述位置的区域的平均深度值,以针对每个时间相关帧确定与所述网格点相对应的深度值。
可以使用以下比率来确定每个网格点的初始标度值:一组深度值的中心趋势度量与所述网格点的深度值的比率,其中所述一组深度值至少包括来自所述多个时间相关帧的相同的网格点的深度值。例如,所述中心趋势度量可以是中值。所述所述一组深度值可包括网格点的深度值。
所述方法可以包括:限定包括所述帧的像素的掩蔽,其中所述单图像深度图被确定为以下中的任意一者或两者:所述单图像深度图基于所述多个帧的光流分析而被确定为不可靠的;或所述单图像深度图被确定为具有大于阈值深度的深度。
确定所述帧的内容与所述时间相关帧的内容之间的对应关系可以包括:分析在时间上相邻的帧之间的光流,根据所述光流生成所述多个时间相关帧中的每一个的扭曲的深度图从而将与所述网格点相对应的所述位置与所述网格点对准,以及使用所述扭曲的深度图在每个时间相关帧中确定所述位置周围的区域的平均深度值。
确定所述帧的内容与所述时间相关帧的内容之间的对应关系可以包括:分析在时间上相邻的帧之间的光流,使用所述光流来跟踪所述时间相关帧中的每一个中的所述网格点的位置,以及在每个时间相关帧中确定所述位置周围的区域的平均深度值。
在一些实施例中,掩蔽中所包括的像素在以下任意一者或两者中被排除:通过确定包括所述网格点的区域的平均深度值来确定所述网格点的深度值,和/或针对多个时间相关帧确定与相同的网格点相对应的深度值。
在一些实施例中,基于所述网格点的初始标度值以及一个或多个相邻网格点的初始标度值来生成所述网格点的最终标度值的步骤包括:确定所述一个或多个相邻网格点中的每一个的相对贡献以及所述网格点的初始标度值。所述一个或多个相邻网格点的相对贡献在一些实施例中可以使用所述掩蔽来确定。
在一些实施例中,基于所述网格点的初始标度值以及一个或多个相邻网格点的初始标度值来生成所述网格点的最终标度值包括求解一系列线性方程,所述一系列线性方程代表所述网格点中的每一个的初始标度值以及所述网格点的相邻网格点中的每一个的初始标度值。
在一些实施例中,根据网格点的最终标度值来确定要应用于所述单图像深度图的每个像素的标度值可以包括:通过内插为所述网格点之间的每个像素生成标度值。如果有像素在所述网格点之外,则可具有通过外推来确定的标度值。
在一些实施例中,要应用于所述单图像深度图的每个像素的标度值(根据网格点的最终标度值)可以通过基于相对于所述网格点的位置为每个像素分配标度值来确定。例如,每个网格点周围的区域中的所有像素可以取与该网格点相对应的标度值。
针对每个帧生成单图像深度图可以使用机器学习技术。例如,其可以包括使用深度学习模型来生成所述单图像深度图。深度学习模型可以是卷积神经网络或其他适宜的模型。
所述的方法可以重复或继续,以生成视频剪辑的至少一个附加帧的深度图。
在一些实施例中,深度图可以以比帧更低的分辨率生成。例如,其可以以分数分辨率执行,例如,1/2、1/4分辨率。在其他实施例中,可以以与帧相同的分辨率生成深度图。
在又一方面,提供了一种包括处理器的计算机系统,所述处理器根据存储在非暂时性存储介质中的执行指令进行操作,由此,所述指令的执行配置所述计算机系统以执行本文描述的方法的实施例。所述计算机系统可以是用于编辑视频(可选地还有音频)媒体的非线性编辑器。
还提供了一种在其上存储执行指令的非暂时性计算机可读存储介质,所述执行指令在由处理器执行时使所述处理器执行本文描述的方法的实施例。
在另一个方面,提供了一种包含执行指令的计算机软件产品,当由处理器执行时,所述执行指令使处理器执行本文描述的方法的实施例。计算机软件产品可以包括非线性编辑软件产品或视频效果软件产品,例如,申请人的Davinci Resolve或Fusion软件可以执行本文描述的方法的实施例。
虽然本文公开的发明可适用于各种修改和替代形式,但在附图中仍以示例的方式示出并详细描述了具体实施例。然而,应当理解,附图和详细描述并不旨在将本发明限制为所公开的特定形式。此外,文字或附图中提及或者依据文字或附图显而易见的两个或更多个单独特征的所有替代组合包括附加的方面或创造性的公开内容,其可以形成权利要求的主题。
附图说明
图1示出了电影剪辑的帧(a)和相应的深度图(b),以灰度级表示估计的深度。
图2是流程图,示出了为视频剪辑的帧生成深度图的方法的一个实施例的概述。
图3是流程图,示出了根据图2概述的实施例的进一步细节。
图4示出了视频剪辑的一系列帧。
图5示出了与图4的帧相对应的一系列单图像深度图。
图6A至图6C示出了三个实施例中网格点的示例性布置。
图7示出了帧(a)和所述帧被覆盖上图6B的网格(b)。
图8示出了与时间相关帧中的网格点相关的对应区域。
图9示出了与时间相关帧中的网格点相关联的对应区域的进一步实施例(使用扭曲)。
图10示出了光流估计的过程。
图11示出了应用于多个时间相关帧的光流估计。
图12示出了一系列帧n-2到n+2,并示意性地表示了如何使用向后扭曲来创建扭曲的SIDM。
图13示出了至少一个实施例中使用的掩蔽。
图14以电路图的形式示出了一个模型,该模型可用于确定一些实施例中的最终标度值。
图15示意性地示出了使用时空滤波sSIDM来生成帧n的最终深度图的过程。
图16是根据本文公开的实施例的计算机系统的第一实施例的示意性框图。
具体实施方式
在以下描述中,为了提供对本公开的全面理解,提出了许多具体细节。但显而易见的是,可以在没有这些具体细节的情况下实践本公开。在一些情况下,结构和设备以框图的形式示出,以避免对显著细节的不必要的混淆。
发明人已知的一种用于电影剪辑的深度估计方法旨在解决时间闪烁问题,该方法在Johannes Kopf、Xuejian Rong和Jia-Bin Huang的“稳健一致的视频深度估计”(IEEE/CVF计算机视觉和模式识别(CVPR)会议的会议论文,2021,第1611-1621页)中提出,该论文的内容通过引用的方式并入本文,尽管申请人不承认所述文件或其引用的其他文件是本领域普通技术人员已知的。这种方法的缺点是计算成本高,并且每帧的处理可能需要几秒钟才能生成输出深度图。下面描述的实施例解决了这个缺点或者至少提供了一种替代方案。
图2是流程图,示意性示出了一种方法的实施例的概述,该方法用于生成与视频剪辑中的帧序列中的帧n(帧n)相对应的深度图。
方法10从具有多个帧(帧n-x…帧n+y)的视频剪辑110开始,并最终生成帧n的深度图(DM n)。可以再次执行该方法,为任何其他帧(例如,帧n+1、n-1等)生成深度图。然而很明显,并非所有步骤、动作和子步骤都需要完全重复,因为数据可能会从一帧到下一帧重复使用。
在步骤12,执行基线深度估计,以生成帧n以及与帧n在时间上相邻的至少一些帧的单图像深度图(single image depth map,SIDM)。在一些实施例中,基线深度估计12可以对剪辑中的所有帧执行,或者仅对完成关于帧n的方法所需的帧执行。
接下来,步骤14涉及将标量场应用于来自步骤12的基线深度估计。基线SIDM值乘以标量场中相应的值。在至少一个实施例中,使用来自帧的时间序列(包括帧n)的SIDM值来计算标量场。这可有助于解决SIDM中从一帧到下一帧的大面积闪烁问题。
在步骤16中,使用多个帧的定标后的单图像深度图执行时空滤波,以生成帧n的深度图。该步骤可以对多个帧上的定标后的深度图的对应空间区域进行加权平均。
图3是流程图,示出了生成深度图的方法(根据图2的方法的实施例)中的步骤。
如图2所示,方法100从获得视频剪辑110开始。例如,通过从存储器读取、通过经由有线或无线网络上的传输信道接收视频剪辑,或者通过在相机中直接捕获视频剪辑,可以获得视频剪辑。视频剪辑110包括多个帧。所述多个帧110包括帧n(要为其创建深度图)之前的x个帧和帧n之后的y个帧(帧n-x…n…n+y)。x和y是任意数量的帧,并且x和y可以相等或不相等。图4示出了视频剪辑的一部分的一系列图像。图4中的图像显示了一只熊在行走,总共包括7帧。在为其创建深度图的帧(帧n)之前有3个帧(帧n-3到n-1),之后有3个帧(帧n+1到n+3)。
在步骤120,通过为多个帧中的每个帧生成单图像深度图(SIDM)来执行基线深度估计。在该步骤中处理的多个帧可以是视频剪辑110中的所有帧,或者仅仅是处理帧n所需的帧。与帧n相对应的单图像深度图被标记为SIDM n。图5示出了与来自图4的剪辑中的帧相对应的单图像深度图。对7个单图像深度图进行标记(SIDM n-3…SIDM n+3)。相同的命名约定用于其他的帧和单图像深度图。此外,在整个说明书和权利要求书中,将使用命名约定,如果一实体或动作与特定的帧(例如,帧n)相关,则将用“n”来标记,类似地,与给定帧相关的实体和动作将用相应的标记来命名。
在一些实施例中,可以使用卷积神经网络(如MiDaS)来执行单图像深度估计。ReneRanftl、Katrin Lasinger、Konrad Schindler和Vladlen Koltun在“走向稳健的单目深度估计:零样本跨数据集传输的混合数据集”(TPAMI,2020)中对MiDas进行了更全面的描述,可以在存储库https://github.com/isl-org/MiDaS中访问。
原始帧可以定标为384×n,其中n取决于输入剪辑的纵横比,且表示图像帧短边的长度。MiDaS的输出产生逆深度,因此输出等于1/深度。这在图5中以每个SIDM的灰度图像表示,其中图像内容的估计深度表示为灰度级,较亮的像素的估计深度低于较暗的像素,使得白色像素是那些被认为是最近的区域,而黑色像素是那些距离捕捉图像的视点(将是真实场景的图像中的相机或人工创建的图像中选择的某点)最远的区域。
返回图3,在步骤130中,对单图像深度图(SIDM n)进行定标,以生成定标后的单图像深度图(sSIDM n)。在本实施例中,步骤130包括以下子过程:
在步骤150,在遍布于帧上的多个网格点处生成初始标度值。
在步骤160,基于网格点的初始标度值(在步骤150中确定)和一个或多个相邻网格点的初始标度值(关于这些网格点在步骤150确定)来生成针对每个网格点的最终标度值。
因为网格点比单图像深度图中的像素少,所以在步骤170根据网格点的最终标度值为单图像深度图中的每个像素确定标度值。这可能包括在网格点之间对标度值进行内插,以及在必要时在网格点之外对标度值进行外推。在一些实施例中,像素组间可以共享标度值,以避免需要将标度值内插达到帧的全分辨率。
下文将描述三个子过程的细节。
生成初始标度值
在步骤150,在多个网格点处生成初始标度值,所述网格点遍布于帧上。网格点可以以规则的图案或阵列遍布于帧上,或者以不规则的分布在帧上四处放置,或者基于图像而放置在特定位置。图6A至6C示出了网格点相对于帧及其单图像深度图(通常具有相同的尺寸或纵横比)的几种布置方式。图6A和6B示出了网格点相对于帧以规则阵列进行布置的示例。图6A示出了覆盖有网格线的帧n的单图像深度图(SIDM n)。竖直线(200V)和水平线(200H)之间的每个交叉点定义了网格点,例如网格点200P。网格线(200V和200H)的数量和位置将限定网格点的位置和数量。图6B示出了与图6A类似的网格点(例如200Q)的布置,不同之处在于网格点由竖直和水平网格线来布置,而这些网格线相对于图6A的网格线有偏移。因此,图6B具有位于帧的边缘的网格点,而在图6A中,其最外面的网格点与帧的边缘向内隔开。在一些实施例中,其他的网格形状或者与水平或竖直成一定角度设置的网格线也是可能的。网格点可以被放置在规则的n×m阵列中。尽管为了方便而使用术语“网格点”,但一些实施例可以具有不落在网格上、使用非直线网格、不规则间隔或随机定位的网格点,或者可以具有通过一些其他的预定方案而布置的网格点(例如,基于图像分析选择的点)。图6C举例说明了网格点(例如,200R)随机在帧上四处放置的情况。在图7所示的示例性实施例中,网格点被放置成具有25×14布局的n×m阵列。图7中的帧在面板(a)中显示了来自剪辑的一帧,显示了一个慢跑者在一片水域奔跑。面板(b)显示了该帧覆盖有网格,该网格具有跨过帧的、在图像上间隔开的25条(竖直)线和14条(水平)线。该网格线定义了375个网格点,这些网格点以25×14的阵列进行布置并位于线的交点处。请注意,本实施例遵循图6B的示例,并包括帧的边缘上的网格点。
在至少一个实施例中,生成针对给定网格点的初始标度值的步骤使用网格点的深度值,以及来自多个时间相关帧的同一网格点的深度值。
确定所述帧中网格点的深度值可包括确定包括网格点的一区域的平均深度值。图8示出了在至少一个实施例中如何定义包括网格点的区域。图8示意性地示出了针对帧n-i到n+i的单图像深度图序列。在SIDM n中,示出了网格点200Q及其周围包含深度值的区域202Q。区域202Q延伸到竖直线和水平线之间的中点,该竖直线和水平线相交以限定网格点200Q及其相邻的水平线和竖直线。因此,该区域的形状与定义网格点的网格的形状相同,但发生偏移使得网格点位于其区域的中心。该区域可以是正方形或矩形,这取决于网格的间距,或者在一些实施例中,如果该区域由网格点周围的半径定义,则可以是另一种几何形状,例如圆形。图8还示出了时间相关帧n-i和n+i的深度图。在这个示例中,每个帧将具有对应于200Q的网格点及其对应的区域或面积202Q。这些在SIDM n-i和SIDM n+i中被图示为被区域202Q-i和202Q+i包围的网格点200Q-i和200Q+i。
在一实施例中,可以为区域确定SIDM的平均值,并将其分配给网格点。对于多个时间上相关的帧,可以对相同的网格点执行这一相同处理。在至少一个实施例中,时间相关帧可以是在帧n之前或之后出现的一系列帧。在至少一个实施例中,使用之前和之后的三个帧,但可以使用更多或更少的帧。
由于图像的内容将随帧变化,并且深度分析旨在确保一致地处理内容以避免深度图中的闪烁,因此一个或多个实施例可以首先确定所述帧的内容与所述时间相关帧的内容之间的对应关系,并且在一些实施例中,对应关系较弱的像素或像素组可以被不同地处理或从某些处理步骤中排除。
检查所述帧的内容与所述时间相关帧的内容之间的对应关系可以包括分析在时间上相邻的帧之间的光流。这可以使用AI工具来完成,例如卷积神经网络(CNN)。这样的工具的一个合适的示例是SelFlow,正如P.Liu、M.Lyu、I.King和J.Xu在2019年IEEE/CVF计算机视觉和模式识别会议(CVPR)的“SelFlow:光流的自监督学习”(美国加州长滩,2019年,第4566-4575页)中描述的那样。这样的工具可用于确定帧n和每个时间相关帧之间的光流。如图10示意性示出的,光流估计器301将三个帧作为输入(帧n-1、帧n、帧n+1),并输出两个输出(流n→n+1、流n→n-1),其中流n→n+1是从“中心”帧(图10中的帧n)到后一帧(帧n+1)的向前光流估计,流n→n-1是从中心帧(帧n)到前一帧(帧n-1)的向后光流估计。在该示例中使用多个时间相关帧来执行该过程,其中输入是中心帧(帧n)以及在中心帧之前和之后的等间隔的帧对,以生成每个帧与中心帧之间的光流估计。然而,并不限制帧要等间隔,并且在一些实施例中可以使用其他不相等的间隔。
图11中示意性地给出了一个过程,以说明六个光流估计的生成。图11说明了图10的光流估计过程应用于图4所示的帧。在该示例中进行六个光流估计,每个光流估计在中心帧(帧n)之后的帧(帧n+1、n+2、n+3)和在其之前的帧(帧n-1、n-2、n-3)之间。在这种情况下,光流估计器301在三组帧上使用3次,即,光流估计器使用第一组帧(帧n-1、帧n、帧n+1)执行第一组估计,并且输出两个光流估计作为输出(流n→n+1、流n→n-1)。光流估计器301还使用第二组帧(帧n-2、帧n、帧n+2)执行第二估计,并输出两个光流输出(流n→n+2、流n→n-2)。而且,光流估计器使用第三组帧(帧n-3、帧n、帧n+3)执行第三组估计,并输出两个光流输出(流n→n+3、流n→n-3)。
接着,使用光流估计为所述多个时间相关帧中的每一个生成扭曲的深度图。这产生一组扭曲的深度图,网格点(理论上)由此应该与图像内的相同内容相关联,并且每个扭曲的深度图中的网格点周围的区域是可直接相比的。图12示出了一系列帧n-2到n+2(1202)。为每个帧创建SIDM 1204,并使用光流来执行向后扭曲以生成扭曲的深度图1206“扭曲SIDM n-1→n”、“扭曲SIDM n+1→n”、“扭曲SIDM n-2→n”和“扭曲SIDM n+2→n”。
然而,光流估计有局限性,其计算本身就是一个难题。因此,光流中的误差将导致扭曲的深度图中的伪影。为了解决这些伪影并消除它们的影响,识别具有这些伪影的区域,并且可以创建掩蔽。在至少一个实施例中,通过检查当前时间步(帧n)的深度图和每个扭曲的深度图之间的像素级别的差异来创建掩蔽。如果差异大于预定阈值(例如,在一些实施例中为3.0),则该区域被掩蔽。如果差值超过阈值,则像素实际上被视为“不可靠的”。
深度值高于预定阈值(例如25.0)的像素位置也可以被掩蔽。这是因为远处对象(例如天空)的深度可能比附近对象(例如图12中的跑步者)大几个数量级。在随后的计算中包括非常少的远处像素(例如,在可能包括天空像素和跑步者像素的网格点周围取平均深度)就会不适当地使平均值向远处像素失真,即使该区域的其余部分具有前景内容。
因此,“不可靠的”像素和深度超过预定阈值的像素可以被掩蔽。图13展示了由图12的帧生成的这样一个示例性的掩蔽。白色区域(即,被掩蔽的像素)表示不可靠和远处的像素,而黑色区域表示未被掩蔽的可靠和附近的像素。定性地说,在图13中,可以看到掩蔽包括天空1302(因为它很远)和跑步者周围的一些区域1304,因为它包含当前时间步(帧n)的深度与扭曲的深度图的帧之间的最大可变性(因为它代表了移动的跑步者和相对稳定的背景之间的交界处)。
在一些实施例中也可以使用仅排除了远处像素的掩蔽。
在某些情况下,掩蔽可以是根据当前帧(帧n)的SIDM和单个时间相关帧的SIDM生成的“单帧掩蔽”。这样的掩蔽在使用单个时间相关帧来计算网格点的初始标度值时将是有用的。在其他情况下,掩蔽可以是多个单帧掩蔽的组合所创建的“多帧掩蔽”。这是通过使用“或”运算来组合多个掩蔽而执行的,使得在单帧掩蔽中被掩蔽的任何像素都会在多帧掩蔽中被掩蔽。
如上所述,生成针对给定网格点的初始标度值可使用该网格点的深度值以及来自多个时间相关帧的相同网格点的深度值。确定帧中网格点的深度值可以包括确定区域的平均深度值,所述区域包括网格点但不包括被掩蔽的像素,例如,由于它们处于大于预定深度的距离处。对于时间相关帧,对它们各自的扭曲深度图执行相同的处理,即对于每个网格点计算深度值。深度值是针对扭曲的深度图中的区域的平均深度值,但不包括被掩蔽的像素(例如,由于它们处于大于预定深度的距离处)。因此,在这个具有25×14个网格点和7个时间相关帧(帧n和6个时间相关帧)的示例中,计算平均深度值的7×25×14矩阵。然后,可以通过将当前帧中的网格点的深度值与时间相关帧中的对应网格点的一组深度值进行比较来计算每个网格点的初始标度值。这可以包括确定深度值组的中心趋势度量(measure ofcentral tendency)与网格点的深度值的比率。例如,初始标度值可以计算如下:
初始标度值=(组的中值深度值)/(帧n中的深度值)
时间相关帧的深度值的组通常将包括网格点的深度值,也就是说,在这个示例性实施例中,深度值组将包括7个平均值。
在替代性实施例中,可以选择允许网格点在帧与帧之间不完全匹配。在这种情况下,定义网格点的“网格”可以被扭曲(例如,使用诸如光流之类的图像分析技术),使得对应的网格点随着图像内容从一帧移动到另一帧,类似地,帧n中呈现第一形状的对应区域可以由于这种扭曲而在时间相关帧中呈现不同的形状或不同的方向。图9再次示意性地说明了这一点,SIDM n、SIDM n-i和SIDM n+i用网格点200Q、200Q-i和200Q+i表示,这些网格点被区域202Q、202Q-i和202Q+i包围。但是,可以看出帧n+i和n-i中的网格不再是规则的正方形网格,并且区域202Q-i和202Q+i已经随着网格而扭曲,使得它们与202Q相比被少量移位、旋转并且可能重新成形。可以对其他过程进行必要的修改以适应这种变化。
生成最终标度值
初始标度值在帧与帧之间具有一定的时间一致性,因为每个相继的帧的初始标度值在将其确定时会共享一些公共帧。但是,初始标度值不考虑空间一致性,因为在其生成中只使用帧的空间对应部分。这是通过基于所述网格点的初始标度值及其相邻网格点的初始标度值来生成每个网格点的最终标度值来解决的。
该过程可包括确定每个相邻网格点的相对贡献和所述网格点的初始标度值。在一些实施例中,可以使用所述掩蔽来确定所述一个或多个相邻网格点的相对贡献。
在这种情况下确定一组值的任务可以建模为确定电阻器网络中每个节点处的电压(或等效为弹簧网络中节点处的力)。图14举例说明了代表此问题的电阻器模型网络。
在图14的图中,每个初始标度值表示为电池1401,电池1401具有的电压(b)等于初始标度值。对应于初始标度值的最终标度值是网络中最靠近电池(表示初始标度值)的节点处的电压。这两个值通过“弹性”联系在一起,该“弹性”表示初始值对最终值有多大程度的影响,并被建模为它们之间的电阻器1402。每个相邻节点对最终标度值(表示为节点电压(u))的影响通过权重来设置,所述权重由连接相邻节点的电阻器1403来表示。为了方便和清晰起见,节点之间的“对角”连接仅针对标记为“c”的节点及其标记为“n”的相邻节点显示。所有其他“对角”连接也以相同的方式进行加权,但未显示。下面将使用节点c作为示例。
电压(u)可以通过求解表示模型电路的一组线性方程来计算,如下所示
ATCAu=ATCb(方程1)
A是关联矩阵,定义了节点之间的连接。如上所述,所有相邻节点都已连接。AT是矩阵A的转置。
u是包含每个节点处的电压的向量。
b是包含代表初始标度值的电池电压的向量。
C是传导矩阵,其值计算如下:
为每个节点计算第一权重。使用图14的电路的灰色突出显示部分1410,节点“c”的权重可以确定如下:
每个节点的权重是节点“c”的影响区域内的像素的加权平均值。在这个过程中,可以使用“多帧掩蔽”来排除任何有潜在问题的(例如,由于变化或距离)像素。
该影响区域包括由相邻节点限定的区域内的所有像素,例如,对于节点c,它包括由标记为“n”的8个节点限定的正方形内的所有像素。定性地说,如果影响区域包含大量被掩蔽的像素,则该像素的初始标度值将是不可靠的,并且其相邻像素应该对该点的最终标度值具有更大的影响。这导致将节点连接到其邻居的权重具有更高的电导。相反,具有很少的被掩蔽像素的“可靠”初始值对其邻居的电导较小,并且应该保持更接近其初始值。
针对节点周围的每个区域的权重计算如下:
wc=α12*1/NppMask(p)b(p)(方程2)
其中wc是针对给定节点c的权重,并且是对该节点的影响区域中的所有像素求和。
α1是标量值,例如0.1。
α2是标量值,例如10.0,α1和α2的相对值设置了被掩蔽和未被掩蔽的像素的相对重要性。
Np是影响区域中的像素数。
Mask(p)是像素(p)的位置处的掩蔽值,被掩蔽时是1,未被掩蔽时是0。因此,未掩蔽像素对和的贡献是0。
b(p)是位置(p)处的像素的双线性系数,并且使用像素位置(p)和节点位置(c)之间的距离来导出。
一旦计算出节点(c)的wc,则节点(c)和每个相邻节点(n)之间的电导Ccn计算如下:
Ccn=max(wc,wn)(方程3)
因此,每个节点有8个电导(图14中的每个“电阻器”1403对应一个,将其链接到其相邻的每个节点),一个电导为其初始值。节点的初始标度值的电导可以是固定的,例如,在这个示例中为1。
因此,可以生成传导矩阵C,并求解方程1以生成表示帧n的网格点的最终标度值的u向量。因为这仅涉及求解一组线性方程,所以与一些现有技术的优化方法相比,这是相对简单和快速的。
为所有像素确定最终标度值
如上所述,与帧的单图像深度图中的像素相比,用于在步骤160中计算最终标度值的网格点更少。因此,在一些实施例中,有必要使用网格点的最终标度值来确定待应用于SIDM的每个像素的标度值。在一些实施例中,这包括在网格点之间对标度值进行内插(例如,使用双线性插值)。如果SIDM中存在位于最外网格点之外的像素,则可以从网格点处的最终标度值进行外推来生成标度值,以用于这些像素。然而,可能不是必须要求帧的SIDM中的所有像素均具有单独的标度值。因此,在一些实施例中,内插或外推可以不增加标度值的数量去匹配帧或SIDM的全分辨率。在其他实施例中,基于每个像素相对于网格点的位置为它们分配标度值,从而可以从网格点的最终标度值确定应用于所述SIDM的每个像素的标度值。例如,每个网格点周围的区域中的所有像素可以取与该网格点相对应的标度值。
一旦确定了SIDM中每个像素的标度值,就将这些值乘以其对应的SIDM深度像素值,以确定帧n的定标后的SIDM。
有利地,在一些实施例中,可以重复图2的步骤12至16或图3的步骤120至170的那些部分,以为视频剪辑110的其他帧生成定标后的SIDM(sSIDM)。然后,可以在步骤140中使用这些附加的sSIDM来生成帧n的最终深度图(DMn),这可以进一步减少视频剪辑的闪烁深度图的出现。
现在,再次返回图3,在步骤140中,处理定标后的单图像深度图sSIDM的时间序列,以生成对应于帧n(DMn)的深度图。时空滤波步骤可以使用Kopf等人的“稳健一致的视频深度估计”中的方程(7)和(8)中所述的过程来执行。时间序列中定标后的单图像深度图的数量是可选的。在一些实施例中,它可以包括帧n之前和之后的1到5个帧。图15示出了子过程140的实施例中的步骤。步骤140以在步骤130中生成的定标后的单图像深度图的时间序列141开始。在该示例中,使用了一组5个sSIDM,即sSIDM n、sSIDM n+1、sSIDM n-1、sSIDM n+2和sSIDM n-2。可以基于计算开销来选择帧数,以便实现所需的时间平滑程度。Kopf等人的“稳健一致的视频深度估计”在目标帧每侧使用4个帧(τ=4)。接下来,在142,使用先前计算的光流估计将每个sSIDM扭曲回到sSIDM n。这导致一系列扭曲的sSIDM帧。然后,可以在步骤143中使用Kopf等人的“稳健一致的视频深度估计”的方程(7)和(8)来处理扭曲的sSIDM帧,以通过在每个像素周围的邻域中在扭曲的sSIDM的时间序列上生成加权平均来执行时空滤波。在至少一个实施例中,可以使用3×3像素的邻域。然而,可以改变滤波邻域的大小,以在计算要求相应变化的情况下修改空间滤波特性。最终的输出DMn是适于在视频剪辑110的进一步处理中使用的平滑深度图。
图16提供了说明计算机系统1000的一个示例的框图,本公开的实施例可以在该计算机系统1000上实现。计算机系统1000包括用于传送信息的总线1002或其他通信机制,以及与总线1002连接以处理信息的硬件处理器1004。硬件处理器1004可以是例如一个或多个通用微处理器、一个或多个图形处理单元或其他类型的处理单元,或者它们的组合。
计算机系统1000进一步包括主存储器1006,例如随机存取存储器(RAM)或其他动态存储设备,其连接到总线1002,用于存储信息以及将由处理器1004执行的指令。主存储器1006还可以用于在将由处理器1004执行的指令的执行期间存储临时变量或其他中间信息。当被存储在处理器1004可访问的非暂时性存储介质中时,这些指令将计算机系统1000呈现为专用机器,该专用机器被定制并配置为执行指令中指定的操作。
计算机系统1000还可以包括只读存储器(ROM)1008或其他静态存储设备,其连接到总线1002,用于存储静态信息和用于处理器1004的指令。可以提供诸如磁盘或光盘之类的存储设备1010并将其连接到总线1002,以存储包括上述视频编辑软件应用程序的信息和指令。
计算机系统1000可以经由总线1002连接到显示器1012(例如一个或多个LCD、LED、触摸屏显示器或其他显示器),用于向计算机用户显示信息。包括字母数字和其他键的输入设备1014可以连接到总线1002,用于将信息和命令选择传送到处理器1004。另一种类型的用户输入设备是光标控制1016,例如鼠标、轨迹球或光标方向键,用于将方向信息和命令选择传送到处理器1004并用于控制显示器1012上的光标移动。
根据至少一个实施例,作为对处理器1004执行主存储器1006中包含的一个或多个指令的一个或者多个序列的响应,本文中的技术由计算机系统1000执行。这样的指令可以从另一存储介质(诸如远程数据库)读取到主存储器1006中。主存储器1006中包含的指令序列的执行使得处理器1004执行本文所述的处理步骤。在替代性的实施例中,可以使用硬连线电路来代替软件指令或与软件指令相结合。
本文中使用的术语“存储介质”是指存储了使得机器以特定方式运行的数据和/或指令的任何非暂时性介质。这样的存储介质可以包括非易失性介质和/或易失性媒体。非易失性介质包括例如光盘或磁盘,例如存储设备1010,而易失性介质包括诸如主存储器1006之类的动态存储器。常见的存储介质的形式例如包括:软盘、硬盘驱动器、固态驱动器、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、任何具有孔的图案的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他存储芯片或盒式存储器。
计算机系统1000还可以包括连接到总线1002的通信接口1018。通信接口1018提供连接到网络链路1020的双向数据通信,网络链路1020连接到通信网络1050。例如,通信接口1018可以是综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器等。作为另一示例,通信接口101可以是局域网(LAN)卡,以提供与兼容LAN的数据通信连接。还可以实现无线链路。在任何这样的实现方式中,通信接口1018发送和接收电信号、电磁信号或光信号,这些信号携带表示各种类型信息的数字数据流。
本文对所附权利要求中包含的术语明确给出的任何定义应当对权利要求中使用的这些术语的含义有支配性。权利要求中未明确列举的任何限制、要素、属性、特征、优点或属性都不应以任何方式限制权利要求的范围。
如本文所用,术语“包括”和“包含”(以及这些术语的变体)旨在具有包容性,而不旨在排除进一步的特征、组成部分、整数或步骤。
对于已经使用流程图描述的本公开的各方面,给定的流程图步骤可能以各种方式并且由各种设备、系统或系统模块来执行。一个给定的流程图步骤可以分为多个步骤和/或多个流程图步骤可合并为一个步骤,除非特别指出不可如此。此外,在不脱离本公开的范围的情况下,可以改变步骤的顺序,除非特别指出不可如此。
以上描述的各种实施例可以组合,以提供进一步的实施例。根据以上详细描述,可以对实施例进行这些和其他的改变。一般来说,在以下权利要求中,所使用的术语不应被解释为将权利要求限制于说明书和权利要求中公开的特定实施例,而应被理解为包括所有可能的实施例以及这些权利要求所享有的等同物的全部范围。

Claims (15)

1.一种生成与视频剪辑中的帧序列中的帧相对应的深度图的方法,该方法包括:
针对多个帧中的每个帧生成单图像深度图;
通过将标度值应用于所述单图像深度图的每个像素,对每个帧的单图像深度图进行定标,以生成针对所述每个帧的定标后的单图像深度图,其中,使用包括以下步骤的方法来生成针对单图像深度图的每个像素的标度值:
针对遍布于帧上的多个网格点中的每个网格点:
使用所述网格点的深度值以及与来自多个时间相关帧的相同的网格点相对应的深度值来生成初始标度值;
基于所述网格点的初始标度值以及一个或多个相邻网格点的初始标度值来生成所述网格点的最终标度值;以及
根据网格点的最终标度值来确定要应用于所述单图像深度图的每个像素的对应的标度值;以及
处理定标后的单图像深度图的时间序列,以生成与所述视频剪辑中的帧序列中的帧相对应的所述单图像深度图。
2.根据权利要求1所述的方法,其中,使用所述网格点的深度值以及来自多个时间相关帧的相同的网格点的深度值来生成初始标度值的步骤包括:
通过确定包括所述网格点的区域的平均深度值来确定所述帧中的网格点的深度值;并且
确定与多个时间相关帧的相同的网格点相对应的深度值包括:确定所述帧的内容与所述时间相关帧的内容之间的对应关系,使得能够为所述多个时间相关帧中的每个帧确定与所述网格点对应的位置;以及在每个时间相关帧中确定包括所述位置的区域的平均深度值,以针对每个时间相关帧确定与所述网格点相对应的深度值。
3.根据权利要求2所述的方法,其中,使用以下比率来确定每个网格点的初始标度值:
一组深度值的中心趋势度量与所述网格点的深度值的比率,
其中所述一组深度值至少包括来自所述多个时间相关帧的相同的网格点的深度值。
4.根据权利要求1所述的方法,其中,所述方法包括:限定包括所述帧的像素的掩蔽,其中所述单图像深度图被确定为以下中的任意一者或两者:
所述单图像深度图基于所述多个帧的光流分析而被确定为不可靠的;或
所述单图像深度图被确定为具有大于阈值深度的深度。
5.根据权利要求4所述的方法,其中,以下中的至少一者将所述掩蔽中所包括的像素排除在外:
通过确定包括所述网格点的区域的平均深度值来确定所述网格点的深度值,和/或
针对多个时间相关帧确定与相同的网格点相对应的深度值。
6.根据权利要求5所述的方法,其中,确定所述帧的内容与所述时间相关帧的内容之间的对应关系包括:分析在时间上相邻的帧之间的光流,根据所述光流生成所述多个时间相关帧中的每一个的扭曲的深度图从而将与所述网格点相对应的所述位置与所述网格点对准,以及使用所述扭曲的深度图在每个时间相关帧中确定所述位置周围的区域的平均深度值。
7.根据权利要求5所述的方法,其中,确定所述帧的内容与所述时间相关帧的内容之间的对应关系包括:分析在时间上相邻的帧之间的光流,使用所述光流来跟踪所述时间相关帧中的每一个中的所述网格点的位置,以及在每个时间相关帧中确定所述位置周围的区域的平均深度值。
8.根据权利要求1所述的方法,其中,基于所述网格点的初始标度值以及一个或多个相邻网格点的初始标度值来生成所述网格点的最终标度值的步骤包括:
可选地基于所述掩蔽,确定所述一个或多个相邻网格点中的每一个的相对贡献以及所述网格点的初始标度值。
9.根据权利要求1所述的方法,其中,基于所述网格点的初始标度值以及一个或多个相邻网格点的初始标度值来生成所述网格点的最终标度值包括求解一系列线性方程,所述一系列线性方程代表所述网格点中的每一个的初始标度值以及所述网格点的相邻网格点中的每一个的初始标度值。
10.根据权利要求1所述的方法,其中,根据网格点的最终标度值来确定要应用于所述单图像深度图的每个像素的标度值包括以下中的一者或两者:
通过内插为所述网格点之间的每个像素生成标度值;以及
基于相对于所述网格点的位置为每个像素分配标度值。
11.根据权利要求1所述的方法,其中,针对每个帧生成单图像深度图包括使用深度学习模型,例如卷积神经网络,以生成所述单图像深度图。
12.一种包括处理器的计算机系统,所述处理器根据存储在非暂时性存储介质中的执行指令进行操作,所述指令由此在被执行时配置所述计算机系统以执行前述权利要求中任一项所述的方法。
13.根据权利要求12所述的计算机系统,其包括非线性编辑系统。
14.一种在其上存储执行指令的非暂时性计算机可读存储介质,所述执行指令在由处理器执行时使所述处理器执行根据权利要求1至11中任一项所述的方法。
15.一种包含执行指令的计算机软件产品,当由处理器执行时,所述执行指令使所述处理器执行前述权利要求中任一项所述的方法,所述软件产品可选地要么包括非线性编辑计算机软件产品,要么包括视频效果软件产品。
CN202310402675.8A 2022-04-15 2023-04-14 用于生成深度图的方法和系统 Pending CN116912303A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202263331396P 2022-04-15 2022-04-15
US63/331,396 2022-04-15

Publications (1)

Publication Number Publication Date
CN116912303A true CN116912303A (zh) 2023-10-20

Family

ID=86007069

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310402675.8A Pending CN116912303A (zh) 2022-04-15 2023-04-14 用于生成深度图的方法和系统

Country Status (4)

Country Link
US (1) US20230334685A1 (zh)
EP (1) EP4261780A1 (zh)
JP (1) JP2023157856A (zh)
CN (1) CN116912303A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110602566B (zh) * 2019-09-06 2021-10-01 Oppo广东移动通信有限公司 匹配方法、终端和可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9030469B2 (en) * 2009-11-18 2015-05-12 Industrial Technology Research Institute Method for generating depth maps from monocular images and systems using the same

Also Published As

Publication number Publication date
JP2023157856A (ja) 2023-10-26
US20230334685A1 (en) 2023-10-19
EP4261780A1 (en) 2023-10-18

Similar Documents

Publication Publication Date Title
US11017586B2 (en) 3D motion effect from a 2D image
Chan et al. An augmented Lagrangian method for total variation video restoration
Wang et al. Layered representation for motion analysis
US5781198A (en) Method and apparatus for replacing a background portion of an image
CN102025959B (zh) 从低清晰度视频产生高清晰度视频的系统与方法
CN113994366A (zh) 用于视频超分辨率的多阶段多参考自举
CN116912303A (zh) 用于生成深度图的方法和系统
KR20210011322A (ko) 시간적 주의에 기초한 비디오 깊이 추정
Khan et al. Efficient edge-based image interpolation method using neighboring slope information
CN112785492A (zh) 图像处理方法、装置、电子设备和存储介质
KR20100084075A (ko) 멀티프레임을 고려한 비디오 오브젝트 매팅 시스템 및 방법
Concha et al. An evaluation of robust cost functions for RGB direct mapping
US10121257B2 (en) Computer-implemented method and system for processing video with temporal consistency
Zhang et al. Recurrent interaction network for stereoscopic image super-resolution
US11348336B2 (en) Systems and approaches for learning efficient representations for video understanding
CN108053464A (zh) 粒子特效处理方法及装置
Raveendran et al. Image fusion using LEP filtering and bilinear interpolation
CN110443754B (zh) 一种数字图像分辨率提升的方法
CN114936633B (zh) 用于转置运算的数据处理单元及图像转置运算方法
CN111767679A (zh) 时变矢量场数据的处理方法及装置
JP2015197818A (ja) 画像処理装置およびその方法
Somraj et al. Temporal view synthesis of dynamic scenes through 3D object motion estimation with multi-plane images
CN109740337A (zh) 一种实现滑块验证码识别的方法及装置
Park et al. Robust and direct estimation of 3-D motion and scene depth from stereo image sequences
CN103634591A (zh) 一种视频质量评估的方法、装置和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication