当前位置: 首页 > news >正文

经典文献阅读之--LIO-PPF(增量平面预拟合LIO)

0. 简介

自从ikd-tree出来后,现在越来越多的工作瞄准了增量式这种方法,比如说激光惯导里程计(LIDAR-Inertial Odometry,LIO)的高精度跟踪通常涉及最小化点到平面距离的k最近邻(kNN)搜索,然而,这样做的成本是维护大型局部地图并为每个点执行kNN平面拟合。在《LIO-PPF: Fast LiDAR-Inertial Odometry via Incremental Plane Pre-Fitting and Skeleton Tracking》中,我们通过节省这些不必要的成本来减少LIO的时间和空间复杂度,在技术上设计了一个平面预拟合(PPF)方法来跟踪3D场景的基本框架。在PPF中,平面不是为每个扫描单独拟合的,更不用说为每个点拟合了,而是随着场景“流动”而逐步更新,与kNN不同,PPF对噪声和非严格平面更具有鲁棒性,而且我们采用迭代主成分分析(iPCA)进行优化。此外,还引入了一个简单但有效的夹层,以消除假的点对平面匹配,并且完全开源了代码。

1. 文章贡献

本文中,与在搜索每个点的kNN之后懒惰地拟合平面相比,我们采用了一种更积极的平面预拟合方法。这个想法源于两个不必要的因素:
1)不必要的kNN:当前的LiDAR扫描跟踪[1]-[6]为每个单独的点搜索kNN以拟合平面,假设空间接近的点来自同一平面。然而,这个条件太严格了,即空间上远离的点也可能属于同一个平面,例如长墙。换句话说,kNN策略忽略了平面不总是在小的局部区域内这一事实。对于大平面来说,大多数kNN搜索是冗余的,因为它们最终拟合相同的平面。同时,来自连续LiDAR扫描的点通常来自同一个大平面的不同部分,即它们共享同一个高级别大平面对象。这给了我们一个提示:如果搜索发生在高级特征平面空间中,那么kNN的昂贵成本自然可以被节省。

2)不必要的大型局部地图:如果只保留几个扫描在局部地图中,NN可能会很远,因此很可能属于其他对象,导致kNN不准确地拟合匹配的平面。因此,扩大局部地图以保证足够接近的点对kNN对应关系[5]-[7],如图1d所示。但是,我们注意到:即使只保留一个扫描在局部地图中,缺乏接近的NN≠NN \neqNN= 缺乏平面匹配。例如,在图1b中,大多数橙色墙体点未能在长墙上找到接近的NN,但是这面墙的平面可以轻松地从一个单独的先前扫描中的点(蓝点)预拟合。再次,这给了我们一个提示:如果搜索发生在高级特征平面空间中,一个单独的先前扫描就足以提供足够的点对平面匹配。总之,我们做出以下贡献:

  • 我们建议通过LiDAR扫描之间的平面预拟合(PPF)来表示场景的基本骨架进行点匹配。我们证明了(i)PPF可以自然地缩小局部地图并消除大多数冗余的kNN搜索和平面拟合;(ii)kNN对噪声和非严格平面的不鲁棒性。
  • 在PPF中,不是为每个点/扫描拟合平面,而是利用IMU和LiDAR扫描的顺序性来实现增量平面更新;迭代PCA使PPF比kNN更具有噪声和非严格平面的鲁棒性;引入了一个简单而有效的夹层来排除错误的点对平面匹配
  • 工程贡献包括完全开源的LIO-PPF。在5个开放数据集的22个序列上进行的实验表明,与原始方法相比,我们的PPF最多可以将本地地图大小减小64%,在残差计算方面实现4倍的加速,最多实现1.92倍的总体FPS,并仍然显示相同水平的精度。

在这里插入图片描述

图1. (a) 重建的场景。(b) 在快速旋转下(a)的两个连续扫描。© 跨越扫描的大面形成了场景的基本骨架,并揭示了其整体几何结构。(d) kNN需要大型的局部地图,否则大多数点无法找到邻居来拟合平面。而我们使用基本骨架来表示场景以进行点匹配。搜索区域扩大到平面级别,不需要kNN搜索。

2. 符号和预备知识

