您的位置:首页 > 移动开发 > Objective-C

Fast object segmentation in unconstrained video——非限制场景快速视频对象分割 原文翻译

2015-07-07 18:52 423 查看
Fast object segmentation in unconstrained video非限制场景快速视频对象分割

ICCV2013 爱丁堡大学,英国

Anestis Papazoglou,Vittorio Ferrari

摘要:

我们展示了一项从视频背景中分离出前景的技术,它快速、全自动并且对视频做最小的限制。这使得我们可以处理更基础的非限制的集合,包括快速移动的背景、任意物体的运动和表观以及非刚体变形和关节运动。在两个含有1400多个视频的测试中,我们的方法优于最好的背景减除的方法[4Vibe],以及基于点追踪的聚类[6,18,19]。更难能可贵的是,它能够产生和最新的基于似物性的方法有可比性的结果,但速度要快一个数量级。

1. 简介

视频对象分割是把前景物体从视频的背景分离开来[14,18,26].这对于很多包括空间支撑的物体识别学习[19]、视频摘要、动作识别[5]等应用都很重要。

目前的方法包括需要用户在某些帧标注[3,20,26,24]以及只需要输入视频的全自动方法[14,6,18,4]。后一个和实际应用更相关,优于它可以在不需要人参与的情况下处理大量的视频。然而,这项工作很有挑战性,因为这些方法不知道有关物体表观、尺度和位置的任何信息。雪上加霜的是,普通的无限制的集合可能包含快速移动的背景和物体、非刚体变形和关节运动(图5)。

本文提出了一个处理非限制视频场景的全自动方法。我们的方法省时并且对视频的限制最少:唯一的限制是物体要在一定比例上与背景有较大的运动。物体可以在一部分时间里是静止的而只在其他的部分是运动的(例如一只猫开始跑随后停下来舔它的爪子)。我们的方法不要求静止的或者缓慢运动的背景(和经典的背景减除的方法[9,4,7]相反)。更重要的是,它不假设物体遵循特殊的运动模型也不认为所有点的运动是移植的(和那些基于点追踪的方法相反[6,17,18])。这在分割非刚体或者关节运动物体例如动物的时候特别重要(图5)。

我们方法的关键在于快速的产生基于运动边界的某些像素属于物体的模糊的估计(3.1节)。这个初始的估计随后通过融合时空信息的GrabCut算法细化[21,14,26]。第二个阶段通过基于初始估计的重采样来自动产生一个表观模型,随后它被用来精确的空间分割以及用于那些静止状态的分割(3.2节)。

通过操作1400个视频的大量测试,我们的方法:(1)处理快速移动的背景和物体,包括大范围的表观变化、运动和变形,还包括非刚体和关节运动;(2)优于最好的背景减除的方法[4]以及点追踪的方法[6,18,19];(3)比最近的基于似物性的方法快一个数量级[14,16,27];(4)在大的YouTube物体数据库上优于流行的方法[14];(5)在小的测试集SegTrack上的结果具有可比性。我们方法的源码在http://groups.inf.ed.ac.uk/calvin/software.html。

2. 相关工作

交互式或者有监督的方法.许多方法需要用户手工标记一些帧然后向后面的帧传播这些标注[3,20,26]。类似的,基于最终的方法[8,24]需要用户标记首帧中物体出现的位置然后在其余帧中追踪它们。

背景减除.经典的背景减除方法为每个像素建立模型并且认为变化大的像素是前景。这些方法无不假设摄像机是静止的,至少是缓慢移动的[9,4,7]。为减少误报的产生背景应该缓慢的更新。

点追踪聚类.一些自动化的方法在一些帧中追踪点并且基于匹配来对这些点进行聚类[6,17]或者是三点相似性[18]。点对匹配潜在的假设是所有物体的点运动遵循一个简单的平移变换,而三点对则也有类似的简单的平移假设[18]。当处理非刚体或者关节运动的时候这些假设就会遇到麻烦。我们的方法与此相反,它并不假设任何形式的运动一致性。物体只需要与背景有显著的运动差别。另一方面,[6,17,18]试图分开追踪多个物体而我们的方法只是一个简单的二值分割方法(前景对背景)。

似物性排序.[14,16,27]和我们的方法很相近,因为他们做的也是同样的工作。这些方法基于最新的通用物体识别方法[10]不断的寻找似物的物体,并且在SegTrack数据集上取得了令人印象深刻的效果。优于用到了似物性检测的框架来发现前景区分背景,这些方法的速度很慢(一帧要几分钟)。与此相反,我们采用了一个简单快速的处理(3.1节)。在第4节将会展示我们的方法获得了和[14]有可比性的效果,但要快一个数量级。

