今天读的是发表在ECCV2022上的自监督MVS文章,作者来自于旷视科技和清华大学。
文章链接:arxiv
代码链接:https://github.com/megvii-research/KD-MVS

目录

  • Abstract
  • 1. Introduction
  • 2. Related work
  • 3. Methodology
    • 3.1 Self-supervised Teacher Training
    • 3.2 Distillation-based Student Training
      • Pseudo Probabilistic Knowledge Generation
      • Student Training
  • 4. Experiments
    • 4.1 Datasets
    • 4.2 Implementation Details
    • 4.3 Experimental Results
    • 4.4 Ablation Study
  • 5. Discussion
    • 5.1 Insights of Effectiveness
    • 5.2 Comparisons to SOTA Methods
    • 5.3 Limitations
  • 6. Conclusion

Abstract

监督多视图立体 (MVS) 方法在重建质量方面取得了显着进步,但面临收集大规模地面实况深度的挑战。 在本文中,我们提出了一种基于知识蒸馏的新型 MVS 自监督训练管道,称为 KD-MVS,主要包括自监督教师培训和基于蒸馏的学生培训。 具体来说,教师模型使用光度和特征一致性以自我监督的方式进行训练。 然后我们通过概率知识转移将教师模型的知识提炼到学生模型。 在经过验证的知识的监督下,学生模型能够大大优于其教师。 在多个数据集上进行的大量实验表明我们的方法甚至可以胜过监督方法。

1. Introduction

介绍了MVS相关内容。
主要贡献如下:

  • 提出了一种基于知识蒸馏的名为 KD-MVS 的新型自监督训练pipeline。
  • 设计了一个内部特征度量一致性损失来对教师模型进行稳健的自我监督训练。
  • 建议进行知识蒸馏,将经过验证的知识从自我监督的教师转移到学生模型中,以提高表现。
  • 该方法在 Tanks and Temples、DTU 和 BlendedMVS数据集上实现了SOTA。

2. Related work

介绍了learning-based MVS(包括有监督和自监督)和知识蒸馏。

3. Methodology

在本节中,我们详细阐述了如图 2 所示的框架。KD-MVS 主要包括自我监督的教师培训(第 3.1 节)和基于蒸馏的学生培训(第 3.2 节)。 具体来说,我们首先使用参考视图和重建视图之间的 photometric and featuremetric consistency,以自我监督的方式训练教师模型。 然后,我们通过交叉视图检查和概率编码生成教师模型的伪概率分布。 在伪概率的监督下,学生模型以离线蒸馏方式进行蒸馏损失训练。 值得注意的是,所提出的 KD-MVS 是用于训练 MVS 网络的通用管道,它可以很容易地适应任意基于学习的 MVS 网络。 本文主要研究KD-MVS与CasMVSNet。

3.1 Self-supervised Teacher Training

除了自监督 MVS 中使用的传统光度一致性外,我们还建议使用内部特征和特征一致性作为额外的监督信号。 光度和特征一致性都是通过计算参考视图和重建视图之间的距离获得的。
View Construction介绍了形如CasMVSNet的视图重建过程,写了一遍homography warping的公式(如图4)。
Loss Formulation介绍了损失函数。自监督训练损失由两部分组成:photometric loss光度损失 L p h o t o L_{photo} Lphoto​ 和featuremetric loss特征损失 L f e a L_{fea} Lfea​。 L p h o t o L_{photo} Lphoto​ 基于原始RGB参考图像和重建图像之间的L1距离。 然而,我们发现光度损失对光照条件和拍摄角度敏感,导致预测的完整性较差。 为了克服这个问题,我们使用特征度量损失来构建更稳健的损失函数。给定从 MVS 网络的特征网中提取的特征 { F i } i = 0 N − 1 \{F_{i}\}^{N−1}_{i=0} {Fi​}i=0N−1​,以及从第 i i i 个视图生成的重构特征图 F i ^ \hat{F_{i}} Fi​^​,我们的 F i ^ \hat{F_{i}} Fi​^​ 和 F 0 F_{0} F0​ 之间的特征度量损失为:

