基于像素自适应分割的运动目标检测算法

news/2024/7/5 21:26:43

        本文是根据M. Hofmann等人在2012年的IEEE Workshop on Change Detection上发表的“Background Segmentation with Feedback: The Pixel-Based Adaptive Segmenter”,并结合自己的理解而成的,论文转载请注明出处:http://blog.csdn.net/kezunhai。
        Pixel-Based Adaptive Segmenter(PBAS)检测算法,从思路和框架上看,该算法是结合了SACON和VIBE两个算法的优势,并进行了一些细微的改进而成的,算法在检测性能上优于SACON和VIBE。可能有些朋友对SACON和VIBE不熟,下面首先分别简单介绍下SACON和VIBE算法。

      (1)SACON算法
       SACON算法通过保存视频序列的前N帧作为背景模型,对于newly coming像素,则根据式(1)与背景模型比较:


其中, Tr是一个阈值,用于表示像素值间的差异,c表示通道,对于三通道,则表示(r,g,b)。然后,进一步通过式(2)来判断是前景还是背景:


其中,Tn是阈值,一般取值2/3N*Tr即可。以上即为SACON算法的基本思想,而对于背景更新等其他细节,可以参考文献:Background subtraction based on a robust consensus method

        (2)VIBE算法
         采用了一种全新的思想来进行目标的检测,将随机原理引用到目标检测。其基本思想是对于每个像素,在半径为R的范围内进行随机采样,作为该像素点的背景模型,默认采样点为20。接着,对于新进来的像素,将其值与背景模型比较,如果下式大于或等于#min(默认取值为2):


则将该像素判为背景像素,否则为前景。

而在背景模型更新方面,VIBE采用随机选取背景模型中的一个像素点,以一定的概率用当前帧的像素值来替换,并将当前帧的像素值以一定的概率融入到背景模型的邻域中。

实验表明,VIBE算法不仅计算复杂度低、速度快、而且准确率高,尤其是作者提出VIBE+后,VIBE算法的性能得到了进一步的提高。更详细的内容请参考论文Background Subtraction: Experiments and Improvements for ViBe

有点跑题,还是回到正题来。为了对PBAS有一个整体的印象,我们来看PBAS算法的diagram,如下图所示:

                                                                            

         图的左边分别是像素分类的决策阈值更新、背景模型更新率的更新;图的右边是背景模型及背景模型邻域的更新。在背景建模阶段,PBAS算法采用类似SACON算法背景建模的方法,收集前N帧像素以及梯度幅值作为背景模型。新来像素与背景模型比较,比较方法如下式:

                                                                                                   

其中,Bk(xi)表示背景模型中的像素,R(xi)表示像素阈值,#min表示最小的匹配数目,F(xi)=1表示前景。下面重点来介绍下R(xi),这也是本文的一个重点。

         跟传统的全局阈值不一样,在PBAS算法中,每个像素的阈值都是像素相关的,不同位置的判断阈值可能不一样。PBAS算法通过计算前N帧的前N个距离的最小值的平均值来决定各个像素的阈值。具体来说,就是用D(xi)={ D1(xi),D2(xi),...Dn(xi)}表示最小距离矩阵,其中D(xi)= Min( dist(I(xi),Bj(xi))), j=1,2...N。 则对于每个像素来说,其N个最小值的平均值为:


对应的判断阈值R(xi)则通过下式来计算:


其中Rinc/dec和Rscale都是预先定义的常量。
        而背景更新部分,对于不同的像素,背景更新率也不同,作者通过下式来自适应调节背景模型的更新率:


其中Tinc和Tdec也是预先定义的常量。

          除了更新率外,论文还有一点需要提下,作者在论文中也采用了邻域更新,但是与VIBE不同。在VIBE中,背景模型中邻域的像素值是采用当前像素来更新的;而PBAS算法中,背景模型中的邻域值是采用当前像素的邻域值来更新的。
          通过上面两个像素判断阈值的自适应和背景模型更新的自适应,整个算法基本实现了non-parameter的运动目标检测。在网站http://www.changedetection.net/上,该算法的综合性能排名第三,其性能这里不再细叙,具体的可以参考相关文献。而根据changedetection上提供的测试环境和结果:~48 fps (average on the whole database) with a C++ implementation running in three threads on a core i7 3.5 GHz,在I7(8核啊,算法也采用了多线程技术)上可以达到48fps,个人也测试了下,算法的检测结果比较优秀,而且对缓慢的光照变化具有较强的鲁棒性,环境适应能力也比较强,但是处理速度上还是不太理想,通过优化可以达到16fps左右,当然公司的电脑比较落后,话说是2007年左右的,具体配置没查看。
          总体来说,PBAS算法是一种性能比较优越算法,该算法本身结合了SACON和VIBE算法的优势,兼具两者特性,值得进一步关注。


http://www.niftyadmin.cn/n/3309987.html

相关文章

[转]this和getApplicationContext区别

this和getApplicationContext区别 public class MyActivity extends Activity { public void method() { mContext this; // since Activity extends Context mContext getApplicationContext(); mContext getBaseContext(); } }this 是因为Activity 扩展…

腾讯发布Q3财报;微软收购聊天机器人创业公司XOXCO

福特与沃尔玛合作,开展自动驾驶汽车送包裹试验;美国运营商称,5G手机可能不会很快亮相。 1.腾讯发布Q3财报,金融业务成亮点 14日晚间,腾讯发布了2018年第三季度业绩。财报显示,腾讯第三季度收入805.95亿元…

大学计算机系三年论文6000字,计算机论文6000字范文_计算机论文_计算机应用论文...

电脑信息管理论文,6000字。 写了什么样的点?计算机信息管理专业毕业论文计算机信息技术的管理尹全喜摘要:如何在计算机中积累大量的信息数据,构建稳健的信息系统是一个需要研究的话题。 本文概述了信息系统和常规信息系统结构&…

iphone开发学习运行的第一个例子

近来,抽空看了下Objective-C和IOS开发的相关教程,初衷是因为对这些比较感兴趣,本文是参考《Iphone开发基础教程》编写的一个例子。 首先运行XCode,新建一个Single View application,如下图所示: 并取名为:Button_Fun。…

别做被“干掉”的老员工

01 你觉得怎么样的人,在公司里地位最不稳定? 是刚毕业一腔热血,一个月拿几千块钱的新人。 还是跟随公司一起成长,贡献了青春的老员工。 亦或者是老板刚高薪引入公司的外来高管。 在回答这个问题之前,我想先讲一个故事。…

2015股市推测

2015年股市很可能在5月底到6月初 中期见顶,迎来一波大的调整,可以考虑提前出局应对。转载于:https://www.cnblogs.com/mazhenyu/p/4389561.html

三年级计算机课教案,三年级微机课教案

第5课、渔舟唱晚—“铅笔”和“刷子”工具的使用教学内容:学习“画图”软件中“铅笔”和“刷子”工具的使用。教学目标:1、使学生学会启动“画图”软件;2、使学生学会“铅笔”和“刷子”工具的使用;3、学会设置画纸的大小&#xf…

iphone开发中常见概念简述(待续)

1、输出口Outlet 输出口的唯一作用就是告诉interface Builder,此实例的变量将被连接到nib的对象中,你创建的任何需要连接到nib文件中的对象的实例变量都必须以IBOutlet关键字开头。 2、操作 操作是控制器类的方法,他们是通过关键字IBAction申…