激光雷达和相机联合标定

点击上方“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天内无条件退款

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

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

3D视觉工坊 CSDN认证博客专家 算法 3D视觉
个人公众号:3D视觉工坊。公众号特邀嘉宾及合伙人,先后就职于国内知名研究机构、自动驾驶公司、海康研究院,主要研究方向为深度学习、目标检测、语义分割、图像处理、自动驾驶感知算法等,CSDN博客专家。博主先后任职于国内知名研究院、知名大厂,致力于3D视觉算法、VLAM算法开发,涉及相机标定、手眼标定、结构光、点云后处理、三维重建等相关领域的研究,同时也是CSDN博客专家。3D视觉工坊坚持原创,近一年来输出了非常多的高质量文章,获得了粉丝的一致好评,我们将始终坚持走原创路线,打造一个铁杆粉丝的聚集区。
相关推荐
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页
实付 49.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值