光流

将连续帧之间每个像素的表观运动表示为向量场的技术。是视频分析、运动检测和视频稳定的基础技术。

光流估计两帧或多帧时间连续图像之间每个像素的 2D 运动向量,捕获场景中物体和相机的运动方式。它是视频分析的基本构建模块,提供逐像素或逐特征的运动信息供下游算法用于跟踪、分割和预测。

光流计算基于亮度恒定假设:像素的强度在短时间间隔内的帧间不变。此假设产生光流约束方程 Ix*u + Iy*v + It = 0,其中 Ix、Iy 是空间梯度,It 是时间梯度,(u, v) 是待估计的流向量。

光流的主要估计方法
方法原理得到的光流与实现
Lucas-Kanade 方法假设局部窗口内的流动一致,通过最小二乘法求解在跟踪的特征点上得到稀疏光流。cv2.calcOpticalFlowPyrLK()
Farneback 方法用二次多项式近似每个像素的邻域为每个像素得到稠密光流场。cv2.calcOpticalFlowFarneback()
深度学习方法FlowNet、PWC-Net、RAFT 等基于 CNN 与 Transformer 的方法。RAFT 借助相关体积进行迭代精修精度显著超越经典方法,在 Sintel 与 KITTI 基准上达到最先进水平

稀疏光流

稠密光流

稀疏光流只在跟踪到的特征点上得到运动向量,稠密光流则让整幅画面布满向量。箭头的方向表示该点的运动方向,长度对应运动量。

应用涵盖运动检测 (结合背景减除)、视频稳定 (补偿相机抖动)、帧插值 (生成慢动作的中间帧)、动作识别和自动驾驶 (估计周围运动)。实时部署利用 GPU 实现和针对推理速度优化的轻量架构。

相关术语

相关文章