光流法Optical Flow,Lucas-Kanade方法,CV中光流的约束分析

news2024/9/23 17:22:39

光流法Optical Flow,Lucas-Kanade方法,CV中光流的约束分析

    • Multiple View Geometry
      • 1. Optical Flow Estimation
      • 2. The Lucas-Kanade Method
        • 2.1 Brightness Constancy Assumption
        • 2.2 Constant motion in a neighborhood
        • 2.3 Compute the velocity vector
        • 2.4 KLT tracker
      • 3. Robust feature point extraction: Harris Corner detector.
      • 4. Eliminate the brightness changes.

Multiple View Geometry

本文主要介绍计算机视觉中,光流法Optical Flow Method,Lucas-Kanade方法的约束,CV中光流的约束分析,包括了亮度不变约束,速度向量计算等方法。

1. Optical Flow Estimation

Optical Flow is suitable for small deformation, small displacement. Finding correspondence and tracking.

2. The Lucas-Kanade Method

2.1 Brightness Constancy Assumption

Let x ( t ) x(t) x(t) denote a moving point at time t t t, and I ( x , t ) I(x,t) I(x,t) a video sequence, then:
I ( x ( t ) , t ) = C o n s t . ∀ t . I(x(t),t)=Const. \forall t. I(x(t),t)=Const.∀t.
i.e., the brightness of point x ( t ) x(t) x(t) is constant. Therefore the total time derivate must be zero:
d d ( t ) I ( x ( t ) , t ) = ∇ I T ( d x d t ) + ∂ I ∂ t = 0 \frac{d}{d(t)}I(x(t),t)=\nabla I^T (\frac{dx}{dt})+\frac{\partial I}{\partial t}=0 d(t)dI(x(t),t)=IT(dtdx)+tI=0
This constraint is often called the optical flow constraint. The desired local flow vector (velocity) is given by v = d x d t v=\frac{dx}{dt} v=dtdx.

Prof: the derivative of d I d x d x d t \frac{dI}{dx}\frac{dx}{dt} dxdIdtdx, where the first component is ∇ I \nabla I I is ( ∂ I ∂ x , ∂ I ∂ y ) T (\frac{\partial I}{\partial x},\frac{\partial I}{\partial y})^T (xI,yI)T.

So, the first component can be described as: this is the flow vector v v v, (which represents the movement direction), projection on the image gradient ∇ I \nabla I I .

∇ I \nabla I I Is the spatial brightness derivative, ∂ I ∂ t \frac{\partial I}{\partial t} tI is the temporal brightness derivative, d x d t \frac{dx}{dt} dtdx is the velocity vector.

在这里插入图片描述

在这里插入图片描述

2.2 Constant motion in a neighborhood

One assumes that v v v is constant over a neighborhood window W ( x ) W(x) W(x) of the point x x x:
∇ I ( x ′ , t ) T v + ∂ I ∂ t ( x ′ , t ) = 0 , ∀ x ′ ∈ W ( x ) . \nabla I(x',t)^T v + \frac{\partial I}{\partial t}(x',t)=0, \quad \forall x'\in W(x). I(x,t)Tv+tI(x,t)=0,xW(x).

2.3 Compute the velocity vector

Compute the best velocity vector v v v for the point x x x by minimizing the least square error:
E ( v ) = ∫ W ( x ) ∣ ∇ I ( x ′ , t ) T v + I t ( x ′ , t ) ∣ 2 d x ′ . E(v)=\int_{W(x)}\left| \nabla I(x',t)^Tv+I_t(x',t)\right|^2dx'. E(v)=W(x) I(x,t)Tv+It(x,t) 2dx.
Setting the derivative to zero we obtains:
d E d v = 2 M v + 2 q = 0 \frac{dE}{dv}=2Mv+2q=0 dvdE=2Mv+2q=0

在这里插入图片描述

2.4 KLT tracker

