点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

本文转自:计算机视觉life

前言

在SLAM系统中增加更多的相机可以提高鲁棒性和准确性,但会使视觉前端的设计变得非常复杂。因此,文献中的大多数系统是为特定的相机配置定制的。在这项工作中,我们的目标是一个适用于任意多相机设置的自适应SLAM系统。为此,我们重温了可视化SLAM中的几个常见构建块。特别是,我们提出了一个自适应初始化方案,一个传感器无关的信息论的关键帧选择算法,和一个可扩展的基于体素的地图。这些技术对实际的相机设置做了很少的假设,并且更喜欢基于理论的方法而不是启发式方法。通过这些修改,我们采用了最先进的视觉里程计,实验结果表明,修改后的流水线可以适应各种各样的摄像机设置(例如,一个实验中有2到6个摄像机),而不需要传感器特定的修改或调整。

贡献

  1. 自适应初始化方案。

  2. 与传感器无关的信息论关键帧选择算法。

  3. 可扩展的基于体素的地图管理方法。

图1 多相机系统在感知算法方面实现了卓越的性能,并被广泛应用于现实世界的应用中,如全向测绘、自主无人机和虚拟现实耳机。为了便于在SLAM中使用这种系统,我们提出了几个通用设计来自动适应任意多相机系统。

图2 两个摄像机之间立体重叠检查的图示,Ci和Cj。蓝星是相机I像面上的采样点,绿星是成功投影到相机j的3D点,红星是从像面上掉下来的点。

图3 EuRoC MH 01中3次运行的负熵演化。每次运行的E(T)以不同的颜色显示,红点表示某帧被选为关键帧的位置。插入关键帧后,E(T)增加,随着传感器远离地图,e(T)减少。

图4 运行平均E(T)和关键帧选择。运行平均过滤器(黄色)跟踪自最后一个关键帧以来的定位质量。当当前帧的负熵(蓝色)低于运行平均值的某个百分比(绿色虚线)时,将选择一个新的关键帧(红点),并重置运行平均值过滤器。

图5 模拟环境中的模拟图8轨迹。该轨迹是通过用5个摄像机运行调整后的VIO管道来估计的。单目设置丢失轨迹的部分用红色标记。品红色点是SLAM系统跟踪的地标。

图6 5次运行模拟中的总体相对平移误差。

图7 针对不同的相机配置(2到5个摄像机),将建议的体素图与标准关键帧进行比较。左:VIO前端总时间。中间:从地图中检索匹配的地标。右侧:指向地标位置的引用/指针的数量。

图8 含BA的EuRoC数据集的相对平移误差百分比。

表1 EuRoC数据集的RMSE中值(米)超过5次。以粗体突出显示的最低误差。

表2 EuRoC序列中5次运行的关键帧平均数。

图3 单目和立体设置的不同关键帧选择标准的关键帧平均数。

表4 科学园日序列中多相机管道的不同轨迹误差度量。第一行包含完整轨迹的绝对RMSE(547.488米)

图9 科学园日序列中FRB配置的估计轨迹和基本轨迹的俯视图。

Abstract

Adding more cameras to SLAM systems improves robustness and accuracy but complicates the design of the visual front-end significantly. Thus, most systems in the literature are tailored for specific camera configurations. In this work, we aim at an adaptive SLAM system that works for arbitrary multi-camera setups. To this end, we revisit several common building blocks in visual SLAM. In particular, we propose an adaptive initialization scheme, a sensor-agnostic, informationtheoretic keyframe selection algorithm, and a scalable voxelbased map. These techniques make little assumption about the actual camera setups and prefer theoretically grounded methods over heuristics. We adapt a state-of-the-art visualinertial odometry with these modifications, and experimental results show that the modified pipeline can adapt to a wide range of camera setups (e.g., 2 to 6 cameras in one experiment) without the need of sensor-specific modifications or tuning.

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