过分割.[13]通过过分割来获得均匀的运动和表观,和静态图片的超像素类似[15]。这只是后处理的一种偏好,它本身并没有解决视频分割问题。

3. 我们的方法

我们的方法是分割出那些与周围运动存在显著差异的物体。它有两个阶段:(1)高效的前景估计(3.1节);(2)精细的前背景标记(3.2节)。现在粗略介绍一下这两个阶段,后面的章节里会有详细的介绍。

(1) 高效的前背景估计.第一个阶段的目标是居于运动快速的产生处理的物体像素估计。我们计算连续帧之间的光流和运动边界。理想情况下,运动边界将会是一个封闭的曲线,但是,由于光流估计的不精确性,运动边界并不完整而且没在边界对齐(图1.f)。另外,在边界处也会产生误报。我们提出了一个新的高效鲁棒的决定像素是否属于运动物体的算法,把所有这些资源都考虑在内(图2.c)。

图1运动边界(a)连续的两输入帧(b)光流向量f,像素的色度表明了它的方向,饱和度表明了它的速度(c)仅基于光流得到的运动边界(d)基于运动方向不同和近邻得到的运动边界(e)组合得到的运动边界(f)阈值过滤后叠加到原图得到的运动边界

(2) 精细的前背景标注.由于仅基于运动边界,第一个阶段只能近似的表明物体在哪。它们并不能精确的描绘出物体的边界。更棘手的是,物体的某些部分在一些帧中可能是静止的,或者由于光流估计的不精确性它们并不能很好的表达出来。

第二个阶段的目标是精细化内-外图并且在所有帧中分割物体。为了达到这个目的,它融合了所有帧中来自内-外图的信息:(1)促使视频的输出在时空上变得平滑(2)假设变化平缓并为物体和背景建立动态的表观模型。和仅基于运动的分割相比,融合表观线索是获得更好细节的关键。更重要的是,在学习内-外图中学习了表观模型后,第二个阶段能用它来分割那些在初始化时丢失的物体(因为它是静止的)。

3.1高效的初始前景估计.

光流.我们从使用最好的计算方法来计算相邻帧间的光流[6,22],它支持计算大的位移并且有高效的GPU实现[22](图1a+b)。

运动边界.我们的方法是基于运动边界的,也就是说那些光流场变化大的地方。运动边界包含了遮挡边界的位置,这在实际场景中很常见[23]。

像素p处的光流向量计做 ,最简单的估计边界的方式是通过计算光流场的梯度:

(1)

其中 在[0,1]间,表明了像素p处边界运动的强度, 是控制函数陡峭程度的参数。

当 接近1的时候,这个标准准确的检测到了快速移动物体的边界像素, 然而,当接近0.5的时候由于光流估计的不准确性容易判错(图1c)。为了消除这些模糊的情况,我们基于像素p处运动方向与其近邻的不同计算了第二个估计:

(2)

其中 表示的是向量 和 之间的夹角。这个主意来源于如果n和其他所有邻居移动的方向不同,它很可能是运动边界。这个估计对中等速度的物体运动也能很好的检测出边界,只要它与周围背景运动方向有所不同。然而,它在静态图片中经常产生误报,因为在小的或者静止的点处光流含有很多噪声。

由于上述两种度量有互补的失败情况,我们把他俩结合起来,这比单独任何一个效果都要好(图1f):

(3)

其中T是一个高的阈值,当 高于它时边界估计是可信的。最后我们设置 在0.5处来产生运动边界的二值标记(图1f)。

内-外图.通常情况下运动边界并不完全覆盖整个物体,更为糟糕的是,可能会有误报。在这里,我们考虑到所有的资源来提出一个高效鲁棒的估计物体内部像素的算法。

这个算法来自于计算几何中的点在多边形内部的问题[12]来估计一个像素是否在物体中。观测的关键是从多边形内部发出的射线和多边形的边界有奇数个交点,而外部的点发出的射线则有偶数个交点(图2a)。优于典型的运动边界并不完整,仅用一条射线来估计是不充分的。因此,我们采用每45度发射一条设想总共8条射线的方法。每条射线都会对点是否在物体内部有一个投票。最终的内-外决策取决于多数值,也就是说,当有5条以上的射线有奇数个交点时会被认为在物体内部。

