《RelPose++: Recovering 6D Poses from Sparse-view Observations》阅读笔记
论文地址:https://arxiv.org/abs/2305.04926
项目地址:https://github.com/amyxlase/relpose-plus-plus
---------------------------------------------------------------------------------------------------------------------------------
任务:
从稀疏视图 图像集(2-8张图像)估计6D相机姿势 的任务
挑战:
这项任务是几乎所有当代(神经)重建算法的重要预处理阶段,但在稀疏视图的情况下仍然具有挑战性,特别是对于具有视觉对称性 和无纹理表面 的对象。
动机:
虽然几种稀疏视图重建方法已经显示出有希望的结果,但它们严重依赖于已知的(精确或近似)6D相机姿势来进行这种3D推理,并回避了如何首先获得这些6D姿势 的问题。
提出:
开发了一个系统,可以帮助弥合这一差距,并在给定通用对象(例如 Fetch 机器人)的稀疏图像集的情况下稳健地推断(粗略)6D 姿势,即RelPose++,该方法建立在RelPose基础之上。

大致过程:
首先使用ResNet 50提取全局图像特征 。作者对图像索引进行位置编码,并将边界框参数连接为Transformer的输入。
在对所有图像特征进行联合处理后,分别对旋转和平移进行估计。
为了处理姿态的模糊性,作者使用基于能量的公式(RelPose)对旋转分布进行建模。因为在最接近所有光轴的唯一世界坐标上预测原点,所以可以直接从学习到的特征中回归相机平移。
贡献:
本文基于RelPose框架改造,在此基础上添加了两个关键扩展:
首先,使用注意力transformer层 来联合处理多个图像,因为对象的额外视图可能会解决任何给定图像对中的对称性歧义(例如,一个杯子的把手在第三个视图中变得可见)。
其次,通过定义一个适当的坐标系统 来扩展这个网络,以报告相机的平移,从而解耦旋转估计中的歧义与平移预测。
结果:
1. 在CO3D 数据集的 41 个类别进行训练,并且能够仅从几张图像中恢复对象的 6D 相机姿势
2. 评估了可见类别、不可见类别甚至新数据集(以零样本方式),将旋转预测提高了 10% 以上现有技术。
3. 通过测量预测相机中心的准确性来评估完整的6D相机姿势(同时考虑相似性变换模糊性),并展示了我们提出的坐标系的好处。
4. 制定了一个度量,将预测的相机平移和预测旋转的准确性解耦,这对于未来的基准测试通常很有用

方法细节:
问题定义:
给定 N 张(大致朝向中心的)输入图像集合
,目标是恢复每张图像的一致的6自由度(6-D)相机姿态,即
,其中
和
分别对应第 i 个相机视点的旋转和平移。
方法结构:
为了估计相机旋转,作者采用RelPose 提出的框架,在给定成对相对旋转分布的情况下,可以获得一组一致的旋转(详见第1节)。然而,与RelPose仅使用两张图像来预测这些分布不同,引入了一个基于 Transformer 的模块,以便成对预测的分布能够捕捉多视图线索(详见第2节)。然后,将这种多视图推理模块扩展到相机相关的平移推断,同时定义一个世界坐标系 ,以减少预测歧义(详见第3节)。
1.Global Rotations from Pairwise Distributions
由于绝对相机旋转的预测在世界坐标系框架下是不确定的,RelPose通过推断成对相对旋转来获得一致的全局旋转 。它使用基于energybased model,通过多层感知器 (MLP) 近似成对相对旋转的对数似然性,视为negative energy or score。
(Energy-Based Model:是一类用于建模复杂分布和优化问题的框架。在能量基模型中,我们通过一个能量函数 E(x) 来定义一个系统的状态 x 的能量。该能量函数的值越低,对应的状态就越可能出现。因此,我们可以通过最小化能量函数来找到最可能的状态。)
RelPose将寻找全局旋转的问题 转化为模式寻求优化问题
具体来说,通过贪婪初始化和块坐标上升,恢复了一组最大化相对旋转分数总和的全局旋转。 其中,图像特征是通过每帧的ResNet-50编码器提取的,

