作者‖ flow 毕业于中国科学院大学,人工智能领域优质创作者
编辑‖ 3D视觉开发者社区

导语:

本文作者提出利用多帧影像可辅助单目结构光训练,在资源有限的情况下,可使用融合的视差图调整单帧视差估计网络。希望能对基于深度学习的单目结构光估计相关研究人员有一定参考帮助。


DepthInSpace: Exploitation and Fusion of Multiple Video Frames for Structured-Light Depth Estimation

论文地址:
https://paperswithcode.com/paper/depthinspace-exploitation-and-fusion-of

附件链接 :https://openaccess.thecvf.com/content/ICCV2021/supplemental/Johari_DepthInSpace_Exploitation_and_ICCV_2021_supplemental.pdf

数据链接:
https://www.idiap.ch/paper/depthinspace(注:尽管论文提供了所谓的数据链接,但目前暂未更新。)

0. 概述

我们知道,带有结构光相机的深度传感器,普遍配备的是传统的算法,比如说kinect v1采用的块匹配算法,Intel RealSense采用的半全局匹配算法。相对来说,深度学习在该领域中的蔓延暂时还是比较少的。

UltraStereo(CVPR 2017) 通过对影像块进行二值编码,来实现低复杂度的匹配机制;HyperDepth(CVPR 2016) 将深度估计问题视作分类问题,进而通过机器学习的方式,具体来说是级联的随机森林对其进行求解,然而,HyperDepth获取GT的方式是:从高精度的传感器中获取,或者从其他的立体匹配方法获得,换句话说,HyperDepth使用的是有监督的方式。至于connecting the dots(CVPR 2019), 则应用了**ActiveStereoNet(ECCV 2018)**中的光度损失函数,并提出了一个边缘检测的网络来应对edge-fattening问题。
该文在connecting the dots的基础上,进一步地做出以下几个贡献:

1.其模组可以采集环境光影像。进而,利用序列环境光影像进行光流预测,从而辅助单目结构光的训练;
2.融合多帧,进而获得边缘更清晰,伪影更少的视差图;
3.在资源有限时,可以使用融合的视差图来finetune单帧的视差估计网络,可以获得非常好的效果。

1.方法

以下将connecting the dots 简称为CTD,该文所提出的DepthInSpace模型简称为DIS。

DIS模型在CTD模型的基础上进行改进。CTD模型使用了两个分离的网络分别用于视差估计以及边缘检测。其中,用于边缘检测的网络,由环境光(ambient)影像(以下将称为泛光图)进行程度较弱的监督。然而,DIS认为,泛光图的抓取非常的简便,而且完全可以起到更大的作用,仅仅用于边缘检测有些浪费信息,为什么不再对其进行充分利用呢?因此,DIS进一步地,利用泛光图来进行光流的预测,从而提供更多的信息。

对于DIS而言,下表为其几个版本的模型简称及说明:

模型简称 全称 说明
DIS-SF DepthInSpace Single-Frame 见全称
DIS-MF DepthInSpace Multi-Frame 见全称
DIS-FTSF DepthInSpace Fine-Tuned Single-Frame 使用DIS-MF的结果作为伪GT,进而再引入一个损失函数,对DIS-SF进行所谓的finetune。

出于实用性的考虑及个人理解的限制,在本节中,将相对重点介绍DIS-SF的模型结构以及损失函数,着少量笔墨在DIS-MF中。

1.1 DIS-SF

DIS-SF网络具体的模型结构如下:

对于某两帧,不妨设这两帧编号为iii与jjj ,其对应的泛光图以及实时图则分别为AiA_iAi​,IiI_iIi​,AjA_jAj​,IjI_jIj​,设参考散斑为PPP。

在训练过程中,首先,实时图IiI_iIi​以及IjI_jIj​将被喂入DispNet,进而得到与其对应的视差图,命名为DiD_iDi​,DjD_jDj​ 。同时,对于两帧泛光图AiA_iAi​以及AjA_jAj​,则被喂入用于光流预测的LiteFlowNet。光度损失LphL_{ph}Lph​以及平滑损失LsL_sLs​将分别作用于单独的影像上。而对于多视角损失LmvL_{mv}Lmv​,由于其目的是为帧与帧之间施加连续性,因此,多视角损失作用于两帧之间。

在推理过程中,DispNet将接收一张单独的实时图,而后估计出其对应的视差图作为输出。

自监督的网络,往往通过设计精巧的损失函数进行限制,具体来说,DIS整体的损失函数设计为:

我们现标注D为视差图, I~\tilde{I}I~为输入影像的LCN,P 为同样做了LCN处理的参考图,从而,更为具体的损失函数说明可见下表:


对于这些损失函数,我们很自然会好奇哪个所起的作用会大些,在DIS提供的附录中,有loss函数的消融实验结果,具体如下表所示:

就数值上来说,不难看出LsL_{s}Ls​起了非常大的作用。

1.2 DIS-MF

DIS-MF则是将同一个场景下的其他帧的信息转至一帧上,进而更为充分地利用“多视角”的影像信息,得到更为准确的视差。其中,假设每一帧都有对应的初始视差图,而我们融合多帧信息的目的就是优化这些初始的视差图,在这里,初始的视差图可以由DIS-SF模型提供得到。文章认为,融合多帧影像信息的方式对于结构光的这种设定来说,应当是更为有效的,因为结构光深度估计的结果优劣,很大程度上取决于散斑在物体上的呈现。

DIS-MF的具体网络结构如下所示:

对于DIS-MF的训练,直接将其替换DIS-SF中独立的DispNet即可。损失函数与其他训练策略与DIS-SF一致。在DIS-MF中更为具体的公式表达以及fusion block等介绍,推荐读者去精读原文,这里则不做解读。

2. 实验结果

2.1 数据

用于验证模型效果的数据集为三个合成数据集 以及一个真实数据集。合成数据集的制作方式与CTD的一致,即基于shapenet模型的仿真,自然,其中的相机模型参数需要调整为与实际的硬件情况一致。

三个合成数据的投影散斑分别为:
1.Kinect 散斑
2.该文的理论散斑
3.真实模组获取的散斑

对于每一组合成数据,均有8192个sequence用于训练,512个sequence用于测试,其中,每一个sequence都包含了同一个场景的4对实时图和泛光图。不同的散斑形状会导致不同的深度表现,通常来说,散斑越密集,深度表现越好。不过在实际情况中,散斑的可选择性却往往受限于硬件。为了验证模型在真实数据上的泛化效果,文章使用真实的模组在4个不同的场景中,抓取了共148个sequence。用于抓取的模组可以通过手动开关投影,进而便捷地获取散斑图与泛光图。在这148个sequence中,划分出130个sequence进行训练,18个sequence用于测试。显然,真实场景不像合成数据一样能够便捷地获取GT,因此文章使用3D 扫描仪对真实场景进行扫描,而后再通过 ICP以及Ball-Pivoting等方式得到3D模型以及相机外参,进而得到GT。

2.2 与其他方法的对比实验

类似于双目视觉的验证指标,在对比试验中也采取bad(x)的指标,只不过更关注亚像素精度,所以主要关注的像素误差为o(0.5),o(1)等,具体来说,这里所关注的指标为o(0.5),o(1),o(2),o(5)。

相对来说,我们更关注DIS-SF相对于CTD之类的方法的优劣,不难看出,其在真实数据的泛化中更具优势一些,而对于真实数据的泛化,也正是多数研究人员的兴趣所在。个人认为,如果想要走自监督的路线,该篇文章还是有很大的参考意义。

参考文献

[1] Fanello, S. R. , Valentin, J. , Rhemann, C. , Kowdle, A. , & Izadi, S. . (2017). UltraStereo: Efficient Learning-Based Matching for Active Stereo Systems. 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE.
[2] Riegler, G. , Liao, Y. , Donne, S. , Koltun, V. , & Geiger, A. . (2019). Connecting the Dots: Learning Representations for Active Monocular Depth Estimation. 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE.
[3] Fanello, S. R. , Rhemann, C. , Tankovich, V. , Kowdle, A. , & Izadi, S. . (2016). HyperDepth: Learning Depth from Structured Light Without Matching. Computer Vision & Pattern Recognition. IEEE.
[4] Zhang, Y. , Khamis, S. , Rhemann, C. , Valentin, J. , Kowdle, A. , & Tankovich, V. , et al. (2018). Activestereonet: end-to-end self-supervised learning for active stereo systems.

版权声明:本文为奥比中光3D视觉开发者社区特约作者授权原创发布,未经授权不得转载,本文仅做学术分享,版权归原作者所有,若涉及侵权内容请联系删文。

3D视觉开发者社区是由奥比中光给所有开发者打造的分享与交流平台,旨在将3D视觉技术开放给开发者。平台为开发者提供3D视觉领域免费课程、奥比中光独家资源与专业技术支持。点击加入3D视觉开发者社区,和开发者们一起讨论分享吧~

或可微信关注官方公众号3D视觉开发者社区,获取更多干货知识哦。

