zoukankan      html  css  js  c++  java
  • HS 光流法详解

    前言

      本文较为详细地介绍了一种经典的光流法 - HS 光流法

    光流法简介

      当人的眼睛被观察物体发生相对运动时,物体的影像视网膜平面上形成一系列连续变化的图像,这一系列变化的图像信息不断 "流过" 视网膜,好像是一种光的  "",所以被称为光流

      光流是基于像素点定义的,所有光流的集合称为光流场。通过对光流场进行分析,可以得到物体相对观察者的运动场。在这过程中分析的算法称为光流法

    HS 光流法的推导

      HS光流计算基于物体移动的光学特性的两个假设:

        1. 运动物体的灰度在很短的间隔时间内保持不变

        2. 给定邻域内的速度向量场变化是缓慢

      由 1 可得:

        (1)

      上式右边在 x y 处泰勒展开,得:

        (2)

      ε 是包含有 δx,δy 和 δt 的二阶和更高阶项。两边减去 I(x,y,t),再除以δt有:

        (3)

      O (δt) 是含δt的一个小量。在极限中当δt->0时,上式变成:

        (4)

      令 u = dx/dt  v = dy / dt,得:

        (5)

      这条式子就是光流约束方程,它反映了灰度与速度的一个对应关系

      但,一个式子中有两个变量:u 和 v,显然不能将速度解出,因此需要引入一个新的条件:光流的全局平滑约束条件

      即 u 和 v 随着像素点移动而发生的改变是缓慢的,局部区域的变化不大,尤其是在目标做无变形刚体运动时,局部区域速度的空间变化率为0。

      因此,引入以下速度平滑项:

        (6)

      对于所有的像素点,需要满足上式和最小。

      综合光流约束条件 (5) 和速度平滑约束条件 (6),可建立以下的极小化方程

        (7)

      式中的 α平滑权重系数,表示速度光滑项所占的权重

      即:

        (8)

      采用变分计算,根据欧拉方程,

        (9)

        (10)

      得到:

        (11)

        (12)

      式中,拉普拉斯算子可以用某一点的速度与其周围速度平均值之差来近似,有:

      (13)

      (14)

      化简 (13) 和 (14),可得:  ( 这一步运算量比较大 )

        (15)

        (16)

      这样便可以考虑使用迭代法进行求解了,但在此之前,还需要明确其中几个量的求法。

      对于 u 和 v 的均值,采用九点差分格式进行计算

        (17)

        (18)

      而对于其中的灰度梯度,可以采用以下方法近似计算:

        (19)

        (20)

        (21)

      至此,所有的量都已明确下来,输入前后两帧灰度进行迭代运算便可以得到速度场了,下面是具体的执行过程。

    HS光流法执行流程图

      

      1. 读取雷达拼图数据并初始化

      2. 计算求解点的灰度梯度

      3. 设定速度平滑权重系数( 一般设为1 ),初始速度( 一般设为0 ),迭代误差等。

      4. 计算 k-1 次速度平均值

      5. 计算 k 次迭代的速度值

      6. 计算两次迭代光流值的误差,如果小于给定误差阈值,或者者迭代次数超过迭代次数,则计算过程结束,否则进行k+1次迭代。

      

  • 相关阅读:
    修改Anaconda中Jupyter Notebook默认工作路径
    npm卸载和安装淘宝镜像原
    hash和history两种模式的区别
    威胁建模之WEB应用自动化截图
    Ubuntu系统清理
    Ubuntu环境的docker实践——ONOS
    BUUCTF-crypto:信息化时代的步伐
    BUUCTF-crypto:四面八方
    BUUCTF-crypto:[HDCTF2019]basic rsa
    BUUCTF-crypto:rsarsa
  • 原文地址:https://www.cnblogs.com/scut-fm/p/3748007.html
Copyright © 2011-2022 走看看