这篇博客分享的是2020年发表于ECCV上的一篇论文《DeepSFM: Structure From Motion Via Deep Bundle Adjustment》。

  • 论文地址:https://arxiv.org/abs/1912.09697
  • 论文代码:https://github.com/weixk2015/DeepSFM
      


  

1 概述


  SfM(Structure from motion)是深度学习尚未能很好地解决的一个基本计算机视觉问题。现有的方法通常都是从ground truth或其他方法中获得精确的相机位姿,这在实际使用时是不现实的。另一个实际的有前景的趋势是将结构约束(如3D cost volume)应用到网络中。3D cost volume是一种可以显式利用photo-consistency的可微分方式,这显著提高了基于深度学习的三维重建的性能。然而,使用3D cost volume通常必须知道相机的运动,这需要使用传统方法跑密集拍摄的高分辨率图像来获取,或者依赖额外的校准设备(Fig. 1 (b))。一些方法直接对motion进行回归(Fig. 1 (a)),这会存在泛化问题。因此,现有的深度学习方法很少有可以在缺乏精确相机位姿的情况下同时改善深度和位姿的。
  受BA(bundle adjustment)和cost volume的启发,作者提出了一个SfM的深度学习框架,该框架通过构建用于度量photo-consistency(Photo-consistency is a scalar function that measures the visual compatibility of a 3D reconstruction with a set of calibrated images)和几何一致性的cost volume,迭代地更新深度和相机位姿。该方法只需要粗略的相机位姿估计就足够了。该网络包括一个depth based cost volume(D-CV)和pose based cost volume(P-CV)。D-CV使用当前相机位姿来优化每个像素的深度值,而P-CV使用当前深度估计优化相机位姿(如Fig.1 (c )所示)。传统的3D cost volume通过将像素投影到离散相机的前向平行平面,并计算光度(即图像特征)差异作为cost来增强照片的一致性。此外,作者通过D-CV将几何(即深度)差异添加到cost中,进一步加强了相机与其当前深度估计之间的几何一致性。作者提到,可以使用传统的3D cost volume获得初始的深度估计。同时,可以利用计算机的并行来更好地构建和求解cost volume。对于相机位姿的估计,作者提出的P-CV可以通过假设当前相机在其位置周围的离散位置之间进行移动,来计算光度和几何差异。该方法不是直接的回归。作者提到,初始相机位姿可以通过直接回归的方法来粗略估计获得。该框架通过在深度网络中加入photo-consistency、geometric-consistency和camera motions的明确约束,填补了传统和基于深度学习的SfM之间的差距。
  与论文的方法最相似的工作是2019年ICLR大会上提出的BA-Net,该网络旨在将多视图几何约束纳入到深度学习框架中。BA-Net通过将LM优化集成到网络中来实现这一目标。然而,由于内存和计算效率的限制,使用该网络无法进行太多次数的LM迭代。而由于缺乏足够的迭代,它可能难以获得最优解。相比之下,DeepSFM对迭代次数没有限制 。此外,LM算法在SfM中是用于优化点和相机位姿的,因此将LM算法直接集成到深度学习网络中仍然需要良好的对应性(correspondences)。为了避免传统SfM中的对应问题,BA-Net模型在前端直接使用回归器来预测深度,这严重依赖于训练数据中的先验知识。相比之下,DeepSFM模型是一个完全物理驱动的架构,减少了深度和位姿估计的过度拟合问题。
  

2 相关工作

2.1 Single-view Depth Estimation

  虽然这是一个ill-posed问题,但深度学习技术的出现使得我们可以从单张彩色图像中估计深度。早期工作直接将其表述为逐像素的回归问题,后续工作通过引入多尺度网络架构(multi-scale network architectures)、跳连接(skip-connections)、解码器(decoder)和后处理(post process)以及新的损失函数来提高性能。尽管基于单视图的方法可以获得看似合理的结果,但模型通常严重依赖于训练数据中的先验知识,且泛化能力较差。然而,这些方法在一些多视图系统中仍然是一个重要的组成部分。

2.2 Traditional Structure-from-Motion

  传统的SfM已经具有一个成熟的技术体系。然而,其对低纹理区域、遮挡、运动物体和光照变化敏感,这限制了其性能和稳定性。