ICCV2021 | DepthInSpace:多帧影像信息在单目结构光深度估计中的应用相关推荐

  1. DepthInSpace:多帧影像信息在单目结构光深度估计中的应用(ICCV2021)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者| flow,3D视觉开发者社区签约作者,毕业于中国科学院大学,人工智能领域优质创作者. 编辑|  ...

  2. 一文详解单目结构光参数法

    单目的结构光标定有两种方法: 将投影仪当做逆相机 投影仪建模为新的模型 我们先介绍第二种. 单目结构光参数标定法 该方法将投影仪建模为新的模型(逆向针孔模型),直接将投影仪的标定简化为8个未知参数的标 ...

  3. 单目结构光精度优化提高

    最近将单目三维重建的算法终于集成起来了,得益于一个项目的需要才把它完善好.现在可以当做一个比较成熟 的软件产品来使用,并且做了一些优化精度更提高了一些,尤其在细节的表现上比双目的效果更好,如下图所示. ...

  4. 高精度单目结构光三维重建

    之前做了一个基于单目结构光的三维重建算法,主要原理参考我的单目结构光三维重建.上次对精度的验证主要是在130w相机的基础上进行的,其精度大概在0.05mm左右(还是参考上面的链接).这个精度其实也还算 ...

  5. (结构光)单目+结构光三维重构总体结构

    博主是那种动手能力较差的人(超级容易踩坑,一个坑踩超级久),独自搭建一个单目+结构光系统是真的挺挑战的. 在自己做的过程中,最让人心累的就是,我结果不好的话,会认为是投影仪不够好才标定出问题的bula ...

  6. 单目结构光——Micro deep learning profilometry for 3D surface imaging 复现

    原理 监督集构造 由12步相移获得的包裹相位如下图所示:    存在两个情况: 一是右上角质量比较差,出现很多噪点:二是相位截断处的质量不高,边界不整齐. 调整思路1: 1)增强亮度 2)换成32步相 ...

  7. 达飞鹏—光栅精密三维测量模型原理推导(单目结构光)

    达飞鹏-光栅精密三维测量测模型推导 系统模型 测量原理 投影坐标系下相位与三维坐标关系 投影仪与相机的关系 相机坐标系三维点与相机的关系 相机坐标系下三维坐标推导表示 实验 相机标定 相位与三维点标定 ...

  8. 半并行深度神经网络(SPDNN)混合架构,首次应用于单目相机的深度

    摘要:近年来,深度神经网络应用于广泛的问题.在这项工作中,卷积神经网络(CNN)应用于从单个摄像机图像(单眼深度)确定深度的问题.设计八个不同的网络来执行深度估计,每个网络适合于特征级别.具有不同池大 ...

  9. 【今晚七点】:单目3D人体姿态估计的挑战和探索

    点击上方"LiveVideoStack"关注我们 单目3D人体姿态估计(aka. 3D HPE)在视频动作分析.计算机图形学(CG)等领域有广泛的应用场景,同时,由于无需复杂的人体 ...

最新文章

  1. 计算机基础课程教学创新,【计算机基础论文】大学计算机基础课程教学创新探讨(共5359字)...
  2. 212页PPT详解MEMS微传感器的工作原理(深入全面!)
  3. python开发微信小程序-Python 开发者的微信小程序开发实践
  4. 国务院办公厅关于2022年部分节假日安排的通知
  5. python 多线程为什么鸡肋?
  6. 总结出来的一些ASP.NET程序性能优化的注意事项[不断补充]
  7. 智能家居中语音识别算法研究_语音识别研究获进展
  8. 【Python】处理 selenium.common.exceptions.WebDriverException 报错问题
  9. 五一四天假公布后携程机票大涨价 官方如此回应
  10. 盘口的买一是卖股票还是买股票?
  11. hibernate fetch属性
  12. hdu 2544(最短路)
  13. 好用家庭收支管理 1.0.20130204绿色免费版
  14. 如何使用U盘制作苹果系统启动盘
  15. xp启用计算机共享打印机,Win7共享XP打印机设置方法【win7不能共享xp打印机】解决方法...
  16. java 农历公历转换_java 版本 农历 公历 转换
  17. delphi 与 Excel数据交换
  18. Spring中Environment的使用
  19. R语言置信区间计算(confidence interval)、计算比例值对应的置信区间、为比例值构建95%执行区间、使用glue包把最终结果以标准格式输出
  20. 《辩证行为疗法》精华部分 + 我的理解

热门文章

  1. Markdown转换HTML
  2. vite使用xlsx-style
  3. 禁用主板报警 禁用主板报警 解决win8mysql权限的问题
  4. CodeForces-608E(Marbles)
  5. Docker容器化技术入门
  6. java实现电影购票项目(简单代码实现)
  7. 快手小筷子机器人_小筷子app官方版下载-快手控场机器人小筷子app下载v1.0.0安卓版_289手游网...
  8. 通往财富自由之路详细笔记(12)
  9. 华为交换机S5700升级软件版本
  10. [luogu1402]酒店之王——最大流