1. 引言
抓取一个物体对于人来说很直观和简单,但是要驱动机器人自主完成一次抓取作业的首要任务是通过视觉信息推断出其抓取位姿。通过机器视觉技术估计抓取位姿的意义在于其能够引导机器人对物体进行精准的操作,主要的应用场景有居家服务机器人和工业自动化机器人。一般来说,机械臂的抓取位姿包含六个维度的信息——末端的三维平移量和三维旋转量。其中三维平移量代表抓取点位置在三维空间中的三维坐标,三维旋转量则表示了机械臂在执行抓取动作时末端的姿态。
因为SE(3)巨大的搜索空间导致的困难,所以一般会在抓取位姿中添加约束条件,从而简化问题,比如在二维平面上表示抓取位姿 [1] [2]。最常用的抓取位姿表达形式是有向抓取矩形框,这种表示方法包含用来代表抓取点的矩形框中心点、矩形框的宽度、矩形框的高度以及矩形框旋转角度。Kumra等人 [3] 沿用了2D物体检测的思路对抓取位姿进行检测。但是实际的抓取场景中可能存在多个物体,并且物体之间可能存在相互遮挡,此时针对某个单一物体的抓取矩形框就可能会包含其它干扰物体,使得检测结果不准确,这就导致了此方法不能很好地处理多物体的抓取场景。并且基于抓取矩形框的检测算法通常是二阶段算法,这就意味着此类算法需要先在图像上生成大量的抓取候选框,然后再通过神经网络等方法对抓取候选框进行筛选得到目标的抓取位姿。尽管二阶段方法能够进行更细化的处理,但是其计算开销大依然限制了此类算法在实际场景的应用。
除了有向抓取矩形框表示法以外,研究人员们参考了语义分割的解决思路,在输入图像的每个像素点上都预测一个抓取位姿。Morrison等人 [4] [5] 提出了生成式的抓取位姿估计策略,对每个像素位置都生成抓取位姿。受到残差卷积网络结构的启发,Kumra等人 [6] 使用RGB-D图像信息作为输入,提出了生成式残差卷积网络解耦抓取角度,以此来完成实时抓取检测。然而对于弱纹理物体或者是杂乱场景中的物体,这些方法计算的抓取位姿鲁棒性不足,对新物体的表征学习能力不强,无法适应未知物体的抓取检测。
针对上述问题,本文提出一种基于多层级特征的像素级端到端抓取检测网络,该方法使用RGB或者深度图作为输入,预测像素级抓取位置图、抓取角度图和抓取宽度图。本文方法遵循编码–解码结构,通过插入多层级金字塔池化模块,可以从有限的训练数据集中学习到更有效的特征,从而可以解决未知物体在杂乱场景下的抓取检测问题。本文的主要工作如下有:1) 提出一个端到端的神经网络结构,通过在神经网络中集成多层级金字塔池化模块,形成高精度的抓取位姿检测网络;2) 在公开的Cornell抓取数据集上对本文提出的网络进行训练和验证,效果和正确率超过了现有的抓取检测方法;3) 将本文提出的方法部署到真实机械臂进行抓取实验,在杂乱多物体的抓取场景下,取得88%的平均抓取成功率和100%的抓取完成率,验证了提出方法的有效性。
2. 抓取位姿检测算法
2.1. 抓取位姿描述
本文考虑的抓取工具对象为二指平行夹爪,考虑最典型的二维平面抓取检测问题:给定输入的RGB或者Depth图像,并从中推断出场景中最优的抓取位姿。得到像素坐标系下的抓取位姿后,通过相机标定和手眼标定操作进行刚体变换,可以将表示在像素坐标系下的抓取位姿变换为表示在机器人基坐标系下的抓取位姿,并最终引导机器人进行抓取操作。
现有的研究 [3] [7] [8] 都使用了有向矩形框常用来表示抓取位姿,这种表示形式适合基于物体检测的网络框架。但是在多物体的杂乱场景下,这种形式存在局限性。为了适配全卷积神经网络,并且针对多物体的复杂场景,本文提出像素级的抓取位姿表达形式。
给定输入图像I,我们定义在像素坐标系下的抓取位姿为:
(1)
其中,
代表在像素坐标系下抓取点的坐标;
代表以横轴为参照的抓取角度,单位为弧度;
代表在像素坐标系下的抓取宽度,单位为像素。由于二指平行夹爪的对称性,我们限制
,这样可以减小角度的歧义性,降低神经网络对抓取角度预测的难度。图像坐标系上的抓取位姿表示见图1所示。

Figure 1. The illustration of grasp pose representation
图1. 抓取位姿表示
2.2. 网络结构
在本文中,我们提出一种用于在杂乱物体场景中估计抓取位姿的全卷积网络结构。本文的一阶段网络架构由三部分组成,它们分别是主干特征提取器、多层级金字塔池化模块(Pyramid Pooling Module, PPM)和多分支输出网络,如图2所示。主干特征提取器由ResNet [9] 网络构成,负责高效地提取特征图;PPM实现四个尺度的特征图融合,从特征图中计算获得高级特征图,赋予网络处理不同尺寸、不同颜色、不同外形的物体的能力;多分支输出网络对特征进行上采样,并输出三幅和原图尺寸大小一致的抓取图(Grasp Map)。

Figure 2. The diagram of our proposed network architecture
图2. 本文提出的网络结构的整体模块图
2.3. 抓取图
在本文中,我们使用像素级的抓取位姿表示方法,即在输入图像I的每个像素位置p都使用一个三元组
来表示一个抓取,其中c表示当前像素位置的存在合理抓取位姿的置信度,
,置信度越高表明该位置存在合理抓取位姿的概率越高;
表示抓取角度;w表示抓取宽度。对于给定的一张图像,网络模型需要生成三幅尺寸相同的抓取图——抓取置信度图(Confidence Map)、抓取角度图(Angle Map)和抓取宽度图(Width Map)来表征三元组t。
抓取置信度图:抓取点
表示输入图像上的一个像素点坐标。尽管输入图像I中可能包含多个物体,并且每个物体都可能存在多个合理的抓取位姿,但是抓取点的数量还是远少于非抓取点的数量,这种情况会造成训练数据中的正样本和负样本的极度不平衡,进而导致网络训练难以收敛。为了解决这
个问题,我们提出使用抓取点扩散策略。我们将每个抓取点
映射到一个处于I上的抓取区域
,位于区域内所有像素都可以接受其为可抓取点。具体来说,
设计为一个圆心位于
,半径为
的圆。
位于圆心处的置信度设置为1,圆内其它像素的抓取置信度使用类截断二维正态分布计算得到:
(2)
其中,
表示抓取区域内的像素点,e为自然常数,
为超参数,
设置越大则抓取区域边缘的置信度越大。
抓取角度图:由于角度值具有对称性,使用连续的角度值不利于神经网络直接进行回归学习,这将导致网络训练的收敛难度增大。本文将抓取角度的预测问题视作一个分类问题,可以缓解连续角度值带来的问题。本文不预测连续的抓取角度,而是将
范围的角度分成
等份,每个抓取角度都对应与其距离最接近的角度标签
。需要注意的是,图像上的非抓取区域不应该分配任何的抓取角度标签,因此我们使用
来描述这种情况。所以,角度类别数目为
。在同一个抓取区域
内的抓取角度相同。
抓取宽度图:本文将抓取宽度表示为图像上以像素为单位的长度。同一抓取区域内的抓取宽度取相同的值。为了尺度一致性和输出稳定性,我们将抓取宽度归一化到
之间。
2.4. 多层级金字塔池化模块
为了充分利用复杂场景下输入图像不同层级的特征信息,并且为了进一步挖掘不同层级特征信息之间的关系,我们在全卷积神经网络中引入了PPM,该技术在文献 [10] 中首先被提出,在室外场景的语义分割任务上表现出了出色的性能。PPM技术能够充分提取输入图像的全局信息,提升感受野大小,增强网络模型对不同尺寸,不同类型的物体的适应能力,这对于在复杂场景下执行抓取检测任务具有很大的帮助。
输入图像经过主干网络处理得到初步特征后,将初步特征图送入PPM处理,如图3所示。在PPM中,使用四个子区域大小分别为1 × 1、2 × 2、3 × 3和6 × 6的自适应平均池化层(Adaptive Average Pooling)将初步特征图划分成四个不同层级的特征图。接着,通过四个平行的1 × 1卷积层和双线性插值上采样操作将四个层级的特征图大小恢复为初步特征图的尺寸大小。最后,将四幅特征图和初步特征图在通道维度上进行拼接,得到高级特征图。PPM的输出结果中即包含了输入图像场景中的低级特征信息,也包含了细化处理后的高级特征。高级特征图后续将被送入多分支输出网络进行抓取图的预测。

