算法与深度学习·

运动场和光流-动手学计算机视觉17

首发于 CSDN原文链接

本篇目录5 节

介绍

在一个不断运动的世界中,我们的眼睛和大脑能够自然而然地感知到周围环境的运动。与此对应,计算机视觉技术面临的一个挑战是如何从获取的图像序列中提取出运动信息。通过运动场(motion field)和光流(optical flow)估计,我们可以从视频中重建运动信息。运动场描述了三维世界中点的运动在二维成像平面上的投影,如图17-1所示。
notion image
运动场是图像上所有像素对应的三维空间点的三维速度向量在成像平面上的二维投影速度向量所形成的场。运动场是三维运动在二维成像平面上的理想表示,它直接关联到物体的实际物理运动,但我们无法直接从图像中观测到这种运动,只能通过分析图像序列中的光流来近似估计运动场。
光流定义为图像序列中由物体、照相机或光照变化引起的像素亮度随时间变化的表现。它由图像强度的变化计算而来,被视为像素二维投影速度向量的一个近似。整个图像平面上所有像素的
光
流向量构成了光流场,描述了图像层面的运动模式,是二维运动场的一个近似。然而光流场并不总是与实际的运动场一致,因为光流可能受到光照变化等非运动因素的影响。
美国心理学家James J.Gibson在20世纪40年代首次提出了光流的概念四,自那以后,光流估计就成为计算机
视觉
领域的研究热点,并在运动分析、目标跟踪、图像配准和三维重建等多个方面得到了广泛应用。本章将深入介绍光流估计的基本原理和经典方法,通过理解和应用这些方法,我们可以更好地从视频中重建运动信息,使从二维图像中构建出的物体运动更接近于真实的三维物理世界的目标的运动。

运动场投影

notion image

光流

在多数情况下,直接计算物体的运动场并不可行,我们通常采用计算光流的方法来近似估计物体的运动场。接下来我们将探讨光流估计的基本原理和常用的计算方法。

特征点法

光流本质上是由图像亮度变化产生的二维像素变化,因此可以通过跟踪图像中的特征点来计算。如第7章所述,从图像中提取视觉特征(如角点和块状区域),并在连续帧之间追踪这些特征点的对应关系,是计算光流的一种方法。这种基于特征点的光流估计产生的是稀疏光流,尽管它在表达多帧之间的运动关系上很鲁棒,尤其适用于描述较大位移的相对运动,但也存在以下局限性。
(1)计算成本高:特征点的提取和描述符的计算过程非常耗时。例如,SIFT算法在CPU上运行并不能实现实时计算,而ORB算法也需要大约20s的计算时间。
(2)信息利用不充分:采用特征点方法时,图像中除了特征点之外的所有信息都被忽略了。一幅图像可能包含数十万像素点,而特征点的数量通常只有几百个,这意味着大量可能有用的图像信息被丢弃。
(3)特征匮乏的场景:照相机有时可能移动到缺乏明显特征的场景中,例如面对一堵白墙或者空旷的走廊,这些场景中特征点的数量可能大幅减少,难以找到足够的匹配点来准确计算光流和照相机的运动。

直接法

利用图像的像素亮度信息来估计运动,不需要计算特征点和描述子,这使其能够在特征缺失的情况下有效进行运动估计。只要场景中存在亮度变化(无论是渐变还是不足以形成局部图像梯度的变化),直接法都能够发挥作用。与仅能重建稀疏光流的特征点法不同,直接法能够根据可用像素的数量构建稀疏、稠密或半稠密的光流。然而,直接法对图像外观的变化(如亮度变化)较为敏感,可能会错误地将这些变化解释为运动。因此,这
类
方法更适用于在视频中运动幅度较小的情况下计算光流。
接下来,我们介绍如何使用直接法计算光流。如图17-4所示
notion image
给定运动前后的两帧I(x,y,t-1)和I(x,y,t),我们的目标是找到图像中像素之间的对应关系,从而得到每个像素的光流。为了直接从像素层面找到像素间的对应关系,需要引入以下假设。
(1)亮度恒定:假设三维世界中一点在二维图像中对应的像素的亮度不随时间变化。这意味着具有这种对应关系的像素的亮度值在连续帧中不会发生变化。
(2)微小移动:假设在短时间内,三维点的移动是微小的。根据亮度恒定假设,即一个三维点在二维图像中对应的像素在时间t一1和时间t的亮度值保持不变
我们可以推出图像亮度的空间梯度和时间梯度之间的关系的方程
notion image
这个方程表达了图像亮度的空间梯度和时间梯度之间的关系,可用于估计像素亮度随时间的运动,即光流,因此也被称为光流方程。然而,这个方程中存在两个未知数u和v,仅由这一个方程无法得到未知数的确定解,需要通过额外的

评论加载中…