作者 | 黄浴  编辑 | 汽车人

原文链接:https://zhuanlan.zhihu.com/p/57028341

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心技术交流群

后台回复【领域综述】获取自动驾驶全栈近80篇综述论文!

传感器标定是自动驾驶的基本需求,一个车上装了多个/多种传感器,而它们之间的坐标关系是需要确定的。湾区自动驾驶创业公司ZooX的co-founder和CTO是Sebastia Thrun的学生Jesse Levinson,他的博士论文就是传感器标定。

这个工作可分成两部分:内参标定和外参标定,内参是决定传感器内部的映射关系,比如摄像头的焦距,偏心和像素横纵比(+畸变系数),而外参是决定传感器和外部某个坐标系的转换关系,比如姿态参数(旋转和平移6自由度)。

摄像头的标定曾经是计算机视觉中3-D重建的前提,张正友老师著名的的Zhang氏标定法,利用Absolute Conic不变性得到的平面标定算法简化了控制场。

这里重点是,讨论不同传感器之间的外参标定,特别是激光雷达和摄像头之间的标定。

另外在自动驾驶研发中,GPS/IMU和摄像头或者激光雷达的标定,雷达和摄像头之间的标定也是常见的。不同传感器之间标定最大的问题是如何衡量最佳,因为获取的数据类型不一样:

  1. 摄像头是RGB图像的像素阵列;

  2. 激光雷达是3-D点云距离信息(有可能带反射值的灰度值);

  3. GPS-IMU给的是车身位置姿态信息;

  4. 雷达是2-D反射图。

这样的话,实现标定误差最小化的目标函数会因为不同传感器配对而不同。

另外,标定方法分targetless和target两种,前者在自然环境中进行,约束条件少,不需要用专门的target;后者则需要专门的控制场,有ground truth的target,比如典型的棋盘格平面板。

这里仅限于targetless方法的讨论,依次给出标定的若干算法。

首先是手-眼标定(Hand-Eye Calibration)。

这是一个被标定方法普遍研究的,一定约束条件下的问题:可以广义的理解,一个“手”(比如GPS/IMU)和一个“眼”(激光雷达/摄像头)都固定在一个机器上,那么当机器运动之后,“手”和“眼”发生的姿态变化一定满足一定的约束关系,这样求解一个方程就可以得到“手”-“眼”之间的坐标转换关系,一般是AX=XB形式的方程。

手眼系统分两种:eye in hand和eye to hand,我们这里显然是前者,即手-眼都在动的情况。

手眼标定分两步法和单步法,后者最有名的论文是“hand eye calibration using dual quaternion"。一般认为,单步法精度高于两步法,前者估计旋转之后再估计平移。

这里通过东京大学的论文“LiDAR and Camera Calibration using Motion Estimated by Sensor Fusion Odometry”来看看激光雷达和摄像头的标定算法。

显然它是求解一个手-眼标定的扩展问题-,即2D-3D标定,如图所示:

求解激光雷达的姿态变化采用ICP,而摄像头的运动采用特征匹配。后者有一个单目SFM的scale问题,论文提出了一个基于传感器融合的解法:初始估计来自于无尺度的摄像头运动和有尺度的激光雷达运动;之后有scale的摄像头运动会在加上激光雷达点云数据被重新估计。最后二者的外参数就能通过手-眼标定得到。下图是算法流程图:

手眼标定的典型解法是两步法:先求解旋转矩阵,然后再估计平移向量,公式在下面给出:

现在因为scale问题,上述解法不稳定,所以要利用激光雷达的数据做文章,见下图:

3-D点云的点在图像中被跟踪,其2D-3D对应关系可以描述为如下公式:

而求解的问题变成了:

上面优化问题的初始解是通过经典的P3P得到的。

得到摄像头的运动参数之后可以在两步手眼标定法中得到旋转和平移6参数,其中平移估计如下:

注:这里估计摄像头运动和估计手眼标定是交替进行的,以改进估计精度。除此之外,作者也发现一些摄像头运动影响标定精度的策略,看下图分析:

可以总结出:1)摄像头实际运动a 越小,投影误差越小;2) ( )越小,投影误差越小。第一点说明标定时候摄像头运动要小,第二点说明,标定的周围环境深度要变化小,比如墙壁。

另外还发现,增加摄像头运动的旋转角,摄像头运动估计到手眼标定的误差传播会小。

这个方法无法在室外自然环境中使用,因为点云投影的图像点很难确定。

