对Command-driven Articulated Object Understanding and Manipulation的简单理解
文章目录
- 1. 以往工作问题和本文提出的工作内容
- 2. 任务定义
- 3. 方法
- 2.1 Seg-Net
- 3.2 Art-Net
- 3.3 推理
1. 以往工作问题和本文提出的工作内容
该工作提出了一个新的方法,面向人类指令的铰接物体操纵。在已有的、推理铰接结构的基础上,进一步支持操纵铰接形状,使其能够对齐到简单的指令模板。
Cart的核心是利用物体结构的预测,将用户的指令与视觉观察相连接,以进行高效的操作。 其实现的方法是编码用户指令用于运动预测,并使用TTA来调整进使用指令作为监督的运动。
对于广泛的物体类别,Cart可以精准操纵物体的shapes,并对固有的铰接结构有良好的理解。同时还可以很好地泛化到未见过的物体类别和真实世界物体上。
2. 任务定义
制作了一个操纵铰接物体的系统,输入为:
-
未知铰接物体的3D点云
-
操纵指令,形式化为“移动<部件>至<目标状态>”,<>由用户给定,用户可以选择点云中的一个或多个点来指示要操纵的<部件>,以及该部件在操纵后将要到达的<目标状态>
用户指令以用户自然语言形式给定,如下图的橱柜从“完全关闭”到“完全打开”,使用状态节点 T k T^k Tk表示目标状态, k k k是一个从0到K-1的整数,用于表示部件铰接关节的不同打开范围。
T 0 T^0 T0完全关闭, T k − 1 T^{k-1} Tk−1完全打开,其他是均匀采样的中间态。语言指令可以通过自然语言处理翻译为这些状态,但并不是本文研究重点。
对于给定的由任意数量可移动部件 L = { l j } j = 1 M L=\{l_j\}^M_{j=1} L={lj}j=1M的未知铰接物体点云观察 P = { p i ∈ R 3 } i = 1 N P=\{p_i∈\R^3\}^N_{i=1} P={pi∈R3}i=1N,首先预测所有物体部件的铰接参数 [ { τ j , ψ j } ] j = 1 M [\{\tau_j,ψ_j\}]^M_{j=1} [{τj,ψj}]j=1M。给定提供3D点(假设该点属于第 j t h j^{th} jth部件)和对应状态节点的用户命令 ( T j K ) (T^K_j) (TjK),推理第 j t h j^{th} jth的部件从当前铰接状态到目标铰接状态的运动参数 φ j φ_j φj。 τ j τ_j τj表示二进制关节类型(平移或旋转), ψ j ψ_j ψj是关节参数。
prismatic joint下 ψ ψ ψ包括移动方向$up∈\R3 和沿着 和沿着 和沿着u^p 的带方向的运动参数 的带方向的运动参数 的带方向的运动参数φ$。
revolute joint下 ψ ψ ψ包括旋转轴 u r ∈ R 3 u^r∈\R^3 ur∈R3,以及pivot point是在axis上的点 v r ∈ R 3 v^r∈\R^3 vr∈R3,运动参数 φ φ φ是一个带正负值的旋转角度,沿着轴 u r u^r ur顺时针或逆时针旋转。
3. 方法
利用Cart实现对铰接物体的理解,以及通过语言指令的控制。由两个神经网络:Seg-Net和Art-Net组成。前者预训练以实现部件分割和铰接状态建模;后者使用前者的预测信息预测铰接模型。
给定用户指令情况下,Art-Net利用分割信息定位需要操纵的物体部件,将指令信息合并到视觉embedding中。混合部件的特征包含几何特征和指令含义,用其推理铰接模式和指令相关的运动参数。利用TTSA(类似于A-SDF中的TTA,多的一个S表示状态State)算法来不断改变铰接状态,在指令的监督下,应用Seg-Net的状态模型来优化运动参数。
2.1 Seg-Net
网络将物体分割成多个刚性部件,并预测每个部件的铰接状态。
如图3a所示,第一个分支预测逐点类 c ^ i ∈ { 0 , 1 } \hat{c}_i∈\{0,1\} c^i∈{0,1}以分辨其属于移动/静止部件。第二个分支预测可移动部件的逐点值 s ^ i ∈ R \hat{s}_i∈\R s^i∈R,被定义为相对预定义静止状态的归一化姿势(角度或平移值,如完全关闭为0,完全打开为1)。第三个分支产生逐点偏移向量 o ^ i ∈ R 3 \hat{o}_i∈\R^3 o^i∈R3,应用这个偏移向量将点向部件质心移动,实现聚类,更好地通过聚类区分不同的点。
SegNet监督学习:
L c L_c Lc是标准的交叉熵损失, L s L_s Ls是L1距离损失, L o L_o Lo包括点位移的 L 1 L_1 L1距离和方向:
训练Art-Net时将不更新Seg-Net的参数。当移动部件的某个点被二进制分类选择后,将移动offset以构建更加紧凑的3D分布 { ( p i + o ^ i ) } \{(p_i+\hat{o}_i)\} {(pi+o^i)}。每个部件的铰接状态是由每个点的预测投票决定的。
3.2 Art-Net
如图3b所示,输入是点云 P P P和用户指令,目标是根据指令中指定的目标铰接状态来操纵部件(输出是运动参数)。
部件感知的编码: 该模块找到操纵的部件,如图4a所示,用户提供物体部件内的点坐标,使用Seg-Net的分割算法来定位匹配于该点的部件,表示为 l ^ j \hat{l}_j l^j。从指令中通过 K K K维的one-hot编码来表示目标状态 T j k T^k_j Tjk。为使其可学习,这个code将会由MLP层传播到部件级,来构建指令特征 h j ∈ R N j × d h_j∈\R^{N_j×d} hj∈RNj×d。 N j N_j Nj是部件 l ^ j \hat{l}_j l^j的点数量。同时,应用PointNet++提取逐点几何特征,部件 l ^ j \hat{l}_j l^j的特征表示为 f j ∈ R N j × d f_j∈\R^{N_j×d} fj∈RNj×d。 h j , f j h_j,f_j hj,fj被连接成 f ‾ j ∈ R N j × 2 d \overline{f}_j∈\R^{N_j×2d} fj∈RNj×2d。
铰接模型估计: 使用 f ‾ j \overline{f}_j fj来估计交接模型,即关节类型 τ \tau τ,关节参数 ψ ψ ψ,指令相关的运动参数 φ φ φ。Points of f ‾ j \overline{f}_j fj are from the same object part, which share the consistent articulation attributes and are naturally suitable for predicting global articulation joint. Compared with alternative strategies, this module yields superior performance.
每个点都预测上述参数,通过投票方式决定最终结果。 τ j ∈ { 0 , 1 } N j \tau_j∈\{0,1\}^{N_j} τj∈{0,1}Nj表示铰接关节类型,平移和旋转轴 u j p , u j r ∈ R N j × 3 u^p_j,u^r_j∈\R^{N_j}×3 ujp,ujr∈RNj×3,运动参数表示为 φ j ∈ R N j φ_j∈\R^{N_j} φj∈RNj。为估计旋转关节 u r u^r ur的位置,预测每个点到其相关轴上的投影,因此 u j r u^r_j ujr表示为 [ z j r ∈ R N j × 3 , d j r ∈ R N j ] [z^r_j∈\R^{N_j×3},d^r_j∈\R^{N_j}] [zjr∈RNj×3,djr∈RNj]表示投影方向和投影距离。使用不同解码头来解码上述参数:
训练目标: 铰接关节类型,应用二进制交叉熵损失 L t y p e L_{type} Ltype,距离损失 L m o t L_{mot} Lmot最小化运动参数差异。平移关节使用余弦距离损失 L p a r a p L^p_{para} Lparap,旋转关节损失为:
第一项表示axis的方向,第二项表示投影方向和投影距离,最后一项是pivot point的距离损失。
在部件 l ^ j \hat{l}_j l^j上通过加上 ( d ^ j r ⋅ z ^ j r ) (\hat{d}^r_j·\hat{z}^r_j) (d^jr⋅z^jr)来沿着旋转轴移动原始点坐标。距离上应用L1 loss。 L r o t r = ∣ ∣ I 3 , 3 − R ^ j ⋅ R j ∣ ∣ L^r_{rot}=||I_{3,3}-\hat{R}_j·R_j|| Lrotr=∣∣I3,3−R^j⋅Rj∣∣是一个确保为一个正交旋转矩阵,两个 R R R分别是预测旋转矩阵和真是旋转矩阵。这是基于关节方向和旋转角从Rodirgues的旋转公式计算的。整体损失为:
3.3 推理
基础推理: Seg-Net首先将物体点聚类为独立的运动部件,Art-Net收到命令并通过part-aware encoding模块定位要操纵的部件。使用部件级的点特征来投票产生关节类型、关节参数、命令相关的运动参数。运动参数是包括移动幅度和方向的有方向值,参考 ψ , φ ψ,φ ψ,φ来平移或旋转选择的部件。
TTSA: 预测的运动参数 φ φ φ可能不精准,操纵后的物体状态可能并不满足用户指令。设计TTSA在测试时调整运动参数。
如图4b所示,将点云从 P P P操纵成 P ′ P' P′,将 P ′ P' P′重新送入到Seg-Net中再一次估计真实部件状态 s ^ ′ \hat{s}' s^′。对于第 j j j个部件,比较 s ^ j ′ \hat{s}'_j s^j′和目标状态节点 T j k {T^k_j} Tjk,它可以转换成归一化的状态通过 s j ′ = k / ( K − 1 ) s'_j=k/(K-1) sj′=k/(K−1)。运用差异来更新运动参数解码器来校正运动预测:
M ′ M' M′是操纵物体部件数量。迭代优化多步以达到目标状态。