Horn–Schunck光流算法[1]是一种全局方法估算光流场。

参考博文:https://blog.csdn.net/hhyh612/article/details/79216021

假设条件:

HS算法除了需要满足LK光流前两个假设之外,增加了一个假设条件:

  场景中属于同一物体的像素形成光流场向量应当十分平滑,只有在物体边界的地方才会出现光流的突变,但这只占图像的一小部分,总体上来看图像的光流场应当是平滑的。

数学原理推导:

  仍然是两帧图像I(x, y, t), 和I(x+δx, y+δy, z+δz, t+δt )。要求他们之间的光流场V(u, v):

 首先定义一个能量函数, 如下:

  

  这个能量函数的前半部分是灰度变化因子,如下:

  

  后半部分是平滑因子,如下:

  

  理想的光流场,应该使这两项的值最小:即灰度变化小(亮度恒定)并且速度变化小(小运动)。

  这是一个泛函的极值问题,可以用欧拉-拉格朗日方程求解。对应上式的是双变量双函数一阶导数的欧拉-拉格朗日方程组

          

  其中上式中:

    

  求导, 得到下式:

    

  上式中Δ是拉普拉斯算子操作:

      

  实际计算中可以用下面的式子代替拉普拉斯操作:

      

  拉普拉斯操作替换后化简为下式:

      

  这是一个线性方程组,但是首先要求取u,v的均值,然而u, v的均值也是未知的,因此可以继续化简上式,分别消去u和v,得到下面的迭代公式:

         

  有了迭代公式后,u, v均值的初始值为0,计算出u, v值,然后依次迭代。直到满足如下条件,退出迭代,得到光流u, v值:

    

  其中:

    

源码及效果:

  源码链接:https://blog.csdn.net/xiaoyufei117122/article/details/53693627

  效果如下:

  

[1]  B.K.P. Horn and B.G. Schunck, “Determining optical flow.” 1981

光流法详解之二(HS光流)的更多相关文章

  1. HS 光流法详解

    前言 本文较为详细地介绍了一种经典的光流法 - HS 光流法. 光流法简介 当人的眼睛与被观察物体发生相对运动时,物体的影像在视网膜平面上形成一系列连续变化的图像,这一系列变化的图像信息不断 &quo ...

  2. 光流法详解之一(LK光流)

    Lucas–Kanade光流算法是一种两帧差分的光流估计算法.它由Bruce D. Lucas 和 Takeo Kanade提出 [1]. LK光流法有三个假设条件: 1. 亮度恒定:一个像素点随着时 ...

  3. HS光流算法详解<转载>

    HS 光流法详解 前言 本文较为详细地介绍了一种经典的光流法 - HS 光流法. 光流法简介 当人的眼睛与被观察物体发生相对运动时,物体的影像在视网膜平面上形成一系列连续变化的图像,这一系列变化的图像 ...

  4. 【转】logback logback.xml常用配置详解(二)<appender>

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  5. logback 常用配置详解(二) <appender>

    logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写 ...

  6. OutputCache属性详解(二)一 Location

    目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...

  7. 【three.js详解之二】渲染器篇

    [three.js详解之二]渲染器篇   本篇文章将详细讲解three.js中渲染器(renderer)的设置方法. three.js文档中渲染器的分支如下: Renderers CanvasRend ...

  8. RAII惯用法详解

    [1]什么是RAII惯用法? RAII是Resource Acquisition Is Initialization的缩写,意为“资源获取即初始化”. 它是C++之父Bjarne Stroustrup ...

  9. 安卓集成发布详解(二)gradle

    转自:http://frank-zhu.github.io/android/2015/06/15/android-release_app_build_gradle/ 安卓集成发布详解(二) 15 Ju ...

随机推荐

  1. linux下反弹shell

    01 前言 CTF中一些命令执行的题目需要反弹shell,于是solo一波. 02 环境 win10      192.168.43.151       监听端    装有nc kali        ...

  2. Spring 添加属性集中常见方法

    //创建容器,索要对象, package cn.lijun.Test; import org.junit.Test;import org.springframework.context.Applica ...

  3. Alpha 冲刺 (10/10)

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭鸭鸭鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 测试整体软件 展示GitHub当 ...

  4. 2019.02.28 bzoj3527: [Zjoi2014]力(fft)

    传送门 fftfftfft菜题. 题意简述:给一个数列aia_iai​,对于i=1→ni=1\rightarrow ni=1→n求出ansi=∑i<jai(i−j)2−∑i>jai(i−j ...

  5. 地址栏的路由输入不匹配时候,设置默认跳转页面(redirect)

    如果输入正确的路由,就会显示正确的页面. 如果输入错误的路由 ,则可以配置跳转到指定的页面. { redirect:"/', path:"*" ; }

  6. mysql data type <----> java data type (数值)

    https://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html +----------------------------+---- ...

  7. 2月第3周业务风控关注|上海网信办复测23个被约谈APP 涉及1号店、小红书等

    易盾业务风控周报每周呈报值得关注的安全技术和事件,包括但不限于内容安全.移动安全.业务安全和网络安全,帮助企业提高警惕,规避这些似小实大.影响业务健康发展的安全风险. 1.上海网信办复测23个被约谈A ...

  8. Android精通之OrmLite数据库框架,Picasso框架,Okio框架,OKHttp框架

    版权声明:未经博主允许不得转载 OrmLite基础知识 什么是OrmLite框架,在我没用这个框架时,不知道它有多好,用了才知道很方便哦,为了提供开发效率,Android开发者需要懂得运行多种框架进行 ...

  9. ubuntu 16.04下使用 python pip的安装问题。

    ubuntu 16.04使用 pip安装软件时,不知道为什么不能使用sudo pip install XXX 需要使用的是:python -m pip install XXX才可以.

  10. ASP.NET Web API实现微信公众平台开发(一)服务器验证

    最近朋友的微信公众号准备做活动,靠固定的微信公众平台模版搞定不了,于是请我代为开发微信后台.鉴于我也是第一次尝试开发微信后台,所以也踩了不少坑,此系列博客将会描述微信公众号各项功能的实现. 先决条件 ...