计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)

运动估计

  • 光流法 (Optical Flow)
    • 限制
    • Horn&Schunck 全局方法 (global method)
    • 光流法约束等式 (Constrain Equation)
    • 小幅度动作问题
    • 全局方法和局部方法的比较
      • 全局方法
      • 局部方法
  • 基于块的运动场 (Block-based Motion Field)
    • 动作估计 (Motion Estimation - ME)
    • 动作估计算法
      • 顺序或完全搜索 (Sequential or Full Search)
      • 二维对数搜索 (2D Logarithmic Search)
      • 分层搜索 (Hierarchical Search)
      • 三个方法运算时间对比
  • 全局运动估计 (Global Motion Estimation)
    • 2D坐标转换 (2D Coordinate Transformations)
    • 仿射运动模型 (Affine Motion Model)
  • 层运动估计 (Layer Motion Estimation)
  • 运动分析中的运动场 (Motion Fields in Motion Analysis)
    • 应用
  • 全局运动应用 (Global Motion Application)

光流法 (Optical Flow)

光流 (optical flow) 反映了由于时间间隔 dt 中的运动而导致的图像变化,光流场是跨 2D 图像的 对象点的 3D运动 的速度场 (velocity field)。
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第1张图片
光流是像素级图像中亮度模式 (brightness pattern) 的运动。理想情况下,光流 = 运动场 (motion field)。

限制

但在以下情况下,光流不等于运动场
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第2张图片

  1. 运动场存在但是没有光流产生。
  2. 没有运动场但是光照改变。

Horn&Schunck 全局方法 (global method)

计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第3张图片
如何估计从图像H到图像I中的像素运动?

  • 查找像素对应 (pixel correspondences)
  • 给定 H 中的像素,寻找 I 中相同颜色的附近像素 (nearby pixel of the same color)。

要这么做,是基于以下关键假设:

  • 颜色恒定(color constancy): 图像 H 中的一个点 看起来和 图像 I 相同。对于灰度图来说,则是亮度恒定。
  • 小幅度动作(small motion): 点不会移动的太远。

光流法约束等式 (Constrain Equation)

光流:速度 Velocities(u, v),用其替代x, y的变化而代表移动。
在这里插入图片描述
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第4张图片
假设两个图像中同样点的亮度保持不变:
在这里插入图片描述
假设小幅度动作: (RHS的泰勒展开至一阶)
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第5张图片
最终得到约束等式
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第6张图片
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第7张图片
注意: (u,v)必须位于一条直线上。我们可以使用梯度运算符进行计算。但是,(u,v) 不能在此约束下唯一地找到!
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第8张图片
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第9张图片
约束表示:确定了由矢量(,)表示的梯度方向上的流分量 (flow component)。平行于边缘 parallel to an edge(即垂直于梯度方向 perpendicular to the gradient direction)的流分量未知。

接着,公式化光流中的约束误差。
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第10张图片
还有其他约束需要被考虑,即平滑度约束 (smoothness constraine),通常,运动场在图像中平滑变化。因此,我们要惩罚偏离平滑度的问题。
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第11张图片
我们需要在每个图像点中找到最小化以下公式的 (u, v):
在这里插入图片描述

小幅度动作问题

如果一个物体移动大大多于一个像素点,那么光流法很有可能检测不到。我们的一个解决方法是降低画面分辨率 (reduce the resolution)。
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第12张图片
粗粒度到细粒度的光流估计(Coarse-to-fine Optical Flow Estimation)
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第13张图片

全局方法和局部方法的比较

全局方法

  • 如 Horn & Schunk 方法
  • 全局方法使用全局约束,通常是平滑正则项(smoothing regularization term)。
  • 平滑假设 (smooth assumption) 不适用于移动边界 (moving boundary),深度不连续性 (depth discontinuities)。
  • 错误传播 (Error Propagation)

局部方法

  • 如 Lucas & Kanade 方法
  • 没有全局术语
  • 将图像分为保持平滑假设的小区域
  • 然而,在具有小的或没有空间梯度 (no spatial gradient) 的区域中的光流的估计成为不适定的问题(ill-pose problem)。

基于块的运动场 (Block-based Motion Field)

该方法将图像分割 (break image up) 为多个方块,并估计每个方块的转变(estimate translation)。
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第14张图片

动作估计 (Motion Estimation - ME)

每个块一个运动矢量(Motion Vector - MV), (u,v)。 MV搜索通常仅限于较小的近邻 (small immediate neighbourhood) - 水平和垂直位移 (horizontal and vertical displacement) 范围 [-p,p]。 这使得搜索窗口大小为 (2p + 1) x (2p + 1)
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第15张图片
两个块之间的差异通过其平均绝对差异 (Mean Absolute Difference - MAD) 进行衡量。
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第16张图片
ME搜索的目标是找到一个向量(i, j)作为运动向量 MV = (u, v),这样使得MAD(i, j)最小。
在这里插入图片描述

动作估计算法

顺序或完全搜索 (Sequential or Full Search)

