ECCV 2022|面向精确的主动相机定位算法

news2024/11/15 9:18:06

标题:ECCV 2022,山东大学、北大、腾讯AILab、斯坦福和三维家联合提出,面向精确的主动相机定位算法

项目地址:https://github.com/qhFang/AccurateACL.

文章:Towards Accurate Active Camera Localization(ECCV 2022)

主要内容:

主动相机定位问题是主动控制相机运动以获得精确的相机姿态,过去的算法大多是基于马尔可夫的,其缺陷在于减少了定位相机的位置不确定性,在离散的姿态空间中定位相机,并且与场景属性无关,这限制了粗略尺度中的相机姿态精度。

为此提出了一种新的主动相机定位算法来克服这些限制,该算法通过增强学习来实现精确的相机定位,由被动和主动定位模块组成。前者通过建立逐点的相机-世界对应关系来优化连续姿态空间中的相机姿态;后者对场景和相机的不确定性分别进行建模以规划正确的路径,用于精确的相机姿态估计。

在具有挑战性的定位场景上验证了算法,实验结果表明其算法在精细尺度相机姿态精度上优于最先进的基于马尔可夫定位的方法和其他方法。

主动相机定位与被动相机定位

被动相机定位是通常我们所理解的相机定位,即估计拍摄一副图像时的相机的位姿,图像是被动获得的,而主动相机是通过控制相机的移动主动地去拍摄一些图片进而准确估计相机的位姿。

主动相机定位通常涉及三个问题:

1. 如何定位:如何定位相机以获得最准确的相机姿势

2. 去哪里:相机在环境中未知位置的初始化,之后它应该怎么移动以进行精确的主动定位。由于在连续相机姿态空间中存在许多可定位位置,主动定位问题变得高度模糊且难以解决。

3. 何时停止:代理不知道其真实的相机姿态,因此要怎么决定何时停止相机移动。

Pipeline:

0d55b919b95b20e1a87332743c5ab07e.png

在环境中的未知位置和方向初始化相机后,主动相机定位的问题是主动控制相机向更好的位置移动以获得准确的相机姿态。

输入:带有位姿真值的RGB-D帧序列、主动定位期间获得的瞬时RGB-D帧。

对于初始RGB-D帧,被动定位模块估计当前相机姿态,主动定位模块估计相机移动的下一个动作,然后获得新的RGB-D帧,重复这样的过程直到主动定位模块决定停止移动并且在最后一步选择最终相机姿态作为估计的相机姿态。

被动定位模块:

被动定位模块是回答“如何定位”问题。

通过被动定位器优化连续姿势空间中的相机姿势,采用了基于决策树的方法以实现这一目的,具体的,

9d69244d46f7a2b5f7cb7516e764a54e.png

的对应关系,它通过对对应关系的姿势优化来推断相机姿势假设,并通过迭代丢弃最差的姿势假设直到最后一个剩下来确定输入帧的相机姿态。

主动定位模块:

主动定位模块由场景不确定性和相机不确定性组成,分别回答“去哪里”和“何时停止”问题。

场景不确定性:

从两个角度来描述这种属性,即相机位于场景的何处,以及观察到的场景哪一部分对于准确定位更有效。为了对上述信息进行建模,提出了相机驱动场景地图和世界驱动场景地图,他们回答了“去哪里”的问题,并通过结合场景不确定性属性和估计的相机姿态以及世界坐标,引导相机向不确定性较小的场景区域移动。场景不确定性属性完全由场景模型和被动定位模块决定,因此预先计算并对主动定位过程保持不变,而估计的相机姿态和世界坐标是在相机移动期间从捕获的RGB-D帧立即计算得出的。

相机驱动的场景图:

6096349ece8eb0b03477d4f900bc6b07.png

780e05af30ea3780d4a88cf751c074b6.png

为了过滤掉无效的相机位置,将所有地图通道初始化为二进制可穿越地图,其中可穿越位置和障碍位置分别用0和−1填充,并且只更新可穿越位置的值。

fa123f2259973523520fce8a6b2eef47.png

世界驱动的场景图:

2dedbd2999178e185d93c4f8bc57d65c.png

a3b699f0b1db7a46312f6ff6cbd833a8.png