有三篇关于如何优化激光雷达-摄像头标定的论文,不是通过3-D点云和图像点的匹配误差来估计标定参数,而是直接计算点云在图像平面形成的深度图,其和摄像头获取的图像存在全局匹配的测度。

不过这些方法,需要大量迭代,最好的做法是根据手眼标定产生初始值为好。

另外,密西根大学是采用了激光雷达反射值,悉尼大学在此基础上改进,两个都不如斯坦福大学方法方便,直接用点云和图像匹配实现标定。

斯坦福论文“Automatic Online Calibration of Cameras and Lasers”。

斯坦福的方法是在线修正标定的“漂移”,如下图所示:精确的标定应该使图中绿色点(深度不连续)和红色边缘(通过逆距离变换 IDT,即inverse distance transform)匹配。

标定的目标函数是这样定义的:

其中w 是视频窗大小,f 是帧#,(i, j) 是图像中的像素位置,而p是点云的3-D点。X表示激光雷达点云数据,D是图像做过IDT的结果。

下图是实时在线标定的结果例子:

第一行标定好的,第二行出现漂移,第三行重新标定。

密西根大学的论文“Automatic Targetless Extrinsic Calibration of a 3D Lidar and Camera by Maximizing Mutual Information”。

这里定义了标定的任务就是求解两个传感器之间的转换关系,如图:求解R,T。

定义的Mutual Information (MI) 目标函数是一个熵值:

求解的算法是梯度法:

下图是一个标定的例子:RGB像素和点云校准。

澳大利亚悉尼大学的论文“Automatic Calibration of Lidar and Camera Images using Normalized Mutual Information”。

本文是对上面方法的改进。传感器配置如图:

标定的流程在下图给出:

其中定义了一个新测度Gradient Orientation Measure (GOM)如下:

实际上是图像和激光雷达点云的梯度相关测度。

点云数据和图像数据匹配时候需要将点云投影到柱面图像上,如图所示:

投影公式如下:

而点云的梯度计算之前需要将点云投影到球面上,公式如下:

最后,点云的梯度计算方法如下:

标定的任务就是求解GOM最大,而文中采用了蒙特卡洛方法,类似particle filter。下图是一个结果做例子:

IMU-摄像头标定。

德国Fraunhofer论文“INS-Camera Calibration without Ground Control Points“。

本文虽然是给无人机的标定,对车辆也适合。

这是IMU定义的East, North, Up (ENU) 坐标系:

而实际上IMU-摄像头标定和激光雷达-摄像头标定都是类似的,先解决一个手眼标定,然后优化结果。只是IMU没有反馈信息可用,只有姿态数据,所以就做pose graph optimization。下图是流程图:其中摄像头还是用SFM估计姿态。

这是使用的图像标定板:

激光雷达系统标定。

牛津大学论文“Automatic self-calibration of a full field-of-view 3D n-laser scanner".

本文定义点云的“crispness” 作为质量测度,通过一个熵函数Rényi Quadratic Entropy (RQE)最小化作为在线标定激光雷达的优化目标。(注:其中作者还讨论了激光雷达的时钟偏差问题解决方案)

“crisp“其实是描述点云分布作为一个GMM(Gaussian Mixture Model)形式下的致密度。根据信息熵的定义,RQE被选择为测度:

下图是一个标定后采集的点云结果:

标定算法如下:

雷达-摄像头标定

西安交大论文“Integrating Millimeter Wave Radar with a Monocular Vision Sensor for On-Road Obstacle Detection Applications”。

在讲传感器融合的时候提过这部分工作,这里重点介绍标定部分。首先坐标系关系如下:

传感器配置如下:

标定环境如下:

标定其实是计算图像平面和雷达反射面之间的homography矩阵参数,如下图:

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D感知、多传感器融合、SLAM、高精地图、规划控制、AI模型部署落地等方向;

加入我们:自动驾驶之心技术交流群汇总!

自动驾驶之心【知识星球】

想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D感知、多传感器融合、目标跟踪)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!

