当前位置: 首页 > news >正文

论文阅读-IGEV

文章目录

  • 1 概述
  • 2 模块
    • 2.1 总体说明
    • 2.2 特征抽取器
    • 2.3 CGEV
    • 2.4 基于Conv-GRU的更新算子
    • 2.5 空间上采样
    • 2.6 损失函数
  • 3 效果
  • 参考文献

1 概述

在双目深度估计中,有一类是基于3D卷积的方法,代表就是PSMNet,它应用 3D 卷积编码器-解码器来聚合和正则化 4D 代价体,然后使用 soft argmin 从正则化代价体中回归视差图。这种基于 4D 成本体积滤波的方法可以有效地探索立体几何信息,并在多个基准测试中实现令人印象深刻的性能。但是,它通常需要大量的 3D 卷积来进行成本聚合和正则化,进而产生高昂的计算和内存成本。因此,它几乎不能应用于高分辨率图像和/或大尺度场景。
另一类是基于迭代的方法,代表就是RAFT-Stereo ,它利用多级卷积门控循环单元 (ConvGRU) 使用从全对相关性 (all-pairs correlations) 中检索到的局部成本值来循环更新视差。
然而,如果没有成本聚合,原始成本量缺乏非局部几何和上下文信息,见图1-1(b)。因此,现有的迭代方法难以解决不适定区域中的局部歧义,例如遮挡、无纹理区域和重复结构。尽管基于 ConvGRU 的更新器可以通过整合来自上下文特征和隐藏铺层的上下文和几何信息来改善预测的视差,但原始相关体的这种限制极大地限制了每次迭代的有效性,进而需要大量的 ConvGRU 迭代以获得令人满意的性能。
APC和GEV效果对比

图1-1 APC和GEV效果对比

本文提出的 IGEV-Stereo 在准确性和效率方面都优于 RAFT-Stereo。性能提升来自两个方面:
(1)提出了CGEV模块。本文的 CGEV 为 ConvGRU 提供了更全面而简洁的信息进行更新,从而在每次迭代中产生更有效的优化,从而可以显著减少 ConvGRU 迭代的数量。如图1-2所示,本文的方法仅使用 3 次 ConvGRU 迭代(即EPE=0.58,100 毫秒用于推理)就实现了比使用 32 次 ConvGRUs 迭代的 RAFT-Stereo 更小的 EPE(即 EPE=0.61,440 毫秒用于推理)。
(2)本文的方法通过 soft argmin 从 GEV 回归初始视差图,这可以为基于 ConvGRU 的更新算子提供准确的起点,进而产生快速收敛。相比之下,RAFT-Stereo 从初始起点 d0=0d_0=0d0=0 开始视差预测,这需要大量的 ConvGRUs 迭代才能获得优化的结果。
不同模型效果对比

图1-2 不同模型效果对比

2 模块

2.1 总体说明

作者声称基于代价过滤的方法和基于迭代优化的方法具有互补的优点和局限性。前者可以在代价体中编码足够的非局部几何和上下文信息,这对于视差预测至关重要,尤其是在具有挑战性的区域。后者可以避免 3D 成本聚合的高计算和内存成本,但在仅基于全对相关性的不适定区域中功能较差。
为了结合两种方法的互补优势,作者提出了迭代几何编码体 (IGEV-Stereo),这是一种立体匹配的新范式,如图2-1所示。整个IGEV由一个多尺度特征提取器、一个组合几何编码体、一个基于 ConvGRU 的更新算子和一个空间上采样模块组成。
为了解决不适定区域引起的歧义,作者通过使用极轻量级的 3D 正则化网络聚合和正则化代价体来计算几何编码体积 (GEV)。与 RAFT-Stereo 的全对相关性相比,本文的 GEV 在聚合后编码了更多的几何图形和场景上下文,如图1-1©所示。GEV 的一个潜在问题是,由于 3D 正则化网络,它可能会在边界和微小细节处出现过度平滑。为了补充局部相关性,作者将 GEV 和 全对相关性(all-pairs correlations)组合在一起,形成一个组合几何编码体 (CGEV),并将 CGEV 输入到基于 ConvGRU 的更新运算符中,以进行迭代视差优化。

IGEV整体架构

图2-1 IGEV整体架构

2.2 特征抽取器

