光流法( Optical Flow Method)

2023-11-16

        在计算机视觉中,光流法即可用于运动目标检测,也可以用于目标跟踪。本文主要介绍光流法在运动目标检测和目标跟踪中的区别与联系。


1、光流与光流场

        光流的概念最初是由 Gibson 于 1950 年首先提出来的。当人的眼睛观察运动物体时,物体的景象在人眼的视网膜上形成一系列连续变化的图像,这一系列连续变化的信息不断“流过”视网膜(即图像平面),好像是一种光的“流”,故称之为光流。光流表达图像的变化,包含目标运动的信息,可用来确定目标的运动。光流三个要素:一是运动速度场,这是形成光流的必要条件;二是带光学特征的部分例如有灰度的象素点,它可以携带运动信息;三是成像投影从场景到图像平面,因而能被观察到。

        定义光流以点为基础,具体来说,设(u, v) 为图像点 (x, y) 的光流,则把 (x, y, u, v) 称为光流点。所有光流点的集合称为光流场。 当带光学特性的物体在三维空间运动时,在图像平面上就形成了相应的图像运动场,或称为图像速度场。在理想情况下,光流场对应于运动场

        总而言之,光流是由图像的亮度变化形成的,因此,光流场近似于运动场。


2、光流场的计算

2.1、光流约束方程

       光流场的计算最初是由 Horn 和 Schunck[1]于 1981 年提出的,而后由 Lueas 和 Kanad[2]提出了改进光流算法。

       光流法的核心就是求解出运动目标的光流,即速度。根据视觉感知原理,客观物体在空间上一般是相对连续运动的,在运动过程中,投射到传感器平面上的图像实际上也是连续变化的。为此可以假设瞬时灰度值不变,即灰度不变性原理。由此可以得到光流基本方程,灰度对时间的变化率等于灰度的空间梯度与光流速度的点积。如下:


       约束方程只有一个,而方程的变量有两个,在这种情况下无法求得 u 和 v 的确切值。这种不确定性称为孔径问题(aperture problem)。此时需要引入另外的约束条件,从不同的角度引入约束条件,导致了不同的光流场计算方法。到目前为止,各种各样的方法和改进方法己不下几十种,这些方法有着很大的差异,对现有方法还缺乏一个系统的分类。这里将光流算法分为以下四大类:

  • 基于梯度的光流计算方法
  • 基于区域的光流计算方法
  • 基于频域的光流计算方法
  • 贝叶斯(Bayesian)光流算法

2.2、基于梯度的光流计算方法

       基于梯度的方法又称为时空梯度法,也称微分法,它是利用图像序列灰度的时空微分(即时空梯度函数)来计算图像上每一像素点的光流。微分法分为:

(1)全局微分法:

               Horn-Schunck算法:假设光流在整个图像上光滑变化,即速度的变化率为零。

(2)局部微分法:

               Lucas-Kanade算法:假设在一个小空间领域上运动矢量保持恒定,使用加权最小二乘法估计光流。


3、光流的应用

3.1、运动目标检测

         给图像中的每个像素点赋予一个速度矢量,这样就形成了一个运动矢量场。根据各个像素点的速度矢量特征,可以对图像进行动态分析。如果图像中没有运动目标,则光流矢量在整个图像区域是连续变化的。当图像中有运动物体时,目标和背景存在着相对运动。运动物体所形成的速度矢量必然和背景的速度矢量有所不同,如此便可以计算出运动物体的位置。需要提醒的是,利用光流法进行运动物体检测时,计算量较大,无法保证实时性和实用性。

3.2、目标跟踪
(1)对一个连续的视频帧序列进行处理;
(2)针对每一个视频序列,利用一定的目标检测方法,检测可能出现的前景目标;
(3)如果某一帧出现了前景目标,找到其具有代表性的关键特征点(可以随机产生,也可以利用角点来做特征点);
(4)对之后的任意两个相邻视频帧而言,寻找上一帧中出现的关键特征点在当前帧中的最佳位置,从而得到前景目标在当前帧中的位置坐标;
(5)如此迭代进行,便可实现目标的跟踪;


参考文献:
[1] Berthold K. P. Horn, Brian G. Schunck. Determining Optical Flow[J]. Artificial Intelligence, 1981: 185-203.
[2] Bruce D. Lucas, Takeo Kanade. An Iterative Image Registration Technique with an Application to Stereo Vision[J]. Proceeding of Imaging Understanding Workshop, 1981: 120-131.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

光流法( Optical Flow Method) 的相关文章

  • startActivity流程学习

    文章目录 应用完全没有启动过 应用完全没有启动过 launcher从sm 管理java层的ServiceManager 的服务列表里面找到AMS的代理对象AMSProxy 调用AMS向Zygote发出socket请求 从Zygote进程fo