值得注意的是,我们提出使用在线训练 MVS 网络的内部特征网提取的内部特征而不是外部特征(例如,由预训练的主干网络提取)来计算特征度量损失。 我们的见解是,MVS 的本质是沿极线的多视图特征匹配,因此这些特征应该具有局部判别性。 预训练的骨干网络,例如 ResNet 和 VGGNet 通常使用图像分类损失进行训练,因此它们的特征不是局部判别性的。 如图 3 所示,我们比较了在线自监督训练期间由外部预训练主干网(ResNet)和 MVS 网络的内部编码器提取的特征。 这两个选项导致完全不同的特征表示,我们在 Sec 4.4 中通过实验对其进行了研究。

总而言之,自监督教师培训的最终损失函数是:

其中 V 是图像像素的有效子集。 λ f e a λ_{fea} λfea​ 和 λ p h o t o λ_{photo} λphoto​ 是两个手动调整的权重,在我们的实验中,我们分别将它们设置为 4 4 4 和 1 1 1。 对于从粗到精的网络,例如 CasMVSNet,损失函数应用于每个正则化步骤。

3.2 Distillation-based Student Training

为了进一步激发自监督 MVS 网络的潜力,我们采用知识蒸馏的思想,将教师的概率知识转移到学生模型中。 这个过程主要包括两个步骤,即伪概率知识生成和学生训练。

Pseudo Probabilistic Knowledge Generation

我们认为知识转移是通过概率分布完成的。 然而,在 MVS 中应用蒸馏时,我们面临两个主要问题。 (a) 教师模型生成的原始每视图深度包含大量异常值,这不利于训练学生模型。 所以,我们执行交叉视图检查以过滤异常值。 (b) 教师模型的真实概率知识不能直接用于训练学生模型。 这是因为从粗到细的MVS网络中的深度假设需要根据前一阶段的结果动态采样,我们不能保证教师模型和学生模型总是共享相同的深度假设。 为了解决这个问题,我们通过概率编码生成伪概率分布。

Cross-view Check 用于过滤原始深度图中的异常值,这些异常值是由自监督教师模型在未标记的训练数据上推断出来的。 自然地,教师模型的输出是每个视图的深度图和相应的置信度图。 对于从粗到精的方法,例如 CasMVSNet,我们将所有三个阶段的置信度图相乘以获得最终的置信度图,并将最高分辨率的深度图作为最终的深度预测。

我们将参考视图的最终置信度图表示为 C 0 C_{0} C0​,将最终深度预测表示为 D 0 D_{0} D0​,将源视图的深度图表示为 { D i } i = 1 N − 1 \{D_{i}\}^{N−1}_{i=1} {Di​}i=1N−1​。如图5所示,考虑参考图像坐标中的任意像素 p 0 p_{0} p0​,我们将 2D 点 p 0 p_{0} p0​ 转换为具有深度值 D 0 ( p 0 ) D_{0}(p_{0}) D0​(p0​) 的 3D 点 P 0 P_{0} P0​。 然后我们将 P 0 P_{0} P0​ 反投影到第 i i i 个源视图并获得源视图中的点 p i p_{i} pi​。 使用其估计的深度 D i ( p i ) D_{i}(p_{i}) Di​(pi​),我们可以将 p i p_{i} pi​ 投射到 3D 点 P i P_{i} Pi​。 最后,我们将 P i P_{i} Pi​ 投影到参考视图并得到 p ^ 0 , i \hat{p}_{0,i} p^​0,i​。 然后 p 0 p_{0} p0​ 处的重投影误差可以写为 e r e p r o j i = ∣ ∣ p 0 − p ^ 0 , i ∣ ∣ e^{i}_{reproj} = \vert{}\vert{}p_{0}−\hat{p}_{0,i}\vert{}\vert{} ereproji​=∣∣p0​−p^​0,i​∣∣。 还定义了几何误差 e g e o i e^{i}_{geo} egeoi​ 来测量从参考相机观察到的 P 0 P_{0} P0​ 和 P i P_{i} Pi​ 的相对深度误差, e g e o i = ∥ D ^ 0 ( P 0 ) − D ^ 0 ( P i ) ∥ / D 0 ( P 0 ) e^{i}_{geo} =∥\hat{D}_{0}(P_{0}) − \hat{D}_{0}(P_{i})∥/D_{0}(P_{0}) egeoi​=∥D^0​(P0​)−D^0​(Pi​)∥/D0​(P0​),其中 D ^ 0 ( P 0 ) \hat{D}_{0}(P_{0}) D^0​(P0​) 和 D ^ 0 ( P i ) \hat{D}_{0}(P_{i}) D^0​(Pi​) 是参考视图中 P 0 P_{0} P0​ 和 P i P_{i} Pi​ 的投影深度。因此,关于第 i i i 个源视图的有效像素子集定义为:

其中 τ τ τ表示阈值,我们将 τ c o n f τ_{conf} τconf​、 τ r e p r o j τ_{reproj} τreproj​和 τ g e o τ_{geo} τgeo​分别设置为0.15、1.0和0.01。 最终经过验证的掩码是 N − 1 N-1 N−1 个源视图中所有 p 0 i {p_{0}}_{i} p0​i​ 的交集。 获得的 { D ^ 0 ( P i ) } i = 0 N − 1 \{\hat{D}_{0}(P_{i})\}^{N−1}_{i=0} {D^0​(Pi​)}i=0N−1​ 和经过验证的mask 将进一步用于生成伪概率分布。

Probabilistic Encoding 使用 { D ~ 0 ( P i ) } i = 0 N − 1 \{\widetilde{D}_{0}(Pi)\}^{N−1}_{i=0} {D 0​(Pi)}i=0N−1​ 为参考视图中的每个有效像素 p 0 p_{0} p0​ 生成深度值 d d d 的伪概率分布 P p 0 ( d ) P_{p_{0}} (d) Pp0​​(d)。我们将 P p 0 P_{p_{0}} Pp0​​建模为平均深度值为 μ ( p 0 ) μ(p_{0}) μ(p0​)、方差为 σ 2 ( p 0 ) σ^{2}(p_{0}) σ2(p0​)的高斯分布,可以通过最大似然估计得到:

μ ( p 0 ) μ(p_{0}) μ(p0​) 融合了来自多个视图的深度信息,而 σ 2 ( p 0 ) σ^{2}(p_{0}) σ2(p0​) 反映了教师模型在 p 0 p_{0} p0​ 处的不确定性,这将为蒸馏训练期间的学生模型提供概率知识。

Student Training

使用伪概率分布 P P P,我们能够通过强制其预测概率分布 P ^ \hat{P} P^ 与 P P P 相似来从头开始训练学生模型。对于离散深度假设 { d k } k = 0 D \{d_{k}\}^{D}_{k=0} {dk​}k=0D​,我们获得它们的伪概率 { P ( d k ) } k = 0 D \{P(d_{k})\}^{D}_{k=0} {P(dk​)}k=0D​ 在连续概率分布 P P P 上使用 SoftMax 对 { P ( d k ) } k = 0 D \{P(d_{k})\}^{D}_{k=0} {P(dk​)}k=0D​ 进行归一化,将结果作为最终的离散伪概率值。 我们使用KL散度来衡量学生模型的预测概率与伪概率之间的距离。 蒸馏损失 L D L_{D} LD​ 定义为:

其中 { p v } \{p_{v}\} {pv​} 表示交叉视图检查后有效像素的子集。

在实验中,我们发现经过训练的学生模型也有可能成为一名教师,并将其知识进一步提炼给另一个学生模型。 作为训练时间和性能之间的权衡,我们再次执行知识蒸馏过程。

4. Experiments

4.1 Datasets

介绍了数据集。

4.2 Implementation Details

介绍了一些参数设置。

4.3 Experimental Results

介绍了实验结果。

4.4 Ablation Study

对内部特征loss进行了消融。
对自训练参数进行了解释。

5. Discussion

5.1 Insights of Effectiveness

5.2 Comparisons to SOTA Methods

5.3 Limitations

  • 伪概率分布的质量在很大程度上取决于交叉视图检查阶段,需要仔细调整相关的超参数。
  • 知识蒸馏是data-hungry的,它可能无法像预期的那样使用相对较小的数据集。

6. Conclusion

复述了一下贡献。

