Lucas-Kanade光流算法通过假设像素的变化速度与其临近像素的变化一致来增加约束条件,并利用最小二乘法来计算光流【学习本文内容前,需要先了解光流的基础知识】。构建目标函数如下:
E=∑p′nearpg(p′)(uIpx′+vIpy′+It)2E = \sum_{p^{\prime}\ near\ p}g(p^{\prime})(uI_{p^{\prime}_{x}} + vI_{p^{\prime}_{y}} + I_{t})^2 E=p′ near p∑​g(p′)(uIpx′​​+vIpy′​​+It​)2

其中,p′p^{\prime}p′表示像素ppp附近的像素(包括像素ppp本身),它们共享速度(u,v)(u,v)(u,v)。g(p′)g(p^{\prime})g(p′)表示权重函数,限定每个临近像素p′p^{\prime}p′对像素ppp的影响,常用的权重函数有高斯函数。对于计算目标函数EEE取得最小值时uuu和vvv的取值,可采用梯度下降法:
{u:=u−α∂E∂uv:=v−α∂E∂v\begin{cases} u := u - \alpha\frac{\partial{E}}{\partial{u}} \\ v := v - \alpha\frac{\partial{E}}{\partial{v}} \end{cases} {u:=u−α∂u∂E​v:=v−α∂v∂E​​

其中,∂E∂u\frac{\partial{E}}{\partial{u}}∂u∂E​和∂E∂v\frac{\partial{E}}{\partial{v}}∂v∂E​的计算式如下:
∂E∂u=∑p′nearp2g(p′)(uIpx′2+vIpy′Ipx′+ItIpx′)∂E∂v=∑p′nearp2g(p′)(uIpx′Ipy′+vIpy′2+ItIpy′)\frac{\partial{E}}{\partial{u}} = \sum_{p^{\prime}\ near\ p}2g(p^{\prime})(uI_{p^{\prime}_{x}}^2 + vI_{p^{\prime}_{y}}I_{p^{\prime}_{x}} + I_{t}I_{p^{\prime}_{x}}) \\ \frac{\partial{E}}{\partial{v}} = \sum_{p^{\prime}\ near\ p}2g(p^{\prime})(uI_{p^{\prime}_{x}}I_{p^{\prime}_{y}} + vI_{p^{\prime}_{y}}^2 + I_{t}I_{p^{\prime}_{y}}) ∂u∂E​=p′ near p∑​2g(p′)(uIpx′​2​+vIpy′​​Ipx′​​+It​Ipx′​​)∂v∂E​=p′ near p∑​2g(p′)(uIpx′​​Ipy′​​+vIpy′​2​+It​Ipy′​​)

扩展

Lucas和Kanade在1981年发表的论文AnIterativeImageRegistrationTechniquewithanApplicationtoStereoVisionAn\ Iterative\ Image\ Registration\ Technique\ with\ an\ Application\ to\ Stereo\ VisionAn Iterative Image Registration Technique with an Application to Stereo Vision中指出,此算法还可以用于计算图像间的旋转、缩放、裁剪、对比度和亮度的变化。

令F(p)F(p)F(p)和G(p)G(p)G(p)分别为图像一和图像二,ppp表示像素。图像间的旋转、缩放和裁剪的关系可以构建如下表达式:
G(p)=F(p+h)AG(p) = F(p + h)A G(p)=F(p+h)A

注:原文中的公式是G(p)=F(pA+h)G(p) = F(pA + h)G(p)=F(pA+h)。不过,我认为G(p)=F(p+h)AG(p) = F(p + h)AG(p)=F(p+h)A表达更合适。

其中,AAA为矩阵,表示图像FFF和图像GGG之间的线形变化,例如:旋转矩阵。hhh表示光流(u,v)(u,v)(u,v)。可构建目标函数如下:
E=∑p′nearp[F(p+h)A−G(p)]2E = \sum_{p^{\prime}\ near\ p}[F(p + h)A - G(p)]^2 E=p′ near p∑​[F(p+h)A−G(p)]2

图像间的对比度和亮度变化关系可以构建如下表达式:
G(p)=αF(p)+βG(p) = \alpha F(p) + \beta G(p)=αF(p)+β

其中,α\alphaα表示图像对比度变化,β\betaβ表示图像亮度变化。至此,可构建新的目标函数来同时计算图像间的旋转、缩放、裁剪、对比度和亮度的变化。如下:
E=∑p′nearp[F(p+h)A−(αF(p)+β)]2E = \sum_{p^{\prime}\ near\ p}[F(p + h)A - (\alpha F(p) + \beta)]^2 E=p′ near p∑​[F(p+h)A−(αF(p)+β)]2

Lucas-Kanade光流算法 — Lucas-Kanade Method相关推荐

  1. 【算法分析】Lucas–Kanade光流算法

    (最近再看光流法的应用,发现一篇对算法讲的非常好的文章,转载过来看) 转自:gnuhpc的百草园和三味书屋 作者:gnuhpc@gmail.com 简介:在计算机视觉中,Lucas–Kanade光流算 ...

  2. Lucas–Kanade光流算法

    1. 光流的概念 •空间运动物体在观察成像平面上的像素运动的瞬时速度 2. 光流法的原理 •利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相 ...

  3. 光流(二)--光流算法

    原文: http://www.cnblogs.com/gnuhpc/archive/2012/12/04/2802124.html 简介:在计算机视觉中,Lucas–Kanade光流算法是一种两帧差分 ...

  4. Lucas-Kanade光流算法原理

    光流(Optical flow or optic flow) 它是一种运动模式,这种运动模式指的是一个物体.表面.边缘在一个视角下由一个观察者(比如眼睛.摄像头等)和背景之间形成的明显移动. 光流技术 ...

  5. INDEMIND带你玩转OpenCV4.0(一):DIS光流算法解析

    文章目录 一.OpencCV 4.0 新特性介绍 首先是OpenCV完全支持了C++ 11 DNN(深度神经网络)模块是目前OpenCV更新最重要的模块 G-API 为算法的硬件优化加速提供计算图支持 ...

  6. 图像缩放算法_技术专栏|基于无人机LK光流算法的适用性及其优化方法探究

    点击上方蓝字关注我们 问题描述 ◆ ◆ ◆ 一般的LK光流算法存在一个比较明显的局限性.我们知道,一般的LK光流算法必须包含三个假设: (1)亮度恒定: (2)时间连续或者运动是小运动: (3)空间一 ...

  7. 光流 | 基于Horn-Schunck HS变分光流算法改进

    /********************************************************** github:https://github.com/MichaelBeechan ...

  8. OpenCV密集光流算法的实例(附完整代码)

    OpenCV密集光流算法的实例 OpenCV密集光流算法的实例 OpenCV密集光流算法的实例 #include <iostream> #include <iomanip> # ...

  9. OpenCV Gunnar Farneback的密集光流算法(附完整代码)

    OpenCV Gunnar Farneback的密集光流算法 OpenCV Gunnar Farneback的密集光流算法 OpenCV Gunnar Farneback的密集光流算法 #includ ...

最新文章

  1. 学习笔记TF065:TensorFlowOnSpark
  2. HTML5 3D旋转图片相册
  3. 使用iOS原生sqlite3框架对sqlite数据库进行操作
  4. 034_Tabs标签页
  5. 网络工程师历年试题解析(PDF文字版)2004-2009
  6. IAAS: IT公司去IOE-Alibaba系统构架解读
  7. Windows编程之多媒体
  8. Githug第42关rebase_onto通关秘籍
  9. plt.subplots中的ax = ax.flatten()
  10. php 邮箱开发教程,php开发中表单验证邮箱及URL的教程
  11. oracle ora27072,ORA-27072: skgfdisp
  12. 判断m是否为素数c语言程序,c语言判断是否素数程序代码
  13. pta查验身份证。个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。
  14. 苹果系统自带的计算机怎么恢复出厂设置,苹果电脑恢复出厂化设置的教程_苹果电脑怎样恢复出厂系统-win7之家...
  15. 串口485接法图_rs485通讯接口定义图详解
  16. word使用过程中遇到的问题记录(二):如何画柱状图和折线图的组合图?
  17. 100以内的三连加减法JAVA_100以内的加减法巧算(转)
  18. 数据库连接中的等值连接、自然连接、外连接、左外连接和右外连接
  19. Ubuntu配置locale
  20. 高可靠性技术之RRPP和VRRP

热门文章

  1. Qt之打开IOS相册图片和保存图片到相册
  2. TopView(赢富)数据图片怎么看
  3. Android kernel和标准Linux Kernel的差异
  4. OpenOCD应用之J-Link
  5. 今日头条信息流广告浅尝截止
  6. ios 常用的宏定义
  7. 版本号的正则表达式-下划线+短横线+点
  8. 全志平台UI菜单背景图片制作方法
  9. 【文献学习】薄膜的脱湿失效
  10. 优化不必要的动画,以减少Mac卡顿