Horn–Schunck 光流法与其算法理解(gup cuda)
1. 基于Horn-Schunck模型的光流算法
1.1 光流的约束条件
光流 的假设条件认为图像序列,在时间t 的某一像素点与在时间t+1的这一像素点的偏移量保持不变,即 。这就是灰度值守恒假设,通过Taylor展开,就能得到光流的约束条件(OFC): ,其中下标表示图像的梯度。
1.2 Horn-Schunck 模型
1981年,Horn和Schunck根据同一个运动物体的光流场具有连续、平滑的特点, 提出一个附加约束条件,将光流场的整体平滑约束转换为一个变分的问题。它的能量方程如下:
其中数据项表示灰度值守恒约束,平滑项表示光流平滑约束。
1.3 Euler-Lagrange方程
根据Horn-Schunck能量方程,可以推导出离散的欧拉-拉格朗日方程如下:
其中, 表示图像像素点的坐标, 表示一个像素点的上下左右四个方向的相邻的像素点,当然,在图像的边界会少于四个元素。
1.4 超松弛迭代 (SOR)
根据上面的欧拉-拉格朗日方程,不难推到出迭代方程。这里选用收敛速度最快的超松弛算法(SOR),光流的初始值是,迭代方程如下:
其中, w是迭代的权重因子, k 是迭代的次数, 是光流的计算的权值, 表示第 个像素点的上和左的相邻像素点,表示第 个像素点的下和右的相邻像素点。
以上来自http://www.eefocus.com/wangzhibin/blog/13-08/296536_641cd.html
2算法时间对比
使用图片 Grove2 (来自 http://vision.middlebury.edu/flow/data/)
640 x 480
金字塔层数 3
迭代次数 100
cpu i5 3210m GPU GT630m
时间 4.479s 1.496s
加速比 2.99
金字塔层数 3
迭代次数 500
cpu i5 3210m GPU GT630m
时间 20.586s 3.905s
加速比 5.27
3结论
加速比来自算法的并行计算
如果算法可并行程度高,则计算加快。
最新文章
- Redis安装配置(Windows版)
- gzip压缩及测试方法【转载】
- 编译PHP5缺t1lib包安装
- jquery列表顺序倒转排序效果
- php自动载入类的实践
- three.js正交投影照相机
- git reset soft,hard,mixed之区别深解
- FileStorage Read String Start With Number Need Quotation Mark 读取数字开头的字符串需要加引号
- Codeforces Round #333 (Div. 1) C. Kleofáš and the n-thlon 树状数组优化dp
- Android之ORMLite实现数据持久化的简单使用
- Get请求携带数据量的各种限制及解决办法、Post请求说明
- 垃圾收集器GC的种类
- 通过EL表达式,后台数据传到前台,引号及后面的数据被截断的问题:
- [Java] Java IO 概况
- Python读写文件需要注意的地方 2015-03-31 23:19 69人阅读 评论(0) 收藏
- zookeeper之分布式锁以及分布式计数器(通过curator框架实现)
- java人民币读法转换
- c语言 实验1
- delphi中退出是弹出让你确定的几种确定对话框怎么写?
- perl控制流介绍(if条件,while,for循环,foreach)