鱼眼摄像头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 ...
随机推荐
- Windows系统之间文件互传
1)利用Windows自带的文件共享服务 本次试验以Win7为服务器端,win10为客户端 1.确保Win7服务端开启对应的服务及开放相应的端口号 进入命令行界面,输入netstat -an,查看44 ...
- 技术面试问题汇总第005篇:猎豹移动反病毒工程师part5
这是我当初接受面试的最后两个问题,当时,那位面试官问我对漏洞了解多少时,我说一点都不懂,问我懂不懂系统内核时,我同样只能说不知道.后来他跟我说,面试的考查重点不在于我所掌握的知识的广度,而是深度.这也 ...
- 从苏宁电器到卡巴斯基第27篇:难忘的三年硕士时光 V
一发不可收拾 安全领域的公司都喜欢在看雪或者是吾爱破解这样的网站上发布招聘贴,因为这样的话很容易就能够招到适合的人才,也算是精准营销了.而像我这种想进入安全圈的,也会在这里发布自己的求职简历,以期望能 ...
- Known Notation 39届亚洲赛牡丹江站K题
题意: 题意,哎!说道题意就蛋疼啊,比赛的时候就愣是把这个题目读成数字可以随意组合,比如123 可以拆成1 23 ,12 3 ,1 2 3,结果显然,水题当神题,各种想不出来,然后就显然的 ...
- Linux提权之利用 /etc/passwd 文件
当我们获得了某个Linux服务器的低权限之后,我们想要对该低权限账号进行提权,以执行更多的操作. 接下来我们的提权是利用 /etc/passwd 文件的可写入权限,导致我们写入一个其他用户进去. 首先 ...
- Windows核心编程 第五章 作业(下)
5.4 查询作业统计信息 前面已经介绍了如何使用 Q u e r y I n f o r m a t i o n J o b O b j e c t函数来获取对作业的当前限制信息.也可以使用它来获取关 ...
- JS阻止冒泡事件
<!DOCTYPE html><html><head> <title></title> <style type="text/ ...
- 03.14 ICPC训练联盟周赛,Preliminaries for Benelux Algorithm Programming Contest 2019
A .Architecture 题意:其实就是想让你找到两行数的最大值,然后比较是否相同,如果相同输出'possible',不同则输出'impossible' 思路:直接遍历寻找最大值,然后比较即可 ...
- Linux性能调优命令之free
功能说明 free 命令显示系统使用和空闲的内存情况,包括物理内存.交互区内存(swap)和内核缓冲区内存.共享内存将被忽略 语法 free [参数] 参数 -b : 以Byte为单位显示内存使用情况 ...
- Spring context的refresh函数执行过程分析
今天看了一下Spring Boot的run函数运行过程,发现它调用了Context中的refresh函数.所以先分析一下Spring context的refresh过程,然后再分析Spring boo ...