Lucas-Kanade算法广泛用于图像对齐、光流法、目标追踪、图像拼接和人脸检测等课题中。

一、核心思想

给定一个模板和一个输入,以及一个或多个变换,求一个参数最佳的变换,使得下式最小化

在求最优解的时候,该算法假设目前的变换参数已知,并迭代的计算的增量,使得更新后的能令上式比原来更小。则上式改写为:

二、算法流程

1.初始化参数向量

2.计算及其关于导数,求得参数增量向量

3.更新

4.若小于某个小量,即当前参数向量基本不变化了,那么停止迭代,否则继续2,3两步骤。

三、具体做法

做一阶泰勒级数展开,则目标函数变为:

对其求导,并令导数为0,得到下式:

对上式中的求解即可,得到的是的解析解:

其中,

四、Lucas-Kanade算法(前向加性算法)

迭代:

1) 利用,将中各个像素点的坐标对应到中的相应的像素点的坐标,得到。即和的大小尺寸(像素个数和长宽)相同。

2) 计算,获得误差图像。

3) 计算中与经过变换对应的像素点的梯度图像,即计算中各个点在中的梯度。利用,将中各个像素点的坐标对应到的梯度图像中各个点的坐标。

4) 计算在设定下的Jacobian。即代入当前参数,计算。如果是二维坐标,即,也就是说每行是对中每个分量对于的每个参数分量的导数:

5) 计算最速梯度下降图。即利用中每个像素点相乘。

6) 利用上述提到的公式计算Hessian矩阵

7) 利用上面步骤计算得到的值,计算

8) 利用上述提到的公式计算参数向量的增量

9) 更新

五、Baker-Matthews算法(逆向组成算法)

预处理:

1) 计算模板的梯度图像

2) 计算在设定下的Jacobian

3) 计算最速梯度下降图。即利用中每个像素点相乘。

4) 利用公式计算Hessian矩阵

迭代:

5) 利用,将中各个像素点的坐标对应到中的相应的像素点的坐标,得到。即的大小尺寸(像素个数和长宽)相同。

6) 计算,获得误差图像。

7) 利用上面步骤计算得到的值,计算

8) 利用上述提到的公式计算参数向量的增量

9) 更新。即将原有的矩阵与矩阵的逆相乘。

六、参考文献和资料

[1]Matthews I, Baker S. Active appearance models revisited[J]. International Journal of Computer Vision, 2004, 60(2): 135-164.

[2]Cootes T F, Edwards G J, Taylor C J. Active appearance models[J]. IEEE Transactions on pattern analysis and machine intelligence, 2001, 23(6): 681-685.

[3]Baker S, Matthews I. Lucas-kanade 20 years on: A unifying framework[J]. International Journal of Computer Vision, 2004, 56(3): 221-255.

[4]利用L-K算法实现的图像对齐程序:http://www.codeproject.com/Articles/24809/Image-Alignment-Algorithms