当前世界坐标估计指示使用所估计的相机姿态从当前RGB-D帧反向投影的世界坐标位于场景点云上的何处,因此被计算为描述每个场景点是否被至少一个反向投影世界坐标占据的逐点二进制值。

0e8dee85a43e61590ca05e4f7a5dfce7.jpeg

相机不确定性分量:

相机不确定性是相机固有的特性,它表示相机运动期间当前相机姿态估计的质量。相机不确定性模块回答“何时停止”问题,从而确定主动相机运动的自适应停止条件。

理想情况下,相机不确定度值应通过直接将估计的相机姿态与真实相机姿态进行比较来计算,然而在相机主动运动期间,真实相机姿态是不存在的。

为了缓解上述困难,通过将表示真实相机姿态的捕获深度观测和从3D场景模型Dscene投影的深度图像(其表示估计的相机姿态)进行比较来计算相机不确定性值。

给定观察到的深度和投影的深度图像,首先使用已知的相机固有参数将两个图像反向投影到相机空间中的点云中。然后利用ICP来配准两个点云,并估计它们之间的相对相机姿态,当两个点云大致对齐时,采用的ICP方法能够实现非常紧密的点云对齐,因此估计的相对姿态指示当前相机姿态估计距离真实姿态有多远,并被视为相机不确定性分量36a34cb64a072dd5518e63c7d48dc6a0.jpeg

为了简化策略学习,许多以前的工作都固定了相机移动的插值长度,这在实施中效率很低。在本论文中提出了基于所提出的相机不确定性分量自适应地停止相机运动。具体而言,认为当相机不确定度分量在83bb5ef866e4995bef44b51cf600f906.jpeg范围内时,可以成功定位以停止相机移动

为了证明相机不确定性分量的有效性,评估了估计的相对姿态与真实姿态的接近程度,图3包含了一个室内场景中随机采集的4500个样本。可以观察到大多数样本位于对角线上,这意味着相对姿态估计通常是准确的

e25c612b8c549be5a06670d29a616893.png

实验:

在合成和扫描的真实室内场景上评估了算法。

为了缓解在合成数据中创建常见定位挑战的困难,收集了35个平均面积为40.9平方米的高质量室内场景,这些场景具有无纹理的墙壁、重复的枕头/图纸等,并提供了场景的训练/测试分割(训练/测试:15/20个场景)。

对于扫描的真实世界数据,从公共Matterpt3D数据集中收集了5个平均面积为64.8m2的室内场景,仅供评估。

在ACL-synthetic中无移动基线的准确率14.90%,表明被动定位在具有挑战性的定位场景中是不够的,论文算法在相机姿态精度(83.05%)方面优于所有方法

9e64f5f34368b8e93c0e18e78a5e9603.png

012b8f2d80a0094102691ea334bf81da.png

a0078400e92a5a2114699cc1014306db.png

定性结果:

db1eb8fc9f7e197e4863b583f301fdd7.png

总结:

提出了一种新的主动相机定位算法,由被动和主动定位模块组成。

前者在连续姿态空间中估计精确的相机姿态。

后者从显式建模的相机和场景不确定性中学习强化学习策略以实现准确的相机定位。

本文仅做学术分享,如有侵权,请联系删文。

点击进入—>3D视觉工坊学习交流群

干货下载与学习

后台回复:巴塞罗自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件

后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf

后台回复:3D视觉课程,即可学习3D视觉领域精品课程

3D视觉工坊精品课程官网:3dcver.com

1.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
2.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
3.国内首个面向工业级实战的点云处理课程
4.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
5.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
6.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
7.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

8.从零搭建一套结构光3D重建系统[理论+源码+实践]

9.单目深度估计方法:算法梳理与代码实现

10.自动驾驶中的深度学习模型部署实战

11.相机模型与标定(单目+双目+鱼眼)

12.重磅!四旋翼飞行器:算法与实战

13.ROS2从入门到精通:理论与实战

14.国内首个3D缺陷检测教程:理论、源码与实战

15.基于Open3D的点云处理入门与实战教程

16.透彻理解视觉ORB-SLAM3:理论基础+代码解析+算法改进

17.机械臂抓取从入门到实战

重磅!粉丝学习交流群已成立