KLT tracker. A simple feature tracking algorithm. However, this is not reliable. When the contrast or the image pixel deviation in a low manner, the gradient is easy to be zero, which make the M ( x ) M(x) M(x) is easy to un-invertible, which can not guarantee to be larger than a threshold. So, these tracking points are no longer useful, we should find another pixel points to initial as new tracking points.

在这里插入图片描述

Even d e t ( M ) ≠ 0 det(M)\neq 0 det(M)=0, dose not guarantee robust estimates of velocity, the inverse of M ( x ) M(x) M(x) may not stable if d e t ( M ) det(M) det(M) is very small.

3. Robust feature point extraction: Harris Corner detector.

So, to guarantee robust estimation of velocity, a robust feature point extraction algorithm has been proposed. Named Harris Corner extraction.

在这里插入图片描述

4. Eliminate the brightness changes.

  1. Since the motion is no longer translational, one need to generalize the motion model for window W ( x ) W(x) W(x), so, we can use affine motion model or homograph motion model.

  2. Robust to illumination changes.

    We can use Normalized Cross Correlation to reduce the intensity changes.

在这里插入图片描述

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

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

相关文章

19 calloc 和 realloc 虚拟内存分配的调试

前言 前面提到了 malloc 虚拟内存分配相关的内容 malloc 虚拟内存分配的调试(1) malloc 虚拟内存分配的调试(2) 这里提 calloc 和 realloc, 这两个函数 虽然没有 malloc 使用频率那么高 但是 还是有很大的知名度的, 本文这里 我们来看一下 calloc 此函数传入两个参数, 第…

【系统集成项目管理工程师】项目成本管理

💥十大知识领域:项目成本管理 主要考计算题 项目进度管理包括以下 4 个过程: 制订成本管理计划成本估算成本预算成本控制 一、制订成本管理计划 制订了项目成本结构、估算、预算和控制的标准 输入工具与技术输出项目管理计划项目章程事业环境因素组织过…

拼凑出来的低代码平台,真的好用吗?(浅谈行业怪象)

0️⃣前言 这几年低代码概念非常火热,市面上的低代码平台如雨后春笋应运而生,有许多身边的朋友对我说:“未来的研发方式一定是低代码的、低技术门槛的,低代码开发是一项技术革新。 ” 然而,就在我打算对它进行深入研究…

【业务数据分析】——十大常用数据分析方法

目录 一、数据分析方法 二、营销管理方法论 1、SWOT分析 2、PEST分析 3、4P理论 三、常用数据分析方法论 1、公式拆解 2、对比分析 3、A/Btest 4、象限分析 5、帕累托分析 6、漏斗分析 7、路径分析 8、留存分析 9、5W2H分析法 10、麦肯锡逻辑树分析法 一、数据…

基于html+css的图片展示23

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

4.4 埃尔米特插值

为什么有埃尔米特插值法: 埃尔米特插值法是一种常用的数值方法,主要用于在给定的数据点集上构造一个可微的函数来近似描述这些数据点的趋势和特征。埃尔米特插值法有以下几个优点: 精度高:埃尔米特插值法可以通过给定数据点的函数…

如何在个人web项目中使用会话技术(cookiesession)?