随机推荐

  • vi的复制粘贴命令

    vi编辑器有3种模式 命令模式 输入模式 末行模式 掌握这三种模式十分重要 命令模式 vi启动后默认进入的是命令模式 从这个模式使用命令可以切换到另外两种模式 同时无论在任何模式下只要按一下 Esc 键都可以返回命令模式 在命令模式中输入字
  • SpringBoot多数据源导致mybatis驼峰映射配置失效

    SpringBoot多数据源导致mybatis驼峰映射配置失效 1 正常情况下 直接配置即可生效 比如 开启驼峰映射 开启示例 properties文件中配置 mybatis configuration map underscore to
  • 踩了大坑 : go json.Marshal时,结构体字段需要大写

    go中根据首字母的大小写来确定可以访问的权限 如果首字母大写 作用域则可以被其他的包访问 如果首字母小写 作用域则只能在本包中使用 包括接口 类型 函数和变量等 可以简单的理解成 首字母大写是公有的 首字母小写是私有的 出现问题 需要将js
  • 数据结构——图的两种遍历方法

    遍历定义 从已给的图中某一顶点出发 沿着一些边 访遍图中所有的顶点 且使每个顶点仅被访问一次 就叫做图的遍历 遍历实质 找每个顶点的邻接点的过程 图的特点 图中可能存在回路 且图的任一顶点都可能与其它顶点相通 在访问完某个顶点之后可能会沿着
  • gzip text html,Vue gzip压缩导致js无法解析 Content-Type: text/html(JS内容)(压缩完成是xxx.js.gz)...

    压缩配置 Vue config js 插件compression webpack plugin gzip压缩config plugin compressionPlugin use 代码混淆 new CompressionWebpackPlu
  • 识别操作系统的常用方式

    识别操作系统的方式 一 windows系统对大小写区分不是很明显 判断修改路径大小写后正常windows 报错linux 1 eg 大小写修改之后页面回显正常说明网站系统为windows 2 eg 可以判断该服务器系统为linux 二 通过
  • 计算机总线仲裁详解

    文章目录 总线仲裁 一 关于总线仲裁 二 总线仲裁的分类 1 集中仲裁方式 1 链式查询方式 2 计数器定时查询方式 3 独立请求方式 2 分布仲裁方式 总线仲裁 一 关于总线仲裁 总线仲裁来由 我们按照对总线有无控制功能将总线上所连接的各
  • SELinux深入理解

    1 简介 SELinux带给Linux的主要价值是 提供了一个灵活的 可配置的MAC机制 Security Enhanced Linux SELinux 由以下两部分组成 1 Kernel SELinux模块 kernel security
  • 中国古代数学问题——鸡兔同笼解析

    中国古代数学问题 鸡兔同笼解析 鸡兔同笼是一道古代数学问题 通过计算鸡和兔的总数量和腿的总数来求解鸡和兔的个体数量 这个问题在数学教育中经常被用来培养学生的问题解决能力和逻辑思维 下面 我们将对鸡兔同笼问题进行详细的解析 并附上相应的源代码
  • 三进制计算机_计算机数学原理之二进制

    上一节我们了解了曲线的矩形逼近 以及由此代表的模拟量的数位表示 基于以上知识 这节课我们可以开始学习二进制了 计算机原理之 二进制 对数值的数位表示 我们可以很自然的想起十进制 即所有的数字都用10个基本的符号表示 基本符号是0到9十个数字
  • c#复制一个文件到指定文件夹

    c 复制一个文件到指定文件夹 path 指定文件夹From www uzhanbao com fileName指定文件的完整路径 public void CopyFile string path string fileName FileIn
  • mybatis-plus+druid配置多套数据源

    这里我使用的是mysql和postgresql进行配置 详细讲讲会遇到的问题 1 首先引入需要用到的依赖
  • 期货开户关于基本面量化

    一 库存 供求矛盾看库存 东西没有了 缺了 就会涨价 不缺 一般不会涨 所以 一定要注意库存 去库存快的品种 特别是库存低 价格低的品种 要重点关注 库存有一点要特别注意 要是 有效去库存 通过降价让下游买货 这种 去库存 不是根本 因为库
  • 【Python】fetchone()和fetchall()

    fetchone 返回单个的元组 也就是一条记录 row 如果没有结果 则返回 None cu execute select user password from user where user s name arr cur fetchon
  • 【多目标优化算法】多目标蚱蜢优化算法(Matlab代码实现)

    个人主页 研学社的博客 欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及详细文章讲解 1 概述
  • LeetCode 剑指 Offer 10- I. 斐波那契数列

    LeetCode 剑指 Offer 10 I 斐波那契数列 题目描述 写一个函数 输入 n 求斐波那契 Fibonacci 数列的第 n 项 即 F N 斐波那契数列的定义如下 F 0 0 F 1 1 F N F N 1 F N 2 其中
  • 用户画像统计标签(年龄段,消费周期,常用支付方式)

    年龄段 import bean HBaseMeta import org apache spark SparkContext import org apache spark sql 关联 不仅仅是一个相同的 可以 一个与两个之间 objec
  • 11.6.1:综合技巧练习 - 配置和测试网络

    实验ip分配如下 学习目标 创建 测试并配置整个实验网络 综合运用整套课程中学到的技巧 分析请求网页所涉及的事件 DNS ARP HTTP TCP IP Ethernet HDLC 分析在跟踪到 Web 服务器的路由时所涉及的事件 DNS
  • Nokogiri的使用 抓取csdn博客內容 rails

    Nokogiri 锯 使使用 Ruby 中的 XML 和 HTML 变得轻松而轻松 提供了一个明智的 易于理解的 API 阅读 编写 修改 和 查询 文档 它依赖于 libxml2 CRuby 和 xerces JRuby 等原生解析器 速
  • 光流法( Optical Flow Method)

    在计算机视觉中 光流法即可用于运动目标检测 也可以用于目标跟踪 本文主要介绍光流法在运动目标检测和目标跟踪中的区别与联系 1 光流与光流场 光流的概念最初是由 Gibson 于 1950 年首先提出来的 当人的眼睛观察运动物体时 物体的景象