交流群主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、ORB-SLAM系列源码交流、深度估计、TOF、求职交流等方向。

扫描以下二维码,添加小助理微信(dddvisiona),一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

7c56345564f4d0f4faf28152a7156360.jpeg

▲长按加微信群或投稿,微信号:dddvisiona

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看,3天内无条件退款

7ed31c19bf307ba962fbaa5ffe183b30.jpeg

高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

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

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

相关文章

oneblog_justauth_三方登录配置【Gitee】

文章目录oneblog添加第三方平台gitee中创建三方应用完善信息oneblog添加第三方平台 1.oneblog管理端,点击左侧菜单 网站管理——>社会化登录配置管理 ,添加一个社会化登录 2.编辑信息如下,选择gitee平台后复制redirectUri,然后去gitee获取clientId和…

vulnhub five86-2

总结:sudo -l,抓流量包,搜索引擎。。 目录 下载地址 漏洞分析 信息收集 网站渗透 ​编辑 反弹shell提权 下载地址 Five86-2.zip (Size: 1.7 GB)Download (Mirror): https://download.vulnhub.com/five86/Five86-2.zip使用:下…

电子台账:模板制作之一——列过滤(水平过滤)

1 简介列过滤即水平过滤。一般情况下,企业数据源文件中有很多数据列,其中大部分数据列中的数据对电子台账来说是没有用的。列过滤就是确定企业数据文件的哪几列有用,以及有用的列分别对应到台账(模板)的哪一列。列过滤…

FreeSql使用

目的: 1.方库分表 2.主从分离 3.分布式事务 过程&#xff1a; 官网&#xff1a;指南 | FreeSql 官方文档 1.Startup.cs 添加配置&#xff08;本地数据库MySql&#xff09; ConfigureServices&#xff1a; Func<IServiceProvider, IFreeSql> fsql r >{IFreeSql …

吉利银河L7、长城哈弗B07、比亚迪宋Plus DM-i,自主品牌决战混动

2月23日&#xff0c;吉利推出全新的中高端新能源产品序列——吉利银河。当日&#xff0c;吉利推出了首款智能电混SUV「银河L7」&#xff0c;新车将在二季度交付。本月10日&#xff0c;长城汽车也计划举办智能新能源干货大会&#xff0c;其「颠覆技术」等宣传直面新一代的新能源…

SUDO(CVE-2021-3156复现)提权rsync未授权访问提权