2.3 Deep Learning for Structure-from-Motion

  最近,深度神经网络在立体匹配和SfM问题上取得了巨大成功。一些方法(Demon、SfM-Net、DeepVO、SfMLearner等)以监督的方式直接回归深度和相机位姿,或通过在深度和位姿之间引入光度约束作为自我监督的信号。这些方法将相机的运动作为一个回归问题来解决,忽略了相机运动与深度预测之间的关系。
  另一些方法则利用多视图光度或特征度量约束来加强网络中密集深度图和相机位姿之间的关系。比如,BA-Net通过训练网络生成一组基本深度图,并通过最小化特征度量误差来优化BA层中的深度和相机位姿。
  

3 方法流程

  该框架接收来自不同视点的场景帧,并为所有帧生成精确的深度图和相机位姿。与BA类似,也假设初始结构(即深度图)和运动(即相机位姿)是给定的。该框架并不要求精确的初始化结果,因此可以从一些基于直接回归的方法(比如Demon)中轻松获得初始值。

  作者以两幅图像作为输入来描述所提出的模型,该模型可以直接扩展到多幅图像。如Fig. 2所示,首先通过一个共享的编码器从输入图像中提取特征图。然后,在预定义range内的逆深度空间中均匀地采样深度的解空间,并对初始值附近的相机位姿进行采样。然后,建立相应的cost volume,以推理每个深度和位姿假设的置信度。这是通过验证目标视图的特征与从源图像warped的特征之间的一致性来实现的。除了考虑用于度量彩色图像相似性的光度一致性之外,还考虑了warped深度图之间的几何一致性。在这里,深度和位姿需要不同的cost volume设计,以充分抽样假设空间。梯度可以通过cost volume反向传播,cost volume结构不包含任何可训练的参数。然后将cost volume输入3D CNN,以回归新的深度和位姿。这些更新后的值可用于创建新的cost volume,因此,该模型可迭代地改进预测。

3.1 2D Feature Extraction

  给定输入图像序列,为每一帧提取二维CNN特征。首先,采用卷积核尺寸为3×3的7层CNN提取低级的上下文信息。然后,采用空间金字塔池化(spatial pyramid pooling, SPP)模块,该模块可以通过4个平均池化模块(核的大小不同,分别为4×4、8×8、16×16、32×32)提取分层多尺度特征。最后,在将这些多尺度特征上采样到相同分辨率后,将concatenated的特征输入到二维CNN中,得到32通道的图像特征。这些图像序列特征用于构建基于深度和基于位姿的cost volume。

3.2 Depth based Cost Volume (D-CV)

  传统的plane sweep cost volume旨在将源图像反向投影到三维空间中的连续虚拟平面上,并测量每个像素在warped的图像特征和目标图像特征之间的photo-consistency误差。与主流的multi-view和SfM方法中所使用的cost volume不同,我们构造了一个D-CV,以进一步利用从深度图引入的局部几何一致性约束。受传统plane sweep cost volume的启发,论文所提出的D-CV由三部分concatenate而成:the target image features、the warped source image features和the homogeneous depth consistency maps。

  Hypothesis Sampling 为了将特征和深度图从源视点反向投影到目标视点中的三维空间,作者在逆深度空间(逆深度是稠密重建中常用的trick,即取深度的倒数来代替深度,目的是为了使深度分布服从高斯分布,计算上也更具数值稳定性)中均匀采样一组垂直于目标视点前向(z轴)的虚拟平面。这些平面作为输出深度图的假设,cost volume可以建立在它们之上。

  Feature warping 为了构建D-CV,首先使用相机内参矩阵K和初始相机位姿将源图像特征(CH×W×H)warp到每个假设的深度图平面。采用可微分双线性插值来生成warped的特征图。源视图没有覆盖到的范围的像素被指定为零。然后,将目标特征和warped的源特征concatenate在一起,得到一个2CH×L×W×H的4D特征volume。

  Depth consistency 除了光度一致性之外,为了利用几何一致性并提高深度预测的质量,在每个虚拟平面上添加了两个通道:从源视图warped来的初始深度图和从源视图通过透视投影得来的虚拟深度平面。在这里,前者与图像特征的warp相同,而后者则涉及到从目标相机到源相机的坐标变换。
  具体地,第一个通道计算如下。首先对源图像的初始深度图进行下采样,然后将其warp到假设的深度平面,类似于图像特征的warp。深度的warp和特征的warp之间的一个区别是,深度的warp采用最近邻采样,而不是双线性插值。
  从源视图来看,第二个通道包含目标视图中虚拟平面的深度值。为了将虚拟平面变换到源视图坐标系下,需要在每个虚拟平面上应用T函数。然后,将warped的初始深度图和坐标系变换后的深度平面叠加,得到2×L×W×H的深度volume。

  通过将特征volume和深度volume concatenate在一起,就获得了一个大小为(2CH+2)×L×W×H的4D cost tensor。给定4D cost volume,该网络使用几个核大小为3×3×3的三维卷积层学习大小为L×W×H的cost volume。当有多个源图像时,可以通过对多个输入源视图进行平均得到最终的cost volume。

