文章目录
- 1.论文做了件什么事儿
- 2. 论文为什么要做这件事
- 3. 介绍Introduction
- 4. 相关工作
- 预测语义表达
- 推理几何和物体属性
- 从被动观察中学习Affordance
- 从交互中学习感知
- 5. 问题陈述
- 6. 方法
- 6.1 网络模块
- 主干特征提取器
- 可运动性评分模块
- 运动建议模块
- 运动评分模块
- 6.2 训练数据收集
- 离线随机数据采样
- 在线适应性数据采样
- 6.3 训练与损失
- 运动评分损失
- 运动策略模块
- 可运动性损失
- 7. 实验
- 7.1 实验设定
- 7.2 指标和基线
- 7.3 结果和分析
- 8. 总结与限制
- 9. 补充
- 召回率与F-score
1.论文做了件什么事儿
论文处理的任务是:预测给定的六种原子动作的affordances,这种affordances可以被用于更丰富的交互,同时学习能够引起期望改变的low-level的动作。具体地展开说,比如我指定向左拉的动作,对于一个推拉门,理想的affordance应该预测出最大的操作可能性在推拉门的把手上,抓住推拉门把手的某个点,把它向左拉开。
输入是image和depth data
输出是
-
在image每个pixel上可能的动作集合
-
在力的驱动下那些可能移动的铰接物体部件。
同时提出了从交互中学习的框架,搜集策略并训练网络
2. 论文为什么要做这件事
从人类的视角看来,当我们看到一个铰接物体时候,我们可以毫不费力地知道这个铰接对象可以做什么,我们需要在哪个位置完成交互,以及我们如何完成交互,例如,我们可以抓住把手拉开从而打开抽屉,推动门的任意一个位置使其观赏,旋转按钮来把灯打开,或者是按下按钮来启动烤箱。我们不仅知道怎样的动作可以完成一个任务,我们还可以知道什么事情是不应该做的,比如我们不应该把遥控器上的按钮拔出来。
在这篇工作中,目标就是建立一个感知系统,能够理解通用物体。当给定一个新的物体时,作者希望系统能够推理出在铰接物体上无数种可能的交互,
3. 介绍Introduction
预测物体可能的交互在机器人领域和计算机视觉领域方面是十分重要的。在机器人领域,预测可行的动作(如抽屉可以被拉开)有助于帮助动作规划、高效探索和交互学习(使得采样成功率更高)。在另一方面,计算机视觉领域主要聚焦于从视觉输入中推理语义标签(如部件分割和关键点估计),但是这种被动学习的表示仅能够提供有限的理解。被动学习受到智能体执行动作的能力、学习到的预测模型、很多案例下的语义(类别通常定义了功能本身)的限制。文章的目标是建立一个多物体适用的通用感知系统,同时对什么交互动作能够使得动作成功的问题进行自监督学习。
第一个问题是如何参数化动作预测空间。任何长时间的动作都可以被分解成原子动作。因此本文将问题限定于“在给定物体当前状态的情况下,能够执行哪些短期交互”。每个原子交互被进一步分解成“在哪里做”和“怎么做”两个部分,比如机器人可以与橱柜的哪个部分交互(如抽屉的把手或抽屉的表面)、机器人应该如何执行动作(如平移或垂直拉动把手)。这些观察将文章的任务定义为 “密集视觉预测”,给定物体的深度图和RGB图,尝试去推理,在每一个像素/点上是否能够执行原子动作,如果能够执行,又应该如何去执行。
我们学习一个预测网络,给定一个原子动作类型的条件,可以预测逐像素的如下信息:一个“运动能力”分数、动作策略、成功概率。
我们的方法让智能体和多个物体进行简单地交互来学习、记录动作的输出,并标记那些朝着理想状态改变的动作。我们意识到可以让智能体学习随机的交互采样,但这并不是一个高效率的探索策略,因此我们提出一个基于策略的数据采样方法来减轻这个问题——通过将采样偏置向那些智能体认为可能成功的动作来实现(就是通过让网络学习一些可能成功的动作,在这些成功率高的位置多做采样)。
论文贡献如下:
-
论文作者将任务定义为通过推理逐像素的动作分数和动作建议来得到可操纵3D铰接物体的Affordance;
-
提出了从交互中学习的方法,同时使用适应性采样来获得更多有价值的采样;
-
我们的网络能够学习到动作的视觉表达,并能够泛化到新的shape甚至是未见过的物体类别上。
4. 相关工作
预测语义表达
为了成功与3D物体交互,智能体需要去“理解”给定的感知输入。计算机视觉领域的很多方法都追求以多种语义标签的形式来表达这种“理解”。如预测类别标签、或者更细力度的语义特征点或部件分割等任何能够更具有运动解释性的表达。考虑如何推理出“把手”或“按钮”的位置等。然而,仅获得这些语义标签是不足够的,智能体必须理解需要做些什么(如在把手上能够通过“拉”的动作打开门)、以及如何运动来完成这个动作(在特定物体上执行“拉开”这个动作需要怎样精确的运动)。
推理几何和物体属性
为了得到能够直接用于如何操纵相关的信息,一些方法利用经典的机器人技术实现。给定shape的表达,以及刚性物体姿态、铰接物体姿态,在机器人领域可以利用离线planner或预测系统来获得动作策略。另外,推理物理属性如材质,mass的能力可以进一步提升精确性。
然而,这种两个阶段的动作执行过程,包括预测物体状态的感知系统对于出现预测误差的情况并不鲁棒,同时也会让感知系统产生比我们所需更丰富的输出,例如我们不需要预测完整的物体状态来判断如何拉出抽屉。另外,当这一类方法让智能体更精确地产生一个动作时,这些方法首先回避了需要/可以执行什么动作的问题,如,智能体如何理解一个按钮可以被按下?
(第二段可能稍微有点绕,我理解的意思是传统的机器人planner方法是通过以物体初态为输入,预测物体的终态后再获得执行的动作,但是这就导致了冗余。同时这一类方法一开始就回避了在物体上哪些地方可以做一些动作/操作的问题,故并不理想)
从被动观察中学习Affordance
让智能体学习在给定上下文中可以执行什么动作的方法通常是利用一些被动的观察——比如看一个其他智能体和物体/场景交互的视频,并学习可能可以做一些什么。这种技术被用于成功地学习场景的affordance(坐下/站立),可能的触摸位置,交互热点,甚至是抓取方式。
但是从被动观察中学习是具有挑战性的,例如学习的智能体在解剖结构上有所不同,就需要适当的重新定位来解决这一点。一个更加常见的问题是在模仿学习中的分布转移问题,当智能体看到可以做一件事的例子时,它可能没有见过足够的负例或足够多的正例。
从交互中学习感知
与我们工作最相关的工作是通过他们生成的数据(与真实世界交互来尝试可能的动作)来预测affordances。大部分工作被应用与如物体分割,planar pushing,或者non-planar grasp,但这些系统都受限于他们建模动作的复杂性。大部分方法都执着于去学习一些复杂的affordances,而没有尝试去建模一些所需low-level的动作,而是去将任务定性为使用oracle manipulators进行的分类任务(我大概理解的是,就是哪些动作在当前条件下可以执行,哪些动作在当前操作下不能执行)。在本文的工作中,作者处理了affordances的预测任务,这种affordances可以被用于更夫妇的交互,同时学习哪些能够引起想要改变的low-level的动作。
5. 问题陈述
我们将问题定义为一个新的挑战性问题Where2Act——推理用于操纵3D铰接物体的逐像素的“可操纵性信息”。如图所示,给定一个具有铰接部件的3D shape S S S,我们对每一个像素进行预测,预测出(a)哪些位置可以进行交互,(b)如何进行交互,©在不同交互动作下的交互的输出是什么。
输入的shape可以以2D RGB图像或者3D部分点云扫描来表示。同时参数化了6种类型的短期原子动作,即gripper pose在SE(3)空间下的推和拉等动作。如果和预期接触点进行交互并使得交互的部件产生了较大的运动(即运动比较明显),则认为交互成功。
在3D shape的铰接部件的每一个像素/点 p p p上预测如下的信息:
-
(a) 运动性分数 a p a_p ap用于衡量 p p p有多大的可能是可操作的;
-
(b) 一组和点 p p p进行的交互建议 { R z ∣ p ∈ S O ( 3 ) } \{R_{z|p}∈SO(3)\} {Rz∣p∈SO(3)},其中 z z z是从高斯分布中随机采样的;
-
(c) 每一个运动建议 R R R成功的概率 s R ∣ p s_{R|p} sR∣p
6. 方法
整个pipeline首先通过encoder-decoder(2D-UNet/3D-PointNet++)主干来提取per-pixel/per-point的特征,然后设计三个解码分支来预测“可运动性信息”,包括一个运动性分数模块、一个运动建议模块、一个运动评估模块。
为每一种运动训练一个独立的网络。共六个原子动作
6.1 网络模块
主干特征提取器
在铰接部件上提取密集的逐像素/点特征 { f p } p \{f_p\}_p {fp}p。
对于2D的情况,使用UNet架构,其中编码器使用在ImageNet上预训练的ResNet-18,以及从头开始训练的对称解码器,其中在encoder和decoder之间有密集的跳跃连接。
对于3D的情况,使用PointNet++,包括4个set abstraction layers和single-scale grouping来作为编码器,4个特征传播层作为解码器将特征传播回每个点。
以上两种情况,均能够产生逐像素特征 f p ∈ R 128 f_p∈\mathbb{R}^{128} fp∈R128。
可运动性评分模块
对于每一个像素/点 p p p,预测一个用于指示当前像素/点能否运动的分数 a p ∈ [ 0 , 1 ] a_p∈[0,1] ap∈[0,1]。这里的多层感知机 D a D_a Da由一个具有128层隐藏单元的MLP组成该模块。网络的输出在应用Sigmoid函数后是一个标量值 a p a_p ap,更高的分数意味着更高的交互成功的概率。即
a p = D a ( f p ) a_p=D_a(f_p) ap=Da(fp)
运动建议模块
运动建议模块被作为一个条件生成模型,用于提出交互参数 { R z ∣ p } \{R_{z|p}\} {Rz∣p}。这里应用另一个具有128个隐藏单元的多层感知机 D r D_r Dr来实现这个模块。
输入是当前像素/点的特征 f p f_p fp和一个随机采样的高斯噪声 z ∈ R 10 z∈\mathbb{R}^{10} z∈R10,网络预测gripper在SO(3)空间中的的end-effector 3-DoF orientation R z ∣ p R_{z|p} Rz∣p:
R z ∣ p = D r ( f p , z ) R_{z|p}=D_r(f_p,z) Rz∣p=Dr(fp,z)
3-DoF夹持器的方向follow 6D旋转表示法,使用3×3旋转矩阵的前两个轴来表示。
运动评分模块
对于每一个像素/点 p p p的运动建议 R R R,我们为每一个交互方式 ( p , R ) ∈ S E ( 3 ) (p,R)∈SE(3) (p,R)∈SE(3)最终评估一个成功概率 s R ∣ p ∈ [ 0 , 1 ] s_{R|p}∈[0,1] sR∣p∈[0,1]。可以通过预测的评分来过滤掉低概率的运动建议,或者根据这个预测的评分来排序所有运动建议。这里的这个分数类似于目标检测相关文献中边界框的置信分数。
网络模块 D s D_s Ds仍然是一个含有128个隐藏单元的单隐层来实现的MLP,给定输入的元组 ( f p , R ) (f_p,R) (fp,R),产生运动评分 s R ∣ p ∈ [ 0 , 1 ] s_{R|p}∈[0,1] sR∣p∈[0,1],即:
s R ∣ p = D s ( f p , R ) s_{R|p}=D_s(f_p,R) sR∣p=Ds(fp,R)
在测试的时候,认为 s R ∣ p > 0.5 s_{R|p}>0.5 sR∣p>0.5表示策略 R R R是可用的。
6.2 训练数据收集
因为人为标注数据是很困难的,所以取而代之地使用智能体在模拟环境中和物体交互以获得数据。
在模拟环境中奖随机的3D铰接物体放置在场景的中心,一个flying gripper可以在物体几何表面的指定位置 p ∈ R 3 p∈\mathbb{R}^3 p∈R3使用末端夹持器方向 R ∈ S O ( 3 ) R∈SO(3) R∈SO(3)的方式进行交互。仅考虑如图(b)中所示的6中预定义的简单的交互策略。每一种都是由一开始的抓手姿态 ( p , R ) ∈ S E ( 3 ) (p,R)∈SE(3) (p,R)∈SE(3)定义的。
同时使用一种混合数据采样的方式。首先使用离线随机交互策略来提速学习,接着基于网络预测的数据点来进行交互以实现更高效的学习。
离线随机数据采样
通过在多CPU的环境下同步模拟可以采样很多训练数据。
对于数据点,在GT的铰接部件上随机采样一个位置 p p p进行交互。接着,从 p p p周围切平面的上半球随机抽取一个交互作用方向 R ∈ S O ( 3 ) R∈SO(3) R∈SO(3),方向始终朝向正法线方向,并尝试去查询参数化 ( p , R ) (p,R) (p,R)的交互结果。同时将来自另一个半球的方向 R s R_s Rs标记为负,因为抓手不能放在物体体积内部。
实验中,对于每一种原子运动类型,都采样足够的离线数据,给定粗略的一万个策略来提速训练。虽然可以实现大规模的数据收集,但这种随机的数据采样策略在查询兴趣交互区域以获得正数据点时候的效率非常低。实验统计证明,对于拉这个原子动作来说,只有1%的数据是正例。这也导致了训练过程中一个非常大的数据不平衡挑战,也暗示了可以拉动的区域可能仅占据一个非常小的部分,比如在拉动门把手或者拉动抽屉把手时候才能完成拉的动作。
在线适应性数据采样
为解决离线采样过程中数据采样不高效的问题,我们提出去构建一个在线适应性数据采样方法。对于我们正在学习的网络预测出极有可能成功的子区域做更多的采样。
在网络使用数据 ( p , R ) (p,R) (p,R)训练运动评分模块 D s D_s Ds时,能够推理出所有像素 { p i } i \{p_i\}_i {pi}i上的运动预测分数 { s R ∣ p i } i \{s_{R|p_i}\}_i {sR∣pi}i。接着,采样一个位置 p ∗ p* p∗来构建一个额外的交互尝试 ( p ∗ , R ) (p*,R) (p∗,R)。其中, p ∗ p* p∗是根据SoftMax所有可能的相互作用位置上归一化概率分布后确定的。(我的理解是,对一所有可能的相互作用位置,将所有位置的概率做一个归一化,然后取交互概率最大的位置进行采样)。
通过这种自适应的数据采样,正数据采样率得以提升,因为网络正在积极地在可能成功的子区域周围进行更多采样。此外,我们观察到在可能成功区域周围采样更多数据有利于网络更好地学习特征,以更好地区分小而关键的交互部分(如手柄、按钮和旋钮)。
虽然自适应在线数据采样是有益处的,但它也可能导致新区域中采样数据不够的问题。因此,在我们最后的在线数据采样过程中,我们有50%的数据来自随机数据采样,剩下50%来自基于预测的适应性数据采样。
6.3 训练与损失
经验性地发现最好的训练方式是首先训练运动评分模块 D s D_s Ds,接着联合训练三个解码器。在训练中维护一个单独的数据队列,在每个训练批中提供相同数量的正交互和负交互数据,以解决数据不平衡的问题,同时平等地从不同类别中采样shape。
运动评分损失
给定一个batch,其中含有 B B B个交互数据点 { ( S i , p i , R i , r i ) } i \{(S_i,p_i,R_i,r_i)\}_i {(Si,pi,Ri,ri)}i,其中 r i = 1 r_i=1 ri=1表示正例, r i = 0 r_i=0 ri=0表示负例,使用二分类交叉损失来训练运动评分模块:
L s = − 1 B ∑ i r i l o g ( D s ( f p i ∣ S i , R i ) ) + ( 1 − r i ) l o g ( 1 − D s ( f p i ∣ S i , R i ) ) L_s=-\frac{1}{B}\sum_ir_ilog(D_s(f_{p_i|S_i},R_i))+(1-r_i)log(1-D_s(f_{p_i|S_i},R_i)) Ls=−B1∑irilog(Ds(fpi∣Si,Ri))+(1−ri)log(1−Ds(fpi∣Si,Ri))
运动策略模块
利用N个最小策略来训练运动策略模块 D r D_r Dr,本质上是一个条件生成模型,将像素 p p p map到交互策略分布 R z ∣ p R_{z|p} Rz∣p中。对于含有B个交互数据点的batch { ( S i , p i , R i , r i ) } i \{(S_i,p_i,R_i,r_i)\}_i {(Si,pi,Ri,ri)}i,其中 r i = 1 r_i=1 ri=1,Min-of-N损失被定义为:
L r = 1 B ∑ i min j = 1 , . . . , 100 d i s t ( ( D r ( f p i ∣ S i ; z j ) ) , R i ) L_r=\frac1B\sum_i\min_{j=1,...,100}dist((D_r(f_{p_i|S_i};z_j)),R_i) Lr=B1∑iminj=1,...,100dist((Dr(fpi∣Si;zj)),Ri)
其中 z j z_j zj是随机采样的高斯向量, d i s t dist dist表示两个6D-rotation的距离。
可运动性损失
我们将“actionability”视作是一个像素/点上进行操纵预期成功率。
a ^ p i ∣ S i = 1 100 ∑ j = 1 , . . . , 100 D s ( f p i ∣ S i , D r ( f p i ∣ S i , z j ) ) \hat{a}_{p_i|S_i}=\frac{1}{100}\sum_{j=1,...,100}D_s(f_{p_i|S_i},D_r(f_{p_i|S_i},z_j)) a^pi∣Si=1001∑j=1,...,100Ds(fpi∣Si,Dr(fpi∣Si,zj))
L a = 1 B ∑ i ( D a ( f p i ∣ S i ) − a ^ p i ∣ S i ) 2 L_a=\frac1B\sum_{i}(D_a(f_{p_i|S_i})-\hat{a}_{p_i|S_i})^2 La=B1∑i(Da(fpi∣Si)−a^pi∣Si)2
这个策略的计算是很高效的,因为我们使用了运动策略模块中的100个策略。由于 D r D_r Dr经过优化以后会覆盖所有成功的交互方向,因此当大多数建议成功时,估计的 a ^ p i ∣ S i \hat{a}_{p_i|S_i} a^pi∣Si预计将接近1,而位置 p p p不可操作时, a ^ p i ∣ S i \hat{a}_{p_i|S_i} a^pi∣Si将接近0(所有提案成功的可能性评分都非常低)
7. 实验
7.1 实验设定
这部分是一些训练集和测试集的划分,以及六个原子动作的定义、对交互成功的定义。
7.2 指标和基线
指标方面
-
衡量 D s D_s Ds(运动策略评分模块)的指标是二分类精确性,主要评价召回率与F-score
-
引入采样成功率指标ssr用于评价网络提出交互策略的成功概率
对于后面这个指标,评价过程如下:使用可运动性评分模块 D a D_a Da来采样交互的像素,接着应用运动策略提出模块 D r D_r Dr来生成多个交互策略,最后根据 D s D_s Ds对这些运动评分来采样出合适的交互策略。
关于交互策略的采样,是在所有像素的预测运动评分做一个归一化,然后采样那些绝对概率大于0.5的策略。对于策略采样步骤,是在每个像素上采样100个策略,这是通过从高斯分布中随机采样并输入到 D r D_r Dr中获得的。对于每一种交互策略,都应用模拟器来观察GT输出,故:
s s r = # s u c c e s s f u l _ p r o p o s a l s # t o t a l _ p r o p o s a l s ssr=\frac{\#successful\_proposals}{\#total\_proposals} ssr=#total_proposals#successful_proposals
基线方面
由于没有类似的任务,所以与三个相对简单的baseline比较,以及文章方法的消融版本比较。
-
B-Random:随机的智能体,总是给出随机的策略和分数
-
B-Normal:将2D-UNet和3D-PN++编码出的特征 f p f_p fp替换成3维的GT法线,使用相同的解码头、损失、训练框架
-
B-PCPNet:将上面提到的特征 f p f_p fp替换成使用PCPNet预测的法线和曲率,使用相同的解码头、损失和训练框架
-
Ours w/o OS:本文方法的消融实验,移除了适应性数据采样部分,仅使用随机探索来采样数据,为了保证公平,采样的数据量和文中离线+在线采样的数据量保持一致
其中,B-Random展示了测量指标的下界;B-Normal用于验证网络学习的特征提取器提取的特征是面向交互的特征,而不是如法线一样简单的几何特征;B-PCPNet进一步证明网络学习了比局部法线和曲率更多的几何特征;Ours w/o OS进一步证明在线适应性采样策略的改进。
7.3 结果和分析
定量实验:
上述表格展示了文中方法的优越性,优于其他所有基线,即使是使用2D版本,本文的方法也展示出了competitive的结果。
消融实验证明了在线采样策略的高效性。
定性实验:
其余见论文
8. 总结与限制
文章完成了一个挑战性任务:预测操纵3D物体的逐像素运动信息。对于一个物体铰接部件上的每一个像素,预测每个像素关于6个原子动作的运动概率,并提出候选交互参数。
限制:
-
网络使用单帧视角作为输入,如果铰接部件运动信息无法从单帧中进行确定,则容易引起解空间的二义性;
-
实验限制在6个类型的原子动作,每个动作策略都是硬编码的;
则可探索的方向就是实现free-form的交互。同时文章没有显式建模部件分割和部件的motion axis,这些信息在未来可以被进一步结合。
9. 补充
召回率与F-score
一种评价二分类任务的指标,详见:【机器学习笔记15】多分类混淆矩阵、F1-score指标详解与代码实现(含数据)-CSDN博客
将二分类分为TP(预测正确,为正类),FP(预测错误,为正类),FN(预测错误,为负类),TN(预测正确, 为负类);即TP为真阳性,FP为假阳性,FN为真阴性,FN为假阴性。
召回率是基于这些分类进行计算的。召回率 R c = T P T P + F N R_c=\frac{TP}{TP+FN} Rc=TP+FNTP,也就是真实类别为正类的所有结果中,模型预测正确的比重。
F-score用于综合考虑精确度和召回度指标,其公式在上面的文章中有写明