鱼眼摄像头SLAM
鱼眼摄像头SLAM
在机器人技术、摄影测量学和计算机视觉等领域,鲁棒相机位姿估计是许多视觉应用的核心。近年来,在复杂、大规模的室内外环境中,人们越来越关注相机位姿估计方法的实时性、通用性和可操作性。其中,相机的视场角起着重要的作用,特别是在具有挑战性的室内场景中,往往是通过鱼眼镜头或相机镜头组合来增加视场角。除了使用鱼眼相机增加视野外,还可以将多个相机进行刚性耦合,形成一个多相机系统,从而有效地利用冗余观测信息来保证位姿估计的鲁棒性和观测目标特征的长可见性。因此,搭载多鱼眼相机系统的自主定位与建图(Simultaneous Localization and Mapping,SLAM)可以捕获更丰富的环境特征信息,从而获得更鲁棒的位姿跟踪效果。

图1. 鱼眼摄像头SLAM示例
一种基于特征的同时定位和构图(SLAM)系统,用于从宽基线移动测图系统(MMS)的多鱼眼相机装置中获得的全景图像序列。
首先,鱼眼摄像机标定方法结合了等距投影模型和三角多项式,以实现从鱼眼摄像机到等效理想相机模型的高精度标定,从而保证了从鱼眼图像到相应全景图像的准确转换。
其次,我们开发了全景相机模型、具有特定反向传播误差函数的相应束调整以及线性姿态初始化算法。
第三,实现由初始化,特征匹配,帧跟踪和闭合环方面的几种特定策略和算法组成的基于特征的SLAM,以克服跟踪宽基线全景图像序列的困难。我们对超过15公里轨迹和14,000张全景图像的大型MMS数据集以及小型公共视频数据集进行了实验。我们的结果表明,本文的全景SLAM系统PAN-SLAM可以在包括挑战性场景(例如黑暗隧道)在内的小规模室内和大型室外环境中实现全自动相机定位和稀疏地图重建,而无需任何其他传感器辅助。测量的绝对轨迹误差(ATE)精度接近0.1 m的高精度GNSS / INS。PAN-SLAM在各种环境下也具有无与伦比的鲁棒性,胜过几种基于特征的鱼眼镜头单目SLAM系统。该系统可被认为是一种理想的补充解决方案,替代昂贵的商用导航系统,尤其是在信号阻塞和多路径干扰普遍存在的城市环境中。
主要贡献
1. 基于多镜头组合式全景相机开发了精确的特征匹配和跟踪,闭环检测以及光束法调整的可靠姿态初值估计,这些技术在复杂的室外环境中具有高稳定性能;
2. 提出了一种新的鱼眼镜头校准方法,该方法可实现亚像素精度,并确保平滑跟踪和光束法调整的高精度;
3.在大范围多基线全景图像序列数据集和从多鱼眼相机组合装置捕获的开源小范围视频数据集上,PAN-SLAM系统的鲁棒性均优于当下其他几种方法。PAN-SLAM是唯一能够跟踪所有图像序列的系统。
4.实验证明,PAN-SLAM的定位精度为0.1 m,与昂贵的商用GNSS / INS跟踪系统的定位精度一样高,并且在信号阻塞情况下也更加可靠。它可以是当前商用GNSS / INS导航系统的强大补充和替代解决方案。
算法流程
1. 全景相机的成像、检校与优化模型
1.1 全景相机的成像

图2,(a)全景相机模型;(b)两个相邻鱼眼相机边缘影像上的投影不确定性。
多镜头组合式全景相机由一系列独立、固定的鱼眼镜头组成,多个镜头独立成像,再拼接为全景图。每个镜头具有各自的投影中心C,在实际制造过程中难以保证与球心S完全重合。物理上三点共线是C,Uc,P'。所以为了实现统一的全景坐标系,需要将实际像素坐标Uc投影到某个指定半径的球面上得到U。为了避免不共心导致的定位误差,通过事先标定单个相机中心在一个全景相机坐标系下的旋转Ri和位置Ti,得到表述共线条件方程的光束仍然是CUcP'。

