结合增量学习的物体抓取检测框架

2023-08-29 01:10戚宗城陈俊洪杨振国刘文印
小型微型计算机系统 2023年8期
关键词:增量示例类别

戚宗城,陈俊洪,杨振国,刘文印

(广东工业大学 计算机学院,广州 510006)

1 引 言

视觉抓取检测是机器人执行操纵物体和人机交互等任务的关键,目前已有不少具有抓取检测功能的机器人系统被部署在不同的场景中,例如垃圾箱拾取[1]、大件和重物抓取[2]、从演示中学习抓取物体[3]等.研究机器人抓取检测的终极目标是实现智能抓取,机器人可以对合理的物体生成好的抓取姿势,并且去执行相应的抓取动作.

近年来,由于深度学习的快速发展,抓取检测研究取得了巨大的进步.绝大多数的抓取检测方法已经可以取得比较好的效果,这主要得益于大规模的训练数据和复杂的神经网络.例如,Zhou等人[4]提出了定向锚点框机制,该机制在物体表面上分配具有不同默认方向的抓取矩形.Chu等人[5]使用区域提议网络(RPN)来得到候选的抓取区域,并进一步将它们分类为可抓取和不可抓取的区域.受全卷积网络(FCN)的启发,Wang等人[6]结合不同下采样特征图的局部特征和全局特征,在每一个像素位置生成鲁棒的抓取姿势,抓取姿势经过转换可以得到抓取矩形.Kumra等人[7]提出了GR-ConvNet,通过在全连接层上引入残差网络结构来解决网络过拟合问题,最终生成鲁棒的抓取姿势.然而,这些方法通常是基于无标签的外观形状特征进行抓取,其训练过程中固定了样本的数量和类别,模型只能在这些样本中表现出较好的性能,限制了模型扩展性.特别是在实际场景中,由于物体的形状、颜色和大小等变化很大,对未知类别物体的预测具有挑战性,这给物体抓取带来了一定的困难.

为了解决这个问题,增量学习的概念被研究者们所提出.然而在增量学习领域,一个关键的挑战是在处理新数据时解决从旧数据中学到的知识的灾难性遗忘问题[8].为此,Li等人[9]提出了无遗忘学习,通过引入知识蒸馏损失[10]来减缓灾难性遗忘问题.Shin等人[11]使用生成对抗网络来合成用于重放的样本,替代了直接存储旧数据的方式.Rebuffi等人[12]使用Herding算法[13]来选择每类物体中最具有代表性的那些样本,从而构建出一个训练数据子集用于重放旧知识.由于Herding算法是选择每个类一定数目的最近邻居,这导致了优先样本选择策略[12]容易选择那些接近类中心的样本,无法捕捉到每类物体的丰富特征,最终导致模型在后续的增量更新时性能变差.基于以上问题,本文设计了一种新的聚类优先样本选择策略,该策略可以动态更新示例集,确保了训练数据的代表性和多样性.

本文目标是通过增量学习的方式来动态更新抓取模型,一方面减少已知物体的知识灾难性遗忘问题,另一方面尽可能地学习未知物体新知识,更新后的模型可同时用于已知物体和未知物体的抓取检测.因此,本文提出了一种基于增量学习的物体抓取检测框架,该框架包含两个阶段,在第1阶段,本文使用所提出的密集注意力网络(Dense Attention Network,DAN)在已知物体样本上进行训练,用于学习基本的抓取知识.在第2阶段,本文提出了一个聚类优先样本选择策略来更新存储的示例集.具体来说,在每个增量步骤中,首先将已经训练的类别样本分别分组到一定数量的簇中,并根据它们与质心的距离来选择具有代表性的样本,最后将具有代表性的样本替换到旧样本中进行训练.除此之外,除了使用回归损失来优化抓取检测模型,本文还将两个训练阶段作为一个带有蒸馏损失的教师-学生网络,这样在第2阶段训练DAN时可以保留从第1阶段学到的知识.根据调研结果发现,现有研究中还没有结合增量学习的物体抓取检测研究,本文是第一个利用增量学习的思想来提高未知物体抓取成功率的抓取检测研究.

本文的主要贡献如下:

1)提出了一个具有密集注意力模块的密集注意力网络(DAN),通过利用注意力机制和密集连接来学习精细的特征图.

