基于BP算法的3维马尔可夫随机场运动目标检测

介绍

这篇论文主要介绍一种基于BP(Beilef propagation)算法在3维空间-时间马尔可夫随机场的运用来进行运动目标检测。 对于目标检测,有两种主要的方法即提取背景和帧差法,提取背景的方法顾名思义就是需要将前景与背景分开来达到检测运动目标的目的, 但是需要大量移动相机位置来提取不同的背景;帧差法即通过前后帧的作差来检测运动目标,这个方法由于作差将前后帧不变的信息包括背景信息也删除了,因此不能定位目标的位置以及判断物体的在形状。本文提出的基于BP的3D MRF方法主要用于解决有着统一颜色的目标间难以准备检测和与背景由相似外观下的目标难以被检测跟踪的问题。

图1 在3维马尔可夫随机场模型中基于置信传播方法来检测和跟踪目标


模型构建

既然用来MRF来构建模型,由于MRF是一种无向有环的概率图模型,这里肯定是用概率的方法来求解运动目标检测的问题。视频是由一帧一帧的图像组成,而图像由像素点组成。这里的问题就成了怎么把像素点和这概率来联系上,从而才能利用MRF来解决运动目标检测的问题,当然,由于视频中涉及时间信息,也就是前一帧,后一帧之间的时间顺序关系,所以肯定是在一个(x,y,t)的空间中,所以利用3D中MRF模型。 在3D MRF中每个像素有一个隐藏状态点sj(代表一个像素的运动似然),(正是通过估计图片中这些隐藏状态点来对应到检测运动目标的工作上)和一个观测到的数据点dj(由帧间差分法计算得到的二值运动检测结果1表示有运动,0表示无运动),这样建模后,这个3维空间的联合概率为:
这里写图片描述
联合概率表示所有节点共同发生的概率,即将所有条件概率相乘。
这里的si和di分别代表状态点和数据点, ψ 是一对不同的隐藏状态点之间的状态转移函数, ϕ 是隐藏状态点和观测数据点之间的测量函数,N代表在3维空间中隐藏状态点或者观测数据点的总数。在平方损失函数下,对状态点sj最好的估计方法是后验边缘概率的平均(最小均方误差估计,MMSE估计)。
这里写图片描述
内部的加和表示sj的边缘概率:各种状态下所有其他节点对本结点影响的概率的和。
边缘概率:即某个事件发生的概率,而与其他实践无关;边缘概率是这样计算的:在联合概率中把最终结果中不需要的那些事件合并成事件的全概率而消失(在两个离散随机变量的条件下,对其中任一行或者任一列求和,得到的概率就是边缘概率)
由于联合概率包含了在3维空间中所有的状态点和数据点,所以基于内在的多变量概率分布的最小均方误差估计的计算非常困难。
所以就要利用一维马尔可夫的特征啦!!!即一个状态点只与相邻的点互相影响,这里相邻的点作者设定为6个隐藏状态点(包含时间上的2个点(前一帧以及后一帧对应位置的隐藏状态点)和空间上的4个点(也就是此状态点上下左右四个点,都在同一帧中)),如下图所示,
这里写图片描述

图2 定义一个像素邻域的3维格子框架
所以 BP算法也就派上用场啦!BP利用了局部分消息传递,把计算全局的求和或者积分,转换成了局部的消息传递,每个节点都能都过自身的状态以及邻近节点的状态做出评价,得到自身的下一状态,不断地更新最终使系统达到稳定。
首先将状态点的边缘分布计算用一个 置信度来代替边缘概率(作用:某个事件发生的概率,而与其他事件无关),每个隐藏状态点都有一个置信度。

这个置信度定义了点的运动似然的一个概率分布。
这里写图片描述
其中b(sj)即隐藏状态点sj的置信度,
这里写图片描述
其中k代表某个瞬时(时刻),即在点s j上的置信度且在瞬时k运行在点s j的所有邻域的隐藏状态点上。在点s j上的置信度是所有传入信息(M kj)的乘积和局部观测到的数据点信息( ϕ j(sj,dj))如下图3,传递的信息具体说明了每个点认定它的邻域应该有什么样的分布,从点sk到sj计算信息:
这里写图片描述
这里写图片描述

图3 (a)计算置信度 (b)计算信息

将(4)带入(5)有,
这里写图片描述
I ∈邻域(k)/j代表除了j以外的所有邻域点,再乘上来自邻域点除了(s j)所有传入信息(Mk j)以及观测数据信息( ϕ j(s j,d j)),这个乘积是由信息发送者通过传递函数 ψ j k(s j,s k)到信息接受者演化而来。
总的来说BP算法也就是
(1)通过加权乘积计算所有的局部消息
(2)节点之间的概率消息在随机场中的传递
算法过程:

  1. 随机选择相邻的隐藏状态点si,sj
  2. 从si向sj发送消息Mij
  3. 更新隐藏状态点sj的置信度
  4. 计算隐藏状态点sj的最小均方误差(MMSE)估计
  5. 判断是否所有隐藏状态点置信度被计算,否则跳到(1),直至算法收敛

