标定是确定不同坐标系的相互转换关系,是传感器数据融合的前提,特别是激光雷达和图像数据。这里以深度学习的方法训练CNN模型去回归坐标系转换的参数。

主要是两个CNN模型:RegNet和CalibNet。

RegNet应该是第一个深度卷积神经网络(CNN)推断多传感器的6自由度(DOF)外参数标定,即激光雷达(LiDAR)和单目摄像头。RegNet将标定的三个步骤(特征提取、特征匹配和全局回归)映射到单个实时CNN模型中。在训练期间,随机对系统进行重新调整,以便训练RegNet推断出激光雷达投影到摄像头的深度测量与RGB图像之间的对应关系,并最终回归标定外参数。此外,通过迭代执行多个CNN,在不同程度失标定(decalibration)数据上进行训练。如图是一个例子。

失标定
标定基础事实(GT)
RegNet标定结果

首先,传感器坐标系中给出的点x变换为世界坐标系中的点y,定义为一个仿射变换矩阵H,即y = Hx。估计变换矩阵H的任务称为外标定。应用深度学习,需要重新定义外标定的问题,在给定初始标定Hinit和基础事实标定Hgt的情况下,确定失标定矩阵φdecalib,其定义如下

然后可以随机改变Hinit以获得大量的训练数据。为了能够建立标定过程可观测的对应关系,用Hinit和摄像头内参数矩阵P将激光雷达点投影在摄像头图像平面上,即

在每个像素(u,v),如果没有投射的激光雷达点,则存储投影点的逆深度值(摄像头坐标)zc或者为零。 由于相比图像像素的数量大多数常见的激光雷达传感器仅提供少量测量数据,因此深度图像非常稀疏。为了对付这种稀疏性,在输入深度图使用最大值池化(Max Pooling)对投影的激光雷达深度点上采样。

下面图展示的是Regnet的结构框图,其实现深度和RGB图像之间的标定。 使用初始标定Hinit将深度点投影在RGB图像上。在CNN网络的第一和第二部分,使用NiN(Network in Network)块来提取丰富的特征以进行匹配,其中索引显示NiN块的第一卷积层的核大小k。 特征通道的数量显示在每个模块的右上角。 CNN网络最后一部分通过使用两个全连接层收集全局信息来对失标定进行回归。(注:NiN块由一个k×k卷积,然后是几个1×1卷积组成。)在训练期间,失标定矩阵会被随机排列,形成深度点的不同投影数据。

如下图所示,深度点的投影随给定的初始标定值而强烈地变化。当初始校准从标定的基础事实(GT)旋转偏离20°平移偏离1.5米的时候,可能导致激光雷达点云的投影的大多数点在图像区域之外,难以与RGB图像建立对应关系。

即使在这些情况下,训练的CNN网络仍然能够改进标定。使用新的估计标定参数可以再次投影深度点,从而产生更多供相关计算的深度点。 然后,该步骤多次迭代即可。

初始化
结果

CalibNet是一个自监督的深度网络,能够实时自动估计激光雷达和2D摄像头之间的6-自由度刚体转换关系。在训练时,不进行直接监督(例如不直接回归标定参数);相反,可以训练网络去预测标定参数,以最大化输入图像和点云的几何和光度一致性。

下图是CalibNet的流程图:(a)来自标定摄像头的RGB图像;(b)原始激光雷达点云作为输入,并输出最佳对齐两个输入的6-自由度刚体变换T;(c)显示错误标定设置的彩色点云输出;(d)显示使用CalibNet网络标定后的输出。

该网络将RGB图像、相应的误标定(mis-calibration)的激光雷达点云和相机标定矩阵K作为输入。作为预处理步骤,首先将点云转换为稀疏深度图,将激光雷达点云投影到图像平面即可。由于初始误标定的不准确,将误标定点投影到图像平面会导致稀疏深度图与图像(严重)不一致,如上图(c)所示。 将RGB输入图像和稀疏深度图标准化为±1的范围,然后用5 x 5最大池化窗将稀疏深度图最大池化为半致密深度图。

虽然网络的输出可直接预测平移,但需要将so(3) 中的输出旋转矢量转换为其对应的旋转矩阵。一个元素ω ∈ so(3) 可以通过使用指数图(exponential map)转换为SO(3)。

一旦将网络预测的标定参数转换为T∈SE(3)中的刚体变换,就会使用3-D空间变换器层(Spatial Transformer Layer),通过预测变换T对输入深度图进行变换。这里扩展了原始的3D空间变换器层以处理稀疏或半致密的输入深度图,如上图(d)。

下图是CalibNet的网络结构图。网络主要由”RGB”和”深度”2个不对称分支组成,每个分支执行一系列,因此”深度”流的滤波器在每个阶段都会减少。然后两个分支的输出沿着信道这个维度连接并通过一系列附加全卷积和批规则化(Batch Norm)层,用于全局特征聚合。将旋转和平移的输出流分离,以捕获旋转和平移之间可能存在的模态差异。网络的输出是1×6矢量ξ=(v, ω)∈ se(3), 其中v是平移速度矢量,ω是旋转速度矢量。

下面是损失函数的定义:

1. 光度损失:在通过预测的T变换深度图之后,检查预测的深度图和正确的深度图之间的密集像素误差,误差定义为,