2)提出了一种具有两个训练阶段的增量抓取检测框架,可以从未知物体中学习新知识,同时保留已知物体的知识.

3)设计了一种聚类优先样本选择策略,用已知类别物体的训练样本动态更新示例集,确保训练数据的代表性和多样性.

4)对公开可用的Jacquard数据集和工业机器人UR10e进行了大量实验,证明了所提出的抓取框架的有效性和效率.

2 相关研究

2.1 抓取检测

自从2012出现卷积神经网络AlexNet[14]后,研究人员开始大规模将深度学习应用在抓取检测领域.例如,Lenz等人[15]使用滑动窗口来确定各个区域是否包含合适的抓取矩形,但是该方法对重叠区域的处理非常耗时.Faster R-CNN[16]和YOLO[17]等目标检测算法可用于预测候选的抓取矩形.例如,Chu等人[5]使用区域提议网络来生成候选区域,并将它们分类为可抓取和不可抓取的区域,该方法可用于多物体场景[4].Ogas等人[18]设计了一个用于物体识别的网络,并通过使用霍夫变换预测了几个候选的抓取点.Chen等人[19]将抓取候选映射到抓取路径上,先生成映射抓取并使用它们之间的估计误差进行反向传播.然而,上述方法需要大量计算资源进行计算.为了解决该问题,Morrison等人[20]提出了一个轻量级网络来预测图像中每个像素的可抓取分数.Wang等人[6]结合来自不同特征图的局部和全局特征,为每个像素生成机器人抓取姿势.Park等人[21]提出了一个旋转集成模块(REM)来旋转网络权重,它允许网络为每个网格选择旋转卷积.Kumra等人[7]提出通用的生成残差卷积神经网络(GR-ConvNet),利用残差网络的特性更有效地避免过拟合和学习特征.然而,这些基于FCN的方法在学习关键区域隐含的信息时,容易受到背景噪声的影响.

2.2 注意力机制

注意力机制已广泛应用在计算机视觉领域,其灵感来自人类视觉系统[22],即人类首先关注图像显著部分而不是整个图像.Wang等人[23]提出了一个残差注意力网络,它结合了残差层和注意力模块来细化特征图.Woo等人[24]引入了一个简单有效的注意力模块,它在通道和空间维度上推断出注意力图.Fu等人[25]采用两个注意力网络来自适应地整合局部特征和全局依赖.Ni等人[26]提出了一个注意力融合模块来模拟手术器械上下文中通道之间的语义依赖性.然而,这些方法没有对中间的下采样层的交互进行建模,无法捕获到网络层之间传达的关键信息.

2.3 增量学习

增量学习旨在从新数据中学习知识,同时尽可能多地保留先前学到的知识[27],因此最关键的问题是在保留旧知识和学习新知识之间取得平衡.根据所使用的训练数据,现有大多数研究可以分为3大类[28]:1)不使用旧数据.Girshick等人[29]为新增的每类物体的数据添加了相同数量的分类神经元,并对网络进行了微调.Li等人[9]提出了无遗忘学习,它利用知识蒸馏[10]来保持旧任务的性能;2)使用合成数据.此类别中的方法需要重放旧任务的合成数据.例如,Shin等人[11]使用GAN生成旧类物体的样本并用于重放.Venkatesan等人[30]提出了幻影采样方法,通过利用生成模型和提炼隐含的知识来模拟过去的数据分布.Wu等人[31]提出了记忆重放MeRGANS,通过使用重放和重放对齐的联合训练来防止灾难性遗忘;3)使用旧数据.第3类方法需要旧数据,例如文献[12,28].Rebuffi等人[12]提出了一种增量分类器和表征学习方法(iCaRL),通过Herding算法[13]来选择每类物体的代表性样本,并结合分类损失和蒸馏损失来优化模型.Castro等人[32]通过使用端到端框架来学习分类器和数据表示,从而扩展了iCaRL.Wu等人[28]增加了一个偏差校正层来解决新旧类之间的数据不平衡问题.

3 增量抓取学习方法

在本节中,本文在第一小节中介绍了设计的用于抓取检测的密集注意力网络,接着在随后的小节中分别介绍了增量学习的两阶段训练策略.

3.1 密集注意力网络(DAN)

