Sift flow: Dense correspondence across scenes and its applications
- 作者:Ce Liu; Jenny Yuen; Antonio Torralba
- 机构:微软研究院
- 年份:2010
- 期刊/会议:IEEE Transactions on Pattern Analysis and Machine Intelligence
- 原文地址:Sift flow Dense correspondence across scenes and its applications
虽然图像对齐已经在计算机视觉的不同领域进行了几十年的研究,但对齐描绘不同场景的图像仍然是一个具有挑战性的问题。类似于光流,其中图像与其时间相邻的帧对齐,我们提出了 SIFT 流,这是一种在包含各种场景的大型图像语料库中将图像与其最近邻居对齐的方法。SIFT 流算法包括在两个图像之间匹配密集采样的像素级 SIFT 特征,同时保留空间不连续性。SIFT 功能允许跨不同场景/对象外观的稳健匹配,而不连续性空间模型允许匹配位于场景不同部分的对象。实验表明,所提出的方法稳健地对齐包含显着空间差异的复杂场景对。基于SIFT流,我们提出了一种基于对齐的大型数据库框架,用于图像分析和合成,其中根据密集场景对应将图像信息从最近邻转移到查询图像。该框架通过具体应用进行演示,例如从单个图像进行运动场预测、通过对象传输进行运动合成、卫星图像配准和人脸识别。
Ⅰ 介绍
图像对齐、配准和对应是计算机视觉的核心主题。图像对齐存在多个级别的场景。为了图像拼接和立体匹配的目的,已经研究了最简单的级别,对齐同一场景的不同视图。
对于视频序列中的动态场景,图像对齐问题变得更加复杂,例如光流估计。视频中两个相邻帧之间的对应关系通常被表述为对 2D 流场的估计。从立体中的 1D 过渡到光流中的 2D 的额外自由度引入了额外的复杂度。光流算法中的典型假设包括像素位移场的亮度恒定性和分段平滑度。
在目标识别场景中,图像对齐变得更加困难,目标是对齐同一对象类别的不同实例,如图 1b 所示。已经开发了复杂的对象表示来处理对象形状和外观的变化。然而,这些方法通常仍然需要对象是显着的、相似的,并且背景杂乱有限。
在这项工作中,我们对一种新的、更高级别的图像对齐感兴趣:对齐来自不同 3D 场景但共享相似场景特征的两个图像。场景级别的图像对齐因此称为场景对齐。如图1c 所示,要匹配的两个图像可能包含从不同视点捕获、放置在不同空间位置或以不同比例成像的对象实例。两幅图像也可能包含不同数量的同一类别的对象,并且一幅图像中存在的某些对象可能在另一幅图像中丢失。由于这些问题,场景对齐问题极具挑战性。
理想情况下,在场景对齐中,我们希望在语义级别建立对应关系,即在对象类级别进行匹配,例如建筑物、窗户和天空。然而,当前的物体检测和识别技术不足以检测和识别图像中的所有物体。因此,我们通过匹配局部、显着和变换不变的图像结构来采用不同的场景对齐方法。我们希望通过匹配这些图像结构可以建立语义上有意义的对应关系。此外,我们希望有一个简单、有效、无对象的模型来对齐图像对,例如图 1c 中的那些。
受能够在两个图像之间产生密集的像素到像素对应关系的光流方法的启发,我们提出了SIFT 流,采用光流的计算框架,但通过匹配 SIFT 描述符而不是原始像素。在 SIFT 流中,在每个像素处提取一个 SIFT 描述符来表征局部图像结构并编码上下文信息。使用离散的、不连续的、流量估计算法来匹配两个图像之间的 SIFT 描述符。SIFT 特征的使用允许跨不同场景/对象外观的稳健匹配,并且不连续性保留空间模型允许位于场景不同部分的对象的匹配。此外,设计了一种从粗到精的匹配方案,以显着加快流量估计过程。
光流仅应用于视频序列中的两个相邻帧之间,以获得有意义的对应关系;同样,我们需要定义SIFT 流的邻域。受大型图像数据库方法的最新进展的启发,我们将 SIFT 流的邻居定义为从大型数据库中检索到的最高匹配项。一些最近邻与查询图像共享相同场景特征的机会随着数据库的增长而增加,并且通过 SIFT 流获得的对应关系在语义上是有意义的。
使用 SIFT 流程,我们提出了一个基于对齐的大型数据库框架,用于图像分析和合成。根据 SIFT 流估计的密集场景对应关系,用于推断查询图像的信息从大型数据库中的最近邻居传输到该查询图像。在这个框架下,我们将 SIFT 流应用于两个新颖的应用程序:从单个静态图像进行运动预测,其中运动场从大型视频数据库中产生幻觉,以及运动传输,其中静止图像使用从类似移动场景传输的对象运动进行动画处理。我们还将 SIFT 流程应用回传统的图像对齐机制,例如卫星图像配准和人脸识别。通过这些示例,我们展示了 SIFT 流在计算机视觉和计算机图形学中的广泛应用的潜力。
Ⅱ 相关工作
Ⅲ SIFT流算法
密集SIFT描述符和可视化
SIFT描述符是一种系数特征表示,包括特征提取和检测,本文中只使用特征提取组件。对于每个像素,划分元胞组,每个元胞中方向量化为8个bins,获得维向量。称每个像素SIFT描述符为SIFT图像。
为了可视化 SIFT 图像,作者从一组图像中计算 SIFT 描述符的前三个主成分,然后将这些主成分映射到 RGB 空间。在这个可视化中,具有相似颜色的像素可能意味着它们共享相似的局部图像结构。请注意,此投影仅用于可视化;在 SIFT 流中,整个 128 个维度都用于匹配。
尽管该 SIFT 可视化可能看起来模糊,如图2d所示,但 SIFT 图像确实具有高空间分辨率,如图 3 所示。作者设计了一个具有水平阶梯边缘的图像(图 3a),并在图 3c 中显示了图 3a的 SIFT 图像的第一分量。
现在得到了两个图像的每个像素的 SIFT 描述符;下一个任务是建立密集的对应关系来匹配这些描述符。
匹配目标
作者设计了一个类似于光流的目标函数来从两个 SIFT 图像估计 SIFT 流。与光流类似,作者希望 SIFT 描述符沿着流向量匹配,并且流场是平滑的,不连续性与对象边界一致。基于这两个准则,SIFT 流的目标函数公式如下:
令表示图像的网格,并且为在的流。只允许和为整数并且假设它们各自只有个可能的取值。假设和为需要配准的SIFT图像,包含所有的空间近邻 (本文采用4近邻),SIFT流的能量函数表示为:
其中包含数据项、小位移项和平滑项(又名空间正则化)。
数据项限制流沿着,小位移项限制在没有其他信息可用时流矢量尽可能小,平滑项限制相邻像素的流矢量是相似的。
在这个目标函数中,数据项和平滑项中都使用了截断的 L1 范数来解释匹配的异常值和流不连续性,其中和为阈值。
作者使用双层循环信念传播作为基础算法来优化目标函数。与通常的光流公式不同,(3) 中的平滑项是解耦的,这允许我们分离水平流从垂直流,作者的模型的因子图如图5所示。设置了一个水平层u和垂直层v使用完全相同的网格,数据项连接相同位置的像素。在消息传递中,首先分别更新层内消息u和v,然后更新之间的层间消息u和v. 由于目标函数的函数形式截断了 L1 范数,使用距离变换函数来进一步降低复杂性和顺序置信传播 (BP-S) 以获得更好的收敛性。
粗到细匹配方案
使用的窗格计算大小的图像需要50秒,而处理大小的图像需要超过2小时的时间。
为了解决性能缺陷,作者设计了一个由粗到细的匹配方案,先在粗略的图像网格上估计流,再逐渐由粗到细地精细化流。这一过程如下所示。
简单起见,用表示和,SIFT金字塔的建立如下:,由的平滑和下采样建立。令为金字塔第层待匹配像素坐标,为搜索窗格的偏置或者质心,为置信传播的最佳匹配。
在最顶层,大小为的搜索窗口以为中心,其中为的宽度(高度),置信传播之后,系统将流向量传递到下一层,搜索窗口以为中心,窗口大小固定为,其中,迭代这一过程直到,直到流估计出来。
当匹配从较粗的级别传播到较细的级别时,两个相邻像素的搜索窗口可能具有不同的偏移(质心)。我们修改了为截断L1范数开发的距离变换函数,以应对这种情况,其思想如图7所示。为了计算从像素传递到其邻居的消息,我们首先收集所有其他消息和数据项,并应用中的例程计算从到的消息,假设和具有相同的偏移量和范围。然后,通过每一步增加,将函数扩展到范围之外,如图7a所示。我们将相对于的范围内的函数作为消息。例如,如果的搜索窗口的偏移量为0,的偏移量为5,则在图7c中绘制从到的消息。如果的搜索窗口偏移量为−2,否则,该消息如图7b所示。
使用提出的粗到细匹配方案和修改的距离变换函数,两个 256×256图像在具有两个四核 2.67 GHz Intel Xeon CPU 和 32 GB 内存的工作站上需要 31 秒,采用 C++ 实现。由于该算法可以并行化,因此可以通过 BP-S 算法的GPU 实现实现进一步的加速(高达 50 倍)。作者将此作为未来的工作。
一个自然的问题是,从粗到精的匹配方案是否可以达到与普通匹配方案相同的最小能量(仅使用一个级别)。我们随机选择了 200 对图像来估计 SIFT 流量,并分别检查使用粗到细方案和普通方案(非粗到细)获得的最小能量。对于这些256×256在图像中,从粗到细 SIFT 流的平均运行时间为 31 秒,而普通匹配的平均运行时间为 127 分钟。与图 8所示的普通匹配算法相比,从粗到细的方案不仅运行速度明显更快,而且在大多数情况下实现了更低的能量。这与光流社区的发现一致:从粗到细的搜索不仅加快了计算速度,而且还带来了更好的解决方
SIFT Flow的领域
理论上,可以将光流应用于两个任意图像来估计对应关系,但是如果两个图像来自不同的场景类别,我们可能无法获得有意义的对应关系。事实上,即使我们将光流应用于视频序列中的两个相邻帧,我们也会假设密集采样,因此两个相邻帧之间存在显着重叠。类似地,在 SIFT 流中,当我们使用输入查询大型数据库时,我们将图像的邻域定义为最近邻。理想情况下,如果数据库足够大且足够密集以包含世界上几乎所有可能的图像,则最近的邻居将靠近查询图像,共享相似的局部结构。这激发了以下与光流的类比:
时间密集采样:光流::
所有图像空间中的密集采样:SIFT流
由于假设时域的密集采样能够进行跟踪,因此假设世界图像空间(的某些部分)中的密集采样能够实现场景对齐。为了使这个类比成为可能,我们收集了一个大型数据库,其中包含来自 731 个视频的 102、206 帧,主要来自街景。与时域类似,我们将查询图像的“相邻帧”定义为该数据库中的 N 个最近邻居。然后在查询图像与其 N 个最近邻之间建立 SIFT 流。
对于查询图像,我们使用快速索引技术来检索其最近的邻居,这些邻居将使用 SIFT 流进一步对齐。作为快速搜索,我们使用量化 SIFT 特征的空间直方图匹配[32]。首先,我们通过在从我们数据集中的所有视频帧中随机选择的 5、000 个 SIFT 描述符上运行 K-means 来构建一个包含 500 个视觉词 [48] 的字典。然后,在两级空间金字塔上得到视觉词的直方图,并使用直方图交集来衡量两幅图像之间的相似度。
其他场景指标(例如 GIST)也可用于检索最近邻。据报道,各种最近匹配算法在获取最近邻进行匹配时不会产生显着差异。
Ⅳ 视频检索实验
Ⅴ 密集场景对齐实验
Ⅵ 图像对齐人脸识别实验
结论
我们引入了密集场景对齐的概念:估计跨场景图像之间的密集对应关系。我们提出了 SIFT 流来匹配具有空间规律的显着局部图像结构,并推测使用 SIFT 流在大型数据库中进行匹配会导致场景对齐的语义上有意义的对应关系。大量实验验证了我们的理论,表明尽管匹配图像的外观和空间布局存在显着差异,但 SIFT 流能够建立密集的场景对应关系。我们进一步提出了一种用于图像分析和合成的基于对齐的大型数据库框架,其中根据 SIFT 流估计的密集场景对应关系,将图像信息从大型数据库中的最近邻居传输到查询图像。该框架具体实现在单个图像的运动预测、通过对象转移和人脸识别的运动合成中。我们还将 SIFT 流程应用于传统的图像对齐问题。这些实验的初步成功表明,使用 SIFT 流的场景对齐可以成为计算机视觉和计算机图形学中各种应用的有用工具。