简述三类运动目标检测方法原理:光流法、帧间差分法以及背景减除法-程序员宅基地

技术标签: 人工智能杂七杂八  

光流法

  • 光流是指图像中模式运动的速度
  • 运动场可以用来描述运动,光流场则为运动场在二维图像上的投影,并且包含有丰富的关于运动和结构的信息 。
  • 光流法用以检测运动目标的基本原理:对图像中所有的像素点赋予速度矢量,形成图像运动场,通过像素点的速度矢量特征对图像进行动态分析。
  • 当图像序列中目标静止时,图像区域中的光流矢量是连续变化的。
    反之,如果图像中的目标发生运动,由于目标和图像背景存在相对运动,致使运动目标与邻域背景的速度矢量出现差异,进而实现运动目标检测。
  • 光流法的前提假设
    (1)相邻帧之间的亮度恒定值,
    (2)相邻视频帧的取帧的时间连续,或者相邻帧之间物体的运动比较“微小”;
    (3)保持空间一致性,即,同一子图像的像素点具有相同的运动。
  • 原理:
    (1)对一个连续的视频帧序列进行处理;
    (2)针对每一个视频序列,利用一定的目标检测方法,检测可能出现的前景目标;
    (3)如果某一帧出现了前景目标,找到其具有代表性的关键特征点(如shi-Tomasi算法);
    (4)对之后的任意两个相邻视频帧而言,寻找上一帧中出现的关键特征点在当前帧中的最佳位置,从而得到前景目标在当前帧中的位置坐标;
    (5)如此迭代进行,便可实现目标的跟踪;
  • 光流法的优势
    1. 不需要先验的场景信息。
    2. 并且适用于摄像机移动拍摄的情况。
    3. 对帧间位移较大的目标有很好的检测效果。
  • 光流法的劣势:该方法计算复杂且难以保证实时性。
    部分参考:https://blog.csdn.net/tezhongjunxue/article/details/14449905 含代码,可补充学习

 帧间差分法

 

  • 帧差法:视频序列中的相邻帧作差分运算,使用阈值将得到的像素差值分为前景和背景,差值大于阈值的区域为前景(1),差值小于阈值的区域为背景(0),最终得到运动目标的轮廓
  • 设图像序列中像素点(x,y)在第 t 帧和 t-1 帧的灰度值分别为I t (x,y)和 I t-1 (x,y),D t (x,y) 为两者差值的绝对值,T 为阈值,区分像素点(x,y)为前景或背景的原理可用以下公式表示:

    此图片F即为上述的I
  • 优势:帧间差分法对动态背景不敏感,而且无需背景建模,计算简单,实时性好。
  • 劣势:当运动目标颜色均匀时,相邻帧的差别主要体现在目标运动方向的两侧,目标内部区域差值很小,这样目标内部被当作背景处理,故差分法获取的运动目标轮廓常伴随有空洞出现,致使该方法不易获取完整准确的目标轮廓。
    部分参考:https://blog.csdn.net/tezhongjunxue/article/details/14492101 含代码,可补充学习

背景减除法

  • 背景减除法适用于背景相对静止情况下的运动目标检测,与帧间差分法相似,该方法将视频序列的当前帧与背景帧作差分运算,用阈值将像素差值分为前景和背景,差值大于阈值的像素归类为前景(1),差值小于阈值的像素归类为背景(0)。(特殊的帧间差分法)
  • 设图像序列中像素点(x,y)在第 t 帧前景和背景的灰度值分别为 F t (x,y)和 B t (x,y),D t (x,y)为两者差值的绝对值,T 为阈值,区分像素点(x,y)为前景或背景的原理可用以下公式表示:

    此图片F即为上述的I
  • 使用背景差分法进行运动检测通常会遇到如下一些问题: 
           (1)背景获取:最简单的方法是在场景中没有运动目标的情况下进行,但在现实中肯定是无法满足的,如高速公路和城市交通的监控,需要一种方法能在场景存在运动目标的情况下获得背景图像。 
           (2)背景的扰动:如树叶、树枝等各种东西的摇动 
           (3)外界光照条件的变化 
           (4)背景中固定对象的移动 
           (5)背景的更新 
           (6)阴影的影响
    背景消减法根据其背景模型的不同又可分为:直方图法、平均值法、单分布高斯背景模型、混合高斯分布背景模型、Kalman滤波器法,HMM模型法。
  • 背景减除法对光照变化和背景变化十分敏感,但是其计算简单、实时性好,并且一般能够获取比较完整的运动目标轮廓,目前在视频监控领域使用最为广泛。
    部分参考:https://blog.csdn.net/tezhongjunxue/article/details/14550249 含代码,可补充学习

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dujuancao11/article/details/109325218

