python实现算法改进_运动目标检测vibe算法及其改进Python实现

本文介绍了VIBE算法的简单背景初始化和前景背景判定,并分享了针对算法速度慢的问题进行的改进,包括添加动态阈值和后处理步骤,减少随机数生成次数,以及尽量使用numpy进行优化。实验表明,这些改进有效减少了误检并提高了运行效率。
摘要由CSDN通过智能技术生成

vibe是一个又简单又牛逼的算法,没有什么数学公式,就只有三步

1.初始化背景模型,总共有20个背景模型样本,每个样本中的每个点由其八邻域初始化(论文里面没有用到自己这个像素点,看了其他的改进,有用自己的,这个没必要较真,大家都是试出来的,不一定适合每个场景)。

2.前景背景判定 新来的每一帧与背景模型做比较,如果新的帧的点与背景模型中样本的点的像素值大小不超过20(20是个经验值

在网上搜了一下,实现的版本,emm,速度真的是太慢了,慢的想要哭,but自己要用啊,这个速度真的是不能接受的,那怎么办呢,只好优化一下,虽然自己也是菜鸡,只能简单的搞一搞了。

添加了动态阈值与后处理,有效的减少了误检。

感觉后处理是万能的,可以过滤掉好多东西

参考的代码

通过profile分析了一下,瓶颈主要是在随机数生成上,所以,要减少随机数生成的次数。然后就是for循环慢,能改就尽量改成numpy。

def bg_update(I_gray,seg_mask,samples, sub_factor, fg_mask_counts):

height, width = seg_mask.shape

x_y_set = [[-1, -1], [-1, 0], [-1, 1], [0, -1], [0, 1], [1, -1], [1, 0], [1, 1]]

neighbor_num = len(x_y_set)

for i in range(height):

for j in range(width):

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值