CN112561920A - 用于在视频中进行密集语义分割的深度学习 - Google Patents
用于在视频中进行密集语义分割的深度学习 Download PDFInfo
- Publication number
- CN112561920A CN112561920A CN202010571592.8A CN202010571592A CN112561920A CN 112561920 A CN112561920 A CN 112561920A CN 202010571592 A CN202010571592 A CN 202010571592A CN 112561920 A CN112561920 A CN 112561920A
- Authority
- CN
- China
- Prior art keywords
- frame
- video frame
- neural network
- convolutional neural
- feature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/12—Edge-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/136—Segmentation; Edge detection involving thresholding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/174—Segmentation; Edge detection involving the use of two or more images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/194—Segmentation; Edge detection involving foreground-background segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/215—Motion-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/97—Determining parameters from multiple pictures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/41—Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/41—Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
- G06V20/42—Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items of sport video content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/46—Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/49—Segmenting video sequences, i.e. computational techniques such as parsing or cutting the sequence, low-level clustering or determining units such as shots or scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Abstract
本文涉及用于在视频中进行具有自动交互性和改进的时间相干性的密集语义分割的深度学习。讨论了与将视频帧自动分割为每像素密集感兴趣对象和背景区域有关的技术。这样的技术包括将分割卷积神经网络(CNN)应用于CNN输入,该CNN输入包括当前视频帧、先前视频帧、感兴趣对象指示符帧、运动帧、和多个特征帧,每个特征帧包括从应用于当前视频帧的对象分类卷积神经网络的各特征层压缩的特征,以生成候选分割;并且选择候选分割中的一者来作为当前视频帧的最终分割。
Description
背景技术
在交互式视频分割中,接收到(通过用户对图像的点击)指示前景对象或感兴趣对象(例如,肯定点击)和背景(例如,否定点击)的用户输入。然后利用该用户输入,以便在整个视频剪辑中自动呈现对感兴趣对象的像素级分割。这样的交互式视频分割可以用在转描技术(rotoscoping)(例如,将图像转移到另一视频序列的过程)或其他应用中。值得注意的是,所得到的语义分割数据在诸如视觉效果之类的各种情境中是有用的。例如,自动视频分割可以有利地代替在媒体、电影、以及相关产业中使用的劳动密集型且昂贵的转描技术。
当前的语义技术包括使用人工设计的特征和距离度量,以及使用卷积神经网络以将静态图像分割为例如前景和背景区域。然而,对于改进的密集语义分割仍有持续存在的兴趣。正是关于这些和其他考虑,需进行本改进。随着在视频中应用密集语义分割的需求变得越来越普遍,这种改进可变得至关重要。
附图说明
在附图中以示例方式而非限制方式图示了本文描述的素材。为了图示的简单和清晰,附图中图示的元素不一定是按比例绘制的。例如,为了清晰,一些元素的尺寸相对于其他元素可被夸大。另外,在认为适当时,附图标记在附图之间被重复以指示出对应的或相似的元素。在附图中:
图1图示出由示例系统进行的示例卷积神经网络输入的生成;
图2图示出输入图像的来自应用于输入图像的对象分类卷积神经网络的各特征层的卷积网络特征的示例体积(volume);
图3图示出对特征体积的示例压缩,以生成用于CNN输入的特征帧;
图4图示出由示例系统进行的示例分割的生成以及对最终分割的选择;
图5是图示出用于从输入视频以及用户对象和背景选择来生成分割掩模的示例过程的流程图;
图6是图示出用于训练分割卷积神经网络的示例过程的流程图;
图7图示出用于分割的示例输入视频帧以及相应的最终分割;
图8是图示出用于在视频中提供分割的示例过程的流程图;
图9是用于在视频中提供分割的示例系统的示意图;
图10是示例系统的示意图;并且
图11图示出全都根据本公开的至少一些实现方式布置的示例设备。
具体实施方式
现在参考附图描述一个或多个实施例或实现方式。虽然讨论了具体配置和布置,但应当理解这么做只是为了说明性目的。相关领域的技术人员将认识到,在不脱离描述的精神和范围的情况下,可以采用其他配置和布置。相关领域的技术人员将会清楚,本文描述的技术和/或布置也可用在与本文所述不同的多种其他系统和应用中。
虽然接下来的描述阐述了可在诸如片上系统(SoC)架构之类的架构中显现的各种实现方式,但本文描述的技术和/或布置的实现方式不限于特定的架构和/或计算系统,而是可由任何架构和/或计算系统为类似的目的而实现。例如,采用例如多个集成电路(IC)芯片和/或封装的各种架构和/或诸如机顶盒、智能电话等等之类的各种计算设备和/或消费电子(CE)设备可实现本文描述的技术和/或布置。另外,虽然接下来的描述可阐述许多具体细节,例如逻辑实现方式、系统组件的类型和相互关系、逻辑分区/集成选择等等,但要求保护的主题可在没有这种具体细节的情况下实现。在其他情况中,为了避免模糊本文公开的素材,可能没有详细示出一些素材,例如控制结构和完整软件指令序列。
本文公开的素材可以用硬件、固件、软件或者其任何组合来实现。本文公开的素材也可实现为存储在机器可读介质上的指令,这些指令可被一个或多个处理器读取和执行。机器可读介质可包括用于以机器(例如,计算设备)可读的形式存储或传输信息的任何介质和/或机构。例如,机器可读介质可包括只读存储器(ROM);随机访问存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电的、光的、声的或者其他形式的传播信号(例如,载波、红外信号、数字信号等等),以及其他。
说明书中提及“一个实现方式”、“一实现方式”、“一示例实现方式”等等指示的是描述的实现方式可包括特定的特征、结构或特性,但可能不一定每个实施例都包括该特定特征、结构或特性。另外,这种短语不一定指同一实现方式。另外,当联系一实施例来描述特定的特征、结构或特性时,认为联系其他实现方式(无论本文是否明确描述)来实现这种特征、结构或特性是在本领域技术人员的知识范围内的。
本文中描述了与使用深度学习在视频中进行密集语义分割有关的方法、设备、装置、计算平台和制品。
如上文所述,在语义上将视频序列的每个视频帧分割为例如前景和背景区域可能是有利的。例如,用户可以对一系列视频帧中的第一视频帧进行点击,以指示该帧中包括感兴趣对象的位置(例如,肯定点击)和不包括感兴趣对象的可以表征为背景区域的位置(例如,否定点击)。通过使用用户提供的这样的信息,可期望将每个视频帧密集地分割为具有感兴趣对象(或多个感兴趣对象)的区域和具有背景的另一区域。可期望在各种视觉效果情境中准确的密集分割数据。这样的密集分割数据可以包括指示像素是否在感兴趣对象中的任何像素级信息(或诸如2×2像素区域之类的密集区域信息)。这样的数据可以是二进制的,或者可以指示像素在感兴趣对象中的可能性或概率(例如,从0到1(含0和1))。例如,这样的概率数据可用于生成使用阈值0.5的二进制掩模。
如本文所讨论的,基于包括多个帧的卷积神经网络输入,使用经预训练的分割卷积神经网络(CNN)来为当前视频帧生成多个候选分割。如本文所使用的,在CNN输入的情境中的术语“帧”指示具有针对该帧的每个像素的特征值的2D数据结构。对于例如视频帧,这样的特征值包括:红色值、绿色值、和蓝色值(例如,针对RGB颜色值中的每个颜色值的输入帧),肯定用户点击或投射的肯定用户点击(例如,肯定用户点击位置处的值为1并且其他位置处的值为0)的指示符,指示从像素到肯定或否定用户点击的距离的值,指示运动的值(例如,每像素速度运动矢量),从对象分类CNN的各层压缩的特征值,等等。这样的数据结构将在本文中进一步讨论。
在一些实施例中,CNN输入至少包括当前视频帧、时间上的先前视频帧、用户输入帧(包括对当前视频帧中的感兴趣对象的一个或多个指示符)、运动帧(包括指示从先前视频帧到当前视频帧的运动的运动指示符)、以及多个特征帧(每个特征帧包括从应用于当前视频帧的对象分类CNN的各层压缩的特征)。这样的CNN输入可以表征为CNN输入体积、CNN输入帧、CNN输入特征图,等等。分割CNN可以包括任意数目的CNN层,以生成当前视频帧的多个候选分割。例如,每个候选分割可以包括指示像素是感兴趣对象的一部分的概率的像素级值。使用候选分割,然后可以使用任何合适的一种或多种技术来选择最终分割。在一个实施例中,将经过预训练以选择最终分割的选择CNN应用于包括候选分割、当前视频帧、以及用户输入帧的CNN输入。如本文所使用的,术语“CNN”指示包括至少一个卷积层的网络,该卷积层将一个或多个滤波器与输入体积特征图卷积以生成输出特征图。
本文所讨论的技术提供了在视频中进行的具有改进的时间相干性(temporalcoherence)的密集分割。此外,所讨论的技术在为序列中的第一帧提供用户输入之后,通过使用光流技术(例如,使用光流使能的点击跟踪)模拟随后的用户输入来提供对视频的全自动分割。从而提供了以最少的用户干预在视频数据中进行对象分割的实用的、类别无关的(class-agnostic)、基于交互式深度学习的技术。值得注意的是,所讨论的技术至少基于以下步骤来改进视频帧之间的分割的时间相干性:将分割CNN应用于先前的视频帧和运动帧,向来自深度CNN对象分类网络的特征提供应用驱动的张量分解压缩,以及利用边界损失函数提供对分割CNN的训练,以实施平滑的、高质量的分割轮廓。在一些实施例中,所讨论的技术可被应用以提供一种适用于固定源相机应用(其要求最少的用户输入来准确呈现前景对象的分割视频)的端到端的、基于人工智能的转描技术。
图1图示出由根据本公开的至少一些实现方式布置的由示例系统100进行的示例卷积神经网络输入121的生成。值得注意的是,卷积神经网络(CNN)输入121可以被输入到分割CNN(如本文中将进一步讨论的),以获得当前视频帧111的多个候选分割。如本文中所使用的,术语“分割CNN”指示基于CNN输入生成多个候选分割以使得多个候选分割中的每一者指示其每个像素位于感兴趣对象中的概率的CNN。该概率可以是二进制的(例如,在感兴趣对象中为1或在感兴趣对象之外为0)或扩展到特定的范围(例如,从0到1(含0和1))。
如图1所示,系统100包括特征提取模块102和特征压缩模块103。系统100可以包括经由如本文所讨论的任何合适的形状因数设备实现的处理器、存储器等,以生成CNN输入121。例如,系统100可以可实现为个人计算机、膝上型计算机、平板电脑、平板手机、智能手机、数码相机、游戏机、可穿戴设备、显示设备、多合一设备、二合一设备等。例如,系统100可执行CNN输入生成、候选分割生成、以及最终分割选择,如本文所讨论的。在一些实施例中,系统100还包括一个或多个图像捕获设备以捕获输入视频110,尽管可以从另一设备接收这样的输入视频。
如下文关于图4讨论的那样,将分割CNN 401(f)(例如,分割网络)应用于CNN输入121。如关于图1所示,CNN输入121包括输入视频110的当前视频帧111(Xt)、输入视频110的先前视频帧112(Xt-1)、运动帧113(MVt)、先前分割帧114(Mt-1)、感兴趣对象指示符帧115(或肯定指示符帧)(Sp)、背景指示符帧117(或否定指示符帧)(Sn)、肯定距离变换帧116(或到感兴趣对象的距离指示符帧)(Tp)、否定距离变换帧118(或到背景的距离指示符帧)(Tn)、以及多个特征帧119(Φt),这些特征帧包括从应用于当前视频的对象分类卷积神经网络的各层压缩的特征帧。CNN输入121的这样的帧中的每一者都将在下文讨论。
系统100接收输入视频110和用户点击指示符120。输入视频110可以包括任何合适的分辨率的任何合适的视频帧、视频图片、视频帧序列、图片组、多个图片组、视频数据等。例如,视频可以是视频图形阵列(VGA)、高清晰度(HD)、全高清(例如,1080p)、2K分辨率视频、4K分辨率视频、8K分辨率视频等,并且视频可以包括任何数目的视频帧、视频帧序列、图片、图片组等。在一些实施例中,输入视频110在进行CNN处理之前被下采样。为了清楚描述的目的,针对视频帧讨论了本文所讨论的技术。然而,这样的帧可以被表征为图片、视频图片、图片序列、视频序列等。在一些实施例中,输入视频具有三个通道,诸如RGB通道,尽管可以使用诸如YUV、YCbCR等的其他格式。值得注意的是,如本文中所使用,当作为CNN输入121的部分时,(当前或先前)视频帧可包括CNN输入121的单个帧(例如,亮度帧)或CNN输入121的多个帧(例如,一个帧用于R通道、一个帧用于G通道、一个帧用于B通道)。相对于当前视频帧111,先前视频帧112可以是任何(按捕获和显示的顺序)在时间上在先的或先前的,例如时间上紧接的在先帧,以使得在先前视频帧112和当前视频帧111之间没有中间帧。
如所讨论的,系统100还接收用户点击指示符120,其指示被表征为肯定点击的感兴趣对象之内或包含其的位置(例如,在长颈鹿内)以及兴趣对象之外或不包含其的位置(例如,在长颈鹿外)。如本文所用,术语“感兴趣对象”指示用户希望从图像的其余部分(例如,背景)分割出的图像内的任何对象。通常,感兴趣对象是连续的,因为它只有单个边界,并且在边界内形成完整的整体。感兴趣对象可以是任何对象、人、动物等。可以使用任何适当的一种或多种技术来接收用户输入。在一些实施例中,代替这样的用户点击指示符120,可以使用对象识别CNN或其他机器学习技术来获取在感兴趣对象之内和之外的位置。此外,如所讨论的,可以仅针对输入视频110的第一视频帧来接收用户点击指示符120。对于输入视频110的后续帧,感兴趣对象指示符帧115内的诸如肯定位置122之类的肯定位置(例如,指示感兴趣对象内的位置的肯定指示符的位置)可以从初始用户点击位置投射。例如,对于感兴趣对象指示符帧115,可以从初始感兴趣对象帧中的种子肯定位置投射出肯定位置122,其中种子肯定位置是用户提供的。在一个实施例中,投射肯定(或否定)位置包括:根据运动帧113的对应于该位置的运动矢量(指示每像素速度)(例如,并置运动矢量(collocated motion vector)、该位置周围的运动矢量的平均值,等等)来转换该位置。
类似地,可以从初始用户点击位置投射背景指示符帧117内的否定位置124(例如,指示不包括感兴趣对象的位置的否定指示符的位置)。例如,对于背景指示符帧117,可以从初始背景帧中的种子否定位置投射否定位置124,其中种子否定位置是用户提供的。尽管图示出单个肯定位置122和单个否定位置124,但是可以使用任何数目的肯定位置和否定位置。
感兴趣对象指示符帧115可以包括任何合适的数据结构,该数据结构包括指示感兴趣对象内的位置的指示符(例如,与一个或多个位置对应的一个或多个指示符),例如被标识为感兴趣对象位置的像素位置的第一值(例如,1),和所有其他像素位置的第二值(例如,0)。类似地,背景指示符帧117可以包括任何合适的数据结构,该数据结构包括指示背景内的并且不包括感兴趣对象的位置的指示符,例如被标识为在背景中的像素位置的第一值(例如,1)和所有其他像素位置的第二值(例如,0)。例如,感兴趣对象指示符帧115和背景指示符帧117包括对感兴趣对象和背景的指示符,使得指示符(例如,使用第一值)分别指示包括感兴趣对象和包括背景的像素。
运动帧113可以包括指示从先前视频帧112到当前视频帧111的运动的任何数据结构。例如,运动帧113包括指示从先前视频帧112到当前视频帧的运动的指示符,例如每像素速度运动矢量(例如,每个像素的运动矢量),或其他运动指示符。此外,可以使用任何适当的一种或多种技术(例如密集光流技术)来生成运动帧113。在一个实施例中,CNN输入121包括运动帧113,使得分割CNN 401接收在图像空间上应用的先前视频帧112与当前视频帧111之间确定的密集光流特征。这样的光流特征有利地在由分割CNN 401生成的输出候选分割403中提供改进的时间相干性。
肯定距离变换帧116和否定距离变换帧118可以分别从感兴趣对象指示符帧115和背景指示符帧117生成。肯定距离变换帧116和否定距离变换帧118可以包括指示到在感兴趣对象指示符帧115和背景指示符帧117内的肯定和否定指示符的位置的接近度的任何合适的数据结构。在一个实施例中,肯定距离变换帧116针对其每个像素包括指示到感兴趣对象指示符帧115中的任何(一个或多个)肯定指示符位置的最小距离的值。类似地,在一个实施例中,否定距离变换帧118针对其每个像素包括指示到背景指示符帧117中的任何(一个或多个)否定指示符位置的最小距离的值。在一个实施例中,如关于下述等式(1)所示那样,确定肯定距离变换帧116和否定距离变换帧118的每个值:
其中Tp是肯定距离变换帧116,Tn是否定距离变换帧118,p是肯定距离变换帧116或否定距离变换帧内的任何像素位置,q是最接近的肯定指示符位置(例如,感兴趣对象指示符帧115中的肯定位置122)或否定指示符位置(例如,感兴趣对象指示符帧115中的否定位置124)。在等式(1)的示例中,每像素最小距离被确定为欧几里得距离,但是可以使用任何合适的距离度量。
如关于肯定距离变换帧116所示,等式(1)的应用在相对于肯定位置122的并置位置周围生成区域123,使得区域123同心地远离相对于肯定位置122的并置位置具有较大的值。尽管针对相对于肯定位置122的并置位置处的较小值和远离其的较大值进行了讨论,但是替代地,可以在相对于肯定位置122的并置位置处使用较大的值,而远离其的值变小。例如,可以使用等式(1)的反函数(inverse)。类似地,等式(1)的应用在相对于否定位置124的并置位置周围生成区域125,使得区域125再次同心地远离其具有较大的值,尽管也可以使用反函数。将领会,多个肯定位置122(或否定位置124)的应用提供了可以重叠的额外区域123(或区域125)。例如,肯定距离变换帧116和否定距离变换帧118提供关于到最接近的肯定或否定位置的距离的热图或轮廓,以在可能是感兴趣对象或背景区域的区域中引导CNN。
此外,CNN输入121包括先前分割帧114,其是对应于先前视频帧112的选定分割。值得注意的是,对于输入视频110的第一个帧,静态图像分割CNN和静态图像选择CNN或对象识别CNN可以用于生成初始分割帧。通过分割CNN 401来生成后续的分割帧,并选择(例如通过选择CNN 402)多个候选分割403中的一者,如本文进一步讨论的。先前的分割帧114可以包括指示诸如每像素值之类的分割的任何合适的数据结构,该每像素值针对每个像素指示像素在感兴趣对象中的可能性(例如范围从0到1的值(含0和1))。
如图所示,生成特征帧119以包括在CNN输入121中,使得每个特征帧119都包括从应用于当前视频帧的对象分类卷积神经网络的各层压缩的特征。如本文所用,术语“特征或特征值”指示作为特征图或特征帧的一部分的值,使得特征图或特征帧中的所有特征都相对应,因为它们是通过相同的处理(例如应用CNN、压缩等)获取的。值得注意的是,特征帧119可以包括许多(例如,大约700个)特征帧,其中每个帧包括以当前视频帧111的分辨率的每像素特征,使得特征帧119是以诸如50%的压缩率从特征帧(例如,大约1400个)压缩的。尽管针对50%的压缩率进行了讨论,但是可以使用任何压缩率,例如将特征帧减少30%至40%,将特征帧减少40%至60%,等等。如下文所讨论的,特征帧119是通过以下生成的:将对象检测CNN 101应用于当前视频帧111,针对当前视频帧111中的每个像素获取多个值(每个值来自分类卷积神经网络的各层中的一层),以生成每个像素的特征值的超列,并将超列压缩为特征帧119。总而言之,来自对象检测CNN 101的特征值的超列定义了多个特征图,这些特征图随后被压缩为更少数目的特征图。考虑对象检测CNN 101的另一种方式的应用,在被应用之后,可以从对象检测CNN 101获取多个特征图,以使每个特征图对应于对象检测CNN 101中的一层,其中每个特征图都具有与当前视频帧111的像素对应的特征值。
如所讨论的,对象检测CNN 101被应用于当前视频帧111,并且特征提取模块102从对象检测CNN 101的各层中提取特征体积130。如本文中所使用的,术语“对象检测CNN”指示用于对输入图像执行对象检测的任何CNN。尽管针对对象检测CNN 101进行了讨论,但可以使用任何经预训练的CNN。在一个实施例中,对象检测CNN 101是诸如VGG-19CNN之类的经预训练的CNN。在一个实施例中,特征体积130是从对象检测CNN 101的卷积层126提取的特征图。也就是说,来自卷积层126的特征图可以被复制并堆叠以形成特征体积130,该特征体积包括像素级特征的体积。例如,对于每个像素,一列特征(每一个来自每个提取的特征图)可以被表征为超列。超列合在一起为当前视频帧111提供了像素级特征的体积。
图2图示出根据本公开的至少一些实现方式布置的输入图像202的来自应用于输入图像的对象分类卷积神经网络的各特征层的卷积网络特征201的示例体积。在图2中,在将对象检测CNN 101应用于输入图像202之后,从对象检测CNN 101提取卷积网络特征201的每个特征图,例如特征图204、206。例如,卷积网络特征201的体积是特征体积130的示例。如针对输入图像202的像素211所示,卷积网络特征201的每个特征图(例如特征图204、206)具有相应的特征或特征值,例如特征图204的特征值213和特征图206的特征值212等,以使得针对像素211提供了特征值205的超列203。包括超列203的超列提供了卷积网络特征201的体积,这些卷积网络特征经由特征压缩模块103被压缩以生成特征帧119(参考图1)。如所讨论的,超列203可具有大量条目,例如约1400个值。
返回图1,如针对卷积网络特征201的体积所讨论的,特征体积130包括从对象检测CNN 101生成的每像素超列深度特征。然后,特征体积130被压缩以生成特征帧119。特征帧119可以具有与当前视频帧111相同的分辨率(例如,水平和垂直尺寸等于当前视频帧111)和深度D,深度D是特征体积130的每个每像素超列中的条目数目的一部分,例如50%的条目数目等。
可以使用任何适当的一种或多种技术来压缩特征体积130以生成特征帧119(例如,具有减小的深度的特征体积)。值得注意的是,特征帧119也可以被表征为具有每像素超列深度特征,尽管其是来自对象分类CNN的各层的压缩的特征。在一些实施例中,特征帧119是使用塔克分解(Tucker decomposition)对特征体积130进行压缩生成的。例如,每像素超列深度特征(特征帧119)可以从压缩(通过塔克分解进行)的对象检测CNN 101(例如,VGG-19)特征生成。
图3图示出根据本公开的至少一些实现方式布置的对特征体积130进行的示例压缩,以生成用于CNN输入121的特征帧119。如图3所示,特征体积130(X)(例如,如从对象检测CNN 101提取的)可以近似为特征帧119(G)和主分量303、304、305(A、B、C)。值得注意的是,在将特征帧119提供为CNN输入121的部分时,可以将主分量303、304、305丢弃。
例如,塔克分解是可以应用于将特征体积130压缩到特征帧119的高阶奇异值分解(HOSVD)的示例。值得注意的是,塔克分解与针对分割CNN 401进行的预训练一起被应用以执行降维,同时保留供特征体积130使用的所需细节。通过塔克分解进行特征压缩的这样的预训练可以使用任何适当的一种或多种技术来执行。在一个实施例中,在训练阶段期间选择主分量303、304、305以应用于推理阶段,尽管可以在预训练期间修改塔克分解的任何合适的参数。
例如,对于3张量(例如,此处提供的3D张量),塔克分解可被界定为使用等式(2)如下找出张量X(例如特征体积130)的分解的问题,使得(例如,X具有体积维度为IxJxK的实数)具有核心张量G(特征帧119),使得(例如G具有体积维度为PxQxR的实数)和主分量A(例如主分量303),使得(例如A具有面积维度为IxP的实数)、B(例如主分量304),使得(例如,B具有面积维度为JxQ的实数)、以及C(例如,主分量305),使得(例如,C具有面积维度为KxR的实数)。值得注意的是,在这种情境中,K约为1400(数目或提取的特征图),R约为700(例如,使用50%压缩),并且I=P和J=Q,其中IxJ是输入视频帧111(以及CNN输入121的其他帧)的分辨率。在一些实施例中,可以如关于等式(2)所示来确定塔克分解:
通常,当P<I、Q<J、和/或R<K时(例如,其中核心张量G为原始张量X的压缩版本)实现压缩。如所讨论的,在将特征体积130压缩为特征帧119的情境中,仅在一个维度(例如,特征图的深度或数目)中提供压缩。
图4图示出通过根据本公开的至少一些实现方式布置的示例系统100进行的示例分割403的生成和最终分割406的选择。如图所示,如上文所讨论的那样生成的CNN输入121可以被输入到分割CNN 401以生成当前视频帧111的多个候选分割403。如所讨论的,术语“分割CNN”指示基于CNN输入生成多个候选分割403(例如,一组分割)的CNN,以使多个候选分割中的每一者指示其每个像素位于感兴趣对象中的概率。
分割CNN 401可以包括具有任何数目的卷积层的任何CNN架构,每个卷积层具有任何大小、数目和膨胀的卷积核。此外,一些卷积层之后可以是整流线性单元,并且在其最后的卷积层之后,分割CNN 401可以包括激活层或激活功能层,以提供每个像素在感兴趣对象中的像素级概率。例如,分割CNN 401的输出可以包括任何数目(例如,大约六个)的候选分割403,每个候选分割403包括关于像素是否被包括在感兴趣对象中的像素级概率,如上文所讨论的。值得注意的是,候选分割403可有利地包括在特定范围内(例如,0到1(含0和1))的概率,以供选择CNN使用,如下文所讨论的。在一个实施例中,通过每个候选分割403的准确度的可能性进一步对候选分割403进行排名,使得例如,在列表中首先提供最可能的分割404,在列表中其次提供第二最可能的分割,以此类推直到最不可能的分割405。这样的排名或排序可以在应用选择CNN 402中维护。
在一个实施例中,分割CNN 401具有如下表1所概述的CNN架构,使得分割CNN 401具有9层,其后是激活功能层,如上文所讨论的。如表所示,第一卷积层可以以膨胀1应用75个1x1卷积核,第二到第八卷积层可以以1、4、8、16、32、64和128的增大膨胀应用75个3x3卷积核,第九卷积层可以以膨胀1应用75个1x1卷积核。
层 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
卷积 | 1x1 | 3x3 | 3x3 | 3x3 | 3x3 | 3x3 | 3x3 | 3x3 | 1x1 |
膨胀 | 1 | 1 | 4 | 8 | 16 | 32 | 64 | 128 | 1 |
深度 | 75 | 75 | 75 | 75 | 75 | 75 | 75 | 75 | 75 |
表1:示例分割网络架构
分割CNN 401实现了经过预训练(如下文所讨论那样)的CNN参数。值得注意的是,分割CNN 401可以与选择CNN 402一起进行训练,但它们也可以被单独地分开。
如图4所示,在一些实施例中,候选分割403与视频帧111(Xt)、感兴趣对象指示符帧115(Sp)、背景指示符帧117(Sn)、肯定距离变换帧116(Tp)、以及否定距离变换帧将118(Tn)作为CNN输入411提供给选择CNN 402用以对选定分割406的选择。在一些实施例中,先前视频帧112(Xt-1)、运动帧113(MVt)、以及先前分割帧114(Mt-1)中的一者或多者也可提供为CNN输入411的一部分。选择CNN 402可具有提供对选定分割406的选择的任何合适的架构。在一个实施例中,选择CNN402具有关于如针对表1所讨论的分割CNN 401类似的架构。尽管是关于选择CNN 402的实现进行说明的,但是可以使用任何选择技术来确定选定分割406。此外,可以将阈值(例如0.5)应用于最终分割406,以提供二进制掩模,其具有对于被认为在感兴趣对象之外的像素的值0和对于被认为包括在感兴趣对象中的像素值1。
图5是图示出根据本公开的至少一些实现方式布置的用于根据输入视频以及用户对象和背景选择生成分割掩模的示例过程500的流程图。过程500可以包括如图5所示的一个或多个操作501-509。过程500可以由本文所讨论的任何设备或系统执行以生成分割掩模。可以针对任何数目的当前视频帧、视频序列等重复过程500或其部分。所得的分割掩模可以进一步用于任何视觉效果应用中,例如转描操作。
过程500开始于操作501,在该操作处,获取当前视频帧和时间上的先前视频帧(以捕获和呈现顺序)。当前视频帧和时间上的先前视频帧各自可包括单个亮度通道帧或多个(例如,三个)平面或帧,例如亮度帧和两个色度帧(例如,YUV、YCbCr)或三个色度帧(例如,RGB)。值得注意的是,针对操作507讨论的CNN输入可以包括当前视频帧和时间上的先前视频帧中的每一者的三个帧或特征图。
处理在操作502处继续,在该操作处,接收或投射表示感兴趣对象内的位置的肯定和否定指示符。例如,对于视频序列的第一视频帧,可以由用户提供肯定和否定指示符,而对于视频序列的后续视频帧,可以使用光流技术来投射肯定和否定指示符。此外,在操作502处,可以生成分别与肯定指示符和否定指示符对应的感兴趣对象帧或肯定位置帧和背景帧或否定位置帧,使得肯定位置帧(通过例如值一)指示肯定指示符的位置并且否定位置帧(通过例如值一)指示否定指示符的位置,而帧值的其他值(例如,使用值零)对应于不指示。
处理在操作503处继续,在该操作处,生成距离变换帧,每个距离变换帧对应于肯定位置帧和否定位置帧。例如,如关于等式(1)所讨论的,可以生成肯定和否定距离变换帧,以使得肯定距离变换帧针对其每个像素包括指示到任何肯定指示符位置的最小距离的值,并且否定距离变换帧针对其每个像素包括指示到任何否定指示符位置的最小距离的值。
处理在操作504处继续,在该操作处,使用诸如密集光流技术之类的任何合适的运动跟踪技术来生成运动帧。在其他实施例中,可以使用诸如块匹配技术之类的运动估计技术。如所讨论的,运动帧包括指示从先前视频帧到当前视频帧的运动的运动指示符,诸如每像素速度运动矢量(例如,运动帧的每个像素的运动矢量)。
处理在操作505处继续,在该操作处,将分类CNN应用于当前视频帧,并且获取像素级超列。分类CNN可以是任何合适的CNN,例如经VGG-19预训练的CNN。此外,像素级超列可以包括来自经预训练的CNN的任何层(例如,隐藏层)的特征值。每个超列包括每个像素的跨越特征图的多个特征(例如,大约1400个特征或值),使得每个像素在每个特征图中具有特征值,如针对图2所示。所获取的超列和特征图可以被视为具有与每个特征图的维度对应的二个维度和与每个超列的维度(以及特征图数目)对应的第三个维度(例如深度)的体积。
处理在操作506处继续,在该操作处,在操作505处获取的超列体积被压缩以生成经压缩特征的特征帧。例如,这样的压缩减小了超列体积的深度的维数(例如,特征图的数目),同时保持了与每个特征图的维度对应的二维。可以使用任何适当的一种或多种技术(例如塔克分解)来执行压缩。在一个实施例中,压缩超列包括:将塔克分解应用于包括超列(例如,获取的超列体积)的特征体积以确定所压缩特征帧的核心张量。
处理在操作507处继续,在该操作处,将分割CNN应用于CNN输入,包括以下各项的组合:当前视频帧、时间上的先前视频帧、肯定指示符帧、否定指示符帧、距离变换帧、运动帧和从被应用于当前视频帧的分类CNN的各层压缩的特征的特征帧。分割CNN如本文中所讨论的那样提供当前视频帧的候选分割,并且如将针对图6进一步讨论的那样被预训练。在一些实施例中,使用包括边界损失项的损失函数来预训练分割CNN,该边界损失项包括与训练感兴趣对象对应的地面真实边界点的地面真实值和与在训练过程中应用分割卷积神经网络对应的边界点的结果值之差。
处理在操作508处继续,在该操作处,将选择CNN应用于另一个CNN输入体积,该另一CNN输入体积包括例如当前视频帧、用户输入帧、以及多个候选分割。选择CNN可以具有任何合适的架构,例如类似于分割CNN的架构。候选分割和选定的最终分割可以包括每个像素被包括在感兴趣对象中的像素级概率,诸如从零到一的值(包括零和一)。
处理在操作509处继续,在该操作处,可以使用诸如0.5的任何合适阈值来对最终分割进行阈值化,以生成具有第一指示符或值(例如,值一)的二进制分割掩模,该第一指示符或值指示被认为在感兴趣对象内的像素。例如,小于0.5的最终分割的值可以被认为是背景并且被分配了第二指示符或值(例如,值为零),而大于或等于0.5的最终分割的值可以被认为是感兴趣对象的一部分并被分配了第一指示符或值。最终分割和/或二进制分割掩模可以在任何合适的情境(例如视觉效果、转描技术等)中使用。值得注意的是,二进制分割掩模可以用于(例如,通过相对于当前视频帧进行覆盖)获取感兴趣对象的像素以提取感兴趣对象。然后可以将提取的感兴趣对象放置在不同的背景上、对其进行操作等。
图6是图示出根据本公开的至少一些实现方式布置的用于训练分割卷积神经网络的示例过程600的流程图。过程600可包括如图6所示的一个或多个操作601-607。过程600可以由本文所讨论的任何设备或系统执行以训练本文所讨论的任何分割CNN和/或选择CNN。可以针对任何训练、训练集等重复过程600或其部分。可以将过程600生成的参数权重存储到存储器中并经由处理器来实现,例如,以生成如本文所讨论的视频帧的分割和分割掩模。
过程600开始于操作601,在该操作处,获取训练帧并生成训练帧的地面真实数据。训练帧可以包括具有本文所讨论的特征的视频序列的任何数目的训练集。例如,期望训练帧相对于将在推断期间获取的预期帧具有相同或相似的特性。在一些实施例中,地面真实数据针对每个训练帧的每个像素包括关于该像素是感兴趣对象的一部分还是背景的一部分的指示。这样的地面真实数据可以是二进制的,例如对于作为感兴趣对象的一部分的像素具有值一,而对于其他像素(例如,背景像素)具有值零。
处理在操作602处继续,在该操作处,定义了分割CNN的架构。分割CNN架构可以包括诸如本文针对分割CNN 401讨论的那些特征之类的任何特征。此外,还可以在操作602处执行选择CNN架构的架构。值得注意的是,可以一起训练分割CNN和选择CNN,或者可以在下面的讨论中对它们进行单独训练。
处理在操作603处继续,在该操作处,当前分割CNN被应用于训练帧中的至少一些训练帧。例如,分割CNN的训练可以是一个迭代过程,以便在每个训练时期,基于在操作604处讨论的损失函数来更新分割CNN的参数,这些参数包括卷积核滤波器权重、激活函数权重等。然后,更新当前的分割CNN等,直至收敛。在操作603的第一次迭代中,可以使用任何适当的一种或多种技术(例如,在某些边界内随机应用权重、将权重设置为平均权重等)来利用参数和权重发起分割CNN。
处理在操作604处继续,在该操作处,基于在操作603处应用当前分割CNN的结果,来基于损失函数确定损失。如图6所示,在一些实施例中,如以下进一步讨论的,应用损失的损失函数将Jaccard损失、交互式内容损失、排序的多样性损失、和边界损失相加。在其他实施例中,可以丢弃刚刚描述的一个或多个损失和/或可以使用其他损失。值得注意的是,在操作604处应用的损失函数包括边界损失,以强烈鼓励由分割CNN生成的候选分割中的边界点与地面真实边界点匹配。
如所讨论的,在一些实施例中,损失函数包括Jaccard损失、交互式内容损失、排序的多样性损失、以及边界损失的总和。在一些实施例中,基于下述等式(4)来应用损失函数:
其中等号后的第一项是Jaccard损失,第二项是交互式内容损失,第三项是排序的多样性损失,第四项是边界损失。针对等式(4)示出的损失函数可以被表征为总损失函数。
如所讨论的,项l(Yi,fm(Xi;θf))指示Jaccard损失(或松弛Jaccard损失),其中l指示损失,Yi指示地面真实帧,fm指示m个候选分割f,Xi是当前输入帧,θf表示分割CNN的当前参数。在一些实施例中,在以下等式(5)中定义了松弛Jaccard损失:
其中Y(p)表示地面真实帧中像素位置(或点)p处的地面真实分割的值,f(p)表示像素位置(或点)p处输出的分割CNN。例如,松弛Jaccard类似于交并比(intersection overunion)度量,这在感兴趣分割区域具有更好的重叠时提供更小的损失。
lIC(Sp,Sn,f(Xi;θf))=||Sp*(Sp-f(Xi;θf))||1+||Sn*(Sn-(1-f(Xi;θf)))||1
(6)
其中*指示Hadamard(例如,逐条目的积(entry-wise product))。值得注意的是,交互式内容损失不利于关于所讨论的用户输入位置的不准确结果。
项λml(Yi,fm(Xi;θf))指示排序的多样性损失,并用于鼓励分割CNN产生视觉上多样化的分割,并将固有排名应用于分割。由于语义分割问题固有的多模态,所以这样的条件是有利的。此外,可以通过选择标量集{λm}将该条件直接施加于分割CNN,以促进必须由分割CNN本身解决的任意排名。
最后,项指示边界损失函数,其使得边界像素处的损失不利,并且鼓励分割CNN使边界点与地面真实匹配。例如,对于边界像素(由地面真实数据定义),损失是基于边界像素的地面真实值(例如,值一)和边界像素的分割值(例如从零到一(含零和一)的概率)之间的差异确定的。如本文所使用的,术语“边界像素”指示感兴趣对象内的像素,使得与边界像素至少相邻的像素在感兴趣对象之外(并且,通常至少一个其他相邻像素在感兴趣对象之内)。例如,使用包括边界损失项的损失函数对分割CNN进行预训练,该边界损失项包括与训练感兴趣对象对应的地面真实边界点的地面真实值和与在训练期间应用分割卷积神经网络对应的边界点的结果值之差。在一些实施例中,边界损失项包括伪Huber损失项,该伪Huber损失项包括该差关于陡度参数的分数的平方,该陡度参数不利于分割卷积神经网络中的边界分割误差。在一些实施例中,边界损失项包括如等式(7)所定义的伪Huber损失:
其中是伪Huber损失,Y表示地面真实分割,表示在地面真实帧中的边界像素位置(或点)p处地面真实分割的值,表示在相应边界像素位置处输出的分割CNN,并且δ是陡度参数。例如,松弛Jaccard类似于交并比度量,这在感兴趣分割区域具有更好的重叠时提供更小的损失。如等式所示,伪Huber损失包括与训练感兴趣对象对应的地面真实边界点的地面真实值和与在训练期间应用分割卷积神经网络对应的边界点的结果值之差。此外,边界损失项包括该差关于陡度参数的分数的平方陡度参数不利于在分割卷积神经网络中的边界分割误差。陡度参数可以是任何值,并且可以使用启发式技术来确定。
如所讨论的,可以基于对所讨论的损失项求和来确定总损失。
处理在操作605处继续,在该操作处,通过分割CNN传播损失。可以使用任何适当的一种或多种技术(例如反向传播技术),来通过分割CNN传播损失。值得注意的是,可以基于损失来调整分割CNN的权重和参数,以生成当前分割CNN。
处理在判定操作606处继续,在该操作处,确定是否已经获得了分割CNN的收敛。可以使用任何适当的一种或多种技术来做出收敛判定,例如,分割CNN的总损失小于预定阈值,所执行的训练时段的最大数目等。如果未满足收敛,则处理在操作603-606处继续,直到达到收敛为止。
在获得收敛之后,处理在操作607处继续,在该操作处,将分割CNN的权重和参数存储到存储器中,以经由诸如系统100之类的系统或本文所讨论的设备的任何其他系统进行应用。
图7图示出根据本公开的至少一些实现方式布置的用于分割的示例输入视频帧701、711以及相应的最终分割702、712。值得注意的是,可以使用本文所讨论的技术来生成最终分割702、712。在图7的示例中,最终的分割702、712图示出二进制掩模,其中白色代表感兴趣对象而黑色代表背景,如贯穿本文所使用的那样。如图所示,最终分割702、712如实地表示了输入视频帧701、711中的感兴趣对象。此外,最终分割702、712产生了高保真度的分割结果,其具有平滑且准确的边界轮廓以及贯穿视频的帧与帧之间的时间相干性(无论是在保真度方面还是减少的颤抖方面)。分割702、712还提供了高保真度的分割结果。
所讨论的技术在视频中提供了改进的语义分割,包括可选地使用2K推理(用于增强的分辨率)、基于初始用户输入的投射自动进行的低用户输入分割(例如,仅需要在视频序列的第一帧上进行肯定和否定点击)、应用于从分类CNN提取的特征的应用驱动的张量分解以减少存储器利用率和计算复杂性、边界损失函数的实现以呈现具有高质量边界轮廓的分割以及通过使用诸如光流数据之类的运动数据改进了时间连贯性。
图8是图示出根据本公开的至少一些实现方式布置的用于提供视频中的分割的示例过程800的流程图。过程800可以包括如图8所示的一个或多个操作801-803。过程800可以形成视频分割过程的至少一部分。如本文中所使用的,术语“视频分割”指示对视频的一个或更多视频帧进行分割,使得视频帧的每个像素(或小像素区域)包括该像素是否在视频帧的特定区域(例如,感兴趣对象区域、主要区域等)内的概率。通过非限制性示例,过程800可以形成在实现或推断阶段期间由系统100执行的视频分割过程的至少一部分,如本文所讨论的。此外,本文将参考图9的系统900来描述过程800。
图9是根据本公开的至少一些实现方式布置的用于提供视频中的分割的示例系统900的示意图。如图9所示,系统900可以包括一个或多个中央处理单元(CPU)901(即,(一个或多个)中央处理器)、图形处理单元902(即,图形处理器)、以及存储器903。同样如图所示,图形处理单元902可以包括或实现分类CNN 101、特征提取模块102、特征压缩模块103、分割CNN 401、以及选择CNN 402。这样的模块或组件可以被实现为执行本文所讨论的操作。在系统900的示例中,存储器903可以存储视频帧数据、运动数据、分割数据、特征帧数据、用户输入数据、感兴趣对象指示符或背景指示符帧数据、肯定或否定距离变换帧数据、特征图数据、CNN参数或权重、或本文所讨论的任何其他数据或数据结构。
如图所示,在一些示例中,分类CNN 101、特征提取模块102、特征压缩模块103、分割CNN 401、以及选择CNN 402是通过图形处理单元902实现的。在其他示例中,分类CNN101、特征提取模块102、特征压缩模块103、分割CNN 401、以及选择CNN 402中的一个或多个或者部分是通过系统900的中央处理单元901或图像处理单元(未示出)实现的。在又一些其他示例中,分类CNN 101、特征提取模块102、特征压缩模块103、分割CNN 401、以及选择CNN402中的一个或多个或者部分可以通过成像处理管线、图形管线等实现的。
图形处理单元902可以包括可提供如本文所讨论的操作的任何数目和类型的图形处理单元。这样的操作可以经由软件或硬件或它们的组合来实现。例如,图形处理单元902可以包括专用于处理从存储器903获得的视频数据、CNN数据等的电路。中央处理单元901可以包括可提供系统900的控制和其他高级功能和/或提供本文所讨论的任何操作的任意数目和类型的处理单元或模块。存储器903可以是任何类型的存储器,例如易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如,闪存存储器等),等等。在非限制性示例中,存储器903可以由缓存存储器实现。在一个实施例中,分类CNN 101、特征提取模块102、特征压缩模块103、分割CNN 401、以及选择CNN 402中的一个或多个或者部分是通过图形处理单元902的执行单元(EU)实现的。EU包括例如可编程逻辑或电路,例如可以提供各种各样的可编程逻辑功能的一个或多个逻辑核。在一个实施例中,分类CNN101、特征提取模块102、特征压缩模块103、分割CNN 401、以及选择CNN402中的一个或多个或者部分是通过诸如固定功能电路之类的专用硬件实现的。固定功能电路可以包括专用逻辑或电路,并且可以提供一组固定功能入口点,这些固定功能入口点可以映射到专用逻辑以用于固定目的或功能。在一些实施例中,分类CNN 101、特征提取模块102、特征压缩模块103、分割CNN 401、以及选择CNN 402中的一个或多个或者部分是通过专用集成电路(ASIC)实现的。ASIC可以包括被定制为执行本文所讨论的操作的集成电路。
回到对图8的讨论,过程800在操作801处开始,在该操作处,生成卷积神经网络输入。在一些实施例中,卷积神经网络输入包括当前视频帧、时间上的先前视频帧、包括当前视频帧中的一个或多个感兴趣对象的指示符的感兴趣对象指示符帧、包括指示从先前视频帧到当前视频帧的运动的运动指示符的运动帧、以及多个特征帧(每个特征帧包括从应用于当前视频帧的对象分类卷积神经网络的各层压缩的特征)。在一些实施例中,卷积神经网络输入还包括与先前视频帧对应的先前分割帧。在一个实施例中,当前视频帧包括每像素的R、G、或B值。在一个实施例中,CNN输入包括一帧,每帧包括每像素的R、G、和B值。类似地,先前视频帧可以包括一帧,每帧包括每像素的R、G、和B值。在一个实施例中,运动帧包括每像素速度运动矢量。在一个实施例中,每个特征帧包括每像素压缩的特征值。
在一些实施例中,过程800还包括将分类卷积神经网络应用于当前视频帧、针对当前视频帧的每个像素获取多个特征值(每一个来自分类卷积神经网络的各层的一层)以生成每个像素的特征值的超列、并压缩该超列以确定多个特征帧。在一个实施例中,压缩超列包括将塔克分解应用于包括该超列的特征体积以确定包括多个压缩特征帧的核心张量。在一些实施例中,压缩特征帧的数目不大于每个超列中的特征值的数目的一半。
在一些实施例中,过程800还包括:接收与时间上的先前视频帧中的一个或多个第一位置对应的一个或多个用户点击指示符并且使用运动帧来将一个或多个第一位置中的每个位置投射到当前视频帧中的一个或多个第二位置中,以确定对当前视频帧中的感兴趣对象的一个或多个指示符。在一些实施例中,感兴趣对象指示符帧的一个或多个指示符指示表明感兴趣对象的肯定指示符的位置。在一些实施例中,卷积神经网络输入还包括以下各项中的一者或多者:背景指示符帧,其包括指示不包括感兴趣对象的背景的位置的否定指示符;肯定距离变换帧,其对于其每个像素包括指示到任何肯定指示符位置的最小距离的值;以及否定距离变换帧,其对于其每个像素包括指示到任何否定指示符位置的最小距离的值。
处理在操作802处继续,在该操作处,将分割卷积神经网络应用于卷积神经网络输入以生成当前视频帧的多个候选分割。在一个实施例中,每个候选分割包括每像素概率值,该每像素概率值指示每个像素是感兴趣对象的成员的概率。分割卷积神经网络可以包括本文所讨论的任何特征。在一个实施例中,使用包括边界损失项的损失函数对分割卷积神经网络进行预训练,该边界损失项包括与训练感兴趣对象对应的地面真实边界点的地面真实值和与在训练期间应用分割卷积神经网络对应的边界点的结果值之差。在一个实施例中,边界损失项包括伪Huber损失项,该伪Huber损失项包括该差关于陡度参数的分数的平方,该陡度参数不利于分割卷积神经网络中的边界分割误差。
处理在操作803处继续,在该操作处,候选分割中的一者被选择为对应于当前视频帧的最终分割。可以使用任何适当的一种或多种技术来选择最终分割。在一个实施例中,从候选分割中选择最终分割包括:将选择卷积神经网络应用于第二卷积神经网络输入,该输入包括:当前视频帧、用户输入帧、以及多个候选分割。可以可选地对最终分割(例如,包括指示每个像素是感兴趣对象的成员的概率的每像素概率值)进行阈值化以生成二进制分割掩模。
过程800可以提供用于候选分割的生成以及从候选分割中为当前视频帧选择最终分割。过程800可对任何数目的视频帧、视频序列等串行或并行地重复任意多次。
本文描述的系统的各种组件可以用软件、固件和/或硬件和/或其任何组合实现。例如,本文所讨论的设备或系统的各种组件可至少部分由计算机片上系统(SoC)的硬件提供,例如可存在于诸如计算机、膝上型计算机、平板电脑、或智能手机之类的计算系统中。例如,可以经由多核SoC处理器来实现这样的组件或模块。本领域技术人员可认识到,本文描述的系统可包括在相应附图中没有描绘的额外组件。
虽然本文所讨论的示例过程的实现方式可包括按图示顺序进行示出的所有操作,但本公开不限于此,并且在各种示例中,这里的示例过程的实现方式可只包括示出的操作的子集,包括按与图示不同的顺序执行的操作,或者包括额外的操作。
此外,本文所讨论的操作中的任何一个或多个可响应于由一个或多个计算机程序产品提供的指令来进行。这种程序产品可包括提供指令的信号承载介质,所述指令当被例如处理器执行时可提供本文描述的功能。计算机程序产品可在任何形式的一个或多个机器可读介质中提供。从而,例如,包括一个或多个图形处理单元或处理器核的处理器可响应于被一个或多个机器可读介质输送到处理器的程序代码和/或指令或指令集而进行这里的示例过程的一个或多个块。一般而言,机器可读介质可以以程序代码和/或指令或指令集的形式输送软件,所述程序代码和/或指令或指令集可使得本文描述的任何设备和/或系统实现本文所讨论的操作、模块、或组件的至少一些部分。
如在本文描述的任何实现方式中使用的,术语“模块”指的是被配置为提供本文描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路的任何组合。软件可实现为软件封装、代码和/或指令集或指令,并且如本文描述的任何实现方式中所使用的,“硬件”例如可单一地或者按其任意组合地包括硬连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路和/或存储被可编程电路执行的指令的固件。模块可集体地或者个体地体现为形成诸如集成电路(IC)、片上系统(SoC)之类的更大系统的一部分的电路。
图10是根据本公开的至少一些实现方式布置的示例系统1000的示意图。在各种实现方式中,系统1000可以是计算系统,但是系统1000不限于此情境。例如,系统1000可被包含到以下各项中:个人计算机(PC)、膝上型计算机、超便携膝上型计算机、平板设备、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板或智能电视)、移动互联网设备(MID)、消息传递设备、数据通信设备、外围设备、游戏机、可穿戴设备、显示设备、多合一设备、二合一设备,等等。
在各种实现方式中,系统1000包括耦合到显示器1020的平台1002。平台1002可从内容设备接收内容,其中内容设备例如是(一个或多个)内容服务设备1030或(一个或多个)内容递送设备1040或其他类似的内容源(例如,相机或相机模块等)。包括一个或多个导航特征的导航控制器1050可用于与例如平台1002和/或显示器1020交互。在下文更详细地描述这些组件的每一者。
在各种实现方式中,平台1002可包括芯片集1005、处理器1010、存储器1012、天线1013、存储装置1014、图形子系统1015、应用1016和/或无线电装置1018的任何组合。芯片集1005可提供处理器1010、存储器1012、存储装置1014、图形子系统1015、应用1016和/或无线电装置1018之间的相互通信。例如,芯片集1005可包括能够提供与存储装置1014的相互通信的存储适配器(未图示)。
处理器1010可实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核或者任何其他微处理器或中央处理单元(CPU)。在各种实现方式中,处理器1010可以是(一个或多个)双核处理器、(一个或多个)双核移动处理器,等等。
存储器1012可实现为易失性存储器设备,例如但不限于,随机访问存储器(RAM)、动态随机访问存储器(DRAM)或静态RAM(SRAM)。
存储装置1014可实现为非易失性存储设备,例如但不限于,磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接存储设备、闪存、电池后备SDRAM(同步DRAM)和/或网络可访问存储设备。在各种实现方式中,例如当包括多个硬盘驱动器时,存储装置1014可包括技术来为有价值的数字媒体增加存储性能增强保护。
图形子系统1015可执行诸如静态图像、图形或视频之类的图像的处理以便显示。图形子系统1015例如可以是图形处理单元(GPU)、视觉处理单元(VPU)、或图像处理单元。在一些示例中,图形子系统1015可以执行本文所讨论的扫描图像渲染。模拟或数字接口可用于通信地耦合图形子系统1015和显示器1020。例如,该接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或无线HD符合技术中的任何一者。图形子系统1015可被集成到处理器1010或芯片集1005中。在一些实现方式中,图形子系统1015可以是通信地耦合到芯片集1005的独立设备。
本文描述的图像处理技术可在各种硬件体系结构中实现。例如,图像处理功能可被集成在芯片集内。可替换地,可使用分立的图形和/或图像处理器和/或专用集成电路。作为另外一种实现方式,图像处理可由包括多核处理器在内的通用处理器提供。在另外的实施例中,这些功能可实现在消费电子设备中。
无线电装置1018可包括能够利用各种适当的无线通信技术来发送和接收信号的一个或多个无线电装置。这种技术可涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个人区域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在跨这种网络通信时,无线电装置1018可根据任何版本的一个或多个适用的标准操作。
在各种实现方式中,显示器1020可包括任何平板监视器或显示器。显示器1020例如可包括计算机显示屏幕、触摸屏显示器、视频监视器、类似电视的设备和/或电视机。显示器1020可以是数字的和/或模拟的。在各种实现方式中,显示器1020可以是全息显示器。另外,显示器1020可以是可接收视觉投影的透明表面。这种投影可传达各种形式的信息、图像和/或对象。例如,这种投影可以是移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用1016的控制下,平台1002可在显示器1020上显示用户界面1022。
在各种实现方式中,(一个或多个)内容服务设备1030可由任何国家的、国际的和/或独立的服务所容宿并从而例如是平台1002经由互联网可访问的。(一个或多个)内容服务设备1030可耦合到平台1002和/或显示器1020。平台1002和/或(一个或多个)内容服务设备1030可耦合到网络1060以向和从网络1060传输(例如,发送和/或接收)媒体信息。(一个或多个)内容递送设备1040也可耦合到平台1002和/或显示器1020。
在各种实现方式中,(一个或多个)内容服务设备1030可包括有线电视盒、个人计算机、网络、电话、能够递送数字信息和/或内容的具备互联网能力的设备或家电、以及能够经由网络1060或直接地在内容提供者与平台1002和/或显示器1020之间单向或双向地传输内容的任何其他类似设备。将会明白,可经由网络1060单向地和/或双向地向和从系统1000中的组件的任何一者和内容提供者传输内容。内容的示例可包括任何媒体信息,例如包括视频、音乐、医疗和游戏信息,等等。
(一个或多个)内容服务设备1030可接收内容,例如有线电视节目,包括媒体信息、数字信息和/或其他内容。内容提供者的示例可包括任何有线电视或卫星电视或者无线电或互联网内容提供者。提供的示例并不意图以任何方式限制根据本公开的实现方式。
在各种实现方式中,平台1002可从具有一个或多个导航特征的导航控制器1050接收控制信号。导航控制器1050的导航特征例如可用于与用户界面1022交互。在各种实施例中,导航控制器1050可以是指点设备,该指点设备可以是允许用户将空间(例如,连续的和多维的)数据输入到计算机中的计算机硬件组件(具体而言是人机接口设备)。诸如图形用户界面(GUI)、电视机和监视器之类的许多系统允许用户利用物理手势控制计算机或电视机和向其提供数据。
导航控制器1050导航特征的移动可被在显示器上显示的指针、光标、聚焦环或其他视觉指示物的移动复现在显示器(例如,显示器1020)上。例如,在软件应用1016的控制下,位于导航控制器1050上的导航特征例如可被映射到在用户界面1022上显示的虚拟导航特征。在各种实施例中,导航控制器1050可不是单独的组件,而是可被集成到平台1002和/或显示器1020中。然而,本公开并不限于本文示出或描述的元素或者情境。
在各种实现方式中,例如,当被启用时,驱动器(未示出)可包括使得用户能够在初始启动之后通过触摸按钮像电视机那样即刻开启和关闭平台1002的技术。程序逻辑可允许平台1002即使在平台被“关闭”时也可将内容流送到媒体适配器或(一个或多个)其他内容服务设备1030或(一个或多个)内容递送设备1040。此外,芯片集1005可包括对例如5.1环绕立体声音频和/或高清晰度10.1环绕立体声音频的硬件和/或软件支持。驱动器可包括用于集成图形平台的图形驱动器。在各种实施例中,图形驱动器可包括高速外围组件互连(PCI)图形卡。
在各种实现方式中,系统1000中示出的组件中的任何一个或多个可被集成。例如,平台1002和(一个或多个)内容服务设备1030可被集成,或者平台1002和(一个或多个)内容递送设备1040可被集成,或者平台1002、(一个或多个)内容服务设备1030、和(一个或多个)内容递送设备1040可被集成。在各种实施例中,平台1002和显示器1020可以是集成的单元。例如,显示器1020和(一个或多个)内容服务设备1030可被集成,或者显示器1020和(一个或多个)内容递送设备1040可被集成。这些示例并不意图限制本公开。
在各种实施例中,系统1000可实现为无线系统、有线系统或者两者的组合。当实现为无线系统时,系统1000可包括适合于通过无线共享介质通信的组件和接口,例如一个或多个天线、发送器、接收器、收发器、放大器、滤波器、控制逻辑,等等。无线共享介质的示例可包括无线频谱的一些部分,例如RF频谱等等。当实现为有线系统时,系统1000可包括适合于通过有线通信介质通信的组件和接口,例如输入/输出(I/O)适配器、将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器,等等。有线通信介质的示例可包括导线、线缆、金属引线、印刷电路板(PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤,等等。
平台1002可建立一个或多个逻辑或物理信道来传输信息。该信息可包括媒体信息和控制信息。媒体信息可以指表示打算给用户的内容的任何数据。内容的示例例如可包括来自语音交谈、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音交谈的数据可例如是话音信息、静默时段、背景噪声、舒适噪声、音调,等等。控制信息可以指表示打算用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可用于将媒体信息路由过系统,或者指示节点以预定的方式处理媒体信息。然而,实施例并不限于图10中示出或描述的元素或情境。
如上所述,系统1000可实现为不同的物理风格或外形参数。图11图示了根据本公开的至少一些实现方式布置的示例小外形参数设备1100。在一些示例中,系统1000可经由设备1100实现。在其他示例中,本文所讨论的其他系统、组件、或模块、或者其一些部分可经由设备1100实现。在各种实施例中,例如,设备1100可实现为具有无线能力的移动计算设备。移动计算设备例如可以指具有处理系统和移动电源或供给电源(例如一个或多个电池)的任何设备。
移动计算设备的示例可包括:个人计算机(PC)、膝上型计算机、超便携膝上型计算机、平板设备、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、智能设备(例如,智能电话、智能平板或智能移动电视)、移动互联网设备(MID)、消息传递设备、数据通信设备、相机(例如傻瓜相机、超变焦相机、数字单镜头反光(DSLR)相机),等等。
移动计算设备的示例还可包括被布置为由机动车辆或机器人实现或者供人穿戴的计算机,例如手腕计算机、手指计算机、指环计算机、眼镜计算机、皮带扣计算机、臂环计算机、鞋子计算机、衣服计算机、和其他可穿戴计算机。在各种实施例中,例如,移动计算设备可实现为除了语音通信和/或数据通信以外还能够执行计算机应用的智能电话。虽然作为示例一些实施例可利用被实现为智能电话的移动计算设备来描述,但可明白也可利用其他无线移动计算设备来实现其他实施例。实施例不限于此情境中。
如图11中所示,设备1100可包括具有正面1101和背面1102的外壳。设备1100包括显示器1104、输入/输出(I/O)设备1106、彩色相机1121、彩色相机1122、和集成天线1108。例如,彩色相机1121和彩色相机1122可以输入图像数据(例如,左图像和右图像),如本文所讨论的。设备1100还可包括导航特征1112。I/O设备1106可包括用于将信息输入到移动计算设备中的任何适当的I/O设备。I/O设备1106的示例可包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、麦克风、扬声器、语音辨识设备和软件,等等。信息也可通过麦克风(未示出)被输入到设备1100中,或者可被语音辨识设备数字化。如图所示,设备1100可包括集成到设备1100的背面1102(或别处)的彩色相机1121、1122和闪光灯1110。在其他示例中,彩色相机1121、1122和闪光灯1110可被集成到设备1100的正面1101,或者可提供正面和背面相机组二者。彩色相机1121、1122和闪光灯1110可以是相机模块的组件,该相机模块用于发源彩色图像数据,该图像数据可被处理成图像或流视频,该图像或流视频被输出到显示器1104和/或被从设备1100例如经由天线1108远程传送。
各种实施例可利用硬件元素、软件元素或者两者的组合来实现。硬件元素的示例可包括:处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集,等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任何组合。确定一实施例是否利用硬件元素和/或软件元素实现可根据任何数目的因素而变化,例如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束。
至少一个实施例的一个或多个方面可由存储在机器可读介质上的表示处理器内的各种逻辑的代表性指令实现,该指令当被机器读取时使得该机器制造逻辑来执行本文描述的技术。这种被称为IP核的表示可被存储在有形机器可读介质上并且被提供给各种客户或制造设施以加载到实际制作该逻辑或处理器的制造机器中。
在一个或多个第一实施例中,一种用于在视频中提供分割的方法,包括:生成卷积神经网络输入,该卷积神经网络输入包括当前视频帧、时间上的先前视频帧、感兴趣对象指示符帧、运动帧、以及多个特征帧,其中,感兴趣对象指示符帧包括当前视频帧中的感兴趣对象的一个或多个指示符,运动帧包括指示从先前视频帧到当前视频帧的运动的运动指示符,每个特征帧包括从应用于当前视频帧的对象分类卷积神经网络的各特征层压缩的特征;将分割卷积神经网络应用于卷积神经网络输入,以生成当前视频帧的多个候选分割;并且选择候选分割中的一者来作为对应于当前视频帧的最终分割。
在根据第一实施例的一个或多个第二实施例中,该方法还包括:将分类卷积神经网络应用于当前视频帧;针对当前视频帧中的每个像素,获取多个特征值,以生成每个像素的特征值的超列,每个特征值来自分类卷积神经网络的各层中的一层;并且压缩该超列以确定多个特征帧。
在根据第一或第二实施例的一个或多个第三实施例中,压缩超列包括:将塔克分解应用于包括该超列的特征体积,以确定包括多个压缩特征帧的核心张量。
在根据第一至第三实施例中的任何一个实施例的一个或多个第四实施例中,压缩特征帧的数目不大于每个超列中的特征值的数目的一半。
在根据第一至第四实施例中的任何一个实施例的一个或多个第五实施例中,该方法还包括:接收与时间上的先前视频帧中的一个或多个第一位置对应的一个或多个用户点击指示符,并使用运动帧来将该一个或多个第一位置中的每一者投射到当前视频帧中的一个或多个第二位置,以确定对当前视频帧中的感兴趣对象的一个或多个指示符。
在根据第一至第五实施例中的任何一个实施例的一个或多个第六实施例中,感兴趣对象指示符帧的一个或多个指示符指示肯定指示符的位置,这些肯定指示符指示感兴趣对象,卷积神经网络输入还包括:背景指示符帧,背景指示符帧包括否定指示符,这些否定指示符指示不包括感兴趣对象的背景的位置;肯定距离变换帧,其针对其每个像素包括指示到任何肯定指示符位置的最小距离的值;以及否定距离变换帧,其针对其每个像素包括指示到任何否定指示符位置的最小距离的值。
在根据第一至第六实施例中的任何一个实施例的一个或多个第七实施例中,卷积神经网络输入还包括对应于先前视频帧的先前分割帧。
在根据第一至第七实施例中的任何一个实施例的一个或多个第八实施例中,使用包括边界损失项的损失函数来预训练分割卷积神经网络,该边界损失项包括与训练感兴趣对象对应的地面真实边界点的地面真实值和与在训练期间应用分割卷积神经网络对应的边界点的结果值之差。
在根据第一至第八实施例中的任何一个实施例的一个或多个第九实施例中,边界损失项包括伪Huber损失项,该伪Huber损失项包括该差关于陡度参数的分数的平方,该陡度参数不利于分割卷积神经网络中的边界分割误差。
在根据第一至第九实施例中的任何一个实施例的一个或多个第十实施例中,从候选分割中选择最终分割包括:将选择卷积神经网络应用于第二卷积神经网络输入,该第二卷积神经网络输入包括当前视频帧、用户输入帧、以及多个候选分割。
在根据第一至更多实施例中的任何一个实施例的一个或多个第十一实施例中,当前视频帧包括每像素R、G、或B值,先前视频帧包括每像素R、G、或B值,运动帧包括每像素速度运动矢量,每个特征帧包括每像素压缩特征值,并且每个候选分割包括每个像素是感兴趣对象的成员的每像素概率值。
在一个或多个第十二实施例中,一种设备或系统包括存储器和用以执行根据以上实施例中的任何一个实施例的方法的处理器。
在一个或多个第十三实施例中,至少一个机器可读介质包括多个指令,这些指令响应于在计算设备上执行而使得该计算设备执行根据以上实施例中的任何一个实施例的方法。
在一个或多个第十四实施例中,一种装置包括用于执行根据以上实施例中的任何一个实施例的方法的装置。
虽然已参考各种实现方式描述了本文阐述的某些特征,但此描述并不打算被从限制意义上来解释。因此,对本公开所属领域的技术人员来说显而易见的对本文描述的实现方式的各种修改以及其他实现方式被认为落入本公开的精神和范围内。
将会认识到,实施例不限于这样描述的实施例,而是可在带有修改和变更的情况下实践,而不脱离所附权利要求的范围。例如,上述实施例可包括特征的特定组合。然而,上述实施例不限于此,并且在各种实现方式中,上述实施例可包括仅从事这种特征的子集,从事这种特征的不同顺序,从事这种特征的不同组合,和/或从事除明确列出的那些特征以外的额外特征。因此应当参考所附权利要求以及这种权利要求有权享有的等同物的完整范围来确定实施例的范围。
Claims (24)
1.一种用于在视频中提供分割的方法,包括:
生成卷积神经网络输入,该卷积神经网络输入包括当前视频帧、时间上的先前视频帧、感兴趣对象指示符帧、运动帧、以及多个特征帧,其中,所述感兴趣对象指示符帧包括所述当前视频帧中的感兴趣对象的一个或多个指示符,所述运动帧包括指示从所述先前视频帧到所述当前视频帧的运动的运动指示符,每个所述特征帧包括从应用于所述当前视频帧的对象分类卷积神经网络的各特征层压缩的特征;
将分割卷积神经网络应用于所述卷积神经网络输入,以生成所述当前视频帧的多个候选分割;并且
选择所述候选分割中的一者来作为对应于所述当前视频帧的最终分割。
2.根据权利要求1所述的方法,还包括:
将所述分类卷积神经网络应用于所述当前视频帧;
针对所述当前视频帧中的每个像素,获取多个特征值,以生成每个像素的特征值的超列,每个所述特征值来自所述分类卷积神经网络的各层中的一层;并且
压缩所述超列以确定所述多个特征帧。
3.根据权利要求2所述的方法,其中,压缩所述超列包括:将塔克分解应用于包括所述超列的特征体积,以确定包括多个压缩特征帧的核心张量。
4.根据权利要求3所述的方法,其中,所述压缩特征帧的数目不大于每个超列中的特征值的数目的一半。
5.根据权利要求1-4中任一项所述的方法,还包括:
接收与所述时间上的先前视频帧中的一个或多个第一位置对应的一个或多个用户点击指示符;并且
使用所述运动帧将所述一个或多个第一位置中的每一者投射到所述当前视频帧中的一个或多个第二位置,以确定所述当前视频帧中的所述感兴趣对象的一个或多个指示符。
6.根据权利要求5所述的方法,其中,所述感兴趣对象指示符帧的一个或多个指示符指示肯定指示符的位置,所述肯定指示符指示所述感兴趣对象,所述卷积神经网络输入还包括:背景指示符帧,该背景指示符帧包括否定指示符,所述否定指示符指示不包括所述感兴趣对象的背景的位置;肯定距离变换帧,其针对其每个像素包括指示到任何肯定指示符位置的最小距离的值;以及否定距离变换帧,其针对其每个像素包括指示到任何否定指示符位置的最小距离的值。
7.根据权利要求1至4中的任一项所述的方法,其中,所述卷积神经网络输入还包括对应于所述先前视频帧的先前分割帧。
8.根据权利要求1至4中任一项所述的方法,其中,使用包括边界损失项的损失函数来预训练所述分割卷积神经网络,所述边界损失项包括与训练感兴趣对象对应的地面真实边界点的地面真实值和与在训练期间应用所述分割卷积神经网络对应的边界点的结果值之差。
9.根据权利要求8所述的方法,其中,所述边界损失项包括伪Huber损失项,所述伪Huber损失项包括该差关于陡度参数的分数的平方,该陡度参数不利于所述分割卷积神经网络中的边界分割误差。
10.根据权利要求1至4中任一项所述的方法,其中,从所述候选分割中选择所述最终分割包括:将选择卷积神经网络应用于第二卷积神经网络输入,所述第二卷积神经网络输入包括所述当前视频帧、用户输入帧、以及所述多个候选分割。
11.根据权利要求1至4中任一项所述的方法,其中,所述当前视频帧包括每像素R、G、或B值,所述先前视频帧包括每像素R、G、或B值,所述运动帧包括每像素速度运动矢量,每个所述特征帧包括每像素压缩特征值,并且每个所述候选分割包括每个像素是所述感兴趣对象的成员的每像素概率值。
12.一种用于在视频中提供分割的系统,包括:
用于存储当前视频帧的存储器;以及
耦接到所述存储器的一个或多个处理器,所述一个或多个处理器用于:
生成卷积神经网络输入,所述卷积神经网络输入包括所述当前视频帧、时间上的先前视频帧、感兴趣对象指示符帧、运动帧、以及多个特征帧,其中,所述感兴趣对象指示符帧包括所述当前视频帧中的感兴趣对象的一个或多个指示符,所述运动帧包括指示从所述先前视频帧到所述当前视频帧的运动的运动指示符,每个所述特征帧包括从应用于所述当前视频帧的对象分类卷积神经网络的各特征层压缩的特征;
将分割卷积神经网络应用于所述卷积神经网络输入,以生成所述当前视频帧的多个候选分割;并且
选择所述候选分割中的一者来作为对应于所述当前视频帧的最终分割。
13.根据权利要求12所述的系统,所述一个或多个处理器用于:
将所述分类卷积神经网络应用于所述当前视频帧;
针对所述当前视频帧中的每个像素,获取多个特征值,以生成每个像素的特征值的超列,每个所述特征值来自所述分类卷积神经网络的各层中的一层;并且
压缩所述超列以确定所述多个特征帧。
14.根据权利要求13所述的系统,其中,所述一个或多个处理器压缩所述超列包括:所述一个或多个处理器将塔克分解应用于包括所述超列的特征体积,以确定包括多个压缩特征帧的核心张量。
15.根据权利要求14所述的系统,其中,所述压缩特征帧的数目不大于每个超列中的特征值的数目的一半。
16.根据权利要求12至15中任一项所述的系统,所述一个或多个处理器用于:
接收与时间上的先前视频帧中的一个或多个第一位置对应的一个或多个用户点击指示符;并且
使用所述运动帧将所述一个或多个第一位置中的每一者投射到所述当前视频帧中的一个或多个第二位置,以确定所述当前视频帧中的所述感兴趣对象的一个或多个指示符。
17.根据权利要求16所述的系统,其中,所述感兴趣对象指示符帧的一个或多个指示符指示肯定指示符的位置,所述肯定指示符指示所述感兴趣对象,所述卷积神经网络输入还包括:背景指示符帧,该背景指示符帧包括否定指示符,所述否定指示符指示不包括所述感兴趣对象的背景的位置;肯定距离变换帧,其针对其每个像素包括指示到任何肯定指示符位置的最小距离的值;以及否定距离变换帧,其针对其每个像素包括指示到任何否定指示符位置的最小距离的值。
18.根据权利要求12至15中任一项所述的系统,其中,所述卷积神经网络输入还包括对应于所述先前视频帧的先前分割帧。
19.根据权利要求12至15中任一项所述的系统,其中,使用包括边界损失项的损失函数来预训练所述分割卷积神经网络,所述边界损失项包括与训练感兴趣对象对应的地面真实边界点的地面真实值和与在训练期间应用所述分割卷积神经网络对应的边界点的结果值之差。
20.根据权利要求19所述的系统,其中,所述边界损失项包括伪Huber损失项,所述伪Huber损失项包括该差关于陡度参数的分数的平方,该陡度参数不利于所述分割卷积神经网络中的边界分割误差。
21.根据权利要求12至15中任一项所述的系统,其中,所述一个或多个处理器从所述候选分割中选择所述最终分割包括:所述一个或多个处理器将选择卷积神经网络应用于第二卷积神经网络输入,所述第二卷积神经网络输入包括所述当前视频帧、用户输入帧、以及所述多个候选分割。
22.根据权利要求12至15中任一项所述的系统,其中,所述当前视频帧包括每像素R、G、或B值,所述先前视频帧包括每像素R、G、或B值,所述运动帧包括每像素速度运动矢量,每个所述特征帧包括每像素压缩特征值,并且每个所述候选分割包括每个像素是所述感兴趣对象的成员的每像素概率值。
23.至少一种机器可读介质,包括:
多个指令,所述指令响应于在计算设备上被执行而使得所述计算设备执行根据权利要求1至11中任一项所述的方法。
24.一种装置,包括:
用于执行根据权利要求1-11中任一项所述的方法的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/584,709 US11676278B2 (en) | 2019-09-26 | 2019-09-26 | Deep learning for dense semantic segmentation in video with automated interactivity and improved temporal coherence |
US16/584,709 | 2019-09-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112561920A true CN112561920A (zh) | 2021-03-26 |
Family
ID=69163097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010571592.8A Pending CN112561920A (zh) | 2019-09-26 | 2020-06-22 | 用于在视频中进行密集语义分割的深度学习 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11676278B2 (zh) |
CN (1) | CN112561920A (zh) |
DE (1) | DE102020123304A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220230321A1 (en) * | 2021-01-15 | 2022-07-21 | Adobe Inc. | Generating class-agnostic object masks in digital images |
US11631234B2 (en) | 2019-07-22 | 2023-04-18 | Adobe, Inc. | Automatically detecting user-requested objects in images |
US11681919B2 (en) | 2020-03-12 | 2023-06-20 | Adobe Inc. | Automatically selecting query objects in digital images |
US11797847B2 (en) | 2019-07-22 | 2023-10-24 | Adobe Inc. | Selecting instances of detected objects in images utilizing object detection models |
US11886494B2 (en) | 2020-02-25 | 2024-01-30 | Adobe Inc. | Utilizing natural language processing automatically select objects in images |
US11972569B2 (en) | 2021-01-26 | 2024-04-30 | Adobe Inc. | Segmenting objects in digital images utilizing a multi-object segmentation model framework |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4042370A4 (en) * | 2019-11-15 | 2024-01-10 | Oreal | END-TO-END MERGE ENABLES SEGMENTATION OF VIDEO OBJECTS (VOS) |
US11080833B2 (en) * | 2019-11-22 | 2021-08-03 | Adobe Inc. | Image manipulation using deep learning techniques in a patch matching operation |
CN111476727B (zh) * | 2020-03-26 | 2023-04-25 | 南京信息工程大学 | 一种面向换脸视频检测的视频运动增强方法 |
US11354906B2 (en) * | 2020-04-13 | 2022-06-07 | Adobe Inc. | Temporally distributed neural networks for video semantic segmentation |
US20210342686A1 (en) * | 2020-04-30 | 2021-11-04 | Nvidia Corporation | Content management using one or more neural networks |
US20210390423A1 (en) * | 2020-06-12 | 2021-12-16 | Cisco Technology, Inc. | Deep fusion reasoning engine for time series analysis |
CN111914682B (zh) * | 2020-07-13 | 2024-01-05 | 完美世界控股集团有限公司 | 一种包含演示文稿的教学视频分割方法、装置及设备 |
US11868428B2 (en) * | 2020-07-21 | 2024-01-09 | Samsung Electronics Co., Ltd. | Apparatus and method with compressed neural network computation |
CN111738268B (zh) * | 2020-07-22 | 2023-11-14 | 浙江大学 | 一种基于随机块的高分遥感图像的语义分割方法及系统 |
US11869125B2 (en) * | 2020-09-30 | 2024-01-09 | Adobe Inc. | Generating composite images with objects from different times |
CN112700516B (zh) * | 2020-12-23 | 2023-12-01 | 杭州群核信息技术有限公司 | 基于深度学习的视频渲染方法和装置 |
US11461993B2 (en) * | 2021-01-05 | 2022-10-04 | Applied Research Associates, Inc. | System and method for determining the geographic location in an image |
CN112669325B (zh) * | 2021-01-06 | 2022-10-14 | 大连理工大学 | 一种基于主动式学习的视频语义分割方法 |
US11893792B2 (en) * | 2021-03-25 | 2024-02-06 | Adobe Inc. | Integrating video content into online product listings to demonstrate product features |
CN113191262B (zh) * | 2021-04-29 | 2022-08-19 | 桂林电子科技大学 | 一种视频描述数据处理方法、装置及存储介质 |
CN113505737A (zh) * | 2021-07-26 | 2021-10-15 | 浙江大华技术股份有限公司 | 前景图像的确定方法及装置、存储介质、电子装置 |
CN114792106A (zh) * | 2021-09-30 | 2022-07-26 | 上海商汤智能科技有限公司 | 视频语义分割方法、装置、电子设备及存储介质 |
CN113837161B (zh) * | 2021-11-29 | 2022-02-22 | 广东东软学院 | 基于图像识别的身份识别方法、装置及设备 |
CN115240006B (zh) * | 2022-07-29 | 2023-09-19 | 南京航空航天大学 | 目标检测的卷积神经网络优化方法、装置及网络结构 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10810435B2 (en) * | 2018-11-07 | 2020-10-20 | Adobe Inc. | Segmenting objects in video sequences |
-
2019
- 2019-09-26 US US16/584,709 patent/US11676278B2/en active Active
-
2020
- 2020-06-22 CN CN202010571592.8A patent/CN112561920A/zh active Pending
- 2020-09-07 DE DE102020123304.3A patent/DE102020123304A1/de active Pending
-
2023
- 2023-04-06 US US18/131,650 patent/US20230306603A1/en not_active Abandoned
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11631234B2 (en) | 2019-07-22 | 2023-04-18 | Adobe, Inc. | Automatically detecting user-requested objects in images |
US11797847B2 (en) | 2019-07-22 | 2023-10-24 | Adobe Inc. | Selecting instances of detected objects in images utilizing object detection models |
US11886494B2 (en) | 2020-02-25 | 2024-01-30 | Adobe Inc. | Utilizing natural language processing automatically select objects in images |
US11681919B2 (en) | 2020-03-12 | 2023-06-20 | Adobe Inc. | Automatically selecting query objects in digital images |
US20220230321A1 (en) * | 2021-01-15 | 2022-07-21 | Adobe Inc. | Generating class-agnostic object masks in digital images |
US11587234B2 (en) * | 2021-01-15 | 2023-02-21 | Adobe Inc. | Generating class-agnostic object masks in digital images |
US20230136913A1 (en) * | 2021-01-15 | 2023-05-04 | Adobe Inc. | Generating object masks of object parts utlizing deep learning |
US11900611B2 (en) * | 2021-01-15 | 2024-02-13 | Adobe Inc. | Generating object masks of object parts utlizing deep learning |
US11972569B2 (en) | 2021-01-26 | 2024-04-30 | Adobe Inc. | Segmenting objects in digital images utilizing a multi-object segmentation model framework |
Also Published As
Publication number | Publication date |
---|---|
US20230306603A1 (en) | 2023-09-28 |
US11676278B2 (en) | 2023-06-13 |
US20200026928A1 (en) | 2020-01-23 |
DE102020123304A1 (de) | 2021-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11676278B2 (en) | Deep learning for dense semantic segmentation in video with automated interactivity and improved temporal coherence | |
US11928753B2 (en) | High fidelity interactive segmentation for video data with deep convolutional tessellations and context aware skip connections | |
US11538164B2 (en) | Coupled multi-task fully convolutional networks using multi-scale contextual information and hierarchical hyper-features for semantic image segmentation | |
US11763565B2 (en) | Fine-grain object segmentation in video with deep features and multi-level graphical models | |
JP7391883B2 (ja) | 顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク | |
US10885384B2 (en) | Local tone mapping to reduce bit depth of input images to high-level computer vision tasks | |
US11880770B2 (en) | 3D object recognition using 3D convolutional neural network with depth based multi-scale filters | |
US11334975B2 (en) | Pose synthesis in unseen human poses | |
US10430694B2 (en) | Fast and accurate skin detection using online discriminative modeling | |
US20180032844A1 (en) | Object recognition based on boosting binary convolutional neural network features | |
US9600864B2 (en) | Skin tone tuned image enhancement | |
US11164317B2 (en) | Real-time mask quality predictor | |
US20240005628A1 (en) | Bidirectional compact deep fusion networks for multimodality visual analysis applications | |
WO2022021217A1 (en) | Multi-camera person association via pair-wise matching in continuous frames for immersive video | |
CN113168502A (zh) | 用于可变计算资源的动态自适应卷积神经网络 | |
CN114220038A (zh) | 使用空间-时间模型的视频背景估计 | |
CN115605922A (zh) | 自适应运行时高效图像分类的输入图像大小可切换网络 | |
WO2023028908A1 (en) | Dynamic temporal normalization for deep learning in video understanding applications | |
WO2022115991A1 (en) | Incremental 2d-to-3d pose lifting for fast and accurate human pose estimation |
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 |