【1】背景建模下的树木晃动问题分析——结合VIBE算法

2023-11-02 21:50

本文主要是介绍【1】背景建模下的树木晃动问题分析——结合VIBE算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 树木晃动的像素级现象

根据当前的数据特点,分为两种情况:

  • 近距离的灌木丛(<300m)在风吹作用下的晃动
  • 柏树等稍远一些的树冠在风吹作用下的晃动

树冠的晃动

                                                                                                 图1 风吹下的树冠晃动

                                                                                                     图2 近距离灌木丛的晃动

1.1 树木晃动的像素级特点

  • 快速运动,帧与帧之间差异大,每帧的晃动方向随机(上下左右);幅度随机(晃动像素个数)。每帧上下左右晃动的像素个数是随机的。
  • 晃动之后,目标的形态也发生了变化。
  • 晃动只会在一个局部的领域里发生。
  • 晃动的发生频率和周期不一样,没有太多规律。

1.2 当前VIBE算法为什么只能解决一部分的晃动问题

第一排的晃动相对小,第二排的晃动量相对大。

邻域更新的重要性

模型的数值分布,可以看出来至少有两个模式

  • 只有157第当前像素更新的某个模型;而170和160都是领域更新来的。
  • 但是领域更新只在3*3的范围内,所以能够应对的晃动模式是有限的。
  • 如果是在残留问题中(鬼影),领域更新可以在5帧内完成模型的吸收。前景中第二帧就不可见是由于前景计数导致的,前景一直在累计计数,直至被模型吸收。所以这就是邻域更新的快产生的结果。
  • 模型需要保持敏感性和精确性,更新快就精确,更新慢就敏感。

2. 下一步的技术方向

  • (1)vibe的技术上,在前景中利用晃动特征进行剔除。但是这个特征难以表征和实现
  • (2)借鉴PAWCS算法的特点进行改进

2.1 PAWCS算法的原理

首先,它是在SubSense算法的基础上进行的改进。但是基本的模型在SubSense中有详细介绍的。主要特点在以下几个方面:

  • (1)特征:LBSP+Color 首先LBSP的相似性阈值是自适应的Tr*ix,实际为ix/9,即[0,255]共28个台阶
  • (2)判断当前像素是否属于某个模型:R(x)是要维护的,从R(x)+isUnstable得到Color和LBSP的阈值,其次还有一个综合阈值。
  • (3)挨个模型进行判断,然后进行前景和背景的分割,进行分割时要更新T(x),MeanMinDist, MeanRawSegm

图1 总的图

图2 左侧为Tr*ix的自适应阈值,LBSP判断是否相似的,是否为0/1                    右侧为当前像素是否属于某个模型

                                         图3 部分模型变量的说明 

2.1.1 前景背景分割的部分 + 反馈参数控制部分

前景背景分割部分:如果ModelResetCoolDown需要重新更新,则以最快的速度更新某个模型。

2.1.2 闪烁像素的确定

2.1.3 SubSense算法原理

由于PAWCS算法是在SubSense算法上的改进,所以基础的机制在SubSense中有介绍,而在PAWCS算法中没有介绍。

  • (1)初始化:参数设置和模型赋予初值,保存第一帧的LBSP+Color的值记录在LastColor和LastLBSP中
  • (2)RefreshModel:在3×3的领域里随机采样,填充模型,Color和LBSP的50个值都是3*3的领域里随机采样的。风险就是邻域过度填充初始样本。50个模型能够容纳更多的多样性。

  • (3)前景/背景分割:match<#min,前景;match>=#min,背景。
  • (4)模型维护:
    • a.前景时,需要模型重置时——当ModelResetCooldown && 1/2频率更新满足,就更新一个背景模型区域。
    • b.背景时,模型更新:随机更新一个背景模型,同时随机更新一个邻域的某一个模型。有些许讲究。
      • 若是动态区域,则5*5选一个更新,同时更新率为T(x)/2,更新加快。否则为3*3和T(x)
    • 同时计算新的:Dmin_LT/ST,计算新的RawSegmRes_ST/LT。

  • (5)动态更新内部参数:

 

下一步计划

对图像进行逐帧分析,借鉴其机制。急!

 

 

 

 

 

 

 

 

 

 

这篇关于【1】背景建模下的树木晃动问题分析——结合VIBE算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/333541

相关文章

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

解决JSONField、JsonProperty不生效的问题

《解决JSONField、JsonProperty不生效的问题》:本文主要介绍解决JSONField、JsonProperty不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录jsONField、JsonProperty不生效javascript问题排查总结JSONField

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地