经典文献阅读之--SST-Calib(激光雷达与相机的同步时空参数标定法)

news2024/9/22 11:33:36

0. 简介

借助多种输入模态的信息,基于传感器融合的算法通常优于单模态。具有互补语义和深度信息的相机和激光雷达是复杂驾驶环境中的典型传感器配置。然而,对于大多数相机和激光雷达融合的算法,传感器的标定将极大地影响性能。具体来说,检测算法通常需要多个传感器之间的精确几何关系作为输入,并且默认传感器的时间戳是同步的。《SST-Calib: Simultaneous Spatial-Temporal Parameter Calibration between LIDAR and Camera》一文,提出了一种基于分割的框架来联合估计相机激光雷达套件校准中的几何参数和时间参数。

1. 主要贡献

这项工作提出了一个自动驾驶平台上激光雷达和相机之间的联合时空校准框架。所提出的框架的输入是相机和激光雷达帧的序列。这里,每个传感器模态都通过任意的语义分割网络进行处理,可以根据可用的训练数据进行选择。其次,将分割的LIDAR点云投影到语义图像上,计算新设计的双向对准损失,用于几何参数回归。不仅限于点对像素的损失,我们还对语义像素进行了点对点损失的下采样。估计两者之间的时间延迟,我们从两个连续的图像中估计视觉里程计,并预测用于匹配的偏移点云。本文贡献如下:

1、为激光雷达相机传感器套件提出了一种联合时空标定算法;

2、设计双向损失是为了在几何参数回归中获得更稳健的性能;

3、将时间参数与视觉里程计相结合,以估计传感器之间的时间延迟。

2. 主要方法

所提出的校准方法的工作流程如图1所示。校准过程包括用于空间初始猜测的静态空间参数校准模块和用于双参数估计的联合时空参数校准模块

所提算法的输入是一个点云扫描 P k ∈ R 3 × N p P_k ∈ \mathbb{R}^{3×N_p} PkR3×Np,以及两个连续的RGB图像 { I k + δ , I k + δ − 1 } ∈ Z N h × N w × 3 \{I_{k+δ}, I_{k+δ−1}\} ∈ \mathbb{Z}^{N_h×N_w×3} {Ik+δ,Ik+δ1}ZNh×Nw×3。其中 N p N_p Np是扫描中的点数, N h N_h Nh N w N_w Nw是图像的尺寸。算法的目标是估计几何关系的6自由度 { R , t } \{R, t\} {R,t}(其中 R ∈ R 3 × 3 , t ∈ R 3 R ∈\mathbb{R}^{3×3},t ∈ \mathbb{R}^3 RR3×3tR3)和 P k P_k Pk I k + δ I_{k+δ} Ik+δ之间的时间延迟 δ ∈ R δ ∈\mathbb{R} δR

为了实现这一目标,我们首先通过任意语义分割算法处理 P k P_k Pk I k + δ I_{k+δ} Ik+δ,以获得语义掩码 P m , k P_{m,k} Pm,k I m , k + δ I_{m,k+δ} Im,k+δ。然后,利用粗略测量或采样得到的初始外参猜测 { R i n i t , t i n i t } \{R_{init}, t_{init}\} {Rinit,tinit} 和已知的内参 K ∈ R 3 × 3 K ∈ \mathbb{R}^{3×3} KR3×3将激光雷达点云投影到相机图像平面上。通过找到点到像素和像素到点的最近邻,计算它们之间的欧氏距离,这是优化算法的损失函数

第一次优化迭代(静态空间参数校准模块)将在车辆速度几乎为0的帧上进行。静态空间参数校准给出了旋转和平移的初始估计 { R ^ s t a t i c , t ^ s t a t i c } \{\hat{R}^{static},\hat{t}^{static}\} {R^static,t^static}。这个估计将被用作联合时空参数校准的初始猜测和正则化参考。

