ECCV 2022|面向精确的主动相机定位算法
标题:ECCV 2022,山东大学、北大、腾讯AILab、斯坦福和三维家联合提出,面向精确的主动相机定位算法
项目地址:https://github.com/qhFang/AccurateACL.
文章:Towards Accurate Active Camera Localization(ECCV 2022)
主要内容:
主动相机定位问题是主动控制相机运动以获得精确的相机姿态,过去的算法大多是基于马尔可夫的,其缺陷在于减少了定位相机的位置不确定性,在离散的姿态空间中定位相机,并且与场景属性无关,这限制了粗略尺度中的相机姿态精度。
为此提出了一种新的主动相机定位算法来克服这些限制,该算法通过增强学习来实现精确的相机定位,由被动和主动定位模块组成。前者通过建立逐点的相机-世界对应关系来优化连续姿态空间中的相机姿态;后者对场景和相机的不确定性分别进行建模以规划正确的路径,用于精确的相机姿态估计。
在具有挑战性的定位场景上验证了算法,实验结果表明其算法在精细尺度相机姿态精度上优于最先进的基于马尔可夫定位的方法和其他方法。
主动相机定位与被动相机定位
被动相机定位是通常我们所理解的相机定位,即估计拍摄一副图像时的相机的位姿,图像是被动获得的,而主动相机是通过控制相机的移动主动地去拍摄一些图片进而准确估计相机的位姿。
主动相机定位通常涉及三个问题:
1. 如何定位:如何定位相机以获得最准确的相机姿势
2. 去哪里:相机在环境中未知位置的初始化,之后它应该怎么移动以进行精确的主动定位。由于在连续相机姿态空间中存在许多可定位位置,主动定位问题变得高度模糊且难以解决。
3. 何时停止:代理不知道其真实的相机姿态,因此要怎么决定何时停止相机移动。
Pipeline:

在环境中的未知位置和方向初始化相机后,主动相机定位的问题是主动控制相机向更好的位置移动以获得准确的相机姿态。
输入:带有位姿真值的RGB-D帧序列、主动定位期间获得的瞬时RGB-D帧。
对于初始RGB-D帧,被动定位模块估计当前相机姿态,主动定位模块估计相机移动的下一个动作,然后获得新的RGB-D帧,重复这样的过程直到主动定位模块决定停止移动并且在最后一步选择最终相机姿态作为估计的相机姿态。
被动定位模块:
被动定位模块是回答“如何定位”问题。
通过被动定位器优化连续姿势空间中的相机姿势,采用了基于决策树的方法以实现这一目的,具体的,

的对应关系,它通过对对应关系的姿势优化来推断相机姿势假设,并通过迭代丢弃最差的姿势假设直到最后一个剩下来确定输入帧的相机姿态。
主动定位模块:
主动定位模块由场景不确定性和相机不确定性组成,分别回答“去哪里”和“何时停止”问题。
场景不确定性:
从两个角度来描述这种属性,即相机位于场景的何处,以及观察到的场景哪一部分对于准确定位更有效。为了对上述信息进行建模,提出了相机驱动场景地图和世界驱动场景地图,他们回答了“去哪里”的问题,并通过结合场景不确定性属性和估计的相机姿态以及世界坐标,引导相机向不确定性较小的场景区域移动。场景不确定性属性完全由场景模型和被动定位模块决定,因此预先计算并对主动定位过程保持不变,而估计的相机姿态和世界坐标是在相机移动期间从捕获的RGB-D帧立即计算得出的。
相机驱动的场景图:


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

世界驱动的场景图:


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