2. 点云距离损失:3D空间变换器层允许在反投影(back projection)后的点云转换。 在这个阶段,尝试度量尺度最小化未校准的变换点和目标点云之间的3D-3D点距离。距离测量有

a) Chamfer 距离

b) 推土机距离(Earth Mover’s Distance):

c) 质心ICP距离

最后,整个损失函数定义为:

下图是CalibNet标定的一些结果。第一行显示输入的RGB图像,第二行显示投影到图像上的相应的误标定的激光雷达点云。 第三行显示使用网络预测变换投影的激光雷达点云,最后一行显示相应的基础事实结果。 第二行中的红色框表示未对齐,而在第三行中,红色框表示标定后的正确对齐。

深度学习 相机标定_基于深度学习的多传感器标定相关推荐

  1. 深度学习图像融合_基于深度学习的图像超分辨率最新进展与趋势【附PDF】

    因PDF资源在微信公众号关注公众号:人工智能前沿讲习回复"超分辨"获取文章PDF 1.主题简介 图像超分辨率是计算机视觉和图像处理领域一个非常重要的研究问题,在医疗图像分析.生物特 ...

  2. 深度相机 物体三维重建_基于深度相机的实时物体三维重建方法与流程

    本发明涉及三维成像领域,特别是一种能够实时地对物体或人体进行三维重建的方法. 背景技术: 三维重建技术一直是计算机图形学和计算机视觉领域的热点课题.三维重建就是从输入数据中建立3D模型.随着各种面向普 ...

  3. 【自然语言处理】【对比学习】SimCSE:基于对比学习的句向量表示

    相关博客: [自然语言处理][对比学习]SimCSE:基于对比学习的句向量表示 [自然语言处理]BERT-Whitening [自然语言处理][Pytorch]从头实现SimCSE [自然语言处理][ ...

  4. 物体抓取位姿估計算法綜述_基于深度学习的物体抓取位置估计

    主讲题目:基于深度学习的物体抓取位置估计 主要内容:机械臂抓取技术简介与入门方法 主讲嘉宾:东北大学研究生,主要研究物体六自由度位姿估计,机械臂抓取. 知乎视频​www.zhihu.com 往期干货资 ...

  5. 基于深度搜索的树路径求解_基于深度学习的自动验证码求解器

    基于深度搜索的树路径求解 计算机视觉,网络安全,深度学习(Computer Vision, Cybersecurity, Deep Learning) Disclaimer: The followin ...

  6. 三维图形几何变换算法实验_基于深度学习的三维重建算法综述

    点击上方"计算机视觉life",选择"星标" 快速获得最新干货 00 前言 目前,三维重建技术已在游戏.电影.测绘.定位.导航.自动驾驶.VR/AR.工业制造以 ...

  7. 病虫害模型算法_基于深度学习的目标检测算法综述

    sigai 基于深度学习的目标检测算法综述 导言 目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核心问题之一.由于各类物体有不同的外观,形状,姿态,加上成像 ...

  8. python dlib caffe人脸相似度_基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【一】如何配置caffe属性表...

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  9. 图像重建算法_基于深度学习图像重建算法(DLIR)对CT图像质量和剂量优化的研究:体模实验...

    编者按:今年Joël Greffier博士等在European Radiology (IF 4.1)上发表了题为<Image quality and dose reduction opportu ...

最新文章

  1. Wireshark数据抓包教程之认识捕获分析数据包
  2. python设计模式六大原则_php设计模式的六大原则(六):迪米特法则
  3. js如何判断当前文本的输入状态——中文输入法的那些坑
  4. 提取手机游戏资源 特效 显存分析工具 无视任何加密
  5. java中412是什么错_HTTP 412 错误 – 先决条件失败 (Precondition failed)
  6. 用友元函数重载乘法,用成员函数重载除法
  7. Tensorflow笔记(一): tensorflow的安装
  8. LeetCode刷题(39)--Set Matrix Zeros
  9. tf.read_file和tf.image.decode_jpeg处理图片(转)
  10. 推荐系统在房产领域的实践
  11. Win/Chomer美化
  12. 微信小程序-轮播图实现
  13. 华氏和摄氏温度的转换
  14. NOIP2004提高组一等奖名单[推荐]
  15. 综述论文要写英文摘要吗_论文写作指导:本科学位毕业论文写作必备技巧
  16. 使用3g模块SIM5360E收发短信
  17. Machine Learning笔记——逻辑回归算法
  18. 在tensorflow下进行pip操作时需要注意的地方
  19. MATLAB真彩色图像转换为索引图
  20. Android图片选取和剪裁头像的相关问题

热门文章

  1. 前端学习(529):等分布局存在间距得实现得解决方案
  2. C++17新特性学习笔记
  3. 剑指offer--二维数组的查找
  4. pcm压缩 java,Java C.PcmEncoding方法代码示例
  5. 说说mysql_说说MySQL权限 - andyqian的个人空间 - OSCHINA - 中文开源技术交流社区
  6. java jsonobject_Java实现QQ登录
  7. web前端开发怎么样学习?看这份web前端学习路线
  8. python对excel的操作
  9. [Tomcat报错]SEVERE: Error listenerStart
  10. 【转载】安卓开发者在使用deepin15.4时可能会遇到的问题