光流 — Optical Flow

光流是环境中物体和照相机发生相对移动,物体投影在图像或者视网膜上的运动轨迹,即像素的移动。我们期望通过分析图像序列中像素变化来计算环境中物体和照相机所发生的相对运动轨迹。

光流有一个前提假设:图像采集的时间间隔很小,因此,图像中某点像素的位置变化范围较小。且该点像素位置变化前后,其像素值保持不变。即:
I ( x , y , t ) = I ( x + Δ x , y + Δ y , t + Δ t ) I(x,y,t) = I(x+\Delta{x}, y+\Delta{y},t+\Delta{t}) I(x,y,t)=I(x+Δx,y+Δy,t+Δt)

其中, Δ x \Delta{x} Δx Δ y \Delta{y} Δy表示像素在 x x x y y y轴方向上的位移。 I ( x + Δ x , y + Δ y , t + Δ t ) I(x+\Delta{x}, y+\Delta{y},t+\Delta{t}) I(x+Δx,y+Δy,t+Δt) ( x , y , t ) (x,y,t) (x,y,t)处的泰勒展开为:
I ( x + Δ x , y + Δ y , t + Δ t ) = I ( x , y , t ) + Δ x I x + Δ y I y + Δ t I t + H . O . T I(x+\Delta{x}, y+\Delta{y},t+\Delta{t}) = I(x,y,t) + \Delta{x}I_{x} + \Delta{y}I_{y} + \Delta{t}I_{t} + H.O.T I(x+Δx,y+Δy,t+Δt)=I(x,y,t)+ΔxIx+ΔyIy+ΔtIt+H.O.T

其中, I x = ∂ I ∂ x I_{x} = \frac{\partial{I}}{\partial{x}} Ix=xI I y = ∂ I ∂ y I_{y} = \frac{\partial{I}}{\partial{y}} Iy=yI I t = ∂ I ∂ t I_{t} = \frac{\partial{I}}{\partial{t}} It=tI H . O . T H.O.T H.O.T表示泰勒级数中的高阶项( h i g h   o r d e r   t e r m s high\ order\ terms high order terms)。结合上两式,可得:
Δ x I x + Δ y I y + Δ t I t + H . O . T = 0 \Delta{x}I_{x} + \Delta{y}I_{y} + \Delta{t}I_{t} + H.O.T = 0 ΔxIx+ΔyIy+ΔtIt+H.O.T=0

在精度要求不高的情况下,可以将上式中的高阶项去掉。左右除以 Δ t \Delta{t} Δt后,得:
u I x + v I y + I t = 0 uI_{x} + vI_{y} + I_{t} = 0 uIx+vIy+It=0

其中, u = Δ x Δ t u = \frac{\Delta{x}}{\Delta{t}} u=ΔtΔx v = Δ y Δ t v = \frac{\Delta{y}}{\Delta{t}} v=ΔtΔy,分别表示像素在 x x x y y y轴方向上的速率。上式中, u u u v v v为未知量, I x I_{x} Ix I y I_{y} Iy I t I_{t} It均可由图像序列计算出来(本文末尾会给出)。因此,对于上式单约束却含有两个未知量,我们是无法确切计算出每个像素的光流,即速度 ( u , v ) (u,v) (u,v)。为了解决这个问题,我后续会介绍Horn-Schunck光流算法和Lucas-Kanade算法,通过增加约束来计算每个像素的光流 ( u , v ) (u,v) (u,v)

对于 I x I_{x} Ix I y I_{y} Iy I t I_{t} It的计算,可以参考Horn和Schunck在1981年发表的论文 D e t e r m i n i n g   O p t i c a l   F l o w Determining\ Optical\ Flow Determining Optical Flow中的计算方法。如下:
I x ≈ 1 4 { I i , j + 1 , k − I i , j , k + I i + 1 , j + 1 , k − I i + 1 , j , k + I i , j + 1 , k + 1 − I i , j , k + 1 + I i + 1 , j + 1 , k + 1 − I i + 1 , j , k + 1 } , I y ≈ 1 4 { I i + 1 , j , k − I i , j , k + I i + 1 , j + 1 , k − I i , j + 1 , k + I i + 1 , j , k + 1 − I i , j , k + 1 + I i + 1 , j + 1 , k + 1 − I i , j + 1 , k + 1 } , I t ≈ 1 4 { I i , j , k + 1 − I i , j , k + I i + 1 , j , k + 1 − I i + 1 , j , k + I i , j + 1 , k + 1 − I i , j + 1 , k + I i + 1 , j + 1 , k + 1 − I i + 1 , j + 1 , k } . \begin{aligned} I_{x} \approx & \frac{1}{4} \{I_{i,j+1,k} - I_{i,j,k} + I_{i+1,j+1,k} - I_{i+1,j,k} \\ & + I_{i,j+1,k+1} - I_{i,j,k+1} + I_{i+1,j+1,k+1} - I_{i+1,j,k+1}\}, \\ I_{y} \approx & \frac{1}{4} \{I_{i+1,j,k} - I_{i,j,k} + I_{i+1,j+1,k} - I_{i,j+1,k} \\ & + I_{i+1,j,k+1} - I_{i,j,k+1} + I_{i+1,j+1,k+1} - I_{i,j+1,k+1}\}, \\ I_{t} \approx & \frac{1}{4} \{I_{i,j,k+1} - I_{i,j,k} + I_{i+1,j,k+1} - I_{i+1,j,k} \\ & + I_{i,j+1,k+1} - I_{i,j+1,k} + I_{i+1,j+1,k+1} - I_{i+1,j+1,k}\}. \end{aligned} IxIyIt41{Ii,j+1,kIi,j,k+Ii+1,j+1,kIi+1,j,k+Ii,j+1,k+1Ii,j,k+1+Ii+1,j+1,k+1Ii+1,j,k+1},41{Ii+1,j,kIi,j,k+Ii+1,j+1,kIi,j+1,k+Ii+1,j,k+1Ii,j,k+1+Ii+1,j+1,k+1Ii,j+1,k+1},41{Ii,j,k+1Ii,j,k+Ii+1,j,k+1Ii+1,j,k+Ii,j+1,k+1Ii,j+1,k+Ii+1,j+1,k+1Ii+1,j+1,k}.

其中, i i i j j j k k k分别表示图像 y y y轴、 x x x轴和时序 t t t的方向,如下图所示。
在这里插入图片描述

计算光流,除了文中提到的属于梯度约束范畴的Horn-Schunck光流算法和Lucas-Kanade算法,还有包括相位相关、模版匹配等方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值