基于“香港世界”的SLAM技术介绍

在视觉感知技术中,理解和描述复杂的三维室外场景至关重要,尤其是自动驾驶技术的发展要求对陌生环境具有更强的适应能力和鲁棒性。传统上,使用“曼哈顿世界”和“亚特兰大世界”模型来描述具有垂直和水平结构的城市场景。

 

当遇到像香港这样地形复杂或发展中的城市区域时,这些模型就存在明显的局限性。为了处理这些复杂且不规则的场景,研究者提出了“香港世界”模型。该模型比曼哈顿和亚特兰大世界更为通用,不仅可以描述垂直和水平结构,还能处理斜坡和倾斜建筑。

简介

研究人员已经深入研究了结构化环境,尤其是在计算机视觉和机器人领域。传统上,此方法使用了“曼哈顿世界”和“亚特兰大世界”模型来描述城市中的场景:

 

●曼哈顿世界:假设城市中的建筑和街道都是垂直或水平排列的,这些方向都是互相正交的。

 

●亚特兰大世界:扩展了曼哈顿世界的概念,假设除了垂直方向外,还有多个不一定相互正交的水平方向。

虽然这些模型在描述平坦的城市区域时效果很好,但当此方法面对像香港这样的复杂地形时,它们就不够用了。香港的地形包括许多坡度和斜面,传统的模型难以准确描述这种环境。同样的问题也出现在“山城”重庆。

 

为了解决这些问题,本文提出了一种新的模型,叫做“香港世界”。这个模型不仅能描述垂直和水平的结构,还能处理各种斜坡和倾斜的建筑结构。这样,不仅可以描述平坦的高楼大厦,还能精确描绘建在山坡上的房屋。

 

在“香港世界”中,存在这样几种主要的方向:

 

●垂直方向,与所有水平方向正交。比如房屋是沿重力方向建造的;

 

●每个水平方向,与一组倾斜方向正交。比如房屋的墙壁与斜坡道路相邻;

 

●多对水平和倾斜方向互相正交。例如,两面相互垂直的墙壁,或者车道线与斜坡法线;

 

●基于这些方向,通过一组共享公共垂直轴或水平轴的坐标系来建模“香港世界”。这样,“香港世界”就像是亚特兰大世界的升级版,可以表示更多样化的环境。

 

“香港世界”模型有两个主要优势:

 

●它比曼哈顿和亚特兰大世界更通用,可以描述有坡度的环境,如有丘陵的城市、有斜屋顶的房屋和有楼梯的公寓;

 

●它比混合曼哈顿世界模型更紧凑和准确,因为它的方向是紧密联系在一起的。

 

“香港世界”模型在3D重建、场景理解和机器人导航等领域有广泛的潜在应用。此方法重点讨论其在机器人导航中的关键技术--SLAM中的应用。现有的基于点的SLAM方法在没有纹理的环境中表现不稳定。为了解决这个问题,已经提出了几种基于线的SLAM方法。然而,这些方法忽略了3D线之间的空间关系,而这些关系可以提供有效的几何约束,因此它们的精度不够理想。相比之下,最近的基于线的方法考虑了结构化场景中3D线之间的特定空间关系,如平行和正交。尽管这些方法提高了精度,但其适用范围有限,仅适用于曼哈顿和亚特兰大世界。为了克服这一限制,研究者提出了一种利用“香港世界”结构特征的单目基于线的SLAM方法。

这种SLAM方法具有很高的可靠性,主要得益于三项技术创新:

 

●通过半搜索的方法来估计“香港世界”中的主导方向和消失点。

 

●通过利用“香港世界”中主导方向之间的空间关系来计算相机的姿态,这种方法生成简洁的多项式,比现有的针对非结构化场景的方法更准确和高效。

 

●通过一种新的基于滤波的方法来优化估计的主导方向,然后使用这些优化后的主导方向来进一步优化相机姿态和3D线条,从而提高了准确性和鲁棒性。

 

这个SLAM方法中最大的亮点就是使用了消失点——这个相对于特征点提取,光流更少用到的方法来估算相机的位姿,对于这一点笔者将在方法部分详细介绍。

ff02b200a3f047009ce6672444ce7e0d.png

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++:类与面向对象static和this关键字其他关键字

类与面向对象 struct和class (1)struct是C中用户自定义类型,主要功能是对功能相关数据的封装 (2)struct不能直接封装函数,但可以通过封装函数指针来间接封装函数 (3)struct就是class的初级阶段,class在struct基础上做了很多扩展,便…

cartographer代码学习-扫描匹配(暴力搜索)

在学习栅格地图的时候&#xff0c;我们知道在栅格更新前会先进行扫描匹配获取当前机器人最有可能所在的位姿&#xff1a; // local map frame <- gravity-aligned frame// 扫描匹配, 进行点云与submap的匹配std::unique_ptr<transform::Rigid2d> pose_estimate_2d Sca…

[4]python+selenium - UI自动框架之封装基类BasePage页面

这部分内容是页面上的一些基本操作 from selenium.common.exceptions import TimeoutException, NoSuchElementException, WebDriverException, \StaleElementReferenceException from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support im…

某安全公司DDoS攻击防御2024年6月报告

引言&#xff1a; 在2024年6月&#xff0c;网络空间的安全挑战汹涌澎湃。分布式拒绝服务&#xff08;DDoS&#xff09;攻击频发&#xff0c;针对云服务、金融科技及在线教育平台的精密打击凸显出当前网络威胁环境的严峻性。 某安全公司作为网络安全防护的中坚力量&#xff0c…

mybatis之动态标签

