一文尽览 | 传统光流方法汇总及其在深度学习中的应用!(基于相位/能量/匹配/变分)

简介: 近年来,随着深度学习技术的快速发展,基于深度学习的光流估计技术已成为光流研究领域的热点与主战场。然而,当前很多刚接触光流算法研究的同学直接从深度学习方法开始,大跃进式的迈过了传统光流估计理论与方法。虽然,这并不影响他们产出高质量的研究成果,但是,对传统光流估计方法原理和理论还是有必要进行一定程度的学习。

原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA



回望传统光流估计方法



近年来,随着深度学习技术的快速发展,基于深度学习的光流估计技术已成为光流研究领域的热点与主战场。然而,当前很多刚接触光流算法研究的同学直接从深度学习方法开始,大跃进式的迈过了传统光流估计理论与方法。虽然,这并不影响他们产出高质量的研究成果,但是,对传统光流估计方法原理和理论还是有必要进行一定程度的学习。基于此,本文将主要从以下四个方面介绍传统光流估计方法:


  1. 光流的定义与应用;
  2. 传统光流估计方法的分类;
  3. 经典的变分光流估计模型;
  4. 传统光流估计方法在深度学习方法中的应用。


光流的定义与应用



当我们的眼睛在观察运动物体时,运动物体的景象会在我们眼睛的视网膜上产生一系列连续变化的图像,就像水流一样不断流过视网膜(即图像平面),故称之为光流。将其理论化,则有光流是指空间中运动物体在观测成像表面上的像素点运动瞬时速度。其不仅包含了被观察物体的运动信息,而且还包含有关景物丰富的三维结构信息。

此外,光流产生还需要3个必备的条件:


  1. 运动,这是光流形成的必要条件,没有运动就没有像素的位移;
  2. 带光学特性的部位 (例如有灰度的像素点 ) ,它能携带信息;
  3. 成像投影即从场景到图像,能被观察到。

640.png

图1

图1展示了光流在三维重建工作中的应用,从图中可以看到,通过利用光流包含的结构信息可以较好的实现场景的3D重建


因此,研究光流的目的就是从光流中恢复物体三维结构和运动,进而为更高级的视觉任务提供可靠支撑。


目前,光流估计技术已经应用于自动驾驶、无人机定位导航、影视特效以及目标跟踪等领域,几乎与人们生产生活息息相关。下方展示了光流在影视特效中的应用。

image.png0:02

传统光流估计方法的分类



在深度学习兴起之前,实现光流估计的方法主要分为:


  1. 基于相位的方法;
  2. 基于能量的方法;
  3. 基于匹配的方法;
  4. 基于变分的方法。


下面逐一介绍。


1.基于相位的方法


Fleet和Jepson最先提出将相位信息用于光流计算的思想。他们认为相比图像亮度信息,图像的相位信息更加可靠,利用相位信息获取的光流更加鲁棒。


基于相位的光流估计方法首先利用Gabor滤波器计算图像序列的相位时间梯度,然后,过滤给定时间跨度的非线性相位时间梯度,最后,在一个位置的剩下的相位时间梯度使用递归的神经网络计算出该位置的速度。下图是Fleet和Jepson所提方法的光流估计结果。


其优点在于对图像序列的适用范围较为宽泛,而且速度估计比较精确,缺点在于具有较高的时间复杂性且对图像序列的时间混叠较为敏感。


2.基于能量的方法


该方法利用调谐滤波器的输出能量达到最大来计算光流,由于调谐滤波器是在频域中设计的,因此该方法也称为基于频率的方法 。然而,在使用该类方法的过程中,如果要获得均匀光流场的准确估计,就必须对输入的图像进行时空滤波处理,但这样会降低光流的时间和空间分辨率。并且会涉及大量的计算,因此该方法时间成本较大。


3.基于匹配的方法


基于匹配的光流计算方法又分为基于特征和区域的两种。


