CalibNet:Geometrically Supervised Extrinsic Calibration using 3D Spatial Transformer Networks阅读理解

CalibNet:Geometrically Supervised Extrinsic Calibration using 3D Spatial Transformer Networks

无目标标定的话,需要考虑多个传感器的检测范围,因为有目标标定时,检测范围即为标定板位置区域,但无目标时,检测范围的问题如何解决

特点:

  1. 不需要标定板,标定板会增加很多人工量
  2. 降低环境改变和振动的影响
  3. 自动和在线标定技术
  4. 不需要精确地参数初始化
  5. 不需要运动估计:ego-motion
  6. 没有直接将标定参数作为训练Loss,而是点云的几何和相机投影的一致性;
  • 需要研究,什么意思

文献阅读总结

有目标标定:

Automatic camera and range sensor calibration using a single shot(2012)需要较多的标定板
Automatic extrinsic calibration for lidar-stereo vehicle sensor setups(2017),Accurate calibration of lidar-camera systems using ordinary boxes(2017)
需要较多的人工作业,且超参数调节较为麻烦

无目标标定:

Automatic online calibration of cameras and lasers.(2013)无目标标定较早的文献之一,基于一个假定:激光雷达在深度上的不连续性,在图像上反应为一个角点。
Automatic targetless extrinsic calibration of a 3d lidar and camera by maximizing mutual information(2012),最大化相机和激光雷达的互信息,相机提供图像的点强度与点云的反射率强度。
以上两个方法:尽管这些假设即使在存在测量噪声的情况下也成立,但是公式化的成本函数只是局部凸出的,因此依赖于良好的初始化来使优化收敛。
Motion-based calibration of multimodal sensor arrays(2015)
上文方法不依赖于外部的任何初始化,也不需要传感器的任何重叠视场。 但是,他们仍然需要大量数据和良好的运动估计才能获得准确的结果,这限制了它们在离线情况下的适用性。
深度学习技术应用:
Regnet: Multimodal sensor registration using deep neural networks
第一篇应用深度学习技术于标定问题中,尽管可行且实时,但对于几何问题没有考虑几何信息。由于没有考虑几何形状,每次相机内参数变化时外参数都需要重新标定

CalibNet基于如下两篇文章

Unsupervised learning of depth and ego-motion from video(2017)
Undeepvo: Monocular visual odometry through unsupervised deep learning(2017)
尝试通过减少未对准图像和目标深度图之间的密集光度误差和密集点云距离误差来解决该问题。虽然我们将变换后的深度图用作目标,但这种图可以通过任一个立体重建方法找到并,并用于训练。 此外,在训练中应用空间变换时,我们的模型仅需要相机内参数。因此,任何经过内部校准的摄像机系统都可以使用我们的体系结构进行外部校准

文章方法介绍

A 网络结构:

数据输入

点云数据、同时刻的单目相机数据、相机内参数
点云首先在预处理过程中转化到稀疏的深度图。由于标定的初始化参数不正确,可以看到错误的投影
激光雷达投影点和相机点归一化(normalize)
利用一个5*5的窗口对稀疏投影图进行最大值池化,以创建半密度深度图

架构细节

网络结构主要包含两个不对称分支;
针对RGB图像,输入到ResNet-18网络中,
针对点云投影,输入到Depth ResNet网络中,和ResNet-18网络类似,但每一个阶段的卷积核数量为一半,
与Regnet: Multi-modal sensor registration using neural networks文类似,Depth ResNet网络在特征提取上有优势
对RGB输入使用预训练的权重则并非从头开始学习相关参数。 但是,由于深度图的参数学习是从头开始学习的,因此深度图的卷积核数量在每个阶段都会减少。 然后,将两个分支的输出沿通道维级联,并通过一系列附加的全卷积层,以进行全局特征聚合。
每次卷积后,BatchNorm被应用网络,将输出流分离成旋转和平移,以捕获旋转和平移矩阵上的不同。
网络的输出就是一个6*1向量,v为旋转速度向量,w为旋转速度向量(celocity vector???

SO(3) layer层使用

SO(3)用到一点李代数相关知识
平移矩阵可以直接通过网络预测得到,但旋转矩阵需要通过旋转向量so(3)转化得到

3D空间转化层

将标定参数转化为李代数SE(3)(有6个参数)下的元素:变换矩阵T,通过预测的变换矩阵T,结合3D空间转化层,变换输入的深度图,扩展了下文 中原始的3D空间转化曾的方法,以处理稀疏和半稠密的输入深度图:
gvnn: Neural network library for geometric computer vision,” in European Conference on Computer Vision。
已知相机内参数,深度图的深度信息Z,则可将深度图反投影到3维空间上。

Loss函数设置

针对外部校准,需要使用密集方法进行配准

  1. (图像层面Loss计算)Photometric Loss:在利用预测值T转化深度图后,我们在预测的深度图和纠正的深度图之间检查了像素级误差(每一个像素值都用反射率(depth intensity)编码)
  2. (点云层面距离Loss计算)Point Cloud Distance Loss:应用未配准的变换点云和目标点云没在米尺度上最小化他们的误差。由于并不知道点集之间的相关性,因此考虑多种距离测量方法,例如:
    Chamfer Distance:
    Earth Mover’s Distance:
    Centroid ICP Distance:

B 层实施细节

处理半密集深度图(semi-dense depth map)的主要瓶颈在于,我们不能对所有张量位置进行更新。由于输入的多个像素位置将包含深度(强度)为零的像素,因此有必要针对稀疏张量位置应用一种数学运算,在端到端的方式中这些层是可微的是前提条件。
频繁的使用scatter_nd操作,优势说明见下文:

M. Ren, A. Pokrovsky, B. Yang, and R. Urtasun, “Sbnet: Sparse blocksnetwork for fast inference,”arXiv preprint arXiv:1801.02108, 2018

在双线性采样层中使用此操作,因此,在对像素位置进行插值时,仅考虑深度强度可用的稀疏邻居位置

C 迭代重对齐

到目前为止,已经提出了一种解决方案,其中在检查光度和距离误差之前,仅对输入误标定的深度图进行一次转换。尽管一些较早的工作通过重新提供输入来在外部使用此方法[14],但我们的方法能够在网络内以端到端的方式应用迭代重新对齐。为此,一旦网络预测了初始转换T,我们就对输入进行转换。通过预测的变换对深度图进行了误校准。现在,我们将此新变换的深度图作为输入输入到网络,以预测残差变换T’。现在,在计算每个阶段的预测转换的乘积之后,计算最终转换。
将每一次的矩阵相乘即可得到最终的矩阵。
在每个步骤中,都会针对目标深度图和目标点云计算误差。展开后,网络类似于一个类似于下文中的工作递归单元,其中每次迭代中的梯度流都与变换点云相对,并且得到的深度图。

Newell, K. Yang, and J. Deng, “Stacked hourglass networks forhuman pose estimation,” inEuropean Conference on Computer Vision.Springer, 2016

实验结论

1 数据获取

随机生成一个旋转平移矩阵实现标定的初始化效果,也就是误标定初始数据
旋转误差从-10度~10度的正态分布中取
平移误差从-0.2m-0.2m中取

发布了17 篇原创文章 · 获赞 3 · 访问量 945

猜你喜欢

转载自blog.csdn.net/weixin_33566282/article/details/103776406