盘算机视觉5——运动估计和光流估计
一、运动估计(一)运动场(Motion Field)
[*] 定义与物理意义
运动场是三维场景中物体或相机运动在二维图像平面上的投影,表现为图像中每个像素点的运动速率矢量。其本质是场景点三维运动(平移、旋转、缩放等)通过透视投影在图像平面的映射,反映了物体在空间中的相对运动关系。比方,当相机向前移动时,图像中近处物体的运动场矢量较大,远处物体的矢量较小,且方向背离相机光心。
[*] 数学建模与投影关系
设场景点坐标为 r o = ( x , y , z ) r_o = (x, y, z) ro=(x,y,z),其三维运动速率为 v o = ( v x , v y , v z ) v_o = (v_x, v_y, v_z) vo=(vx,vy,vz),相机焦距为 f f f,则图像点运动速率 v i = ( u , v ) v_i = (u, v) vi=(u,v) 可通过针孔相机模型推导得出:
v i = f ( r o ⋅ z ) ⋅ v o − ( v o ⋅ z ) ⋅ r o ( r o ⋅ z ) 2 = f ( r o × v o ) × z ( r o ⋅ z ) 2 v_{i}=f \frac{\left(r_{o} \cdot z\right) \cdot v_{o}-\left(v_{o} \cdot z\right) \cdot r_{o}}{\left(r_{o} \cdot z\right)^{2}} = f \frac{\left(r_{o} \times v_{o}\right) \times z}{\left(r_{o} \cdot z\right)^{2}} vi=f(ro⋅z)2(ro⋅z)⋅vo−(vo⋅z)⋅ro=f(ro⋅z)2(ro×vo)×z
其中, r o ⋅ z r_o \cdot z ro⋅z 表现场景点深度, r o × v o r_o \times v_o ro×vo 为叉乘运算。该公式表明,图像点速率与场景点的深度成反比(近处物体运动更快),且与运动方向相关。比方,当场景点沿相机光轴方向( v z v_z vz)运动时,图像点速率会出现放射状分布。
[*] 典范运动场景分析
[*]相机平移:图像中全部点的运动场矢量指向平移反方向,且幅度随深度增长而减小。
[*]相机旋转:运动场出现旋转对称分布,中心点(光心投影)运动矢量为零。
[*]物体缩放:当物体靠近或远离相机时,运动场矢量从中心向外扩散或向中心汇聚。
(二)光流(Optical Flow)
[*] 定义与直观明白
光流是图像中亮度模式的表观运动,即相邻两帧图像中同一物体点的像素位移矢量 ( u , v ) (u, v) (u,v)。比方,视频中行走的人,其像素在连续帧中的位移构成光流场。光流不直接便是运动场,但在理想条件下(亮度不变、无遮挡)可近似表现运动场。
[*] 光流的双重属性
[*]局部性:每个像素的光流仅依赖于其邻域的亮度变化,实用于局部运动分析。
[*]全局性:整体光流场反映场景的运动结构,可用于场景明白(如自动驾驶中的停滞物检测)。
(三)运动场与光流的关系
[*] 理想等价性
当场景满意以下条件时,光流便是运动场:
[*]物体表面亮度恒定且均匀;
[*]相机曝光刹时完成,无运动含糊;
[*]场景点深度一致(如平面场景)。
此时,光流直接对应场景点的二维投影运动。
[*] 非理想环境对比
[*]有运动场无光流(亮度不变但模式不变):
例:固定光源下的旋转球体,表面亮度模式(如纯色)不随旋转改变,光流估计为零,但实际存在运动场(球面切线方向运动)。
[*]无光运动场有光流(亮度变化但物体静止):
例:固定球体被移动的聚光灯照射,像素亮度随光照变化而变化,光流检测到伪运动,但物体实际未移动。
[*]孔径题目导致的不一致:
当观察窗口仅包罗单一方向边缘(如水平线),光流只能检测到垂直于边缘的运动分量,平行分量丢失,导致光流与实际运动场方向不一致。
二、光流估计(Optical Flow Estimation)
(一)定义与目标
给定连续两帧图像 I ( x , y , t ) I(x, y, t) I(x,y,t)(t时候)和 I ( x , y , t + 1 ) I(x, y, t+1) I(x,y,t+1)(t+1时候),光流估计的核心目标是盘算每个像素点 ( x , y ) (x, y) (x,y)的位移矢量 ( u , v ) (u, v) (u,v),使得:
I ( x , y , t ) = I ( x + u , y + v , t + 1 ) I(x, y, t) = I(x+u, y+v, t+1) I(x,y,t)=I(x+u,y+v,t+1)
该题目本质是通过图像亮度变化推断像素运动,是一个典范的逆题目,需依赖先验假设求解。
(二)关键假设
[*] 亮度一致性假设(Brightness Constancy Assumption)
[*]数学表达:
I ( x , y , t ) = I ( x + u , y + v , t + 1 ) I(x, y, t) = I(x+u, y+v, t+1) I(x,y,t)=I(x+u,y+v,t+1)
[*]物理意义:假设物体表面反射率不变,且光照条件稳定,同一物体点在不同帧中的亮度值相同。这是光流估计的基石,但在实际中易受光照变化、物体遮挡、镜面反射等因素破坏。
[*] 小运动假设(Small Motion Assumption)
[*]假设两帧间像素位移 ( u , v ) (u, v) (u,v) 富足小(通常小于1像素),使得泰勒睁开的高阶项可忽略,仅保留一阶线性项。若运动幅度过大(如快速运动物体),该假设失效,需通过迭代或金字塔方法补偿。
[*] 空间连续性假设(Spatial Continuity Assumption)
[*]假设相邻像素的运动矢量相似,即像素 ( x , y ) (x, y) (x,y)的光流 ( u , v ) (u, v) (u,v)与邻域像素的光流差别较小。该假设通过引入平滑束缚,将单像素的欠定题目转化为邻域的超定题目。
(三)光流根本方程推导
[*]泰勒睁开与线性近似
对于 I ( x + u , y + v , t + 1 ) I(x+u, y+v, t+1) I(x+u,y+v,t+1)在 ( x , y , t ) (x, y, t) (x,y,t)处进行一阶泰勒睁开:
I ( x + u , y + v , t + 1 ) = I ( x , y , t ) + I x u + I y v + I t + O ( u 2 , v 2 , u v ) I(x+u, y+v, t+1) = I(x, y, t) + I_x u + I_y v + I_t + \mathcal{O}(u^2, v^2, uv) I(x+u,y+v,t+1)=I(x,y,t)+Ixu+Iyv+It+O(u2,v2,uv)
忽略高阶小项 O ( u 2 , v 2 , u v ) \mathcal{O}(u^2, v^2, uv) O(u2,v2,uv),结合亮度一致性假设 I ( x , y , t ) = I ( x + u , y + v , t + 1 ) I(x, y, t) = I(x+u, y+v, t+1) I(x,y,t)=I(x+u,y+v,t+1),得到光流根本方程:
I x u + I y v + I t = 0 I_x u + I_y v + I_t = 0 Ixu+Iyv+It=0
其中:
[*] I x = ∂ I ∂ x I_x = \frac{\partial I}{\partial x} Ix=∂x∂I为空间x方向梯度
[*] I y = ∂ I ∂ y I_y = \frac{\partial I}{\partial y} Iy=∂y∂I为空间y方向梯度
[*] I t = ∂ I ∂ t I_t = \frac{\partial I}{\partial t} It=∂t∂I为时间梯度
[*] ∇ I = [ I x , I y ] T \nabla I = ^T ∇I=T表现空间梯度矢量
这个方程表明,在时间间隔 Δ t \Delta t Δt内,图像亮度变化 I t I_t It可以表现为空间梯度 ∇ I \nabla I ∇I与像素位移 ( u , v ) (u,v) (u,v)的点积。
[*]向量形式与多少意义
光流根本方程可表现为:
∇ I ⋅ [ u , v ] T + I t = 0 \nabla I \cdot ^T + I_t = 0 ∇I⋅T+It=0
多少上,该方程表明光流矢量 [ u , v ] 位于以 − I t / ∇ I -I_t / \nabla I −It/∇I为法向量的直线上,即光流矢量在梯度方向上的投影为 − I t / ∣ ∇ I ∣ -I_t / |\nabla I| −It/∣∇I∣,垂直于梯度方向的分量无法确定,导致孔径题目。
(四)孔径题目(Aperture Problem)
[*]题目本质与数学表明
当观察窗口内的图像模式为均匀地区( ∇ I = 0 \nabla I = 0 ∇I=0)或单一方向边缘(如水平线, ∇ I = [ I x , 0 ] T \nabla I = ^T ∇I=T),光流方程无法唯一确定 ( u , v ) (u, v) (u,v):
[*]均匀地区:梯度为零,方程退化为 0 ⋅ u + 0 ⋅ v + I t = 0 0 \cdot u + 0 \cdot v + I_t = 0 0⋅u+0⋅v+It=0,无解(若 I t ≠ 0 I_t \neq 0 It=0)或无穷解(若 I t = 0 I_t = 0 It=0)。
[*]边缘地区:梯度方向为 θ \theta θ,光流方程仅束缚垂直于边缘的运动分量 u cos θ + v sin θ = − I t / ∣ ∇ I ∣ u \cos\theta + v \sin\theta = -I_t / |\nabla I| ucosθ+vsinθ=−It/∣∇I∣,平行于边缘的分量自由,导致多解。
[*]经典示例:剃头店三色柱错觉
三色柱表面为垂直条纹,当柱子旋转时,观察窗口(孔径)仅包罗垂直条纹,光流检测到的运动方向为水平方向(垂直于条纹),而实际运动方向为切线方向(包罗垂直分量),形成感知运动与实际运动的差别。孔径外形(如圆形、矩形)和条纹方向决定了感知运动的主导方向,圆形孔径下感知运动方向为条纹法线方向。
(五)Lucas Kanade方法(Lucas-Kanade Method)
[*] 核心头脑:邻域束缚求解欠定题目
Lucas Kanade(LK)方法假设像素邻域内的运动矢量相同,将单像素的1个方程扩展为邻域的(n)个方程(通常取5x5邻域,(n=25)),通过最小二乘法求解超定方程组,增强解的稳定性。
[*] 数学推导步骤
[*]步骤1:构建超定方程组
设邻域内第 i i i个像素点 p i = ( x i , y i ) p_i = (x_i, y_i) pi=(xi,yi)满意光流方程:
I x ( p i ) u + I y ( p i ) v = − I t ( p i ) , i = 1 , 2 , … , n I_x(p_i) u + I_y(p_i) v = -I_t(p_i), \quad i = 1, 2, \dots, n Ix(pi)u+Iy(pi)v=−It(pi),i=1,2,…,n
写成矩阵形式:
A d = b A \mathbf{d} = \mathbf{b} Ad=b
其中
A = [ I x ( p 1 ) I y ( p 1 ) I x ( p 2 ) I y ( p 2 ) ⋮ ⋮ I x ( p n ) I y ( p n ) ] A = \begin{bmatrix} I_x(p_1) & I_y(p_1) \\ I_x(p_2) & I_y(p_2) \\ \vdots & \vdots \\ I_x(p_n) & I_y(p_n) \end{bmatrix} A= Ix(p1)Ix(p2)⋮Ix(pn)Iy(p1)Iy(p2)⋮Iy(pn)
d = [ u v ] \mathbf{d} = \begin{bmatrix} u \\ v \end{bmatrix} d=
b = − [ I t ( p 1 ) I t ( p 2 ) ⋮ I t ( p n ) ] \mathbf{b} = -\begin{bmatrix} I_t(p_1) \\ I_t(p_2) \\ \vdots \\ I_t(p_n) \end{bmatrix} b=− It(p1)It(p2)⋮It(pn)
[*]步骤2:最小二乘求解
超定方程的最优解为最小化误差平方和:
d ^ = arg min d ∥ A d − b ∥ 2 \hat{\mathbf{d}} = \arg\min_{\mathbf{d}} \| A \mathbf{d} - \mathbf{b} \|^2 d^=argmind∥Ad−b∥2
对 d \mathbf{d} d求导并令导数为零,得正规方程:
A T A d = A T b A^T A \mathbf{d} = A^T \mathbf{b} ATAd=ATb
其中, A T A A^T A ATA为二阶矩矩阵(Structure Tensor):
A T A = [ ∑ I x 2 ∑ I x I y ∑ I x I y ∑ I y 2 ] A^T A = \begin{bmatrix} \sum I_x^2 & \sum I_x I_y \\ \sum I_x I_y & \sum I_y^2 \end{bmatrix} ATA=[∑Ix2∑IxIy∑IxIy∑Iy2]
A T b = − [ ∑ I x I t ∑ I y I t ] A^T \mathbf{b} = -\begin{bmatrix} \sum I_x I_t \\ \sum I_y I_t \end{bmatrix} ATb=−[∑IxIt∑IyIt]
当 A T A A^T A ATA可逆时,解为:
d = ( A T A ) − 1 A T b \mathbf{d} = (A^T A)^{-1} A^T \mathbf{b} d=(ATA)−1ATb
[*] 实用条件:特性值分析
二阶矩矩阵 A T A A^T A ATA 的特性值 ( λ 1 , λ 2 ) (\lambda_1, \lambda_2) (λ1,λ2) 决定了光流解的稳定性:
[*]角点地区: ( λ 1 ≈ λ 2 ) (\lambda_1 \approx \lambda_2) (λ1≈λ2) 且值较大,矩阵良态,解唯一且稳定(适合LK方法)。
[*]边缘地区: ( λ 1 ≫ λ 2 ) (\lambda_1 \gg \lambda_2) (λ1≫λ2) 或 ( λ 2 ≫ λ 1 ) (\lambda_2 \gg \lambda_1) (λ2≫λ1),矩阵病态,仅能确定一个方向的运动(孔径题目)。
[*]平滑地区: ( λ 1 ≈ λ 2 ≈ 0 ) (\lambda_1 \approx \lambda_2 \approx 0) (λ1≈λ2≈0),矩阵不可逆,无法求解(无梯度信息)。
[*] 失效场景与改进策略
场景1:大幅运动( ∣ u ∣ , ∣ v ∣ > 1 |u|, |v| > 1 ∣u∣,∣v∣>1 像素)
[*]题目:小运动假设(泰勒睁开一阶近似)失效,导致线性化误差显著。
[*]办理方案:
[*] 迭代精修(Iterative Refinement)
[*]初始化光流 ( u 0 , v 0 ) = ( 0 , 0 ) (u_0, v_0) = (0, 0) (u0,v0)=(0,0),通过迭代优化逐步逼近真实位移:
d k = ( A T A ) − 1 A T b k , b k = − [ I t ( x + u k − 1 , y + v k − 1 ) ] \mathbf{d}_k = (A^T A)^{-1} A^T \mathbf{b}_k, \quad \mathbf{b}_k = -\left[ I_t(x+u_{k-1}, y+v_{k-1}) \right] dk=(ATA)−1ATbk,bk=−
[*]核心头脑:每次迭代后对图像进行扭曲(Warping),重新盘算残差 b k \mathbf{b}_k bk,直至收敛。
[*] 由粗到细金字塔方法(Coarse-to-Fine Pyramid)
[*]步骤:
[*]构建高斯金字塔(多标准图像层),从最粗分辨率开始估计光流。
[*]将粗标准的光流上采样并作为下一层的初始值,逐层优化至原始分辨率。
[*]上风:将大位移分解为多层小位移,避免局部极小值并扩大捕捉范围。
场景2:光照变化(亮度一致性假设失效)
[*]题目:因光照变化导致 I ( x , y , t ) ≠ I ( x + u , y + v , t + 1 ) I(x, y, t) \neq I(x+u, y+v, t+1) I(x,y,t)=I(x+u,y+v,t+1),数据项误差增大。
[*]办理方案:
[*] 特性点匹配
[*]检测稳定特性点(如Harris角点、SIFT),对特性邻域应用LK方法,减少对全局亮度一致的依赖。
[*] 鲁棒损失函数
[*]更换L2损失为对非常值不敏感的损失函数:
[*]L1范数: E data = ∑ ∣ I x u + I y v + I t ∣ E_{\text{data}} = \sum |I_x u + I_y v + I_t| Edata=∑∣Ixu+Iyv+It∣
[*]Huber损失:
L ( e ) = { 1 2 e 2 if ∣ e ∣ ≤ δ , δ ( ∣ e ∣ − 1 2 δ ) otherwise. L(e) = \begin{cases} \frac{1}{2} e^2 & \text{if } |e| \leq \delta, \\ \delta (|e| - \frac{1}{2} \delta) & \text{otherwise.} \end{cases} L(e)={21e2δ(∣e∣−21δ)if ∣e∣≤δ,otherwise.
[*] 多帧束缚
[*]前向-后向一致性检查:盘算前向光流 ( u f , v f ) (u_f, v_f) (uf,vf) 和后向光流 ( u b , v b ) (u_b, v_b) (ub,vb),剔除不满意 ∥ ( u f + u b , v f + v b ) ∥ < ϵ \| (u_f + u_b, v_f + v_b) \| < \epsilon ∥(uf+ub,vf+vb)∥<ϵ 的不可靠点。
(六)光流平滑性束缚(Smoothness Constraint)
1. 动机:抑制噪声与不连续解
仅依赖邻域束缚大概导致光流场出现噪声或局部不连续,需引入全局束缚强制光流在空间上平滑变化,尤其在无纹理地区(如天空、墙面)维持一致性。
2. 数学模型
根本平滑项(Basic Smoothness Term)
处罚光流 ( u , v ) (u, v) (u,v) 的梯度变化,使相邻像素的光流尽大概靠近:
E smooth = ∑ x , y ( ( ∂ u ∂ x ) 2 + ( ∂ u ∂ y ) 2 + ( ∂ v ∂ x ) 2 + ( ∂ v ∂ y ) 2 ) E_{\text{smooth}} = \sum_{x, y} \left( \left( \frac{\partial u}{\partial x} \right)^2 + \left( \frac{\partial u}{\partial y} \right)^2 + \left( \frac{\partial v}{\partial x} \right)^2 + \left( \frac{\partial v}{\partial y} \right)^2 \right) Esmooth=x,y∑((∂x∂u)2+(∂y∂u)2+(∂x∂v)2+(∂y∂v)2)
图像梯度加权平滑项(Gradient-Weighted Smoothness Term)
在边缘地区低落平滑束缚(避免含糊边界),在平滑地区增强束缚(抑制噪声):
E smooth = ∑ x , y w ( ∇ I ) ( ( ∂ u ∂ x ) 2 + ( ∂ u ∂ y ) 2 + ( ∂ v ∂ x ) 2 + ( ∂ v ∂ y ) 2 ) E_{\text{smooth}} = \sum_{x, y} w(\nabla I) \left( \left( \frac{\partial u}{\partial x} \right)^2 + \left( \frac{\partial u}{\partial y} \right)^2 + \left( \frac{\partial v}{\partial x} \right)^2 + \left( \frac{\partial v}{\partial y} \right)^2 \right) Esmooth=x,y∑w(∇I)((∂x∂u)2+(∂y∂u)2+(∂x∂v)2+(∂y∂v)2)
其中权重函数:
w ( ∇ I ) = 1 1 + ∣ ∇ I ∣ 2 w(\nabla I) = \frac{1}{1 + |\nabla I|^2} w(∇I)=1+∣∇I∣21
[*]边缘地区( ∣ ∇ I ∣ |\nabla I| ∣∇I∣ 大): w ( ∇ I ) w(\nabla I) w(∇I) 较小,放松平滑束缚。
[*]平滑地区( ∣ ∇ I ∣ |\nabla I| ∣∇I∣ 小): w ( ∇ I ) w(\nabla I) w(∇I) 较大,强制平滑。
3. 与数据项的团结优化
光流估计的完备能量函数为数据项宁静滑项的加权和:
E = E data + α E smooth E = E_{\text{data}} + \alpha E_{\text{smooth}} E=Edata+αEsmooth
[*]数据项(基于亮度恒定假设):
E data = ∑ p ∈ 邻域 ( I x u + I y v + I t ) 2 E_{\text{data}} = \sum_{p \in \text{邻域}} (I_x u + I_y v + I_t)^2 Edata=p∈邻域∑(Ixu+Iyv+It)2
[*]平衡参数 α \alpha α:需通过实验或学习确定,控制平滑强度。
(七)光流可视化
[*] 彩色轮盘编码(Color Wheel Encoding)
光流方向和幅度的可视化通常采用HSV颜色空间:
[*]色调(Hue):编码运动方向,0°(红色)表现向右,90°(绿色)表现向上,180°(蓝色)表现向左,270°(黄色)表现向下,中心角度对应混合颜色。
[*]饱和度(Saturation):编码运动幅度,饱和度越高表现位移越大。
[*]亮度(Value):通常设为常数,或根据梯度强度调整,突出高纹理地区的光流。
[*] 示例:相机平移光流场
当相机向右平移时,光流场的色调分布为左侧地区偏蓝(向左运动),右侧地区偏红(向右运动),中心地区色调过渡天然;饱和度随距离相机光心的距离增长而升高(远处物体运动幅度小,饱和度低;近处物体运动幅度大,饱和度高)。
(八)光流估计评价标准
1. 角度误差(Angular Error, AE)
[*]定义:估计光流 ( u , v ) (u, v) (u,v) 与真值光流 ( u GT , v GT ) (u_{\text{GT}}, v_{\text{GT}}) (uGT,vGT) 的夹角,权衡方向一致性:
A E = cos − 1 ( 1 + u u GT + v v GT 1 + u 2 + v 2 1 + u GT 2 + v GT 2 ) AE = \cos^{-1} \left( \frac{1 + u u_{\text{GT}} + v v_{\text{GT}}}{\sqrt{1 + u^2 + v^2} \sqrt{1 + u_{\text{GT}}^2 + v_{\text{GT}}^2}} \right) AE=cos−1(1+u2+v2 1+uGT2+vGT2 1+uuGT+vvGT)
[*]范围: [ 0 , π ] ,值越小表现方向越靠近(理想环境为 0 0 0)。
2. 端点误差(Endpoint Error, EE)
[*]定义:估计光流与真值光流的欧氏距离,反映位移精度:
E E = ( u − u GT ) 2 + ( v − v GT ) 2 EE = \sqrt{(u - u_{\text{GT}})^2 + (v - v_{\text{GT}})^2} EE=(u−uGT)2+(v−vGT)2
[*]物理意义:直接测量像素点的定位误差,单位为像素(值越小越正确)。
3. 插值误差(Interpolation Error, IE)
[*]定义:将第二帧图像通过光流扭曲(Warp)到第一帧后,与第一帧的像素均方根误差:
I E = 1 N ∑ ( x , y ) ( I ( x , y , t ) − I warped ( x , y , t ) ) 2 IE = \sqrt{\frac{1}{N} \sum_{(x, y)} \left( I(x, y, t) - I_{\text{warped}}(x, y, t) \right)^2} IE=N1(x,y)∑(I(x,y,t)−Iwarped(x,y,t))2
其中扭曲图像 I warped I_{\text{warped}} Iwarped 定义为:
I warped ( x , y , t ) = I ( x + u , y + v , t + 1 ) I_{\text{warped}}(x, y, t) = I(x+u, y+v, t+1) Iwarped(x,y,t)=I(x+u,y+v,t+1)
[*]意义:评估光流对帧间亮度变化的还本来领(IE 越小越一致)。
(九)光流真值获取(Ground-Truth Acquisition)
[*] 合成数据集(Synthetic Datasets)
[*]方法:通过盘算机图形门天生虚拟场景,精确控制相机和物体运动,直接盘算光流真值。
[*]典范数据集:
[*]Flying Chairs:合成椅子在不同背景中的运动,包罗22,872对训练图像,光流真值通过三维模型投影盘算。
[*]Middlebury:早期经典数据集,包罗静态场景中物体的平移、旋转、缩放运动,真值通过立体匹配和三维重修天生。
[*] 物理实验获取
[*]装备:利用高精度运动平台(如六自由度呆板臂)固定相机或物体,记录连续帧并通过激光测距仪或结构光获取深度信息,结合三维运动参数盘算真实光流。
[*]上风:真值精度高,可模仿真实场景中的光照变化和遮挡,用于验证算法的鲁棒性。
(十)基于深度学习的光流估计
[*] 传统方法的局限性
[*]依赖手工计划的特性(如梯度、二阶矩矩阵),对复杂场景(如非刚性运动、大位移、低纹理)鲁棒性不足。
[*]优化过程盘算量大,难以满意实时性需求(如自动驾驶须要100+ FPS)。
[*] FlowNet系列(2015-2017)
[*] FlowNet(ICCV 2015):
[*]结构:首个端到端卷积神经网络,采用U-Net架构,包罗收缩路径(Conv1-Conv5)和解码路径(Deconv1-Deconv5),通过跳跃毗连融合多标准特性。
[*]创新点:引入匹配代价体(Cost Volume),盘算参考帧与目标帧在不同位移下的特性相似性。比方,FlowNetS架构中,对每个像素点,在±4像素范围内盘算17x17的代价体,通过3D卷积提取匹配特性。
[*]训练:利用合成数据集Flying Chairs,损失函数为端点误差(EE)的均值,开启深度学习在光流领域的先河。
[*] FlowNet2.0(CVPR 2017):
[*]改进:提出级联网络(Cascade Network),将FlowNet与另一个细化网络结合,先估计粗光流,再通过扭曲操纵细化,提拔大位移场景的精度;引入循环一致性损失(Cycle Consistency Loss),确保前向光流与后向光流的一致性。
[*] PWC-Net(CVPR 2018)
[*]核心计划:
[*]金字塔特性提取:构建图像金字塔,从低分辨率层(粗标准)到高分辨率层(细标准)逐步估计光流,适应大幅运动。
[*]可变形扭曲(Deformable Warping):利用可变形卷积对目标帧特性进行扭曲,增强非刚性运动的适应性。
[*]代价体与3D卷积:在每个金字塔层盘算局部代价体(Local Cost Volume),通过3D卷积高效提取匹配特性,低落盘算复杂度。
[*]性能:在Middlebury数据集上首次逾越传统方法,且推理速率达到25 FPS(GTX 1080),兼顾精度与实时性。
[*] 无监督光流学习(Unsupervised Learning)
[*]核心头脑:无需光流真值,仅利用单目视频训练,通过光度损失和多少束缚优化网络。
[*]损失函数计划:
[*]光度重修损失(Photometric Reconstruction Loss):
L photo = ∑ t ∑ x , y ∣ I t ( x , y ) − I t + 1 ( x + u , y + v ) ∣ L_{\text{photo}} = \sum_{t} \sum_{x, y} \left| I_t(x, y) - I_{t+1}(x+u, y+v) \right| Lphoto=∑t∑x,y∣It(x,y)−It+1(x+u,y+v)∣
强制估计光流扭曲后的图像与原图像一致。
[*]平滑损失(Smoothness Loss):
L smooth = ∑ x , y ( ∣ ∇ u ∣ + ∣ ∇ v ∣ ) ⋅ e − ∣ ∇ I ∣ L_{\text{smooth}} = \sum_{x, y} \left( |\nabla u| + |\nabla v| \right) \cdot e^{-|\nabla I|} Lsmooth=∑x,y(∣∇u∣+∣∇v∣)⋅e−∣∇I∣
利用图像梯度加权,避免边缘地区的太过平滑。
[*]代表方法:
[*]UnFlow(ECCV 2016):提出双向光流一致性束缚,即前向光流与后向光流的复合应便是恒等变更,提拔无监督训练的稳定性。
[*]GeoNet(CVPR 2018):结合多少先验(如平面扫描),通过天生对抗网络(GAN)优化光流估计,适应无纹理场景。
[*] 当前挑衅与前沿方向
[*]挑衅:复杂光照变化(如夜间运动)、透明/反射物体(如玻璃、水面)、多运动目标(如拥挤场景)的光流估计。
[*]前沿:
[*]自监督学习与对比学习:利用大量无标注视频数据,通过对比损失学习通用光流特性。
[*]多模态融合:结合RGB、深度、惯性传感器数据,提拔光流估计的鲁棒性。
[*]轻量化模型:计划高效网络架构(如MobileFlow),满意移动端实时应用需求。
总结与未来展望
光流估计作为盘算机视觉的基础任务,从早期基于梯度的LK方法到当前的深度学习模型,经历了从手工特性到数据驱动的范式转变。传统方法依赖严酷假设,在理想场景下高效正确,但对复杂环境鲁棒性不足;深度学习方法通过端到端训练,显著提拔了复杂场景的性能,但仍面对数据依赖强、物理表明性弱等题目。未来研究需在以下方向突破:
[*]无监督与自监督学习:减少对合成数据的依赖,利用真实天下视频提拔泛化本领。
[*]多标准与多任务融合:结合语义分割、目标跟踪等任务,构建统一的运动明白框架。
[*]实时性与轻量化:计划高效网络结构,推动光流算法在移动装备和嵌入式体系中的应用。
[*]物理可表明性:将光流估计与三维重修、动力学模型结合,赋予算法更强的场景明白本领。
通过持续创新,光流估计将在自动驾驶、视频分析、呆板人视觉等领域发挥更关键的作用,成为毗连二维图像与三维天下的桥梁。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]