自动驾驶系统的传感器标定方法相关推荐

  1. 导航系统 与 自动驾驶系统 基本概念

    目录 1. 基本概念 1.1. 惯性导航系统(Inertial Navigation System, INS) 平台式INS 捷联式INS 1.2. 全球导航卫星系统(Global Navigatio ...

  2. 特征级融合_自动驾驶系统入门(七)- 多传感器信息融合

    1.MISF - Multi-sensor Information Fusion 基础解析 1.1 基本概念 利用计算机技术将多传感器或多源的信息和数据,在一定的准则下加以自动分析和综合,以完成所需的 ...

  3. 自动驾驶系统进阶与项目实战(九)基于行锚框和全局信息的深度学习车道线检测方法

    自动驾驶系统进阶与项目实战(九)基于行锚框和全局信息的深度学习车道线检测方法 目前多数基于深度学习的车道线检测方法通常把车道线的识别问题处理为车道线像素分割问题,单纯的像素级语义分割模型的推理的实时性 ...

  4. 仿真环境跟车2分钟,就让自动驾驶系统撞上马路牙子,攻破率超90%,多传感器融合系统都失效...

    鱼羊 萧萧 发自 凹非寺 量子位 报道 | 公众号 QbitAI 自动驾驶领域目前最强的MSF(多传感器融合)定位算法,再次被攻破了. 攻击之下,平均30秒内,正常行驶中的自动驾驶汽车就撞上了马路牙子 ...

  5. 通过传感器计算打造视觉雷达,下一代自动驾驶系统的关键构成

    点击上方"迈微AI研习社",选择"星标★"公众号 重磅干货,第一时间送达 作者:鉴智机器人 2021年10月25日,特斯拉市值站上万亿美金,成为美股第五家市值破 ...

  6. 无人驾驶 | 为什么双目自动驾驶系统难以普及?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转载于 :黄浴博士知乎 单目视觉是Mobileye(ME)的看家法 ...

  7. 自动驾驶系统入门(四) - 车载摄像头

    1.车载摄像头基础解析 1.1 工作原理 目标物体通过镜头(LENS)生成光学图像投射到图像传感器上,光信号转变为电信号,再经过A/D(模数转换)后变为数字图像信号,最后送到DSP(数字信号处理芯片) ...

  8. 警方披露Uber撞人案细节,解密Uber自动驾驶系统

    编译 | AI科技大本营 参与 | 林椿眄 编辑 | 明明 美国时间周日晚 10 点左右,Uber 的一辆自动驾驶汽车在亚利桑那州 Tempe 市发生交通事故,与一名正在过马路的行人相撞,随后该女子在 ...

  9. Apollo 2.0 传感器标定方法 使用指南(官方)

    点击我:官方地址 Apollo 2.0 传感器标定方法使用指南 欢迎使用Apollo传感器标定服务.本文档提供在Apollo 2.0中新增的3项传感器标定程序的使用流程说明,分别为:相机到相机的标定, ...

最新文章

  1. centos升级glibc动态库
  2. spring mvc DispatcherServlet详解之interceptor和filter的区别
  3. 湘源控规8.0_湘源控规8.0新版本发布
  4. SpringSpringMVCMybatis框架-张晨光-专题视频课程
  5. java.awt.api_Java SE 11(18.9)中的API更新
  6. 每个人都知道MVC…
  7. sql简介_SQL简介
  8. 直接拿来用!Google 新推 AI 模型打破了现有 CNN 技术壁垒
  9. 80X86 汇编指令符号大全
  10. virtualbox centos安装增强工具
  11. anaconda 卸载_Windows安装Anaconda使用教程
  12. JSP之实现分页查询
  13. win7 64位系统epson LQ630k 不打印的问题解决方法
  14. element -ui 返回顶部
  15. mysql 支持嵌套查询吗_【转】MySql 嵌套查询
  16. DBCO-PALA-g-PEG DBCO-聚硫辛酸-聚乙二醇
  17. 搜狗都上市了,王小川还是单身,难道要找AI当女朋友?
  18. Python3-豆瓣电影影片差评和影片封面照片的爬取
  19. 【正本清源】Synchronized 源码全解之偏向锁的获取(基于 Openjdk12)
  20. shell 经典教程[大神之路]

热门文章

  1. 春季三月各行业活动营销指南
  2. 中国计算机艺术的发展趋势,浅谈数字媒体艺术的发展趋势
  3. Dracula这个东西
  4. SEO—搜索引擎优化
  5. 【mysql】limit实现分页
  6. 用友ORACLE笔记
  7. html语言简介 ppt,网页制作与HTML语言基本结构简介.ppt
  8. 实用的费曼学习法 | 一些思考
  9. swalAlert一些简单例子
  10. linux系统如何下游戏,海岛纪元干货 在Linux系统下如何畅玩游戏攻略