编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 服务器软件:apache-tomcat-8.5.27 目录 一. 什么是会话?二. 为什么要使用会话技术?三. 如何使用会话技术?3.1 Cookie(客户端的会话技术…

springboot+vue 个人健康信息管理系统

系统分为用户和医师,管理员三个角色 管理员的主要功能有: 1.管理员输入账户登陆后台 2.个人中心:管理员修改密码和账户信息 3.用户管理:对注册的用户信息进行添加,删除,修改,查询 4.医师管理&am…

seo文章批量更新-SEO文章自动批量生成

使用SEO文章生成器,让您的网站排名更靠前! 您是否对搜索引擎排名感到困扰?难道您想要网站排名更好,但却没有足够的时间和资源进行SEO优化吗?那么您需要尝试使用SEO文章生成器来帮助您的网站获得更好的排名&#xff01…

数据结构(二)—— 链表

文章目录 一、链表基础1.1 链表定义1.2 创建链表1.3 删除链表某一节点1.4 与数组的对比二、题2.1 203 移除链表元素2.2 707 设计链表2.3 206 反转单链表2.4 24 两两交换链表中的节点2.5 9 删除链表的倒数第N个节点2.6 面试题 02.07. leetcode160 链表相交2.7 142 环形链表II2.7…

Verilog带参数的`define用法

宏除了可以进行简单的文本替换,还可以像函数和任务一样传递指定多个参数分别对文本进行对应的替换. 示例1: define Disp(pa,pb,pc) \initial \begin \#1200; \$display("%d \n",(papbpc)); \$display(" data_ pa data_ pb data_ pc %d",(…

微信小程序 基于Promise 对 wx.request 封装处理

导语: 当我们进行微信小程序开发的时候,会经常涉及到发送网络请求来进行后台数据交互,而在微信小程序中,用来 发送请求的方法是 wx.request() , 但是由于 wx.request() 方法 不支持 Promise 风格的调用,所以导致 wx.re…

【C++从0到王者】第一站:从C到C++

目录 一、命名空间 1.C的命名缺陷 2.域和命名空间 3.命名空间的使用与嵌套 二、输入输出 三、缺省参数(默认参数) 1.缺省参数的概念 2.缺省参数分类 1>全缺省参数 2>半缺省参数 3.缺省参数的一些使用场景 4.缺省参数在分文件使用的注意…

系统运维(Docker篇)

前言 打怪升级之路,从未停息 ​ 在这个社会信息技术的发展速度越来越快,这种快速发展带来了激烈的竞争。在这个竞争性的环境中,只有不断学习和更新自己的技能,才能保持竞争力。其次随着云计算、容器化、自动化等技术的出现&…

Qt Quick - 容器控件综述

Qt Quick - 容器控件综述 一、概述二、ApplicationWindow Control三、Frame Control四、GroupBox Control五、Page Control六、Pane Control七、ScrollView Control八、StackView Control九、SwipeView Control十、TabBarControl十一、ToolBar控件 一、概述 Qt Quick Controls…

Linux基础——FTP原理与配置

Linux基础——FTP原理与配置 一、文件传输协议——FTP服务二、ftp配置文件解析三、FTP服务器搭建 一、文件传输协议——FTP服务 FTP是典型的C/S结构的应用层协议,需要由服务器软件、客户端软件两个部分共同实现文件传输功能 FTP 连接模式 FTP服务器默认使用TCP协议…

设计师找灵感,就上这5个网站~

分享5个设计灵感网站,多看看设计大佬的优秀作品,对提升审美、灵感都有很大的帮助,还可以结合好的设计运用到自己的作品当中,话不多说,上干货~ (PS:部分网站需要科学上网才能访问~) …

celery简单入门

celery B站连接:https://www.bilibili.com/video/BV1jg4y13718?p7&spm_id_frompageDriver&vd_source1717654b9cbbc6a773c2092070686a95 创建项目celery_project 一、新建一个celery_task.py文件 二、新建一个produce_task.py文件 三、新建一个result.py…

Linux 机器间配置 SSH 免密登录

在日常工作中,服务器常常会有多台。特别是应用服务器存在多台的情况下,在每台机器手动部署或升级服务,每次登录多台机器特别麻烦,通过一台机器跳转每次输入密码(一般都是超强密码)也麻烦。所以说配置机器间…

如何智能改写文案内容-如何用ai改字

伪原创在线文章生成器 在当今数字时代,营销推广已成为各行各业的必备工具,其中之一便是内容营销。作为内容营销的一部分,文章撰写是非常关键的环节。为了满足市场需求,越来越多的在线文章生成器涌现出来,其中最受欢迎…