还在烦恼ToF的误差问题?有人帮你找到解决方法了!

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

干货第一时间送达

ffb1c11b511ca51ddc878b2ae116a944.png

作者丨cocoon

编辑 | 3D视觉开发者社区

导读

ToF相机深度重建的过程中,总是存在着各种各样的影响因子导致误差,让使用者烦不胜烦。误差是不可避免的,但我们能够通过一些方法,尽可能减少其影响程度,以得到精度更加准确的结果。

在该篇文章中,作者提出了一种基于深度学习的MOM-MRM二阶法,验证其可以有效减少MPI、运动所带来的误差。如果你正在为误差所苦恼,那就快来读一读吧!

outside_default.png

目录

1. 概述

2. ToF相机模型

     2.1 理想的相机模型

     2.2 多路径效应的影响

     2.3 移动(Motion)的影响

     2.4 Kinect v2的特性

3. FLAT的数据集

4. 网络结构

5. 实验

     5.1 MPI纠正

     5.2 运动纠正以及消融实验

     5.3 Putting Everything Together

     5.4 方法限制

6. 结论

7. 参考文献

adbf60a23970aab7c61e71c65f4098b5.png

论文名称:Tackling 3D ToF Artifacts Through Learningand the FLAT Dataset

论文链接:https://openaccess.thecvf.com/content_ECCV_2018/papers/Qi_Guo_Tackling_3D_ToF_ECCV_2018_paper.pdf

数据及代码链接: https://research.nvidia.com/publication/2018-09_Tackling-3D-ToF

1  概述

场景移动,MPI以及sensor的噪声都会给基于ToF相机的深度重建带来误差。

作者提出了基于深度学习的MOM-MRM二阶法,对以上问题进行了同时的解决。

文章里还引入了一个名为“FLAT”的合成数据集,特指“Flexible Large Augmentable Time-of-flight”。该数据集共有2000次非理想情况下的ToF数据测量,并且允许不同相机硬件的模拟。

文章中使用Kinect 2相机作为baseline,展现了其在合成数据集以及真实数据上超过SOTA的能力。

2  ToF相机模型 

介绍ToF相机模型是为了证明:在理想情况下,基于ToF的重建过程是一个可微的过程。换句话说,整个重建过程是可微分的,那么也就是可以反向传播的。

此外,文章还通过数学表达展示了MPI对于深度重建的影响,这将有助于将整个任务进行数学化表达。

网络将直接针对于原始测量进行,其展开为相位之间,目的则是纠正MPI所引起的误差。

由于文章使用Kinect v2作为baseline,因此也会对于Kinect v2的硬件特性尽可能地进行描画。这有助于更好地进行数据模拟,尽可能减少模拟数据与真实数据之间的gap。

2.1

理想的相机模型

AMCW(Amplitude-Modulated Continuous-Wave)的ToF相机,向场景中所投射的正弦波信号可以表示为:  。

假设场景静止,相机以及光源同时放置,那么像素接收到的信号则可以表示为:  

  • 其中,  是场景响应函数,即信号在时间  接触到像素的信号。

在一个理想的场景中,光只会被反射一次,且场景的相应是一个脉冲,即  。飞行时间  可以直接被转换为深度。

一个零差(homodyne)的ToF相机对于同频率的、相位延迟的参考信号进行调制,即  。相机的曝光时间往往被设置为  。

通过简单的三角函数,可以实现raw相关测量  的数学表达,即: 

  • 其中,将  视作ToF相机函数。

已知单频率  以及  的相位  的Raw测量值,那么每一个像素的深度可以表示为:   

然而,由于多频测量(  )的需要,以及存在解调深度大于  的情况,不妨将频率  所对应的测量值标记为  ,则可进一步地将距离  改写为: 

 显然,由上式可见,我们很容易得到微分  ,也就是说,这个过程是完全可微可反向传播的。

2.2

多路径效应的影响

在多路径情况存在时,接触到像素的场景信号不再是一个脉冲。因此,相关测量的形式将被改写为:

当我们对不同频率  和不同相位  的正弦信号进行测量时,可以获得多通道的raw测量值。对于某一个像素的多通道测量值,我们可以将其视作在多维空间中的一个点。尽管难以通过理论分析对其进行建模,但是可以通过学习的方式来习得空间结构。

如果只有单频的话,准确识别MPI几乎是不可能的,因为MPI所导致的误差值与真实的测量值在一个域内。

