激光雷达和相机联合标定

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

干货第一时间送达

本次推送给大家带来的是一种激光雷达和相机的外参标定方法,主要利用了ROS中 dynamic_reconfigure 功能包提供的动态配置参数功能(代码在最后)。

手动配置外参标定原理

使用过ROS的朋友们应该都有用过ROS的参数服务器,可以很方便地读取配置参数,但这种参数配置方法存在这一个问题:无法知晓参数服务器中参数是否被更新。如果我们需要动态更新参数,这时可以使用ROS中的dynamic_reconfigure功能包。

设点云在激光雷达定义的坐标系下的空间位置为,点云在相机坐标系下空间位置为;K 是相机内参,是点云投影在图像上的投影点。

将点云由激光雷达坐标系变换到相机坐标系:

再由相机坐标系变换到归一化平面坐标系,并投影到像素平面上:

根据图像大小判断投影点是否在图像上,保留投影在图像上的投影点并在图像上标出,建立二维投影点和三维点云的对应关系。

利用ROS的动态参数配置功能可以不断调整外参R,t的值,滤除距离远处的点云,找到点云投影点和图像像素的真实对应关系。通过调整R,t,使点云投影点和图像像素尽可能重合。

dynamic_reconfigure功能包的可视化界面

ROS的dynamic_reconfigure功能包提供了动态配置参数功能,借助此功能可以实现对外参的动态配置。

 rqt_reconfigure可视化界面

上图为参数动态配置的可视化界面,动态配置参数有十个,分别为“roll”、“pitch”、“yaw”、“x”、“y”、“z”、“dis_filter”、“next”、“get_point”、“reject_distance”。接下来对这十个参数进行介绍:   

    roll:外参中旋转矩阵对应的滚转角,默认为0;

    pitch:外参中旋转矩阵对应的俯仰角,默认为0;

    yaw:外参中旋转矩阵对应的偏航角,默认为0;

    x:外参中平移向量对应的x分量,默认为0;

    y:外参中平移向量对应的y分量,默认为0;

    z:外参中平移向量对应的z分量,默认为0;

    dis_filter:勾选后表示按照给定距离对点云进行过滤,只保留一定距离内的点云;

    next:默认不勾选,表示只对当前图像与点云进行处理;勾选后表示对最新的图像进行处理;

    get_point:默认不勾选,勾选后可以用鼠标在图像上进行取点;

    reject_distance:默认为8,当dis_filter勾选后才生效,表示对点云进行过滤的距离。

标定流程

以KITTI数据集为例(转为bag包的形式),先启动标定程序,再播放bag后,通过 dynamic_reconfigure 功能包提供的动态参数配置功能,可以动态地将激光雷达点云投影到相机图像。由于外参参数默认为0,所以最初在图像上一般是看不到点云的投影点的。于是就需要手动调整“roll”、“pitch”、“yaw”、“x”、“y”、“z” 这六个参数,将点云的投影点向图像上调整:

点云投影图像

可以看到,点云在投影后失去了深度信息,因此无法在图像上区分不同深度的点云投影点。为了能够找到点云投影点和图像像素点的对应关系,需要对点云按照深度进行过滤,即勾选“dis_filter”并调整“reject_distance”的值:

点云投影图像(过滤后)

过滤后局部放大图

通过调整外参参数,将右侧广告牌的投影点和对应图像像素重合:

投影点和像素点重合

实际情况下,可以多放置些参照物,这样更容易看出标定效果。当在一副图片上标定完成后,可以勾选“Next”,此时会按照调整后的外参参数将点云向图像上投影,并显示投影后的图像,如果点云和图像能在不同视角下都能很好的对应,说明标定成功。

PnP标定外参

当手动调整好参数后,点云和像素点就会有一个比较好的对应关系,此时点击“get point”,就可以用鼠标在图像上进行选点,选取足够多点后会通过PnP算法计算出外参,重新投影点云并将最终结果输出在终端(注意此时并不会修改可视化界面的参数,如果此时改动了可视化界面的参数,外参又会被重新改写)。

通过自己的多次尝试,PnP实测效果感人,建议还是慢慢手搓吧~

标定原理比较简单,感兴趣的小伙伴可以戳戳↓↓↓↓↓

github: https://github.com/LeisureLei/lidar_cam_calibration.git

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

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

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

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

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

结合多传感设备以实现高级的感知能力是自动驾驶汽车导航的关键要求。传感器融合用于获取有关周围环境的丰富信息。摄像头和激光雷达传感器的融合可获取精确的范围信息,该信息可以投影到可视图像数据上。这样可以对场景有一个高层次的认识,可以用来启用基于上下文的算法,例如避免碰撞更好的导航。组合这些传感器时的主要挑战是将数据对齐到一个公共域中。由于照相机的内部校准中的误差,照相机激光雷达之间的外部校准以及平台运动导致的误差,因此这可能很困难。在本文中,我们研究了为激光雷达传感器提供运动校正所需的算法。由于不可能完全消除由于激光雷达的测量值投影到同一里程计框架中而导致的误差,因此,在融合两个不同的传感器时,必须考虑该投影的不确定性。这项工作提出了一个新的框架,用于预测投影到移动平台图像帧(2D)中的激光雷达测量值(3D)的不确定性。所提出的方法将运动校正的不确定性与外部和内部校准中的误差所导致的不确定性相融合。通过合并投影误差的主要成分,可以更好地表示估计过程的不确定性。我们的运动校正算法和提出的扩展不确定性模型的实验结果通过在电动汽车上收集的真实数据进行了演示,该电动汽车配备了可覆盖180度视野的广角摄像头和16线扫描激光雷达
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值