智能推荐

Android Studio 教你在debug调试模式下使用正式签名_android debug使用release的签名-程序员宅基地

文章浏览阅读9.1k次,点赞4次,收藏4次。这个问题是我在配置QQ第三方登陆时遇到的,QQ第三方登陆如果上传正式发布包到腾讯应用宝,也就是正式版的签名,测试三方登陆时也只能用正式签名测试,对于开发者来说,实在太痛苦了,因为开发者做测试都是运行起来都是在debug模式下,签名也是debug模式下的签名。腾讯开放平台有一个应用调试者QQ号测试,不知道是不是填写了开发者的QQ号之后就可以用正式版的签名做第三方登陆测试了,每次我点击添加,结果就这样_android debug使用release的签名

Linux内存管理(1) - bootmem分配器_linux bootmem-程序员宅基地

文章浏览阅读1.9k次,点赞2次,收藏12次。内核中分配内存基本都基于伙伴系统,但是在内核启动之初,伙伴系统尚未建立,这时需要一个临时的内存分配器负责提供内核早期的内存需求,例如存放内核的代码段和数据段,以及将内存进行简单的管理供后续伙伴系统使用,这就是bootmem分配器。本文基于Linux 2.6.31的内核源码对bootmem分配器的工作过程进行分析。_linux bootmem

jetson nano 部署yolov5s_nvzramconfig.sh文件-程序员宅基地

文章浏览阅读1.6k次。jetson nano 部署yolov5s一、配置系统(列出来了步骤,详细内容网上很多)下载系统SD卡格式化把下载的系统烧录进SD卡插卡开机,进行一些初始化设计我的系统是ubuntu 18.4 cuda 10.2 python是nano自带的3.6二、使用官网的镜像,没有更换源,配置环境1.更新系统和包sudo apt-get updatesudo apt-get upgrade或sudo apt-get full-upgrade可能报错:nvidia-l4t-bootloa_nvzramconfig.sh文件

sun.misc.BASE64Encoder在eclipse中找不到-程序员宅基地

文章浏览阅读275次。sun.misc.BASE64Encoder/BASE64Decoder类。这人个类是sun公司的内部方法,并没有在java api中公开过,不属于JDK标准库范畴,但在JDK中包含了该类,可以直接使用。但是在eclipse和MyEclipse中直接使用,却找不到该类。 可以使用如下方法:选中项目-》右键properties--》java bulid path----》libraries..._sun.misc.base64encoder eclipse 找不到

【踩坑记录】使用IDEA部署tomcat遇到的问题_idea2023启动tomcat9一直开在manager项目-程序员宅基地

文章浏览阅读2.5k次。之前用eclipse写web项目,最近转到IDEA开发,在创建IDEA上第一个Maven的web项目时就遇到了不小的麻烦,在这里记录一下。1、关于tomcat无法启动的问题在创建好一个web项目想要把它运行起来的时候,报了如下错误,我使用的是tomcat7网上找遍解决办法未果,于是更换了tomcat9在官网下载了tomcat9的压缩包,解压后将其添加到IDEA中:打开Run/Deb..._idea2023启动tomcat9一直开在manager项目

Web实现:伪类事件伪类鼠标悬停效果_css button 伪类 鼠标离开后样式不丢失-程序员宅基地

