光流估计概念和算法

什么是光流?

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

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

在这里插入图片描述

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 中包含的域名&…

ts + websocket封装

1&#xff0c;使用方式 // 开始链接websocket const ws websocket({url: /websocket,onmessage: e > {// 获取websocket信息console.log(e)} })// 关闭websocket ws.close()2&#xff0c;源码如下 // 定义定时器 type TimeoutHandle ReturnType<typeof setTimeout>…

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

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【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循…

vue实现点击复制

3. 使用vue-clipboard2库 安装 npm install --save vue-clipboard2 main.js 中引入 <template> <div> <el-button type"primary" v-clipboard:copy"message2" v-clipboard:success"onCopy" v-cl…

沃通服务器密码机(WTHSM)

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

mybatis-plus代码生成器(文章最后给出了官方参考文档)

目 录 1、引入依赖 2、demo示例 3、总结 1、引入依赖 此时引入了mybatis-plus的相关依赖和mysql数据库依赖 <properties><mybatis-plus.version>3.0.5</mybatis-plus.version><velocity.version>2.0</velocity.version><mysql.version&g…

【.net/.net core】使用form-data方式发起post请求

使用场景&#xff1a;一般为在发起请求时&#xff0c;需要带着文件对象&#xff0c;即File类型参数。 public async void PostByFormData() {//创建一个MultipartFormDataContent对象&#xff0c;构建multipart/form-data请求体MultipartFormDataContent pushMemberParams n…

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

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

MySQL修炼手册15:备份与恢复:保障数据安全的重要手段

目录 写在开头1 数据备份的重要性1.1 数据备份与恢复的基本概念1.1.1 数据备份的定义1.1.2 数据恢复的定义1.1.3 恢复点和恢复时间 1.2 不同备份方式的比较1.2.1 按备份内容和方式划分1.2.2 按备份的数据量和方式划分1.2.3 备份方式的选择 2 使用mysqldump进行备份2.1 mysqldum…

电磁兼容设计要点

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

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

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

暴雨信息:更大限度激发数字消费潜力

内需是中国经济发展的基本动力&#xff0c;也是满足人民日益增长的美好生活需要的必然要求。作为扩大内需的主动力和畅通国内大循环的关键环节&#xff0c;消费既是生产的最终目的和动力&#xff0c;也是人民对美好生活需要的直接体现。着力扩大国内需求&#xff0c;要把恢复和…

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

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

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

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

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

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

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

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

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

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

力扣 | 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&…