sdsdd

导航

前景监测

转 前景目标检测总结 1

可以简短地将问题概括如下:

  • 对静态背景进行前景提取
  • 对动态视频进行前景提取
  • 对晃动视频进行前景提取
  • 对多视角的视频进行有效的前景提取
  • 前景提取的作用(群体性事件的预警?)

对静态背景进行前景提取

对于静态的背景,我们可以采用高斯混合模型(以下推理部分主要来自[1])利用视频每一帧的信息拟合出一个背景,然后利用背景差分的办法提取出前景目标。记每一帧的图像中某一个点的像素值为序列X={X1,X2,...,Xt},其中Xi是相互独立的随机统计过程。

由于固定场景中,图中像素点相对稳定,假设每个像素点均服从正态分布,一般地,我们可以用K个正态分布去描述一个像素点,K个状态中一部分表示像素点为背景时候的状态,一部分表示像素点为前景时候的状态。为了减少计算量,一般K值取3。

由于某个像素点的灰度值用随机变量Xt表示,其概率密度函数可以表示为: 

f(Xt=x)=i=1kωi,tη(x,μi,t,Σi,t),

 

其中η(x,μi,t,Σi,t)t时刻的第i个正态分布,其均值为μi,t,方差为Σi,t,为第i个正态分布在t时刻的权重,并有i=1kωi,t=1,其中:

 

η(x,μi,t,Σi,t)=1(2π)n/2∣∣Σi,t∣∣1/2exp(12(xiμi,t)TΣ1i,t(xiμi,t)),


上式中n表示Xt的维数,由于本文算法在提取前景目标的时候采用的是灰度图像,所以我们可以取n=1。首先初始化模型的参数,设μ0表示图像序列X={X1,X2,...,Xt}中某个像素点的平均灰度值,σ20为其对应的平均均方差,即:

 

 

μ0=1Nt=0NXt,σ20=1Nt=0N(Xtμ0)2,

 

上式中N表示视频的帧数,初始化ωi=1/k。接下来,为了区分前景和背景图像,我们需要定义一个匹配函数χ(Xi,t): 

χ(Xi,t)={1,∣∣Xi,tμi,t∣∣Dσi,t10,∣∣Xi,tμi,t∣∣>Dσi,t1,


χ(Xi,t)=1,我们称当前像素值Xi,t与其模板匹配,否则称为不匹配。上式中D为一个阈值参数,一般取2.5,μi,t表示Xi,t的第i个正态分布的均值,σi,t1类似地定义。如果Xi,tK个正态分布中存在匹配的话,说明Xi,t满足一个或多个正态分布的描述,匹配的分布我们按下式对分布进行更新,若不匹配的分布保存原值:

 

 

μi,t=(1ρ)μi,t1+ρXi,t,σ2i,t=(1ρ)σ2i,t1+ρ(Xi,tμi,t1)T(Xi,tμi,t1),ωi,t,k=(1α)ωi,t1,k+αMi,t,k,

 

其中α表示更新率,α越大更新速率越快,但是为了减少引入更多的背景噪声,一般选取较小的值,ρ表示参数的更新率,定义为ρ=α/ωi,t,对于匹配的正态分布Mi,t,k取为1,否则取为0,。如果像素点Xi,t和所有的正态分布均不匹配,说明Xi,t很可能是运动目标出现的点,或者运动目标移动过后显现的背景点,此时我们对K个正态分布中权重最小的那个分布的均值用Xi,t替代,另外初始化一个较大的标准差σ,其余正态分布保证不变,然后权重按上式权重更新公式进行更新。(取Mi,t,k=0)

考虑一个视频图像,由于我们考察的背景是相对静止的。所以,对于每一个背景点,其方差是比较小的,根据上述更新公式可以知道,用于描述背景点的高斯分布的权重不断增大,考虑这两个特点,我们可以建立如下前景提取办法,首先对权重进行归一化处理:

 

ωi,t,k=ωi,ti=1kωi,t,i=1,2,...,k

 

接下来,根据ωi,t,k/σi,t,k,从大到小对每个像素的K个正态分布进行排序。注意到,权重越大,方差越小的话,比值ωi,t,k/σi,t,k越大,即成为背景点的可能越大。我们设置一个区分点s,令排序前s个正态分布作为背景模型,剩下的作为前景模型,

 

s=argmink{i=1kωi,t>T},

 

其中T为一个自定义的阈值,一般经验取值为0.85,最后,对于目标视频,我们对每个像素点的Xi,t与前s个描述背景的正态分布进行匹配,如果存在一个匹配,那么令该点为背景点,否则令其为前景点。

我们利用本节模型对pedestrian视频进行处理,得到如下结果: 
这里写图片描述

结果一般,差强人意。上图分别为视频在第18帧到第21帧的分离结果,其中图(a)是分离结果,图(b)是视频原图。可以看出距离摄像机较近的部分分离效果良好,较远的目标分离效果欠佳,总体而言可以较好地提取前景目标。

对动态视频进行前景提取

对于动态背景的视频,我们不妨假设背景的变化幅度是较小的。这样我们可以把它看作是一个微小的扰动(黔驴技穷),我们可以利用图像的形态学处理和中值滤波对背景进行处理,结合本节的高斯混合模型对waterSurface视频处理可以得到如下结果: 
这里写图片描述

上图中(a)为直接用本节的高斯混合模型得到的分离结果,图(b)为进行形态学处理和中值滤波之后的结果,可以看出图(b)的结果基本消除了背景的动态扰动,具有较好的结果。

晃动视频的前景目标提取

我们不妨假设晃动的幅度不大,此时我们可以将这样的幅度变换近似地看成是仿射变换。如下图所示: 
这里写图片描述 
将视角统一后,我们便可以把晃动视频的情况转换为固定视角的视频,由此可以由上一节的高斯混合模型得出前景分离结果。下面我们将以目标视频的第一帧作为基准,将其他帧的视频全部矫正为第一帧的视角,注意到的是我们考虑的视频必须是短时间的,这样能保证,其他帧到第一帧的仿射变换总是存在的(更进一步地,实际上只要保证对应的像素点至少有两对即可)。

我们设基准图像上的像素为(x,y)T,其它帧上对应的像素点为(x,y)T,于是有如下仿射变换:

 

⎛⎝⎜xy1⎞⎠⎟=⎛⎝⎜a11a210a12a220b1b21⎞⎠⎟⎛⎝⎜xy1⎞⎠⎟,

 

利用对视角变化等仿射变换具有强大稳定性的SIFT算法我们可以获得足够多的特征点,下面我们利用获得的足够多的特征点来拟合求解出仿射变换对应的变换矩阵。以变换矩阵的第一行为例,我们有a11x+a12yb1=x,若有N组特征点,那么有:

 

a11x(j)+a12y(j)+b(j)1=x(j),j=1,2,...,N

 

上式可以简写为Xa=c,其中a=(a11,a12,b1)T,以及有X=(x(j),y(j))RN×2c=x(j),由于这一般是一个超定方程,由最小二乘法的思想我么可以将问题转换为求解minaXac22

这里写图片描述

E=Xac22,展开得E=aTXTXa2aTXTc+cTc,下面对E做关于a的偏导有: 

aE=2(XTXaXTc)=0a=(XTX)1XTc

 

分析可知,当a=(XTX)1XTc的时候,E可以取得最小值,注意到XTX可逆的概率为1,即使不可逆也可以重新获取一次特征点。类似地,我们可以求解完整的仿射变换矩阵a

这里写图片描述

获得上图后不能马上用高斯混合模型进行处理,这是因为可以看到校正后的视频(图(b))有大量的黑边,如果直接套用高斯混合模型,将会把黑边的变化造成的噪声也识别出来。我们必须找到一个合适的视角区域,由于我们可以认为处理的视频是一个较短的视频,基于这个假设,我们可以取所有校正后的视频的公共重叠部分。可以知道,由假设,这个公共重叠部分是足够大的。

这里写图片描述

获得重叠的视角区域后,我们对所有校正后的视频都进行裁剪,接着利用高斯混合模型可以获得前景目标。最后我们利用在校正时候获得的变换矩阵a,重新构造一个仿射逆变换a1,最终将前景目标的晃动复原,结果如下图所示:

这里写图片描述

多视角的前景目标提取

多个视角的视频能给我们更多的信息,我们可以根据这些信息对前景目标进行三维重建。如下图所示,我们令绿色区域为我们的三维空间中的观测区域,以三个摄像机为例。考虑观测空间中的一个体像素v,若它和前景目标相交,则称为存在,否则称为不存在。用如下概率表示: 

P{Ev(i)=1|I},


其中i表示第i个体像素,I是所有观测视频的即可,即I={I1,I2,...,IN},其中的Ik表示第k个观测视频图像。 
这里写图片描述

 

P{Ev(i)=1|I},由贝叶斯公式有:

 

P{Ev(i)=1|I}=P{I|Ev(i)=1}P{Ev(i)=1}P{I}=P{Ev(i)=1}k=1NP{Ik}k=1NP{Ik|Ev(i)=1}=P{Ev(i)=1}k=1NP{Ik}k=1NP{Ev(i)=1|Ik}P{Ik}P{Ev(i)=1}=1P{Ev(i)=1}N1k=1NP{Ev(i)=1|Ik}

 

注意到1/P{Ev(i)=1}N1是空间本身前景目标的存在与否决定的,与观测无关,是一个常数,换句话说,我们有:

 

P{Ev(i)=1|I}k=1NP{Ev(i)=1|Ik},

 

由此,如上图所示,假设我们知道三个摄像机的相对位置,我们就可以连结摄像机和体像素在每个Ik上做投影得到如图所示的红色区域,我们用红色区域中非0的值的像素数量与红色区域的像素数量的比值来近似表示P{Ev(i)=1|Ik}。由此,我们可以遍历所有的像素体并计算P{Ev(i)=1|I},设置一个阈值T,令: 

χ(i)={1,P{Ev(i)=1|I}T0,P{Ev(i)=1|I}<T,

 

由此即可完成三维重建,得到一个信息更加完善的前景目标检测模型。

群体性事件的自动判别

由于是我一个人在比赛,实在没有时间,所以这部分说实话,纯水系列可以这么说,ε=(´ο`*)))唉

监控视频对群体性事件的自动监控是非常有意义的一项研究,本文以人群逃散为例,来研究这个问题。我们假设人群逃散的时候,人群的形态、速度大致相同,那么我们可以考虑一种平均的情况,即只需要研究一个人逃散状态的变化特点即可。

考虑全局前景目标的重心变化,对观测视频利用第一节中的高斯混合模型进行前景提取后,由于只需要观测重心的变化,所以我们可以对全局做一个模板足够大的中值滤波,这样的处理可以得到更为准确的重心(去掉噪声点),然后对t时刻视频中所有前景目标的位置求得其重心(Gx,t,Gy,t)。由于,两帧之间的时间间隔相同,所以重心的移动距离st即可以表征人群的平均移动速度,用下式表示: 

st=(Gx,tGx,t1)2+(Gy,tGy,t1)2−−−−−−−−−−−−−−−−−−−−−−−−−−−√,

 

我们也可以设置一个阈值T,当st>T,t[t1,t2]时表示[t1,t2]时间段可能发生人群逃散情况。下面考虑两种情况来验证模型,首先考虑的是逃散方向和摄像机在同一直线上的情况: 
这里写图片描述 
对于逃散方向和摄像机共线的情况,由于共线关系,随之时间的推移,前景点数量大大增加,而且重心前期的位置变化也会较为集中,从下图图(a)可以看到,前期时,重心在一个小区域内密集变化。目标奔跑时,重心位置显著变化,由图(b)可以得到在大约65帧时候开始奔跑,与原视频情况吻合。 
这里写图片描述

这里写图片描述 
对于逃散方向和摄像机垂直的情况,由于垂直关系,随之时间的推移,前景点数量变化,而且重心的位置变化较为分散,从下图图(a)可以看到,目标奔跑时,重心位置显著变化,由图(b)可以得到在大约37帧时候开始奔跑,与原视频情况吻合。 
这里写图片描述

posted on 2017-09-22 19:21  代码公主  阅读(174)  评论(0编辑  收藏  举报