【论文精读】KD-MVS相关推荐

  1. 【推荐系统论文精读系列】(二)--Factorization Machines

    文章目录 一.摘要 二.介绍 三.稀疏性下预测 四.分解机(FM) A. Factorization Machine Model B. Factorization Machines as Predic ...

  2. 【论文精读3】MVSNet系列论文详解-P-MVSNet

    P-MVSNet全名为"P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo ...

  3. 繁凡的对抗攻击论文精读(三)ICLR2019 利用先验知识进行高效黑盒对抗攻击的 bandits 算法(MIT)

    点我轻松弄懂深度学习所有基础和各大主流研究方向入门综述! <繁凡的深度学习笔记>,包含深度学习基础和 TensorFlow2.0,PyTorch 详解,以及 CNN,RNN,GNN,AE, ...

  4. 论文精读——基于机器学习的越南生活固体废弃物预测

    论文精读--基于机器学习的越南生活固体废弃物预测 Abstract 1. Introduction(partly) 2. ML - based models and applications for ...

  5. 论文精读——CenterNet :Objects as Points

    论文精读--CenterNet :Objects as Points 论文地址:https://arxiv.org/pdf/1904.07850.pdf 机构:UT Austin,UC Berkele ...

  6. 论文精读 | slam中姿态估计的图优化方法比较

    一. 摘要 对于位置环境中的自主导航问题,同步定位与建图(Simultaneous localization and mapping, SLAM)是一个非常重要的工具框架.根据SLAM字面含义可以得知 ...

  7. 李沐论文精读系列四:CLIP和改进工作串讲(LSeg、GroupViT、VLiD、 GLIPv1、 GLIPv2、CLIPasso)

    文章目录 一.CLIP 1.1 简介 1.1.1 前言 1.1.2 模型结构 1.1.3 模型效果 1.1.3.1 对自然分布偏移的鲁棒性 1.1.3.2 StyleCLIP 1.1.3.3 CLIP ...

  8. 【论文精读】UV-SLAM: Unconstrained Line-based SLAM Using Vanishing Points for Structural Mapping

    [论文精读]UV-SLAM: Unconstrained Line-based SLAM Using Vanishing Points for Structural Mapping 论文出处 ICRA ...

  9. 【推荐系统论文精读系列】(八)--Deep Crossing:Web-Scale Modeling without Manually Crafted Combinatorial Features

    文章目录 一.摘要 二.介绍 三.相关工作 四.搜索广告 五.特征表示 5.1 独立特征 5.2 组合特征 六.模型架构 6.1 Embedding层 6.2 Stacking层 6.3 Residu ...

  10. 李沐论文精读系列五:DALL·E2(生成模型串讲,从GANs、VE/VAE/VQ-VAE/DALL·E到扩散模型DDPM/ADM)

    文章目录 一. 前言 1.1 DALL·E简介 1.2 DALL·E2简介 1.3 文生图模型进展 二. 引言 2.1 摘要 2.2 引言&模型结构 三. 算法铺垫 3.1 GANs 3.2 ...

最新文章

  1. processing文本可视化_推荐7个数据可视化工具,让你的信息快速生成可视化
  2. vsftpd Problem with 425 Security: Bad IP connecting 解决
  3. 手机的次世代竞争年代
  4. 数据结构(三)--链表
  5. redis的学习使用,第一章
  6. Prometheus之kubernetes-sd自动发现
  7. 50张非常精美的Apple主题桌面壁纸(上篇)
  8. codeforces 483B Friends and Presents 解题报告
  9. 就业阶段-java语言进价_day03
  10. Gstreamer——搭建RTSP服务器
  11. Linux配置Anaconda3环境变量的问题
  12. Navicat怎样导入Excel表格数据
  13. PP-YoLoE | PP-YoLov2全面升级Anchor-Free,速度精度完美超越YoLoX和YoLov5
  14. 算法图解第一章笔记与习题(算法简介)
  15. 使用微软官方工具MediaCreationTool制作Windows10的U盘系统安装盘
  16. pull request 时遇到 conflicted 的解决方法
  17. Cobbler自动安装windows10
  18. 网页中插入FLASH(swf文件)的html代码
  19. 不懂word2vec,还敢说自己是做NLP?
  20. RuntimeError: Physical devices cannot be modified after being initialized

热门文章

  1. .net 5 C# 网页gbk编码问题的一种解决方案
  2. windows vs2022 c/c++连接操作postgresql数据库 - 增删改查
  3. UE4 获取主窗口HWND和调用WINAPI函数
  4. Xilinx Kintex-7 XC7K325T-2FFG676I嵌入式核心板简介
  5. redis 互为主从(双主)
  6. java applet 淘汰_java – 替代applet的替代技术?
  7. 爬取qq好友说说并对数据简单分析
  8. windows找不到文件xxxxx请确定文件名是否正确 解决办法
  9. 计算机网络——网络层之移动IP
  10. c语言解决方程的论文,c语言编程求解线性方程组论文1.doc