在计算过程中那 ψ ϕ 究竟怎么计算呢?别慌!!!
从前面已经知道了置信度是用来定义此点是否是运动的,首先将这个置信度量化到[1,C]上(可以想象成像素点量化到[0,255])。
前面说过 ϕ 是用来描述隐藏状态点和观测数据点之间的测量关系的,而且当观测数据点dj为0时,通过帧间差分法计算表明此点不运动,并且给一个均匀分布来表示,而为1时通过帧间差分法计算表明运动,同样给定一个脉冲分布(spike:尖峰)来表示,两帧间像素强度差越大越表明此点运动的可能性。
令spj代表在点sj(p∈[1,C])上的第p个状态候补点,在观测点和状态点之间的兼容性函数 ϕ
这里写图片描述
ψ 是经过波特模型在相邻隐藏状态点之间定义的一个状态转移函数,
这里写图片描述
其中,0< θ <1, ε =(1- θ )/(C-1),并且 θ ε ,这个 ψ 函数鼓励相邻的点有相同的状态,也作为一个延时函数在缺失当前强度差时减少运动似然性。由于波特模型介绍了一个延迟项 θ ,因此一个像素不一定会像相邻的像素一样运动。空间集合点和时间集合点可能有不同的 θ ,但在测试时使用的相同的兼容性函数。
下面通过一个例子来说明整个过程。
首先随机初始化找到一个观测数据点d2,其有隐藏状态点s2,基于(7)有,
这里写图片描述
并且根据(8)定义一个状态转移矩阵 ψ
这里写图片描述
然后由(4)来计算此点的置信度
这里写图片描述
其中‘·’代表两个向量矩阵的点乘(对应元素相乘)
然后计算信息Mi j,即从s 2到s 3的信息由(6)计算(矩阵乘法即求边缘分布)
这里写图片描述
然后重复上述操作来进行迭代直到所有隐藏状态点都被计算出置信度。
也就是下图4的过程:
这里写图片描述

图4 C=2的1维信息计算
不同的BP算法从下图就能看懂啦,过程都和上述一样,只是用那些点来进行计算的差别。
这里写图片描述
图5 合成视频序列上的测试
这里写图片描述
图6 θ =0.7,C=10时,运用不同的BP算法来对随机块进行MMSE估计
对于每一帧都用异步加速信息来进行更新,四个一维的BP扫描子(从左向右,从上向下,从右向左,从下向上),都单独被执行,如下图7
这里写图片描述
图7 2维空间网格图中的BP算法
这里1维BP意味着BP算法同时一行接着一行,一列接着一列在空间网格中被执行,四个一位BP扫描置信度被‘·’操作融合在一起。即图6(a)效果。
与此相反,如果只执行时间点上的BP算法,在前向方向(HMM的前向),结果如图6(b),只聚集了一个过去的运动信息,在外观上与前向运动历史图像MHI有点类似。前向和后向的时间上的BP算法唯一的不同在于后向维持一个长度为L的滑动时间窗口,L未来帧(固定延迟)在后向时间BP中被用到,在图4中L=2。
对于每一帧,2维空间BP算法通过异步加速信息来更新,使得每个像素在某个时刻有一个置信度(运动似然分布),这个置信度随后通过时间BP算法被进化为它的时间邻域(前向或者后向)。
这里写图片描述
图8 θ =0.7,C=10时,运用不同的BP算法来对均匀矩形进行MMSE估计
上图8说明了另一个运动检测的挑战:帧间差分法只能检测带有均匀颜色的运动目标的碎片如图8(b),然而前向/后向的空时BP算法在找到整个运动目标上却有很好的效果,那是因为每个像素在空时上传播局部的帧差信息到它的邻域。如果在一个像素上检测到了改变,就指定此状态点一个最大置信度状态值作为其一个脉冲分布。如果没有检测到运动,则其所有的邻域点收到一个均匀分布置信度,中心点即此点的脉冲分布会逐渐通过转移矩阵 ψ 下降到均匀分布置信度,如下图9
这里写图片描述
图9 θ =0.7,C=10时,在k时刻的置信度,‘*’代表MMSE估计
检测效果图:
这里写图片描述
图10 两个摄像机上的实验结果

参考论文:Belief Propagation in a 3D Spatio-temporal MRF for Moving Object Detection
参考博客http://blog.csdn.net/aspirinvagrant/article/details/40862237
论文翻译

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值