在本文中,我们将世界坐标系表示为WWW,LiDAR坐标系表示为LLL,IMU体坐标系表示为BBB。令PiP_iPi表示从扫描i接收到的去畸变的LiDAR点。一个3D平面可以由其法向量n∈R3n∈\mathbb{R}^3nR3和其中任意一点p∈R3p∈\mathbb{R}^3pR3来确定,或者更简洁地通过一个4维向量f=[nT,d]Tf=[n^T,d]^Tf=[nT,d]T来确定,使得f⋅p~=0f· \tilde{p}=0fp~=0,其中p~=[pT,1]T\tilde{p}=[p^T,1]^Tp~=[pT,1]T。我们用变换矩阵T∈SE(3)T∈SE(3)TSE(3)来表示6自由度姿态,其中包含旋转矩阵R∈SO(3)R∈SO(3)RSO(3)和平移向量t∈R3t∈\mathbb{R}^3tR3
定理1:fff经过TTT的变换为:
在这里插入图片描述
证明:设 p~\tilde{p}p~fff 上的任意一点,且 p~′\tilde{p}^′p~ 是其通过 TTT 变换后得到的对应点,即p~′=Tp~\tilde{p}^′ = T \tilde{p}p~=Tp~。那么我们有:
在这里插入图片描述
这意味着p~′\tilde{p}^′p~f′f^′f上。

下面我们将会介绍本文高效平面预拟合方法。然后,我们描述基于PPF的对应骨架跟踪算法。最后,提出了一个三明治层,以使算法在复杂场景中更加鲁棒。
在这里插入图片描述

图2. 预拟合平面和跟踪流程的概览。浅箭头 → 表示为准备下一个激光雷达扫描而进行的操作。

3. 增量iPCA平面预拟合(最重要的部分,如何对平面完成拟合)

…详情请参照古月居

相关文章:

经典文献阅读之--LIO-PPF(增量平面预拟合LIO)

0. 简介 自从ikd-tree出来后,现在越来越多的工作瞄准了增量式这种方法,比如说激光惯导里程计(LIDAR-Inertial Odometry,LIO)的高精度跟踪通常涉及最小化点到平面距离的k最近邻(kNN)搜索&#x…...

ChatGPT背后有哪些关键技术?CSIG企业行带你一探究竟

目录1 ChatGPT的时代2 CSIG企业行3 议题&嘉宾介绍3.1 对生成式人工智能的思考3.2 对话式大型语言模型研究3.3 文档图像处理中的底层视觉技术4 观看入口1 ChatGPT的时代 2015年,马斯克、美国创业孵化器Y Combinator总裁阿尔特曼、全球在线支付平台PayPal联合创始…...

C#基础之面向对象编程(二)

总目录 文章目录总目录前言一、概述1. 定义2. 面向对象的三大特性二、封装1. 定义2. 属性三、继承1. 定义2. 继承的使用3. base 和this四、多态1. 定义2. 重写和重载3. 多态性的实现1、静态多态性2、动态多态性4. 向上转型和向下转型1、定义2、语法格式3、案例结语前言 本文主…...

蓝桥杯刷题冲刺 | 倒计时25天

作者:指针不指南吗 专栏:蓝桥杯倒计时冲刺 🐾马上就要蓝桥杯了,最后的这几天尤为重要,不可懈怠哦🐾 文章目录1.完全二叉树1.完全二叉树 题目 链接: 完全二叉树的权值 - 蓝桥云课 (lanqiao.cn) 给…...

c语言—动态内存管理

一.为什么存在动态内存开辟开辟空间的特点:空间开辟大小是固定的数组在申明时,必须指定数组长度,她所需要的内存在编译时分配但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道&#xff…...

请说明Ajax、Fetch、Axios三者的区别

相同点: 1、三者都用于网络请求,但是不同维度 2、 Ajax(Asynchronous Javascript and XML),一种技术的统称,并不是实际的API 3、Fetch是一个具体的API,浏览器里面直接有一个API就叫Fetch 4、 Axios是一个第三方库&…...

阿里p8测试总监,让我们用这份《测试用例规范》,再也没加班过

经常看到无论是刚入职场的新人,还是工作了一段时间的老人,都会对编写测试用例感到困扰?例如: 固然,编写一份好的测试用例需要:充分的需求分析能力 理论及经验加持,作为测试职场摸爬打滚的老人&…...

【Unity】数据持久化路径Application.persistentDataPath

今天突然想到这个路径Application.persistentDataPath,热更的重要路径,该文件夹可读可写,在移动端唯一一个可读写操作的文件夹。移动端可以将本地的资源(资源MD5值配置表)等一些文件放到StreamingAssets文件夹下&#…...

