上篇文章所指定的是对一个不包含动态背景的监控视频进行前景提取,用基于改进的五帧帧差和混合高斯模型相融合的前景提取算法是可以很好实现前景提取的。但本文中要求在包含动态背景的监控视频提取前景目标,虽然上篇文章中的算法也能用于此问,但效果不太理想,噪声较多。

我们认真分析了上篇文章提出的算法在处理本问题时效果不好的原因,分析发现可能以下因素造成了检测效果不佳:(1) 背景图像不是完全静止的,由于风的影响,会有树木、草等的摇动,这种周期性运动对运动目标的检测造成很大的不便 ;(2) 运动目标部分区域的灰度有时和背景的灰度十分接近,使得由图像差值法得到的目标区域出现大面积空洞;(3) 由于天气变化,背景图像必须有合适的更新策略。综上分析我们发现,提取算法的难点主要不在于“减运算”本身而在于背景动态模型的建立,即如何从包含运物体的视频序列中提取出背景。

基于上述分析,我们又提出了一种能很好解决包含动态背景的监控视频提取前景目标的算法,即基于高斯核密度估计的背景建模和改进的五帧帧差法相融合的运动目标检测算法,由于保留了背景的多个模态,降低了误检率,该算法可处理多种复杂背景(如存在摄像机抖动,树叶摇动等情形),而且该算法引入了面积阈值来消除大的噪声,判断背景是否发生了突变,从而更新背景样本集,适应背景突变视频中的前景目标精准提取。

1 高斯核密度估计的背景建模算法

1.1核密度估计原理

核密度估计方法实际上就是对离散的背景样本点,在一个窗宽范围内插一个核函数,多个核函数通过权值累加可得到光滑的背景曲线分布。核密度估计方法是目前最有效的无参密度估计方法。核密度估计方法跟直方图统计技术有相似之处,对一组采样数据,按照相等的区间划分成若干份,每份称作一个“条块(bin)”,根据bin把数据分成不同的组,而每个bin的概率值是每组中数据出现的个数与总样本数的比值。

定义:设X是一个d 维的欧氏空间,此空间上的函数定义域到值域的映射为:X×X→R,如果以下形式的函数

Kx=kx2=K(xT*x)        (1)

在[0,1]上非负,单调递减,且0+∞k(x)dr<∞,则函数k(x)被称作核函数,式中k(*)定义在区间[0,∞],称为核函数k(x)的剖面函数,(*)表示向量的内积运算。有很多种常用的核函数,如uniform,triangular, biweight, triweight, Epanechnikov,normal等,各种核函数的图形如图1所示:

图1 各种核函数的图形

核密度估计一般是给定一维空间上一组数据点的集合s={xi}(i=1,2,....n),其未知的概率密度函数为f(x),取核函数为kh(x),则在x点处的密度可以按下式计算。

        (2)

式中x是核函数的中心点。

在核密度估计方法中,采样点真实状态的估计值是以该点为中心的所有核函数的平均叠加,图3是核密度估计原理的示意,其中图上虚线是高斯核函数,一共有9个,实线是核函数的平均叠加组合,即密度函数的估计(横轴、纵轴没有实际含义)。从图2上可以看到,核密度方法能够估计密度函数是多峰分布的情况。

图2是核密度估计原理的示意

1.2 核密度估计背景建模

我们采用高斯核函数形式的核密度估计方法对背景进行建模。其方法为:令x1, x2 …,xN为某像素在最近前N帧中的灰度值,xt为该像素在当前t时刻的像素值,则该像素的概率密度函数用下式的一组高斯核函数的线性组合进行估计:

     (3)

公式实质上是用高斯核函数在样值点x1, x1,…xN作内插形成的连续函数。用多模态背景模型描述的即时背景不能再由一幅图像来完全表示,因此,背景减提取运动物体也不再是简单减运算,而是通过阈值化来实现,由公式计算得到,当前帧图像中每一像素点为背景的概率,再利用下式得到前景物体检测的二值掩码:

       (4)