Lucas-Kanade算法总结的更多相关文章

  1. Lucas–Kanade光流算法学习

    Lucas–Kanade光流算法是一种两帧差分的光流估计算法.它由Bruce D. Lucas 和 Takeo Kanade提出.         光流(Optical flow or optic f ...

  2. Cv运动分析与对象跟踪(转)

    Cv运动分析与对象跟踪   目录 [隐藏] 1 背景统计量的累积 1.1 Acc 1.2 SquareAcc 1.3 MultiplyAcc 1.4 RunningAvg 2 运动模板 2.1 Upd ...

  3. SVO+PL-SVO+PL-StVO

    PL-SVO是基于点.线特征的半直接法单目视觉里程计,我们先来介绍一下基于点特征的SVO,因为是在这个基础上提出的. [1]References:      SVO: Fast Semi-Direct ...

  4. 【Matlab】运动目标检测之“光流法”

    光流(optical flow) 1950年,Gibson首先提出了光流的概念,所谓光流就是指图像表现运动的速度.物体在运动的时候之所以能被人眼发现,就是因为当物体运动时,会在人的视网膜上形成一系列的 ...

  5. 光流算法:Brox算法(转载)

    参考论文:1. High Accuracy Optical Flow Estimation Based on a Theory for Warping, Thomas Box, ECCV20042. ...

  6. 光流算法:Brox算法

    参考论文:1. High Accuracy Optical Flow Estimation Based on a Theory for Warping, Thomas Box, ECCV20042. ...

  7. 【科技】扩展Lucas随想

    扩展Lucas解决的还是一个很Simple的问题: 求:$C_{n}^{m} \; mod \; p$. 其中$n,m$都会比较大,而$p$不是很大,而且不一定是质数. 扩展Lucas可以说和Luca ...

  8. 12 KLT算法

    1 去除多余模块的 #-*- coding:utf-8 -*- ''' Lucas-Kanade tracker ==================== Lucas-Kanade sparse op ...

  9. 目标跟踪之Lukas-Kanade光流法

    转载自:http://blog.csdn.net/u014568921/article/details/46638557 光流是图像亮度的运动信息描述.光流法计算最初是由Horn和Schunck于19 ...

  10. 泡泡一分钟: Deep-LK for Efficient Adaptive Object Tracking

    Deep-LK for Efficient Adaptive Object Tracking "链接:https://pan.baidu.com/s/1Hn-CVgiR7WV0jvaYBv5 ...

随机推荐

  1. JAVA-JSP内置对象之session对象设置并获得session生命周期

    相关资料:<21天学通Java Web开发> session对象设置并获得session生命周期1.通过session对象的setMaxInactiveInterval()方法可以设置se ...

  2. python matplotlib 画图

    import numpy as np import matplotlib.pyplot as plt from pylab import * numpy 常用来组织源数据: 使用 plot 函数直接绘 ...

  3. iOS中 语音识别功能/语音转文字教程具体解释 韩俊强的博客

    原文地址:http://blog.csdn.net/qq_31810357/article/details/51111702 前言:近期研究了一下语音识别,从百度语音识别到讯飞语音识别:首先说一下个人 ...

  4. java.io.BufferedOutputStream 源码分析

    BufferedOutputStream  是一个带缓冲区的输出流,通过设置这种输出流,应用程序就可以字节写入到缓冲区中,当缓冲区满了以后再调用底层系统,而不必针对每次字节写入调用底层系统,从而提高系 ...

  5. 放弃winform的窗体吧,改用html作界面,桌面应用程序UI的新的开发方式。

    做过很多winform项目,都为winform控件头疼不已.想实现一些漂亮的样子总是很难.我这里列举几个缺点: 1.winform控件大多是 绝对布局 ,你需要给出准确的坐标.那么在实现居中效果就会很 ...

  6. 《VS2010/MFC编程入门教程》——读书笔记

    推荐两个比较好的学习网站:http://v.dxsbb.com/jisuanji/555/ http://www.jizhuomi.com/software/257.html MFC全称Microso ...

  7. .net操作oracle,一定要用管理员身份运行 visual studio 啊,切记切记,免得报奇怪的错误。

    .net操作oracle,一定要用管理员身份运行 visual studio 啊,切记切记,免得报奇怪的错误.

  8. linux下安装jre运行环境

    上官网下载安装文件:点击打开链接 文件名:jre-8u65-linux-x64.gz安装步骤1.解压tar -xzvf jre-8u65-linux-x64.gz2.将解压后的文件放到/usr/lib ...

  9. How to deal with "Could not find component on update server. Contact VMware Support or your system administrator." in Vmware.

    手动将vmware安装目录下的vmtools镜像文件,windows.iso文件放到虚拟机的光区里. 再进入虚拟机的系统,在系统里打开光盘进行安装

  10. 3D引擎Axiom的选择与学习.

    经过前面针对OpenGL的一些特性的学习,越发觉得要学的更多,相关如LOD,各种阴影实现,场景管理如BSP与Octree等以及还没听过的各种的实现.有感自学的进度太慢,并且在做一些小DEMO时,心中不 ...