基于孪生网络的协作机器人目标追踪

2023-01-12 07:14韩江雪郭小明汤永恒王丽鑫潘斌
辽宁石油化工大学学报 2022年6期
关键词:分支卷积机器人

韩江雪,郭小明,汤永恒,王丽鑫,潘斌

(1.辽宁石油化工大学 计算机与通信工程学院,辽宁 抚顺 113001;2.辽宁石油化工大学 理学院,辽宁 抚顺 113001)

智能制造的发展离不开机器人,发展智能机器人是打造智能制造装备平台、提升制造自动化和智能化水平的必经之路。智能机器人在工业上广泛应用的同时,普通消费市场对轻型协作机器人的需求也与日剧增,人机协作将给未来社会的生产和制造带来根本性变革[1]。目前,协作机器人的应用场景是模仿工业机器人,而其中最为关键的一步就是通过摄像头指导机械手进行精准移动,即协作机器人目标跟踪,这也是机械手摆脱单调的示教器控制和拖拽轨迹记录,通过摄像头与现实世界有机连接起来的重要一步。目标跟踪结合协作机器人可以在跟踪录像、标定校准、手势操作、高精度动作模仿、工件夹取等多方面展开更多应用。

1 研究现状

目标跟踪任务可以被分解为分类任务和回归任务。分类任务旨在通过分辨前景和背景得出目标的粗略位置,而回归任务则是预测目标的精确位置,通常用跟踪框标出。以往的目标跟踪方法依据回归任务的方法差异可以被分为三类。第一类为采用不准确且低效的多尺度检验预测目标位置,包括判别式相关滤波器(Discriminative Correlation Filter)2]和SiamFC(Fully-Convolutional Siamese Networks)[3]。其 中,SiamFC使用AlexNet[4]网络作为骨干网络,其处理速度较快但跟踪精度不够。第二类为采用梯度上升方法优化多个初始包围框以预测最终跟踪框的ATOM(Accurate Tracking by Overlap Maximization)[5]算法,此方法显著提高了精度但也带来了巨大的运算负担,初始包围框的数量和分布等超参数也需要仔细调整。第三类为运用区域建议网络RPN(Region Proposal Network)预测跟踪框的位置,包括SiamRPN[6]、SiamRPN++[7]和DaSiamRPN[8]。其中,SiamRPN++将骨干网络更换为更深层的ResNet[9]网络,使跟踪精度相比第一类方法有所提高,但降低了处理速度。由于使用了基于锚框(Anchor-Based)的跟踪器,在跟踪过程中会选择几种固定大小的锚框在原图中做滑动以获得跟踪位置,影响模型的泛化能力[10]。

2 本文算法

用于协作机器人的目标跟踪算法需要考虑的首要目标便是中心点位置,所以本文选择无锚的方法进行跟踪。综合权衡协作机器人的具体工作需求、硬件因素以及相关算法中存在的问题,提出了基于改进的RepVGG作为骨干网络的无锚目标跟踪算法,整个网络分为孪生网络模块、分类回归模块和机器人执行模块。网络整体框架如图1所示。图中,L、T、R、B分别表示回归模块预测的目标位置相对于中心点向左、向上、向右、向下的偏移量;n、m为输出特征图的通道数。

图1 网络整体框架

2.1 孪生网络模块

孪生网络是一种神经网络框架,它由模板分支和搜索分支两个结构相同、权值共享的骨干网络构成。骨干网络提取输入图像的特征后,通过一个神经网络来计算模板分支输入与搜索分支输入之间的相似度,经过计算得到较大相似度的位置,此处即为需要跟踪的目标。本文采用改进的RepVGG网络替换传统的ResNet网络作为骨干网络,通过深度互相关运算与多层特征融合方法提取不同细粒度的图像特征,以达到更好的跟踪效果。

2.1.1 骨干网络 RepVGG网络的设计思路部分来自ResNet网络,其训练时采用多分支结构,并设计了如式(1)形式的模块。