其中,T为阈值,Mt(x,y)中0表示背景点,1为前景运动物体点。需要进行后续处理来得到真正的前景物体。

1.3 背景样本采集及更新

核估计算法在应用到实际场景中时,首先需要得到待估计对象的一个训练样本集。本文采用A.Elgammal等人的做法[3],利用像素的灰度值来表示采样集空间。令It(x,y)代表t时刻的图像中(x,y)处的像素值,每间隔3帧的两帧图像做差分运算,根据差分结果的取舍,从而得到背景图像的样本集:

式中Tb为样本选取阈值。在这里帧差绝对值大于阈值的点不用于密度估计,其原因是视频图像序列往往包含前景运动物体,如果所有像素点都作为背景的样本集,必将运动物体区域作为背景像素点计算进去,从而产生误判。一般说来,随着时间的推进,背景重建模型需要及时进行更新,以便快速反映运动场景的变化。本文核密度估计背景模型的更新,主要利用样本空间的更新来实现,即把视频序列的前m×n帧去掉,然后加入相同帧数的后续新的图像序列,最后由(5)计算新加入的样本,利用前文公式得到背景模型的更新。

2 算法流程

由于上篇文章中的算法在检测背景晃动的视频中会产生较多噪音,水波和树木等背景的摇动容易造成目标检测不准确,为了解决以上问题和提高前景提取的准确性,我们提出了基于高斯核密度估计的背景建模和改进的五帧帧差法相融合的运动目标检测算法。

算法步骤如下:首先用中值滤波进行图像预处理用于消除图像的噪声,然后用高斯核密度估计的背景建模算法建立动态的背景模型 ,再应用背景差分来获取前景区域,并进行阴影去除得到前景目标,再用上篇文章中提出的改进的五帧帧差法获取同一帧图的前景目标,将两幅前景目标图进行逻辑“与”运算,得到两算法融合后的前景目标图像,并用形态学处理方法消除噪声和改善运动区域提取效果。本算法流程如图3所示。

图3是算法流程图

3 算法效果分析

用waterSurface为测试对象,利用VS2013进行算法测试,图6是本文提出的基于高斯核密度估计的背景建模和改进的五帧帧差法相融合的运动目标检测算法的实验效果对比。图4中第1行为原始视频图像,原始视频拍摄环境为海边的室外场景,场景中有大海波浪的变化,草丛的摇动和风等晃动的背景,行走的人为前景目标;图4中第2行为用本算法检测出的前景目标图;第3行为对应原始视频图像的mask图。从图4可以看出,本题中提出的运动目标检测算法对如微风摆动的树叶、小波纹的海面等背景晃动的前景提取有较好的抗干扰性和适应性强,能比较完整的提取前景目标的完整轮廓,检测效果明显好于mask图。

图4目标检测对比图

本文提出了高斯核密度估计的背景建模运动目标检测方法。该方法采用了非参数密度估计理论,像素特征的概率分布不需要预先假设,同时估计出来的像素特征的概率密度函数更符合真实的背景像素的概率分布,因此能够处理多样性的动态背景场景,适应性较强。实验结果表明,该方法建模生成的背景图像中噪声相对少些,结合改进的五帧帧差法目标检测比较清晰,连通性较好,因此能够准确地提取运动目标,具有很好的检测效果。

