目录:
1.optical flow的通俗理解
2.optical flow的官方定义
3.optical flow的简单应用
1.optical flow的通俗理解
optical flow,一般译为“光流”,可以理解为光的流动,是一种运动状态的表征。
从本质上说,光流就是一种视觉运动,一种在这个运动着的世界里能明显感觉到的视觉运动。
光流可以反映两种信息:1).与运动目标之间的距离的远近;2).与运动方向的角度大小。
例如,1).反映距离的远近:当你坐在火车上,然后往窗外看。你可以看到树、地面、建筑等物体都在往列车行进的相反方向运动。这个运动就是光流。而且,不难发现,他们的运动速度都不一样,这说明:通过不同目标的运动速度可以判断它们与我们的距离。距离越远的目标,例如云、山,移动的速度越慢;离得越近的物体,例如建筑和树,移动的速度越快;
2).反映角度的大小(夹角):光流除了提供远近外,还可以提供角度信息。与物体运动方向成90度方向(可以想象成火车行进方向与其垂直的方向)的运动的物体速度要比其他角度的快,当小到0度的时候,也就是物体朝着我们的方向直接撞过来,我们就是感受不到它的运动(光流)了,看起来好像是静止的。当它离我们越近,就越来越大,距离越远就越小。
2.optical flow的官方定义
光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。
一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。
当人的眼睛观察运动物体时,物体的景象在人眼的视网膜上形成一系列连续变化的图像,这一系列连续变化的信息不断“流过”视网膜(即图像平面),好像一种光的“流”,故称之为光流(optical flow)。光流表达了图像的变化,由于它包含了目标运动的信息,因此可被观察者用来确定目标的运动情况。
研究光流场的目的就是为了从图片序列中近似得到不能直接得到的运动场。运动场,其实就是物体在三维真实世界中的运动;光流场,是运动场在二维图像平面上(人的眼睛或者摄像头)的投影。
那通俗的讲就是通过一个图片序列,把每张图像中每个像素的运动速度和运动方向找出来就是光流场。那怎么找呢?咱们直观理解肯定是:第t帧的时候A点的位置是(x1, y1),那么我们在第t+1帧的时候再找到A点,假如它的位置是(x2,y2),那么我们就可以确定A点的运动了:(ux, vy) = (x2, y2) - (x1,y1)。那怎么知道第t+1帧的时候A点的位置呢? 这就存在很多的光流计算方法了。
1981年,Horn和Schunck创造性地将二维速度场与灰度相联系,引入光流约束方程,得到光流计算的基本算法。人们基于不同的理论基础提出各种光流计算方法,算法性能各有不同。Barron等人对多种光流计算技术进行了总结,按照理论基础与数学方法的区别把它们分成四种:基于梯度的方法、基于匹配的方法、基于能量的方法、基于相位的方法。近年来神经动力学方法也颇受学者重视。
3.optical flow的简单应用
例如在做深度图估计的任务中,大部分研究者趋向于假设场景是静态的,对于运动的目标没有采取措施,然而这种假设忽略了运动的目标。加入optical flow估计就可以解决运动目标的问题。
https://blog.youkuaiyun.com/qq_22194315/article/details/79347726