概述

关于ToF传感器的真实数据的深度估计,在传统方法中使用成体系的pipeline对数据进行处理,整个过程中需要考虑到的因素很多,是一套精细又有些繁冗的过程。而《Joint Depth and Normal Estimation from Real-world Time-of-flight Raw Data》这篇文章则采用了深度学习端到端的方式,以ToF相机的Raw数据作为输入,深度和法向图作为输出,试图构建一个优雅的流程。

我们知道,ToF相机的真实数据GT并不好获取,在许多相关工作中,都采用了合成数据的方式,然而,采用合成数据,便难以避免与真实数据之间存在鸿沟的问题。针对该问题,该文章通过在机械臂上绑ToF相机和工业立体相机的方式,以工业立体相机数据所得到的三维点云作为GT,采集了超过2500张真实数据,构建了一个命名为ToF-100的数据集。至于网络中比较有意思的创新点,则正如文章名字所体现的“joint Depth and Normal…”,即深度与法向图的联合优化。引入法向图的原因是,文章认为法向图某种程度上是高频信息的一种体现,可以更好的帮助网络学习到漂亮的深度图。

论文链接:https://arxiv.org/pdf/2108.03649.pdf

代码链接: https://github.com/hkustVisionRr/JointlyDepthNormalEstimation
(实际上代码并不存在)

0. 数据

采集了超过2500张真实数据,采集方式见下图:

采集的真实数据与其他已有的ToF数据的对比如下表所示:

下图则为ToF-100数据集中采集内容的示意图:

预处理

1. 方法

输入是多通道的影像,其来源为ToF raw data解码的不同相位的偏移量,设为 I 1 − 8 {I_{1-8}} I18。以及ToF传感器提供的置信度和粗深度图。

过程中有三个网络,先分别走raw2depth和raw2normal,然后再联合过refinement网络。

1.1 raw2depth