其次,对于动态场景,我们从视觉里程计中估计 I k + δ I_{k+δ} Ik+δ I k + δ − 1 I_{k+δ−1} Ik+δ1之间的时间信息,该里程计将预测两个相机帧之间的速度 v ^ k ∈ R 3 \hat{v}_k ∈ \mathbb{R}^3 v^kR3。在这里, P k P_k Pk I k + δ I_{k+δ} Ik+δ之间的平移偏移可以表示为 t δ , k = v ^ k ⋅ δ t_{δ,k} = \hat{v}_k · δ tδ,k=v^kδ。我们将 v ^ k \hat{v}_k v^k作为优化的一部分,并估计 δ ^ \hat{δ} δ^ { R ^ , t ^ } \{\hat{R}, \hat{t}\} {R^,t^}

在这里插入图片描述

图1:所提出的校准方法的工作流程

2.1 语义分割

通过现成的语义分割模块,所提出的方法可以适用于具有语义标签的任何数据集。在本文中,我们分别使用SqueezeSegV3[26]和SDC-net[27]进行点云和图像的语义分割。考虑到城市环境中车辆的频繁出现,在这项工作中,我们只使用车辆类别进行语义分割。将这些语义分割模块应用于输入,我们得到语义掩码 P m , k P_{m,k} Pm,k I m , k + δ I_{m,k+δ} Im,k+δ

2.2 点云投影

为了计算语义损失,我们首先将点 p i , m , k ∈ P m , k ( p i , m , k ∈ R 3 ) p_{i,m,k} ∈ P_{m,k}(p_{i,m,k} ∈ \mathbb{R}^3) pi,m,kPm,kpi,m,kR3的语义掩码投影到二维图像平面上。根据经典的相机模型[28],我们可以通过以下方式实现投影

在这里插入图片描述

在这里, p u i , m , k pu_{i,m,k} pui,m,k p v i , m , k pv_{i,m,k} pvi,m,k是投影点 p ~ i , m , k ∈ R 2 \tilde{p}_{i,m,k}∈\mathbb{R}^2 p~i,m,kR2的图像坐标。

2.3 双向损失(重点内容)

p ~ 1 , m , k … p ~ n p , m , k \tilde{p}_{1,m,k}…\tilde{p}_{n_p,m,k} p~1,m,kp~np,m,k成为在相机视野内的一组投影的LIDAR点。现在对于投影点 p ~ i , m , k \tilde{p}_{i,m,k} p~i,m,k,让 q j , m , k + δ ∈ I m , k + δ q_{j,m,k+δ}∈I_{m,k+δ} qj,m,k+δIm,k+δ 成为相同类别的最近邻像素。然后,可以如下计算第 k k k 帧上的单向点到像素(点到图像)语义对齐损失

在这里插入图片描述

在这里,损失是根据每个投影点计算的。图2a展示了点到像素损失计算的过程。正如[10]所示,通过最小化这个损失函数,我们可以使得投影点云与具有相同语义标签的像素很好地重叠。因此,最小化这个损失函数可以使我们得到正确的 E ^ s t a t i c = { R ^ s t a t i c , t ^ s t a t i c } \hat{E}_{static} = \{\hat{R}_ {static}, \hat{t}_{static}\} E^static={R^static,t^static}估计。然而,当外参矩阵的初始猜测与真值显著不同时,最近邻匹配并不一定能给出大多数配对的适当匹配结果,并且一些重要像素的信息将被丢弃。因此,最小化单向损失会陷入不适当的局部最小值。

在这里插入图片描述

图2:双向投影演示:这里,蓝色圆圈对应投影点,橙色方块代表图像像素。黄色方块突出显示了下采样的像素。


为了避免信息的丢失,我们提出了一个双向损失,也利用了像素到点(图像到点)最近邻匹配(图2b)。考虑到一个图像中有太多像素需要实时匹配,我们对像素进行了下采样以进行像素到点匹配。设 { q ~ 1 , m , k + δ … q ~ n i , m , k + δ } ⊂ I m , k + δ \{\tilde{q}_{1,m,k+δ}…\tilde{q}_{n_i,m,k+δ}\} ⊂ I_{m,k+δ} {q~1,m,k+δq~ni,m,k+δ}Im,k+δ为下采样像素的集合。现在对于像素 q ~ i , m , k + δ , p ~ j , m , k ∈ P m , k \tilde{q}_{i,m,k+δ},\tilde{p}_{j,m,k} ∈ P_{m,k} q~i,m,k+δp~j,m,kPm,k是最近邻的投影点。那么,第 k k k帧上的像素到点语义对齐损失可以计算如下:

在这里插入图片描述

在这里,损失是针对每个采样像素计算的。然后,第 l l l次迭代的双向语义对齐损失可以表示如下,

…详情请参照古月居

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1311699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RabbitMq的详细使用

消息队列RabbitMQ详细使用 文章目录 消息队列RabbitMQ详细使用MQ 的相关概念什么是MQ为什么要用MQMQ 的分类MQ 的选择 RabbitMQRabbitMQ 的概念四大核心概念各个名词介绍安装RabbitMQWeb管理界面及授权操作Docker 安装Hello world简单示例 Work Queues轮训分发消息消息应答自动…

JWT令牌的作用和生成

JWT令牌(JSON Web Token)是一种用于身份验证和授权的安全令牌。它由三部分组成:头部、载荷和签名。 JWT令牌的作用如下: 身份验证:JWT令牌可以验证用户身份。当用户登录后,服务器会生成一个JWT令牌并返回…

Turtle绘制菱形-第11届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第16讲。 Turtle绘制菱形&a…

bugku--- 比赛真题1-3

第一题 查看源代码直接就有 第二题 万能密码直接填 第三题

Vue2.x源码:new Vue()做了啥

例子1new Vue做了啥?new Vue做了啥,源码解析 initMixin函数 初始化 – 初始化Vue实例的配置initLifecycle函数 – 初始化生命周期钩子函数initEvents – 初始化事件系统初始化渲染 initRender初始化inject选项 例子1 <div id"app"><div class"home&…

JVM之堆学习

一、Java虚拟机内存结构图 二、堆的介绍 1. 前面学习的程序计数器&#xff0c;虚拟机栈和本地方法栈都是线程私有的&#xff0c;堆是线程共享的&#xff1b; 2. 通过 new 关键字&#xff0c;创建的对象都会使用堆内存&#xff0c;其特点是&#xff1a; 它是线程共享的&#x…

pytorch文本分类(二):引入pytorch处理文本数据

pytorch文本数据处理 目录 pytorch文本数据处理1. Pytorch背景2. 数据分割3. 数据加载Dataset代码分析字典的用途代码修改的目的 Dataloader 4. 练习 原学习任务链接 相关数据链接&#xff1a;https://pan.baidu.com/s/1iwE3LdRv3uAkGGI2fF9BjA?pwdro0v 提取码&#xff1a;ro…

flume系列之:监控flume agent channel的填充百分比

flume系列之:监控flume agent channel的填充百分比 一、监控效果二、获取flume agent三、飞书告警四、获取每个flume agent channel的填充百分比一、监控效果 二、获取flume agent def getKafkaFlumeAgent():# 腾讯云10.130.112.60zk = KazooClient(hosts

CleanMyMac X这一款mac电脑清理垃圾文件软件好用吗?

CleanMyMac X您的 Mac。极速如新。点按一下&#xff0c;即可优化调整整个 Mac畅享智能扫描 — 这款超级简单的工具用于优化您的 Mac。只需点按一下&#xff0c;即可运行所有任务&#xff0c;让您的 Mac 保持干净、快速并得到最佳防护。CleanMyMac 是一款功能强大的 Mac 清理程序…

网络基础——路由协议及ensp操作

目录 一、路由器及路由表 1.路由协议&#xff1a; 2.路由器转发原理&#xff1a; 3.路由表&#xff1a; 二、静态路由优缺点及特殊静态路由默认路由 1.静态路由的优缺点&#xff1a; 2.下一跳地址 3.默认路由 三、静态路由配置 四、补充备胎 平均负载 五、补充&…