其中,图像特征
是通过每帧的ResNet-50编码器提取的 
2. Multi-view Cues for Pairwise Distributions
与RelPose类似,RelPose++使用能量基模型来建模成对相对旋转的分布,不仅依赖于图像
和
来获得相应的特征
和
,还提出了一种基于transformer的模块,使这些特征能够依赖于多视图集合中的其他图像。
Multi-view Conditioned Image Features.
首先使用ResNet 提取每张图像的特征。还在ResNet特征中添加一个ID特定的编码 ,并将用于从较大图像中获取输入裁剪的边界框的嵌入连接起来 (因为在推断平移时,这可能提供有关场景规模的信息)。
与RelPose直接将这些图像特定特征作为能量预测模块的输入不同,RelPose++使用一个transformer,在其他图像的上下文中更新这些特征 。RelPose++将特征提取器和transformer的这种组合称为场景编码器
,在给定N个输入图像
的情况下,输出多视图条件特征
对应每个图像:

Learning Objective.
给定一个包含多视图图像的多样化对象的数据集,RelPose++通过最小化真实(相对)旋转的负对数似然性(NLL)来共同训练场景编码器
和成对能量基模型
。特别地,我们随机采样 N∈[2,8] 张训练对象的图像,并在我们预测的分布下最小化真实相对旋转
的NLL:

3. Predicting Camera Translations
目标: 使用多视图感知的图像特征
,可以直接预测每张图像的相机平移 
挑战: 学习这种预测的一个核心障碍是世界坐标系固有的歧义性 。从结构光(SfM)获得的“真实”相机只在任意相似变换下有意义,训练网络来预测这些相机可能导致每个序列中的训练目标不一致。
解决: 定义一个一致的坐标系 ,以便网络能够学习做出有意义的预测
Geometric Interpretation of Camera Translation.(相机平移的几何解释)
相机外部参数
定义了将世界坐标系中的点
换到相机坐标系

其中,
是每个相机坐标系中世界原点的位置(而不是相机在世界坐标系中的位置!)
世界坐标系的任意旋转并不影响每个相机的平移,唯一相关的因素是所选择的世界原点的位置(以及缩放)
为了预测旋转,作者必须决定将世界原点放置在哪里 以及如何选择合适的比例 。
Look-at Centered Coordinate System.
第一种解决:将世界坐标系定义为第一个相机的中心(称为“第一个相机坐标系”)
问题:这个坐标系中的每个相机平移将相机之间的相对旋转纠缠在一起(因为 t_i 是第一个相机在第i个相机坐标系中的位置)对于(例如对称的)物体,估计这种相对变换的歧义会导致平移预测的不确定性。
作者解决: 对于相机大致朝向中心的捕获,将最靠近输入相机光轴的唯一点定义为世界原点(相机光轴交点为中心的世界坐标帧)。即将“物体中心”设置为世界原点,然后平移简单地对应于推断物体在相机坐标系中的位置(即使不确定相机旋转,这一点也是不变的)。
同时,为了解决比例歧义,作者假设第一个相机距离该点的距离为单位距离。
Putting it Together.
除了能量基预测器(relpose), 还训练一个平移预测模块,该模块在给定多视图特征的情况下推断每个相机的
,因为relpose1++将场景归一化,使得
,所以作者向
提供第一个图像特征 
为了定义训练的目标平移,relpose1++使用真实相机(SfM)
首先, 确定最靠近所有光轴的点c
然后,将世界坐标系转换为以c为中心,从而获得目标平移:
其中,比例 s 确保
。
对于训练,使用目标平移和预测平移之间的L1损失

结合优化的全局旋转,这些预测的平移在推理时为给定的稀疏输入图像集提供6自由度相机姿态。
Experiments
作者的实验思路很不错,大家可以借鉴(详细看论文)
---------------------------------------------------------------------------------------------------------------------------------
建议大家可以先阅读RelPose,再阅读本篇文章,很多内容作者都是引用RelPose 而没有细说