基于特征的方法不断地对目标主要特征进行定位和跟踪,对目标大的运动和亮度变化具有鲁棒性。基于区域的方法先对类似的区域进行定位,然后通过相似区域的位移计算光流。他们获的光流方法均是稀疏的。


4.基于变分的方法


基于变分原理的光流估计方法是将光流估计问题归结为求解某个能量泛函的极值问题。因其在模型构建、计算精度以及性能鲁棒性等方面相比上述方法具有显著的优越性,在深度学习方法兴起之前一直是光流研究领域的主流方法。


经典的变分光流估计模型



HS模型


提到变分光流估计模型就不得不提经典的HS光流估计模型。1981年,Horn和Schunck 提出通过最小化全局能量函数来计算每个像素的位移向量。其中,该全局能量函数是基于灰度守恒假设(BCA) 的数据项和平滑项的组合。假设移动像素的灰度随时间保持恒定,则在数学上,可以表述为:

image.png

这里I表示图像序列,I(x,y,t)表示在t时刻像素点的灰度,I(x+u,y+v,t+1)表示在t+1时刻下一帧像素点灰度。为了对方程进行优化, HS 应用一阶泰勒展开来线性化方程的右半部分,则可得到近似值:

image.png

这就是众所周的光流约束方程,为了便于书写将上式可以重写为如下:

image.png

其中,X=(x,y)image.png是像素点坐标, w=(u,v) 是光流。

基于灰度守恒,则光流变分能量函数的数据项可以被写为:

image.png

然而,仅利用灰度守恒原理难以获得唯一解。所以,为了克服歧义,HS 提出了一个平滑约束,该约束规定流场应该平滑变化,因为相邻像素往往具有相似的运动。换句话说,一个点 (𝑥, 𝑦) 与其相邻点之间的流量变化接近于零,于是便有

image.png

依据平滑假设,则变分光流能量函数的平滑项可以被定义为:

image.png

将数据项与平滑项进行结合,则HS全局能量函数可以写作:

image.png

其中, 是权重因子,用于平衡两项。


最后,通过优化该能量函数便可以得到最终的光流w。该方程也可看做是变分光流估计中鼻祖级的能量方程,此后,所有变分光流估计方法几乎都以此能量方程为基础。

通常,对HS方程的改进方法主要有以下几个方向:


  1. 对数据项进行改善,以提高数据项的保真能力;
  2. 对平滑项进行重新设计,以控制光流扩散的程度与方向;
  3. 增加附加约束,解决特定场景下光流估计问题;
  4. 提出不同的优化与计算策略以提高复杂场景光流估计精度。


例如,由于灰度守恒对光照变化不敏感,研究人员就是用对光照变化更为鲁棒的梯度守恒策略代替灰度守恒,则数据项可以被改造为:

image.png

其中,image.png表示图像空间梯度。

由于HS方程中的平滑项是线性扩散的,容易模糊包含图像重要信息的边缘,因此,平滑项又被改造为基于各向同性的图像驱动平滑项:

image.png

再如,为了解决大位移光流估计问题,Brox等人在能量函数中的附加了匹配项,也就是LDOF光流估计模型。

image.png

其中,w=(u,v)是光流,w表示表示描述符在某些点x处匹配得到的对应向量。前两项是灰度守恒和梯度守恒假设,最后两项的附加的匹配项与描述符。


此外,通过引入由粗到细(coarse-to-fine )的金字塔优化策略也可以解决大位移光流估计不准确问题。下图中(a)表示了由粗到细的金字塔模型,(b)是原始图像,(c)是金字塔第三层,(d)

是金字塔第四层,(e)是估计出的光流可视化结果

640.png


图2


从上述的模型变化可以看出来,变分光流估计朝着越来越复杂的方向狂奔而去。


Classic+NL模型


在变分光流估计方法中,Classic+NL是继HS经典模型后的又一个经典模型。该方法的作者是光流研究领域的大牛 Deqing Sun所提出。他详细探索了HS各种改模型中不同改进方法对模型性能提升的具体的原因。并发现中值滤波启发式的方法可以有效提高模型光流的估计的准确性与鲁棒性。


