OrienterNet在二维公共地图实现视觉定位的模型

论文来自MetaAI:

https://arxiv.org/pdf/2304.02009https://arxiv.org/pdf/2304.02009github代码:

https://github.com/facebookresearch/OrienterNet?tab=readme-ov-filehttps://github.com/facebookresearch/OrienterNet?tab=readme-ov-file

研究目的

论文提出的OrienterNet是一种基于二维公共地图实现视觉定位的深度学习模型,旨在替代传统依赖三维点云的视觉定位方法,以便利用简单的二维地图如OpenStreetMap进行准确定位。作者的目标是使模型在不依赖高昂构建成本的三维地图的情况下,通过匹配图像与二维地图元素实现亚米级精度的定位。

行业现状

当前主流的视觉定位方法依赖三维点云等复杂数据结构,这些数据的构建和维护成本高昂,且需要使用高密度传感器如LiDAR来生成场景地图,并需要频繁更新。现有的三维地图存储量巨大,难以部署到移动设备上,这在大规模应用中面临挑战。

传统方法大致可以分为以下几类:

基于三维点云 :通过结构化三维模型来实现高精度的定位,适用于机器人和增强现实(AR)应用。

基于卫星图像 :假设场景平面,采用卫星影像实现粗略的二维定位,但精度较低。

基于二维平面地图:二维地图(如OpenStreetMap)体积小,但因缺乏高度信息而限制了精度。

模型构建

OrienterNet的模型结构通过输入图像的重力方向以及粗略的GPS位置来生成图像的BEV,并与OpenStreetMap进行匹配。模型的输出为摄像头3-DoF位姿,包括位置x, y和朝向θ,通过概率分布进行融合,形成最终的定位结果。

模型讲解

模型包含三个主要模块:

BEV视角推理 :通过CNN从输入图像中提取特征,转换为鸟瞰图,并赋予每个网格单元的置信度,这里还用了重力来矫正BEV的图像,对BEV视角内容做了空间的分区

地图编码 :通过CNN将OpenStreetMap的数据(如建筑物、道路、行人等)编码为包含几何和语义信息的神经网络地图。

模板匹配:利用神经地图和BEV进行模板匹配,这里其实是对于BEV的变换的可能性做一个穷举分类,比如假设xy偏移量和角度偏移都有100种可能性,叠加上就是一万种模版,对于每个变换都和地图做一些傅里叶变换的计算,最终得出各个位置的相似度,生成相机位置的概率分布。

实现的效果

实验表明,OrienterNet能有效实现亚米级别的定位,显著提升了现有方法的准确性。相比传统方法,OrienterNet在二维地图的基础上进行定位,不需要昂贵的三维构建成本,并实现了在AR和机器人应用中的较强泛化能力。模型在多个数据集上的实验结果显示,与精度较低的GPS相比,OrienterNet达到了更高的定位准确性,特别是在多帧融合后其效果更为显著。

相关推荐
爱喝可乐的老王21 小时前
PyTorch深度学习参数初始化和正则化
人工智能·pytorch·深度学习
张3蜂1 天前
Gunicorn深度解析:Python WSGI服务器的王者
服务器·python·gunicorn
rayufo1 天前
【工具】列出指定文件夹下所有的目录和文件
开发语言·前端·python
Python 老手1 天前
Python while 循环 极简核心讲解
java·python·算法
开源技术1 天前
如何将本地LLM模型与Ollama和Python集成
开发语言·python
weixin_437044641 天前
Netbox批量添加设备——堆叠设备
linux·网络·python
我有医保我先冲1 天前
AI 时代 “任务完成“ 与 “专业能力“ 的区分:理论基础、行业影响与个人发展策略
人工智能·python·机器学习
林深现海1 天前
【刘二大人】PyTorch深度学习实践笔记 —— 第一集:深度学习全景概述(超详细版)
pytorch·笔记·深度学习
测试开发Kevin1 天前
小tip:换行符CRLF 和 LF 的区别以及二者在实际项目中的影响
java·开发语言·python
爱学习的阿磊1 天前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python