Foreground Detection: A Fast Self-tuning Background Subtraction Algorithm
2015-12-30 13:19
399 查看
reference
A Fast Self-tuning Background Subtraction Algorithm关键思想
背景模型的有效性检测,本文同样基于像素(相对于基于区域,基于帧),通过K个背景像素样本进行背景提取,但不同于VIBE类算法(PBAS,VIBE+,Subsense)等的随机更新策略,此方法通过对背景像素样本的有效性进行排序,及时剔除没什么用的像素样本,一般而言,这些被剔除的样本就是一些背景像素边沿点或者前景像素,剔除它们可以提高召回率及精确率。主要变量
T: 背景像素样本,它包含着B和C,B即背景像素值,C为对应的有效值。文中含K个背景像素样本T0,T1,...,TKT_0,T_1,...,T_K,对应着(B0,C0),(B1,C1),...,(BK,CK)(B_0,C_0),(B_1,C_1),...,(B_K,C_K)。B: 背景像素值,更新方式:Bj=(1−α)Bj+αIB_j=(1-\alpha )B_j + \alpha I, 这里II为当前输入帧。
C: 有效性,当CjC_j匹配到当前输入像素时,使其加1,同时使其它Ci,i≠jC_i,i \neq j 减1。每次C更新后都要进行再次排序,除C0C_0外,C1到CKC_1 到C_K 按值从大到小排列。
前景检测:对当前输入帧 II ,匹配序列Cj,其中Cj>0,即Cj=0不参与匹配,即为无效模板,匹配顺序按Cj的值从大到小C_j, 其中C_j>0,即C_j=0不参与匹配,即为无效模板,匹配顺序按C_j的值从大到小 当没有一个匹配时(当前像素与背景样本的距离 > ε\varepsilon ),可以得到 FG1。对当前输入帧和模板进行均值过滤,得到相应的区域前景FG2,最终的前景为FG1与FG2的交。据说这样可以过滤前景噪声!
长期模板:有一个特殊的模板,C0C_0,它只有C1>θL且C0<θLC_1> \theta _L 且C_0< \theta _L 时参与排序。当C1成功取代C0C_1 成功取代 C_0 后,再进行排序时,令C0=γθL C_0 =\gamma \theta _L 以保证长期模板的稳定性。
模板替换:当输入像素被认为是前景F时,如果CA=0C_A=0,则新的模板TA=(BA,CA)T_A=(B_A,C_A)则被设置,初始化为CA=1,BA则对应前景像素值C_A=1,B_A则对应前景像素值,。当然,CAC_A>0时,如果匹配distance(BA,I)<εdistance(B_A,I)< \varepsilon 时,且当前像素为前景像素时,C_ACAC_A加1,否则减1。当C_A> \theta _ACA>θAC_A> \theta _A 时,且该当像素的领域与B_ABAB_A接近时(distance(BA,Bneighbor)<εdistance(B_A,B_{neighbor})< \varepsilon ,至于取B0,B1,还是遍历,原文没提B_0,B_1,还是遍历,原文没提),将TAT_A替换到T的序列中,当然是取有效性最低的那个样本。
噪声控制与距离阈值控制,与其它方法无太大差别。具体实现看代码即可。
效果
CDNet benchmark 前几名相关文章推荐
- mgo使用指南
- go语言string、int、int64互相转换
- google离线地图实例,加载本地地图瓦片, 支持点线面及图文标注,坐标定位,卫星、电子地图切换
- 2015 say goodbye
- 推荐一个学习golang的地址
- 使用CocoaPods安装GoogleMaps库后出现的问题及解决
- django 过滤器 、日期格式化参数
- golang的一个分页方法
- Google推荐的图片加载库Glide介绍
- Django
- google map api 学习笔记
- Django学习3
- Kafka+Gobblin+HDFS实践
- 关于Django开发第一个URLconf
- Deep Introduction to Go Interfaces.
- go get 获得 golang.org 的项目
- 最长回文字符串算法-Manacher’s Algorithm-马拉车算法
- golang的推荐的orm库
- golang快速安装示例
- mongo $where的使用