3.3 Pose based Cost Volume (P-CV)


  除了D-CV的构造外,论文还提出了P-CV,旨在通过光度和几何一致性优化初始相机位姿(见Fig.3)。这里的P-CV不是基于假设的深度图平面构建的cost volume,而是基于一组假设的相机位姿构建的。与D-CV类似,P-CV也由三个组件concatenate而成:the target image features、the warped source image features和the homogeneous depth consistency maps。给定初始相机位姿参数,对周围的一批离散候选相机位姿进行均匀采样。如Fig.3所示,分别shift旋转和平移,同时保持另一个不变。对于旋转,在欧拉角空间中预定义范围内均匀采样获得δR,并将δR乘以初始的R。对于平移,均匀采样δt,并将δt加到初始t上。最后,得到了一组在输入位姿附近的虚拟相机位姿,用于cost volume的构造。
  通过将图像特征和homogeneous深度图concatenate起来,还可以构造posed-based的cost volume。与D-CV类似,在双线性采样后得到warped的源特征图,并将其与目标视图的特征图进行concatenate。作者还将初始目标视图深度和源视图深度转换到同一个齐次坐标系下,从而增强了相机位姿和multi view深度图之间的几何一致性。
  将上述特征图和深度图concatenate在一起后,再次构建一个4D cost volume,大小为(2CH+2)×P×W×H,其中W和H是特征图的宽度和高度,CH是通道数。在经过核尺寸为3×3×3的八个三维卷积层、步长为2×2×1的三个三维平均池化层和最后接的一个全局平均池化层之后,可以从上述4-D tensor中得到大小为1×P×1×1的输出。

3.4 Cost Aggregation and Regression

  深度预测部分遵循cost aggregation technique。采用一个context网络,将目标图像特征和经过三维卷积的coarse cost volume的每个slice作为输入,生成refined cost slice。最终aggregated的基于深度的volume是通过将coarse cost slice和refined cost slice相加得到的。获得目标图像深度预测的最后一步是使用soft argmax进行深度回归。对于相机位姿预测部分,作者也对位姿cost volume使用soft argmax函数,然后获得估计的旋转和平移向量。

3.5 Training

  DeepSFM以有监督的方式对feature extractor、3D convolution和regression layers进行学习。位姿损失使用L1距离进行定义,深度损失则基于Huber损失函数进行定义。
  初始深度图和相机位姿是从Demon获得的。为了保持正确的尺度,作者将平移向量和深度图乘以相机平移真值的范数。整个训练和测试过程分为四次迭代。在每次迭代过程中,将先前迭代的预测深度图和相机位姿作为新的初始值。
  

4 实验

  实验部分,论文对所提出算法的精度、泛化能力、对初始值的鲁棒性进行了测试。所使用的数据集包括:

  • DeMoN Datasets:包括SUN3D、RGB-D SLAM、Scenes11和MVS数据集,这几个数据集都包含有RGB图像序列,并提供精确的相机内外参数和深度图真值。
  • ETH3D Dataset:提供一系列室内外场景图像,并配有用激光雷达采集的高精度三维点云,是一个更为可靠的基准数据集。
  • Tanks and Temples:是一个大尺度三维重建的图像数据集,也配备有使用工业激光雷达采集的三维点云作为真值。








  