华为OD机试 - 插队(Java JS Python)

题目描述 某银行将客户分为了若干个优先级, 1 级最高, 5 级最低,当你需要在银行办理业务时,优先级高的人随时可以插队到优先级低的人的前面。 现在给出一个人员到来和银行办理业务的时间序列,请你在每次银行办理业务时输出客户的编号。 如果同时有多位优先级相同且最高…...

MongoDB数据库从入门到精通系列之八:调整oplog大小

MongoDB数据库从入门到精通系列之八:调整oplog大小 一、oplog的概念二、oplog大小三、调整oplog大小详细步骤一、oplog的概念 操作日志oplog包含了主节点执行的每一次写操作。oplog是存在于主节点local数据库中的一个固定集合。从节点通过查询此集合以获取需要复制的操作。每个…...

PCL 间接平差法拟合二维直线

目录 一、算法原理二、代码实现三、结果展示四、相关链接一、算法原理 通过传统最小二乘法对点云数据进行二维直线拟合时,可将误差只归因于一个方向上,本文假设误差只存在于 y y y轴方向上,设点云拟合的二维直线方程为: y =...

进程调度的基本过程

这里写目录标题什么是进程进程管理结构体或类的主要属性pid内存指针文件描述符表辅助进程调度的属性并发并行并发什么是进程 进程是操作系统对一个正在运行的程序的一种抽象,也就是说,一个运行起来的程序就是一个进程。 进程又是操作系统进行资源分配的…...

python自动化办公(二)

上接python自动化办公(一) 文章目录文件和目录操作使用shutil库文件查找globfnmatchhashlib文件和目录操作 使用shutil库 shutil库也是Python标准库,它可以处理文件、文件夹、压缩包,能实现文件复制、移动、压缩、解压缩等功能。…...

Qt Quick - GridLayout 网格布局

GridLayout 理论总结一、概述二、依赖属性三、例子1. 不含跨行的2. 带跨行列的3. 从右到左一、概述 GridLayout 是最常用的布局器,也叫网格布局器,如果网格布局被调整大小,布局中的所有 Item 将被重新排列。它类似于基于widget的QGridLayout…...

安卓手机也可以使用新必应NewBing

没有魔法安卓手机也可以使用新必应NewBing 目前知道的是安卓手机 安卓手机先安装一个猴狐浏览器 打开手机自带浏览器,搜索关键词:猴狐浏览器,找到官网 也可以直接复制这个网址 狐猴浏览器 lemurbrowser CoolAPK 我的手机是荣耀安卓手机…...

支付系统设计:消息重试组件封装

文章目录前言一、重试场景分析一、如何实现重试1. 扫表2. 基于中间件自身特性3. 基于框架4. 根据公司业务特性自己实现的重试二、重试组件封装1. 需求分析2. 模块设计2.1 持久化模块1. 表定义2. 持久化接口定义3. 持久化配置类2.2 重试模块1.启动2.重试3. 业务端使用1. 引入依赖…...

Visual Studio 2022 c#中很实用的VS默认快捷键和原生功能

常常使用VS感觉还是有必要掌握其默认的快捷键,我这个人比较懒,不喜欢动不动就去设置快捷键,系统有就用,记住了就可以到处用,问题是像我们这种有很多个工作场所的人不可能每台电脑都去配置一下快键键。实际上我使用3dma…...

Python的30个编程技巧

1. 原地交换两个数字 Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法,请参见下面的示例: x,y 10,20 print(x,y) x,y y,x print(x,y) #1 (10, 20) #2 (20, 10) 赋值的右侧形成了一个新的元组,左侧立即解…...

MySQL:JDBC

什么是JDBC? JDBC( Java DataBase Connectivity ) 称为 Java数据库连接 ,它是一种用于数据库访问的应用程序 API ,由一组用Java语言编写的类和接口组成,有了JDBC就可以 用统一的语法对多种关系数据库进行访问,而不用担…...

C++【list容器模拟实现函数解析】

list容器&&模拟实现函数解析 文章目录list容器&&模拟实现函数解析一、list容器使用介绍二、list容器模拟实现及函数解析2.1 list结构体创建2.2 迭代器封装2.21 构造函数:2.22 前置和后置及- -2.23 解引用2.24 判断相等2.25 箭头重载2.26 第二个和第…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...