计算机系统结构MIPS流水线

题目 其中&#xff1a;R3的初值是R2396。假设&#xff1a;在整个代码序列的运行过程中&#xff0c;所有的存储器访问都是命中的&#xff0c;并且在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件“定向”。问&#xff1a; &#xff08;1&#xff09;在没有任…

java写个爬虫抓取汽车之家车型配置参数

前几天有个搞工程的表弟找我&#xff0c;问我什么车好&#xff0c;可以经常跑工地的&#xff0c;看上去又有面子。于是我挥动发财的小手&#xff0c;写一个爬虫程序&#xff0c;筛选并整理了一些数据&#xff0c;并附上下载的图片提供参考&#xff0c;看中了果断第二天提车到手…

构造以太网交换网络

VLAN技术&#xff0c;这种技术可以把一个LAN划分成多个逻辑的VLAN,每个VLAN是一个广播域&#xff0c;VLAN内的主机间通信就和在一个LAN内一样&#xff0c;而VLAN间则不能直接互通&#xff0c;这样&#xff0c;广播报文就被限制在一个VLAN内。 二层 vlan 实验 1.路由器固定i…

Monkey工具之fastbot-iOS实践

背景 目前移动端App上线后 crash 率比较高&#xff0c; 尤其在iOS端。我们需要一款Monkey工具测试App的稳定性&#xff0c;更早的发现crash问题并修复。 去年移动开发者大会上有参加 fastbot 的分享&#xff0c;所以很自然的就想到Fastbot工具。 Fastbot-iOS安装配置 准备工…

编译Sqlite3记录

下载源文件&#xff1a; 下载地址&#xff1a;SQLite Download Page 打开QtCreator创建新的工程&#xff0c;选择纯C工程&#xff0c;将main.c删除&#xff0c;将下载的源码解压后的文件复制到并添加到工程中&#xff0c;其中的文件包括&#xff1a;sqlite3ext.h、sqlite3.h、…

阿里云SLS日志服务之数据导入与加工处理

一、背景 采集vm虚拟机上的Log日志文本&#xff0c;如果需要经过特殊的加工处理&#xff0c;在本文主要讲述如何在SLS把kafka采集上来的数据经导入并加工后存储。 二、数据流转图 三、数据导入 服务地址&#xff1a;填写kafka集群的地址数据格式&#xff1a;json字符串&#…

【一起学Rust | 框架篇 | Tauri2.0框架】Tauri App开启远程调试功能

文章目录 前言一、搭建PageSpy环境二、接入SDK三、进行远程调试调试控制台网络抓包审查元素 四、延伸 前言 Tauri在Rust圈内成名已久&#xff0c;凭借Rust的可靠性&#xff0c;使用系统原生的Webview构建更小的App 以及开发人员可以灵活的使用各种前端框架而一战成名。 然而&…

吴恩达《机器学习》12-2-12-3:大边界的直观理解、大边界分类背后的数学

一、大边界的直观理解 1. 大间距分类器的背景 支持向量机的大间距分类器着眼于构建一个能够在正负样本之间划定最大间距的决策边界。为了理解这一点&#xff0c;首先观察支持向量机的代价函数&#xff0c;其中涉及到正负样本的代价函数cos&#x1d461;1(&#x1d467;)和cos…

力扣二叉树--总结篇(2)

前言 总体回顾&#xff1a;11.18-12.14&#xff0c;中间有一个星期左右因为考试没有写题。37道题。 内容 这是第二阶段刷的题 从路径到构造二叉树&#xff0c;合并二叉树&#xff0c;再到二叉搜索树&#xff0c;公共祖先问题 看到二叉树&#xff0c;看到递归 都会想&#…

智慧工地源码(微服务+Java+Springcloud+Vue+MySQL)

智慧工地系统是依托物联网、互联网、AI、可视化建立的大数据管理平台&#xff0c;是一种全新的管理模式&#xff0c;能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度&#xff0c;以及施工过程管理的进度、质量、安全三…