5 总结

  论文提出了一个基于SfM的深度学习框架,该框架在深度网络中实现了光度一致性、几何一致性和相机运动约束。这是通过两个关键组件实现的,即D-CV和P-CV。这两种cost volume分别通过假设移动重建场景点(结构)或相机(运动)来测量光度和几何测量误差。该深度网络可以看作是一种基于增强学习的BA算法,它充分利用了可学习的先验知识和几何规则。因此,该方法优于传统的BA和先进的基于深度学习的SfM方法。

  

6 补充材料

6.1 Implementation Details

  网络训练时总共跑了4个epoch。在前两个epoch,2D CNN特征提取模块使用的是DPSNet中预训练的参数来进行参数初始化,并使用源图像的深度图真值来构建D-CV和P-CV,这在后两个epoch由网络预测的深度代替。在训练期间,输入序列的长度为2(一个目标图像和一个源图像)。D-CV的样本数L设置为64,P-CV的样本数P设置为1000。在训练和测试期间,这两个cost volumes的range都进行了调整。对于D-CV,其range由真值的最小深度值确定,与DPSNet相同。对于P-CV,旋转采样的bin尺寸为0.035,平移采样的bin尺寸为0.10×norm(t*),对于每个初始化平移向量t*。

  • Loss weights。λr、λt和λd的设置遵循两条原则:1)损失项提供了相同数量级的梯度,因此没有单个损失项主导训练过程。这是因为深度精度和相机位姿对于获得良好的一致性结果都很重要。2) 在实践中,相机的旋转对深度的精度有更高的影响。因此,为了鼓励更好的位姿表现,设置了相对较大的λr。实际执行时,Ldepth平衡损失目标的权重参数λ设置为0.7,而λr=0.8、λt=0.1和λd=0.1。
  • Feature extraction module。如图9所示,作者参考了DPSNet构建了本文的特征提取模块。该模块以4W×4H×3的图像作为输入,然后输出尺寸为W×H×32的特征图,用于构建D-CV和P-CV。

      
  • Cost volumes。图10展示了P-CV和D-CV的详细组成。cost volume的每个通道由四个部分组成:参考视图的特征图、warped的源视图特征图、warped的源视图初始深度图和投影的参考视图深度平面或初始深度图。P-CV的构造使用了每个采样的假设相机位姿,并基于相机位姿对源视图的深度图和初始深度图进行warp处理。对初始的参考视图深度图进行投影,使其在数值上与warped的源视图深度图对齐。最后,将这四个组件作为4D P-CV的一个通道进行concatenate。对所有P个采样的相机位姿执行此操作,获得通道数为P的一个P-CV。D-CV的构建方法类似。通过选取每个采样的假设深度平面,对源视图特征图和初始深度图进行warp处理。对深度平面进行投影,使其与源视图深度图对齐。concatenate后,就得到了D-CV中的一个通道。基于所有L个虚拟深度平面进行相同的计算,并建立L通道D-CV。

      
  • 3D convolutional layers。D-CV之后的3D卷积层的详细结构与DPSNet几乎相同,除了第一个卷积层。为了与D-CV中新引入的深度一致性组件兼容,将输入通道数调整为66,而不是64。如图11所示,对于P-CV之后的3D卷积层,其架构类似于D-CV的3D卷积层,有三个额外的3D平均池化层,最后在图像宽度和高度维度上有一个全局平均池化,最终生成一个P×1×1的tensor。

      

6.2 Other experimental results












  *部分翻译或理解可能会存在偏差,仅供参考,欢迎讨论。

2020年ECCV论文DeepSFM: Structure From Motion Via Deep Bundle Adjustment阅读笔记相关推荐

  1. 论文Learning to Solve Large-Scale Security-Constrained Unit Commitment Problems阅读笔记

    论文Learning to Solve Large-Scale Security-Constrained Unit Commitment Problems阅读笔记 论文arxiv链接:Learning ...

  2. 【SLAM】SfM论文推荐(ICCV,CVPR,ECCV等)Structure from Motion

    文章目录 SfM 相关文献 增量式SfM: 全局式SfM: 混合式SfM: SfM 相关文献 增量式SfM: N. Snavely, et al. Modeling the World from In ...

  3. 论文 Matching Article Pairs with Graphical Decomposition and Convolutions 阅读笔记

    论文 Matching Article Pairs with Graphical Decomposition and Convolutions 详细流程 论文发表在2019 ACL上,论文地址:htt ...

  4. 视频重建论文EDVR: Video Restoration with Enhanced Deformable Convolutional Networks阅读笔记

    论文来源:CVPRW2019 论文链接:http://ieeexplore.ieee.org/document/9025464 项目地址:GitHub - xinntao/EDVR: Winning ...

  5. 论文 A Linear Time Algorithm for Placing phi-Nodes:阅读笔记

    文章目录 介绍 想要解决的问题 传统placing ϕ \phi ϕ-node算法回顾 背景知识 核心实现 线性时间构造DJ-graph computing dominance frontier 插入 ...

  6. 毫米波点云生成论文 阅读笔记 | 3D Point Cloud Generation with Millimeter-Wave Radar

    毫米波点云生成论文 | 3D Point Cloud Generation with Millimeter-Wave Radar Kun Qian, Zhaoyuan He, Xinyu Zhang ...

  7. 点云配准论文阅读笔记--(4PCS)4-Points Congruent Sets for Robust Pairwise Surface Registration

    目录 点云配准系列 写在前面 Abstract摘要 1 Introduction引言 2 Background研究背景 RANSAC Randomized Alignment 3 Approximat ...

  8. 【论文阅读笔记】语义三维重建CVPR2011:Semantic Structure from Motion

    前文回顾 [论文阅读笔记]Past, Present, and Future of Simultaneous Localization and Mapping [论文阅读笔记]语义SLAM语义映射模型 ...

  9. ECCV 2020 语义分割论文大盘点(38篇论文)

    作者:CV Daily | 编辑:Amusi Date:2020-09-25 来源:计算机视觉Daily微信公众号(系投稿) 原文:ECCV 2020 语义分割论文大盘点(38篇论文) 前言 距离EC ...

最新文章

  1. android 抓取native层奔溃
  2. 【TensorFlow】:Eager Mode(动态图模式)
  3. Shell编程(week4_day1)--技术流ken
  4. OCH\OMS\OTS\MSP\RS\SPI解释
  5. 解决ZooKeeper集群搭建 [myid:1] - WARN [QuorumPeer[myid=1]:QuorumCnxManager@685] - Cannot open channel
  6. mysql 衍生表必须有别名_MySQL“每个派生表必须有自己的别名”
  7. 怎么验证proftpd安装成功_英雄联盟手游泰服安卓账号怎么注册
  8. 【好用的ORM框架】
  9. 纪念品分组java_纪念品分组 ——易懂、简介、技巧(Java代码)
  10. Android localsocket 的基础和使用实践: 01
  11. 一场谷歌与苹果的合作:TensorFlow Lite开始支持Core ML
  12. docker启动tomcat容器并添置项目首页
  13. 使用css让文字两端对齐
  14. 全平台adb工具安装方法
  15. python,NSGA3 多目标优化,结合多进程,可用于swat模型等复杂模型。
  16. 布线问题_分支限界法
  17. 手机网速测试软件排行榜,手机测网速软件,几款测速软件推荐
  18. it企业实习_IT公司实习报告总结
  19. (上篇)中国金融体系主要指标大全
  20. No qualifying bean of type ‘service‘ available:单元测试报错

热门文章

  1. gpt用pyQT和python 写待办事项程序,回头把我自己写的改造一下
  2. 金蝶服务器配置项目jar包,金蝶Apusic_9.0软件包-含手册-金蝶Java应用服务器-金蝶中间件(90天试用版)...
  3. 免费的发外链友链的简单易操作思路
  4. 网络工程师的水平检测1
  5. Hive之——支持CSV格式
  6. Matlab cell保存为.csv格式
  7. thinkphp5使用redis实现秒杀商品活动
  8. linux 查看vnc端口_怎样查vnc端口,Linux下根据进程名怎样查端口
  9. 【流放之路-装备制作篇】
  10. 浏览器html5音画不同,在每个浏览器中看起来都不一样的div