一、SUDO(CVE-2021-3156复现 判断漏洞存在&#xff1a; 1.版本 sudo: 1.8.2 - 1.8.31p2 sudo: 1.9.0 - 1.9.5p1 2.报错存在次漏洞 sudoedit -s / 不是报错信息&#xff1a; 复现&#xff1a; 环境&#xff1a;docker的centos7 需要新建一个用户 docker pull chenaot…

k8s学习之路 | Day20 k8s 工作负载 Deployment(下)

文章目录3. HPA 动态扩缩容3.1 HPA3.2 安装 metrics-server3.3 验证指标收集3.4 扩缩容的实现3.5 增加负载3.6 降低负载3.7 更多的度量指标4. 金丝雀部署4.1 蓝绿部署4.2 金丝雀部署4.3 金丝雀部署的实现5. Deployment 状态与排查5.1 进行中的 Deployment5.2 完成的 Deployment…

wordpress更新文章后总是向文章内连接发送GET请求

通过观察wordpress请求发现&#xff0c;wordpress在更新文章后会向文章发送GET请求。在发送请求之前会执行一个调用定时的一个请求POST /wp-cron.php?doing_wp_cron1678081385.6844499111175537109375 HTTP/1.1执行这个定时后&#xff0c;这篇文章的所有链接都会发送HEAD和GET…

源码阅读笔记 InputFormat、FileInputFormat、CombineTextInputFormat

1. InputFormat InputFormat是MapReduce框架提供的用来处理job输入的基类 它主要定义了三个功能&#xff1a; 1.验证job输入是否合法 2.对输入文件进行逻辑切片(InputSplit)&#xff0c;然后将每个切片分发给单独的MapTask 3.提供切片读取器(Re…

Java的注解(Annotation)

Java 注解&#xff08;Annotation&#xff09;又称 Java 标注&#xff0c;是 JDK5.0 引入的一种注释机制。Java 中的类、构造器、方法、成员变量、参数等都可以被注解进行标注。例如JUnit单元测试中的Test方法&#xff0c;可以使得方法直接运行。JUnit单元测试Test单元测试是针…

2023年湖北助理工程师在哪里申报?助理工程师的五大作用你知道吗

2023年湖北助理工程师在哪里申报&#xff1f;助理工程师的五大作用你知道吗 助理工程师申报条件&#xff1a; 大学本科毕业&#xff1a;毕业满一年&#xff0c;工科类专业&#xff0c;6个月以上社保证明 大学专科毕业&#xff1a;毕业满三年&#xff0c;工科类专业&#xff0…

贝塞尔曲线与B样条曲线

文章目录0.参考1.问题起源与插值法的曲线拟合1.1.问题起源1.2.拉格朗日插值1.3.“基”的概念1.4.插值存在的Runge现象2.贝塞尔曲线2.1.控制点的思想2.2.由控制点生成贝塞尔曲线2.3.多个控制点时的贝塞尔曲线公式2.4.贝塞尔曲线的递推公式2.5.贝塞尔曲线的性质3.B样条曲线3.1.B样…

项目设计原则

单一设计原则 做过管理系统项目的同学肯定都接触过用户、机构、角色管理这些模块&#xff0c;实现方式都是基于RBAC模型&#xff08;Role-Based Access Control&#xff0c;基于角色的访问控制&#xff0c;通过分配和取消角色来完成用户权限的授予和取消&#xff0c;使动作主体…

web开发 用idea创建一个新项目

这个写着就是给自己当备忘录用的QAQ 这个老师上课一通操作啥也没看清…卑微搞了半天看样子是成功了 记录一下省的以后忘了怎么创建&#xff08;&#xff1f; zufe lxy 2023.3 先行条件是已经自己装好了Tomcat和idea&#xff01;&#xff01;&#xff08;我的idea是申请了教育…

MSDP实验配置

目录 配置MSDP 配置PIM SM协议 配置各PIM SM域内的静态RP 配置MSDP对等体 配置域内的MSDP对等体 AR8和AR9建立EBGP邻居 配置域间的MSDP对等体 进行实验验证 什么是MSDP MSDP&#xff08;Multicast Source Discovery Protocol&#xff09;组播源发现协议的简称 用来传递…

帆船结构3D线上展示教学的亮点有哪些?

由广州华锐互动开发的帆船结构3D线上展示教学系统&#xff0c;是一种创新的教学方式&#xff0c;基于虚拟现实技术&#xff0c;通过3D模型、交互式模拟等技术手段&#xff0c;可以让学生在虚拟环境中进行帆船组装和调试训练&#xff0c;以达到实践教学的目的。不同于传统的实践…

Python绘图

1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import numpy as np import matplotlib as mpl import matplotlib.pyplot as pltnp.random.seed(1000) y np.random.standard_normal(10) print "y %s"% y x range(len(y)) print "x%s&q…

XShell连接ubuntu20.04.LTS

1 下载XshellXShell官方下载地址打开XSHELL官方下载地址&#xff0c;我们可以选择【家庭和学校用户的免费许可证】&#xff0c;输入邮箱之后即可获得下载链接安装非常简单&#xff0c;跟着提示进行即可。2 连接ubuntu2.1 查看ubuntu的ip地址输入命令查看ip地址ifconfig刚开始可…

ssh 远程连接方式总结

SSH 概述 SSH&#xff08;安全外壳协议 Secure Shell Protocol&#xff0c;简称SSH&#xff09;是一种加密的网络传输协议&#xff0c;用于在网络中实现客户端和服务端的连接&#xff0c;典型的如我们在本地电脑通过 SSH连接远程服务器&#xff0c;从而做开发&#xff0c;Wind…

SpringCloud基础(3)-微服务远程调用

SpringCloud基础1. 微服务的远程调用2. Eureka注册中心1. 搭建Eureka服务注册中心1. 微服务的远程调用 服务提供者&#xff1a;一次业务中被其它服务调用的一方&#xff1b; 服务消费者&#xff1a;一次业务中调用其它服务的一方&#xff1b; 2. Eureka注册中心 记录所有服务…