Figure 1图2内-外图左边光线追踪观测。任何封闭曲线内部发出的射线都会和曲线有奇数个交点,而外部的点则会有偶数个交点。这对于图像中任何的封闭曲线都是成立的。中间的图水平方向相交积分图的阐述。每个像素x到左边的交点可以很简单的通过Xl(x,y)=S(X-1,y)=1来计算,到右边的可以通过Xr(x,y)=S(W,y)-S(x,y)=1,在这种情况下,两边都会对像素是否在物体内部投票。右边:内-外图

直接实现这个主意的话计算量会很大(图像像素的二次方),受积分图启发,我们提出了一个高效的相交积分算法。想法的关键是创建一个特殊的数据结构使得快速计算的时候可以大量复用那些计算结果。

为每个方向(水平、垂直和两个对角)创立一个W*H大小的矩阵S。S(x,y)记录了从图像两侧到点(x,y)处边界交点的数目。简单起见,我们只介绍水平方向的例子,其他方向的计算是类似的。这个算法每次计算S上的一行y。每行的第一个像素(1,y),在图像的左边,其值S(x,y)=0。我们每次向右移动一个像素的距离并且从非边界到边界处的像素加1,这样结果就计算出了一行s(:,y)处的交点数量(图2b)。

在计算完了所有水平方向的S后,数据结构就准备好了。我们现在就可以来计算像素(x,y)处两条水平射线(左到右,右到左)处的交点了,如下:

(4)

(5)

其中W是图像的宽度,也就是说一条水平线中像素的数目。

我们的算法只在创立S的时候访问每个像素一次,以及在投票的时候访问一次,因此,它的复杂度是图像像素数目的线性函数。实际应用中这个算法很快,在中等CPU(酷睿i7 2.0GHz)处理一帧高清视频(1280×720)仅需要0.1s。

对视频的每一帧,我们在8个方向上应用这个算法并且使用多数票来决定像素是否属于,物体内部,结果是生成了一张内-外图(图2c)。

3.2精细的前背景标记

我们把视频分割看作有两个标签(前景和背景)的像素标记问题。我们把每帧过分割为超像素St[15],这样能大大减少计算的时间和所需的内存,使得我们能分割长的多的视频。

每个超像素 可以有一个属于{0,1}的标签。所有帧上超像素的一个标记则表明了视频的一个分割。和其他的分割方法[14,21,26]类似,我们为评估一个标记定义能量函数:

(6)

是一个根据t帧的表观模型计算出的某个超像素属于前景或背景的一元估计。第二项, 是基于位置模型先验观测到独立运动的前景二元项。我们后面会有详细的解释,我们从内-外图中获得表观模型和位置先验的参数。匹配项V和W分别表明空间和时间的平滑项。 是每个随机变量的权重。

分割输出的结果是最小化如下标记问题:

(7)

由于E是有子模性质的能量函数,我们采用graphcut的方法来精确的最小化。随后我们使用分割的结果并采用和GrabCut[21]类似的方法来重新估计表观模型并且在这两步进行迭代计算。下面我们详细的讨论这些。

平滑项V,W.空间平滑V是在边集上定义的,包含了那些空间相连的超像素。两个超像素如果是在同一帧并且相连的话会被认为是空间连续的。

时间平滑项W是在时间上相连的超像素上定义的。两个超像素 和 在连续的帧中并且它们至少有一个像素是通过光流相连的(图3)。

图3时间上相连超像素的实例

函数V、W是标准的波特模型:

(8)

(9)

其中dis是两个超像素中心的欧式距离,col是它们在RGB空间上颜色的差异。和标准定义不同的是 ,它代表了两个通过光流联系的超像素具有相同像素的比例。

表观模型 .表观模型包含两个在RGB空间上的混合高斯模型,一个是前景另一个是背景。本方法来自于交互式分割[21],在那里表观模型是通过手工标记一些像素来实现的。在本文中与其不同,我们通过内-外图来自动的估计它们。

我们为每帧估计一个表观模型 。然而,由于前景和背景在变化上是平滑的,这些模型在整个视频中是松散耦合的。因此,每帧收集的表观模型可以看作是一个动态的表观模型。

在每帧中通过估计超像素成为前景的可能性以及在时间上的连续性,我们为所有的超像素建立一个前景模型。更精确的说,超像素的权重是如下定义的:

(10)

第一个参数表明了 在时间上的权重,第二个参数代表了通过内-外图计算出的属于物体的百分比。背景模型的估计是类似的,仅是把第二个参数换为 ,也就是说不属于前景的百分比。

