CN111050210A - 经由置信度加权运动估计的视频修补 - Google Patents

经由置信度加权运动估计的视频修补 Download PDF

Info

Publication number
CN111050210A
CN111050210A CN201910683780.7A CN201910683780A CN111050210A CN 111050210 A CN111050210 A CN 111050210A CN 201910683780 A CN201910683780 A CN 201910683780A CN 111050210 A CN111050210 A CN 111050210A
Authority
CN
China
Prior art keywords
motion
video
boundary
pixel
video frame
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
CN201910683780.7A
Other languages
English (en)
Other versions
CN111050210B (zh
Inventor
S·沃克
R·谢赫
O·王
M·卢卡茨
J·尼尔逊
G·奥克斯霍尔姆
E·谢克特曼
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.)
Adobe Inc
Original Assignee
Adobe Systems Inc
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 Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN111050210A publication Critical patent/CN111050210A/zh
Application granted granted Critical
Publication of CN111050210B publication Critical patent/CN111050210B/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/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/44008Processing 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 operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/036Insert-editing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/77Retouching; Inpainting; Scratch removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/215Motion-based segmentation
    • 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
    • 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/44012Processing 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 rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4728End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
    • 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/47End-user applications
    • H04N21/485End-user interface for client configuration
    • H04N21/4854End-user interface for client configuration for modifying image parameters, e.g. image brightness, contrast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/272Means for inserting a foreground image in a background image, i.e. inlay, outlay
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/87Regeneration of colour television signals
    • H04N9/873Regeneration of colour television signals for restoring the colour component sequence of the reproduced chrominance signal
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Image Analysis (AREA)
  • Television Signal Processing For Recording (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本公开的实施例涉及经由置信度加权运动估计的视频修补。某些方面涉及经由置信度加权运动估计的视频修补。例如,视频编辑器在一个或多个视频帧中访问具有待修改的目标区域的视频内容。视频编辑器计算针对目标区域的边界的运动。视频编辑器从边界运动中内插目标区域内的目标像素的目标运动。在内插中,被分配给边界像素的置信度值控制这些像素的运动如何有助于所内插的目标运动。基于关于特定边界像素的前向运动与反向运动之间的差异、包括特定边界像素的区域中的纹理或其组合来计算置信度值。视频编辑器通过更新目标像素的颜色数据来修改视频中的目标区域以对应于从边界运动内插的目标运动。

Description

经由置信度加权运动估计的视频修补
相关申请的交叉引用
本公开要求于2018年10月12日提交的美国临时申请号62/745,260的优先权,该临时申请通过引用整体并入于此。
技术领域
本公开总体上涉及用于视频回放系统的视频内容的自动处理。更具体地,但不作为限制,本公开涉及使用一组视频帧的目标区域内的像素运动的置信度加权估计来执行关于目标区域的视频修补。
背景技术
某些视频编辑程序包括用于将目标区域中的内容替换为其他期望内容(诸如用户提供的内容或从视频中的其他区域复制或得出的内容)的特征。作为一个示例,视频修补方法被用来使用视频的剩余部分用内容来填充视频中的用户指定的时空洞。视频修补被用于不同的应用,诸如但不限于不需要的对象移除、视频稳定、广播视频中的徽标或水印移除、以及损坏的电影内容的恢复等。
视频修补的一个示例涉及手动编辑每个视频帧。例如,视频编辑器被用来从缺少要移除的对象的场景的“干净”版本手动复制内容,并且用该对象来编辑场景的版本以将对象替换为来自“干净”场景的内容。然而,这种技术依赖于场景的“干净”版本的可用性。如果场景的“干净”版本不可用,则必须使用例如诸如
Figure BDA0002145559520000011
等图像编辑工具手动地编辑每个帧。多个视频帧的手动编辑可能是乏味的并且可能缺乏一致性,诸如当对第一帧的手动编辑和对另一帧的单独的手动编辑基于用户产生的错误、用户的主观判断等而不同时。
视频修补技术的另一示例是平面跟踪。使用平面跟踪的软件工具将跟踪源内容的矩形和待移除或待修改的内容的区域。该软件将源内容放置在待移除或待修改的对象上。然而,平面跟踪要求背景内容(例如,待填充的孔或待替换的对象后面的内容)是平面的。在没有这样的平面内容的情况下,所得到的编辑视频可能包括被移除的对象的伪像或者以其他方式缺少期望质量。
因此,现有解决方案可能由于诸如(但不限于)上述原因而存在缺点。
发明内容
某些方面涉及使用一组视频帧的目标区域内的像素运动的置信度加权估计来执行关于跨视频帧的目标区域的修补。例如,视频编辑器访问具有注释的视频内容,该注释标识所描绘的场景的一个或多个视频帧中的待修改的目标区域。视频编辑器计算目标区域的边界的运动。视频编辑器还向边界像素分配置信度值。基于关于特定边界像素的前向运动与反向运动之间的差异、包括特定边界像素的区域中的纹理或其组合来计算特定置信度值。视频编辑器从边界运动中内插目标区域内的目标像素的目标运动。在内插中,所分配的置信度值控制针对不同边界像素的不同运动对所内插的目标运动的贡献。视频编辑器通过更新目标像素的颜色数据以对应于从边界运动内插的目标运动来修改视频中的目标区域。
附图说明
当参考附图阅读以下详细描述时,将更好地理解本公开的特征、方面和优点。该专利或申请文件包含至少一幅彩色附图。具有(多张)彩色附图的本专利或专利申请出版物的副本将在请求和支付必要费用后由主管局提供。
图1描绘了根据本公开的某些方面的用于经由置信度加权运动估计的视频修补的视频处理环境的示例。
图2描绘了根据本公开的某些方面的使用视频修补来修改将由图1的视频处理环境移除的视频帧的示例。
图3描绘了根据本公开的某些方面的具有目标区域和相关联的边界像素的视频帧的示例,可以利用图1中描绘的视频处理环境来编辑视频帧。
图4描绘了根据本公开的某些方面的根据图3中的视频帧计算的运动场的示例。
图5描绘了根据本公开的某些方面的从图4的运动场内插运动并且因此更新来自图3的视频帧中的目标区域的像素的示例。
图6描绘了根据本公开的某些方面的用于使用一组视频帧的目标区域内的像素运动的置信度加权估计来执行关于跨视频帧的目标区域的修补的过程的示例。
图7描绘了用于实现本公开的一个或多个方面的计算系统的示例。
具体实施方式
某些方面涉及使用沿着一组视频帧中的目标区域的边界的像素运动的置信度加权估计来执行关于目标区域的视频修补。例如,视频编辑器通过使用视频中描绘的场景的计算的运动来标识待复制到目标区域中的内容,来帮助修改视频的目标区域,目标区域包括描绘待移除或待修改的对象的视频帧的部分。这种场景运动的计算包括在修改目标区域之前基于场景中的其他像素的运动来估计场景的运动在目标区域内将是什么,诸如定义目标区域的边界的边界像素的运动。通过实现本文中描述的某些方面,视频编辑器通过向某些像素分配置信度值来改进该运动估计的准确度,其中置信度值指示关于这些像素的运动计算的可靠性。在由视频编辑器执行的运动估计操作中,具有更可靠的运动计算的像素在估计目标区域内的运动方面具有更大的影响,反之亦然。
提供以下非限制性示例以介绍某些方面。在该示例中,视频编辑器访问描绘场景的一组视频帧,诸如由用户用视频编辑器修改的输入视频。例如,所描绘的场景包括正在进行的足球比赛以及通过在相机前行走而破坏足球比赛的观看的观众。该组视频帧包括(或以其他方式与其相关联)注释,该注释标识包括场景的一个或多个视频帧中的待修改的目标区域。例如,视频编辑器可以接收标识一个或多个视频帧中的观众对象的用户输入。视频编辑器可以使用这些输入来注释构成场景的该组视频帧中的观众对象。
继续该示例,视频编辑器计算针对场景内的目标区域的边界的边界运动。例如,边界包括一组视频帧中与目标区域(例如,“观众”对象)相邻的边界像素。边界运动指示当视频帧进展时沿着边界的视频内容如何在场景内移动。如果场景描绘了观众背后的足球比赛,则构成足球比赛的各种对象(例如,场地、球员等)可以在场景内移动,这是由于对象本身在被捕获时的移动(例如,在场地中跑动的球员)、相机的移动(例如,由于相机从场地的一端平移到另一端)、改变相机的变焦或其某种组合。视频编辑器还向各种边界像素分配置信度值。特定置信度值可以指示针对特定边界像素计算的运动是否足够可靠以估计目标区域内的运动。视频编辑器可以基于例如关于特定边界像素的前向运动与反向运动之间的差异、包括特定边界像素的区域中的纹理或两者来计算置信度。
为了在该示例中移除“观众”对象,视频编辑器估计目标区域内的运动。估计运动包括从针对边界像素计算的边界运动内插目标区域内的目标运动。因此,目标区域内的估计运动是针对边界像素的运动的组合计算的函数。特定边界像素的特定置信度值控制该边界像素的运动对内插目标运动的贡献。例如,如果边界像素的计算的运动是不可靠的,则与该边界像素相关联的置信度值将减小该边界像素的计算的运动在针对边界像素的运动的组合计算的函数内的影响。
视频编辑器使用内插运动来更新目标区域内的目标像素的颜色数据。作为简化示例,如果特定“足球运动员”对象在场景中移动并且在“观众”对象破坏场景之前和之后可见,则特定“足球运动员”对象的运动遵循从其中“足球运动员”对象可见的第一帧到其中“足球运动员”对象被“观众”对象遮挡的第二帧之间的路径,其中第一帧可以在第二帧之前或之后发生。目标区域内的内插的运动允许视频编辑器估计“足球运动员”对象在目标区域内的位置,即,从第一帧到其在第二帧中的预期位置跟踪描绘足球运动员的像素。因此,视频编辑器可以从第一帧复制描绘足球运动员的像素的颜色数据,并且更新第二帧中的目标区域的像素以包括所复制的颜色数据。以这种方式,“足球运动员”对象取代视频中的破坏性的“观众”对象。
可以以任何合适的方式计算被用来估计目标区域内的运动的置信度值。在一些方面,视频编辑器至少部分地通过确定某些场景像素的运动是否是自洽的来计算置信度值。例如,从时间戳t1到tn(即,时间上前向)的边界的计算的运动应当具有与从时间戳tn到t1(即,时间上后向)的边界的计算的运动相同的幅度和相反的方向。因此,成对的时间相邻的帧应当在前向和反向运动方面表现出一致性。视频编辑器可以基于时间上的前向运动相对于时间上的后向运动的一致性如何来增加或减少来自边界区域的运动数据的置信度。在附加或备选方面,视频编辑器至少部分地通过评估目标区域周围的视频内容的纹理来计算置信度值。低纹理区域的运动数据可能没有高纹理区域的可靠。例如,如果场景涉及相机在清澈的蓝天上平移,则针对场景的“天空”部分的计算的运动可以指示非常小的运动(即,由于不存在帧之间的颜色变化),即使平移相机确实导致移动的场景。因此,视频编辑器可以基于该区域中存在多少纹理(例如,灰度强度的变化)来增加或减少来自区域的运动数据的置信度。
某些方面提供对用于编辑视频内容的计算系统的改进。例如,如上所述,现有的视频修补技术通常需要手动的耗时的过程来移除或修改目标对象,并且当替换或以其他方式修改场景中的对象时,较不麻烦的现有自动化过程能够引入伪像或其他不准确性。这些问题可以通过本文中描述的各种特征来解决。例如,使用置信度值来减小或增加某些像素对运动内插操作的影响可以通过创建具有很少或没有伪像的已修改视频来提高内插运动的准确度,并且通过扩展,提高修补操作的质量。在各种示例中,本文中描述的某些基于置信度的修补技术不依赖于线性运动(即,约束到平面的运动)或经由用户输入的平面的标识。因此,本文中描述的某些方面可以比现有技术具有更高准确度地自动化视频编辑过程。
用于经由置信度加权运动估计进行视频修补的操作环境的示例
现在参考附图。图1描绘了用于基于运动的视频修补的视频编辑环境100的示例。视频编辑环境100包括一组通信耦合的组件。这些组件包括可以在一个或多个计算设备上执行的视频编辑器102、可以被用来向视频编辑器102提供命令的输入设备120、以及向用户显示视频内容的呈现设备122。
视频编辑器102包括用于显示和编辑视频内容的程序代码。该程序代码的示例包括用于呈现用于显示的内容的程序代码、用于创建事件监听器或用于从输入设备(例如,鼠标、触摸屏等)接收输入的其他合适对象的一个或多个实例的程序代码、用于修改针对视频内容的一个或多个帧中的像素的颜色信息的程序代码等。
在图1中描绘的示例中,视频编辑器包括置信度引擎104、内插引擎106和颜色更新引擎108。置信度引擎104包括在由处理硬件执行时执行用于计算由视频编辑器102执行的运动估计的置信度的一个或多个度量的一个或多个操作的程序代码。内插引擎106包括在由处理硬件执行时执行用于估计界定跨一组视频帧的用户指定的感兴趣区域的像素的运动的一个或多个操作的程序代码。内插引擎106包括在由处理硬件执行时执行用于估计跨一组视频帧112a-n的用户指定的感兴趣区域内的像素的运动的一个或多个操作的程序代码。颜色更新引擎108包括在由处理硬件执行时执行用于基于估计运动修改用户指定的感兴趣区域内的颜色信息的一个或多个操作的程序代码。
虽然图1描绘了包括置信度引擎104、内插引擎106和颜色更新引擎108的视频编辑器102,但是其他实现也是可能的。例如,在各种方面,可以省略这些引擎中的一个或多个,这些引擎中的两个或更多个的功能性可以被组合成单个软件引擎,或者这些引擎中的一个或多个被包括在与视频编辑器102分开并且与视频编辑器102通信的软件中。
视频编辑器102被用来使用置信度加权的运动信息来移除或修改视频内容中的一个或多个对象或其他特征。(下面关于图2讨论对象修改的示例,下面关于图3-图5讨论使用运动信息的示例,并且下面关于图6讨论使用置信度加权运动的示例。)视频内容可以包括例如视频帧112a至112n的序列。视频帧的序列可以共同包括场景110。移除或修改对象或其他特征的示例包括移除人或大的对象(用于颜色分级或制作三维影片),移除由于相机镜头上的灰尘导致的视频中的暗区域,移除不需要的对象(垃圾、意外设置元素),移除徽标(用于股票视频或商业化),移除干扰物(标签、反射光等),通过仅修改一个帧或一小组帧来改变视频中的某些内容的外观,等等。
在说明性示例中,视频编辑器102填充一组视频帧中的目标区域,诸如孔区域。孔区域可以是图像中连续的透明或半透明的像素的集合。在该示例中,视频编辑器102从输入设备120接收指定视频帧112a-112n中的一个或多个中的感兴趣区域的一个或多个用户输入。一个或多个注释114是被包括在视频内容中或与视频内容相关联以标识该组视频帧112a-112n中的感兴趣区域的数据。在一个示例中,用户输入包括在一个或多个帧上绘制粗糙掩模或旋转扫描,其中由掩模指示的一个或多个对象在帧序列上(即,随着时间)被跟踪。视频编辑器102响应于经由输入设备120接收的一个或多个命令输入而应用基于运动的视频修补过程以生成或以其他方式标识目标像素数据(例如,颜色信息)。目标像素数据被用来修改用户指定的感兴趣区域。特别地,视频编辑器102修改感兴趣区域中的像素的颜色信息以包括目标像素数据。以这种方式,视频编辑器102生成具有一个或多个已修改帧118a-118n的已修改场景116用于在呈现设备122上显示。
图2描绘了使用视频编辑环境100从场景中移除对象的示例。在该示例中,视频编辑器102基于来自输入设备120的一个或多个输入标识要从场景中移除的对象。例如,视频编辑器102或其他合适的软件可以接收绘图输入,该绘图输入从视频中选择在帧202中描绘的骆驼的一个或多个部分。视频编辑器102或其他合适的软件注释帧202以指定应当移除经由用户输入标识的骆驼,如注释帧204中的骆驼形孔区域所指示的。注释可以是从帧中的其他对象分割目标对象的掩模或其他数据。在一些方面,视频编辑器可以将场景110的一个帧中的对象的标识传播到场景110的其他帧(例如,描绘待移除的骆驼的其他帧)。
在一些方面,颜色更新引擎108关于在注释帧204中指示的孔区域执行像素替换操作或其他颜色修改操作。例如,颜色更新引擎108可以标识场景中在帧202之前的一个或多个帧中描绘的一个或多个替换对象、场景中在帧202之后的一个或多个帧中描绘的一个或多个替换对象、或两者。在该示例中,颜色更新引擎108标识在场景中描绘的栅栏对象中所包括的像素,其中在帧202之前或之后的帧描绘了栅栏而没有移除的骆驼站在栅栏前面。利用内插引擎106计算的内插运动允许颜色更新引擎108修改孔区域中的像素颜色信息,同时保持帧之间的替换对象的一致外观。
颜色更新引擎108修改孔区域内的像素以具有来自栅栏对象中所包括的所标识的像素的颜色信息。通过这样做,颜色更新引擎108生成已修改帧206,其中移除的骆驼不再出现并且孔区域204已经被修改以描绘帧202中被骆驼遮挡的其他场景对象(例如,栅栏的一部分、地面的一部分等)。这种方法被称为“密集跟踪”。在一些方面,如果在场景的其他帧中没有描绘在移除的对象后面的一个或多个对象,则视频编辑器102可以使用内容感知填充算法来猜测丢失了的内容。
如上所述,基于运动的视频修补过程涉及使用跨该组视频帧112a-112n从一个像素到另一像素的颜色信息的明显运动来控制如何修改感兴趣区域。例如,视频编辑器102使用感兴趣区域的边界上的像素的运动的置信度加权确定来控制标识或生成哪些目标像素数据以用于更新感兴趣区域。
视频的目标区域的基于运动的修补的示例
图3-图5描绘了被用来执行目标区域的基于运动的修改的视频编辑器102的简化示例。在该示例中,视频编辑器102执行快速且稳健的运动估计。视频编辑器102可以使用目标区域(例如,用户指定的孔)的边界处的运动来估计目标区域内的运动。为此,视频编辑器102可以计算整个帧的光流运动。视频编辑器102可以关注沿每个帧中的孔的边界的像素的运动。这种基于运动的修改可以在图2的示例中用以通过跟踪在场景中在骆驼后面描绘的建筑物或其他结构的移动来移除目标骆驼,这有助于利用来自合适像素(即,描绘建筑物或其他结构的像素)的颜色信息来更新孔区域。
在图3-图5的简化示例中,视频编辑器102访问一对视频帧112a和112b,如图3所示。包括视频帧112a和112b的视频内容被注释以标识目标区域。例如,视频帧112a中的目标区域306a可以指示待移除的特定对象(例如,图2的骆驼),并且视频帧112a中的目标区域306b可以指示待移除场景中其他位置的相同对象。目标区域由一组边界像素限定。
在图3中,边界包括视频帧112a中目标区域306a的相对侧的边界像素302a和304a。在一个示例中,边界像素302a可以是图2的帧中描绘的树的一部分,目标区域306a可以是图2的帧中描绘的目标骆驼,并且边界像素304a可以是图2的帧中描绘的栅栏的一部分。类似地,在视频帧112b中,边界包括在目标区域306b(例如,图2中在不同位置处的目标骆驼)的相对侧上的边界像素302b和304b(例如,来自图2中在不同位置处的树和栅栏的像素)。
图4描绘了基于边界像素内插目标区域内的运动的简化示例。在该示例中,视频编辑器102基于对视频帧对112a和112b的分析来计算针对视频帧112a的运动场402。边界像素302a的运动被表示为矢量404,矢量404在图4中使用由矢量404指定的移动方向上的箭头以图形方式图示。类似地,边界像素304a的运动被表示为矢量406,矢量406在图4中使用由矢量406指定的移动方向上的箭头以图形方式图示。因为目标区域306a对应于要从帧中移除的对象,所以运动场402被描绘为包括用于目标区域306a内的目标像素的“未知”运动。在该示例中,“未知”运动是未知的期望运动,即,如果已经捕获视频帧112a和112b而没有待移除目标对象,则将在目标区域中计算的运动。
内插引擎106基于边界运动计算关于目标区域306a的估计运动。例如,每个边界像素与由诸如矢量404和406等矢量表示的相应边界运动相关联。内插引擎106使用矢量集合(包括矢量404和406)来计算针对目标区域306a内的目标像素的估计运动。视频编辑器102还可以计算或获取针对目标区域的边界周围的运动值的置信度值。在一些方面,视频编辑器102可以计算或获取针对目标区域内的运动值的置信度值。视频编辑器102可以使用针对目标区域周围和/或内部的运动的置信度值以内插目标区域内的运动。本文中关于图6描述使用置信度值来内插运动的示例。内插引擎106生成已修改运动场410,已修改运动场410包括用于估计的运动的运动矢量412以及矢量404′和406′,其中矢量404′和406′与运动场402中的用于边界像素302a和304a的矢量404和406相同。
利用所得到的估计的运动,视频编辑器102可以随着时间跟踪目标区域之外的位置与目标区域内的位置之间的像素(或者更具体地是像素所包括的对象)的路径。这样做允许视频编辑器102使用其中像素不在目标区域中的视频帧来标识或确定这些像素的外观。图5描绘了基于由内插引擎106计算的估计的运动来修改目标区域内的目标像素的颜色信息的简化示例。在该示例中,颜色更新引擎108已经使用运动矢量412向已修改目标区域502添加目标像素504。为此,颜色更新引擎从目标区域之外的位置到目标区域内的位置“跟踪”像素。
使用图2的示例,“跟踪”像素可以是在视频帧112a和112b中被目标骆驼对象遮挡但是在一个或多个参考帧中可见的树对象的一部分。参考帧可以排序在一个或多个视频帧112a和112b之前,排序在一个或多个视频帧112a和112b之后,或者两者。在简化示例中,位于参考帧中的位置(3,1)处的像素可以具有棕色,即,是棕色栅栏对象的一部分。如果栅栏对象未被帧112a和112b中的目标“骆驼”对象遮挡,则运动矢量412指示通过目标区域的与“栅栏”像素相关联的运动。例如,针对该“栅栏”像素的运动矢量412可以指示向下两个像素并且向右三个像素的运动。因此,颜色更新引擎108可以确定,在没有“骆驼”对象的遮挡的情况下,“栅栏”像素将在位置(1、4)处位于视频帧112a的目标区域中(即,从(3,1)位置向下两个像素并且向右三个像素)。因此,颜色更新引擎108将颜色信息从位于参考帧中的位置(3,1)处的像素(即,“栅栏”像素)复制到位于已修改视频帧118a中的位置(1,4)处的目标像素504。
如果像素在孔之外没有任何观察,则视频编辑器102可以对单个帧使用内容感知填充,并且然后随着时间传播这些颜色值。有时需要多个帧。在一些实施例中,将首先选择具有最大“看不见区域”的帧。看不见区域填充有内容感知填充并且随着时间传播。如果仍然存在任何看不见区域,则可以再次选择最大区域。重复该过程,直到填充所有孔像素。
在图3-图5中描绘的示例中,视频编辑器102可以使用一个或多个置信度度量来控制运动的内插,如本文中关于图6描述的。在一些方面,视频编辑器102确定目标区域的边界处的运动是否是自洽的。该确定包括将时间上的前向边界运动(例如,从视频帧112a到112b)与时间上的后向边界运动(例如,从视频帧112b到112a)进行比较。如果前向运动和后向运动在相反方向上具有相同的幅度(例如,向上四个像素的前向运动和向下四个像素的反向运动),则运动是一致的。前向运动和后向运动中的较小差异可以指示更高程度的一致性,反之亦然。在简化示例中,如果运动不够一致,则视频编辑器102可以忽略针对边界的特定部分的运动数据。附加地或备选地,视频编辑器102可以通过检查目标区域周围的内容是否包含足够的纹理来改进运动的内插。低纹理区域(如天空)导致误导运动,并且视频编辑器102可以通过忽略它们来改进内插。附加地或备选地,视频编辑器102可以使用来自运动的结构(“SfM”)来在3D点通过孔时跟踪具有已知运动的3D点。忽略孔内的3D对象的运动,并且使用背景对象。
经由置信度加权运动估计进行视频修补的过程的示例
图6描绘了用于执行基于运动的视频修补的过程600的示例。关于图1-图6描述的一个或多个操作可以被用来实现用于基于针对目标区域的置信度加权运动估计来更新目标区域中的视频内容的步骤。在一些方面,一个或多个计算设备通过执行合适的程序代码(例如,视频编辑器102、图1中描绘的一个或多个引擎等)来实现图6中描绘的操作。出于说明性目的,参考附图中描绘的某些示例来描述过程600。然而,其他实现也是可能的。
在框602处,过程600涉及访问包括视频帧的场景。例如,视频编辑器102可以从数据存储单元访问视频内容。数据存储单元可以位于通过数据网络可用的一个或多个存储器设备、连接到执行视频编辑器102的计算设备上的数据总线的一个或多个存储器设备、或者它们的某种组合上。
在一个示例中,视频编辑器102访问具有一个或多个带注释的目标区域Ω的视频内容。带注释的目标区域的示例包括由经由输入设备120接收的一个或多个擦除输入生成的孔、由经由输入设备120接收的一个或多个选择输入标识为由经由输入设备120接收的一个或多个选择输入标识的待修改的特定目标对象(例如,修改目标对象的外观而不是移除它)的待替换的特定目标对象(例如,图2中描绘的骆驼)、由被用来捕获场景的相机的镜头上的灰尘生成的场景中的暗区域、或者待移除的阴影。视频编辑器102被用来用颜色值修改孔中的一些或所有像素。例如,如果要移除对象或要填充孔,则使用视频编辑器修改目标区域中的目标像素,以得到在没有对象的情况下捕获场景所产生的颜色信息。
在框604处,过程600涉及计算针对由与场景相关联的注释指示的目标区域的边界的边界运动。视频编辑器102可以计算关于共同描绘场景的一组视频帧的光流。例如,视频帧可以被包括在高度为H、宽度为W和帧数为L的输入视频I中。置信度引擎104或视频编辑器102的另一合适的引擎计算前向流U和后向流V。为了计算帧n和n+1之间的运动,置信度引擎104或视频编辑器102的另一合适的引擎计算从时间n到时间n+1的流(运动)。位置(x,y,n)处的前向流(即,帧上在时间n在位置(x,y)处的像素)由U(x,y,n)=(dx,dy,+1)给出,指示流向量(dx,dy)从位于(x,y,n)处的点到视频I中的点(x+dx,y+dy,n+1)位置(x,y,n)处的后向流(即,帧n上在位置(x,y)处的像素)由V(x,y,f)=(dx,dy,-1)给出。
在该示例中,边界运动是关于定义目标区域的边界的一个或多个像素的运动。例如,边界可以是与视频帧n和视频帧n+1中的孔的并集相邻的一组像素。该组边界像素可以包括与不共享通用性的至少一个其他像素相邻的彼此具有某种通用性的像素(例如,共享至少一些颜色信息并且关于目标区域中的相邻像素没有共同颜色信息的两个像素)。
在框606处,过程600涉及向边界像素分配置信度值。例如,如下面关于框608讨论的,视频编辑器102执行一个或多个操作,这些操作估计或以其他方式确定如果目标区域具有期望外观(例如,如果是孔被填充,如果目标对象被移除,如果目标对象的外观被修改,等等),则在目标区域中将发生什么像素运动。该步骤涉及计算孔的边界处的运动的置信度。在框606处计算的置信度值控制各种边界像素运动对内插的目标运动所起的作用。在一个示例中,置信度引擎104向第一边界像素分配第一置信度值,并且向第二边界像素分配较高的第二置信度值。由于第二置信度值大于第一置信度值,因此与具有第一置信度值的第一边界像素的运动相比,具有第二置信度值的第二边界像素的运动将对目标区域内的运动估计产生更大的影响。
置信度值可以被用来控制如何使用与目标区域之外的给定对象相关联的某些像素(例如,边界像素)的观察到的运动来估计目标区域内的未观察到的运动。例如,移动场景可以描绘待移除的目标对象遮挡用户不希望移除的另一对象。可以认为被遮挡对象通过目标区域的移动是未观察到的,因为在描绘在第二对象前面移动的目标对象的帧中,未描绘被遮挡对象的移动。由于未观察到被遮挡对象的运动,因此内插引擎106执行通过将边界Bi=(xi,yi)处的运动内插到目标区域中来估计被遮挡对象的运动的操作。
对该内插的朴素方法可以对边界像素应用相等的权重,使得目标区域内的每个流值由整组相等边界像素确定。即,孔内的一些像素的运动.j∈Ω=(xj,yj)可以确定为U(xj,yj,n)=f(U(B1),...,U(Bk)),
其中k是边界像素数。但是这种朴素方法可能向像素在边缘处的运动不可靠的像素赋予不期望的权重。由于例如场景中投射的阴影的运动,具有很少或没有纹理的区域的运动等,可能发生不可靠的运动。置信度引擎104可以计算针对每个边界像素B1...Bk的confidence(Bi),该置信度说明了这种不可靠性。
在一些方面,置信度引擎104根据一致性分量和纹理分量的组合来计算针对第i边界像素(Bi)的组合置信度值confidence(Bi)。用于组合置信度值的公式的一个示例是confidence(Bi)=consistency(i)*texture(i)。在其他方面,置信度引擎104从没有纹理分量的一致性分量计算针对第i边界像素(Bi)的置信度值confidence(Bi)。用于这种置信度值的公式的示例是confidence(Bi)=consistency(i)以及confidence(Bi)=g(consistency(i)),其中g是使用一致性分量作为输入的某种函数。在其他方面,置信度引擎104从没有一致性分量的纹理分量计算针对第i边界像素(Bi)的置信度值confidence(Bi)。用于这种置信度值的公式的示例是confidence(Bi)=texture(i)以及confidence(Bi)=g(texture(i)),其中g是使用纹理分量作为输入的某种函数。
在一些方面,至少部分地基于一致性分量来计算置信度值。对于来自一组视频帧112a-112n的一对给定视频帧,置信度引擎104计算特定边界像素关于第一视频帧和第二视频帧的前向光流和后向光流。前向光流与后向光流之间的差异的增加对应于特定置信度值的减小。置信度引擎104将S形函数应用于前向光流与后向光流之间的差异。
在一个示例中,置信度引擎104根据时间n的前向流U与时间n+1的后向流V之间的一致(或其缺乏)来计算一致性分量。例如,置信度引擎104通过计算距第一视频帧中的像素的观察位置到通过以下方式计算的像素的估计位置之间的距离来计算前向光流与后向光流之间的差异:(i)将来自第一视频帧的前向光流应用于第二视频帧以及(ii)将来自第二视频帧的后向光流应用于第一视频帧。为此,置信度引擎104可以计算前向流U(xi,yi,n)=(dx,dy,1)。置信度引擎104将该前向流索引到后向流
Figure BDA0002145559520000151
置信度引擎108可以使用该后向流来计算帧中在时间n的位置:
Figure BDA0002145559520000152
如果流完全一致,则
Figure BDA0002145559520000153
并且
Figure BDA0002145559520000154
即前向流和后向流相反。如果
Figure BDA0002145559520000155
和/或
Figure BDA0002145559520000156
则流不太可靠。为了计算置信度值的一致性分量,置信度引擎104可以应用S形函数:
Figure BDA0002145559520000157
Figure BDA0002145559520000158
在该示例中,项∈i是起始像素与在遵循前向流和后向流之后的往返位置之间的距离(以像素为单位),并且σc控制能量函数的形状。在一个示例中,σc=0.5。
在一些方面,针对边界像素的特定置信度值包括S形函数的输出(例如,如果仅使用一致性来计算置信度)。在附加或备选方面,针对边界像素的特定置信度值是从S形函数的输出得出的(例如,如果一致性分量与某个其他分量组合以计算置信度)。例如,从S形函数的输出得出特定置信度值可以包括将S形函数的输出乘以从包括特定边界像素和某些周围像素的窗口区域中的纹理计算出的基于纹理的置信度。
在附加或备选方面中,至少部分地基于纹理分量来计算置信度值。在一个示例中,置信度引擎104基于每个边界像素周围的指定窗口区域中的灰度强度值的方差来确定纹理分量。纹理的增加对应于特定置信度值的增加。例如,如果像素块具有相同的颜色,则没有纹理并且外观上没有变化。缺乏纹理或低纹理量(即,灰度强度值的很小或没有方差)表明该流是不可靠的。
在一个示例中,该区域中的强度值的方差包括强度差的总和,其中每个强度差是该区域中的相应像素的灰度强度与该区域的平均灰度强度之间的差异。例如,对于半径为w的给定窗口区域,置信度引擎104可以计算给定像素边界像素i周围的强度值的方差:
Figure BDA0002145559520000161
Figure BDA0002145559520000162
在该示例中,μ是窗口中的平均灰度强度,G(x,y,n)是在时间n在位置(x,y)处的灰度强度,并且σt控制能量函数的形状。在一个示例中,σt=0.125(灰度值在0.0到1.0之间)并且w=4,产生9×9像素窗口。
以上提供的示例涉及用于计算置信度值的前向纹理分量,其中使用至少部分地通过分析帧n中的纹理而生成的置信度值来计算针对给定帧n的运动场。在附加或备选方面,后向纹理分量被用于计算置信度值。在这些方面,置信度引擎104可以通过使用帧n+1中的灰度强度值来计算后向纹理分量。因此,使用至少部分地由与帧n+1中的纹理相对应的后向纹理分量生成的置信度值来计算针对给定帧n的运动场。
在一些方面,在框604之后执行来自框606的一个或多个操作,如图6所示。在附加或备选方面,可以通过与框604并行地或在框604之前执行来自框606的一个或多个操作来修改过程600。例如,涉及纹理分析的操作可以与计算边界运动并行地或在其之前执行。
在框608处,过程600涉及使用置信度值从边界运动内插目标区域内的目标像素的目标运动。例如,内插引擎106根据以下各项来生成针对特定视频帧的已修改运动场(即,估计特定帧的目标区域中的像素的运动):(i)目标区域的边界处的边界像素的运动,(ii)在框606处分配的置信度值。例如,内插引擎106使用以下公式计算像素的运动:U(xj,yj,n)=f(U(B),confidence(B))。在这个公式中,U(B)用作U(B1),U(B2),...,U(Bk)的简写,而confidence(B)用作confidence(B1),confidence(B2),...confidence(Bk)的简写。
在一些方面,视频编辑器102还使用跟踪的3D点计算内插的目标运动。例如,视频编辑器102可以使用来自运动的结构(“SfM”)来在3D点穿过孔时跟踪具有已知运动的3D点。忽略孔内的3D对象的运动,并且使用背景对象。在一些方面,对于已经使用SfM通过孔跟踪的点,视频编辑器102向对应的像素分配完全置信度(例如,k=1)。在附加或备选方面,与所跟踪的3D点相对应的像素可以被分配高于针对边界像素的置信度值的置信度值,因为信息在目标区域之内可能更可靠。例如,这可以通过在视频卷中可见该点的相机(帧)的数目来确定。
可以使用任何合适的运动内插过程。在一些方面,内插引擎106沿着序列中的下一视频帧(例如,帧n+1)的对应的像素与序列中的当前视频帧(例如,帧n)之间的边界内插位置差异(即,运动)。位置差异可以从目标区域的其他部分(例如,孔)的边界内插,诸如从目标区域的边界到内部部分。换言之,为沿边界的像素确定的位置差异(即,运动)被用来传播通过目标区域(例如,向内)的位置变化(即,运动)。
例如,内插引擎106将目标区域递归地下采样或折叠特定采样因子(例如,2)以产生多个下采样部分。最初,与目标区域的像素相关联的一组运动数据可以被指定为与级别0相关联的运动数据。如上所述,针对像素的该组运动数据可以包括位置差异(即,运动)分量和方向指示符。例如,针对像素位置的一组示例初始运动数据可以是{dx,dy,1}或{dx,dy,-1},其中dx表示x坐标值的差异,dy表示y坐标值的差异,1表示前向流,并且0表示没有运动。针对具有位置差异(即,运动)分量和方向指示符的原始或0级目标区域的函数可以描述如下:
pyramid_level[0]=
if(on_border)c×(xn+1-xn,yn+1-yn,1)
else(0,0,0)
在该示例中,基于下一视频帧颜色中的边界像素位置减去当前视频帧中的边界像素位置来计算位置差异(例如,xn+1-xn,yn+1-yn)。
由位置差异(即,运动)分量和方向指示符表示的原始目标区域可以下采样诸如2等特定因子以产生作为原始目标区域的分辨率的一部分(例如,一半)的第一下采样图像。可以理解,在下采样中,为第一下采样图像的像素生成方向指示符。仅通过示例,假定一组四个像素被减少到一个像素。进一步假定四个像素中的三个不对应于边界并且因此包括零值方向指示符,并且四个像素中的一个确实对应于边界并且因此包括单值方向指示符。在这种情况下,方向指示符被聚合或平均以得出针对下采样图像中的像素的方向指示符0.25。计算出的方向指示符0.25指示具有用以计算该值的位置差异(即,运动)信息的像素的数目(例如,用以计算结果的25%的像素包括某种位置差异(即,运动)信息)。
根据为第一下采样图像的各种像素位置生成每个新方向指示符,可以标识最大方向指示符值。以这种方式,标识与特定下采样级别(例如,第一下采样图像)上可用的最大量的位置差异(即,运动)信息相关联的值。对于第一下采样图像的每个像素,然后可以将位置差异(即,运动)值(例如,x和y坐标值)和方向指示符除以最大方向指示符值。这种过程根据位置差异(即,运动)信息的最大指示重新规一化数据。
在框610处,过程600涉及更新目标像素的颜色数据以对应于从边界运动内插的目标运动。例如,视频编辑器102使用已经利用各种像素的内插的目标运动修改的运动场来跟踪从目标区域内的位置到目标区域之外的一个或多个位置的像素的路径。对于给定视频帧中的目标区域内的每个像素,视频编辑器102将像素数据(例如,颜色信息)从已经被跟踪的对应的像素复制到另一视频帧,如上面参考图5所述。
更新颜色数据可以包括在使用过程600编辑之后视频内容在回放之后显示对目标区域的一个或多个修改的任何过程。在一些方面,更新颜色数据涉及修改包括一个或多个视频帧中的目标对象的图像层。在附加或备选方面,更新颜色数据涉及在一个或多个视频帧中将具有已修改目标区域的一个或多个图像层和包括未修改目标对象的一个或多个图像层重叠。在一个示例中,视频编辑器102可以创建具有目标区域形状的掩模的一组视频帧,其中目标区域之外的像素被设置为透明,并且目标区域内的像素被设置为不透明。在框610处,视频编辑器102可以更新该图像层的不透明像素。视频编辑器可以创建多层帧集合,其中具有描绘已修改目标区域的不透明像素和在其他地方的透明像素的层被覆盖在包括具有未修改目标区域的视频内容的源层上。具有不同掩模配置的任何数目的层可以被用来生成具有已修改目标区域的输出视频。
用于实现某些方面的计算系统的示例
可以使用任何合适的计算系统或计算系统组以用于执行本文中描述的操作。例如,图7描绘了计算系统700的示例。在一些方面,计算系统700包括执行程序代码705的处理硬件702(例如,视频编辑器102、置信度引擎104、内插引擎106、颜色更新引擎108)、存储由程序代码705中的操作计算或使用的一组或多组程序数据707(例如,一组输入视频帧、标识目标区域的注释、运动字段、一组编辑的视频帧等)的存储器设备704、一个或多个输入设备120、以及用于显示通过执行程序代码705生成的图形内容的一个或多个呈现设备122。出于说明性目的,图7描绘了单个计算系统,其上执行程序代码705,存储程序数据707,并且存在输入设备120和呈现设备714。但是,所描述的各种应用、数据集和设备可以被存储或包括在具有类似于图7中描绘的设备的设备的不同计算系统中。
所描绘的计算系统700的示例包括通信地耦合到一个或多个存储器设备704的处理硬件702。处理硬件702执行被存储在存储器设备704中的计算机可执行程序代码,访问被存储在存储器设备704中的信息,或者两者。处理硬件702的示例包括微处理器、专用集成电路(“ASIC”)、现场可编程门阵列(“FPGA”)或任何其他合适的处理设备。处理硬件702可以包括任何数目的处理设备,包括单个处理设备。
存储器设备704包括用于存储数据、程序代码或两者的任何合适的非瞬态计算机可读介质。计算机可读介质可以包括能够向处理器提供计算机可读指令或其他程序代码705的任何电子、光学、磁性或其他存储设备。计算机可读介质的非限制性示例包括磁盘、存储器芯片、ROM、RAM、ASIC、光学存储装置、磁带或其他磁存储装置、或处理设备可以从其读取指令的任何其他介质。程序代码705可以包括由编译器或解译器从以任何合适的计算机编程语言编写的代码生成的处理器特定指令,计算机编程语言包括例如C、C++、C#、VisualBasic、Java、Python、Perl、JavaScript和ActionScript。
计算系统700还可以包括多个外部或内部设备,诸如输入设备120、呈现设备714或其他输入或输出设备。例如,计算系统700被示出为具有一个或多个输入/输出(“I/O”)接口708。I/O接口708可以从输入设备接收输入或向输出设备提供输出。一个或多个总线706也被包括在计算系统700中。总线706通信地耦合相应计算系统700的一个或多个组件。
计算系统700执行程序代码705,程序代码705将处理硬件702配置为执行本文中描述的一个或多个操作。程序代码705包括例如视频编辑器102、置信度引擎104、内插引擎106、颜色更新引擎108或执行本文中描述的一个或多个操作的其他合适的程序代码。程序代码705可以驻留在存储器设备704或任何合适的计算机可读介质中,并且可以由处理硬件702或任何其他合适的处理器执行。程序代码705使用或生成程序数据707。程序数据707的示例包括本文中关于图1-图7描述的存储器帧、基本事实帧、特征分类数据、特征选择数据、键或值映射等中的一个或多个。
在一些方面,计算系统700还包括网络接口设备710。网络接口设备710包括适合于建立到一个或多个数据网络的有线或无线数据连接的任何设备或设备组。网络接口设备710的非限制性示例包括以太网网络适配器、调制解调器等。计算系统700能够使用网络接口设备710经由数据网络与一个或多个其他计算设备通信。
输入设备120可以包括适合于接收控制或影响处理硬件702的操作的视觉、听觉或其他合适输入的任何设备或设备组。输入设备120的非限制性示例包括记录设备、触摸屏、鼠标、键盘、麦克风、视频相机、单独的移动计算设备等。呈现设备714可以包括适合于提供视觉、听觉或其他合适的感觉输出的任何设备或设备组。呈现设备714的非限制性示例包括触摸屏、监视器、单独的移动计算设备等。
尽管图7将输入设备120和呈现设备714描绘为执行程序代码705的计算设备的本地,但是其他实现是可能的。例如,在一些方面,输入设备120和呈现设备714中的一个或多个可以包括使用本文中描述的一个或多个数据网络经由网络接口设备710与计算系统700通信的远程客户端计算设备。
一般考虑因素
虽然已经关于本发明的特定方面详细描述了本主题内容,但是应当理解,本领域技术人员在理解前述内容之后可以容易地产生对这些方面的交替、变化和等同物。本文中阐述了很多具体细节以提供对所要求保护的主题内容的透彻理解。然而,本领域技术人员将理解,可以在没有这些具体细节的情况下实践所要求保护的主题内容。在其他实例中,没有详细描述本领域普通技术人员已知的方法、装置或系统,以免模糊所要求保护的主题内容。相应地,本公开内容是出于示例而非限制的目的而被呈现的,并且不排除包括对本主题内容的这样的修改、变化和/或添加,这对于本领域普通技术人员来说是很清楚的。
除非另有明确说明,否则应当理解,在整个说明书中,利用诸如“处理(processing)”、“计算(computing)”、“计算(calculating)”、“确定(determining)”和“标识(identifying)”等术语的讨论指的是诸如一个或多个计算机或类似的电子计算设备等计算设备的动作或过程,该计算设备操纵或转换在存储器、寄存器或其他信息存储设备、传输设备或计算平台的显示设备内被表示为物理电子或磁量的数据。本文中“适应于”或“配置为”的使用表示开放且包容性的语言,其不排除适于或配置为执行附加任务或步骤的设备。附加地,“基于”的使用表示开放和包容性,因为“基于”一个或多个叙述的条件或值的过程、步骤、计算或其他动作在实践中可以基于除了那些叙述的之外的附加的条件或值。本文中包括的标题、列表和编号仅是为了便于解释而不是限制性的。
可以在这样的计算设备的操作中执行本文中公开的方法的各方面。本文中讨论的一个或多个系统不限于任何特定的硬件架构或配置。计算设备可以包括提供以一个或多个输入为条件的结果的任何合适的组件布置。合适的计算设备包括访问存储的软件的多用途的基于微处理器的计算机系统,该存储的软件将计算系统从通用计算装置编程或配置为实现本主题内容的一个或多个方面的专用计算装置。可以使用任何合适的编程、脚本或其他类型的语言或语言组合来在用于编程或配置计算设备的软件中实现本文中包含的教导。上述示例中呈现的框的顺序可以变化——例如,可以将框重新排序、组合和/或分成子框。某些框或过程可以并行执行。

Claims (20)

1.一种一个或多个处理设备执行操作的方法,包括:
访问包括第一视频帧和第二视频帧的场景,被访问的所述场景具有标识包括所述场景的一个或多个视频帧中的待修改的目标区域的注释;
计算针对所述场景内的所述目标区域的边界的边界运动,其中所述边界包括所述第一视频帧和所述第二视频帧中与所述目标区域相邻的边界像素;
分别向所述边界像素分配置信度值,其中特定置信度值至少部分地基于以下中的一个或多个:(i)关于特定边界像素的前向运动与反向运动之间的差异,以及(ii)包括所述特定边界像素的区域中的纹理;
从所述边界运动内插所述目标区域内的目标像素的目标运动,其中所述特定边界像素的所述特定置信度值控制所述特定边界像素的特定运动对从所述边界运动内插的所述目标运动的贡献;以及
更新所述目标像素的颜色数据以对应于从所述边界运动内插的所述目标运动。
2.根据权利要求1所述的方法,所述操作还包括通过执行包括以下各项的附加操作来分配所述特定置信度值:
计算所述特定边界像素关于所述第一视频帧和所述第二视频帧的前向光流和后向光流;以及
将S形函数应用于所述前向光流与所述后向光流之间的差异,其中所述特定置信度值包括所述S形函数的输出或者从所述S形函数的所述输出得出,
其中所述前向光流与所述后向光流之间的所述差异的增加对应于所述特定置信度值的减小。
3.根据权利要求2所述的方法,所述操作还包括通过执行包括以下各项的附加操作来计算所述前向光流与所述后向光流之间的所述差异:
标识所述第一视频帧中的所述特定边界像素的观察位置;
通过以下方式来计算所述特定边界像素的估计位置:(i)将来自所述第一视频帧的所述前向光流应用于所述第二视频帧,以及(ii)将来自所述第二视频帧的所述后向光流应用于所述第一视频帧;以及
计算从所述观察位置到所述估计位置的距离。
4.根据权利要求2所述的方法,其中所述操作还包括从所述S形函数的所述输出中得出所述特定置信度值,
其中从所述S形函数的所述输出中得出所述特定置信度值包括将所述S形函数的所述输出乘以从窗口区域中的所述纹理计算出的纹理分量,所述窗口区域包括所述特定边界像素和所述特定边界像素周围的窗口中的一组像素,
其中所述纹理的增加对应于所述特定置信度值的增加。
5.根据权利要求4所述的方法,所述操作还包括通过在所述第一视频帧或所述第二视频帧中计算所述窗口区域中的强度值的方差来计算所述纹理分量。
6.根据权利要求5所述的方法,其中所述窗口区域中的强度值的所述方差包括强度差的总和,其中每个强度差是所述窗口区域中的相应像素的灰度强度与所述窗口区域的平均灰度强度之间的差异。
7.根据权利要求1所述的方法,所述操作还包括通过执行附加操作来分配所述特定置信度值,所述附加操作包括在所述第一视频帧或所述第二视频帧中计算窗口区域中的强度值的方差,所述窗口区域包括所述特定边界像素和所述特定边界像素周围的窗口中的一组像素,
其中强度值的所述方差的减小对应于所述特定置信度值的减小。
8.根据权利要求7所述的方法,其中所述窗口区域中的强度值的所述方差包括强度差的总和,其中每个强度差是所述窗口区域中的相应像素的灰度强度与所述窗口区域的平均灰度强度之间的差异。
9.根据权利要求1所述的方法,其中所述目标区域包括待移除或待修改的对象。
10.一种非瞬态计算机可读介质,其上存储有程序代码,所述程序代码在由一个或多个处理设备执行时使得所述一个或多个处理设备执行包括以下各项的操作:
访问具有目标区域的视频;
用于基于针对所述目标区域的置信度加权运动估计来更新所述目标区域中的视频内容的步骤;以及
在显示设备上呈现已更新的所述视频内容。
11.根据权利要求10所述的非瞬态计算机可读介质,其中用于基于针对所述目标区域的所述置信度加权运动估计来更新所述目标区域中的视频内容的所述步骤包括:
计算特定边界像素关于所述视频中的第一视频帧和所述视频中的第二视频帧的前向光流和后向光流;以及
将S形函数应用于所述前向光流与所述后向光流之间的差异,其中所述特定边界像素的特定置信度值包括所述S形函数的输出或者从所述S形函数的所述输出得出,
其中所述前向光流与所述后向光流之间的所述差异的增加对应于所述特定置信度值的减小。
12.根据权利要求10所述的非瞬态计算机可读介质,其中用于基于针对所述目标区域的所述置信度加权运动估计来更新所述目标区域中的视频内容的所述步骤包括:
在描绘所述目标区域的所述视频内容的一个或多个视频帧中,计算窗口区域中的强度值的方差,所述窗口区域包括(i)来自所述目标区域周围的边界的特定边界像素,以及(ii)所述特定边界像素周围的窗口中的一组像素,其中强度值的所述方差的减小对应于所述特定边界像素的特定置信度值的减小。
13.一种系统,包括:
处理设备;以及
非瞬态计算机可读介质,被通信地耦合到所述处理设备,
其中所述处理设备被配置为执行被存储在所述非瞬态计算机可读介质上的程序代码并且从而执行包括以下各项的操作:
访问包括第一视频帧和第二视频帧的场景,被访问的所述场景具有标识包括所述场景的一个或多个视频帧中的待修改的目标区域的注释,
计算针对所述场景内的所述目标区域的边界的边界运动,其中所述边界包括所述第一视频帧和所述第二视频帧中与所述目标区域相邻的边界像素,
分别向所述边界像素分配置信度值,其中特定置信度值至少部分地基于以下中的一个或多个:(i)关于特定边界像素的前向运动与反向运动之间的差异,以及(ii)包括所述特定边界像素的区域中的纹理,
从所述边界运动内插所述目标区域内的目标像素的目标运动,其中所述特定边界像素的所述特定置信度值控制所述特定边界像素的特定运动对从所述边界运动内插的所述目标运动的贡献,以及
更新所述目标像素的颜色数据以对应于从所述边界运动内插的所述目标运动。
14.根据权利要求13所述的系统,所述操作还包括通过执行包括以下各项的附加操作来分配所述特定置信度值:
计算所述特定边界像素关于所述第一视频帧和所述第二视频帧的前向光流和后向光流;以及
将S形函数应用于所述前向光流与所述后向光流之间的差异,其中所述特定置信度值包括所述S形函数的输出或者从所述S形函数的所述输出得出,
其中所述前向光流与所述后向光流之间的所述差异的增加对应于所述特定置信度值的减小。
15.根据权利要求14所述的系统,所述操作还包括通过执行包括以下各项的附加操作来计算所述前向光流与所述后向光流之间的所述差异:
标识所述第一视频帧中的所述特定边界像素的观察位置;
通过以下方式来计算所述特定边界像素的估计位置:(i)将来自所述第一视频帧的所述前向光流应用于所述第二视频帧,以及(ii)将来自所述第二视频帧的所述后向光流应用于所述第一视频帧;以及
计算从所述观察位置到所述估计位置的距离。
16.根据权利要求14所述的系统,其中所述操作还包括从所述S形函数的所述输出中得出所述特定置信度值,
其中从所述S形函数的所述输出中得出所述特定置信度值包括将所述S形函数的所述输出乘以从窗口区域中的所述纹理计算出的纹理分量,所述窗口区域包括所述特定边界像素和所述特定边界像素周围的窗口中的一组像素,
其中所述纹理的增加对应于所述特定置信度值的增加。
17.根据权利要求16所述的系统,所述操作还包括通过在所述第一视频帧或所述第二视频帧中计算所述窗口区域中的强度值的方差来计算所述纹理分量。
18.根据权利要求17所述的系统,其中所述窗口区域中的强度值的所述方差包括强度差的总和,其中每个强度差是所述窗口区域中的相应像素的灰度强度与所述窗口区域的平均灰度强度之间的差异。
19.根据权利要求13所述的系统,所述操作还包括通过执行附加操作来分配所述特定置信度值,所述附加操作包括在所述第一视频帧或所述第二视频帧中计算窗口区域中的强度值的方差,所述窗口区域包括所述特定边界像素和所述特定边界像素周围的窗口中的一组像素,其中所述强度值的所述方差的减小对应于所述特定置信度值的减小。
20.根据权利要求19所述的系统,其中所述窗口区域中的强度值的所述方差包括强度差的总和,其中每个强度差是所述窗口区域中的相应像素的灰度强度与所述窗口区域的平均灰度强度之间的差异。
CN201910683780.7A 2018-10-12 2019-07-26 执行操作的方法、视频处理系统及非瞬态计算机可读介质 Active CN111050210B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862745260P 2018-10-12 2018-10-12
US62/745,260 2018-10-12
US16/378,906 2019-04-09
US16/378,906 US11081139B2 (en) 2018-10-12 2019-04-09 Video inpainting via confidence-weighted motion estimation

Publications (2)

Publication Number Publication Date
CN111050210A true CN111050210A (zh) 2020-04-21
CN111050210B CN111050210B (zh) 2023-01-17

Family

ID=70160085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910683780.7A Active CN111050210B (zh) 2018-10-12 2019-07-26 执行操作的方法、视频处理系统及非瞬态计算机可读介质

Country Status (4)

Country Link
US (2) US11081139B2 (zh)
CN (1) CN111050210B (zh)
AU (1) AU2019216594B2 (zh)
DE (1) DE102019005516A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116309057A (zh) * 2023-03-14 2023-06-23 中科星图数字地球合肥有限公司 遥感影像拼接方法、装置、计算机设备和存储介质

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111724335A (zh) * 2019-03-21 2020-09-29 深圳中科飞测科技有限公司 检测方法及检测系统
US11710247B2 (en) 2020-01-30 2023-07-25 Unity Technologies Sf System for image compositing including training with synthetic data
US11676252B2 (en) 2020-01-31 2023-06-13 Unity Technologies Sf Image processing for reducing artifacts caused by removal of scene elements from images
US20210274091A1 (en) 2020-02-28 2021-09-02 Weta Digital Limited Reconstruction of obscured views of captured imagery using arbitrary captured inputs
US11694313B2 (en) 2020-02-28 2023-07-04 Unity Technologies Sf Computer-generated image processing including volumetric scene reconstruction
US20210274092A1 (en) 2020-02-28 2021-09-02 Weta Digital Limited Reconstruction of obscured views in captured imagery using pixel replacement from secondary imagery
US11756210B2 (en) 2020-03-12 2023-09-12 Adobe Inc. Video inpainting via machine-learning models with motion constraints
US11468256B2 (en) * 2020-11-24 2022-10-11 Accenture Global Solutions Limited Obfuscation of areas of a physical environment depicted in a video
US11823357B2 (en) 2021-03-09 2023-11-21 Adobe Inc. Corrective lighting for video inpainting
US20220303495A1 (en) * 2021-03-16 2022-09-22 Samsung Electronics Co., Ltd. Pixel blending for synthesizing video frames with occlusion and watermark handling
CN113766275B (zh) * 2021-09-29 2023-05-30 北京达佳互联信息技术有限公司 视频剪辑方法、装置、终端及存储介质
CN114268832B (zh) * 2021-12-20 2024-05-28 杭州逗酷软件科技有限公司 一种修复方法、电子设备及计算机存储介质
US11978143B2 (en) * 2022-05-23 2024-05-07 Lemon Inc. Creation of videos using virtual characters
CN116866665B (zh) * 2023-09-05 2023-11-14 中信建投证券股份有限公司 一种视频播放方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6667774B2 (en) * 2001-11-02 2003-12-23 Imatte, Inc. Method and apparatus for the automatic generation of subject to background transition area boundary lines and subject shadow retention
US20060257042A1 (en) * 2005-05-13 2006-11-16 Microsoft Corporation Video enhancement
EP2608148A2 (en) * 2011-12-23 2013-06-26 Samsung Electronics Co., Ltd. Method and apparatus for generating multi-view
CN104813669A (zh) * 2012-09-21 2015-07-29 诺基亚技术有限公司 用于视频编码的方法和装置
US20160111129A1 (en) * 2013-05-28 2016-04-21 Thomson Licensing Image edits propagation to underlying video sequence via dense motion fields
US20170228875A1 (en) * 2014-10-31 2017-08-10 Raytheon Company System for real-time moving target detection using vision based image segmentation
CN108600865A (zh) * 2018-05-14 2018-09-28 西安理工大学 一种基于超像素分割的视频摘要生成方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1053452A (en) 1907-11-13 1913-02-18 Edward C Stover Apparatus for transporting liquids or gases.
US1004943A (en) 1908-10-30 1911-10-03 Westinghouse Air Brake Co Electric-pump governor.
US8243805B2 (en) 2006-11-14 2012-08-14 Microsoft Corporation Video completion by motion field transfer
US10049435B2 (en) 2014-07-31 2018-08-14 Adobe Systems Incorporated Controlling smoothness of a transmission between images
US10534525B1 (en) * 2014-12-09 2020-01-14 Amazon Technologies, Inc. Media editing system optimized for distributed computing systems
US9741144B2 (en) 2015-11-09 2017-08-22 Adobe Systems Incorporated Seamless compositing using a soft selection
US11030746B2 (en) * 2018-01-18 2021-06-08 Chengdu Besmile Medical Technology Co., Ltd. Assisted dental beautification method and apparatus for implementing the same

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6667774B2 (en) * 2001-11-02 2003-12-23 Imatte, Inc. Method and apparatus for the automatic generation of subject to background transition area boundary lines and subject shadow retention
US20060257042A1 (en) * 2005-05-13 2006-11-16 Microsoft Corporation Video enhancement
EP2608148A2 (en) * 2011-12-23 2013-06-26 Samsung Electronics Co., Ltd. Method and apparatus for generating multi-view
CN104813669A (zh) * 2012-09-21 2015-07-29 诺基亚技术有限公司 用于视频编码的方法和装置
US20160111129A1 (en) * 2013-05-28 2016-04-21 Thomson Licensing Image edits propagation to underlying video sequence via dense motion fields
US20170228875A1 (en) * 2014-10-31 2017-08-10 Raytheon Company System for real-time moving target detection using vision based image segmentation
CN108600865A (zh) * 2018-05-14 2018-09-28 西安理工大学 一种基于超像素分割的视频摘要生成方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116309057A (zh) * 2023-03-14 2023-06-23 中科星图数字地球合肥有限公司 遥感影像拼接方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
AU2019216594B2 (en) 2021-08-05
US11081139B2 (en) 2021-08-03
CN111050210B (zh) 2023-01-17
DE102019005516A1 (de) 2020-04-23
US20200118254A1 (en) 2020-04-16
AU2019216594A1 (en) 2020-04-30
US10872637B2 (en) 2020-12-22
US20200118594A1 (en) 2020-04-16

Similar Documents

Publication Publication Date Title
CN111050210B (zh) 执行操作的方法、视频处理系统及非瞬态计算机可读介质
CN111557016B (zh) 用于生成包括模拟的运动模糊的图像的方法和设备
US9117310B2 (en) Virtual camera system
KR101923845B1 (ko) 이미지 처리 방법 및 장치
US11978225B2 (en) Depth determination for images captured with a moving camera and representing moving features
WO2017213923A1 (en) Multi-view scene segmentation and propagation
KR100931311B1 (ko) 프레임 간 깊이 연속성 유지를 위한 깊이 추정 장치 및 그방법
Liao et al. Dvi: Depth guided video inpainting for autonomous driving
JP2018107793A (ja) 仮想視点画像の生成装置、生成方法及びプログラム
US11676252B2 (en) Image processing for reducing artifacts caused by removal of scene elements from images
US11227428B2 (en) Modification of a live-action video recording using volumetric scene reconstruction to replace a designated region
US11756210B2 (en) Video inpainting via machine-learning models with motion constraints
CN115334233B (zh) 滑动变焦效果的产生方法和系统
US11823357B2 (en) Corrective lighting for video inpainting
US11228707B1 (en) Scene capture for reconstruction of obscured views
JP2007053621A (ja) 画像生成装置
GB2578354A (en) Video inpainting via confidence-weighted motion estimation
CN112565623A (zh) 一种动态图像显示系统
Liu Improving forward mapping and disocclusion inpainting algorithms for depth-image-based rendering and geomatics applications

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