特征提取器包含两部分:
1) 特征网络
提取多尺度特征用于代价体构建和代价聚合指导。
给定左和右图 Il(r)∈R3×H×WI_{l(r)}∈R^{3×H×W}Il(r)R3×H×W ,首先应用在 ImageNet 上预训练的 MobileNetV2 将 Il(r)I_{l(r)}Il(r) 缩小到原始大小的 1/321/321/32 ,然后使用带有跳跃连接的上采样块将它们恢复到 1/4 的比例,从而产生多尺度特征 {fl,i(fr,i)∈RCi×H/i×W/i}\{f_{l,i}(f_{r,i})∈R^{C_i×H/i×W/i}\}{fl,i(fr,i)RCi×H/i×W/i} ,其中i=4,8,16,32i=4, 8, 16, 32i=4,8,16,32CiC_iCi 为特征通道。
fl,4f_{l,4}fl,4fr,4f_{r,4}fr,4 用于构造代价体。fl,i(i=4,8,16,32)f_{l, i}(i=4, 8, 16, 32)fl,i(i=4,8,16,32) 用作 3D 正则化网络的指导。
2) 上下文网络
提取多尺度上下文特征,用于 ConvGRU 的隐藏状态初始化和更新。
遵循RAFT-Stereo ,上下文网络由一系列残差块和下采样层组成,以 128 个通道在输入图像分辨率的 1/4、1/8 和 1/16 下产生多尺度上下文特征。多尺度上下文功能用于初始化 ConvGRU 的隐藏状态,并在每次迭代时插入到 ConvGRU 中。

2.3 CGEV

给定从 IlI_lIlIrI_rIr 中提取的左侧特征 fl,4f_{l,4}fl,4 和右侧特征 fr,4f_{r,4}fr,4 ,作者构建了一个分组相关体,该体沿通道维度将特征fl,4f_{l,4}fl,4( fr,4f_{r,4}fr,4)拆分为 NgN_gNg (Ng=8N_g=8Ng=8) 组,并逐组计算相关图
Ccorr(g,d,x,y)=1Nc/Ng<fl,4g(x,y),fr,4g(x−d,y)>(2-1)C_{corr}(g,d,x,y) = \frac{1}{N_c/N_g} <f^g_{l, 4}(x, y), f^g_{r,4}(x-d, y)> \tag{2-1} Ccorr(g,d,x,y)=Nc/Ng1<fl,4g(x,y),fr,4g(xd,y)>(2-1)
其中 ⟨⋅,⋅⟩⟨·, ·⟩⋅,⋅ 是内积,d 是视差序号, NcN_cNc 表示特征通道数。仅基于特征相关性的代价体 CcorrC_{corr}Ccorr 无法捕获全局几何结构。为了解决这个问题,使用轻量级 3D 正则化网络 R 进一步处理CcorrC_{corr}Ccorr ,以获得几何编码体积 CGC_GCG
CG=R(Ccorr)(2-2)C_G = R(C_{corr}) \tag{2-2} CG=R(Ccorr)(2-2)
3D 正则化网络 R 基于轻量级 3D UNet,该 UNet 由三个下采样块和三个上采样块组成。每个下采样块由两个 3 × 3 ×3 的 3D 卷积组成。三个下采样模块的通道数分别为 16、32、48。每个上采样块由一个 4 × 4 × 4 的 3D 转置卷积和两个 3 × 3 × 3的 3D 卷积组成。作者遵循 CoEx,它使用从左图特征计算的权重来激发代价体通道以进行代价聚合。对于代价聚合中的 D/i×H/i×W/iD/i × H/i × W/iD/i×H/i×W/i 代价体 Ci(i=4、8、16、32)C_i(i=4、8、16、32)Cii=481632 ,指导成本量激励表示为:
Ci′=σ(fl,i)⊙Ci(2-3)C'_i = \sigma(f_{l, i}) ⊙ C_i \tag{2-3} Ci=σ(fl,i)Ci(2-3)
其中 σ 是 sigmoid 函数,⊙ 表示 Hadamard 乘积。3D 正则化网络插入引导成本体积激励操作,可以有效地推断和传播场景几何信息,从而产生几何编码体积。作者还计算了相应的左特征和右特征之间的全对相关性,以获得局部特征相关性。
通过看代码,式2-3包括在3D正则化网络内部。
https://github.com/gangweiX/IGEV/blob/main/IGEV-Stereo/core/igev_stereo.py#L171
https://github.com/gangweiX/IGEV/blob/main/IGEV-Stereo/core/igev_stereo.py#L69
https://github.com/gangweiX/IGEV/blob/main/IGEV-Stereo/core/submodule.py#L226
为了增加感受野,作者使用 1D 平均池化将视差维度汇集在一起,内核大小为 2,步幅为 2,形成两级 CGC_GCG 金字塔和全对相关体 CAC_ACA 金字塔。然后,将 CGC_GCG 金字塔和 CAC_ACA 金字塔组合起来,形成一个组合的几何编码体。

2.4 基于Conv-GRU的更新算子

作者应用 soft argmin 根据式2-4从几何编码体 CGC_GCG 回归初始起始视差d0d_0d0
d0=∑d=0D−1d×Softmax(CG(d))(2-4)d_0 = \sum_{d=0}^{D-1} d \times Softmax(C_G(d)) \tag{2-4} d0=d=0D1d×Softmax(CG(d))(2-4)
然后从 d0d_0d0 开始,使用三个级别的 ConvGRU 来迭代更新视差(如图2-1所示)。这种设置有助于迭代视差优化的快速收敛。三个级别的 ConvGRU 的隐藏状态是从多尺度上下文特征初始化的。

对于每次迭代,使用当前的视差 dkd_kdk 通过线性插值从组合的几何编码体中进行索引,从而产生一组几何特征GfG_fGfGfG_fGf的计算公式为
Gf=∑i=−rrConcat{CG(dk+i),CA(dk+i),CGp(dk/2),CAp(dk/2+i)}(2-5)G_f = \sum_{i = -r}^r Concat\{ C_G(d_k + i), C_A(d_k+i), C_G^p(d_k / 2), C_A^p(d_k/2 + i) \} \tag{2-5} Gf=i=rrConcat{CG(dk+i),CA(dk+i),CGp(dk/2),CAp(dk/2+i)}(2-5)
其中 dkd_kdk 是当前视差,rrr 是索引半径,ppp 表示池化操作。几何特征和当前视差预测 dkd_kdk 通过两个编码器层,然后与 dkd_kdk 连接形成 xkx_kxk 。然后使用 ConvGRU 将隐藏状态 hk−1h_{k−1}hk1 更新
xk=[Encoderg(Gf),Encoderd(dk),dk]zk=σ(Conv([hk−1,xk],Wz)+ck),rk=σ(Conv([hk−1,xk],Wr)+cr),h~k=tanh(Conv([rk⊙hk−1,xk],Wh)+ch),hk=(1−zk)⊙hk−1+zk⊙h~k(2-6)\begin{aligned} x_k &= [Encoder_g(G_f), Encoder_d(d_k), d_k] \\ z_k &= \sigma(Conv([h_{k-1}, x_k], W_z) + c_k), \\ r_k &= \sigma(Conv([h_{k-1}, x_k], W_r) + c_r), \\ \widetilde{h}_k &= tanh(Conv([r_k ⊙ h_{k-1}, x_k], W_h) + c_h), \\ h_k &= (1-z_k) ⊙ h_{k-1} + z_k ⊙ \widetilde{h}_k \end{aligned} \tag{2-6} xkzkrkhkhk=[Encoderg(Gf),Encoderd(dk),dk]=σ(Conv([hk1,xk],Wz)+ck),=σ(Conv([hk1,xk],Wr)+cr),=tanh(Conv([rkhk1,xk],Wh)+ch),=(1zk)hk1+zkhk(2-6)
其中 ckc_kckcrc_rcrchc_hch 是从上下文网络生成的上下文特征。ConvGRU 处于隐藏状态的 Channel 数为 128,Context 功能的 Channel 数也是 128。EncodergEncoder_gEncodergEncoderdEncoder_dEncoderd 分别由两个卷积层组成。基于隐藏状态 hkh_khk,通过两个卷积层解码一个残差 △dk△d_kdk ,然后更新当前的视差
dk+1=dk+Δdk(2-7)d_{k+1} = d_k + \Delta d_k \tag{2-7} dk+1=dk+Δdk(2-7)

2.5 空间上采样