而如果是多频的话,则会产生一个非线性的子空间,MPI所影响的值则不会在该子空间内。MPI问题可以被认为是真实测量的映射。

2.3

移动(Motion)的影响

真实场景很少会是完全静止的。由于物体相对于相机横向和轴向的运动,后续的相关测量  往往并不对齐。

此外,相对于相机轴向的运动还会进一步地对响应函数  产生影响。作者不考虑MPI问题,仅考虑单次反射的情况,会产生测量强度与距离平方成反比的情况。在室内试验中,发现这种情况对深度恢复会产生非常大的影响。

而其他由于运动所导致的blur和多普勒效应,几乎可以忽略不计。

2.4

Kinect v2的特性

Kinect v2是一个广泛应用的ToF相机,且其自带一个SDK(libfreenect2,简称LF2)。

我们仔细地研究了相机函数,shot噪声、vignetting、像素延迟这些特性,目的是尽可能进行准确仿真。

Kinect2使用了三个调制频率,每个调整频率测量了三个相位,共产生9个相机函数  。

为了对相机函数进行标定,作者仔细地对准光轴,使其垂直于朗伯校准平面。

在Kinect光源前放置一个光吸收管,以缩小光束发射角度,限制MPI。

将平面转换为一已知的距离:  ,并获得相对应的raw测量值  。

该raw测量值将接近于  。

在去除掉光照衰减  后,可以获得一系列的观测值。下图表现了三个相机函数的拟合示意图,其中红色和蓝色表示  ,绿色表示  。

4b985d7871c11ed0f0eb740cd5c6bba4.png

至于shot 噪声,假设每一个像素都独立于其他像素,从15个场景中获取数据,对于每一个raw相关值,都计算了其100次测量的平均期望值。对于每一个期望值,都收集了其噪声样本的经验分布,之后将用于仿真过程中的噪声数据生成。

3  FLAT的数据集

文章认为,一个理想的用于训练及验证ToF算法的数据集应当是大型的,且允许模拟不同的相机响应函数,允许MPI、shot noise以及运动,且允许raw测量值的体现。

因此,作者制作了“FLAT”数据集,该数据集中包含了2000个场景响应函数  。

这一段主要介绍了如何对FLAT数据进行仿真,得到一个尽可能近似于Kinect2的仿真数据集,且能够模拟shot噪音、MPI 等。

4  网络结构

网络包括两个模块,如下图所示:

1aee90301ec72900deb22faf0908e98d.png

第一个模块称之为MOM,是Motion Module的缩写,整体是一个编码-解码的结构(受FlowNet启发),其目标是输出一个velocity图,进而将Kinect获取的9张raw图进行对齐。

具体来说,MOM对不同的相机函数所测量得到的raw相关进行处理,模块输入为9张没有对齐的raw图,同时输出8张光流图。

另一个模块是MRM,是Multi-Reflection Module的缩写,这个模块基于kernel-predicting network(简称KPN)所设计。KPN的具体结构见Mildenhall等(2018)的工作。

MRM为每一个像素输出9个空间各异的核,每一个核都与局部的raw测量有关。输出9个的目的是生成一个干净的raw测量,而所谓的“干净”是指去除掉shot和MPI噪声。

表一体现了基础DNN结构不同变种的细节:

b74c7b29b31f302cafcff299a7239503.png

当使用MRM模块时,修改了LF2中的双边滤波部分,因为MRM已经执行过去噪点的过程。

MRM的输入是MOM的输出。训练的损失函数是raw相关测量的L2损失函数。

此后,使用L2深度损失函数对MRM进行finetune。

5  实验

5.1

MPI纠正

首先,需要对MRM模块去除MPI的效果进行评估。

  • 对比的baseline有LF2、DToF、Phasor。

  • 对比的深度范围在[1.5m, 5m]。

  • 由于Phasor对shot noise未做处理,因此在其生成深度图后再施加双边滤波进行去噪处理。

从下图结果中可见,DToF所产生的深度图精度要差一些。此外,我们注意到,LF2的中位误差是有偏的,这是因为LF2几乎没有对MPI进行处理。而这种有偏情况,或者说MPI所造成的误差,有效地被MRM减轻。

总的来说,该方法接近于Phasor的精度,且不需要额外的硬件设备来制造非常高的频率(比如1063.3MHz以及1034.1MHz)。事实上,MRM所需要的硬件是Kinect2,频率低于50MHz。

78032a752f2fd83fb1421501090823a9.png

b9d0c74398480d2ccc94009e945c241b.png

下图则展示了在FLAT数据集中典型场景各个方法的表现。

  • 其中,Phasor以及MRM在去除MPI上的效果远超过其他方法。

8f40b9100fcc12f2376535b7b6fbeb3d.png

我们还可以注意到,高频对于噪声来说非常敏感。

在实践中,使用了双边滤波对Phasor的输出进行处理。尽管这有效地减少了随机噪声,却无法去除系统噪声(如由于物体移动造成的噪声),大大地增加Phasor的误差。相比之下,MRM则显得稳健得多。

此外,对于一些在真实场景下墙角的情况,MRM也能够很好的处理,这在后续的实验中将会介绍。

5.2

运动纠正以及消融实验

作者通过消融实验,对MOM以及MOM-MRM在FLAT测试集上的效果进行了评测。

文章中比较了LF2、MOM以及MOM-MRM的深度重建效果,三者均采用了LF2的掩膜方式对不可靠的点进行滤除。

在某种程度上,我们可以将重建像素比例这一指标用于评测体移动对结果的影响程度。重建像素比例如下图所示:

4afab082acad70d79a60de94455beca0.png

MOM相对于LF2来说,似乎深度重建精度略高一些,但这并非其最大的优势之处。

其主要的优势在于:去除那些不可靠的像素,从而使得重建像素比例从93.56%提升至95.50%。在目视层面上,直观体现为补上了深度图上有洞的地方,使得深度图看起来更加的完整。

而MRM则进一步地提升了深度图的精度,以及重建完整性,示意图如下:

651f92a629f28490569e66d35d07443e.png

5.3

Putting Everything Together

同方法在合成数据集以及真实数据集上的表现为:

ea048df5ab3439ec43f788da5e40992a.png

ae4ec51d95be356baaaf3138cc597f46.png

文章中认为,这样的DNN架构是经过了一番思考论证的,前人已然尝试过许多种架构,包括直接输出深度图的端到端的结构(Su等人,2018)。

然而作者发现,直接输出深度图的结构的误差要大于其DNN结构。究其原因,端到端的结构需要网络学习从raw观测到深度的非线性映射,而不是利用已知的物理事实进行设计。

在下图中,进一步体现了MOM-MRM相对于LF2等方法的优势:

771f3174f9a85603e332bd5928115d1c.png

5.4

方法限制

  1. MRM的感受野为  ,主要强调短距离的MPI纠正;而对于长距离的MPI来说,其应对能力相对弱一些。

  2. 数据集不包括镜面反射的物体。因此,对于镜面反射的物体来说,无法进行深度估计。

  3. MOM无法对很大的运动进行处理,具体来说,对于遮挡而言并无效果,只是尽可能地减少运动伪影。

  4. 仅在室内光的情况下,对噪声进行仿真。

6  结论

可知,运动、MPI和散粒噪声对ToF成像深度重建的精度有着显著影响。

文章证明了,基于ToF相机的Raw测量数据,可以利用深度学习来减弱运动和MPI所带来的负面影响。

7  参考文献

[1] Xiang, L., Echtler, F., Kerl, C., Wiedemeyer, T., Lars, hanyazou, Gordon, R., Facioni, F., laborer2008, Wareham, R., Goldhoorn, M., alberth, gaborpapp, Fuchs, S., jmtatsch, Blake, J., Federico, Jungkurth, H., Mingze, Y., vinouz, Coleman, D., Burns, B., Rawat, R., Mokhov, S., Reynolds, P., Viau, P., Fraissinet-Tachet, M., Ludique, Billingham, J., Alistair: libfreenect2: Release 0.2 (April 2016)

[2]  Su, S., Heide, F., Wetzstein, G., Heidrich, W.: Deep end-to-end time-of flight imaging. In: The IEEE Conference on Computer Vision and Pattern Recognition (CVPR). (June 2018)

[3] Mildenhall B, Barron J T, Chen J, et al. Burst denoising with kernel prediction networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 2502-2510.

*注:文章内图表顺序遵循原始文献标注,与实际略有出入

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

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

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视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

10860814093fe35bfc173d2b9f7d7ea8.png

▲长按加微信群或投稿

c15e26fad8f68a2709bed1d00223ec97.png

▲长按关注公众号

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

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

a86769f5769fd2c4068752464ed40a52.png

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

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值