相机不确定性分量:
相机不确定性是相机固有的特性,它表示相机运动期间当前相机姿态估计的质量。相机不确定性模块回答“何时停止”问题,从而确定主动相机运动的自适应停止条件。
理想情况下,相机不确定度值应通过直接将估计的相机姿态与真实相机姿态进行比较来计算,然而在相机主动运动期间,真实相机姿态是不存在的。
为了缓解上述困难,通过将表示真实相机姿态的捕获深度观测和从3D场景模型Dscene投影的深度图像(其表示估计的相机姿态)进行比较来计算相机不确定性值。
给定观察到的深度和投影的深度图像,首先使用已知的相机固有参数将两个图像反向投影到相机空间中的点云中。然后利用ICP来配准两个点云,并估计它们之间的相对相机姿态,当两个点云大致对齐时,采用的ICP方法能够实现非常紧密的点云对齐,因此估计的相对姿态指示当前相机姿态估计距离真实姿态有多远,并被视为相机不确定性分量
为了简化策略学习,许多以前的工作都固定了相机移动的插值长度,这在实施中效率很低。在本论文中提出了基于所提出的相机不确定性分量自适应地停止相机运动。具体而言,认为当相机不确定度分量在 范围内时,可以成功定位以停止相机移动
范围内时,可以成功定位以停止相机移动
为了证明相机不确定性分量的有效性,评估了估计的相对姿态与真实姿态的接近程度,图3包含了一个室内场景中随机采集的4500个样本。可以观察到大多数样本位于对角线上,这意味着相对姿态估计通常是准确的

实验:
在合成和扫描的真实室内场景上评估了算法。
为了缓解在合成数据中创建常见定位挑战的困难,收集了35个平均面积为40.9平方米的高质量室内场景,这些场景具有无纹理的墙壁、重复的枕头/图纸等,并提供了场景的训练/测试分割(训练/测试:15/20个场景)。
对于扫描的真实世界数据,从公共Matterpt3D数据集中收集了5个平均面积为64.8m2的室内场景,仅供评估。
在ACL-synthetic中无移动基线的准确率14.90%,表明被动定位在具有挑战性的定位场景中是不够的,论文算法在相机姿态精度(83.05%)方面优于所有方法



定性结果:

总结:
提出了一种新的主动相机定位算法,由被动和主动定位模块组成。
前者在连续姿态空间中估计精确的相机姿态。
后者从显式建模的相机和场景不确定性中学习强化学习策略以实现准确的相机定位。
本文仅做学术分享,如有侵权,请联系删文。
点击进入—>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视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

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

高质量教程资料、答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~
相关文章:
 
ECCV 2022|面向精确的主动相机定位算法
标题:ECCV 2022,山东大学、北大、腾讯AILab、斯坦福和三维家联合提出,面向精确的主动相机定位算法项目地址:https://github.com/qhFang/AccurateACL.文章:Towards Accurate Active Camera Localization(ECCV 2022&…...
 