作者通过预测的视差 dkd_kdk 的加权组合以 1/4 分辨率输出全分辨率视差图。与以 1/4 分辨率从隐藏状态 hkh_khk 预测权重的 RAFT-Stereo 不同,作者利用更高分辨率的上下文特征来获得权重。本文卷积隐藏状态以生成特征,然后将它们上采样到 1/2 分辨率。上采样的特征与左图中的 fl,2f_{l,2}fl,2 连接,以产生权重 W∈RH×W×9W∈R^{H×W×9}WRH×W×9。作者通过它们的粗分辨率邻居的加权组合来输出全分辨率视差图。

2.6 损失函数

本文计算从 GEV 回归的初始视差 d0d_0d0 的平滑 L1 损失
Linit=SmoothL1(d0−dgt)(2-8)L_{init} = Smooth_{L_1}(d_0 - d_{gt}) \tag{2-8} Linit=SmoothL1(d0dgt)(2-8)
作者计算所有更新的差异 {di}i=1N\{d_i\}^N_{i=1}{di}i=1N 的 L1 损失。并以指数方式增加权重,总损失定义为
Lstereo=Linit+∑i=1NγN−i∣∣di−dgt∣∣1(2-9)L_{stereo} = L_{init} + \sum_{i=1}^N \gamma^{N - i} || d_i - d_{gt} ||_1 \tag{2-9} Lstereo=Linit+i=1NγNi∣∣didgt1(2-9)
其中,γ=0.9\gamma = 0.9γ=0.9

3 效果

IGEV在Sceneflow数据集上与不同模型的效果对比如下表3-1所示。
Scenflow数据集效果对比

表3-1 Scenflow数据集效果对比

IGEV在KITTI数据集上与不同模型的效果对比如下表3-2所示。
KITTI数据集效果对比

表3-2 KITTI数据集效果对比

参考文献

[1] Iterative Geometry Encoding Volume for Stereo Matching

http://www.dtcms.com/a/300504.html

相关文章:

  • SecureCRT连接密钥交换失败
  • 基于LNMP架构的分布式个人博客搭建
  • 总结和对比Unity中的三种主要抗锯齿技术:FXAA、SMAA和TAA
  • 搭建DM数据守护集群
  • Java 代理机制详解:从静态代理到动态代理,彻底掌握代理模式的原理与实战
  • 【服务器与部署 30】Python内存优化实战:从内存泄漏到性能提升的完整解决方案
  • VLA-视觉语言动作模型
  • mac配置多版本jdk
  • 四、搭建springCloudAlibaba2021.1版本分布式微服务-加入openFeign远程调用和sentinel流量控制
  • git stash 命令详解
  • Python 程序设计讲义(24):循环结构——循环后处理 while ... as 与 for...as
  • 大模型算法面试笔记——常用优化器SGD,Momentum,Adagrad,RMSProp,Adam
  • 算法思维进阶 力扣 300.最长递增子序列 暴力搜索 记忆化搜索 DFS 动态规划 C++详细算法解析 每日一题
  • 用KNN实现手写数字识别:基于 OpenCV 和 scikit-learn 的实战教学 (超级超级超级简单)
  • Torchv Unstrustured 文档解析库
  • Mac配置本地邮件
  • 【Qt开发】信号与槽(二)-> 信号和槽的使用
  • Web Worker:解锁浏览器多线程,提升前端性能与体验
  • 29.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--用户配置服务
  • 七、搭建springCloudAlibaba2021.1版本分布式微服务-skywalking9.0链路追踪
  • 重生之我在暑假学习微服务第二天《MybatisPlus-下篇》
  • MCP + LLM + Agent 8大架构:Agent能力、系统架构及技术实践
  • 2.苹果ios逆向-Windows电脑端环境搭建-Conda安装和使用(使用Conda来管理多个Python环境)
  • Canvas实现微信小程序图片裁剪组件全攻略
  • 设计模式(七)结构型:适配器模式详解
  • 可控、安全、可集成:安防RTSP|RTMP视频播放模块工程实践参考
  • 医疗AI语义潜空间分析研究:进展与应用
  • 【机器学习深度学习】LLaMAFactory评估数据与评估参数解析
  • J3160迷你小主机 性能测试 对比i3-4170 以及服务器
  • C++ 多线程 std::thread::join