首先将每个鱼眼影像上的像点转换到半径为r的球面上,然后计算球面点的极坐标,最后根据给定的全景图像宽高计算二维平面坐标。对于全景图像难免存在融合误差,如图1(b)所示,不过在连接点提取过程中排除该误差,不会影响鱼眼相机到全景相机之间的刚体几何转换。
1.2 鱼眼相机标定
为使得核线误差降低到1像素以下,本文对该模型加以改进,提出一种更为精确的鱼眼相机检校方法,显式地加入了鱼眼相机的成像过程。

1.3 光束法平差
类似ORB-SLAM优化方法,不过改进g2o库使其适用于全景成像模型,给出重投影误差函数式的解析导数形式,即误差函数对于位姿即地图点的雅可比矩阵。

图3,三角形节点代表位姿,圆形节点代表地图点,边代表误差项(a)位姿优化;(b)局部光束法平差;(c) 本质图优化;(d)全局光束法平差
本文实现的优化算法包含4类:图3(a),单帧位姿优化(仅根据匹配的地图点计算当前帧的精确位姿);图3(b),局部地图优化和平差(根据局部共视关键帧优化位姿与局部地图点);图3(c),本质图优化(用于检测闭环后,对全局关键帧的位姿进行调整);图3(d),全局光束法平差(优化所有位姿和地图点)。鱼眼图像上不同位置投射到球面上的变形不同,因此不同的点采用不同的误差阈值。
2.全景SLAM流程
系统分为3个线程并行工作,分别为跟踪,局部地图构建与闭环。所有步骤都经过调整,可以在复杂的室外环境中对宽基线全景图像序列进行准确稳健的跟踪和定位。

图4,全景SLAM流程
2.1 初始化
初始化本文将 ORB特征用于PAN-SLAM 系统的特征提取.鱼眼相机变形较大,匹配难度高,误匹配数量大.因此采用三帧而非两帧进行初始化.
2.2 地图点跟踪

图5,地图点跟踪算法流程
2.3 关键帧选择
本文的全景影像框幅高达8000×4000像素,由于车辆高速行驶,存在内存读写的限制,因此采用较大的采样间隔(1~3m ).

2.4 局部地图构建
根据全景相机的特殊情形,本文设定共视关键帧必须同时满足: ①与当前关键帧的共视点数≥50个;②与当前关键帧在图像序列中的间隔关键帧不超过40个;③其与当前关键帧的共视点在两帧所在金字塔层数差异>2的特征点数不超过总共视点数85%。
2.5 闭环检测
我们使用类似于ORB-SLAM的循环检测过程,但针对从不同方向捕获的全景图像引入了特殊的匹配策略。在实践中,即使对于针孔相机,基于BoW的方法也无法很好地识别横向或反向闭环。使用全景相机时,情况变得更糟。我们在这里采用了一种简单的对齐策略,即将当前球面图像展开为搜索到的先前帧的方向的2D图像。附带说明的是,此过程相对较慢;因此,如果检测到足够的循环,则可以跳过此步骤。