为了实现一种快速准确且轻量级的抓取检测框架,本文设计了一个密集注意力网络(DAN),其结构如图1所示.DAN以RGB-D图像作为输入,利用具有密集注意力模块的卷积层分别进行下采样和上采样,最终生成预测角度图θ、宽度图W和质量图Q.值得注意的是,DAN利用密集注意力模块来关注通道和空间维度之间的信息,并引入密集残差连接来融合之前层生成的特征图.与现有的注意力机制相比,例如通道注意力模块和空间注意力模块[24]以及注意力融合模块[26],本文设计的密集注意力模块可以对不同层次之间的特征交互进行建模,能很好地应用于搭建抓取检测网络.图2显示了设计的密集注意力模块的结构.

图1 密集注意力网络(DAN)模型

图2 密集注意力模块

由图2可以看到,密集注意力模块由两个卷积注意力模块(CBAM块)[24]和两个通道压缩卷积层组成,其中CBAM块结合了通道注意力模块和空间注意力模块来提高图像中物体的显著性.受DenseNet[33]的启发,本文对两个CBAM进行了密集的残差连接,便从中间下采样层中捕获到传达的信息.对于两个通道压缩卷积层,本文分别使用了1×1和3×3卷积核进行卷积.更具体来说,本文使用I∈RC×W×H表示密集注意力模块的输入,其中C表示通道数,W和H分别表示宽度和高度.本文使用第1个CBAM块提取基础的特征,通过密集连接将结果h1与原始输入I连接起来.密集注意力模块中第l个密集层(dl)的输出可以描述成dl=[d0,…,dl-1],其中[…]表示由先前层0,…,l-1生成的特征的结合.此外,本文将连接的特征输入到另一个CBAM块中,其中输出特征h2被传递到一个1×1的压缩卷积层,并添加到之前的输出h1.最后,本文使用密集连接将处理的结果与第1个连接的特征和h2连接起来,这些特征通过3×3压缩卷积层进行处理.为清楚起见,本文将密集注意力模块的最终输出表示为O,它的维度与输入I的一致:

O=φ3×3([I,h1,h2,(h1+φ1×1(h2))])

(1)

其中[…]表示特征之间的连接,+表示元素求和.hl表示第l个CBAM块的输出,而φk×k表示具有k×k卷积核的通道压缩卷积层.

3.2 抓取检测训练阶段

为了逐步学习抓取未知类别物体,本文设计了两阶段训练策略来训练DAN,如图3所示.在抓取检测训练阶段,本文的目标是通过在现有类别物体上训练DAN,以便学习通用的抓取知识.具体地说,DAN采用监督学习的方式,通过最小化smooth L1损失函数对现有类的样本进行训练,公式如下所示:

图3 两阶段的训练策略

(2)

其中smoothL1(x)定义如下:

(3)

3.3 增量训练阶段

在增量训练阶段,本文结合未知类别物体的样本和已知类别物体的示例样本进行训练.在每一步的增量步骤中,使用更多未知类别物体的样本会导致删除更多已知类别物体对象的样本,从而导致灾难性遗忘问题.已有大量的研究证明[12,28],保留部分已训练过的物体数据可有效地减轻灾难性遗忘对先前已学习类别的影响.因此,一个最关键的问题是在示例样本集中取得已见过和未知类别样本之间的平衡.

为了解决灾难性遗忘问题,本文提出了一种聚类优先样本选择策略来选择示例集的代表性样本,挑选出的样本将被当成是已训练的数据的知识代表.具体来说,该策略通过将每个类中的样本聚类成一些不同的簇,并选择一定数量的靠近簇中心的样本,从而确保示例集中所选样本之间的代表性和多样性.

1)聚类优先样本选择策略:根据观察发现,如果先将每个类别的样本分组到多个簇中,即具有相同物体标签的样本可能具有细粒度特征,这样可以保证所选样本的多样性,例如“包”这个物体,可以细分成“后背包”、“钱包”、“腰包”等.

本文将K表示示例样本集的内存大小,对于c个已训练过的类别数量,每个类别需要选择的样本数s如下所示:

(4)

其中k为簇的数量,N[i]为第i个簇C[i]需要选择的样本数量.