估计完前背景模型后,一元项 是 取标签 时的负log函数。

把这些表观模型考虑到(6)中能量的设计中能比单单使用运动模型取得更精确的结果。难能可贵的是,表观模型融合了许多帧中大的区域的信息,因此即使内外图会出现错误的时候,它也能够鲁棒的估计物体的外观。表观模型能够在帧内和帧间传播,通过调整前景一元项物体表观的可能分布,即使内外图计算的时候错分了他们。这使得它能够处理物体仅有部分运动的情况,其也能在那些没有运动的帧分割时发挥作用。

位置模型 .仅使用表观模型的话,分割可能会被那些和前景颜色相似的背景说干扰。幸运的是,内外图能提供一个珍贵的位置先验来定位那些可能包含物体的区域,因为那些区域和周围的移动有显著的不同。然而,在某些帧中,物体(或某部分)可能是静止的,还有些时候不精确的光流估计也会导致内外图把他们丢掉(图4中间行)。因此,把内外图加入到一元项 中可以提升那些丢失物体帧的分割的效果。

在这里我们提出帧间内外图传播的方法来建立一个更精确的位置先验。关键在于内部的分类比外部更可靠:由于上述原因,真正的物体边缘可能不会形成封闭的运动边界,但外部的噪声很少能形成封闭的边界。因此,我们的算法通过光流累加所有的内部点(图4下面一行)。

Figure 2图4位置模型。顶行:三帧中间行:基于内外图的似然性,由于头部和躯干没有运动,在第二和第三帧中它们丢失了大部分的人体;底行:基于内外图传播的位置模型,它包含了大部分人体

这个算法递归的处理。超像素 处的位置先验初始化为 ,也就是说其在内外图中的比例。我们从第一帧传播到第二帧,然后到第三帧,后面的类似。每一步中,超像素 在t+1帧中的位置是通过如下公式进行更新的:

(11)

其中求和是在一帧中所有超像素中进行的,连接的权重 是超像素 通过光流和超像素 重叠的比例(图3); 控制了更新的速率,属于[0,1]之间; 是控制传播的质量,当 的光流看来来不可靠的时候减少其权重:

(12)

本质上, 描述了 处光流梯度的和;大的梯度表明深度上的不连续性,这时候光流往往会不可靠,或者是 可能包含了两个不同的物体。

我们逐步向前运行这个传播然后类似的一个反向传播从最后一帧到第一帧。这两个步骤可以分开来运行。最后的位置先验是这两个步骤的归一化和。

4. 测试集上的结果

在两个数据集上测试了我们的算法:SegTrack[24]和YouTube-Objects[19]。参数 在所有的实验中保持不变。

4.1. SegTrack

数据集.SegTrack[24]本来是用来评估追踪算法的,在[19]中被改造来评估分割算法。它包含6个视频(猴子狗、女孩、落鸟、降落伞、非洲猎豹和企鹅)和物体的像素级标注的真实标注。和[14]类似,我们去掉了企鹅,因为视频中有很多企鹅,但真值只标注了一个。这些视频提供了丰富的挑战,包括和背景颜色的相似性、非刚体变形以及快速移动的相机。

设置.和[14,24]一样,我们通过标错像素的数量除以帧数来量化结果。我们使用二叉交叉验证来设置权重 。我们把数据库分为包含2个视频和3个视频两部分,然后在每个部分单独训练权重 。当在一个部分测试的时候,我们使用从另一个部分训练获得的参数。

我们和几个方法[14,16,27,6,18,4]做了比较。[14]的方法返回一个可能是物体的时空分割的排序。我们报导了这篇论文的结果,其会产生和真值有联系的最高的4个分割。与之相反,我们的方法返回单一的前景,因为它能自动产生前景物体。我们还记录了其他两种基于似物性的方法[16,27]。

我们还与最好的背景减除的方法[4]和两个最好的基于点跟踪的方法[6,18]做了比较。我们分别使用作者提供的实现。由于后面的方法是用来产生多个分割的,我们只记录和真值最相符的那个结果。

结果.如表1所示。在这个数据集上,即使最好的背景减除的方法[4]表现的也很差,因为它不能处理摄像机的运动。点聚类的方法[6,18]产生的结果要好些,因为它们能处理摄像机的运动。

表1SegTrack的结果。记录显示了每帧平均的错误结果。对[14]来说,这表明单个最高的结果,由于我们是通过个人联系从作者那得到的。