将经典的HS模型离散化:

image.png

image.png 是惩罚函数,常用的有二次惩罚函数(x)=x,Charbonnier惩罚函数 (x)=(x+)以及Lorentzian惩罚函数(x)=log(1+x/2 )。作者将各个惩罚函数分别加入模型进行测试,以观察各惩罚函数的效果,如表所示。

image.png

接着,作者又探索了图像预处理技术、由粗到细策略以及GNC优化策略对模型的影响。其中,作者发现中值滤波启发式的方法对模型性能的提升具有显著作用。下图中左侧为使用中值滤波技术的光流估计结果,右图是未使用中值滤波技术的光流估计结果,可以看出在经典模型中加入中值滤波技术可以显著提升光流估计的效果。

640.png


尽管,中值滤波技术可以提升光流估计的精度,但是作者认为这种中值滤波方法还存在一定缺陷,即没有考虑像素点之间的距离、颜色以及遮挡因素的影响。为此,他设计了一种非局部加权中值滤波方法。该方法简而言之就是在HS能量函数中附加非局部约束项,其中非局部约束项如下所示:

image.png

其中,u''和v''是辅助光流,辅助优化能量函数。w是权重,根据空间距离、颜色值距离和遮挡状态定义,也就是加权中值滤波中的加权。

image.png

这里,0是遮挡变量,I(i,j)是Lab颜色空的颜色矢量,是常量均为7。下图展示了滤波窗口内加权与非加权中心像素点与邻域像素间的关系。


640.jpg


下图显示了15*15邻域空间内权重示例,其中, 明亮的值表示较高的权重。在d区域,由于步枪上的像素很少,因此未加权的中位数会过平滑。相反,加权项使用步枪上的值稳健地估计运动。

640.png


最终,Classic+NL模型可公式化为:

image.png

该图展示了使用中值滤波与非局部加权中值滤波技术光流估计效果对比,左图为中值滤波,右图为非局部加权中值滤波,可以看出Classic+NL方法具有更高的光流估计精度。

640.png


正是由于Classic+NL出色的光流估计性能,在此之后,很多方法都在此模型上进行改进。下图是Middlebury数据集排名,其中标记出的排名靠前的传统方法中均有Classic+NL的身影。

640.png


经典光流估计方法在深度学习方法中的应用



虽然,当前基于深度学习的光流估计方法在准确性与鲁棒性方面已经超越传统方法,并且达到了实时估计。但这并代我们可以完全抛弃传统方法。实际上,目前很多深度学习方法均采用了传统方法中的相关技术。


例如,SpyNet 将经典的空间金字塔方法与深度学习结合来计算光流的模型,并引入传统方法中的变形技术(warp)与纯深度学习方法FlowNet相比,它不需要处理大的运动,这些均交给空间金子塔处理,因此,SpyNet模型更小、参数更少。


LiteFlowNet为了解决光流场在动边界出现的模糊与伪影问题,其借鉴传统方法中的各向异性图像驱动、图像和光流驱动的正则化概念。在级联流推断之后,允许流场通过特征驱动局部卷积层在每个金字塔级别进一步正则化, 有效的保护光流边缘。


PWC-Net网络的设计更是遵循了传统方法中三个简单而成熟的原则:金字塔处理、变形(warping) 操作和代价计算 (cost volume),不仅获取了高精度的估计效果,而且实现了模型尺寸与计算精度之间的平衡。下图展示了传统金字塔处理与PWC-Net方法的异同:

640.png


可能有人说了,有没有直接将变分方程与深度学习结合的方法?答案当然是有的,不过这些方法一般应用于无监督光流估计模型。因为,无监督学习没有真实值作为收敛对比的条件,因此需要自己设计损失函数以实现模型的训练收敛,而这些损失函数一般往往都借鉴于变分方程。例如Jsaon J等人发表的”Back to Basics: Unsupervised Learning of Optical Flow via Brightness Constancy and Motion Smoothness"无监督光流估计方法。题目中就很直白的说了他们使用了灰度守恒和平滑正则,所以他们网络模型的损失函数为:

image.png

且:

image.png

是不是很熟悉??是不是跟Classic+NL前半部分很像?


同样的,后续的无监督的方法也在该损失函数上进行改进,例如UnFlow在该损失函数上引入了遮挡感知,上海交大的Zhe Ren等人在损失函数的数据项引入了梯度守恒;Rico Jonschkowski等人设计了一种边缘感知的一阶和二阶平滑项等等。虽然,上述方法可以实现无监督学习模式的光流估计,但是其精度与鲁棒性相比于监督方法还差很多,但整体准确性在逐步提高。下图展示了无监督学习光流估计与监督学习方法的对比。最近,武汉大学的涂志刚教授在IEEE TIP发表了题为“Unsupervised Learning of Optical Flow With CNN-Based Non-Local Filtering ”的无监督光流估计方法,该方法首次将非局部滤波的思想引入无监督光流估计。

640.png


此外,传统方法还在半监督光流模型中得到采用,如在“GuidedOpticalFlowLearning”论文中,作者用变分方法计算出得光流来引导深度学习模型训练,从而减少模型对标签数据的依赖。

640.png


总结一下,尽管,深度学习光流估计方法在计算精度、泛化性以及时效性方面,已经全面超越传统方法。但这并不代表我们需要全盘放弃对传统方法的研究与思考,实际上,通过对传统方法的研究与理解可以指导我们在深度学习光流估计领域创新。

