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达到了更高的定位准确性,特别是在多帧融合后其效果更为显著。

相关推荐
飞Link7 小时前
PyTorch 核心 API 完全手册:从基础张量到模型部署
人工智能·pytorch·python·深度学习·机器学习
Dxy12393102167 小时前
Python使用Playwright入门教程:从环境搭建到实战应用
开发语言·python·playwright
墨抒颖 msy.plus7 小时前
如何构建现代Agent以OpenManus为例
python·ai编程
爆打维c7 小时前
01BFS算法(例题:网格传送门旅游)
c语言·c++·python·算法·leetcode·广度优先
喵手7 小时前
Python爬虫零基础入门【第六章:增量、去重、断点续爬·第3节】幂等去重:同一条数据反复跑也不会重复入库!
爬虫·python·爬虫实战·python爬虫工程化实战·零基础python爬虫教学·增量、去重、断点续爬·幂等去重
Python毕设指南7 小时前
基于深度学习的旅游推荐系统
python·深度学习·数据分析·django·毕业设计·课程设计
深蓝电商API7 小时前
Selenium多窗口切换与Cookie管理
爬虫·python·selenium·测试工具
小北方城市网8 小时前
Spring Cloud 服务治理实战:构建高可用微服务体系
spring boot·python·rabbitmq·java-rabbitmq·数据库架构
写代码的【黑咖啡】8 小时前
Python中的Statsmodels:统计建模与假设检验
开发语言·python
程序员杰哥8 小时前
Pytest自动化测试框架实战
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest