点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者丨黄浴

来源丨计算机视觉深度学习和自动驾驶

arXiv论文“SurroundDepth: Entangling Surrounding Views for Self-Supervised Multi-Camera Depth Estimation“,上传于2022年4月,来自清华、天大和鉴智机器人创业公司。

从图像中估计深度是自动驾驶3D感知的基本步骤,是昂贵深度传感器(如激光雷达)的经济替代品。时间光度学一致性(photometric consistency)可以实现无标注的自监督深度估计,进一步促进其广泛应用。然而,大多数现有方法仅基于每个单目图像预测深度,而忽略了多个周围摄像头之间的相关性,这通常适用于现代自动驾驶车辆。

本文提出一种SurroundDepth方法,将来自多个周围视图的信息合并到一起,预测摄像头之间的深度图。具体地说用一个联合网络来处理所有周围的视图,并提出一个交叉视图transformer来有效地融合来自多个视图的信息。用交叉视图自注意来有效地实现多摄像机特征图之间的全局交互。与自监督单目深度估计不同,能够在给定多摄像机外参的情况下预测真实世界的尺度。为了实现这一目标,运动恢复结构(SfM)提取尺度-觉察的伪深度来预训练模型。此外,不预测每个单独摄像头的自运动,而是估计车辆的通用自运动,并将其传输到每个视图,以实现多视图一致性。在实验中,该方法在具有挑战性的多摄像头深度估计数据集DDAD和nuScenes上取得了最新的性能。

代码位于https://github.com/weiyithu/SurroundDepth


摄像头的3D感知由于其语义丰富和经济性,已成为一种很有前途潜在的替代方法。深度估计作为输入2D图像和真实3D环境之间的桥梁,对下游3D理解有着至关重要的影响,并受到越来越多的关注。

由于密集标注深度图的昂贵成本,深度估计通常是以自监督的方式学习。通过同时预测深度图和摄像头的自运动,现有方法利用连续图像之间的时域光度一致性作为监督信号。尽管现代自动驾驶汽车通常配备多个摄像头来拍摄周围场景的360度全景,大多数现有方法仍然侧重于从单目图像预测深度图,而忽略了周围视图之间的相关性。由于只能通过时域光度一致性推断出相对尺度,这些自监督的单目深度估计方法无法产生尺度-觉察的深度。然而,由于多摄像机外参矩阵中的平移向量获得了真实世界的尺度,因此有可能获得尺度-觉察预测。

自监督单目深度估计方法同时探索学习深度和运动的路线。对于单目序列,几何约束通常建立在相邻帧上。最早就是将该问题构建为一个视图合成任务,并训练两个网络分别预测姿势和深度。也有提出ICP损失,其工作证明了使用整个3D结构一致性的有效性。Monodepth2采用最小重投影损失、全分辨率多尺度采样和auto-masking损失,进一步提高预测质量。还有一个尺度非一致性(scale consistency )损失项来解决深度图之间尺度不一致的问题。PackNet SfM通过引入3D卷积进一步提高了深度估计精度。最近,FSM通过引入空间和时间上下文来丰富监督信号,将自监督的单目深度估计扩展到全周围视图。

多视图特征交互是多视图立体视觉、目标检测和分割中的一个关键组件。MVSNet构建一个多视图特征的基于方差成本体(variance-based cost volume),并用3D CNN做成本正则化回归深度值。另外还有引入自适应聚合和LSTM来进一步提高性能。最近,CVP-MVSNet采用金字塔结构来迭代优化深度预测。STTR采用一种具有交替自注意和交叉注意的transformer来取代成本体。LoFTR在transformer中使用自注意和交叉注意层,获得两幅图像的特征描述子。Point MVSNet结合2D图像外观线索和几何先验知识,动态融合多视图图像的特征。此外,PVNet集成3D点特征和多视图特征,以更好地识别联合3D形状。

深度估计的附加监督信号,可以加强深度估计的准确性,如光流和目标运动。DispNet是第一个将合成立体视频数据集的信息传输到真实世界深度估计的工作。此外,有工作采用一种具有生成性对抗损失的双模块域自适应网络(two-module domain adaptive network),从合成域迁移知识。一些方法采用辅助深度传感器来捕获准确的深度,如激光雷达,以协助深度估计。此外,一些方法引入曲面法线来帮助预测深度,因为深度受曲面法线决定的局部切平面约束。GeoNet提出了深度到法线(depth-to-normal)网络和法线到深度(normal-to-depth)网络,迫使最终预测遵循几何约束。此外,许多工作引入了传统方法(如SfM),产生一些稀疏但高质量的深度值,以协助模型训练。DepthHints使用一些现成的立体视觉算法来加强立体视觉匹配。

如图是传统单目深度估计方法和SurroundDepth的比较:


在自监督深度和自运动设置中,通过最小化像素光度重投影损失来优化深度网络F,其中包括SSIM度量和L1损失项:

此过程需要一个姿态网络G来预测It-》Is的相对姿态。具体而言,给定摄像头固有矩阵K,基于预测深度图,可计算It中任何像素p1在Is的相应投影p2。这样,根据投影坐标p2可以在Is中使用双线性插值创建合成RGB图像。这种基于重建的自监督范式在单目深度估计方法上取得了巨大进展,并可以直接扩展到多摄像头全环视深度估计。I的预测深度图和姿势可以写成:

相邻视图之间重叠将所有视图连接成一个完整的360度环境视图,其中包含许多有益的知识和先验知识,有助于理解整个场景。基于这一事实,构建一个联合模型,首先提取并交换所有周围视图的表征。在交叉视图交互之后,将多视图表征同时映射到最终的深度。此外,视图相关的自运动可以从预测的共同姿态(universal pose)和已知的外部矩阵中迁移得到。总之,深度和姿态预测可以表示为:

利用联合模型,不仅可以通过交叉视图信息交互提高所有视图的深度估计性能,还可以生成共同的自运动,从而使用相机外参矩阵生成尺度-觉察预测。

如图是SurroundDepth网络概览图:网络F可以分为三部分,即,共享编码器E、共享解码器D和多个交叉视图Transformer(CVT)。给定一组周视图像,编码器网络首先并行提取其多尺度表征。与现有的直接解码学习特征的方法不同,其将所有视图的特征在每个尺度上纠缠成一个完整的特征,并进一步利用多尺度特定CVT,在所有尺度上执行交叉视图自注意。

CVT利用强大的注意机制,使特征图的每个元素能够将其信息传播到其他位置,同时吸收其他位置的信息。最后,将交互后的特征分离给N个视图,并将其发送给解码器D。

与单目深度估计不同,这个能够从摄像头外参矩阵中恢复真实世界的尺度。利用这些摄像头外参矩阵的一种简单方法是,嵌入到两个相邻视图之间的空间光度损失中。然而,发现深度网络通过空间光度一致性的监督无法直接学习尺度。为了解决这个问题,作者提出尺度-觉察的SfM预训练和联合姿态估计。

具体来说,用两帧SfM生成伪深度来预训练模型。预训练深度网络能够学习真实世界的尺度。此外,N个摄像头的时域自运动具有明确的几何约束。这里没有使用一致性损失,而是估计车辆的共同姿态,并根据外参矩阵计算每个视图的自运动。

如图所示:该工作利用从所有周围视图中提取的多尺度特征,将编码器和解码器之间的跳连接替换为交叉视图transformer(CVT)

首先使用沿深度可分离卷积(DS Conv,depthwise separable convolution)层将多视图特征总结为紧凑表征。然后构建Z交叉视图自注意层,充分交换扁平的多视图特征。在交叉视图交互之后,用DS Deconv(depthwise separable deconvolution)层来恢复多视图特征的分辨率。最后,构造了一个跳连接,将输入和恢复的多视图特征相结合。


SfM预训练的目的是从相机外参矩阵中探索真实世界的尺度。利用外参矩阵的直接方法是在两个相邻视图之间使用空间光度损失,即:

但实际上,这样做并不行。这个结论不同于FSM(“Full Surround Monodepth from Multiple Cameras“,arXiv 2104.00152,2021)得到的。实际上,在训练开始时,空间光度损失将无效,并且无法监督深度网络学习真实尺度。为了解决这个问题,采用SIFT描述子来提取对应关系。然后,用摄像头外参矩阵进行三角测量来计算尺度-觉察的伪深度。最后,用这些稀疏的伪深度以及时间光度损失来预训练深度网络和姿态网络。

如图所示即尺度-觉察SfM预训练:由于小重叠和大视角变化,传统的两帧运动恢复结构(SfM)会产生许多错误对应。通过引入region mask(定义图像Ii的左边1/3区域,图像Ii+1的右边1/3区域),缩小了对应关系的搜索范围,提高了检索质量。使用相机外参矩阵得到的极线几何可进一步过滤异常值。

这里一个点的外极线表示为:

在单目深度估计框架中,相对的摄像头姿态由PoseNet估计,PoseNet是一个编码器E-解码器D网络。因此,在多摄影头设置中,所有摄影头的姿态是为所有视图生成监督信号所必需的。一种直观的方法是分别估计每个姿态。然而,该策略忽略了不同视图之间的姿态一致性,这可能导致监督信号无效。为了保持多视点自运动的一致性,将摄像头姿态估计问题分解为两个子问题:共同姿态预测和universal-to-local变换。为了获得共同姿态P,我将N对目标和源图像一次馈入PoseNet G,并在解码器之前对提取特征进行平均。共同姿态可通过以下方式计算:

基于摄像头内参,由此计算各个摄像头姿态为:


实验结果如下:

本文仅做学术分享,如有侵权,请联系删文。

3D视觉工坊精品课程官网:3dcver.com

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战

15.国内首个3D缺陷检测教程:理论、源码与实战

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

SurroundDepth:自监督多摄像头环视深度估计相关推荐

  1. Depth by Poking:从自监督抓取学习深度估计

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 标题:Depth by Poking: Learning to Estimate Depth from ...

  2. 丰田研究院:自监督单目图像深度估计,数据和代码已开源

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:Vitor Guizilini 编译:McGL 自监督学习使得只使用视频作为训练数据就可以从单个 ...

  3. H-Net:基于无监督注意的立体深度估计

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 小黑导读 论文是学术研究的精华和未来发展的明灯.小黑决心每天为大家带来经典或者最新论文的解读和分享,旨 ...

  4. cvpr 深度估计_无监督单目视频深度估计中的uncertainty方法(CVPR#x27;20)

    Contribution 对11种使用uncertainty方法的全面评估 深度挖掘uncertainty对depth estimation起到的作用 提出一个新颖的self-teaching方法去m ...

  5. 鱼眼深度估计!环视近场感知系列之几何预测

    作者 | 王杰  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/584827087 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干 ...

  6. 无监督单目深度估计 Unsupervised Monocular Depth Estimation with Left-Right Consistency 论文方法分析

    最近在做深度估计相关的毕业设计,一般的基于深度学习单目深度估计算法都是基于监督学习的方法,也就是说我希望输入一张拍摄到的单目照片,将它通过卷积神经网络后生成一张深度图.在这个过程中我们就要求需要有大量 ...

  7. 学习笔记17--场景流之深度估计

    本系列博客包括6个专栏,分别为:<自动驾驶技术概览>.<自动驾驶汽车平台技术基础>.<自动驾驶汽车定位技术>.<自动驾驶汽车环境感知>.<自动驾驶 ...

  8. 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...

    1 使用普通摄像头进行深度估计 1.1 深度估计原理 这里会用到几何学中的极几何(Epipolar Geometry),它属于立体视觉(stereo vision)几何学,立体视觉是计算机视觉的一个分 ...

  9. 2019CVPR单目深度估计综述

    2019CVPR单目深度估计综述 Recurrent MVSNet for High-resolution Multi-view Stereo Depth Inference Geometry-Awa ...

最新文章

  1. SVN系列操作(二)svn不显示图标的解决方法
  2. 计算机简单游戏有什么用,简单又好玩的互动游戏 简单又好玩的互动游戏有哪些...
  3. HDU-简易版之最短距离(最短路)
  4. 福禄克网络VERSIV(威测)电缆认证系统实现ROI更大化
  5. c++ int转char*
  6. 2009年高考强人零分作文摘选
  7. 《联盟》读书笔记(三):如何协调员工与公司的目标和价值观
  8. 计算机网络安全运维管理工作总结,计算机设备日常运维工作总结
  9. Android 接入支付宝在手机未安装支付宝客户端的情况下掉不起支付宝sdk的h5页面
  10. 利用YOLOV5实现手语识别
  11. 鲲鹏devkit开发套件——编译调试工具介绍
  12. 华脉智联电力行业技术解决方案
  13. 新型多功能、高性能量子点,可以用于医学成像、量子计算
  14. 基于3dmax及Unity的虚拟博物展览馆
  15. element cascader组件动态加载数据
  16. 计算机双学位毕业设计选题,双学位毕业设计终于结束
  17. 2017奇虎360春招笔试编程
  18. 世嘉MD游戏开发【五】:显示Tile图块
  19. 解决ROS中rosdep init 网络地址无法访问
  20. 洛谷 P1169 题解

热门文章

  1. 【cs224n学习作业】Assignment 1 - Exploring Word Vectors【附代码】
  2. ANSYS Workbench远端位移边界条件的解析
  3. Qt绘制曲线图(基于qt画图QPainter)
  4. storm部署安装deploy
  5. mug网络用语_游戏术语
  6. python在Scikit-learn中用决策树和随机森林预测NBA获胜者
  7. linux重命名文件或文件夹(mv命令 rename命令)
  8. 【OpenCV】图像缩放
  9. C#基础代码笔记(五)
  10. 代谢组与转录组联合分析方法介绍