try ai
科普
编辑
分享
反馈
  • 视频背景减除:一种低秩与稀疏方法

视频背景减除:一种低秩与稀疏方法

SciencePedia玻尔百科
核心要点
  • 视频背景减除可以被构建为将视频数据矩阵(MMM)分解为一个低秩背景分量(LLL)和一个稀疏前景分量(SSS)之和。
  • 这种分解是通过主成分追踪(PCP)实现的,这是一种凸优化方法,通过最小化核范数和ℓ1\ell_1ℓ1​范数来有效地解决该问题。
  • 诸如交替方向乘子法(ADMM)之类的算法通过迭代应用奇异值阈值化来估计背景和软阈值化来估计前景来解决此问题。
  • 基本模型可以通过引入额外的分量来处理光照变化,或使用张量和几何先验来建模空间结构,从而扩展以应对现实世界的复杂性。

引言

将移动的前景物体从静态背景中分离出来是计算机视觉中的一项基本任务,它支撑着从安全监控到交通分析等各种应用。虽然人类能够毫不费力地完成这种分离,但教会机器稳健地做到这一点,尤其是在光线变化和其他复杂因素的动态环境中,却是一项重大挑战。我们如何将这种直观的感知转化为一个精确、可解的数学问题?

本文探讨了一个强大而优雅的框架,它通过将视频建模为一个简单背景和稀疏前景事件集合的和来应对这一挑战。在接下来的两章中,您将发现这种现代方法背后的科学原理。“原理与机制”一章将解构核心理论,将视频场景的物理属性转化为线性代数的语言。我们将揭示低秩和稀疏矩阵的概念如何让我们构建问题,以及凸优化如何为解决方案提供一条实际可行的路径。随后,“应用与跨学科联系”一章将连接理论与实践,展示这一基本模型如何被应用、调整和扩展以解决现实世界的问题,揭示其与统计学、机器学习以及科学建模过程本身的深层联系。

原理与机制

想象一下,您正在观看一段繁华城市广场的视频。您的大脑完成了一项非凡的任务:它毫不费力地将场景分为一个稳定、持久的背景——建筑物、天空、人行道——以及一系列短暂、瞬态的前景物体——行走的人、行驶的汽车、飞翔的鸽子。我们如何教会计算机完成同样卓越的感知壮举?其奥秘在于将这种直观的想法转化为数学语言,特别是优雅的线性代数语言。

世界即为和:一种新的观察之道

让我们以一种相当直接的方式来表示我们的视频。我们取每一帧,将像素网格展开成一长列数字,然后将这些列并排堆叠,形成一个巨大的矩阵,我们称之为MMM。MMM的列代表时间,行代表像素。

核心洞见,即“顿悟”时刻,是提出这个复杂的矩阵MMM不仅仅是一堆像素值的混乱组合。相反,它是两个更简单、更结构化矩阵的和:

M=L+SM = L + SM=L+S

这里,LLL代表​​低​​秩(​​L​​ow-rank)背景,而SSS代表​​稀​​疏(​​S​​parse)前景。这个简单的方程是我们的指路明灯。它表明,如果我们能够以数学上精确的方式定义“低秩”和“稀疏”的含义,我们或许就能将观测到的视频MMM分解回其组成部分,从而有效地教会计算机像我们一样看待世界。

结构之语:从物理到矩阵

那么,是什么让我们有理由假设背景是“低秩”的,而前景是“稀疏”的呢?答案,美妙地,源于图像形成的物理原理。

低秩背景

想想我们城市广场中的静态背景。建筑物和人行道没有变化。变化的是光照:太阳移动,云彩飘过,投下不断变化的光影模式。

在静态相机下,单个背景像素记录的光强度本质上是表面固定反射率(其颜色和纹理)与入射光的乘积。物理学的一个关键结果告诉我们,对于大多数表面(称为​​朗伯体​​表面),复杂的日光变化可以惊人地用少数几个基础光照条件来近似——可以把它们想象成光照的原色。这意味着每一个背景帧,无论一天中的什么时间,都只是一小撮基本“基图像”的不同线性组合。

假设只需要ddd个这样的基图像来描述所有的光照变化。如果我们将这ddd个基图像堆叠成一个矩阵AAA,并将随时间变化的混合系数堆叠成一个矩阵CCC,我们的背景矩阵LLL就可以写成一个乘积:L=ACL = ACL=AC。矩阵乘法的一个基本性质是,乘积的秩不大于其因子的秩。由于AAA只有ddd列,CCC只有ddd行,所以LLL的秩最多为ddd。在典型的户外场景中,ddd非常小(通常小于10),而像素数(mmm)和帧数(nnn)可能达到数百万。因此,背景矩阵LLL是极​​低秩​​的(rank⁡(L)≤d≪min⁡{m,n}\operatorname{rank}(L) \le d \ll \min\{m, n\}rank(L)≤d≪min{m,n})。它包含巨大的冗余,因为每一帧都是由同一小组构建块构成的。

稀疏前景

前景的结构更容易理解。像人、汽车和鸽子这样的移动物体在任何给定帧中通常只占据总像素的一小部分。如果我们创建一个只包含这些前景物体的矩阵SSS,它的大部分条目将为零。这正是​​稀疏​​矩阵的定义。

伟大的分离:一个身份之谜

所以,我们有了我们的模型:M=L+SM = L+SM=L+S,其中LLL是低秩的,SSS是稀疏的。但这 dẫn đến一个艰巨的谜题。仅给定观测到的视频MMM,我们如何唯一地恢复LLL和SSS?似乎有无穷多种方式可以将MMM分解为两个矩阵。

考虑一个棘手的场景:一辆车停在昨天还是空着的车位上。在我们的视频持续时间内,这辆车是静止的。相对于昨天,它是一个“前景”物体,但相对于它在视频中自身不变的存在,它又是“背景”。仅代表这辆车的矩阵既是稀疏的(它只占据一小块像素),又是低秩的(它是一个静态物体,所以它的矩阵是秩为1的)。这辆车应该属于LLL还是SSS?算法面临着身份危机。如果信号的一部分既可以被描述为低秩又可以被描述为稀疏,那么分解就不是唯一的。

这揭示了一个对可分离性的深刻要求:LLL和SSS的结构必须根本不同,或者说​​不相干​​。低秩背景LLL必须是“铺开”和稠密的,其能量分布在所有条目中。它不能是“尖峰状”的。稀疏前景SSS就其本质而言是“尖峰状”的,其能量集中在少数非零条目中。​​不相干性​​原则将这一要求形式化,确保低秩矩阵的世界和稀疏矩阵的世界足够不同,仅在零矩阵处相交。正是这种根本的不相容性让我们能够区分它们。

炼金术士的秘密:从组合学到凸性

有了不相干性原则,我们现在可以尝试解决这个分离难题。最直接的方法是搜索加起来等于MMM的(L,S)(L, S)(L,S)对,使得LLL具有绝对最低的秩,SSS具有最少的非零条目(即“最稀疏”)。这可以写成一个优化问题:

min⁡L,Srank⁡(L)+λ∥S∥0subject toL+S=M\min_{L,S} \operatorname{rank}(L) + \lambda \|S\|_0 \quad \text{subject to} \quad L+S = ML,Smin​rank(L)+λ∥S∥0​subject toL+S=M

这里,∥S∥0\|S\|_0∥S∥0​是所谓的ℓ0\ell_0ℓ0​-范数,它简单地计算SSS中的非零条目数,λ\lambdaλ是一个平衡低秩和稀疏性之间权衡的参数。不幸的是,这个问题是一个计算噩梦。秩函数和ℓ0\ell_0ℓ0​-范数都是非凸和不连续的,这意味着可能解的景观充满了无数的山丘和山谷。试图找到绝对最优解是NP-难的,类似于检查天文数字般的组合数量。

这就是现代数据科学中最 아름다운 的思想之一——​​凸松弛​​——发挥作用的地方。我们用它们最接近的光滑、凸的近似来取代那些锯齿状、难以处理的函数——就像用一个单一、光滑的碗来取代一个尖峰耸立的山脉。找到碗底是容易的。

  • 对于LLL的秩,其凸代理是​​核范数​​,写作∥L∥∗\|L\|_*∥L∥∗​。核范数不计算非零奇异值(矩阵的“能量模式”)的数量,而是对它们的大小求和。这种新的惩罚项鼓励矩阵的能量尽可能集中在少数几个模式中,从而有效地促进了低秩结构。

  • 对于SSS的稀疏性,其凸代理是​​ℓ1\ell_1ℓ1​-范数​​,写作∥S∥1\|S\|_1∥S∥1​。ℓ1\ell_1ℓ1​-范数不计算非零条目的数量,而是对它们的绝对值求和。这种惩罚项具有将较小值完全推向零的卓越特性,有力地促进了稀疏性。

我们不可能的组合问题被转化为一个可处理的凸问题,称为​​主成分追踪(PCP)​​:

min⁡L,S∥L∥∗+λ∥S∥1subject toL+S=M\min_{L,S} \|L\|_* + \lambda \|S\|_1 \quad \text{subject to} \quad L+S = ML,Smin​∥L∥∗​+λ∥S∥1​subject toL+S=M

这是一个我们实际上可以解决的问题!我们已经把铅变成了金。

运行机制:一场收缩之舞

计算机是如何解决这个凸问题的?最优雅的算法之一是​​交替方向乘子法(ADMM)​​。你可以把它想象成两个专家之间的合作舞蹈,他们轮流清理视频矩阵MMM。

想象一下原始视频MMM是一个堆满了两种物体的房间:大型、形状平滑的家具(背景)和小型、尖锐的乐高积木(前景)。

  1. ​​背景专家的回合:​​首先,背景专家进来。它看着当前的混乱(最初是整个视频MMM),并试图只看到家具。它通过应用一个称为​​奇异值阈值化(SVT)​​的操作来实现这一点。它分析场景的主要形状和能量模式(其奇异值),保留最重要的那些,将它们稍微收缩,并丢弃所有次要的。例如,如果变化的模式强度为(5,2,0.5)(5, 2, 0.5)(5,2,0.5),而专家的“重要性阈值”为111,它会将它们转换为(4,1,0)(4, 1, 0)(4,1,0),有效地过滤掉最弱的模式并对其余模式进行去噪。这产生了一个干净的背景估计值,L1L_1L1​。

  2. ​​前景专家的回合:​​接下来,前景专家看着剩下的东西,即残差M−L1M - L_1M−L1​。它的工作是找到乐高积木。它对每个像素单独应用一个类似的操作,称为​​软阈值化​​。它检查残差中的每一个点。如果一个点的值很大(可能是乐高积木),它会保留下来但稍微收缩。如果它的值很小,它就假定这只是灰尘并将其设置为零。这产生了一个干净的前景估计值,S1S_1S1​。

他们重复这场舞蹈。背景专家看着M−S1M-S_1M−S1​,前景专家看着M−L2M-L_2M−L2​,依此类推。在每一步,他们来回传递剩余的残差,每一次传递,他们对家具和乐高积木的估计都变得更加 refined。这个优美的迭代过程收敛到一个状态,房间被完美地分离成一个干净的背景LLL和一个稀疏的前景SSS。

从优雅理论到纷繁世界

这个过程不仅仅是一种直观的启发式方法。它有严格的数学定理支持。在适当的条件下——即背景L0L_0L0​是不相干的,并且S0S_0S0​中的稀疏误差足够随机——这种方法​​可被证明地保证​​能够精确地恢复真实的L0L_0L0​和S0S_0S0​。看似任意的调整参数λ\lambdaλ也并非偶然。理论告诉我们,最优选择是λ=1/max⁡(m,n)\lambda = 1/\sqrt{\max(m,n)}λ=1/max(m,n)​,这个值根据问题的几何结构完美地平衡了惩罚项。

当然,现实世界总是比我们的模型更混乱。

  • ​​如果前景不是随机的呢?​​如果一个大物体静止时间过长,它开始看起来像一个低秩背景分量,违反了不相干性假设并破坏了模型。类似地,如果一个前景物体突然填满整个屏幕,它就不再是稀疏的,该方法将失败。
  • ​​移动的阴影或渐进的光照变化怎么办?​​这些现象是稠密的(影响许多像素),但不是静态背景的一部分。基本的L+SL+SL+S模型在这里会遇到困难。然而,这个框架的美妙之处在于其可扩展性。我们可以引入第三个分量EEE来建模这些效应。由于光照变化是平滑且低维的,我们可以将EEE建模为存在于一个固定的低维子空间中,并相应地对其进行惩罚。我们的模型变成M=L+S+EM = L + S + EM=L+S+E,算法现在可以将视频分离成三个分量:一个静态背景,一个稀疏前景,以及动态光照效应。

这种将复杂信号分解为更简单、结构化部分之和的能力,是现代科学和工程中最强大的思想之一。通过从简单的物理直觉出发,并将其转化为线性代数和优化的语言,我们可以设计出能够执行看似神奇任务的算法,比如背景减除。

应用与跨学科联系

在上一章中,我们深入探讨了一个看似简单的数学思想的核心:将一个矩阵分解为其低秩和稀疏分量。我们看到,一个看似复杂、动态的场景,通常可以被理解为一个简单、可预测的背景和少数几个令人惊讶的异常事件之和。但事实证明,这远不止是一段优雅的数学。它是一个强大的透镜,一种新的观察方式,使我们能够解决各种各样的现实世界问题。正是在这里,在抽象理论与纷乱现实的交汇处,科学的真正魅力得以展现。

我们的探索将带领我们从观看监控摄像头的平凡任务走向数据科学的前沿,揭示线性代数、统计学、几何学以及科学建模过程本身之间深刻且常常令人惊讶的联系。

原型:在监控中洞见未见

让我们从最直接、最直观的应用开始:一个盯着固定场景的摄像机。想象一个监控摄像头正在监视一个安静的大厅。一帧又一帧,画面的绝大部分——墙壁、地板、家具——保持不变。一个人走了过去。从摄像头的角度来看,这是一场像素值变化的風暴,但它只是宁静海洋中的一场局部风暴。

这种物理情境完美地映射到我们的数学框架上。如果我们取每个视频帧,将其拉伸成一长列数字,然后将这些列并排堆叠形成一个大的数据矩阵DDD,我们能说出它的结构有什么特点吗?静态背景在每一帧中都是相同的,这意味着所有对应于背景的列都是相同的。一个所有列都是单个向量副本的矩阵,正是秩为一矩阵的定义。所以,背景分量LLL非常简单;它的秩为1。另一方面,走过的人在任何给定帧中只影响一小部分像素。这个分量SSS是稀疏的。整个视频,本质上就是D=L+SD = L + SD=L+S。

那么,我们的任务就是执行这种分离。我们如何找到隐藏在数据中的那个“真实”的背景图像?像奇异值分解(SVD)或固有正交分解(POD)这样的方法非常适合这个任务。它们分析数据矩阵,并找到捕获视频中随时间变化的大部分“能量”的最主要模式,或称“模态”。由于背景是恒定且普遍存在的,它包含了视频能量的绝大部分。第一个、能量最强的主成分,将在很大程度上近似于静态背景本身。通过将我们的数据投影到这个单一分量上,我们构建了一个完美的、干净的背景模型。剩下的——残差——是所有不符合这个简单模型的东西:移动的人,即前景。我们教会了机器区分无趣与有趣。

模型与现实之舞

然而,现实世界很少如此干净利落。一个简单的D=L+SD = L+SD=L+S模型是一个美丽的起点,但它的假设很快受到现实的挑战。这正是真正的科学开始的地方——在 refining 我们的模型以更好地捕捉世界复杂性的舞蹈中。

例如,当背景不完全静态时会发生什么?考虑日出时缓慢、温和的变化,整个场景的光照逐漸改变。一个假设单一、不变背景图像的秩一模型将会失败。渐变将被视为误差、残差,整个场景可能会被错误地标记为“前景”。

我们必须放弃我们的方法吗?完全不必!我们只需要一个更复杂的背景模型。我们可以不假设整个场景有一个静态背景,而是为每个像素独立地建模其生命故事。我们可以假设每个像素的颜色值随时间遵循一个简单的线性轨迹——变得稍微亮一点或暗一点[@problem e_id:3275368]。使用经典的统计方法最小二乘法,我们可以为每个像素的时间历史拟合一条直线。现在,“前景事件”被重新定义了:它不再是与静态图像的偏差,而是与像素自身预期线性路径的剧烈偏离。这将我们的问题与时间序列分析和回归的广阔领域联系起来。

现在考虑另一个挑战:一盏灯突然打开。这个变化是全局性的,立刻影响到每一个像素。它不是稀疏的,所以不适合放在SSS中。但它也不属于旧背景的模式,所以也不适合放在LLL中。标准的RPCA可能会混淆,无法正确分离场景。解决方案非常直接:如果我们的模型被一个物理事件搞糊涂了,那我们就教模型了解那个事件!我们可以将我们的方程扩充为M=L+S+CM = L + S + CM=L+S+C,其中我们引入一个新的分量CCC,专门用来捕捉全局光照变化。我们可以将其建模为一个特殊形式的秩一矩阵,C=1b⊤C = \mathbf{1} b^{\top}C=1b⊤,它在数学上表示“在每个时间ttt,一个单一的亮度偏移btb_tbt​被加到所有nnn个像素上”。通过将这种物理洞察力加入到我们的数学公式中,我们使我们的工具变得更智能、更鲁棒。

超越矩阵:张量与先验的丰富性

我们的模型改进之旅仍在继续。到目前为止,我们一直将视频帧“扁平化”为长向量。这样做很方便,但它丢弃了图像固有的空间结构。此外,对于彩色视频,红色、绿色和蓝色通道是高度相关的。独立处理它们是浪费的。

这就是我们从矩阵走向张量的地方。一个彩色视频更自然地表示为一个三阶数据张量:(高度 ×\times× 宽度 ×\times× 通道/时间)。这保留了固有的结构。要在这个更高维的对象中找到“低秩”背景,我们需要新的数学工具。t-SVD框架和管状核范数的概念是矩阵SVD和核范数的张量类似物,使我们能够同时在时间和颜色维度上找到并促进低秩结构。这代表了向更全面的分析的飞跃,将视频不视为扁平向量的序列,而是作为一个单一的、结构化的体积对象。

即使有了完美的背景模型,我们对前景SSS的模型仍然相当朴素。ℓ1\ell_1ℓ1​范数鼓励稀疏性——意味着非零像素很少——但它没有形状的概念。一个有效的前景物体(一个人)和无意义的椒盐噪声可能具有相同的稀疏性惩罚。我们从经验中知道,现实世界的物体通常是连续的。它们形成相互连接的“斑点”。

我们如何将这种几何直觉教给我们的算法?我们可以在我们的优化问题中添加另一个惩罚项:前景的全变分(TV)范数,∥S∥TV\|S\|_{\mathrm{TV}}∥S∥TV​。TV范数惩罚相邻像素之间的大梯度。这鼓励产生的前景SSS是分段常数的,形成我们所期望的斑点。这里的几何洞察力是深刻的:对于二值图像,最小化TV范数等价于在给定面积下最小化检测到形状的周长。这自然地不利于分散、破碎的像素(它们有巨大的总周长),而有利于紧凑、连接的形状。我们已将关于物理世界的一条基本先验知识直接编码到我们的数学中。

運動中的算法:實時處理與魯棒性

对于许多应用,如实时交通监控或安全警报,我们不能等到视频录制完毕才进行分析。我们需要实时得到答案。这需要从“批量”处理转向“在线”或“递归”算法。

在线方法如ReProCS(递归投影压缩感知)不是计算一个巨大数据矩阵的SVD,而是在一个优雅的反馈循环中逐帧处理。在任何时刻,它都维持着一个背景子空间的估计。当一个新帧到达时,它首先将该帧投影到这个子空间的正交补上。这一步就像一个滤波器,强力抑制已知的背景,留下一个主要是前景和噪声的信号。从这个残差中,它可以鲁棒地估计稀疏前景。然后,奇迹发生:它使用这个前景估计来从当前帧中创建一个“干净”版本的背景。这个干净的背景随后被用来更新和完善下一帧的背景子空间模型。这是一个能够动态学习和适应、跟踪缓慢变化的世界的系统。

这些方法的鲁棒性甚至更进一步。如果相机有坏点,或者一辆过路车暂时遮挡了一块背景怎么办?我们的观测矩阵就会有缺失的条目。奇迹般地,分离仍然可以进行。因为背景LLL是高度结构化的(低秩),我们不需要看到每一帧中的每一个像素就能知道它是什么。像素之间以及帧与帧之间的强相关性提供了足够的冗余信息,让算法能够“填补空白”,并从不完整的数据中恢复背景和前景。这个强大的思想,其根源在于压缩感知领域,表明通过利用底层结构,即使视力不完美,我们也能理解世界。

“好”的科学:与机器学习的联系

在开发了所有这些复杂的模型之后,一个基本的科学问题仍然存在:我们如何知道它们是否好?我们如何以公平和定量的方式比较一种算法与另一种?这就是我们的旅程与统计学和机器学习的基础相连接的地方。

为了评估性能,我们需要一个基准事实(ground truth)——一个手动标记的视频,其中每个像素都被明确标记为前景或背景。然后我们可以将我们算法的预测与这个事实进行比较。这种比较的语言来自检测理论。我们计算我们的成功和失败:

  • ​​真阳性 (TP)​​: 我们正确识别的前景像素。
  • ​​假阳性 (FP)​​: 我们错误地称为前景的背景像素(误报)。
  • ​​假阴性 (FN)​​: 我们错过的前景像素。

从这些简单的计数中,我们推导出能够细致讲述我们算法行为的指标。​​精确率​​ (P=TPTP+FPP = \frac{\mathrm{TP}}{\mathrm{TP} + \mathrm{FP}}P=TP+FPTP​) 告诉我们,在我们标记的所有像素中,有多大比例是正确的。它是衡量准确性的指标。​​召回率​​ (R=TPTP+FNR = \frac{\mathrm{TP}}{\mathrm{TP} + \mathrm{FN}}R=TP+FNTP​) 告诉我们,在所有存在的真实前景像素中,我们找到了多大比例?它是衡量完整性的指标。

这两个指标往往处于紧张关系中。一个过于谨慎的算法可能有高精确率但低召回率,而一个过于激进的算法则可能有高召回率但低精确率。​​F1F_1F1​-measure​​,即精确率和召回率的调和平均数,提供了一个单一、平衡的分数来评判整体性能。这个严谨、定量的框架让我们能够超越 anecdotal 证据,参与到假设、测试和比较的真正科学过程中。

从一个简单的矩阵分解出发,我们穿越了一个涉及线性代数、统计学、数值优化、张量微积分、几何学和机器学习的领域。视频背景减除的故事是现代数据科学的一个缩影:一个在观察世界、创建数学模型来描述它、以及开发计算工具来实现这些模型之间的持续、创造性的相互作用。它证明了在复杂数据中发现简单结构的统一力量。