基于高斯核密度估计的背景建模和改进的五帧帧差法相融合的运动目标检测算法相关推荐

  1. 高斯核密度估计和Ep核密度估计应用于目标检测

    目标检测,也叫目标提取,是一种基于目标几何和统计特征的图像分割,它将目标的分割和识别合二为一,其准确性和实时性是整个系统的一项重要能力.尤其是在复杂场景中,需要对多个目标进行实时处理时,目标自动提取和 ...

  2. 核密度估计python_机器学习 – 具有固定协方差的高斯核密度估计(使用python)

    我可以通过简单的运行使用scipy库执行高斯核密度估计 from scipy import stats kernel = stats.gaussian_kde(data) 但是我想将协方差修正为某个预 ...

  3. 基于高斯消元的BATS码的改进译码算法

    基于高斯消元的BATS码的改进译码算法 摘要 BATS 码的编译码原理: 改进的高斯消元的结论: 系数矩阵不满秩下可以解码部分包的情况: 摘要 BATS码:(Batched Sparse Codes, ...

  4. 【计算机视觉】基于自组织背景减除的运动目标检测算法

    本文根据M. Lucia等人的论文"A self-Organizing approach to background subtraction for visual surveillance ...

  5. 基于自组织背景减除的运动目标检测算法

    本文根据M. Lucia等人的论文"A self-Organizing approach to background subtraction for visual surveillance ...

  6. 背景差法目标识别python_运动目标检测(4)—背景差分法

    背景减法利用图像序列中的当前帧和事先确定的背景参考模型间的差异比较,来确定运动物体位置,是一种基于统计学原理的运动目标检测的方法.这种方法的性能取决于背景建模技术,Gloyer等人使用单高斯模型的思路 ...

  7. 【计算机视觉】基于Shading Model(对光照变化一定不变性)的运动目标检测算法...

    光照模型(Shading Model)在很多论文中得到了广泛的应用,如robust and illumination invariant change detection based on linea ...

  8. 基于坐标变换与随机Hough 变换的抛物线运动目标检测算法

    波条件下,高检测概率会带来高的虚警概率:而在稀疏杂波条件下, 检测效果比较好. 关键词:随机Hough 变换, 抛物线, 曲线检测 中图分类号:TN957.51 文献标识码:A 文章编号:1009-5 ...

  9. CenterFusion: 基于Radar和Camera融合的3D检测算法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨Tom Hardy@知乎 来源丨https://zhuanlan.zhihu.com/p/319 ...

最新文章

  1. WinInet, WinHttp, Winsock, ws2_32的基本解释
  2. C++_member template成员模板
  3. chrome浏览器调试手机端h5页面
  4. 检测html输入框是否一样,如何测试一个输入框
  5. 11. Leetcode 713. 乘积小于K的子数组 (数组-同向双指针-滑动窗口)
  6. 新买的笔记本电脑怎么分盘_电脑怎么增加C盘空间?黑客教你不花钱增加C盘空间...
  7. springmvc 全局编码_SpringMVC请求参数和响应结果全局加密和解密
  8. 图片上传的ajax代码,一个伪ajax图片上传代码的例子
  9. Python:创建GUI界面步骤
  10. 181002有道扇贝每日一句
  11. 【SpringBoot】最通俗易懂的消息服务
  12. EMC/EMI 测试顺利通过
  13. [oeasy]python0131_[趣味拓展]各种符号_汉语拼音符号_中文全角英文字母_中文全角标点
  14. 物联网通信技术|课堂笔记|week8|网络安全学习|加密逻辑|加密算法
  15. 软件定义和硬件重构知多少(一)
  16. 修改远程仓库地址,更换远程仓库https://www.cnblogs.com/tangshengwei/p/15843585.html
  17. mysql 连接tidb 端口_tidb安装和连接
  18. 重点算法排序之快速排序、归并排序(上篇)
  19. C#采集麦克风话筒声音
  20. bzoj1296 [SCOI2009]粉刷匠

热门文章

  1. NAT穿透技术详解(udp打洞精髓附代码)
  2. 上机作业:日历(java)
  3. 广州移动烽火HG680-LC_S905L3_安卓9.0_线刷固件包
  4. 八、jira创建一个看板项目
  5. 分米波类有哪些最新发表的毕业论文呢?
  6. R语言 创建矩阵的方式
  7. 明日书苑:12个毛笔字落款细节,可以看出一个人的书法水准!
  8. 实验二 通过SQL语句创建与管理数据表
  9. C语言extern详解必懂
  10. 动手学深度学习——8. 人物肖像画