Lucas-Kanade算法总结
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算法总结的更多相关文章
- Lucas–Kanade光流算法学习
Lucas–Kanade光流算法是一种两帧差分的光流估计算法.它由Bruce D. Lucas 和 Takeo Kanade提出. 光流(Optical flow or optic f ...
- Cv运动分析与对象跟踪(转)
Cv运动分析与对象跟踪 目录 [隐藏] 1 背景统计量的累积 1.1 Acc 1.2 SquareAcc 1.3 MultiplyAcc 1.4 RunningAvg 2 运动模板 2.1 Upd ...
- SVO+PL-SVO+PL-StVO
PL-SVO是基于点.线特征的半直接法单目视觉里程计,我们先来介绍一下基于点特征的SVO,因为是在这个基础上提出的. [1]References: SVO: Fast Semi-Direct ...
- 【Matlab】运动目标检测之“光流法”
光流(optical flow) 1950年,Gibson首先提出了光流的概念,所谓光流就是指图像表现运动的速度.物体在运动的时候之所以能被人眼发现,就是因为当物体运动时,会在人的视网膜上形成一系列的 ...
- 光流算法:Brox算法(转载)
参考论文:1. High Accuracy Optical Flow Estimation Based on a Theory for Warping, Thomas Box, ECCV20042. ...
- 光流算法:Brox算法
参考论文:1. High Accuracy Optical Flow Estimation Based on a Theory for Warping, Thomas Box, ECCV20042. ...
- 【科技】扩展Lucas随想
扩展Lucas解决的还是一个很Simple的问题: 求:$C_{n}^{m} \; mod \; p$. 其中$n,m$都会比较大,而$p$不是很大,而且不一定是质数. 扩展Lucas可以说和Luca ...
- 12 KLT算法
1 去除多余模块的 #-*- coding:utf-8 -*- ''' Lucas-Kanade tracker ==================== Lucas-Kanade sparse op ...
- 目标跟踪之Lukas-Kanade光流法
转载自:http://blog.csdn.net/u014568921/article/details/46638557 光流是图像亮度的运动信息描述.光流法计算最初是由Horn和Schunck于19 ...
- 泡泡一分钟: Deep-LK for Efficient Adaptive Object Tracking
Deep-LK for Efficient Adaptive Object Tracking "链接:https://pan.baidu.com/s/1Hn-CVgiR7WV0jvaYBv5 ...
随机推荐
- combbox选中新添加的数据
用到这样的一个功能:在CombBox中添加一项,并激活此项. string uvaName = newUVA.uvaName; this.comboBox_allUVA.Items.Add(uvaNa ...
- docker探索-镜像使用(四)
前言 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载. 1.查看本地主机上的镜像列表 [root@ ...
- python使用selenium
首先安装 pip install selenium 测试抓取baidu,其中的chromedriver.exe需要自己下载,百度有很多的 import timefrom selenium import ...
- keras系列︱迁移学习:利用InceptionV3进行fine-tuning及预测、完美案例(五)
引自:http://blog.csdn.net/sinat_26917383/article/details/72982230 之前在博客<keras系列︱图像多分类训练与利用bottlenec ...
- windows 下 MySql5.6主从复制
说明: 1.MySql 版本5.6 2.本例中使用的主从服务器ip分别为:192.168.120.211:192.168.120.209 一.配置master服务器 1.配置 在my.ini中[mys ...
- Ansible 进阶技巧
原文 http://www.ibm.com/developerworks/cn/linux/1608_lih_ansible/index.html?ca=drs- 简介 Ansible 是一个系 ...
- 软件开发常用的linux命令心得
软件开发过程中难免要经常对主机进行配置或者部署等操作,想到一些就写一些了,以后再更新 解压命令: a.如果是tar文件,则直接用 “tar zxvf 文件名”: b.如果是zip文件,用 “unzip ...
- drupal7 的核心模块
核心模块 Drupal 7 block Block(区块)模块提供了与区块相关的功能,通过区块可将内容放置在网站不同区域.Block模块是Drupal的基础模块之一,不能被禁用.它是通过单独的区块管理 ...
- 什么是API网关?
版权声明:本文为博主原创文章,未经博主允许不得转载. http://blog.csdn.net/lcx216/article/details/52913645 1.API网关介绍 API网关是一个服务 ...
- PCL点云曲面重建(1)
在测量较小的数据时会产生一些误差,这些误差所造成的不规则数据如果直接拿来曲面重建的话,会使得重建的曲面不光滑或者有漏洞,可以采用对数据重采样来解决这样问题,通过对周围的数据点进行高阶多项式插值来重建表 ...