算法1描述了所提出的样本选择策略中的主要步骤.首先,给定类别y的图像集合X={x1,x2,…,xt},根据给定的特征函数f(x)提取每个图像的特征向量,其中f(x)是PyTorch提供的ImageNet[34]上预训练的DenseNet-121[33],然后使用K-Means算法将提取的特征分成k个簇.对于第i个簇,本文将根据它们与质心的距离选择N[i]个样本.最后,挑选出每个簇的样本集P1,P2,…,PN[i],合并到该类别的最终示例集中.伪代码如下所示:

算法1.挑选示例集

Input:X={x1,x2,…,xt}类别y的图像集合,s: 示例集的大小,k: 簇的数量

Require给定的特征提取函数f(x):x→Rd

Process

1.F←(f(x1),…,f(xt))//提取特征

2.km←set_kmeans_clusters(k)

3.C←km_fit_data(F) // 计算簇分布

4.Npre← count_samples_per_cluster(C)

5.N←adjust_number_selected_per_cluster(Npre,S)

6.fori=1,…,kdo

8.forz=1,…,N[i]do

10.endfor

11.Pi←(p1,…,pN[i])

12.endfor

13.P←(P1,…,Pk)

Output:示例集P

2)损失函数:除了使用smooth L1损失函数之外,本文在师生网络中引入了蒸馏损失[10].对于当前的任务,本文将上一个训练步骤中的DAN作为教师网络,当前训练步骤的DAN作为学生网络.在每个增量步骤中,蒸馏损失可以惩罚教师和学生之间的预测结果,并在对未知类别物体进行学习的同时尝试保持DAN在已知类别物体上的性能.

蒸馏损失的定义如下:

Ldistill(M,X,G)=Lreg(G,M(X))

(5)

其中M,X和G分别表示上一个训练步骤中的DAN、已知物体的输入图像和当前训练步骤中预测的抓取姿势.

因此,第2阶段的DAN的总体损失函数定义如下:

(6)

4 实验结果与分析

在本节中,本文将所提出的方法与现有的抓取检测和增量学习方法进行比较.此外,还在UR10e机器人上部署了训练好的抓取模型,用于真实世界的抓取评估.

4.1 数据集

为了评估所提出方法的性能,本文使用以下两个数据集进行测试:

1)Jacquard数据集[35]:该数据集建立在ShapeNet的子集上,一共采集了11k个物体54k张RGB-D图像.本文使用该数据集进行抓取检测的性能评估.在数据集划分方面,本文按照此文章[7]的实验设置,随机选择90%的样本进行训练,其余10%进行测试.

2)Jacquard-50数据集:该数据集是由本文基于Jacquard数据集中的物体图像进行收集的,主要用于增量学习实验的评估.更具体地说,本文手动标记了与50种物体类别相关的14,702张图像,例如铅笔、订书机和锤子等.在数据集的划分方式上,本文从每个类别中随机选择90%的样本进行训练,其余10%用于测试.在增量学习的上下文中,参数p表示每个时间窗口中将出现的新类物体的数量.例如,如果p=5,则在每个训练阶段,将增加5个未知物体类别的图像来训练抓取模型.

4.2 基线方法

在抓取检测方面,本文使用的基线方法包括一系列的深度学习模型,例如GG-CNN[20]、FCGN[4]、GG-CNN2[36]和GR-ConvNet[7]等.更具体地说,GG-CNN设计了一个浅层结构的轻量级网络,从而预测图像每个像素的抓取姿势.FCGN使用定向锚点框机制,提供预定义的定向矩形,然后选择得分最高的抓取矩形.GG-CNN2通过参数探索策略扩展GG-CNN以降低网络复杂度.GR-ConvNet通过引入残差结构来减少网络的过拟合,同时提高预测的精度.

在增量学习方面,本文所提出的DAN可以无缝地采用微调(FT)[29]、无遗忘学习(LwF)[9]以及增量分类器和表征学习(iCaRL)[12]方法.为清楚起见,本文将具有上述增量学习方法的DAN分别表示为DAN-FT、DAN-LwF和DAN-IC.特别是在新旧类图像上联合训练(JT)的DAN是增量学习实验的上界性能,表示为DAN-JT.

4.3 评估指标

在抓取检测的评估上,本文采用Jiang等人[37]提出的抓取矩形度量,即预测的抓取矩形和真实抓取矩形之间的交并比(IoU)得分超过25%,以及预测的抓取矩形和ground truth抓取矩形的抓取方向相差小于30度则认为是正确的.