任意多相机系统的SLAM重设计相关推荐

  1. 互联网金融系统——交易防重设计实战

    为什么需要防范重复提交呢?举个最直接的栗子:你在商城里买了7888元的iphone x,付款后页面卡顿导致你重复点击了付款按钮,这时候如果后端不加重复交易验证的话,相当于付款15766元买了Iphon ...

  2. 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——1.9 案例研究...

    本节书摘来自华章出版社<信息物理融合系统(CPS)设计.建模与仿真--基于 Ptolemy II 平台>一书中的第1章,第1.9节,作者:[美]爱德华·阿什福德·李(Edward Ashf ...

  3. 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——2.3 层次结构和复合角色...

    本节书摘来自华章出版社<信息物理融合系统(CPS)设计.建模与仿真--基于 Ptolemy II 平台>一书中的第2章,第2.3节,作者:[美]爱德华·阿什福德·李(Edward Ashf ...

  4. 基于全景相机的视觉SLAM

    一.全景相机模型 相机坐标系中空间点投影到二维图像的过程可以简化为将空间点投影到单位球面上,然后将此球面展开成全景图像. 式中:ri一空间点在相机坐标系中与原点的距离:t0一投影函数.可以看出,全景相 ...

  5. 点名系统在c++中怎么做_栅格系统是怎么做设计的

    本文由:"学设计上兔课网"原创,图片素材来自网络,仅供学习分享 栅格系统是怎么做设计的?印刷中也会用到栅格,但就本文而言,我主要想讨论的是用于PC和移动设备上的栅格系统设计. 紫色 ...

  6. 大疆口袋云台 最大存储卡_佳能云台相机专利曝光:可换镜头设计,将与大疆竞争...

    IT之家12月30日消息 据外媒 newsshooter 消息,佳能最新的一款云台相机专利在日本通过申请.这款设备有着人体工程学手柄,云台搭载可换镜头的相机部件,屏幕与相机分离,位于手柄.这种设计与大 ...

  7. Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战

    Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战 Java生鲜电商平台-  什么是秒杀 通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动 比如说京东秒杀,就是一种定时定量秒杀,在规定 ...

  8. mysql 亿级高并发_亿级流量系统架构之如何设计每秒十万查询的高并发架构.md

    亿级流量系统架构之如何设计每秒十万查询的高并发架构 一.前情回顾 上篇文章(亿级流量系统架构之如何设计承载百亿流量的高性能架构)聊了一下系统架构中,百亿流量级别高并发写入场景下,如何承载这种高并发写入 ...

  9. java 防重_如何做一个防重设计

    前言 在业务设计中防重设计是一个关键点,以接口设计为例,防重就是防止接口被多次调用而产生脏数据,比如支付订单出现重复支付,所以说防重至关重要,在如何防重之前我们首先看一下是如何出现重复请求的. 何时出 ...

最新文章

  1. 用canvas实现一个vue弹幕组件
  2. 如何系统地入门学习stm32?
  3. echart 时间滚动_基于 ECharts 封装甘特图并实现自动滚屏
  4. spring boot整合mybatis步骤
  5. 创建单IP的***网络
  6. Linux中.rpm,Linux中rpm的使用
  7. zenmap扫描出来linux,如何在Linux上使用NMAP安全扫描器
  8. gulimall(谷粒商城) 是一个综合性的B2C平台,包括前台商城系统以及后台管理系统
  9. (PPT)Python程序设计课程教学内容组织与教学方法实践
  10. python 爬虫001-http请求过程
  11. C#净化版WebApi框架
  12. 年度调薪一般涨多少_涨了!长沙各小区房价曝光!快来看看你的房子涨了多少钱...
  13. nokia n9 android 4.4,再现新神机 诺基亚N9运行Android4.1系统
  14. android平板改成电视盒子,自己动手把闲置的手机或者平板自制成电视的盒子
  15. package.json scripts 脚本使用指南
  16. 电脑端微信如何清空聊天记录
  17. Java设计模式面试题(一)
  18. TTS(TextToSpeach)语音朗读实例
  19. .locked勒索病毒来势汹汹该怎么办?
  20. COVID-19 Cases Prediction (Regression)

热门文章

  1. 谷歌开源张量网络库TensorNetwork,GPU处理提升100倍!
  2. 浙大首届AI专业本科生将于9月入学,纳入竺院图灵班
  3. 75道常见AI面试题,看看你的知识盲点在哪?(附解析)
  4. 专访图灵奖得主John Hopcroft:中国必须提升本科教育水平,才能在AI领域赶上美国
  5. 从试用到使用:计算机视觉产业新一轮发展的起步年
  6. 人工智能与区块链交换了眼神儿,之后呢……
  7. 同一份数据,Redis为什么要存两次?
  8. Maven官宣:干掉Maven和Gradle!推出更强更快更牛逼的新一代构建工具,炸裂!
  9. 好家伙!JDK16 GA 终于发布,内置 Lombok 的功能,真的顶?
  10. Logback配置文件这么写,TPS提高10倍