式中,x、g(x)、f(x)分别为恒等分支、1×1卷积分支和3×3卷积分支。RepVGG网络使用1×1和3×3卷 积 分 支,ResNet网 络 是 跨 层 连 接,而RepVGG网络是每层都使用此两种分支。RepVGG网络可以在训练阶段通过对上述模块的堆砌来构建深度卷积神经网络,然后通过简单的代数变换将三个分支转换为y=h(x)的形式。其中,h(x)代表带偏置的3×3卷积,参数可由训练好的模型参数转换得到。ResNet和RepVGG网络结构如图2所示。

图2 ResNet和RepVGG网络结构

RepVGG原网络用于提取图像的特征,整个网络分为5个阶段,其卷积操作的总步长为32。然而,卷积操作的步长越长,得到的特征图也就越小,不利于目标跟踪任务中对跟踪框的预测,适当减少步长可以有效提高跟踪精度。本文采用RepVGG-A2作为骨干网络,其中第4、5阶段的步长调整为1,其余阶段的步长均为2,以尺寸255×255作为网络输入,修改后的RepVGG-A2训练模型的网络参数如表1所示。每阶段RepVGG训练的网络结构如图3所示。其中,RepVGG Block的个数N=每阶段的层数-1。

表1 修改后的RepVGG-A2训练模型的网络参数

图3 每阶段RepVGG训练模型的网络结构

2.1.2 训练模型转换为部署模型 RepVGG的另一个特点是可以进行参数重构,将训练好的模型通过参数重构转变为运行时使用的部署模型,将多分支网络重构为单分支网络,降低显存占用,在没有损失模型性能的前提下提高运行速度。RepVGG网络每层的卷积操作可以表示为:

式中,Ki为输入信道数为C1、输出信道数为C2、核大小为i的卷积层;μi、σi、γi、βi分别为经过核大小为i的卷积后的批归一化(Batch-Normalization)层的参数;BN为批归一化操作;μ0、σ0、γ0、β0分别为恒等分支(Identity Block)的批归一化层参数;A(1)∈RN×C1×H1×W1、A(2)∈RN×C2×H2×W2分别为输入和输出;*为卷积操作。

根据批归一化运算公式,需要先计算xi中所有元素的均值μi和标准差σi,对x1i、x2i、…、xm i进行归一化处理得到分布̂,并引入缩放参数γi和平移参数βi得到新的分布yi,其表达式见式(3)。批归一化处理示意图如图4所示。

图4 批归一化处理示意图

式中,xbi为当前输入第b个特征图中第i个点的值;yib为xbi经过批归一化后的输出值。

根据式(3),将每个批归一化层及其之前的一个卷积层转换成一个带有偏差向量bi的卷积层,其卷积核为i。变化后的归一化计算式如式(4)所示。

由于恒等分支可视为值为1的1×1卷积操作,所以1×1卷积分支的参数变换同时适用于恒等映射分支;恒等分支的卷积核可视为一个3×3的单位矩阵,将3个偏置向量相加得到最终的偏置,将恒等分支卷积核、做一层0填充(Zero Padding)后的1×1卷积核以及3×3卷积核对应相加,得到最终带有偏置的3×3卷积核。

2.1.3 深度互相关与多层特征融合 利用RepVGG深度网络提取特征之后,将不同深度的层聚合起来以同时获得更多尺度的特征。视觉跟踪需要从小到大、从粗略到精细的各种特征。聚集这些特征可以强化对跟踪目标的定位和预测能力。

深度互相关模块是处理两个分支信息的核心操作。受SiamRPN++的启发,使用深度互相关模块来生成多个语义响应图,其表达式为:

式中,★为逐通道进行互相关运算;X、Z分别为搜索分支输入和模板分支输入。生成的响应图Map具有与φ(X)相同的通道数,且包含大量用于计算跟踪框的信息。

模板分支和搜索分支分别输入到共享参数的RepVGG骨干网络中,取其中3、4、5阶段的 输出,通过自适应模块将通道数转为同一数量,两两对应进行深度互相关运算得到Mapi,分别以Map3、Map4、Map5表示;再将响应图进行融合,得到最后的多层融合特征φ(x):

式中,MIX为特 征融合操 作。Map3、Map4、Map5的通道数n=256,φ(x)的通道数为3n。经过1×1卷积降维,将融合特征的通道数降低到m=256以减少参数数量,提高计算速度,生成最后的响应图Map*。相比于直接对3个阶段的响应图Mapi进行加权融合,采用1×1卷积减少通道数的方法的跟踪性能更优。

