一、前言:相关知识
1.PnP算法:
PnP(Perspective-n-Point)是求解 3D 到 2D 点对运动的方法。它描述了当我们知道n 个 3D 空间点以及它们的投影位置时,如何估计相机所在的位姿。——《视觉SLAM十四讲》
通俗的讲,PnP问题就是在已知世界坐标系下N个空间点的真实坐标以及这些空间点在图像上的投影,如何计算相机所在的位姿。换句话说,就是已知量为空间中的真实坐标和图像坐标,求解相机的位姿(未知量)
2.BOP挑战赛
BOP: Benchmark for 6D Object Pose Estimation提出了一种基于单RGB-D输入图像的刚体6D姿态估计基准。训练数据由一个纹理映射的三维物体模型或已知6D姿势的物体图像组成。该基准包括:i)8个统一格式的数据集,涵盖不同的实际情况,包括两个新的数据集,侧重于不同的照明条件;ii)一个具有姿势误差函数的评估方法,处理姿势模糊性,iii)对15种不同的近期方法进行综合评估,以了解该领域的现状;iv)一个在线评估系统,可随时提交新的结果。
3.实例级&类别级&novel:
实例级:训练和测试为统一实例CAD的不同图像
类别级:针对同一类的不同物体,可以没有CAD
novel:即使测试给CAD,也是与训练时完全不同的物体
二、6-Dof Pose Esitimation
针对单帧
-
发展历程:逐步泛化
- 实例级(需要CAD,且训练时见过)–>类别级
-
当前发展方向:
- 遮挡、复杂场景问题
- 引入潜在空间描述(MatchU、FoundationPose)
- novel物体(SAM-6D)
- 数据获得问题—小样本/数据生成手段(OnePose、FoundationPose、SAM-6D)
- 联合建模(Esitimation与tracking –FoundationPose、Esitimation与segmentation–SAM-6D、tracking与重建–BundleSDF)
-
思路
- 直接回归pose----旋转空间非线性,很难,可以做离散化
- 利用关键点,再PnP:搜索空间比直接回归要小
- 回归关键点坐标
- 投票----有效处理遮挡
相关论文整理
实例级
可以通过实例分割+与标准CAD模型进行模版匹配
-
DenseFusion(CVPR 2019):把RBG图像和depth图通过特征融合,做了统一的处理,得到像素级的稠密特征。并引入iterative pose refinement,在预测精度和实时性上有很大优势。
-
PVN3D(CVPR 2020):将基于二维关键点的方法扩展到三维关键点,提出了一种霍夫投票网络用于从逐点特征中找到点云点到预设关键点的偏移量,同一实例的所有点基于偏移量对3D关键点进行投票,得到物体的3D关键点,再做PnP。解决了2D关键点基于投影而损失几何信息的问题。但对称物体不好
输入RGBD图像,通过特征提取模块融合表面特征和几何信息获得每个点的特征。这些特征被送至一个3D关键点检测模块M_K,去训练以预测出每个点相对于关键点的偏移量。另外,我们提出了一个实例语义分割模块来处理场景中有多物体的情况。语义分割模块M_S预测出每个点的语义标签,一个中心投票模块预测每个点相对于物体中心的平移偏移量(为了区分不同实例)。 -
MatchU(2024):引入了一种新型的潜在融合注意力模块,用于有效地融合纹理和几何特征,以从RGB-D数据中实现通用姿态估计,并用桥接粗匹配损失训练MatchU。输入RGBD和CAD,将RGB的纹理信息分别结合CAD点云P 和 Depth图恢复的局部点云Q,提取得到一个潜在空间描述,比对P和Q的描述子来预测位姿。
类别级
由于缺少实例目标的CAD模型,需要额外对每个category设计标准的范式
-
NOCS(CVPR 2019):提出了NOCS(规范化对象坐标空间,包含在单位立方体内的3D空间),核心是卷积神经网络(CNN),它可以从单个RGB图像联合估计对象类别,实例蒙版和多个对象的NOCS映射(NOCS map)。将NOCS映射与深度映射一起使用,以估计完整的6D姿态和对象的尺寸大小。
-
ANCSH(CVPR 2020):铰接物体版本的NOCS,分成2-level,在root-level,使用NAOCS提供一个object-level的规范化框架,具有规范化的位姿,大小和关节。在leaf-level引入NPCS,作为part-level,为关节体的每一个部分做出规范化。
-
Shape Prior Deformation(ECCV 2020):Category-level的6D位姿估计中很重要的一点就是处理类内的形状变化(intra-class shape variation),这篇paper针对这一点提出了一个网络,通过显式地从预先学习好的类别形状先验中建模出形变,来重构出物体的3D模型,并通过推断物体实例的深度信息和重构的3D模型之间的稠密对应关系,来预测出物体的6D位姿和尺寸
其中shape prior通过auto-encode网络预先学习得到:在NOCS中对齐的同类别点云encode到latent空间,取均值后再decode。网络学习得到形变域D和对应矩阵A(点云V到先验Mc各点的关系),则NOCS坐标P=A*(Mc+D) -
Equi-pose(NeurIPS 2021 ):提出了一种**自监督&&网络,在没有CAD模型、gt位姿标注的情况下,只输入点云就可以实现类别级物体位姿估计
-
StablePose(CVPR 2021) :利用几何稳定的面片三元组预测点云输入的物体位姿
-
SSP-Pose(IROS2022):将RGB-D直接回归的pose,和利用对称先验知识指导形状先验变形得到的pose,在NOCS空间实现一致性,解决形状先验模型不够准确、特征提取和姿态回归之间存在不一致性的问题。
-
FoundationPose(2023):提出了一个用于 6D 物体姿态估计和跟踪的统一基础模型,支持基于模型和无模型的设置,可以在测试时立即应用于新对象,而无需微调(重在通用性和数据生成)
-
SAM-6D(CVPR 2024):零样本解决6D位姿估计问题,联合建模了分割和位姿估计,第一阶段利用分割中Segment Anything Model的零样本能力生成与类别无关的物体建议,第二阶段将分割出的点云和目标点云依次做粗略、稠密对应,实现位姿估计。
三、Pose Tracking
针对连续视频(更符合实际)
-
6PACK(2019):基于关键点,基本思想是通过距离加权投票出一个目标锚点(距离物体质心最近的锚点),再由目标锚点无监督生成1组有顺序的关键点(无需手动标注),通过连续帧之间关键点的坐标变化估计帧间的相对位姿Δp。对于旋转对称的物体,提出了一种旋转不变的空间坐标表示。(对初始化敏感)
-
CAPTRA(ICCV 2021):估计的是连续的9Dof Pose,包括6Dof Pose和3Dof Bounding Box,通过给定当前帧的3D点云和上一帧估计的9Dof Pose,CAPTRA输出当前帧9Dof Pose的估计。整个Pipeline由3部分组成:Pose Canonicalization Module,RotationNet和CoordinateNet。Pose Canonicalization Module与前面的NOCS和ANCSH的规范化思想一致,用于规范Pose的表示方法。RotationNet用于直接估计相邻帧之间物体旋转的变量。CoordinateNet用于预测标准化坐标和分割的模块,实现3D尺寸和平移的解析计算。
-
BundleTrack(IROS 2021):提出了位姿图&内存池,全新的6D物体姿态算法,不需要实例或类级别的CAD模型用于训练或测试,可立即用于新物体的6D姿态跟踪(关键是内存池中构建位姿图,多帧之间优化)
-
BundleSDF(CVPR 2023):提出一种近乎实时的因果 6-DoF 姿态跟踪和对象 3D 重建并行的新型方法,有效解决跟踪漂移问题,并可以用于严重遮挡和无纹理的情况(位姿图+SDF+内存池)。与BundleTrack相比,主要是利用神经对象场实现了3D重建,并在重建过程中进一步优化位姿。
-
DeepAC(ICCV 2023):设计了一种轻量级网络,基于对物体轮廓的预测,实现实时的6Dof物体跟踪(可部署在移动端)
四、待读文章
- OnePose(CVPR 2022):解决样本问题,one-shot预测
- se(3)-TrackNet(2020 wenbowen):