论文阅读《Domain Generalized Stereo Matching via Hierarchical Visual Transformation》

论文地址:https://openaccess.thecvf.com/content/CVPR2023/html/Chang_Domain_Generalized_Stereo_Matching_via_Hierarchical_Visual_Transformation_CVPR_2023_paper.html


概述

   立体匹配模型是近年来的研究热点。但是,现有的方法过分依赖特定数据集上的简单特征,导致在新的数据集上泛化能力不强。现有的立体匹配方法在训练过程中容易学习合成数据集中的表面特征(捷径特征 shortcut features)。这些特征主要有两种伪影(artifacts):一是局部颜色统计特征的一致性,二是对局部色度特征的过度依赖。这些特征不能有效地适应不同域之间的迁移。之前的研究主要关注于(1)利用目标域的有标签数据对模型进行微调。(2)同时使用有标签的合成数据集和无标签的真实数据集来训练域自适应立体匹配模型。这些方法在目标数据集的样本可获得时可以取得较好的效果,但在分布外泛化时性能不佳。为了解决这些问题,文中提出了分层视觉变换(Hierarchical Visual Transformation, HVT)网络,其核心思想是通过改变合成数据集训练数据的分布,使得模型不依赖于源域样本的伪影特征(颜色统计、色度特征)来建立匹配关系,而是引导模型学习域不变的特征(语义特征、结构特征)来估计视差图。
  为了解决立体匹配的域泛化问题,本文提出了一种分层的视觉变换网络(Hierarchical Visual Transformation,HVT),它能从合成数据集中学习一种不受捷径特征干扰的特征表示,从而减少域偏移对模型性能的影响。该网络主要包括两个部分:(1)在全局、局部和像素三个层次上,对训练样本进行视觉变换,使其适应新的数据域。(2)通过最大化源域和目标域之间的视觉特征差异,以及最小化跨域特征之间的一致性,来得到域不变的特征。这样可以防止模型利用合成数据集中的伪影信息作为捷径特征,从而有效地学习到鲁棒的特征表示。我们将HVT模块嵌入到主流的立体匹配模型中,在多个数据集上的实验结果表明,HVT可以提高模型从合成数据集到真实数据集之间的域泛化能力。


模型架构

在这里插入图片描述
   给定合成训练数据集 D s \mathcal{D}_{s} Ds ,训练集中的图像对为 { X i l , X i r } i = 1 ∣ D s ∣ \{\mathbf{X}_i^l,\mathbf{X}_i^r\}_{i=1}^{|\mathcal{D}_s|} {Xil,Xir}i=1Ds, 且其对应的视差图为 { Y i g t } i = 1 ∣ D s ∣ \{\mathbf{Y}_i^{gt}\}_{i=1}^{|\mathcal{D}_s|} {Yigt}i=1Ds。模型的目标为训练一个跨域立体匹配模型来预测未知域 D r \mathcal{D}_{r} Dr 的图像对:
Y ^ = F Θ ( X l , X r ) = s ( g ( f ( X l ) , f ( X r ) ) ) , (1) \hat{\mathbf{Y}}=F_\Theta(\mathbf{X}^l,\mathbf{X}^r)=s\big(g\big(f(\mathbf{X}^l),f(\mathbf{X}^r)\big)\big),\tag{1} Y^=FΘ(Xl,Xr)=s(g(f(Xl),f(Xr))),(1)
其中 Θ \Theta Θ 为模型的人全部参数, f ( ⋅ ) f(\cdot) f() 表示特征提取模块, g ( ⋅ ) g(\cdot) g() 表示代价体构建、聚合, s ( ⋅ ) s(\cdot) s() 表示soft-argmin操作,经典的立体匹配模型通过平滑 L 1 L1 L1 损失 L sm- ℓ 1 ( F Θ ( X l , X r ) , Y g t ) L_{\text{sm-}\ell_1}\left(F_\Theta(\mathbf{X}^l,\mathbf{X}^r),\mathbf{Y}^{gt}\right) Lsm-1(FΘ(Xl,Xr),Ygt) 来优化模型。