我们的方法显然要优于[6,4,18],因为它能更好的处理非刚体并且把表观模型和运动模型用到了分割中去。总体上看,我们的方法和[14]差不多。这很了不起,因为我们的方法很简单,并且要快两个数量级(4.3节)。对比起见,我们也给出[14]中仅使用最高排序的分割结果。在全自动模式下,他们的方法在非洲猎豹和猴子上完全丢失了物体。最近的方法[27]获得的结果比我们要好,但是他们的速度要慢多了。

图5展示了分割5个视频的结果。我们的方法精确的分割出了除了女孩的全部视频,其中女孩的视频中女孩的胳膊和腿分割丢掉了。降落伞中高的错误率是由于伞兵刚开始没有标注在前景里。主意猴子和非洲猎豹的分割结果,这代表了快速运动和非刚体变形的情况。

总体上看,我们的方法和[14,16,27]解决这个数据集比较好。这些方法无不锁定住了物体,并且精确的差异也只在边界上。考虑到它仅有5个视频,我们认为这个数据库饱和了。

4.2. You Tube-Objects

数据集.YouTube-Object[19]数据集是从YouTube上手机的一个大型的数据集,包含了10个不同类别的物体。这些视频没有任何限制并且很有挑战性,代表性的为大的摄像机运动、多样的背景、光照变化和编辑影响(淡入效果和飘动的标志)。物体则包含快速运动、大尺度和视角转换、非刚体变形以及部分情况下图像对物体的裁剪。这个数据集同样在1407个视频中的每帧上提供了感兴趣物体的包围盒。

设置.我们改造了[19]中的CorLoc评价,也就是说包围盒的比例和PASCAL的评价标准[11]相同(相交比大于0.5)。为了这个目的的评估,我们自动选取由我们算法产生结果的最大的联通区域。我们通过观察设置 的值为5.同样的权重应用到了所有的1407个视频中。

我们和[6,19]做了比较,并且按照[19]描述的方法做了性能评估。对于[6]来说我们记录了最大联通区域的重叠比(和我们在SegTrack上的方法类似)。[19]根据其他相同物体视频的分割表观相似性每次试图自动选取[6]中的一个,并且根据[2]中似物性的标准来选取。由于它每次选取一个前景分割,这个方法的结果和我们的具有可比性。

我们还使用作者提供的方法在50个视频(5/类)运行了[14],因为它在整个数据库上运行实在是太慢了。为了评估起见,我们调整了一个包围盒来适应最高排序的输出。

结果.如表2所示,我们的方法远好于[19]的结果,由28.5%提高到了50.1%。更为重要的是,我们的方法要好于分割效果最好的[6],这也验证了我们在SegTrack中的观察结果。在50个视频的数据库上,我们产生了42.0%的CorLoc,相比之下,[14]仅有28.0%.这和我们在SegTrack观察到的结果不同,也显示我们的方法在更广阔的视频上表现更好。

表2在YouTube-Object上的结果。记录显示了每类的ColLoc。顶行:方法[6]取得的最好分割结果。中间行:[19]自动分割的结果。底行:我们的结果

图5展示了结果的一些例子。猫、狗和摩托车展示了快速摄像机移动、大尺度和视角变换非刚体变形的实例。在鸟的视频中我们的方法分割出了鸟和手,它这两者均视为前景。马的例子则表明我们的方法能正确的分割某些帧中物体被图像裁剪的例子,因为它能从其他帧中传播表观模型。

4.3. 运行时间

给定光流和超像素之后,我们的方法在SegTrack数据库上达到了0.5秒/帧的处理速度而[14]要大于300秒/帧,其说采用似物性生成的方法[10]所需时间超过120秒/帧。点追踪的方法[6]需要7-44秒/帧之间,[18]要43-360秒/帧。而[16]和[27]没有运行时间的报导,也没有可运行的代码,它们的时间肯定会大于120秒/帧,因为它们也用到了[10]来生成可能的物体。

所有的运行时间都是在同一台计算机(英特尔酷睿i7 2.0GHz)上得出的,并且没有包含光流运算的时间,因为所有的算法均要计算光流。高质量的光流可以通过[22]快速的计算[<1秒/帧]。当前我们使用了TurboPiexls[15]的方法来生成超像素(1.5秒/帧),但是目前有更快的方法[1](SLIC)).

这些分析表明我们的方法比竞争者要快的多,并且实际上足够快来在大规模视频中应用。

转自:/article/1752004.html

关于此文章的解读:


[读]Fast Object Segmentation in unconstrained video

http://www.tuicool.com/articles/7JVVNv
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: