视频检测之:利用显著运动检测的 block-sparse RPCA

来源:互联网 发布:sql server打开mysql 编辑:程序博客网 时间:2024/06/05 20:27

文献来源 Gao Z, Cheong L F, Wang Y X. Block-sparse RPCA for salient motion detection[J]. IEEE transactions on pattern analysis and machine intelligence, 2014, 36(10): 1975-1987.

传统的RPCA问题框架中,观测到的视频序列被分解成low-rank矩阵 L 和 稀疏矩阵 S 之和,其中需要注意的有两点,也是本文block-sparse RPCA 所创新的地方。

  • 关于稀疏矩阵 S 的空间分布先验知识的考虑。在传统的RPCA框架内仅仅只要求前景矩阵满足稀疏性(在信号压缩感知领域常常可见),而在实际视频检测背景分离问题中,前景区域常常具有空间连续性 spatially coherent cluster。有一系列的工作考虑这些空间信息,如 Zhou 在2013年PAMI中提出 DECOLOR 算法,将 Markov Random field 先验知识引入 RPCA框架内。虽然MRF能够考虑空间连续性,然而也会造成 over-smooth 现象和前景轮廓模糊的现象。 Xiaochun Cao 提出TVRPCA利用 total variation 正则化来引入时空域的连续性先验知识,解决动态背景和lingering 的前景问题。Mingxin Jin 提出的 graduted RPCA 也是采用TV正则化引入先验信息。除此之外,在subspace tracking 方面,也有 GOSUS 作为 GARTST 的引入空间结构先验的扩展的例子。而在压缩感知领域 Junzhou Huang 采用 group-sparse 框架引入结构信息,但是往往需要 clean background 作为 training clips。以上所综述的一些方法是博主所记得的一些,对于稀疏矩阵引入先验信息的方法。可以总结得到,加入先验信息(无论是空间先验还是时空域先验)都对于 RPCA 算法的性能有所提升。
  • 关于正则化参数的考虑。 在图像/视频分割检测领域,尺度问题 scale issue 是反复出现和需要注意的问题。写到这儿博主有想到 DL 那边的一些图像分割算法,那边的本质思想也是 multi-scale 方法。好了,言归正传,什么叫做 scale issue 问题? 由于拍摄相机远近距离不同,造成不同物体在图像中所占的大小不同,也就是所谓“不同尺度的物体”。对这些不同尺度的物体进行分割的任务,采用同样的参数往往是不合适且没有意义的。因此自然而言的想到,先用粗分割方法得到一系列的block,对于不同的block用不同的参数,这样不就实现了参数的自适应调节了吗? (可以发现现在流行的 DL 的图像分割算法的思想一直都是很自然地)
    但是我们怎么样确定block到底在哪儿,而且不同block究竟对应什么样的参数呢? 这就需要一种 hierarchical 结构。

算法的overview

  • First-pass RPCA 完成的工作:
    用传统 RPCA 方法,在 sub-sample 图像上实现 foreground 的 proposal。类似于 Proposal net 的功能。其中一定包含前景区域和一部分被错误检测成前景区域的背景区域。
  • Mind 部分的工作:
    对 First-pass 得到的前景区域进行运动显著性检测,从而判断哪些是前景区域哪些是错误检测的背景区域,而且对这些不同的 block 设置不同的 正则化参数,从而解决 Scale issue。
  • Second-pass RPCA 完成的工作:
    利用上面得到的正则化参数的值,进行 block-sparse RPCA。从而对稀疏矩阵 S 引入空间连续性约束。

因此,在本算法框架中考虑运动显著性稀疏矩阵的 block-sparse 结构,使得前景区域检测更加鲁棒,对于不同尺度信息的考虑,让前景结构的轮廓更加清晰。

算法详解

  1. First-pass RPCA
    文章提到,对原始图像进行1/4的降采样得到 scaled-down low resolution 图像,并对这个图像进行传统的基于 PCP 的 RPCA 操作。值得一提的是其中的正则化参数设置为1/sqrt(max(m,n)),这个参数足够检测出所有前景区域(包括一些背景区域)。
    可以发现,low-rank 背景矩阵对于光照、树叶摇曳之类可以很好的建模,但是前面所提到的尺度问题和显著运动问题会影响 RPCA 的效果。实际的效果表明,很多动态背景被包含入检测的前景区域,且一些前景的残留会在 recovery 的背景图像上表现为 “ghostly presence”。

  2. Motion saliency estimation 在像素级别上进行 tracking,在block级别上进行融合
    这部分是对于 First-pass RPCA (粗检测)的调整,确定其中到底哪些可能是真正的前景,哪些可能是错误检测的背景。利用 dense optical flow 对 First-pass RPCA 得到的 4*4 block 里面的所有像素点的运动进行 tracking,从而对其轨迹进行分析。对于运动显著的像素计算 显著性度量 SM。
    什么情况下可以认为像素的运动是显著的? Condition 1. 该像素运动的轨迹具有 consistent direction。 Conditional 2. 在最少3s内具有 consistent direction。符合上述两种情况的轨迹对应的像素就是具有显著性运动的像素,具有很大的可能性是前景的运动。得到了每个轨迹对应的显著性,将对应block内所有轨迹的运动显著性进行平均即可得到 block 的 SM。
    通过上述方法可以判断出 First-pass RPCA 得到的 4*4的 block 到底是不是具有显著性运动的 block,最后通过简单的 block-merging step 融合具有显著性运动的block得到更大的矩形 block structure,这样的 block structure 结构进行 Second-pass RPCA。

  3. Second-pass RPCA
    motion saliency estimation 包含在粗检测的动态背景区域被大大抑制,因此传递过来进行 secong-pass RPCA的 block structure 对应 正则化参数 应当设置比较小,从而能够捕获所有的前景的变化,不残留鬼影现象在恢复出来的背景图像上。
    这里写图片描述
    上式中Pi(S)表示从矩阵 S 中得到表示 block i 的矩阵 —— 即 步骤2 得到的融合之后的 block structure。 lambda 是对应的根据运动显著性得到的正则化参数,运动显著性越大,即lambda越小能够捕获更多的前景区域。 从第二项可以看出 Second-pass RPCA 引入空间连续性进入传统 RPCA 框架,只不过这个空间先验知识 block structure 结构位置和大小是根据 First-pass RPCA 和 Motion Saliency 步骤自动计算得到。
    类似的计算方法还是采用 Inexact ALM 算法,除了需要用 软阈值算子之外还需要采用 Block shrinkage 算子。

结语
写到这儿博主自己也感觉有些啰嗦了,好久不写博客久违的感觉。
言归正传,这个算法归根到底产生 outstanding 效果的缘由在于 Motion-Saliency 步骤,避免了 基于 MRF 先验的过平滑的缺陷,使得算法具有 尺度不变性 以及 精细的轮廓。 在 Second-pass RPCA 之前的步骤其实本质上就是在计算 到底哪个区域可能存在 foreground,让这些区域形成 block structure,最后再根据不同 block 是 前景区域的不同可能性,设置不同的正则化参数,完成 Second-pass RPCA 的检测。 总的来说,不愧是出自 pami ,必属精品。

原创粉丝点击