按顺序搜索在参考帧中的整个 (2p + 1) x (2p + 1) 窗口 (也称为完全搜索 full search)。将以窗口内每个位置为中心的块与目标帧中的块逐像素进行比较,然后计算其各自的MAD。提供最少 MAD 的向量 (i,j) 被指定为目标帧中该块的MV (u,v)。
顺序搜索的运算成本很高 - 假设每个像素比较都需要操作 (求和,绝对值,加法), 则获得单个块的运动矢量的成本为 (2p + 1) x (2p + 1) x N2 x 3 => O(p2N2)
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第17张图片

二维对数搜索 (2D Logarithmic Search)

对数搜索: 一种计算不那么昂贵的版本,虽然次优,但通常仍然有效。
运动向量的2D对数搜索过程需要多次迭代,类似于二分搜索 (binary search)。最初,搜索窗口(search window)只有9个位置用作基于MAD的搜索种子 (seeds for a MAD-based search),其被标记成1。
在找到产生最小MAD (minimum MAD) 的区域之后,将新的搜索区域的中心移到该区域,并将步长 step-size(偏移 offset)减少到一半。
在下次迭代中,将九个新位置标记为2,并以此类推。
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第18张图片
如图,MV是从最中间的被标记为1的点指向右上角标记为3的点的向量。
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第19张图片

分层搜索 (Hierarchical Search)

该搜索可以受益于多层 (多分辨率) 方法 (hierarchical/multiresolution approach),其中可以从分辨率大大降低的图像 (image with a significantly reduced resolution) 中获得运动矢量的初始估计。
三级分层搜索 (three-level hierarchical search),其中原始图像位于级别0 (Level 0),通过从先前级别下采样2倍 (down-sampling by a factor of 2) 来获得级别1和级别2的图像,并在级别2进行初始搜索。
由于块的大小较小,并且p也可以按比例缩小,因此所需的操作次数大大减少。
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第20张图片
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第21张图片

三个方法运算时间对比

计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第22张图片

全局运动估计 (Global Motion Estimation)

相机运动

  • 放大/缩小 (Zooming - in/out)
  • 平移 (panning): 水平移动相机
  • 倾斜 (tilting): 垂直移动相机
  • Dolly: 前后移动整个相机
  • Truck: 与小推车一样,只能从左向右移动相机
  • 底座 (Pedestal): 将相机固定在一个位置时上下垂直移动相机

2D坐标转换 (2D Coordinate Transformations)

计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第23张图片

仿射运动模型 (Affine Motion Model)

每个像素在6个全局未知数中提供1个线性约束。
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第24张图片
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第25张图片
在这里插入图片描述
一组 (> 6) 关键点上的最小二乘最小化。
在这里插入图片描述

层运动估计 (Layer Motion Estimation)

该估计方式用多组重叠图层 (overlapping layers) 表示运动图像。层按照深度排序 (ordered in depth) 并相互遮挡 (occlude each other)。每层代表一个运动物体。
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第26张图片
每一层包含三张图(three maps):

  • 强度图 intensity map (或纹理图 texture map)
  • Alpha图 (每个点的不透明度 opacity)
  • 速度图 velocity map (随时间弯曲 warping over time)
    计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第27张图片

运动分析中的运动场 (Motion Fields in Motion Analysis)

运动通常是四个基本元素的某种组合:

  • 与相机保持恒定距离的平移 (translation at constant)。
  • 相对于相机的深度平移(translation in depth)。
  • 绕相机光轴 (camera optical axis) 以恒定距离旋转 (rotation at distance)。
  • 垂直于相机光轴 (perpendicular to the camera optical axis) 的平面物体的旋转 (rotation of a planner object)。

四个基本运动的光流模式 (optical flow pattern)

  • 一组平行运动矢量 (parallel motion vectors)。
  • 一组具有共同扩展重点的矢量 (vectors having a common focus of expansion)。
  • 一组同心运动矢量 (concentric motion vectors)。
  • 从直线段开始的一组或多组矢量 (vectors starting from straight line segments)。
    计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第28张图片

如果平移深度不是恒定的,则光流矢量不平行,并且其方向只有一个扩展焦点(focus of expansion - FOE)。
如果平移深度恒定 (constant depth),则FOE处于无限远。
如果图像中存在几个独立移动的对象,则每个运动都有其自己的FOE,如下图所示,其中摄像机在汽车中朝着道路上其他正在驶近的汽车移动。
计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)_第29张图片

应用

  • 相互速度(Mutual Velocity):在运动的相机和运动的物体之间的相互速度。
  • 运动深度或结构(Structure From Motion - SFM):从移动物体到摄像机的当前距离
  • 碰撞预测 (Coliision Prediction):机器人与场景对象之间的潜在碰撞
  • 图像对齐/配准 (Image Alignment/Regisration)

全局运动应用 (Global Motion Application)

  • 视频稳定 (Video Stablization)
  • 运动补偿 (Global motion compensation - GMC)

你可能感兴趣的:(cv笔记,计算机视觉)