图6,(a)鱼眼模式;(b)全景模式,可以很好地跟踪到足够且均匀分布的特征。
鱼眼摄像头SLAM的更多相关文章
- 从零开始一起学习SLAM | SLAM有什么用?
SLAM是 Simultaneous Localization And Mapping的 英文首字母组合,一般翻译为:同时定位与建图.同时定位与地图构建. 「同时定位与地图构建」这几个词,乍一听起来非 ...
- AR中的SLAM(一)
写在前面 本系列打算讲讲个人对AR行业和AR中的SLAM算法的一点浅显的看法.才疏学浅,文中必然有很多疏漏和不足,还望能和大家多多讨论.今天先讲讲我对AR的一些认识. AR的一点理解 AR是什么 AR ...
- SLAM技术在国内的发展现状
近年来,由于扫地机的出现使得SLAM技术名声大噪,如今,已在机器人.无人机.AVG等领域相继出现它的身影,今天就来跟大家聊一聊国内SLAM的发展现状. SLAM的多领域应用 SLAM应用领域广泛,按其 ...
- 激光SLAM Vs 视觉SLAM
博客转载自:https://www.leiphone.com/news/201707/ETupJVkOYdNkuLpz.html 雷锋网(公众号:雷锋网)按:本文作者SLAMTEC(思岚科技公号sla ...
- 激光SLAM与视觉SLAM的特点
激光SLAM与视觉SLAM的特点 目前,SLAM技术被广泛运用于机器人.无人机.无人驾驶.AR.VR等领域,依靠传感器可实现机器的自主定位.建图.路径规划等功能.由于传感器不同,SLAM的实现方式也有 ...
- SLAM领域牛人、牛实验室、牛研究成果梳理
点击公众号"计算机视觉life"关注,置顶星标更快接收消息! 本文阅读时间约5分钟 对于小白来说,初入一个领域时最应该了解的当然是这个领域的研究现状啦.只有知道这个领域大家现在正在 ...
- opencv获取IP摄像头(IP-camera)实时视频流
之前这篇文章讲了如何通过网络摄像头(web camera)获取实时视频流,但是这种方法的缺陷就是摄像头和主机必须连在一起,那这种在室外部署的时候就会非常麻烦并且不安全,所以后来找了下用海康威视或者大华 ...
- adas--智能驾驶辅助系统
先进驾驶辅助系统(Advanced Driver AssistantSystem),简称ADAS,是利用安装于车上的各式各样的传感器(可侦测光.热.压力等变数), 在第一时间收集车内外的环境数据, 进 ...
- Zynq UltraScale+ MPSoC 多媒体应用
消费者渴望更高的视频质量,推动了视频技术的发展.MPSoC 基于 Zynq-7000SoC ,包括一个可编程逻辑 (PL) 的桥接处理系统 (PS),但它在 Zynq UltraScale+ MPSo ...
随机推荐
- php讲转义符号与json文件的趣事情
php中屡试不爽的数组和json json_encode与json_decode urlencode与urldecode addslashes与stripslashes addcslashes与str ...
- hdu4665 DFS
题意: 给你一个字符串,问你能不能拆成两个相同的字符串,顺序不能改变. 思路: 咋一看数据有点大,搜索过不去,但想想优化的地方很多,而且每个字母最多出现四次,所以多几个剪纸应该 ...
- hdu1828 线段树扫描线求矩形面积的周长
题意: 给你n个矩形,问你这n个矩形所围成的图形的周长是多少. 思路: 线段树的扫描线简单应用,这个题目我用的方法比较笨,就是扫描两次,上下扫描,求出多边形的上下边长和,然后同 ...
- POJ2239简单二分匹配
题意: 一周有7天,每天可以上12节课,现在给你每科课的上课时间,问你一周最多可以上几科课,一科课只要上一节就行了. 思路: 简单题目,直接二分就行了,好久没写二分匹配了,练习 ...
- Windows Pe 第三章 PE头文件(中)
这一章的上半部分大体介绍了下PE文件头,下半部分是详细介绍里面的内容,这一章一定要多读几遍,好好记记基础概念和知识,方便之后的学习. 简单回忆一下: 3.4 PE文件头部解析 3.4.1 DOS M ...
- .Net Core·寄托于IIS的REST服务405的问题
阅文时长 | 0.48分钟 字数统计 | 828.8字符 主要内容 | 1.引言&背景 2.声明与参考资料 『.Net Core·寄托于IIS的REST服务405的问题』 编写人 | SCsc ...
- 微信小程序组件设计规范
微信小程序组件设计规范 组件化开发的思想贯穿着我开发设计过程的始终.在过去很长一段时间里,我都受益于这种思想. 组件可复用 - 减少了重复代码量 组件做为抽离的功能单元 - 方便维护 组件作为temp ...
- ElasticSearch实战系列十一: ElasticSearch错误问题解决方案
前言 本文主要介绍ElasticSearch在使用过程中出现的各种问题解决思路和办法. ElasticSearch环境安装问题 1,max virtual memory areas vm.max_ma ...
- [设计模式] 设计模式课程(二十)--命令模式(Command)
概述 "行为变化"模式:组件构建过程中,组件行为的变化经常会导致组件本身剧烈的变化."行为变化"模式将组件的行为和组件本身进行解耦,从而支持组件行为的变化,实现 ...
- [刷题] 416 Partition Equal Subset Sum
要求 非空数组的所有数字都是正整数,是否可以将这个数组的元素分成两部分,使得每部分的数字和相等 最多200个数字,每个数字最大为100 示例 [1,5,11,5],返回 true [1,2,3,5], ...