光流估计概念和算法

什么是光流?

光流就是物体观测者之间的互相运动亮度变化速度矢量,下图两张图片表示了光流的原理。
在这里插入图片描述

光流的算法有几个基本不变的假设:

在这里插入图片描述

1,光强不变假设;
一元的n阶泰勒公式:
在这里插入图片描述
在这里插入图片描述只要前面的一阶,不要后面的,拓展到多元的话,就是图二所呈现的公式。
两边同时除以delta_t,就得到了下面的公式
在这里插入图片描述u是x方向的速度,v是y方向的速度。

光流算法分类

稀疏光流算法(Sparse optical flow)

对图片中的一些特征比较明显的像素点,角点,边进行跟踪。
稀疏光流算法是H-S算法,它的原理如下图:
在这里插入图片描述

稠密光流算法(Dense optical flow)

对图片中所有像素点进行计算。
计算量比较大,也比较,但是不存在跟踪的问题。比较重要的是L-K算法,依旧遵循的是光强不变原理I_x·u+I_y·v+I_t=0
相邻像素点中光流是一样的,即相邻小窗格中所有像素点光流是一样的

L-K算法

在物体运动很快的情况下,或者有遮挡的情况,会出现跟踪不准的(跟丢)。
遮挡,旋转,光照不准”会出现错误或不准确

速度很快的情况,两帧图片之间像素格位置偏差比较大,那么光强不变假设就不成立了。用一种图像金字塔的方法,去使图片满足光强不变假设。(将原来分辨率很大的图片,将它的分辨率不断缩小,直至相邻,就可以用光强不变假设了。)

在最小尺度上,用L-K算法(像素相邻情况)算出一个光流出来。计算出来的光流与上一层计算出的光流组合起来,给上上层用。最终得到一个结合多尺度的最终光流

这个方法可以比较好的解决速度快的问题。

Farneback算法

不存在跟踪的问题。(对所有的点进行光流,所以它不存在跟踪,遮挡之后也不会存在跟丢的情况)
用到的基本假设是:光流强度不变假设。

光流的应用

1,人体姿态检测;
2,飞行器壁障;(图片扫描时,速度越大,光流越大,越亮,要避开)
3,交通检测,测速;(相似三角形,计算速度)
4,视频补帧,视频减震等。

一些存在的问题

1,自然现象,如烟,火,云,浪花等——光流复杂,计算难度大
2,镜面反射(没有运动意义)
3,光照变化,光源移动或暗光环境(光强小,光流计算复杂)
4,不重要运动,如叶子的摆动(不重要运动占用计算资源)
5,快速运动小物体
6,训练集较小,训练数据难以获取和标记等(深度学习,数据集很难标记)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/643985.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTP与HTTPS的工作流程

HTTP与HTTPS的工作流程 http知识点回顾1、HTTP访问的过程2、HTTP常见状态码3、HTTP 协议一共五大特点 https的工作流程1、对称加密2、非对称加密3、https工作流程 http知识点回顾 1、HTTP访问的过程 (1)解析url,获取 url 中包含的域名&…

C语言第七弹---循环语句

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 循环语句 1、while循环1.1、if和while的对比1.2、while语句的执行流程1.3、while循环的实践1.4、练习 2、for循环2.1、语法形式2.2、for循环的执行流程2.3、for循…

沃通服务器密码机(WTHSM)

概述 沃通服务器密码机(WTHSM)由沃通CA自主设计开发,严格遵照国密局颁布技术规范,获得国密局颁发《商用密码产品认证证书》,是一款多安全功能、高稳定性、可扩展和快速部署的软硬件集成化安全设备,为应用提…

【手撕C语言 第八集】函数栈帧的创建与销毁

文章目录 一、什么是函数栈帧?二、函数栈帧能解决什么问题呢?(1)局部变量是如何创建的?(2)为什么局部变量不初始化内容是随机的?(3)函数调用时参数是如何传递…

电磁兼容设计要点

电磁兼容的问题往往发生于高频状态下,个别情况除外(Dips电压暂降与中断)除外。高频思维,总而言之,就是器件的特性、电路的特性,在高频情况下和常规中低频状态下是不一样的,如果仍然按照普通的控…

Go 定时器:如何避免潜在的内存泄漏陷阱

这篇文章将探讨的是 Go 中如何高效使用 timer,特别是与select 一起使用时,如何防止潜在的内存泄漏问题。 引出问题 先看一个例子,我们在 Go 中的 select 使用定时器,实现为消息监听加上超时能力。 核心代码,如下所示…

已解决Error:AttributeError: module ‘numpy‘ has no attribute ‘bool‘.