Hierarchical Visual Transformation 分层视觉转换(核心为图像增强)

  分层视觉转换模块旨在学习到域不变的匹配特征,如语义特征与结构特征,为此,在不同层次学习一系列视觉转换 T = { T 1 , ⋯ , T M } \mathcal{T}=\{T_1,\cdots,T_M\} T={T1,,TM} 来将输入图像映射到域不变的特征空间 ( T ( X l ) , T ( X r ) ) \left(T(\mathbf{X}^l),T(\mathbf{X}^r)\right) (T(Xl),T(Xr)),视觉转换应该具有以下的要求:

  • T ( ⋅ ) T(\cdot) T() 应使得转换前后的图像具有较大的视觉差异,以扩充训练域的多样性。
  • T ( ⋅ ) T(\cdot) T() 不应改变原始图像对应的视差图。当输入左右图像时候,仍然应优化 L sm- ℓ 1 ( F Θ ( T ( X l ) , T ( X r ) ) , Y g t ) L_{\text{sm-}\ell_1}(F_\Theta(T(\mathbf{X}^l),T(\mathbf{X}^r)),\mathbf{Y}^{gt}) Lsm-1(FΘ(T(Xl),T(Xr)),Ygt) 目标。
  • f ( T ( X ) ) f(T(\mathbf{X})) f(T(X)) f ( X ) f(\mathbf{X}) f(X) 应该具有一致性,以获得域不变的特征。

为此,作者在全局、局部、像素三个层级设计了视觉不变转换。

全局转换

  全局视觉转换 T G ( ⋅ ) T_{G}(\cdot) TG() 旨在以一个全局的视角改变立体图像的视觉特征分布,包括亮度、对比度、饱和度和色调 { T G B , T G C , T G S , T G H } \{T_G^B,T_G^C,T_G^S,T_G^H\} {TGB,TGC,TGS,TGH}. 其中, { T G B , T G C , T G S ˉ } \{T_{G}^{B},T_{G}^{C},T_{G}^{\bar{S}}\} {TGB,TGC,TGSˉ} 可以表示为:
T G I ( X ) = α G I X + ( 1 − α G I ) o I ( X ) , (2) T_G^I(\mathbf{X})=\alpha_G^I\mathbf{X}+(1-\alpha_G^I)o^I(\mathbf{X}),\tag{2} TGI(X)=αGIX+(1αGI)oI(X),(2)
其中 I ∈ { B , G , S } I\in\{B,G,S\} I{B,G,S} α G I \alpha_{G}^I αGI 为随机在 [ τ min ⁡ I , τ max ⁡ I ] [\tau_{\min}^I,\tau_{\max}^I] [τminI,τmaxI] 选择的对比度参数:
{ τ m i n I = 1 − ( μ σ ( ϱ l I ) + β ) τ m a x I = 1 + ( μ σ ( ϱ h I ) + β ) , (3) \left.\left\{\begin{array}{c}\tau_\mathrm{min}^I=1-\left(\mu\sigma(\varrho_l^I)+\beta\right)\\\tau_\mathrm{max}^I=1+\left(\mu\sigma(\varrho_h^I)+\beta\right)\end{array}\right.\right.,\tag{3} {τminI=1(μσ(ϱlI)+β)τmaxI=1+(μσ(ϱhI)+β),(3)
其中 σ ( ⋅ ) \sigma(\cdot) σ() 代表 Sigmoid函数。 ϱ l I ∈ R 1 , ϱ h I ∈ R 1 \varrho_l^I\in\mathbb{R}^1, \varrho_h^I\in\mathbb{R}^1 ϱlIR1ϱhIR1 为两个可学习的参数。 μ , β \mu,\beta μ,β 为两个正的超参数。公式2中的 o I ( ⋅ ) o^{I}(\cdot) oI() 的定义为 (1)对于亮度转换: o B ( X ) = X ⋅ O o^B(\mathbf{X})=\mathbf{X}\cdot\mathbf{O} oB(X)=XO ,其中 O \mathbf{O} O 为全0的矩阵。(2)对于对比度变换: o C ( X ) = Avg ⁡ ( Gray ⁡ ( X ) ) o^C(\mathbf{X})=\operatorname{Avg}(\operatorname{Gray}(\mathbf{X})) oC(X)=Avg(Gray(X)) ,其中 Gray ( ⋅ ) \text{ Gray}(\cdot)  Gray() 表示将图像转换为灰度图像, Avg ⁡ ( ⋅ ) \operatorname{Avg}(\cdot) Avg() 表示整张图像的灰度平均值。(3)对于饱和度转换, o S ( X ) = G r a y ( X ) o^S(\mathbf{X})=\mathrm{Gray}(\mathbf{X}) oS(X)=Gray(X)

  对于色调转换,有:
T G H ( X ) = R g b ( [ h + α G H , s , v ] ) , (4) T_G^H(\mathbf{X})=\mathrm{Rgb}([\mathbf{h}+\alpha_G^H,\mathbf{s},\mathbf{v}]),\tag{4} TGH(X)=Rgb([h+αGH,s,v]),(4)
其中 [ h , s , v ] = H s v ( X ) \left[\mathbf{h},\mathbf{s},\mathbf{v}\right]=\mathrm{Hsv}(\mathbf{X}) [h,s,v]=Hsv(X) 表示将图像转换到HSV空间的表示。 Rgb ⁡ ( ⋅ ) \operatorname{Rgb}(\cdot) Rgb()表示从HSV空间转换到RGB空间。 α G H ∈ R 1 \alpha_{G}^{H}\in\mathbb{R}^{1} αGHR1 表示从 [ τ m i n H ˉ , τ m a x H ] [\tau_{\mathrm{min}}^{\bar{H}},\tau_{\mathrm{max}}^{H}] [τminHˉ,τmaxH] 随机采样的参数,且 τ m i n H = − μ σ ( ϱ l H ) − β , τ m a x H = μ σ ( ϱ h H ) + β \tau_{\mathrm{min}}^{H}=-\mu\sigma(\varrho_{l}^{H})-\beta , \tau_{\mathrm{max}}^{H}=\mu\sigma(\varrho_{h}^{H})+\beta τminH=μσ(ϱlH)β,τmaxH=μσ(ϱhH)+β。此外, { T G B , T G C , T G S , T G H } \{T_G^B,T_G^C,T_G^S,T_G^H\} {TGB,TGC,TGS,TGH} 的顺序是随机的。

局部级变换

  局部视觉转换 T L ( ⋅ ) T_{L}(\cdot) TL()旨在在局部范围改变训练图像的分布。将图像分为 N ′ × N ′ N^{\prime}\times N^{\prime} N×N 个不重叠的块 { x 1 p , ⋯ , x N ′ × N ′ p } \{\mathbf{x}_1^p,\cdots,\mathbf{x}_{N^{\prime}\times N^{\prime}}^p\} {x1p,,xN×Np},将每个块视为独立的图像,使用随机参数的局部转换 T L p ( ⋅ ) T_{L}^{p}(\cdot) TLp() 分别进行转换后拼接回原图大小:
T L ( X ) = M e r g e ( [ T L p ( x 1 p ) , ⋯ , T L p ( x N ′ × N ′ p ) ] ) , (5) T_L(\mathbf{X})=\mathsf{Merge}\left([T_L^p(\mathbf{x}_1^p),\cdots,T_L^p(\mathbf{x}_{N^{\prime}\times N^{\prime}}^p)]\right),\tag{5} TL(X)=Merge([TLp(x1p),,TLp(xN×Np)]),(5)
其中局部变换模块可以利用现有的风格迁移网络来实现,或者基于傅里叶的方法,为了与全局变换模块相配合,局部变换模块采用了与全局模块一样的变换函数。

像素级变换

  像素级的视觉变换旨在像素层级进行随机变换:
T P ( X ) = X + ( μ σ ( W ) + β ) P (6) T_P(\mathbf{X})=\mathbf{X}+\begin{pmatrix}\mu\sigma(\mathbf{W})+\beta\end{pmatrix}\mathbf{P}\tag{6} TP(X)=X+(μσ(W)+β)P(6)
其中 P ∈ R H × W × 3 \mathbf{P}\in\mathbb{R}^{H\times W\times3} PRH×W×3 为随机生成均值为0,方差为1的的高斯矩阵。 W ∈ R H × W × 3 \mathbf{W}\in\mathbb{R}^{H\times W\times3} WRH×W×3 为可学习的矩阵。


损失函数

跨域视觉差异最大化:该方法的目的是使数据在变换后的视觉特征分布与变换前的分布有明显的差异,同时保持变换前后的匹配特征表示的一致性,从而学习到不受域影响的特征。这样,立体匹配网络就可以忽略数据中的伪影,更有效地利用学习到的鲁棒特征表示来估计视差:
max ⁡ L d i s c ( X ) = 1 3 ∑ J d ( T J ( X ) , X ) (7) \max L_{\mathrm{disc}}(\mathbf{X})=\frac13\sum_{J}d(T_J(\mathbf{X}),\mathbf{X})\tag{7} maxLdisc(X)=31Jd(TJ(X),X)(7)
其中 J ∈ { G , L , P } J\in\{G,L,P\} J{G,L,P} , d ( ⋅ ) d(\cdot) d() 是域差异度量,作者引入一个神经网络模块 ϕ ( ⋅ ) \phi(\cdot) ϕ() 来提取域差异特征,则式7可以表示为:
min ⁡ L sin ⁡ ( X ) = 1 3 ∑ J C o s ( ϕ ( T J ( X ) ) , ϕ ( X ) ) , (8) \min L_{\sin}(\mathbf{X})=\frac13\sum_J\mathrm{Cos}\left(\phi(T_J(\mathbf{X})),\phi(\mathbf{X})\right),\tag{8} minLsin(X)=31JCos(ϕ(TJ(X)),ϕ(X)),(8)
为了进一步提升域差异,使用交叉熵损失来优化模型:
min ⁡ L c e ( X ) = C E ( { ϕ ( T J ( X ) ) , ϕ ( X ) } , Y d ) , (9) \min L_{\mathfrak{ce}}(\mathbf{X})=\mathrm{CE}\left(\left\{\phi(T_J(\mathbf{X})),\phi(\mathbf{X})\right\},\mathcal{Y}_d\right),\tag{9} minLce(X)=CE({ϕ(TJ(X)),ϕ(X)},Yd),(9)
其中 Y d \mathcal{Y}_d Yd 表示四个变换域的域标签。

跨域特征一致性最大化:为了增强模型的泛化能力,模型需要获取域不变的匹配特征,这要求变换 T ( ⋅ ) T(\cdot) T() 不改变原图的语义与结构特征。因此,最小化以下的损失:

min ⁡ L d i s t ( X ) = 1 3 ∑ J ∥ f ( T J ( X ) ) − f ( X ) ∥ 2 , (10) \min L_{\mathrm{dist}}(\mathbf{X})=\frac13\sum_J\left\|f\left(T_J(\mathbf{X})\right)-f\left(\mathbf{X}\right)\right\|_2,\tag{10} minLdist(X)=31Jf(TJ(X))f(X)2,(10)

总的损失函数:
min ⁡ L = L s m − ℓ 1 ( Y ^ , Y g t ) + 1 2 ( λ 1 L d i s t ( X ) + λ 2 L s i m ( X ) + λ 3 L c e ( X ) ) , (11) \begin{aligned}\min\mathcal{L}=&L_{\mathrm{sm-}\ell_1}(\hat{\mathbf{Y}},\mathbf{Y}^{gt})+\frac12\left(\lambda_1L_{\mathrm{dist}}(\mathbf{X})+\lambda_2L_{\mathrm{sim}}(\mathbf{X})+\lambda_3L_{\mathrm{ce}}(\mathbf{X})\right),\end{aligned}\tag{11} minL=Lsm1(Y^,Ygt)+21(λ1Ldist(X)+λ2Lsim(X)+λ3Lce(X)),(11)

其中 L sm- ℓ 1 L_{\text{sm-}\ell_1} Lsm-1 同时在 { X l , X r } \{\mathbf{X}^l,\mathbf{X}^r\} {Xl,Xr} { T J ( X l ) , T J ( X r ) } \{T_J(\mathbf{X}^l),T_J(\mathbf{X}^r)\} {TJ(Xl),TJ(Xr)} 作为模型输入时计算。


实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/213750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五年制专转本备考冲刺阶段,老师给你六点建议助你上岸

1、热衷的不是学习,而是思考 人与人之间最大的差别在于思维的差别,也可以说是思考的差别。专转本也是如此,有人思考得简单,有人思考得复杂;有人想得全面,有人想得肤浅。 只有善于思考,才会对问…

100:ReconFusion: 3D Reconstruction with Diffusion Priors

简介 官网 少样本重建必然导致nerf失败,论文提出使用diffusion模型来解决这一问题。从上图不难看出,论文一步步提升视角数量,逐步与Zip-NeRF对比。 实现流程 Diffusion Model for Novel View Synthesis 给定一组输入图像 x o b s { x i…

Jmeter beanshell编程实例

1、引言 BeanShell是一种小型的,免费的,可嵌入的符合Java语法规范的源代码解释器,具有对象脚本语言特性。 在Jmeter实践中,由于BeanShell组件较高的自由度,通常被用来处理较为复杂,其它组件难以处理的问题…

c语言:文件操作(1)

前言:为什么要使用文件 使用文件可以让程序在不同运行之间保存和读取数据。这样可以实现持久化存储,即使程序关闭后数据也不会丢失。文件也可以用于数据交换,允许不同程序之间共享信息。在 C 语言中,文件还可以用于读取配置信息&…

系统架构设计师教程(三)信息系统基础知识

信息系统基础知识 3.1 信息系统概述3.1.1 信息系统的定义3.1.2 信息系统的发展3.1.3 信息系统的分类3.1.4 信息系统的生命周期3.1.5 信息系统建设原则3.1.6 信息系统开发方法 3.2 业务处理系统 (TPS)3.2.1 业务处理系统的概念3.2.2 业务处理系统的功能3.2.3 业务处理系统的特点…

Python:核心知识点整理大全13-笔记

目录 6.4.3 在字典中存储字典 6.5 小结 第7章 用户输入和while循环 7.1 函数 input()的工作原理 7.1.1 编写清晰的程序 7.1.2 使用 int()来获取数值输入 7.1.3 求模运算符 7.1.4 在 Python 2.7 中获取输入 7.2 while 循环简介 7.2.1 使用 while 循环 往期快速传送门…

SPI 通信-stm32入门

本节我们将继续学习下一个通信协议 SPI,SPI 通信和我们刚学完的 I2C 通信差不多。两个协议的设计目的都一样,都是实现主控芯片和各种外挂芯片之间的数据交流,有了数据交流的能力,我们主控芯片就可以挂载并操纵各式各样的外部芯片&…

gpu版本的GNN的demo

1、当涉及到在GPU上运行图神经网络(GNN)时,通常使用深度学习框架,如PyTorch或TensorFlow。在这里,我将为您提供一个使用PyTorch Geometric库实现GNN的简单示例。 首先,确保您已经安装了PyTorch和PyTorch G…

第 375 场 LeetCode 周赛题解

A 统计已测试设备 模拟&#xff1a;记录当前已测试设备数量 class Solution { public:int countTestedDevices(vector<int> &batteryPercentages) {int res 0;int s 0;for (auto x: batteryPercentages) {if (x - s > 0) {res;s;}}return res;} };B 双模幂运算 …

【无线网络技术】——无线城域网(学习笔记)

&#x1f4d6; 前言&#xff1a;无线城域网&#xff08;WMAN&#xff09;是指在地域上覆盖城市及其郊区范围的分布节点之间传输信息的本地分配无线网络。能实现语音、数据、图像、多媒体、IP等多业务的接入服务。其覆盖范围的典型值为3~5km&#xff0c;点到点链路的覆盖可以高达…

少儿编程考级:激发孩子逻辑思维能力的关键

在当今信息化时代&#xff0c;少儿编程已经成为孩子们不可或缺的一项技能。而少儿编程考级&#xff0c;则是检验孩子们在这一技能上所取得的成就的重要途径。少儿编程考级不仅能够激发孩子们的逻辑思维能力&#xff0c;还能够提高他们的动手能力和创造力。6547网将详细介绍少儿…

电源模块测试系统测试LED电源项目的优势

LED电源测试是电源在设计、生产过程中的关键环节&#xff0c;也是确保LED照明产品可靠性和稳定性的重要步骤。LED电源测试一般包括电压、电流、效率、稳定性等。电源模块测试系统测试LED电源&#xff0c;实现自动化测试&#xff0c;保证测试结果的可靠性。 LED电源测试项目及方…

实现加盐加密方法以及MappedByteBuffer,RandomAccess

目录 自己实现 Spring Security MappedByteBuffer RandomAccess 加盐加密的实现 自己实现 传统MD5可通过彩虹表暴力破解&#xff0c; 加盐加密算法是一种常用的密码保护方法&#xff0c;它将一个随机字符串&#xff08;盐&#xff09;添加到原始密码中&#xff0c;然后再进…

力扣17. 电话号码的字母组合(java 回溯法)

Problem: 17. 电话号码的字母组合 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 题目给定一串数字&#xff0c;要求我们找出所有可能的字母组合&#xff0c;即我们可以穷举出所有可能的结果&#xff0c;而涉及到穷举我们自然可以想到利用回溯来解决问题&#xff0c…

无线且列窄图片如何转excel?

写此文原因&#xff1a;图片要转excel&#xff0c;这放以前&#xff0c;是不能实现的功能&#xff0c;但随着人工智能的蓬勃发展&#xff0c;人们已克服了这一难题&#xff0c;但是&#xff0c;我们知道&#xff0c;要将图片识别成excel&#xff0c;识别程序首先要先识别图片中…

如何在小米路由器4A千兆版刷入OpenWRT并通过内网穿透工具实现公网远程访问

文章目录 前言1. 安装Python和需要的库2. 使用 OpenWRTInvasion 破解路由器3. 备份当前分区并刷入新的Breed4. 安装cpolar内网穿透4.1 注册账号4.2 下载cpolar客户端4.3 登录cpolar web ui管理界面4.4 创建公网地址 5. 固定公网地址访问 前言 OpenWRT是一个高度模块化、高度自…

交易历史记录20231206 记录

昨日回顾&#xff1a; select top 10000 * from dbo.CODEINFO A left join dbo.全部&#xff21;股20231206010101 B ON A.CODE B.代码 left join dbo.全部&#xff21;股20231206CONF D on A.CODED.代码left join dbo.全部&#xff21;股20231206 G on A.CODEG.代码 left…

Kafka-快速实战

Kafka介绍 ChatGPT对于Apache Kafka的介绍&#xff1a; Apache Kafka是一个分布式流处理平台&#xff0c;最初由LinkedIn开发并于2011年开源。它主要用于解决大规模数据的实时流式处理和数据管道问题。 Kafka是一个分布式的发布-订阅消息系统&#xff0c;可以快速地处理高吞吐…

阿里云国际基于CentOS系统镜像快速部署Apache服务

阿里云轻量应用服务器提供了Windows Server系统镜像和主流的Linux系统镜像&#xff0c;您可以通过该类镜像创建纯净、安全、稳定的运行环境。本文以CentOS 7.6系统镜像为例&#xff0c;介绍如何快速配置Apache服务。 背景信息 注意&#xff0c;阿里云国际通过corebyt注册并充…

使用rawpy.imread读取.RAW格式数据和.dng格式数据(附代码)

.dng格式是一个更兼容、更高效的RAW格式。如果需要在不同软件之间交换RAW文件&#xff0c;或者需要在软件中进行大量编辑&#xff0c;那么.dng格式是一个不错的选择。 目录 一、 .dng格式数据和.RAW格式数据二、 .dng格式数据和.RAW格式数据区别三、安装rawpy包四、读取.dng格式…