4.4 实现细节

本文在Ubuntu 16.04机器上使用PyTorch 实现提出的方法,该机器具有时钟频率为3.30 GHz的Intel Core i9-7900X CPU、具有CUDA 8的NVIDIA GeForce GTX 2080 Ti GPU.在抓取检测训练阶段,本文使用Xavier方法来初始化DAN的权重,epoch设为50,初始学习率设为0.01.在增量训练阶段,本文用先前已训练好的抓取模型初始化DAN的权重.示例集的大小设置为2,000,学习率设置为0.002,epoch设置为30.本文使用随机梯度下降法(SGD)来优化DAN,批量大小为16,权重衰减为0.0005.

4.5 抓取检测评估实验

表1展示了DAN在Jacquard数据集上的性能.在模型准确性方面,与深度学习基线相比,所提出的DAN获得了最好的性能.DAN利用密集注意力模块对中间特征下的交互进行建模,可以将关键信息从低层次转移到高层次,有利于抓取检测任务的执行.在模型复杂度方面,DAN具有较少的参数数量和较快的预测时间,具有一定的竞争力,在准确性和复杂度之间取得了平衡.

表1 Jacquard数据集上的性能

直观地,本文将不同抓取模型的预测结果进行了可视化,如图4所示.从图中观察到,与基线方法相比,本文提出的模型生成了准确且合理的抓取姿势.GG-CNN2和GR-ConvNet有错误或不合理的预测,如红色矩形所示,在抓取锤子这类物体时,理想的抓取区域应该在锤柄的中间部分,这样可以提高机器人实际抓取的成功率.导致模型差异的可能原因在于这两个模型很容易受到背景或不相干区域干扰,无法学习到有判别性的特征,因此产生了失败的预测结果.

图4 不同抓取模型预测的抓取姿势

4.6 增量学习评估实验

本文对每个训练阶段加载的未知物体类别的数量p以及不同设置的基线增量学习策略进行评估,其中对于加载未知物体类别数量p,本文选择p=5、p=10和p=25这3种情况进行测试,测试性能如图5所示.需要强调的是,本文将示例集的大小设置为2,000,表示在增量训练阶段最多可以使用2,000个样本与未知物体类别样本一起训练.从图中,本文得出两个观察结果.首先,随着训练类别数量的增加,大多数方法的性能依然表现非常稳健.跟图像分类任务不一样,抓取检测任务是回归任务,并没有具体的预测标签,所以不容易受到物体类别数量的干扰,它们只关注最终的预测结果和实际的抓取成功率.在不同基线增量学习策略对比方面,DAN的性能非常接近上界性能DAN-JT,如表2所示,这也直接表明了经过聚类优先样本选择策略挑选出的样本,可以确保样本之间的代表性和多样性,缓解灾难性遗忘问题.

表2 Jacquard-50数据集上的平均性能

图5 Jacquard-50数据集上的增量学习性能

为了直观地了解不同样本选择策略挑所选出的样本分布情况,本文以“Chair”类为例进行了可视化.从图6中可以观察到iCaRL只选择那些接近类中心的样本.相比之下,本文的策略在选择接近类中心样本的同时,还选择到了有差异性的代表性样本,这样有利于获得样本背后丰富的特征模式.

图6 iCaRL的选择策略和本文提出的选择策略(簇数量设置为7)选择出样本的t-SNE结果.注意,不同的颜色表示不同的簇,实心点是选择出的样本,而空心点则被丢弃

由于样本选择策略中参数k会决定从每个物体类别中的图像中分割的簇数量,从而导致分割的效果,因此本文对k值进行单独的测试.对于其他参数,本文将参数p设置为25,示例集大小设置为2,000,实验结果如表3所示.其中s表示每个类别要选择的样本数.从表中可以观察到两个结果:1)是开始时,DAN的性能随着簇数量的增加而提升,这得益于所提出的策略选择的不同样本所涵盖的丰富模式;2)是当到达一个边界点之后,DAN的性能可能会有所下降,因为封闭数据集下的模式数量是固定的,因此获取过多的簇数量无法捕获数据下更多不同的模式.

表3 k值的影响(p=25和示例集大小是2000)

4.7 消融实验

