一种应用于卷帘快门相机的视觉惯性融合连续时间表示方法

本文主要是介绍一种应用于卷帘快门相机的视觉惯性融合连续时间表示方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

样条融合:一种应用于卷帘快门相机的视觉惯性融合连续时间表示方法

    • 一、论文总结
    • 一、基于累积B样条插值公式推到如下

一、论文总结

论文总结:
样条融合:一种应用于卷帘快门相机的视觉-惯性融合连续时间表示方法本文介绍了一种利用卷帘式CMOS相机和MEMS IMUs等传感器进行SLAM和视觉惯性标定的方法。利用相机轨迹的连续时间模型,融合来自其它不同步的高速率传感器的信息,同时限制状态大小。对相机的卷帘快门进行建模,并能在惯性测量中产生误差。该模型不局限于视觉惯性SLAM,还可以简化其他传感器的集成,如旋转SICK激光雷达。
本文方法的核心是一个SLAM系统连续的轨迹表示。我们假设系统需满足如下性质:
1) 允许系统在线和批量运行
2) 系统具有C2的连续性,使我们能够预测IMU的测量值
3) 具有一个很好的近似最小扭矩轨迹
4) 是可参数化且无奇异点的刚体运动
为满足以上性质,本文选择累积B样条插值法,这种方法允许在样条曲线上的任意一点计算解析时间倒数。可以很容易地合成加速度计和陀螺仪的测量值,反过来利用他们对观测到的测量值形成直接误差。
连续时间框架的另一个优点是处理卷帘快门相机。虽然卷帘快门相机的射影几何形状与全局快门相机相同,但图像的每一行都是在不同的时间内曝光的,每一行都比上一行延迟得更久。当相机在运动时,这可能导致图像出现扭曲和倾斜。使用相机运动的连续时间模型,将图像的每一行看作是单独曝光的,如图1所示。
图1

此外本文还给出了视觉和惯性数据的生成模型,通过最小化观测值和预测值之间的差值所形成的目标函数,可批量的求解样条曲线和相机参数,利用连续时间公式,可以对重投影误差和惯性误差进行均匀处理,并根据设备规格或校准计算出它们各自的信息矩阵进行加权。
文章实验部分,进行了仿真和实际数据的对比。首先在一个模拟的单目卷帘相机数据集上给出滑动窗口的视觉测试结果。然后在实际视惯SLAM系统采集的数据集上做了相应测试。结果验证了本文提出的基于连续时间下的B-样条插值方法具有良好的预测效果。

一、基于累积B样条插值公式推到如下

注:为了描述方便以下公式是以截图形式展现

  1. 累积 B-样条插值基本公式如下:
    公式1(1)

值得注意的是B为基函数,p为控制点。
用矩阵的形式表达:
在这里插入图片描述 (2)

在这里插入图片描述 (3)
其中
在这里插入图片描述 (4)
基于累积B-样条插值法公式,在SE(3)下的表达如下:
在这里插入图片描述 (5)
指数对数映射之后得到:
在这里插入图片描述 (6)
假控制点个数k=4,得到:
在这里插入图片描述(7)
展开得到:
在这里插入图片描述(8)
其中B(u(t))表达如下:
在这里插入图片描述 (9)
上式(9)中红色方框矩阵的计算过程手动推到如下:
在这里插入图片描述
最终得到SE(3)下三次累积B-样条的公式变成了如下形式:
在这里插入图片描述(10)

基于以上B-样条公式可以对IMU数据进行插值,推导过程如下:
首先IMU误差模型表达如下:
在这里插入图片描述 (11)
用B-样条方法可以得到连续时间下的陀螺仪角速率和加表的加速度值,重新表达以上公式,如下:
在这里插入图片描述 (12)
其中R,P是矩阵T的子集,要求出R的一介导和P的二阶导,需求出T矩阵的一介二阶导。将矩阵T表示公式简化如下:
在这里插入图片描述(13)
其中对T矩阵求一介二阶偏导如下:
在这里插入图片描述 (14)
求出这个公式,需要求出Ai的一阶二阶导数,计算公式如下:
在这里插入图片描述(15)
这里以A0计算推导为例,A1,A2推导步骤类似,这里就只推导A0:
首先对A0泰勒展开:
在这里插入图片描述(16)
求一阶导如下:
在这里插入图片描述 (17)
求二阶导如下:
在这里插入图片描述 (18)
其中要求出A0以及A0的一介二阶导数,需要先求出B0以及它的一阶二阶导数。求解过程如下:
在这里插入图片描述 (19)
在这里插入图片描述 (20)
在这里插入图片描述(21)

同样基于以上步骤可以推导出A1,A2以及它们的一阶二阶导数。
如果将这个过程反推上去,就可以计算出连续时间下imu的角速率和加速度信息啦!!!

参考文献:
1.Spline Fusion: A continuous-time representation for visual-inertial fusion with application to rolling shutter cameras
2.A Spline-Based Trajectory Representation for Sensor Fusion
and Rolling Shutter Cameras
3.Research Notes and Jacobians:Continuous-Time Visual-Inertial Trajectory Estimation with Event Cameras
4.Sigma-Point Kalman Filtering for Integrated GPS and Inertial Navigation
5.General matrix representations for Bsplines
友情提示:代码下载需要C币,请事先判断是否对您有帮助,谨慎下载哦!!!

这篇关于一种应用于卷帘快门相机的视觉惯性融合连续时间表示方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/258816

相关文章

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

判断PyTorch是GPU版还是CPU版的方法小结

《判断PyTorch是GPU版还是CPU版的方法小结》PyTorch作为当前最流行的深度学习框架之一,支持在CPU和GPU(NVIDIACUDA)上运行,所以对于深度学习开发者来说,正确识别PyTor... 目录前言为什么需要区分GPU和CPU版本?性能差异硬件要求如何检查PyTorch版本?方法1:使用命

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Java中的工具类命名方法

《Java中的工具类命名方法》:本文主要介绍Java中的工具类究竟如何命名,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java中的工具类究竟如何命名?先来几个例子几种命名方式的比较到底如何命名 ?总结Java中的工具类究竟如何命名?先来几个例子JD

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

Spring 中的循环引用问题解决方法

《Spring中的循环引用问题解决方法》:本文主要介绍Spring中的循环引用问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录什么是循环引用?循环依赖三级缓存解决循环依赖二级缓存三级缓存本章来聊聊Spring 中的循环引用问题该如何解决。这里聊