论文阅读《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.mfbz.cn/a/233955.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

输入一组数据,以-1结束输入[c]

我们新手写题时总能看到题目中类似这样的输入 没有给固定多少个数据,我们没有办法直接设置数组的元素个数,很纠结,下面我来提供一下本人的方法(新手,看到有错误或者不好的地方欢迎大佬指出,纠正&#xff0…

20231210原始编译NanoPC-T4(RK3399)开发板的Android10的SDK

20231210原始编译NanoPC-T4(RK3399)开发板的Android10的SDK 2023/12/10 17:27 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ mkdir nanopc-t4 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ cd nanopc-t4/ …

如何理解java中的context对象?

背景 java中,常见的 Context 有很多, 例如: ServletContext, ActionContext, ServletActionContext, ApplicationContext, PageContext, SessionContext… 常见Context 熟悉spring是怎样在web容器中启动起来的。spring的启动过程其实就是其IoC容器的启动过程&…

盲盒小程序搭建:实现盲盒消费新体验

近几年来,潮玩市场中的盲盒逐渐席卷了年轻一代人的生活,吸引了不少消费者。盲盒的不确定性给消费者带来了惊喜和快乐,盲盒的商业价值也是逐渐增加,预计2024年盲盒市场规模将突破300亿元。 但在当下互联网快速发展的时代下&#x…

stu05-前端的几种常用开发工具

前端的开发工具有很多,可以说有几十种,包括记事本都可以作为前端的开发工具。下面推荐的是常用的几种前端开发工具。 1.DCloud HBuilder(轻量级) HBuilder是DCloud(数字天堂)推出的一款支持HTML5的web开发…

一文带你了解Linux学习网站:让你的编程之路更加顺畅!

介绍:Linux,通常指的是GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统。这个系统的核心由林纳斯本纳第克特托瓦兹(Linus Benedict Torvalds)在1991年首次发布。Linux是基于POSIX和UNIX的多用户、多任务、支持多线…

TruLens RAG Triad 学习

TruLens RAG Triad 学习 0. 背景1. RAG 三元组2. TruLens 快速入门2-1. 安装依赖2-2. 初始化 OpenAI 认证信息2-3. 获取数据2-4. 创建向量存储2-5. 从头构建自定义 RAG2-6. 设置反馈函数2-7. 构建应用程序2-8. 运行应用程序0. 背景 近年来,RAG 架构已成为为大型语言模型 (LLM…

Leetcode—901.股票价格跨度【中等】

2023每日刷题&#xff08;五十二&#xff09; Leetcode—901.股票价格跨度 算法思想 实现代码 class StockSpanner { public:stack<pair<int, int>> st;int curday -1;StockSpanner() {st.emplace(-1, INT_MAX);}int next(int price) {while(price > st.top(…

旅游信息网的设计

摘 要 旅游信息网是典型的电子商务销售平台, 是基于B/S模式开发的网上旅游信息系统的&#xff0c;实现网上销售&#xff0c;已经成为未来商场战争中占有优势地位的必不可少的工具了。本旅游信息网系统主要以Visual Studio.NET为主要的网络开发工具&#xff0c;以SQL Server 20…

LeetCode算法题解(单调栈)|LeetCode84. 柱状图中最大的矩形

一、LeetCode84. 柱状图中最大的矩形 题目链接&#xff1a;84. 柱状图中最大的矩形 题目描述&#xff1a; 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大…

C++中字符串详解

在C语言中只能通过字符串数组来模拟字符串&#xff0c;没有字符串类型。在C引入了string类来表示字符串类型。从而用它定义字符串。 在C语言中&#xff1a; char str[] "abc"; char str[] {a&#xff0c;b,c,\0}; char* str "abc"; //这三种形式是C语言…

20、XSS——XSS跨站脚本

文章目录 一、XSS漏洞概述1.1 XSS简介 二、XSS漏洞分类2.1 反射型XSS2.2 存储型XSS2.3 DOM型XSS 三、XSS payload构造以及变形3.1 XSS payload构造3.2 XSS payload 变形 一、XSS漏洞概述 1.1 XSS简介 XSS被称为跨站脚本攻击&#xff08;Cross-site scripting&#xff09;&…

045:Vue读取本地上传JSON文件,导出JSON文件方法

第045个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

计算机毕业设计JAVA+SSM+springboot养老院管理系统

设计了养老院管理系统&#xff0c;该系统包括管理员&#xff0c;医护人员和老人三部分。同时还能为用户提供一个方便实用的养老院管理系统&#xff0c;管理员在使用本系统时&#xff0c;可以通过系统管理员界面管理用户的信息&#xff0c;也可以进行个人中心&#xff0c;医护等…

class065 A星、Floyd、Bellman-Ford与SPFA【算法】

class065 A星、Floyd、Bellman-Ford与SPFA【算法】 2023-12-9 19:27:02 算法讲解065【必备】A星、Floyd、Bellman-Ford与SPFA code1 A*算法模版 // A*算法模版&#xff08;对数器验证&#xff09; package class065;import java.util.PriorityQueue;// A*算法模版&#xff…

Mysql8.0实现主从复制

1、什么是主从复制 数据库的主从复制&#xff08;master-slave replication&#xff09;是一种数据复制技术&#xff0c;其中一台数据库服务器&#xff08;主服务器&#xff09;上的数据变更会复制到另一台或多台数据库服务器&#xff08;从服务器&#xff09;上。这种复制可以…

【Copilot】Edge浏览器的copilot消失了怎么办

这种原因&#xff0c;可能是因为你的ip地址的不在这个服务的允许范围内。你需要重新使用之前出现copilot的ip地址&#xff0c;然后退出edge的账号&#xff0c;重新登录一遍&#xff0c;最后重启edge&#xff0c;就能够使得copilot侧边栏重新出现了。

C语言算法与数据结构,旅游景区地图求最短路径

背景&#xff1a; 本次作业要求完成一个编程项目。请虚构一张旅游景区地图&#xff0c;景区地图包括景点&#xff08;结点&#xff09;和道路&#xff08;边&#xff09;&#xff1a;地图上用字母标注出一些点&#xff0c;表示景点&#xff08;比如&#xff0c;以点 A、B、C、…

线程及实现方式

一、线程 线程是一个基本的CPU执行单元&#xff0c;也是程序执行流的最小单位。引入线程之后&#xff0c;不仅是进程之间可以并发&#xff0c;进程内的各线程之间也可以并发&#xff0c;从而进一步提升了系统的并发度&#xff0c;使得一个进程内也可以并发处理各种任务&#x…
最新文章