使用U-Net作为骨干网络。由于不对齐以及输出的raw data和GT深度图之间的不匹配,简单的L1或L2损失会导致深度图的模糊。因此设计了一个分别在2D和3D空间都作用的损失函数,在2D空间使用smoothL1空间,在3D空间使用了鲁棒Chamfer损失。

  • reweighted smoothed L1:

    期望通过error map来重新估计深度图,或者说通过置信度重新估计深度图。假设 e p , d p , d p ~ e_p,d_p,\tilde{d_p} ep,dp,dp~分别为对应的误差,预测的深度以及真实的深度,那么reweighted smoothed loss 可以表示为:

    ℓ r s = { ∑ p λ 2 ∣ d p − d ~ p δ ∣ 2 if  ∣ d p − d ~ p ∣ < δ ∑ p λ ( ∣ d p − d ~ p δ ∣ − 1 2 ) otherwise  \ell_{r s}=\left\{\begin{array}{cc}\sum_{p} \frac{\lambda}{2}\left|\frac{d_{p}-\tilde{d}_{p}}{\delta}\right|^{2} & \text { if }\left|d_{p}-\tilde{d}_{p}\right|<\delta \\\sum_{p} \lambda\left(\left|\frac{d_{p}-\tilde{d}_{p}}{\delta}\right|-\frac{1}{2}\right) & \text { otherwise }\end{array}\right. rs=p2λδdpd~p2pλ(δdpd~p21)ifdpd~p<δotherwise

    其中 λ = d ~ p e p + ϵ , ϵ = 0.001 \lambda=\frac{\tilde{d}_{p}}{e_{p}+\epsilon}, \epsilon=0.001 λ=ep+ϵd~p,ϵ=0.001δ \delta δ是阈值,在此设置为20。

  • Robust Chamfer loss:

    设x和y是对应的在ICP匹配过程后的对应点,则Robust Chamfer loss为:

    ℓ c h = ∑ x ∈ P min ⁡ y ∈ Q ∥ x − y ∥ 2 2 + ∑ y ∈ Q min ⁡ x ∈ P ∥ x − y ∥ 2 2 \ell_{c h}=\sum_{x \in P} \min _{y \in Q}\|x-y\|_{2}^{2}+\sum_{y \in Q} \min _{x \in P}\|x-y\|_{2}^{2} ch=xPyQminxy22+yQxPminxy22

    鲁棒性通过jittering实现,具体地,对由预测深度图而恢复的点云沿着xyz轴,以及前后共5个方向移动一厘米,加上本身恢复的点云,共有6个点云。对这六个点云都求取Chamfer损失,并取最小的损失值作为鲁棒的Chamfer损失。

1.2 Raw2normal

以ToF raw data、置信度、ToF 传感器的深度作为输入,通过U-Net生成法向图。

  • Cosine embedded loss: ℓ cos ⁡ = 1 − n 1 ⋅ n 2 ∥ n 1 ∥ ∥ n 2 ∥ \ell_{\cos }=1-\frac{\mathbf{n}_{1} \cdot \mathbf{n}_{2}}{\left\|\mathbf{n}_{1}\right\|\left\|\mathbf{n}_{2}\right\|} cos=1n1n2n1n2x

学习两个向量之间的角度相似性。

得益于ToF-100的高分辨率,可以直接通过网络得到高分辨率的法向图。

1.3 joint refinement

深度图和表面法向有着紧密的几何关系,表面法向可以由深度计算得到,也可以反过来用于帮助优化深度图(因为表面法向揭示了高频信息)。

类似于GeoNet,使用了一个交互(深度到法向、法向到深度)的refinement过程。

2 实验

  • 深度图效果:

  • 法向图效果:

  • 消融实验:

  • MPI效应消除分析:

使用双频ToF作为输入,且GT深度是由立体相机得到的,在此几乎不存在MPI的问题,网络恢复效果看起来也是可以恢复细节的。

  • 噪声消除分析:

在传统流水线中,噪声的消除基于随机的规则与假设,这在接收信号遭遇强度和场景变化时假设并不成立,这也是导致在低反射率区域噪声大量存在的原因。

不同于传统流水线,该方法直接通过网络来从raw data到高分的深度图,并不存在假设失效的问题。

相对于ToF的深度图来说,网络得到的深度图在平面物体上的表现更为光滑:

采取了两个方式来减少噪声的影响:

  • 对于shot噪声,取了raw 测量的10个shot;
  • 对于随机噪声,去了10次shot的平均深度作为GT深度。

参考文献

  • GeoNet:

Xiaojuan Qi, Renjie Liao, Zhengzhe Liu, Raquel Urtasun, and Jiaya Jia. GeoNet: Geometric neural network for joint depth and surface normal estimation. In CVPR, 2018. 2, 5

联合深度以及法向图优化的ToF深度估计:Joint Depth and Normal Estimation from Real-world Time-of-flight Raw Data相关推荐

  1. 深度学习将灰度图着色_通过深度学习为视频着色

    深度学习将灰度图着色 零本地设置/ DeOldify / Colab笔记本 (Zero Local Setup / DeOldify / Colab Notebook) "Haal Kais ...

  2. SLAM | 使用三维位姿图优化减少单目视觉里程计(3D Visual Odometry)定位轨迹的漂移(附源代码)

    ===================================================== github:https://github.com/MichaelBeechan CSDN: ...

  3. AI System 人工智能系统 TVM深度学习编译器 DSL IR优化 计算图 编译 优化 内存内核调度优化 DAG 图优化 DFS TaiChi 函数注册机 Registry

    DSL 领域专用语言 TVM深度学习编译器 AI System 人工智能系统 参考项目 TaiChi 三维动画渲染物理仿真引擎DSL TVM 深度学习DSL 密集计算DSL LLVM 模块化编译器 编 ...

  4. 论文简述 | 融合关键点和标记的基于图优化的可视化SLAM

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 摘要 同步定位与建图在移动机器人自主导航中起着重要的作用.大多数视觉SLAM方法使用关键点进行跟踪 ...

  5. 深度学习在美图个性化推荐的应用实践

    导读:美图秀秀社交化的推进过程中,沉淀了海量的优质内容和丰富的用户行为.推荐算法连接内容消费者和生产者,在促进平台的繁荣方面有着非常大的价值 .本次分享探讨美图在内容社区推荐场景下应用深度学习技术提升 ...

  6. 深度学习 占用gpu内存 使用率为0_深度解析MegEngine亚线性显存优化技术

    作者 | 旷视研究院 编辑 | Linda 基于梯度检查点的亚线性显存优化方法 [1] 由于较高的计算 / 显存性价比受到关注.MegEngine 经过工程扩展和优化,发展出一套行之有效的加强版亚线性 ...

  7. 深度学习自动编译和优化技术调研

    深度学习自动编译和优化技术调研 转自:https://moqi.com.cn/blog/deeplearning/ 作者:墨奇科技全栈开发 在墨奇科技,我们需要将一些包含深度神经网络(DNN)的 AI ...

  8. 深度解读最流行的优化算法:梯度下降

    深度解读最流行的优化算法:梯度下降 By 机器之心2016年11月21日 15:08 梯度下降法,是当今最流行的优化(optimization)算法,亦是至今最常用的优化神经网络的方法.本文旨在让你对 ...

  9. 《Kinect应用开发实战:用最自然的方式与机器对话》一3.5 从深度图像到骨骼图...

    3.5 从深度图像到骨骼图 现在Kinect通过红外摄像头已经可以看到三维的世界了,下一件事就是分辨出视野中可能是人体的移动物体,就像人眼下意识地聚焦在移动物体上. 这个过程非常重要,下面重点探讨如何 ...

最新文章

  1. 手动绑定数据到DatList并实现编辑,删除,取消···
  2. GDCM:gdcm::Rescaler的测试程序
  3. ajax如何解决浏览器缓存问题
  4. spring boot与spring cloud版本匹配关系
  5. Android_内存泄露
  6. Neural Volumes Rendering(一)
  7. 超边际分析不能用计算机,一种基于超边际分析的分布式计算资源分配方法-Journalof.PDF...
  8. mirdeep2使用笔记
  9. linux sata硬盘热交换,学员原创-杨欢最详细西数硬盘热交换流程
  10. java环境变量的作用和含义_java环境变量的配置及各环境变量的含义 | 学步园
  11. 计算机启动很慢,win7开机慢解决方法
  12. 从校园到职场 - 谈谈艺多不压身
  13. P1425 小鱼的游泳时间
  14. Redis 配置开机自动启动
  15. 位操作符左移问题(<<)如果char类型左移后位数超出一字节如何打印?
  16. camera相关术语
  17. 使用selenium爬取智联招聘
  18. 跨国引入强势技术 安全行业又添生力军
  19. 哪种类型是python不支持的_Python不支持以下哪种数据类型?
  20. 使用 Box2D 做一个 JansenWalker 机器人

热门文章

  1. Box2D C++ 碰撞
  2. 写出工控机商用计算机plc,plc和工控机的区别
  3. 铁打的平台,流水的主播
  4. PPT中超好用的快捷键
  5. 计算机读卡器突然无法识别,读卡器突然读不出来是怎么回事 有什么解决方法 - 驱动管家...
  6. android 10.0 SystemUI导航栏默认背景色的修改
  7. ARM架构处理器全解析
  8. 中国石油大学(北京)-《操作系统》第一次在线作业
  9. 单片机(二):3个IO扩展n*8个IO,基于74hc595与74hc165的8x8矩阵键盘
  10. 知识产权(零)——专利检索概论