相关文章
|
2小时前
|
机器学习/深度学习 边缘计算 算法
深度学习在图像识别中的应用与挑战
【5月更文挑战第9天】 随着人工智能技术的迅猛发展,深度学习已成为推动计算机视觉领域进步的关键力量。尤其是在图像识别任务中,深度神经网络通过模拟人脑的机制,显著提升了系统的准确率和鲁棒性。然而,尽管取得了显著成就,深度学习在图像识别应用中仍面临数据偏差、模型泛化能力不足以及计算资源密集等挑战。本文将探讨深度学习在图像识别领域的最新进展,分析其面临的主要技术和实践难题,并展望可能的解决方案。
|
2小时前
|
机器学习/深度学习 计算机视觉
深度学习在图像识别中的应用与挑战
【5月更文挑战第13天】 随着计算机视觉和人工智能技术的飞速发展,深度学习已成为推动图像识别领域进步的核心动力。本文将探讨深度学习技术在图像识别中的应用,并分析其面临的主要挑战。我们将从卷积神经网络(CNN)的基础出发,探索其在图像分类、目标检测和语义分割等方面的应用实例,并针对数据偏差、模型泛化能力、计算资源需求等关键问题展开讨论。通过案例分析和性能比较,我们旨在为读者提供一个关于深度学习在图像识别中应用的全面视角,同时指出未来的研究方向和技术趋势。
|
2小时前
|
机器学习/深度学习 数据可视化 计算机视觉
深度学习在图像识别中的应用与挑战
【5月更文挑战第13天】 随着人工智能技术的飞速发展,深度学习已经成为图像识别领域的核心技术。本文将探讨深度学习在图像识别中的应用,以及在实际应用中面临的挑战。我们将介绍深度学习的基本原理,以及如何将其应用于图像识别任务。此外,我们还将讨论在实际应用中可能遇到的问题,以及如何解决这些问题。
7 2
|
2小时前
|
机器学习/深度学习 计算机视觉
深度学习在图像识别中的应用与挑战
【5月更文挑战第13天】随着人工智能技术的飞速发展,深度学习已成为图像识别领域的核心技术。本文将探讨深度学习在图像识别中的应用,以及面临的挑战和未来发展趋势。我们将介绍卷积神经网络(CNN)的基本原理,以及如何通过迁移学习和数据增强等技术提高模型性能。此外,我们还将讨论深度学习在图像识别中面临的一些挑战,如对抗性攻击、数据偏见和计算资源需求等。
8 1
|
2小时前
|
机器学习/深度学习 监控 自动驾驶
深度学习在图像识别中的应用与挑战
【5月更文挑战第12天】 随着计算机视觉和人工智能技术的迅猛发展,深度学习已成为图像识别领域的核心技术。本文将探讨深度学习在图像识别中的应用,包括卷积神经网络(CNN)的基本原理、关键技术及其在不同领域中的应用案例。同时,我们将分析当前面临的主要挑战,如数据集偏差、模型泛化能力和计算资源要求,并提出可能的解决方案。通过综合评述,旨在为读者提供一个关于深度学习在图像识别中应用的全面视角。
|
2小时前
|
机器学习/深度学习 数据采集 监控
基于深度学习的图像识别技术在智能监控系统中的应用
【5月更文挑战第12天】 随着人工智能技术的迅猛发展,深度学习在图像处理领域已经取得了显著的成就。尤其是在图像识别任务中,卷积神经网络(CNN)等先进模型的应用极大提高了识别精度与效率。本文旨在探讨基于深度学习的图像识别技术如何被集成到智能监控系统中,以增强其自动检测和响应异常事件的能力。通过分析现有文献和最新研究成果,文章将详细阐述相关技术原理、系统架构、以及在实际场景中的应用效果,并讨论了面临的主要挑战和未来的发展方向。
|
3小时前
|
机器学习/深度学习 边缘计算 人工智能
深度学习在图像识别中的应用与挑战
【5月更文挑战第12天】 随着人工智能的迅速发展,深度学习技术在图像识别领域取得了显著的进步。本文旨在探讨深度学习模型如何有效地解决图像识别任务,并分析当前面临的主要挑战。文中将详细介绍卷积神经网络(CNN)的基础结构及其在图像分类、目标检测和语义分割中的应用。同时,将讨论数据增强、迁移学习、对抗性网络等优化策略。此外,本文也将指出模型泛化能力不足、计算资源消耗大、对小样本学习的挑战等问题,并提供可能的解决方案。
|
2小时前
|
机器学习/深度学习 传感器 人工智能
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第12天】 随着人工智能技术的飞速发展,深度学习已成为推动多个科技领域前进的关键力量。特别是在图像处理和识别方面,深度学习模型已经展现出了超越传统算法的性能。本文将探讨一种基于深度卷积神经网络(CNN)的图像识别技术,并分析其在自动驾驶系统中的应用。我们将重点介绍该技术如何提高自动驾驶汽车对周围环境的感知能力,以及它在未来交通生态中的潜在影响。
|
2小时前
|
机器学习/深度学习 监控 算法
深度学习在图像识别中的应用与挑战
【5月更文挑战第12天】 随着人工智能技术的飞速发展,深度学习已成为推动计算机视觉领域进步的核心技术之一。特别是在图像识别任务中,深度神经网络通过学习海量数据中的抽象特征,显著提升了识别的准确性和效率。然而,尽管取得了显著进展,深度学习在图像识别应用中仍面临一系列挑战,包括但不限于数据集偏差、模型泛化能力、计算资源消耗以及对抗性攻击的脆弱性。本文将深入探讨深度学习技术在图像识别领域的应用现状,分析存在的挑战,并对未来发展趋势进行展望。
15 9
|
2小时前
|
机器学习/深度学习 存储 边缘计算
深度学习在图像识别中的应用与挑战
【5月更文挑战第11天】 随着计算机视觉技术的飞速发展,深度学习已成为推动图像识别领域进步的核心动力。本文将探讨深度学习在图像识别中的应用,并分析当前面临的主要挑战。通过梳理卷积神经网络(CNN)的发展历程、关键算法及其在不同场景下的应用案例,本文揭示了深度学习技术如何有效提升图像识别的准确性与效率。同时,针对数据偏差、模型泛化能力、计算资源限制等问题,文中提出了相应的解决策略和未来发展方向。