为了验证设计的密集注意力模块的有效性,本文在Jacquard数据集上进行了消融实验,主要对比了不带有该模块的DAN的变体以及原生的DAN.为清晰起见,移除密集注意力模块后的DAN,本文将其表示为DAN_NA,表4总结了这些方法的性能.从表中可以看到设计的密集注意力模块能够使得模型集中注意力到视觉特征的重要部分,同时可以细化先前下采样层提供的特征,并有助于生成准确而稳健的抓取姿势.

表4 DAN变体在Jacquard数据集上的性能

4.8 机器人目标抓取

本文所做工作的目标是建立一个动态更新知识的抓取模型,并部署到真实环境中自动执行.为了达到这个目标,本文将抓取模型部署到一个7自由度的UR10e机器人上,其中该机器人在末端执行器上有一个三指机械爪,并且在手腕上使用Kinect v2相机进行感知.具体的工作空间包含一个50×50cm2的平面区域.在实验中,本文使用16个家庭常用的物体,其中包括8个已知物体和8个未知物体,如图7所示.每个物体都会被放置到20个不同的位置和方向,以便对抓取模型进行全面的测试.如果机器人抓住目标物体并在空中停留5秒,则认为本次抓取是成功的.

图7 家用物体

除了对DAN进行真实测试外,本文还部署了不同的抓取模型GG-CNN2和GR-ConvNet以进行比较.为了公平起见,对于常规的抓取模型训练,本文使用Jacquard-50数据集的25个已有物体类别进行训练,训练的模型包括DAN在第一阶段的变体(DAN_S1)、GG-CNN2和GR-ConvNet.对于增量抓取的场景,DAN在25个已有物体类别和25个不可见物体类别上进行增量训练.实验结果如表5所示.

表5 机器人实际的抓取成功率

从表5中可以观察到,与常规的抓取模型相比,DAN_S1在性能上取得了显著的提升,并且对未知物体也有良好的鲁棒性.DAN经过增量学习后,依然能够保持对已学习过的物体的性能,并且在未知类别物体上取得了更好的性能,证明了DAN以增量学习的方式来学习抓取未知物体的意义.图8展示了UR10e机器人抓取不同物体的一些快照.从图中可以发现机器人可以根据DAN预测出的抓取矩形去执行具体的抓取动作,并有一定的抓取成功率,这表明本文提出的抓取模型可以真实有效地部署到真实环境中.另外,在抓取球类物体时,机器人并没有抓取成功,而是从手指间滑走了,原因在于球类物体的形状是圆的,抓取非中心位置会导致失败,这也表明了抓取姿势的生成位置是至关重要的,即使根据评估指标预测的抓取姿势都是正确的,但是这些姿势不一定都合理.因此,一个后续重要的研究方向是如何让抓取模型生成正确且合理的抓取姿势,提高机器人实际抓取的成功率.

图8 抓取检测示例及机器人抓取的执行过程

5 结 语

本文提出了一种密集注意力网络(DAN)来增量地学习抓取未知类别物体.为此,本文设计了一个具有密集注意力模块的DAN,它可以对中间层下的代表性信息进行建模,从而得到高判别性特征.更有意义的是,本文还设计了一种具有抓取学习和增量学习的两阶段训练策略,在保持从旧数据中学到的知识的同时从新数据中学习新知识.在增量训练阶段,提出了一种聚类优先样本选择策略来更新示例集,该示例集将与未知类别物体的图像一起训练,从而达到动态更新抓取模型的目的.在公开数据集和真实机器人上的实验表明,本文提出的DAN可以生成准确的抓取姿势,并能够部署到真实环境上,验证了DAN的可行性和有效性.

在未来的工作中,本文将在以下方面扩展提出的框架:1)探索更多的注意力机制,提升抓取模型的性能;2)融合更多图像分类领域的增量学习方法,借鉴到机器人抓取领域上,更好地解决灾难性遗忘问题.

猜你喜欢
增量示例类别
提质和增量之间的“辩证”
2019年高考上海卷作文示例
“价增量减”型应用题点拨
常见单位符号大小写混淆示例
常见单位符号大小写混淆示例
“全等三角形”错解示例
基于均衡增量近邻查询的位置隐私保护方法
服务类别
德州仪器(TI)发布了一对32位增量-累加模数转换器(ADC):ADS1262和ADS126
论类别股东会