Figure 3. The diagram of hierarchical pyramid pooling module
图3. 多层级金字塔池化模块流程结构图
2.5. 多分支输出网络
多分支输出网络输出三幅抓取图——抓取置信度图、抓取角度图和抓取宽度图,图4展示了多分支输出网络结构图。对应地,输出网络包含了三个分支,置信度估计分支、角度估计分支和宽度估计分支,每个分支都内置了连续的卷积层、批归一化层、ReLU激活函数层和Dropout层。具体来说,首先将来自PPM的高级特征图输入到置信度估计分支,随后经过Sigmoid激活函数的计算得到抓取置信度图。
由于抓取角度图和抓取宽度图都依赖于抓取置信度图,参考文献 [11] [12] 的做法,我们为角度估计分支和宽度估计分支引入空间注意力机制,具体做法为:将抓取置信度图与高级特征图进行相乘操作,将相乘后的结果分别输入用以计算抓取角度图和抓取宽度图。
三幅不同的抓取图分别计算损失,然后联合加权计算抓取图全局损失,用以反向传播更新神经网络的参数。三者的损失函数具有相同的形式,这种损失函数的设计能够使得网络更加关注感兴趣区域,也就是场景中的抓取区域,从而降低无关的区域(比如背景、干扰物)对训练的干扰。统一形式的损失函数如下公式(3)所示:

Figure 4. The diagram of multi-head output structure
图4. 多分支输出网络结构图
(3)
其中,
和
指明了该如何定义正负样本,
和
分别是正负样本的数量,分别表示正样本区域和负样本区域;gt和pred分别表示了真实值和预测值;函数l计算gt和pred之间损失值;
和
为超参数,用来调节正负样本在损失函数中的占比,防止过拟合。
置信度损失函数如公式(4)所示,其中
为真实置信度,
是估计置信度,
表示Smooth-L1损失函数,
为划分正负样本的阈值,正样本区域记作
,负样本记作
。
(4)
抓取角度损失函数如公式(5)所示,其中
是真实抓取角度,
是估计抓取角度,
表示Focal损失函数。
(5)
抓取宽度损失函数如公式(6)所示,其中w是真实抓取宽度,
是估计抓取宽度。
(6)
联合损失函数定义为三个损失函数的加权和,如公式(7)所示,
、
、
为三个权重超参数。
(7)
3. 理论实验及结果
3.1. 数据集介绍
本文用于训练神经网络的数据基于Cornell抓取数据集 [13]。该数据集包含885张RGB和Depth图像,每张图像中都包含一个日常生活常见的物体,每个物体标注了多个正样本抓取矩形框和负样本抓取矩形框。为了防止过拟合,提升算法的鲁棒性,我们在数据集中引入了不同的图像对比度、亮度、随机缩放、随机旋转平移变换等在线数据增强策略来扩展数据集的规模。
3.2. 评估指标
为了方便与其它方法进行对比,本文从两个维度考虑一个估计抓取位姿是否正确,为与之前的文献 [6] [7] [8] 使用的评估指标保持一致性,当二维平面抓取位姿同时满足下列条件的时候,那么将其视为正确:
1) 预测抓取角度和真实抓取角度之间的差值小于阈值
,本文中
:
(8)
2) 当预测抓取位置和真实抓取位姿之间的Jaccard系数大于阈值
,本文中
:
(9)
尽管本文使用的像素级的抓取位姿表示方式,但是仍然可以将其转化为抓取矩形框的表示方式,从而可以使用上述的评估指标对抓取位姿质量进行评估。
3.3. 实验参数细节
为了训练提出的神经网络,本文使用深度学习框架PyTorch。网络训练使用Adam优化器,初始学习率设置为0.001,每20个回合学习率减半;权重衰减系数设为0.0001;整个网络以批大小为4一共训练100个回合。本文使用的训练平台为Ubuntu操作系统,硬件方面采用英伟达RTX2080显卡,配备Intel i5处理器和16GB的内存。
3.4. 实验结果
我们与现有的抓取位姿估计算法进行实验比较。我们同样将数据集按照两种依据进行划分——按照图片划分(Image-Wise, IW)和按照物体划分(Object-Wise, OW)。IW划分方式主要评估网络模型对于不同位置,不同姿态的物体的抓取位姿检测能力;OW则更加关注神经网络模型在新物体下的适应性。主要实验结果如表1所示。我们分别使用RGB和Depth作为网络的输入,分别执行前向传播。从表1中可以看出,和其它现有的算法进行对比,我们的方法在准确率上有一定的提升。无论输入时RGB还是Depth图像,无论在IW划分规则还是在OW划分规则下,我们的方法所获得的准确率都优于现有的方法。本文方法的部分实验可视化结果如图5所示。除此之外,我们还设置了不使用PPM的基准网络,他们分别使用最大池化模块(Max)和平均池化(Avg)模块作为PPM的对比模型,从而验证PPM模块在提升网络的性能上有关键作用。两个基准网络在所有的实验设置下均仅有接近90%的准确率,远远低于嵌入了PPM模块的网络。

Table 1. Experiment results on cornell dataset
表1. 在Cornell数据集上的实验结果
从公式(8)和公式(9)可知,两个可以改变的阈值参数
和
与准确率相关,上述实验结果都是在
和
下得到的。为了进一步验证本文网络模型性能,我们改变这两个阈值,测试网络模型在不同的阈值下准确率表现。如果在更加严格的阈值条件(
越小或
越大)下准确率依旧维持在较高数值的话,那么可以认为网络模型具有更强的鲁棒性。我们设置从
开始,按照固定步长不断缩小
;从
开始,以固定步长不断增大
,从图6可以看出,我们的算法在角度阈值变小的时候保持了
较高的准确率;在
变大的过程中,准确率下降缓慢。而GR-ConvNet算法则无法很好地应对更加严格的阈值条件。这充分表明了本文的方法能够预测精度更高的抓取位姿,结果更加稳定,并且鲁棒性也更强。

Figure 5. Visualization of grasp detection results on cornell dataset
图5. 在Cornell数据集上的检测结果可视化

Figure 6. Grasp detection of accuracy at different thresholds
图6. 不同阈值下的准确率变化曲线
4. 机械臂实物抓取实验
本文的方法在抓取数据集上取得了优秀的理论抓取位姿估计性能,但是仍有必要将本文算法部署到实际机器人系统上进行抓取测试验证本文提出方法的有效性。本文使用安川MA2010机械臂配合Robotiq二指夹爪进行操作,使用RealSense D435i相机进行场景信息的捕获,深度相机固定在机械臂的手腕处。在实验之前相机标定和手眼标定均已经完成。我们使用ROS配合Moveit!运动控制框架驱动机械臂。本文选取了日常生活中常见的15中物体作为候选物体集,并将它们大致分成四大类——圆柱体、金属类、环状物体类、其它。如图7所示,这些物体不存在于用来训练网络的数据集中,可以用来评估网络对陌生物体检测抓取位姿的性能。

Figure 7. Object candidates for robotic grasping experiments
图7. 实物抓取实验的候选物体集
4.1. 实验流程
我们从候选物体集中选取n个物体并将它们以随机的姿态放在操作台上。当机械臂抓住一个物体并且移动到指定的目标地点松开夹爪后,这次抓取尝试就视作成功,如果在这个过程中物体掉落这此次抓取尝试失败。对于每个场景,机械臂自主执行最多1.5n次抓取操作,记录抓取成功的次数为
,抓取尝试的次数记作
,我们使用抓取成功率(Success Rate,
)和抓取完成率(Completion Rate,
)来量化评估系统的性能。
4.2. 实验结果
我们用文献 [6] 的开源实现在相同场景下的表现作为对比。实验的结果如表2所示。我们设置了三个不同的n参数,用来表示场景中的物体数量,场景中的物体数量越多,任务的难度越高。从表格中的数据可看出,本文的方法可以在最大允许抓取次数的限制下以高成功率和高完成率完成复杂场景下的抓取作业。文献 [6] 在
和
时以86.7%和75.8%的平均抓取成功率完成物体的清理,而我们的系统的平均抓取成功率为93.3%和95.2%,我们的方法表现出更加优秀的性能。在
的困难场景,文献 [6] 的平均抓取成功率仅为52.8%,而我们的系统可以以75.6%的平均抓取成功率达到100%的抓取完成率。这表明我们的网络在有限的数据集中得到了更加充分的训练,在无需额外数据的情况下就有潜力处理复杂的物体抓取场景,即使待抓取的物体在数据中从未出现过。部分抓取实验场景展示见图8,在图中我们只展示了置信度最高的5个抓取位姿。

Table 2. Results of robotic grasping experiment
表2. 机械臂抓取实验结果

Figure 8. Illustration of robotic grasping in clutter scenarios
图8. 杂乱场景下的机械臂抓取实验图
5. 结论
本文提出了一个有效的基于多层级特征的像素级端到端抓取检测网络。通过在卷积神经网络中嵌入多层级金字塔池化模块和多分支输出结构,我们的方法可以从有限的数据集中充分挖掘特征,在多物体杂乱场景下处理尺寸和姿态各异的未知物体的抓取位姿检测问题。我们使用Cornell数据集评估了提出的方法的理论性能,结果表明我们的方法的理论抓取性能优于现有方法;在机械臂实物抓取实验上,我们在多物体杂乱场景中以88.0%的平均抓取成功率实现了100%的抓取完成率。本文的算法并未针对运动物体的抓取位姿检测问题做出深入的研究,这需要调整算法网络模型和抓取系统架构来适应动态场景,这将是后续需要着重关注的问题。