文章浏览阅读1.7k次。伪类实现的鼠标悬停效果,直接上代码:HTML部分:<!DOCTYPE html><html><head><!--系统内置 start--><script type="text/javascript" src="//qgt-style.oss-cn-hangzhou.aliyuncs.com/commonJSCSS/console.js"></script><!--系统内置 end--> <meta_css button 伪类 鼠标离开后样式不丢失

随便推点

csdn原力的一件小事_csdn发布了文章 原力值没增加-程序员宅基地

文章浏览阅读460次。我来csdn已经好几年了,最初只是查查东西,毕竟那时候还没转编程。 几个月前,开始尝试写点东西,回答点问题,也坚持每天打卡,毕竟是上班族,不是长时间留在csdn。最终获得了3000+粉丝,也有点小小的收益。 每天签到的同时,有少量的money,原力是正的,还能加倍。不过前阵子想弄bdd到微信头像,结果审核没通过,扣了近200分,我能理解。 不过今天也是负的,就很奇怪,可能我没读懂xsdn增长规则。最近一段时间,工作比较忙,没时间逛csdn,所以没写文章,也没答题,所以最近原力增..._csdn发布了文章 原力值没增加

保饭碗的10项技术之杂谈-程序员宅基地

文章浏览阅读1.8k次。 可以说是看了这篇文章《保证你现在和未来不失业的十种关键技术》[作者/iamsohappy],才注意到Regular Expressions原来是这么的重要。我这里没有加该文章的超级链接,因为到处都有,我也找不到其原始出处。当一篇文章被转载时,注明原始来源应该成为我们的习惯,既表示对作者的尊重,也是对自己的尊重。这里是一段作为我以后所有咚咚的版权声明*公告。1、十种关键技术

(一)Linux下percona-toolkit工具包的安装和使用_linux opt/rpatoolkit-程序员宅基地

文章浏览阅读602次。一.检查和安装与Perl相关的模块PT工具是使用Perl语言编写和执行的,所以需要系统中有Perl环境。依赖包检查命令为:# rpm -qa perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL如果有依赖包缺少,可以使用下面的命令安装:# yum install perl-DBI# yum install perl-DBD-MySQL# yum install perl-Time-HiRes# yum in._linux opt/rpatoolkit

linux shell 检查端口开放_nc -z -w5-程序员宅基地

文章浏览阅读2.9k次。法一:使用ncnc -z <host> <port>使用nc -z +IP或域名+端口检查目标主机端口是否开启,返回0则表示开启,返回1则表示未开启。当然,为了更快的检测目标端口的状态,可以使用-w参数指定超时时间。(下方示例设置的超时时间为5秒)nc -z -v -w5 <host> <port>$ nc -v -z -w ..._nc -z -w5

(Java)Math里面的ceil.floor和round的方法区别;_java round函数和ceil函数的区别-程序员宅基地

文章浏览阅读272次。(Java)Math里面的ceil.floor和round的方法区别: Java中.Math里面的ceil,floor,和round的区别在于:ceil:中文的意思是天花板,意思就是向上取值,就是数学里面的进一法;返回的类型是:双精度浮点型double;例如:Math.ceil(11.0000001);其结果等于12.0;对于负数来说可以这样理解:取整:Math.ceil(-11.9999..._java round函数和ceil函数的区别

HTML常用显示内容标签_主要内容标签-程序员宅基地

文章浏览阅读4.7k次,点赞2次,收藏8次。1 什么是 HTML? 需求:(生活中遇到问题) 随着技术的发展,信息量的增大网页的数据信息没有办法完美的、漂亮的展现到用户的面前。 意义:(作用): HTML是一种专门对网页信息进行规范化展示的语言。把网页的信息格式化展现的语言 HTML(Hyper Text Markup Language):超文本标记语言超文本:文本信息 、图片、声音、视频、超链接等 标记:标签的..._主要内容标签

推荐文章

热门文章

相关标签