2.2 分类回归模块

响应图Map*中的每个位置(i,j)都可以映射回输入的搜索区域(x,y)。与基于锚框的跟踪算法不同,本文算法直接对响应图中的每个位置进行分类和回归,并通过端到端的全卷积运算进行训练,避免手动设置复杂的超参数。跟踪任务被分解为两个子任务:一个分类分支用于预测响应图中每个位置对应的是背景还是跟踪目标,另一个回归分支用于计算该位置的边界框。对分类分支采用交叉熵损失函数,对回归分支采用IoU(Intersection over Union)损失函数。

将使用孪生网络模块提取的响应图Map*输入后续的神经网络中,经过分类子网络和回归子网络以及其后连接的卷积层(见图5),最后在分类子分支输出分类特征图,其每个点包含一个2维向量,表示输入搜索区域中相应位置的前景和背景得分,以及中心评估特征图,其每个点给出对应位置的中心度得分。在回归分支输出回归特征图,每个点包含一个4维向量t(i,j)=(L,T,R,B),表示在搜索分支输入图像相应位置到真实边界框的4个边的距离。

图5 分类子网络和回归子网络的网络结构

2.2.1 回归分支 用(x0,y0)和(x1,y1)表示真实框的左上角和右下角坐标,用(x,y)表示响应图Map*上的点(i,j)对应的搜索分支输入图像的坐标。对应关系(x,y)=(dis+i×总步长,dis+j×总步长)。其中,dis=[(搜索图像尺寸-1)-(响应图尺寸-1)×骨干网络总步长]÷2=31。回归分支特征图(i,j,:)上 每 个 点 的 回 归 目 标t͂(i,j)表示为:

式中,Ι()为特征图上每一个点对应的标签;(i,j,:)为回归分支的预测结果。

真实框和预测值之间的IoU损失函数为:

2.2.2 分类子分支与中心度分支 分类子分支用交叉熵损失函数计算对应在搜索图片上的点与真实框逐个点位的交叉熵:

式中,、分别为分类任务中正样本与负样本的损失函数计算结果;Ι(i,j)为对应搜索图片的像素,通过Ι(i,j)值可判断像素是否在真实框内。对于前景得分(i,j,0)的特征图,在真实框内的像素的Ι(i,j)值为1,其余为0;对于背景得分(i,j,1)的特征图,则与之相反。

从远离跟踪目标中心的位置得到的跟踪框的质量往往都很低,会降低算法的性能,且协作机器人目标跟踪更是与中心点的准确度密切相关。受FCOS[11]目标检测算法的启发,添加了一个与分类子分支平行的中心度分支。中心度特征图上的每个点给出对应搜索分支输入图像位置的中心度得分为:

C(i,j)的值与特征图的点对应搜索区域的位置(x,y)和跟踪目标中心点之间的距离成正比,如果(x,y)位于背景中,则C(i,j)=0。中心度分支的整体损失函数采用BCE Loss表示为:

2.3 机器人执行模块

目标跟踪的主要任务是预测视频序列中第1帧图像中跟踪框的位置变化。从回归分支得到的l+r和t+b代表目标在当前帧中的预测宽度w和高度h。由于跟踪框的大小和长宽比通常在连续的帧上只会发生微小的变化,为了使用这种时空一致性来监督预测,受SiamRPN算法启发,对分类得分cls进行尺度惩罚;为了消除响应图中边缘位置对跟踪框的影响,又对分类得分添加余弦窗惩罚。

式中,H为余弦窗;λ为平衡权重;输出q是响应图中具有最高得分的位置。由于没有采用基于锚框的跟踪方式,响应图的每个像素都会生成预测的边界框,在实际的跟踪过程中,如果只将q作为跟踪框,它将在相邻视频帧之间抖动。因此,从q的3×3邻域中选择得分最高的3个点的回归框的加权平均值作为最后的预测框。

输出给协作机器人的预测框的数据格式为一个4向量,包括目标中心点(x,y),以及跟踪框的尺寸(w,h)。考虑到机械结构特性,为降低工作负担,提高运行的流畅度,对跟踪框的变化做平滑处理。最终的尺寸为:

式中,(gtw,gth)为前一帧完成平滑处理的预测框;α为加权参数;(w1,h1)为最终平滑后的结果。

3 实验环境及结果

实验训练过程在64位ubuntu 18.04操作系统上进行,使用pytorch框架对网络进行构建和训练,硬件 配 置CPU为Intel Xeon(R)Platinum 816,内 存256 G,GPU为4张NVIDIA P100。实验测试过程在64位Windows 10操作系统上进行,硬件配置CPU为Intel(R)Core(TM)i5-9400,内存8 G,GPU为NVIDIA GTX1660Ti。将模板分支和搜索分支的输入图像大小分别设置为127和255像素。修改后的RepVGG网络被用作骨干网络,该网络参数在ImageNet上进行预训练,然后使用其预训练参数作为初始值来重新训练构建的模型。

3.1 参数设置

整个训练使用的数据集有COCO[12]、YouTube-BB[13]、LaSOT[14]、ImageNet DET[15]、ImageNet VID[15]、GOT-10K[16]。训练过程中batchsize被设置为96,总共20个时期(epochs)通过使用初始学习率为0.001的SGD来执行。前10个时期用于训练分类和回归子网络,此时骨干网络的参数被冻结。在后10个时期,解冻RepVGG的最后3个阶段的参数,使用所有的数据集进行训练。

3.2 性能分析

LaSOT是一个包含70个子类,每类20个跟踪序列的超大型单目标跟踪数据集。使用1 120个跟踪序列进行训练,用余下的280个用于测试。由于协作机器人一般工作在室内的固定地点,因此主要关注照明变化(IV)、部分遮挡(POC)、相机运动(CM)场景下跟踪器的性能表现。跟踪器测试结果如图6所示。图中,绿框为真实值,黄框为预测值。协助机器人目标追踪成功率及精确度如图7所示。

图6 跟踪器测试结果

图7 协助机器人目标追踪成功率及精确度

由图7可以看出与SiamRPN++、SiamMask[10]、SiamFC、DaSiamRPN、VITAL、DSTRCF、ECO、DSiam、StructSiam、TRACA、CSK孪生网络跟踪器以及其他类型的跟踪器相比,所提算法保持了很高的水平;对比目前主流的孪生跟踪算法SiamFC,在LaSOT数据集上的照明变化(IV)、相机运动(CM)等与协作机器人工作环境相近的场景中成功率分别提升了60%和64%,与DaSiamRPN的性能相当;在大数据集上具有如此好的效果,证明改进的孪生网络具有良好的泛化能力。

3.3 有效性分析

为确认改进策略的有效性,继续在LaSOT数据集上进行了对比实验,结果如表2所示。

表2 LaSOT数据集对比实验结果

由表2可以看出,使用中心度模块可以提高追踪的性能,采用RepVGG作为骨干网络可以提高运行速度;本文算法虽然与实验1相比准确度和成功率略有下降,但减少参数量,FPS为45帧/s,达到了实时跟踪的效果,在精确度与实时性之间找到了相对较优的平衡点。

4 结论

提出了一种基于孪生网络的协作机器人目标跟踪算法,整个网络的各个分支卷积核的尺寸大多为3×3,且不需要复杂的超参数调节;在复杂数据集上的测试也有主流孪生网络跟踪器的优秀性能。由于现有计算库有CuDNN、Intel MKL等,硬件对3×3卷积的优化以及RepVGG骨干网络的特殊设计,使整个网络的显存占用更低,处理速度更快,在中等性能的图形处理器上也能达到实时处理的效果;在精确度和实时性之间找到了相对较优的平衡点。然而,在实际使用中还会有很多问题需要解决。协作机器人作为一种新型且具有高生产力的产品,只有更多地开发针对其硬件优化的高质量算法,才能广泛地推广到消费级市场;只有降低购买者的学习成本和使用成本,才能更好地发挥其高精度、轻便、易部署、低后期维护成本的特点,更好地提高社会生产力。

猜你喜欢
分支卷积机器人
一类离散时间反馈控制系统Hopf分支研究
软件多分支开发代码漏合问题及解决途径①
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
巧分支与枝
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
机器人来帮你
认识机器人
机器人来啦