A Real-World Articulated Object Knowledge Base
关节体的属性包括外表、结构、物理属性和语义类别。但是目前的CAD模型通常缺失了物理属性。所以AKB-48是一个大规模的从物理世界中扫描的关节体数据集,每个物体都通过知识图谱ArtiKG(Articulation Knowledge Graph)来描述。为了构建AKB-48这个数据集,这个工作通过fast articulation knowledge modeling(FArM) pipeline来构建每个物体的ArtiKG,通常只需要10~15分钟。这个工作进一步使用数据集提出了AKBNet,它是用来做物体类别级别的视觉关节体操作的。
数据集部分
首先,我们讨论关节体的知识图谱到底需要包含哪些内容。
- Appearance:mesh数据以及对应的纹理。
- Structure:这是关节体和刚体最不一样的地方,也就是我们需要有关节体的动力学结构,包含关节的类型、对应的参数以及范围。
- Semantics:这部分的定义我不太理解,文章中要通过WordNet来标注出对应的语义信息。换句话说,对于一个杯子来说,虽然从动力学结构上,杯柄和杯体是一体的,但是从语义的角度,杯柄是可以用来抓的,Semantics似乎是要把这部分标注出来。
- Physics Property:真实世界中存在着的物体是有真实的物理属性的,而CAD建模相对就没有这么准确了,这也是这篇文章认为的扫描模型的优势之一。所以我们需要得到,每个关节部分的质量、转动惯量、材质和表面摩擦力。
FArM标注Pipeline
- Object Alignment:首先,如上图所示对物体进行多视角的扫描。扫描物体的坐标系原点是在扫描仪光圈位置(可以理解成相机围着物体转一圈获得3Dmesh),所以我们需要把同一类物体全部对齐到统一坐标系下,比如所有的水瓶应该瓶口向上方向为z轴,所以alignment就是将物体坐标系统一的。
- Part Segmentation:我们需要对整体做分割,分割成几个动力学上分离的部分,如果现实中的物体就是可分离的话,我们也可以每部分扫描进去以后再拼在一起。
- Joint Annotation:然后我们就是标注joint的位置。
- Physics Annotation:然后还需要标注几个物理属性:如每部分的质量、惯性、材料等,细节不不再阐述。
AKBNet
在这个网络中,输入是单张RGBD图以及对应的2D边界框,我们的目标是估计每个关节体部分的6D位姿,重建关节体的几何数据,并且推理出交互的策略,如下图所示:
首先是这个带Bounding Box的RGBD数据,我认为它只是单纯地想把物体分割出来,或者说是引导后续分割网络的剪枝,因为可想而知不分割出来还想做part-level 的segmentation的话,这些数据量和diversity是远远不够的。
Pose Module
我们先看中间,过了一个 PointNet++以后,对全局特征直接回归出关节类型和参数,得到关节类型以后,通过NOCS和Pose优化算法,得到每个部分的6D Pose。然后我们再看Pose Module的上半部分,是对每个点过了一个二分类,得到了Part的分割,然后对每个part点云,去预测它的质量、摩擦力和转动惯量。因为都是标好的数据,监督学习就行了,至于准确率我觉得更应当考虑标数据的时候那些算法是否靠谱。关节体估计的一些关键算法,如NOCS和ANCSH,之后会慢慢更新上来。
Shape Module
这部分相对比较陌生,这篇文章主要介绍了引用的论文。目标其实就是通过点云和估计出的关节角度$\theta$来恢复出整个模型$M_{\theta}$。
Manipulation Module
把训出来的网络的输出全部作为观测,然后传给RL去训就行了。这里唯一的一个问题就是,估计出来的A-SDF距离场$M_{\theta}$以一种什么样的形式传入呢。因为A-SDF可以认为是一个$R^3\rightarrow R$的一个距离场,维度还是挺高的,这部分细节还在等作者回复。具体实现的方法就是把还原的模型作为一个完整的观测加载到仿真器中,作为Agent要操作的模型。而我们估计出来的关节参数和6D Pose作为引导RL的一个观测量加入到observation中。
A Real-World Articulated Object Knowledge Base