文章目录 引言报错分析解决方案1:降低NumPy版本解决方案2:更改NumPy源码 结尾 引言 在Python编程的世界里,NumPy无疑是一个不可或缺的库。它不仅在处理大规模数值计算中发挥着核心作用,而且为众多开发者提供了强大的支持。然而&a…

无刷电机学习-方波电调 程序篇1(AM32)

一、AM32简介 AM32 固件专为 ARM 处理器设计,用于控制无刷电机 (BLDC)。该固件旨在安全、快速、平滑、快速启动和线性油门。它适用于多种车辆类型和飞行控制器。 AM32具有以下特点: 可通过 betaflight 直通、单线串行或 arduino 升级固件伺服 PWM、Dsh…

Spring RabbitMQ那些事(3-消息可靠传输和订阅)

目录 一、序言二、生产者确保消息发送成功1、为什么需要Publisher Confirms2、哪些消息会被确认处理成功 三、消费者保证消息被处理四、Spring RabbitMQ支持代码示例1、 application.yml2、RabbigtMQ配置3、可靠生产者配置4、可靠消费者配置5、测试用例 一、序言 在有些业务场…

外包干了3年,跑路了。。。

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 故事的开始 最近这几天有点忧伤,因为带我的师傅要跑…

Vue3 Suspense 优雅地处理异步组件加载

✨ 专栏介绍 在当今Web开发领域中,构建交互性强、可复用且易于维护的用户界面是至关重要的。而Vue.js作为一款现代化且流行的JavaScript框架,正是为了满足这些需求而诞生。它采用了MVVM架构模式,并通过数据驱动和组件化的方式,使…

力扣 | 73. 矩阵置零

public class Problem_73_MatrixToZero {public void setZeros(int[][] matrix) {int m matrix.length;int n matrix[0].length;boolean flagRow false;boolean flagCol false;//先记录第一行本身是否包含0for (int i 0; i < n; i) {if (matrix[0][i] 0) flagRow tru…

使用Burp Collaborator验证无回显的RCE漏洞

使用Burp Collaborator验证无回显的RCE漏洞 1.概述2.Collaborator演示3.通过DNS查找外带命令执行结果1.概述 当应用程序容易受到命令注入攻击,但命令是异步执行时,就会发生异步操作系统命令注入漏洞。这意味着它对应用程序的响应没有明显影响 Burp Collaborator 可以帮助您…

Jenkins如何重置build number?

Jenkins如何重置build number&#xff1f; Jenkins调试过程中, 难免会产生很多无用的编译号&#xff0c;但需要清除无用build数据的时候&#xff0c;可以使用Script Consle来达到目的. 解决方案 直接说答案。 在脚本中填写如下语句&#xff1a; def jobName "xxx-Build&…

leetcode—— 腐烂的橘子

腐烂的橘子 在给定的 m x n 网格 grid 中&#xff0c;每个单元格可以有以下三个值之一&#xff1a; 值 0 代表空单元格&#xff1b;值 1 代表新鲜橘子&#xff1b;值 2 代表腐烂的橘子。 每分钟&#xff0c;腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到…

【Linux C | 进程】Linux 进程间通信的10种方式(1)

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

log4j2配置文件命名及优先级

log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式&#xff0c;2.x版本配置文件后缀名只能为".xml",“.json"或者”.jsn"。 命名规则 默认配置文件名&#xff1a; log4j2.xml 或 log4j2.json 测试或特定环境配置文件名&#xff1a;可以以 -t…

Kafka(二)原理详解

一 、kafka核心总控制器&#xff08;Controller&#xff09; 在Kafka集群中会有一个或者多个broker&#xff0c;其中有一个broker会被选举为控制器&#xff08;Kafka Controller&#xff09;&#xff0c;它负责管理整个集群中所有分区和副本的状态。 作用&#xff1a;leader副…

【wayn商城】本地开发指南

这篇文章给大家带来我自己写的开源项目【wayn商城】的本地开发指南&#xff0c;帮助各位朋友在本地快速运行【wayn商城】&#xff0c;避免踩坑&#xff0c;减少不必要的精力在软件下载安装上。 &#x1f525;waynboot-mall 是一套全部开源的 H5 商城项目&#xff0c;实现了一套…

Jedis(一)与Redis的关系

一、Jedis介绍&#xff1a; 1、背景&#xff1a; Jedis是基于Java语言的Redis的客户端&#xff0c;Jedis Java Redis。Redis不仅可以使用命令来操作&#xff0c;现在基本上主流的语言都有API支持&#xff0c;比如Java、C#、C、PHP、Node.js、Go等。在官方网站里有一些Java的…