web实现环形旋转、圆形、弧形、querySelectorAll、querySelector、clientWidth、sin、cos、PI
文章目录1、HTML部分2、css部分3、JavaScript部分4、微信小程序演示1、HTML部分 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge">&l…...
PyCharm+Python+Selenium自动化测试动态验证码识别
driver.find_element(byBy.ID,valueUSERID).send_keys("admin")driver.find_element(byBy.ID,valuePASSWORD_VIEW).send_keys("123456")#ocr识别原理:先根据验证码的class dl_yzm定位到验证码图片,然后将验证码截图保存,…...
git版本回退简单记录
简单记录git版本回退的命令,参考的是这篇文章1 首先查看以前存档的版本: git log1. 知道要回退的版本和现在的版本差了多少代 回退上一代版本(1个以前) git reset –hard HEAD^回退上上一代版本(2个以前࿰…...
 
QT入门Display Widgets之QLine、QLcdNumber、QTextBrowser
目录 一、QLine界面相关 1、布局介绍 2、界面基本属性 二、QLCDNumber的介绍 1、界面布局 2、定时器代码测试 三、QTextBrowser 此文为作者原创,创作不易,转载请标明出处! 一、QLine界面相关 1、布局介绍 先看下界面中创建个Q…...
 
Spring学习笔记
目录1 IOC容器1.1 概念1.2 IOC的底层原理1.3 Spring中IOC容器的两种实现方式(两个接口)1.3.1 BeanFactory接口1.3.2 ApplicationContext接口1.3.3 为什么开发中使用ApplicationContext接口1.3.4 ApplicationContext接口的两个实现类1.4 IOC操作之bean管理1.4.0 bean是什么&…...
 
数据的标准化处理
假设各个指标之间的水平相差很大,此时直接使用原始指标进行分析时,数值较大的指标,在评价模型中的绝对作用就会显得较为突出和重要,而数值较小的指标,其作用则可能就会显得微不足道。 因此,为了统一比较的标…...
 
性能优化|记一次线上OOM问题处理
概述最近线上监控发现 OOM 涨幅较大,因此去尝试定位和修复这个问题,在修复了一些内存泄漏和大对象占用问题后, OOM 依旧未达到正常标准,在这些新上报的 hprof 文件中,发现几乎所有 case 中都有个叫 FinalizerReference 的对象&…...
 
Vue动态粒子特效插件(背景线条吸附动画)
目录 效果图: 一、安装: 二、引入 main.js 文件: 三、使用: 四、属性说明: 效果图: 一、安装: npm install vue-particles --save 二、引入 main.js 文件: import VueParticles…...
【Java 类】002-类、属性、方法、代码块
【Java 类】002-类、属性、方法、代码块 文章目录【Java 类】002-类、属性、方法、代码块一、类1、类与对象2、类的作用3、创建与使用类类结构创建类调用类运行结果4、Java 类的执行过程5、封装、继承、多态、抽象类、内部类、接口、枚举、记录、注解等二、属性1、概述2、类型3…...
Ubuntu Linux 编译安装的基本步骤
文章目录1 基本步骤若报错: No such file or directory2 解压 tar.bz2文件参考:1 基本步骤 解压: tar -zxvf file.tar.gz 进入解压后的文件夹: cd file 源码编译安装 ./configure # ./configmakesudo make install 若报错&…...
 
day59反刍笔记
1.本地环境安装vue后,没有vue.js文件,只有vue.cjs.js文件, 引用后也无法正常使用,看npm install vue后的文件夹中没有vue.js文件_找不到vue.js_一枝风的博客-CSDN博客 老哥的博客后得到启发,将原本的命令由࿱…...
【阅读笔记】你不知道的Javascript--强制类型转换4
目录强制类型转换基本概念JSONboolean强转归纳其他知识点被诟病的安全使用隐式强转法则抽象关系比较语法表达式变动强制类型转换 基本概念 类型转换发生在静态类型语言的编译阶段; 强制类型转换则发生在动态类型语言的运行时(runtime) JSON…...
华为OD机试真题Python实现【有效子字符串】真题+解题思路+代码(20222023)
有效子字符串 题目 输入两个字符串S和L,都只包含小写字母, S长度 <= 100,L长度 <= 500000, 判断S是否是L的有效子字符串, 判定规则:S中的每个字符在L中都能找到(可以不连续) 且S在L中字符的前后顺序与S中顺序要保持一致 例如: S="ace"是L="abcd…...
 
上门按摩预约APP源码-东郊到家源码(开发,PHP,平台搭建)
一、什么是上门按摩预约APP源码? 上门按摩预约APP源码是一款家政服务类型的APP,可以帮忙用户在家就能享受按摩的服务。APP源码分两端,一端是用户端,另外一端是技师端。采用的技术,前端是安卓IOS,后端是PHP&…...
 
STL讲解——模拟实现vector
STL讲解——模拟实现vector vector深度剖析 在STL源码中,发现vector定义的并不是 start、size、capacity,而是start、finish、end_of_storage. 这样就可以得到size()和capacity()。 sizefinish-start capacityend_of_storage-start 扩容可能是本地扩容也…...
各种经典排序算法介绍及实现源码
一,冒泡排序(Bubble Sort) 排序算法是程序员必须了解和熟悉的一类算法,排序算法有很多种,基础的如:冒泡、插入、选择、快速、归并、计数、基数和桶排序等。 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求,如果不…...
 
历史大讲堂:这是真·图形化 苹果系统历史回顾(上)
众所周知,米国有个非常牛掰的公司叫苹果,想必大家对这个logo不陌生吧。 目前已发布的苹果产品有iPhone、iPad、iPod等等,简直花样繁多,而且各种功能很好用,我的手机就是一部苹果iPhone X。 等一下,似乎扯远…...
 
今天女神节,用python画个贺卡送给母亲吧
今天女神节,你给女神妈妈准备了什么祝福呢?如果还没有,那么画个贺卡送给她吧,在你眼里,她是一个什么样的人呢? 是"可爱",“温柔”,“美丽”,“漂亮”…...
 
【编程基础之Python】11、Python中的表达式
【编程基础之Python】11、Python中的表达式Python中的表达式表达式与运算符算术表达式赋值表达式比较表达式逻辑表达式位运算表达式总结Python中的表达式 在Python中,表达式是由操作数、运算符和函数调用等组成的语法结构,可以进行各种数学运算、逻辑判…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
 
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
 
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
