一、论文简述
1. 第一作者:Gangwei Xu
2. 发表年份:2022
3. 发表期刊:arXiv
4. 关键词:立体匹配,代价体构建,注意力相关体,注意力过滤
5. 探索动机:现有的方法要不是做精度的,要不然是做效率的,没有一种方法实现了较好的平衡;现有的方法要不然使用连接体,要不然使用相关体,没有很好的结合两种代价体的优势。
6. 工作目标:这项工作目的是探索一种更高效且有效的代价体形式,能够高效率地实现最好的精度。我们基于两个关键观察来构建我们的模型:首先,测量左右图像之间特征相似性的相关体可以快速提供粗略的几何结构信息。第二,连接体包含丰富内容和精细结构,但信息冗余。这表明,利用编码几何结构信息的相关体可以显著抑制连接体的冗余信息,同时保持足够的信息来估计正确的视差。
7. 核心思想:
- 提出了一个注意力连接体(ACV)及其实时版Fast-ACV,采用统一框架以构建信息丰富、简洁的代价体表示,可无缝嵌入到大多数现有立体模型中,显著降低计算成本并提高精度。
- 提出了一个体注意力传播(VAP)模块,它是Fast-ACV成功的关键因素。我们的VAP可以从低分辨率体中恢复高质量的高分辨率相关体,从而实现较大的加速,同时保持令人满意的精度。
- 提出了一个高精度立体匹配模型ACVNet和实时立体匹配模型Fast-ACVNet,在几个广泛使用的基准测试上实现了最先进的性能。
- 公开了ACVNet和Fast-ACVNet的源代码。
8. 实验结果:高精度网络ACVNet和实时网络Fast-ACVNet,在几个基准测试中都达到了最先进的性能,即,在所有已发表的方法中,ACVNet在KITTI 2015和Scene Flow中排名第二,在KITTI 2012和ETH3D中排名第三):在Scene Flow、KITTI 2012和2015上Fast-ACVNet几乎优于所有最先进的实时方法,同时具有更好的泛化能力。
9.论文&代码下载:
https://github.com/gangweiX/ACVNet
https://arxiv.org/pdf/2209.12699.pdf
二、论文翻译
基于注意力连接体的准确高效的立体匹配方法
摘要
立体匹配是许多视觉和机器人应用的基本组成部分。一种信息丰富、简洁的代价体表示方法对于高精度、高效率的立体匹配至关重要。本文提出了一种新的代价体构建方法,称为注意力连接体(ACV),该方法从相关线索中生成注意力权重,以抑制冗余信息并增强连接体中的匹配相关信息。ACV可以无缝嵌入到大多数立体匹配网络中,生成的网络可以使用更轻量级的聚合网络,同时实现更高的精度。为了实现实时性能,我们进一步设计了一种快速版本的ACV,称为Fast-ACV,该算法从低分辨率的相关线索中生成高似然视差假设和相应的注意力权重,从而显著降低计算和内存成本,同时保持令人满意的精度。Fast-ACV的核心思想是体注意力传播(VAP),它可以自动从上采样的相关体中选择准确的相关值,并将这些准确的相关值传播到周围具有模糊相关线索的像素。此外,基于我们的ACV和Fast-ACV,我们分别设计了一个高精度网络ACVNet和一个实时网络Fast-ACVNet,在几个基准测试中都达到了最先进的性能(即,在所有已发表的方法中,我们的ACVNet在KITTI 2015和Scene Flow中排名第二,在KITTI 2012和ETH3D中排名第三);在Scene Flow、KITTI 2012和2015上我们的Fast-ACVNet几乎优于所有最先进的实时方法,同时具有更好的泛化能力)。
索引词 — 立体匹配,代价体构建,注意力相关体,注意力过滤。
1 引言
立体匹配用于估计一对校正后的立体图像的深度(或视差),是许多机器人和计算摄影应用的基本任务,如3D重建,机器人导航和自动驾驶。尽管文献中有大量的研究工作,但由于存在难以处理的重复结构、无纹理/透明物体和遮挡区域,但如何同时实现很好的推理精度和效率对于实际应用至关重要,仍然是具有挑战性的问题。
近年来,体神经网络在该领域表现出了巨大的潜力。最先进的CNN立体视觉模型通常由四个步骤组成,即特征提取、代价体构建、代价聚合和视差回归。为左图像素和可能对应的右图像素提供初始相似性度量的代价体是立体匹配的关键步骤。从该步骤得到信息丰富且简洁的代价体表示对于最终的精度和计算复杂性至关重要。基于学习的方法探索了不同的代价体表示。DispNetC在每个视差级别上计算左右特征图之间的单通道全相关体。这种全相关体为度量相似性提供了一种有效的方法,但它会丢失很多内容信息。GC-Net通过在所有视差上连接左右特征图来构建4D连接体,以提供丰富的内容信息。然而,连接体完全忽视了相似性度量,因此需要大量的3D体来进行代价聚合,以便从头开始学习相似性度量。为了克服上述缺点,GwcNet将组相关体与小型的连接体连接起来,在最终的4D代价体中编码匹配信息和内容信息。但是,相关体和连接体的数据分布和特点有很大不同,前者通过点积得到相似度度量,后者是一元特征的连接。简单地连接两个体并通过3D体对其进行正则化很难充分发挥两个体的优势。因此,GwcNet仍然需要大量的3D体进行代价聚合。为了进一步降低内存和计算复杂度,一些方法采用级联代价体,从粗到细构建代价体金字塔,逐步缩小目标视差范围。但是,这些级联方法需要对每一阶段的代价体进行重构和重新聚合,而不能重用前一阶段概率体中的先验信息,因此利用效率很低。此外,这些级联方法可能会产生不可逆的累积误差,因为它们直接丢弃了前一阶段预测范围之外的视差。
为了平衡效率和精度,一些研究试图只构建和聚合低分辨率(即1/8) 4D 代价体,并通过上采样恢复全分辨率视差图。例如,StereoNet仅在1/8分辨率下,基于左右特征图的视差构建了一个4D 代价体。然后对二维视差图进行回归,接着通过双线性插值上采样得到1/8分辨率代价体。类似地,BGNet构建了一个低分辨率的4D 分组相关体,并基于双边网格设计了一个无参数切片层,从低分辨率的代价体中获得了一个保留边缘的高分辨率代价体。DeepPruner开发了一个可微的PatchMatch模块,有效地构建低分辨率连接体的稀疏表示。每个像素的搜索空间通过预测的最小和最大视差调整。不幸的是,与性能最好的算法相比,这些针对效率的方法通常会大大降低精度。
这项工作目的是探索一种更高效且有效的代价体形式,能够高效率地实现最好的精度。基于两个关键观察来构建我们的模型:首先,测量左右图像之间特征相似性的相关体可以快速提供粗略的几何结构信息。第二,连接体包含丰富内容和精细结构,但信息冗余。这表明,利用编码几何结构信息的相关体可以显著抑制连接体的冗余信息,同时保持足够的信息来估计正确的视差。
有了这些直觉,我们提出了一种注意力连接体(ACV),它利用轻量级的相关体来生成注意力权重来过滤连接体(如图1所示)。ACV可以实现更高的准确率,同时显着减轻代价聚合的负担。实验结果表明,用我们的ACV替换GwcNet的结合体之后,与使用28个3D体进行代价聚合的GwcNet相比,仅用4个3D体进行代价聚合就可以取得更好的精度。我们的ACV是一种通用的代价体表示,可以无缝嵌入到各种3D CNN立体模型中以提高性能。结果表明,应用我们的方法后,PSMNet和GwcNet精度可以分别提升42%和39%。
图1:我们提出的ACVNet的结构。ACV的构建过程包括三个步骤:注意力权重生成,初始连接体构建和注意力过滤。
我们进一步设计了一个更快的ACV版本,以实现实时性能(即立体匹配推理时间小于50ms),称为Fast-ACV(见图2)。我们的Fast-ACV的关键是一种新颖的体注意力传播(VAP)模块,该模块可以从低分辨率的体中恢复高分辨率的高质量相关体,从而显著降低相关体构建和聚合的时间成本。具体来说,我们的VAP在高分辨率的插值相关体中自动识别一组具有可靠相关值的像素,并将这些信息传播到它们的领域,以逐步修正误差并减少高分辨率相关体的模糊性。具有精确的回归视差和锐利分布的视差概率(即回归视差的置信度高)的像素被认为是可靠的,可用于指导相邻像素的相关值的修正。
为此,我们设计了一个整体度量来评估插值相关体中每个像素的视差估计精度和置信度。此外,我们采用十字形状采样模式,以实现高效和高效的传播路径。基于我们的VAP,我们提出了一种“从细到重要”的采样策略,该策略生成一组具有高似然的视差假设和相应的注意力权重,以显著抑制连接体中的不可能的视差,从而减少时间和内存成本。
图2:我们提出的Fast-ACVNet的结构。我们首先利用相关体来生成高似然的视差假设和相应的注意力权重。然后利用注意力权重对基于视差假设构建的小型连接体进行滤波,得到Fast-ACV。
基于所提出的ACV和Fast-ACV的优点,我们设计了一种精确的立体匹配网络ACVNet及其实时版Fast-ACVNet。在撰写本文时,在所有已发布方法中,我们的ACVNet在 KITTI 2015和Scene Flow中排名第二,在上排名第二, 在KITTI 2012和ETH3D排名第三。值得注意的是, ACVNet是在上述四个数据集中唯一同时排名前3的方法,展示了其对各种场景良好的泛化能力。关于推理速度,在KITTI基准测试的前10种方法中ACVNet是最快的。同时,在Scene Flow、KITTI 2012和2015上我们的Fast-ACVNet几乎优于所有最先进的实时方法。
综上所述,我们的主要贡献是:
- 我们提出了一个注意力连接体(ACV)及其实时版Fast-ACV,采用统一框架以构建信息丰富、简洁的代价体表示,可无缝嵌入到大多数现有立体模型中,显著降低计算成本并提高精度。
- 我们提出了一个体注意力传播(VAP)模块,它是Fast-ACV成功的关键因素。我们的VAP可以从低分辨率体中恢复高质量的高分辨率相关体,从而实现较大的加速,同时保持令人满意的精度。
- 我们提出了一个高精度立体匹配模型ACVNet和实时立体匹配模型Fast-ACVNet,在几个广泛使用的基准测试上实现了最先进的性能。
- 我们公开了ACVNet和Fast-ACVNet的源代码。
2 相关工作
2.1基于代价体的深度立体匹配
最近,基于CNN的立体模型在几乎所有标准基准上都取得了令人瞩目的表现。大多数方法致力于提高代价体构建和代价聚合的精度和效率,这是立体匹配的两个关键步骤。
代价体构建。现有的代价体表示可以大致分为三种类型:相关体、连接体和将两个体连接起来的结合体。DispNetC利用相关层直接度量左右图像特征的相似性,形成每个视差层级的单通道代价体。然后,用2D体聚合上下文信息。这种全相关体需要很少内存和计算复杂度,但编码信息太有限(即通道维度中丢失太多内容信息),而无法达到令人满意的精度。GC-Net使用连接体,连接左右CNN特征以形成所有视差的4D代价体。这种4D连接体保留了来自所有特征通道的丰富的内容信息,因此在精度方面优于相关体。然而,由于连接体没有明确地编码相似性度量,它需要一个深度的3D体堆叠从头开始聚合所有视差的代价。为了克服上述缺点,GwcNet提出了组相关体,并将其与小型的连接体连接起来形成结合体,以结合两个体的优点。然而,直接连接两种类型的体而不考虑它们各自的特点不能充分利用两种体的互补优点。因此GwcNet仍然需要沙漏结构中的深层堆叠3D体进行代价聚合。延续4D组合代价体,级联代价体通过以粗到细的方式构建代价体金字塔,以逐步缩小目标视差范围,并改进深度图。然而,这些级联方法需要对每个阶段的代价体进行重构和聚合,这也会产生大量的三维体。此外,它们通常不使用前一阶段概率体中的先验信息,利用率很低。而且,这种由粗到细的策略不可避免地涉及不可逆的累积误差,即当视差分布包含多个峰值时,仅改进从前一阶段回归的峰值视差可能会错过真实的视差。
代价聚合。此步骤的目标是聚合初始代价体中的上下文信息以得出准确的相似性度量。现有的方法使用深层 3D CNN 从代价体中学习有效的相似性函数。但是,对于时间受限的应用来说,计算消耗和内存消耗都太高了。为了降低复杂度,AANet提出了一种尺度内和尺度间代价聚合算法来替代传统的3D体,该算法可以实现非常快的推理速度,但同时有明显的精度下降。GANet还使用两个引导聚合层替换3D体,使用与空间相关的3D聚合实现了更高的精度,但两个引导聚合层需要更多的聚合时间。
代价体构建和聚合是两个紧密耦合的模块,它们共同决定立体匹配网络的精度和效率。在这项工作中,我们提出了一种高效但信息量大的代价体表示,称为注意力连接体,通过使用相关体中编码的相似性信息来正则化连接体,因此只需要一个轻量级的聚合网络即可实现高效率和高精度。
2.2 实时立体匹配
最近的几项研究主要关注于基于4D代价体的轻量级立体网络,实现实时性能,同时保持精度。
这些方法通常以低分辨率构建和聚合4D代价体,以显著降低计算成本。为了弥补低分辨率的信息损失,StereoNet提出了一种保持边缘的改进网络,利用左侧图像作为引导,恢复高频细节。DeepPruner采用PatchMatch的思想,首先构建代价体的稀疏表示,然后根据预测的最小和最大视差对搜索空间进行缩减。在低层次图像特征图的指导下,进一步改进预测的视差。BGNet提出了一种基于学习的双边网格的上采样模块,将低分辨率的代价体恢复为高分辨率的4D代价体。HITNet将图像块表示为平面块,并将图像形变、空间传播和快速高分辨率初始化加入网络,降低计算成本。而HITNet在训练时需要额外的传播损失、倾斜损失和置信度损失,这可能导致在与训练数据特征不同的新场景中泛化能力较差。
相比之下,我们的Fast-ACV具有更好的泛化能力,可以很方便的作为插件应用于许多基于4D代价体的立体模型。
在现有实时方法的激励下,我们的实时版本的ACV(即Fast-ACV)采用了一种新颖的传播策略(通过VAP模块)来高效地获取插值后的相关值,该方法可以更好地应对原始低分辨率相关体中的噪声,同时有效地恢复薄结构和尖锐的边缘。同时,不同于现有的实时方法直接从插值后的相关体回归视差,我们使用插值相关值生成高似然的视差假设和相应的注意力权重对连接体正则化。此外,我们的Fast-ACV与级联方法不同,级联方法通过从粗到细的策略缩小视差搜索空间,我们的方法保留了所有高似然的视差假设,并调整假设的注意力权重(即从细到重要的策略),以避免不可逆的累积误差。
3 方法
在本节中,我们首先描述了ACV(第3.1节)和Fast-ACV(第3.2节)的基本设计。然后在第3.3和3.4节中,分别详细介绍了ACVNet和Fast-ACVNet的网络结构。最后,在第3.5节中,说明了用于训练ACVNet和Fast-ACVNet的损失函数。
3.1 注意力连接体
注意力连接体的构建过程包括三个步骤:注意力权重生成、初始连接体构建和注意力过滤。
1)注意力权重生成。注意力权重目的是过滤初始连接体,以突出有用信息并抑制不相关信息。为此,我们通过从一对立体图像之间的相关中提取几何信息来生成注意力权重。传统的相关体是通过计算像素间的相似性获得的,由于缺乏足够的匹配线索,因此在无纹理区域相似性变得很不可靠。为了解决这个问题,我们通过多级自适应块匹配(MAPM)提出了一种更鲁棒的相关体构建方法。我们从特征提取模块中获得了三个不同层级上的特征图l1、l2和l3,l1、l2和l3的通道数分别为64、128和128。对于特定层级的每个像素,我们使用具有预定义大小和自适应学习权重的空洞块来计算匹配代价。通过控制膨胀率,我们确保块的范围与特征图层级相关,同时在中心像素的相似性计算中保持相同的像素数。两个对应像素的相似性是块中对应像素之间相关性的加权和。
我们将特征划分为组,并按组计算相关图组。l1、l2和l3三个层级的特征图连接起来形成Nf通道的一元特征图(Nf=320)。我们将Nf个通道平均分为Ng组(Ng=40),因此前8组来自l1,中间16组来自l2,最后16组来自l3。不同层级的特征图不会相互干扰。我们将第g个特征组表示为fgl、fgr,多级块匹配体Cpatch计算为:
其中Cpatchlk(k∈(1, 2, 3))表示不同特征层级k的匹配代价。〈·,·〉表示内积,(x, y)表示像素的位置,d表示不同的视差。Ωk=(i, j) (i, j∈(-k, 0, k))是一个九个点坐标集,定义了在k层特征图上块的范围(在ωijk表示在k层特征图上的块中一个像素(i, j)的权重,并在训练过程中自适应地学习。通过连接所有层级的匹配代价Cpatchlk(k∈(1, 2, 3))形成最终的多级块匹配体,
我们将推导出的多级块匹配体表示为Cpatch∈RNg×D/4×H/4×W/4,然后我们使用两个3D卷积和一个3D沙漏网络来正则化Cpatch,然后使用另一个卷积层将通道压缩为1并获得注意力权重,即A1×D/4×H/4×W/4。
为了获得不同视差的准确的注意力权重来过滤初始连接体,我们使用真实的视差来监督A。具体来说,我们采用与GC-Net相同的soft argmin函数从A来获得视差估计datt。我们计算datt和视差真实值之间的平滑L1损失,指导网络的学习过程。
2)初始连接体构建。给定大小为3×H×W的输入立体图像对,对于每个图像,我们分别通过CNN特征提取获得左右图像的一元特征图fl和fr。fl(fr)的特征图大小为Nc×H/4×W/4 (Nc=32)。然后通过在每个视差层级上将fl和fr连接形成初始连接体,
连接体相应的大小为2Nc×D/4×H/4×W/4,D表示视差的最大值。
3)注意力过滤。在获得注意力权重A后,我们用它来消除初始连接体中的冗余信息,进而增强表示能力。通道i的注意力连接体CACV 计算为:
其中⊙表示逐元素乘积,注意力权重A用于初始连接体的所有通道。
3.2 快速注意连接体
与ACV相比,我们的Fast-ACV从两个方面加速了进程。首先,Fast-ACV采用了一种新型的体注意力传播(VAP)模块,使其能够在低分辨率下执行大部分计算,以生成高似然的视差假设和它们的注意力权重。其次,我们的Fast-ACV仅基于高似然视差假设构建和过滤小型的连接体,以进一步减少时间和内存成本。接下来,我们介绍了我们的VAP,小型连接体的构建和过滤。
3.2.1 体注意力传播
如图2所示,在低分辨率下构建并聚合一个4D相关体。然后,通过双线性插值形成一个初始高分辨率相关体。为了获得一组种子像素,这些种子像素可能具有准确的匹配,即视差预测的精度较高,同时在所有视差层级上具有明显分布的代价体,即对于视差预测有高置信度,从两个互补的角度对相邻视差进行联合筛选:1)视差采样与评估,获得匹配分数,表示周围视差的相关程度;2)置信估计和采样,以获得置信度分数,它代表了周围视差的可靠程度。最后,通过十字型传播将两种评价分数进行整合。该传播遵循的原则是,只有同时具有高相关性和高可靠性的视差是首选,用于传播到当前位置。我们将在下面详细介绍这三个部分。
图3:体注意力传播。
1)视差采样与评估。通过双线性插值从低分辨率相关体上采样得到初始高分辨率相关体Vinit∈RD/4×H/4×W/4 (如图3所示),首先从Vinit中回归初始视差图Dinit∈RH/4×W/4,然后通过预定义的one-hot滤波模式的卷积对相邻像素的视差进行采样。为了充分利用相邻信息,采样范围与上采样因子有关。例如,当上采样因子为2时,我们将采样块的大小设置为3 ×3。同时,为了提高效率,我们以十字形状而不是正方形形状对每个像素周围的视差进行采样。如图3所示,采样后像素i处的候选视差为Dminiti,m=1,2,3,4,5。在像素i处的匹配分数计算为:
其中〈·,·〉为内积,Fl,Fr∈RC×H/4×W/4为特征提取后分辨率为1/4的左右特征图,提供用于VAP计算匹配分数的细节,以缓解边缘模糊问题。
2)置信度估计与采样。利用高分辨率相关体Vinit,通过softmax得到概率体Pinit∈RD/4×H/4×W/4。
由于边缘区域的视差不连续,在边缘区域进行线性插值容易产生多峰分布问题,如图4所示,导致置信度低,预测误差大。因此,具有多峰分布的像素是不可靠的,不应该用于传播。为此,我们提出使用不确定性估计来评估当前估计的像素级置信度。不确定性由分布的方差估计。像素I的不确定性U(i)计算为:
其中Pdiniti表示像素i处的第d个概率值。对于不确定性U(i),像素i处的置信度定义为:
其中α,β为学习参数。不确定性越大,置信度就越低。对于像素i,我们以十字型对其周围的置信度进行采样,得到候选置信度分数Cmi,m=1,2,3,4,5,如图3所示。
3)十字型传播。结合每个相邻像素的匹配得分和置信度得分,我们可以得到一个整体的传播权重为:
沿着空间维度,我们将初始相关体Vinit展开成十字型,然后得到展开相关体Vu∈RM×D/4×H/4×W/4。在Vu的空间位置i和视差d处,我们可以得到向量Vu(i,d)∈RM。十字型传播的操作定义为:
Vp∈RD/4×H/4×W/4为传播后的相关体(见图3)。
图4:置信度图可视化。对于边缘区域,由于不同物体的插值导致视差概率分布呈多峰分布,因此基于方差的不确定性较大,置信度较低。亮的区域代表低置信度。
3.2.2 小型的连接体结构和过滤
Fast-ACV仅保留了构建小型的连接体的高似然假设及其对应的用于过滤连接体的注意力权重,可大大降低计算成本。对于相关体Vp,应用softmax函数得到视差概率分布体P∈RD/4×H/4×W/4。理想情况下,视差概率分布P应该在真实的视差处达到单峰。但是,实际的概率分布在某些像素点上可能是多模态的,例如病态区域、无纹理区域和遮挡(见图5)。为了同时保留高似然假设并降低计算成本,我们使用在每个像素处的P作为注意力权重AF∈RK×H/4×W/4,并将其对应的视差作为高似然假设Dhyp∈RK×H/4×W/4,
然后,通过连接仅基于高似然视差假设flF和frF来构建小型连接体,
左、右图像的一元特征图flF和frF分别来自CNN特征提取。最后,利用注意力权重AF对小型连接体进行滤波,提高连接体的表示能力。通道i处的快速注意连接体CF-ACV计算为:
图5:从细到重要采样策略的可视化。理想情况下,视差概率分布应在真实视差处达到单峰。然而,在某些像素点上,实际的概率分布可能是单峰或多峰。中间图中的红色三角形和蓝色三角形分别表示粗阶段时多模态分布(左图)和单模态分布(右图)的两个点。级联方法仅对粗阶段(用蓝线表示)回归后的视差附近采样差值,可能会错过多模态分布点的真实视差。相比之下,我们的采样策略(红点)可以保留多模态和单模态分布点的真实视差。
3.3 ACVNet结构
基于ACV,我们设计了一个准确高效的端到端立体匹配网络,命名为ACVNet。图1展示了ACVNet的结构,它由一元特征提取、注意力连接体构建、代价聚合和视差预测四个模块组成。下面,我们详细介绍各个模块。
特征提取。我们采用了类似于[5]中三层级的ResNet结构。对于前三层,使用步长为2、1和1且卷积核为3×3的三个卷积对输入图像进行下采样。然后,接着使用16个残差层,产生了分辨率为1/4的一元特征,即l1, 接着6个具有更多通道的残差层,以获得更大的感受野和语义信息,即l2和l3。最后,将所有分辨率为1/4的特征图(l1、l2、l3)连接起来,形成通道数为320的特征图,用于生成注意力权重。然后用两个卷积将320通道特征图压缩为32通道特征图,以构建初始连接体,分别表示为fl和fr。
注意连接体构建。该模块用通道数为320的特征图生成注意力权重,并用fl和fr构建初始连接体。然后使用注意力权重过滤初始连接体以产生所有视差的4D代价体,如第3.1节所述。
代价聚合。使用预沙漏模块处理ACV,该模块由具有批归一化和ReLU 的四个 3D卷积和两个堆叠的3D沙漏网络组成,3D沙漏网络主要由编码器-解码器结构中堆叠的四个3D卷积和两个3D反卷积组成。
视差预测。在代价聚合中得到三个输出,见图2。对于每个输出,延续GwcNet的方式,使用两个3D卷积输出一个通道为1的4D体,然后我们将其上采样并在视差维度通过softmax函数转换为概率体。最后,通过soft argmin函数计算预测值,三个预测的视差图表示为d0、d1和d2。
3.4 Fast-ACVnet架构
基于Fast-ACV,构建了一个实时立体模型Fast-ACVNet。图2展示了 Fast-ACVNet 结构,它由一元特征提取、快速注意力连接体构建、代价聚合和视差预测四个模块组成。
多尺度特征提取。给定一个尺寸为 H×W×3 的输入立体图像对,使用在ImageNet上预训练的MobileNetV2得到分辨率分别为原始分辨率的 1/4、1/8、1/16 和 1/32 的特征图。然后使用3个有跳跃连接的上采样块来增加 H/32×W/32、H/16×W/16 和 H/8×W/8 分辨率的低分辨率特征图的大小(如图2所示)。最后,得到分辨率为 H/8×W/8 特征图用于生成注意力权重,分辨率为 H/4×W/4 特征图用于构建小型的连接体。
快速注意连接体构建。我们采用分辨率为 1/8 的 96 通道特征图来生成注意力权重,采用分辨率为 1/4 的 flF 和 frF 来构建小型的连接体。我们把分辨率为 1/8 的 96 通道特征图分为 12 组,每组 8 通道特征图。然后构建组相关体。我们利用与CoEx相同的轻量级可指导的沙漏网络来正则化低分辨率的组相关体。然后用 VAP 正则化相关体,得到分辨率为 1/4 的体 Vp。我们进一步利用 Vp 在每个像素的 TopK 的概率值,将Vp转换为概率体,得到注意力权重 AF∈RK×H/4×W/4。注意力权重用于过滤小型的连接体以产生 Fast-ACV,如第3.2节所述。
代价聚合。我们使用可指导的沙漏网络聚合 Fast-ACV,该网络由六个 3D 卷积和两个 3D 反卷积组成的编码器-解码器构成。根据CoEx,我们利用从左侧图像提取的特征图作为代价聚合的指导。
视差预测。在聚合后的代价体的每个像素上只取出前 2 个值,并对这些值执行 softmax 来计算期望的视差值。最后,通过围绕每个像素为的“超像素”权重对原始输入图像分辨率的输出视差预测进行上采样。
3.5 损失函数
对于ACVNet,最终损失为:
其中datt是通过第3.1节中的注意力权重获得的。λatt表示预测datt的系数,λi表示第i个预测视差的系数,dgt表示真实的视差图。平滑SmoothL1是平滑L1损失。
对于Fast-ACVNet,最终损失为:
dattF是通过用于Fast-ACV的小型的注意力权重获得的, dF是Fast-ACVNet的最终输出。
4 实验
4.1 数据集和评价指标
Scene Flow是合成立体数据集的集合,提供35454个训练图像对和4370个测试图像对,分辨率为960×540。该数据集提供稠密视差图作为真实值。对于Scene Flow数据集,我们使用了广泛使用的评估指标端点误差 (EPE) 和视差离群值百分比D1,离群值定义为视差误差大于max(3px, 0.05d*)的像素,其中d*表示真实视差。
KITTI包括KITTI 2012和KITTI 2015。KITTI 2012和2015是真实世界驾驶场景的数据集。KITTI 2012包含194个训练立体图像对和195个测试图像对,而KITTI 2015包含200个训练立体图像对和200个测试图像对。这两个数据集都提供了使用LIDAR获得的稀疏真实的视差。对于KITTI 2012,我们报告了在非遮挡(x-noc)和所有区域(x-all) 的误差大于x个视差的像素的百分比,以及非遮挡(EPE-noc)和所有像素(EPE-all)的总体的EPE。对于KITTI 2015,我们报告背景区域(D1-bg)、前景区域(D1-fg)和所有区域(D1-all) EPE大于3个像素的像素百分比。
ETH3D是来自室内和室外场景的灰度立体对的集合。它包含27个训练和20个测试图像对,带有稀疏标记的真实值。它的视差范围正好在0-64的范围内,并公布误差大于2个像素(bad 2.0)和1个像素(bad 1.0)的像素百分比。
Middlebury是一个室内数据集,有15个训练图像对和15个测试图像对,具有全分辨率、半分辨率和四分之一分辨率,报告Bad2.0(绝对误差大于2像素的点的百分比)。
4.2 实现细节
我们使用PyTorch实现我们的方法,并使用NVIDIA RTX 3090 GPU进行实验。对于所有实验,我们使用Adam优化器,设置β1 = 0.9,β2 = 0.999。对于ACVNet,四个输出的系数设置为λatt=0.5, λ0=0.5, λ1=0.7, λ2=1.0。对于ACVNet-Fast,两个输出的系数设置为λattf=0.5,λf=1.0。对于ACVNet,我们首先将注意力权重生成网络在Scene Flow上训练64次,然后将剩余的网络再训练64次。最后,我们训练完整网络64次。初始学习率设置为0.001,在轮次为20、32、40、48和56之后下降2倍。对于Fast-ACVNet,我们首先将注意力权重生成网络在Scene Flow上训练24次,然后再对完整网络进行24次训练。初始学习率设置为0.001,在第10、15、18和21次训练之后衰减2倍。对于KITTI,我们将预训练的Scene Flow模型在混合的KITTI 2012和KITTI 2015训练集上微调500次。初始学习率为0.001,在第300轮时降低一半。
4.3 消融实验
在本节中,我们将研究ACV和Fast-ACV的不同设计和配置设置。
4.3.1 注意力连接体
在Scene Flow上我们评估了构建ACV的不同策略。我们以GwcNet为例,对现有的其他基于代价体的立体匹配方法进行了分析,趋势相似,故在本实验中省略。我们用我们的ACV替换GwcNet的结合体,并保持后面的聚合和视差预测模块相同。图6展示了构建ACV的三种不同方式。图6(a)直接在通道维度上平均了多级块匹配体,并将其与连接体相乘,表示为GwcNet- att。如表1所示,仅仅这种简单的方法就可以显着提高准确性。显然,在使用多级块匹配体过滤连接体时,多级块匹配体的准确性至关重要,并且很大程度上影响网络的最终性能,因此我们使用3D卷积的沙漏结构对其进行聚合,即表示为 GwcNet-hg,如图6(b)所示。表1中的结果表明,与GwcNet- att相比,GwcNet-hg将D1和EPE分别提高了7.9%和8.7%。为了在训练过程中进一步明确约束多级块匹配体,我们使用softmax和soft argmin函数进行回归以获得预测的视差,并使用真实值来监督视差,表示为GwcNet-atthg-s,如图6 (c)所示。与GwcNet-att-hg相比,GwcNet -att-hg-s在推理阶段没有增加计算代价的情况下,D1和EPE分别提高了17.1%和11.5%。总体而言,通过用我们的ACV替换GwcNet中的结合体,与GwcNet相比,我们的GwcNet-att-hg-s模型的D1和EPE分别提高了42.8%和39.5%,证明了ACV的有效性。
图6:构建注意力连接体(ACV)的不同方法示意图。
表1:在Scene Flow上ACV的消融实验。
4.3.2 快速注意连接体
我们评估了VAP,并探索了Scene Flow数据集上的Top-K采样策略。在消融实验中,我们使用没有使用VAP而是只使用双线性上采样来增加相关体分辨率的Fast-ACVNet作为我们的基线。在基线模型中,我们将相关体Vp中每个像素(即Top-K)采样的值的数量设置为48。表2的结果显示,我们的VAP可以将EPE从0.66提高到0.62。我们进一步探讨了Top-K中K的个数对最终精度和运行时间的影响。由表2可知,K=24在准确率和运行时间方面都能达到最好的结果。当K从24增加到32或48时,精度增加不大,但运行时间增加很大。最后,我们设置Fast-ACVNet最终模型的Top-K为24。
表2:在Scene Flow上VAP和Fast-ACV的Top-K采样策略的消融实验。
4.4 ACV和Fast-ACV的性能
ACV。一个理想的代价体应该需要很少的参数用于后续的聚合网络,同时能够实现令人满意的视差预测精度。我们根据聚合网络和相应的精度所需要的参数来分析ACV的复杂性。我们使用GwcNet[5]作为基线。我们使用GwcNet作为基准。在最初的GwcNet中,它使用三个堆叠的沙漏网络进行代价聚合。我们首先用我们的ACV替换原始 GwcNet中的组合体,其他部分保持不变。对应的模型在表3中表示为Gwc-acv-3。结果表明,与GwcNet相比,Gwc-acv-3将D1和EPE分别提高42.8%和39.5%。我们进一步将沙漏网络的数量从3个减少到2个、1个和0个,相应的衍生模型表示为Gwc-acv-2、Gwc-acv-1和Gwc-acv-0。表3中的结果表明,随着聚合网络中参数数量的减少,预测误差略有增加。为了实现高精度和高效率,我们选择Gwc-acv-2作为我们的最终模型,我们将其表示为ACVNet。
表3:在Scene Flow上不同的聚合参数时ACVNet的性能。
Fast-ACV。我们证明了我们的Fast-ACV的注意力过滤的有效性和强大的表达能力。如表4所示,当只有一个沙漏网络进行聚合时,我们的注意力过滤可以提高EPE0.83 ~ 0.64。没有注意力滤波的Fast-ACV类似于级联代价体,由于代价以的表示能力有限,需要更多的沙漏聚合网络来实现性能提升。而只有一个沙漏聚合网络的Fast-ACV比没有注意力滤波和有三个沙漏聚合网络的Fast-ACV的准确率更高。级联代价体方法降低了代价体的内存和计算复杂度,但每个阶段都需要通过大量的3D卷积体对代价体进行重构和重新聚合。相比之下,我们的Fast-ACV具有更强的表示能力,因此只需要较少的聚合网络。
表4: 在Scene Flow上Fast-ACV的性能。
4.5 方法的通用性和优越性
为了证明我们的方法的通用性和优越性,我们将ACV加入到两个最先进的模型中,即GwcNet、PSMNet,并比较了使用我们的ACV后的模型和原始模型的性能。应用我们的方法后,我们将模型表示为PSM+ACV、PSM+Fast-ACV、Gwc+ACV和Gwc+Fast-ACV,如表5所示。我们还实验比较了我们的ACV和Fast-ACV与级联方法。我们将两阶段级联方法应用于PSMNet和GwcNet,对应的模型分别记为PSM+CAS和Gwc+CAS。从表5的结果可以看出,我们的ACV和Fast-ACV与原模型相比,精度都有明显的提高,同时优于级联代价体。此外,我们的Fast-ACV可以显著与原始模型和[7]相比,减少了FLOPs、参数量和运行时间。我们认为Fast-ACV在精度和运行时间方面优于级联代价体,因为后者需要为每个阶段重新聚合代价体,而不能重用来自前一阶段概率体的先验信息。因此,它需要三个沙漏网络进行聚合。相比之下,我们的Fast-ACV更有更多信息和表示能力,只需要一个沙漏网络进行聚合。
值得注意的是,我们的VAP模块在视差预测阶段也可以很容易地加入到基于线性上采样代价体的立体网络中,如PSMNet和GwcNet。如表6所示,我们将我们的VAP集成到PSMNet 和GwcNet分别表示为PSMNet-VAP和GwcNet-VAP。我们观察到,我们的VAP可以通过额外很少的计算实现显著的性能改进。
表5:与原始代价体和级联代价体的比较。
表6:在Scene Flow中VAP模块加入其他网络的评估。图像大小为960×512。
4.6 与先进水平的比较
Scene Flow and ETH3D。如表7所示,ACVNet实现了最好的性能。我们可以观察到,与先进方法LEAStereo相比,ACVNet将EPE准确率提高了38.4%。在ETH3D上,我们的ACVNet也取得了最先进的结果。在Scene Flow上,我们在撰写时,与所有其他实时方法相比,我们的Fast-ACVNet+实现了显著0.59的EPE。表8中为代表性的竞争方法。定性结果如图7所示。与FastACVNet相比,Fast-ACVNet+构建分辨率为1/4的相关体。
表7:在Scene Flow和ETH3D上,ACVNet与最先进的针对精度的方法比较。加粗:最佳,下划线:次佳。
表8:在Scene Flow上Fast-ACVNet与最先进的效率为导向的方法的比较。
图7:在Scene Flow上的定性结果。
KITTI。如表9所示,我们的ACVNet优于大多数现有已发布的方法,并达到了与LEAStereo相当的精度,但比它更快,即200ms vs 300ms。同时,我们的Fast-ACVNet+在KITTI 2012和2015基准测试中优于所有已发布的实时方法(即推断时间小于50ms)。定性结果如图8所示。Fast-ACVNet+也达到了与HITNet相当的精度,但具有更快的推断速度,即45ms vs 54ms。为了保证比较的公平性,使用PyTorch中的开源模型在我们的硬件(RTX 3090)上测试HITNet的运行时长。
表9:在KITTI 2012和KITTI 2015测试集上的定量评估。根据运行时间是否超过100ms,我们将最先进的方法分为两部分。参考方法的结果来源于官方声明。*表示运行时间在我们的硬件上测试(RTX 3090)。
图8:在KITTI 2012和KITTI 2015上的定性结果。第二、三、四行分别是BGNet、DeepPrunerFast和Fast-ACVNet+的结果。
运行时长分析。对于KITTI 2015的尺寸为1242 ×375的图像,我们还报告了我们的ACVNet、Fast-ACVNet和Fast-ACVNet+的运行时间的分解。与Fast-ACVNet相比,Fast-ACVNet+由于为Fast-ACV构建1/4分辨率的相关体,需要额外加6ms。
表10:KITTI 2015上ACVNet、Fast-ACVNet和Fast-ACVNet+的运行时(ms)分析。输入立体图像的大小为1242×375。
4.7 泛化性能
除了在Scene Flow上表现出色,我们还在Middlebury 2014数据集的半分辨率训练集和KITTI 2012和2015的全分辨率训练集上评估了我们方法的泛化能力。在这个评估中,所有的比较方法都只在Scene Flow上训练。定性结果如图9所示。如表11所示,我们的Fast-ACVNet达到了最先进的性能,并且优于其他实时方法。
图9:在Middlebury 2014数据集上泛化性能评估的定性结果。
表11:在KITTI和Middlebury训练集的泛化评估。所有模型只在Scene Flow上训练,在两个真实数据集的训练图像上测试。
5 结论
在本文中,我们提出了一种新的代价体构建方法,称为注意力连接体(ACV),以及它的实时版本Fast-ACV,该方法基于相似性度量生成注意力权重来过滤连接体。基于ACV和Fast-ACV,我们设计了高精度网络ACVNet和实时网络Fast-ACVNet,在多项基准测试中都达到了最先进的性能(即我们的ACVNet在KITTI 2015和Scene Flow中排名第2,KITTI 2012和ETH3D排名第3;我们的Fast-ACVNet在Scene Flow、KITTI 2012和2015几乎优于所有最先进的实时方法,同时在所有实时方法中泛化能力最好)。我们的ACV和ACV-Fast是一种通用的代价体表示,可以加入到现有的许多基于4D代价体的立体匹配模型中,以提高性能。此外,利用前一阶段概率体中的先验信息作为注意力权值来过滤当前阶段的代价体的Fast-ACV思想,也可以应用于级联代价体方法,获得精度提升,大大减少了计算量和参数量。