有些时候&#xff0c;sql语句where条件中&#xff0c;需要一些安全判断&#xff0c;例如按性别检索&#xff0c;如果传入的参数是空的&#xff0c;此时查询出的结果很可能是空的&#xff0c;也许我们需要参数为空时&#xff0c;是查出全部的信息。这是我们可以使用动态sql&…

代码随想录算法训练营Day55|42.接雨水、84.柱状图中最大的矩形

接雨水 42. 接雨水 - 力扣&#xff08;LeetCode&#xff09; 暴力解法 对计算接到的雨水&#xff0c;有两种方式&#xff0c;一是按照行来计算。 另一种是按列计算 按列计算容易不乱。基本思路如下&#xff1a; 对每列i进行循环&#xff0c;在循环中&#xff0c;找到该列左…

HarmonyOS Next开发学习手册——视频播放 (Video)

Video组件用于播放视频文件并控制其播放状态&#xff0c;常用于为短视频和应用内部视频的列表页面。当视频完整出现时会自动播放&#xff0c;用户点击视频区域则会暂停播放&#xff0c;同时显示播放进度条&#xff0c;通过拖动播放进度条指定视频播放到具体位置。具体用法请参考…

【JVM-02】垃圾收集(回收)算法

【JVM-02】垃圾收集/回收算法 1. 分代收集算法2. 标记-清除算法3. 标记-复制算法4. 标记-整理算法 1. 分代收集算法 分代收集(回收)算法根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代&#xff0c;这样我们就可以根据各个年代的特点选择合适的垃圾收集…

Kotlin中object关键字的作用

1、对象声明&#xff0c;通过这种方式创建一个单例对象。 object MySingleton{ fun function{ //方法代码块 } } 调用方式&#xff1a;MySingleton.function(),类似像Java的静态方法 2、在类内部声明伴生对象 class OutClass { companion object{ val value 1 fun method(…

【算法题】爬楼梯 (经典递归)

题 爬楼梯&#xff1a; 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 输入&#xff1a; n 2 输出&#xff1a; 2 解释&#xff1a; 有两种方法可以爬到楼顶。 1 阶 1 阶 2 阶 示例 2&#x…

寒武纪实现高维向量的softmax进阶优化和库函数对比

关于寒武纪编程可以参考本人之前的文章添加链接描述,添加链接描述,添加链接描述 实验证明,axis=0和axis=-1的时候,手写softmax速度可以和库函数媲美,甚至于更甚一筹。 src/softmax.mlu #include <bang.h> #include

Nik Collection by DxO:摄影师的创意利器与调色宝典

在数码摄影的世界里&#xff0c;后期处理是摄影师们展现创意、调整细节、提升作品质量的重要步骤。而Nik Collection by DxO作为一款由DxO公司开发的强大照片编辑插件套件&#xff0c;为摄影师们提供了一套全面的、功能丰富的工具集&#xff0c;让他们的创意得以充分发挥。 Ni…

遇到多语言跨境电商系统源码问题?这里有解决方案!

从手机到电脑&#xff0c;从线下到线上&#xff0c;如今&#xff0c;跨境电商正在打破地域界限&#xff0c;成为全球贸易的新引擎。在这个全球化的背景下&#xff0c;跨境电商平台的运营也面临着一系列的挑战&#xff0c;其中之一就是多语言问题。如果你遇到了多语言跨境电商系…

2065. 最大化一张图中的路径价值 Hard

给你一张 无向 图&#xff0c;图中有 n 个节点&#xff0c;节点编号从 0 到 n - 1 &#xff08;都包括&#xff09;。同时给你一个下标从 0 开始的整数数组 values &#xff0c;其中 values[i] 是第 i 个节点的 价值 。同时给你一个下标从 0 开始的二维整数数组 edges &#xf…

小抄 20240629

1 很多人当下焦虑的原因&#xff0c;是短期内无法实现别人长期才能做到的目标&#xff0c;总想几天就能追赶别人几年的努力&#xff0c;只看到了别人的结果&#xff0c;没有思考过别人的过程。 2 把时间线拉长看&#xff0c;人和人都只是阶段性在一起&#xff0c;只要人还在成…

vivado FIFO IP核 中的rd_valid信号

在Vivado中使用FIFO IP核时&#xff0c;valid信号&#xff08;通常称为rd_valid或dout_valid&#xff09;是一个重要的控制信号。让我详细解释它的作用和使用场景。 valid信号的作用&#xff1a; 功能&#xff1a; valid信号是一个输出信号&#xff0c;用于指示FIFO输出数据的…

7基于SpringBoot的SSMP整合案例-表现层开发

目录 1.基于Restfu1进行表现层接口开发 1.1创建功能类 1.2基于Restful制作表现层接口 2.接收参数 2使用Apifox测试表现层接口功能 保存接口&#xff1a; 分页接口&#xff1a; 3.表现层一致性处理 3.1先创建一个工具类&#xff0c;用作后端返回格式统一类&#xff1a;…

springboot校园购物网站APP-计算机毕业设计源码041037

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…

笔记-Python文件: .py、.ipynb、.pyi、.pyc、​.pyd

.py 最常见的Python代码文件后缀名&#xff0c;官方称Python源代码文件。 不用过多解释了~ .ipynb 这个还是比较常见的&#xff0c;.ipynb是Jupyter Notebook文件的扩展名&#xff0c;它代表"IPython Notebook"。 学过数据分析&#xff0c;机器学习&#xff0c;深度…

内卷情况下,工程师也应该了解的项目管理

简介&#xff1a;大家好&#xff0c;我是程序员枫哥&#xff0c;&#x1f31f;一线互联网的IT民工、&#x1f4dd;资深面试官、&#x1f339;Java跳槽网创始人。拥有多年一线研发经验&#xff0c;曾就职过科大讯飞、美团网、平安等公司。在上海有自己小伙伴组建的副业团队&…