什么是光流?
当人的眼睛观察运动物体时,物体的景象在人眼的视网膜上形成一系列连续变化的图像,这一系列连续变化的信息不断“流过”视网膜(即图像平面),好像一种光的“流”,故称之为光流(optical flow)。
光流是怎么产生的?
一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。
什么是光流矢量?
通常将二维图像平面特定坐标点上的灰度瞬时变化率定义为光流矢量。
下图展示的是三维空间内物体的运动在二维成像平面上的投影。得到的是一个描述位置变化的二维矢量,但在运动间隔极小的情况下,我们通常将其视为一个描述该点瞬时速度的二维矢量u=(u,v),称为光流矢量。
光流的物理意义
光流表达了图像的变化,由于它包含了目标运动的信息,因此可被观察者用来确定目标的运动情况。光流是空间运动物体在观察成像平面上的像素运动的瞬时速度。
什么是光流法?
光流法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。
光流法基本原理
- 亮度恒定不变
即同一目标在不同帧间运动时,其亮度不会发生改变。这是基本光流法的假定(所有光流法变种都必须满足),用于得到光流法基本方程;
- 时间连续或运动是“小运动”
即时间的变化不会引起目标位置的剧烈变化,相邻帧之间位移要比较小。同样也是光流法不可或缺的假定。
光流法基本约束方程
我们认为该像素在运动前后的光强度是不变的。
约束方程只有一个,而方程的未知量有两个,这种情况下无法求解。这种不确定性称为“孔径问题”。此时需要引入另外的约束条件,从不同的角度引入约束条件,导致了不同光流场计算方法。按照理论基础与数学方法的区别把它们分成四种:
- 基于梯度(微分)的方法、
- 基于匹配的方法、
- 基于能量(频率)的方法、
- 基于相位的方法和神经动力学方法。
孔径问题
观察下图(a)我们可以看到目标是在向右移动,但是由于“观察窗口”过小我们无法观测到边缘也在下降。LK算法中选区的小邻域就如同上图的观察窗口,邻域大小的选取会影响到最终的效果。当然,这是针对于一部分稀疏光流算法而言,属于稠密光流范畴的算法一般不存在这个问题。
光流法的优缺点
- 优点
光流法的优点在于它无须了解场景的信息,就可以准确地检测识别运动日标位置,且在摄像机处于运动的情况下仍然适用。
而且光流不仅携带了运动物体的运动信息,而且还携带了有关景物三维结构的丰富信息,它能够在不知道场景的任何信息的情况下,检测出运动对象。
- 缺点
光流法的适用条件,即两个基本假设,在现实情况下均不容易满足。
1.亮度恒定不变
但是实际情况是光流场并不一定反映了目标的实际运动情况。如下图所示,左图中,光源不动,而物体表面均一,且产生了自传运动,却并没有产生光流。右图中,物体并没有运动,但是光源与物体发生相对运动,却有光流产生。因此可以说光流法法对光线敏感,光线变化极易影响识别效果。
2.小运动
现实情况下较大距离的运动也是普遍存在的。因此当需要检测的目标运动速度过快是,传统光流法也不适用。
更多
https://blog.csdn.net/qq_41368247/article/details/82562165