作者 | cocoon
编辑 | 3D视觉开发者社区
✨如果觉得文章内容不错,别忘了三连支持下哦😘~
文章目录
导读
ToF相机深度重建的过程中,总是存在着各种各样的影响因子导致误差,让使用者烦不胜烦。误差是不可避免的,但我们能够通过一些方法,尽可能减少其影响程度,以得到精度更加准确的结果。
在该篇文章中,作者提出了一种基于深度学习的MOM-MRM二阶法,验证其可以有效减少MPI、运动所带来的误差。如果你正在为误差所苦恼,那就快来读一读吧!
论文名称:
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相机向场景中所投射的正弦波信号可以表示为: g ( t ) = g 1 cos ( ω t ) + g 0 g(t)=g_{1} \cos (\omega t)+g_{0} g(t)=g1cos(ωt)+g0。假设场景静止,相机以及光源同时放置,那么像素接收到的信号则可以表示为:
s ( t ) = ∫ − ∞ t a ( τ ) cos ( ω t − 2 ω τ ) d τ s(t)=\int_{-\infty}^{t} a(\tau) \cos (\omega t-2 \omega \tau) d \tau s(t)=∫−∞ta(τ)cos(ωt−2ωτ)dτ
其中, a ( τ ) a(\tau) a(τ)是场景响应函数,即信号在时间 τ \tau τ接触到像素的信号。在一个理想的场景中,光只会被反射一次,且场景的相应是一个脉冲,即 a ( τ ) = a δ ( τ − τ 0 ) a(\tau) = a \delta(\tau - \tau_0) a(τ)=aδ(τ−τ0)。
飞行时间 τ 0 \tau_0 τ0可以直接被转换为深度。
一个零差(homodyne)的ToF相机对于同频率的、相位延迟的参考信号进行调制,即 b c o s ( ω t − ϕ ) bcos(\omega t-\phi) bcos(ωt−ϕ)。
相机的曝光时间往往被设置为 T > > 2 π / ω T >> 2\pi /\omega T>>2π/ω。
通过简单的三角函数,可以实现raw相关测量 i ψ , ω i_{\psi,\omega} iψ,ω的数学表达,即:
i ψ , ω = ∫ − T / 2 T / 2 s ( t ) b cos ( ω t − ψ ) d t ≈ a ( τ 0 ) b cos ( ψ − 2 ω τ 0 ) = a f ψ , ω ( τ 0 ) i_{\psi, \omega}=\int_{-T / 2}^{T / 2} s(t) b \cos (\omega t-\psi) d t \approx a\left(\tau_{0}\right) b \cos \left(\psi-2 \omega \tau_{0}\right)=a f_{\psi, \omega}\left(\tau_{0}\right) iψ,ω=∫−T/2T/2s(t)bcos(ωt−ψ)dt≈a(τ