程 敏 张 淼 郭永春 唐海健
(亿嘉和科技股份有限公司,南京,210012)
机器人在室外电力作业场景应用越来越广泛,可将体力消耗大、技能需求高、危险性大的操作转变为安全、简单的操作,例如剥线和避雷器换取等高危的人工操作改为机器人自主作业。但室外场景通常较为复杂,有逆光、遮挡、强光等挑战,容易丢失目标,鲁棒性较差。这就要求机器人具备环境感知、目标定位、多模态融合等感知技术,从而适应不同作业需求及复杂作业环境。综上,室外电力作业应用对机器人的感知能力提出了更高的要求,希望机器人在复杂场景中可以检测出目标物的不同姿态。因此,在电力行业,机器人目标感知研究有着重要的理论意义和实用价值。
目前目标检测主要有两种解决方案,一是基于传统特征提取方法,另一个是基于深度学习的感知方法,两种各有优劣。
基于传统的手工特征提取方法[1-2]可以充分利用先验知识来提取特征,例如:类圆柱体的对称性、刚体的几何特性等。但是受限于目标物大小、颜色等因素,传统方法的应用场景单一,并对于有遮挡、折叠等场景的目标物识别精准度欠缺、鲁棒性较差。此外,其对新的目标物需要重新设计特征,泛化性较差。为解决以上问题,越来越多基于深度学习的目标物位姿检测方案被提出[3-5]。
相比于传统特征提取方法,深度学习的优势在于特征提取环节不需要人为设计特征,摆脱了对个人经验的依赖。通过监督学习方式,神经网络模型可自行获得目标物体的位置和姿态。
最近,随着RGB-D传感器的精度提升,在充分利用深度图信息的前提下,2D检测算法可实现在3D空间的检测[6-7]。文献[7]提出了一种在单张 RGB-D 图像上利用 3D 关键点估计物体 6D 位姿的算法,即用两个不同的网络分别学习RGB和深度图的特征并进行融合,然后输入实例分割模块中,得到目标物的类别和位置信息,并结合3D关键点的信息,最后利用投票法获得目标物的6D位姿。但此深度学习模型需要大量带标签的3D数据集,费时费力;另外,由于对点云的强依赖,一旦点云残缺,该算法可能会精度下降甚至目标漏检。因此,针对室外复杂场景,本文提出一种基于深度学习与多模态融合的目标检测方法:既能利用深度学习的强泛化性,又能充分利用传统方法的先验知识,从而实现在强光、遮挡、逆光等场景下机器人对避雷器的高精度识别。
本方法以深度学习和传统算法相结合,进行RGB和深度图等不同模态信息融合,精确提取目标物的3D中轴线。
根据电力机器人抓取避雷器等设备的需求,本算法首先用深度学习模型充分结合图像目标检测的连续性和完整性,获得目标物的2D目标分割图,再利用点云可精确测量目标3D表面形态和位置的特性,利用图像提取点云兴趣区,最后精确估计避雷器的主轴位置和方向。
算法的主要步骤如下:
1)首先完成RGB与TOF相机的标定,并拍摄目标物。
2)通过基于深度学习的实例分割模型,对RGB图像进行目标物的目标检测与分割,获得目标物的2D分割图。
3)对图像进行消除锯齿等后处理。
4)用二维PCA的方法,获取目标物的2D中轴线。
5)利用已获得的2D中轴线和2D分割图,获得深度图的3D兴趣区。
6)利用三维PCA对3D兴趣区进行中轴线估计,再结合目标物的半径估计,精确计算目标物的3D中轴线。
随着深度学习模型的快速迭代和算力的普及,基于深度学习的目标检测和实例分割方法快速普及开来。其中,最经典的Mask R-CNN及其改进模型[8-9]是两阶段(two-stage)实例分割的模型。其基本思路是,采用“先检测后分割”的方法,先通过第一阶段的网络生成候选框RoI,并进行过滤筛选,再通过第二阶段网络,预测候选框中特征图的分类和分割,从而实现高精度的目标检测与目标分割。但是,由于整个网络具有前后时序,因此很难进行并行加速,推理速率较慢。为提升推理速率,单阶段(one-stage)的模型设计者尝试把两阶段的步骤并行运算,但是一般在网络完成定位之后需要大量的后处理,导致很难实时推理。
为了解决上述问题,YOLACT[10]模型提出,把复杂的实例分割任务分解为两个并行的子任务。第一个分支充分利用擅长空间相干的卷积层(Protonet)来产生一系列的原型掩码“prototype masks”,其不依赖于任一特定实例;第二个分支是给目标检测分支添加一个输出,利用擅长语义向量的全连接层,来预测各个锚框(anchor)的位置、类别置信度和掩码(mask)的掩码系数,并对每个实例,使用非极大值抑制NMS对所预测的mask进行过滤处理。最后,把两个分支得出的原型掩码与掩码系数进行线性组合生成masks,得出最终的分割图,具体如公式(1)所示。
通过这种网络设计,可以在特征空间中保持空间一致性,同时仍然是单阶段和实现快速推理的方法。
公式(1)中,P是大小为h×w×h的原型掩码,C是n×k的掩码系数,n是经过非极大值抑制过滤后的预测框个数。经过(sigmoid函数)激活可生成最终的掩码图。
另外,YOLACT模型的损失函数L包含3种:分类损失Lcls,框回归损失Lbox和掩码损失Lmask,其权重依次为1,1.5和6.125,如公式(2)所示。分类损失和框回归损失跟SSD相同,掩码损失使用二元交叉熵损失。
AI的模型需要大量的内存和算力,为了能应用在电力机器人上,需要对YOLACT模型的单集主干检测器进行网络轻量化设计。
笔者通过引入文献[11]思想,引入深度可分离卷积,主要列由三部分构成:一是使用1×1的卷积核,把低维空间映射到高维空间;二是把3×3卷积改成1×1和3×3,一个卷积核只负责一个通道,并无通道间的特征融合,减小了整体的运算量;三是使用1×1的卷积核,将低维特征映射到高维空间。
图2 骨干网络结构
此外,为了加速模型推理速度,笔者用OpenVINO框架把模型变量类型从float32改成float16,从而把模型大小进一步压缩为一半,加速模型的推理速率。
对YOLACT模型进行轻量化后,会有误检、漏检和分割的损失,为提升模型像素级特征表示的辨别能力,需要提升网络中FPN(编码器-解码器)模块融合低维和高维的语义特征的能力。
本算法在backbone与FPN之间,引入注意力网络(PAM和CAM)和多尺度池化操作(PspNet)[12-13],进行多尺度上下文的融合,捕获更丰富的全局信息。
注意力机制(attention)的基本思路是让模型自身能够关注重点信息并且忽略无关信息,常用的实现方式有空间域和通道域注意力机制,其分别捕获空间维度和通道维度中的特征依赖关系,见图3所示。
图3 空间域注意力机制(左图)和通道域注意力机制(右图)
1.4.1 空间域注意力机制
空间域注意力机制(Position Attention Module)使用自注意力机制捕获特征图在任意两个位置之间的空间依赖关系,通过加权求和,对所有位置的特征进行聚合更新,权重是由对应两个位置的特征相似性决定的。
式(3)中, 度量第i个位置对第j个位置的影响,也就是第i个位置和第j个位置之间的关联程度/相关性,数值越大越相似。
式(4)中, 表示尺度系数,初始化为0,并通过逐渐地学习分配到更大的权重。每个位置的结果特征E,是所有位置和原始位置的加权和。
该方法具有全局上下文视图,并能根据空间注意力图有选择地聚合上下文。
1.4.2 通道域注意力机制
在通道域注意力机制(Channel Attention Module)中,每个高维特征的通道图都可以看作是一个特定类的响应,通过挖掘通道图之间的相互依赖关系,可以突出相互依赖的特征图,提高特定语义的表征能力。因此,笔者使用通道自注意力机制来捕获任意两个通道图之间的通道依赖关系,并使用所有通道图的加权,然后更新每个通道图,如公式(5)所示。
式(5)中,Xji度量第i个通道对第j个通道的影响。该方法实现了对特征图之间的长程语义依赖关系建模,有助于提高特征的辨别性。
1.4.3 混合域注意力机制
为了充分利用长程上下文信息,笔者对空间域和通道域的特征进行了聚合,即混合域注意力机制(DAnet Module),通过卷积层对两个注意力模块的输出进行转换,并执行一个加权的求和来实现特征融合,再连接一个卷积得到最后的预测特征图。
本部分利用YOLACT模型分割出目标物的2D分割图像,结合深度图信息,再通过一系列点云处理,得出目标物的3D中轴线。具体流程细节如下。
1)RGB相机和TOF相机的标定。
该标定过程包含RGB相机的内外参标定,RGB相机与TOF相机的外参标定。其主要目的是解决RGB相机二、三维精投影变换的参数问题,以及RGB相机与TOF相机的对齐。
2)对2D分割图像进行后处理。
该步骤是将提取出来的目标进行图像处理,消除锯齿、细节等不稳定的成分。
3)图像2D中轴线提取。
该步骤是通过二维PCA的方法,提取目标的图像中轴线。
4)深度图3D兴趣区提取。
利用上一步提取的2D中轴线做引导,设置一定的半径,在深度图上截取兴趣区,并将该兴趣区的点云转换到3D空间。该兴趣区位于目标中心,一般来说数据比较稳定,噪点较少。
5)PCA估计3D中轴线。
对提取的兴趣区点云,利用三维PCA进行目标中轴线方向和中心点的估计,此时的中心点位于目标表面。
6)避雷器的半径估计。
利用图像计算避雷器的直径,利用中心点表面的点云估算尺度,并精确计算目标的半径。
7)3D中轴线深度修正。
利用上一步计算出来的目标半径,对估算出来的中轴线进行深度修正,将之平移至目标中心,从而完成目标中轴线的精确提取。
在对实例分割网络进行训练时,实验环境为Ubuntu 系统,并使用显卡 GTX2080Ti 对训练过程进行加速。
本模型所依赖的深度学习框架为PyTorch,模型训练所需的参数设置如下:
1)基础学习率( base lr) 为 0.001;
2)学习率的衰减策略(lr)为“step”(步),步长(stepsize)为10000,共衰减3次;
3)学习率的变化比率(gamma) 为 0.1;
4)屏幕显示间隔 (display) 为 20;
5)最大迭代次数( maxiter) 为 40000;
6)动量(momentum) 为 0.9;
7)权重衰减项( weight decay)为 0.0005。
测试集由1718张图组成,覆盖、遮挡、多目标、曝光、阴天、新型避雷器等不同场景均涉及。
网络轻量化模型性能测试数据见表1。
表1 模型性能对比
通过模型轻量化设计,笔者设定基线模型为108M,模型参数量下降到近30M。从表1可以看出,相比于原模型,轻量化GPU模型的BoxAP和Mask AP值略有下降,基于GPU的推理速率为19.7张/s。
进一步通过OpenVINO框架转化成可以在CPU上推理的轻量化CPU模型,其性能进一步下降,尤其是Mask AP值下降到68.25,推理速度在CPU下为2.85张/s。
模型性能对比见表2。由数据可知,对分割模型进行轻量化后,会有性能上的损失。
表2 模型性能对比
为针对性地提升模型表征能力,需要进一步研究图1中骨干网络的C3、C4、C5层对目标检测(Box)和目标分割(Mask)的影响。对已训练好的模型,本文选择性失活C3、C4、C5来组合成五种模型,具体如表2和图5所示。
图1 实例分割模型结构
在模型C中,由于C3、C4、C5全部失活,即中断backbone与FPN的有效链,所以无论是Box还是Mask的预测效果几乎都为0;在图5中,也可以看到模型C为推理出的避雷器图,说明模型完全失效。
图5 不同模型下的推理图
在模型C5中,C5分支被激活,Box的AP50得分升值83.82,Mask的AP50也上升至15.02;图5中也可以看到,一个避雷器被检测出来,但是边缘效果预测很差,结果说明,C5的高维语义信息特征图对Box的预测起决定性的作用,同时辅助Mask的预测。
在模型C45中,C4和C5两个分支被激活,可以看到,Mask的AP50值大幅上升80.3;图5中,检测出两个避雷器,说明C4对Mask起很重要的预测作用。
在模型C35中,C3和C5两个分支被激活,Mask的AP值提升到96.39,两个避雷器均被检测出来,且边缘预测较为完整。因此说明,C3分支由于具有较丰富的局部低维信息,对整个模型Mask的预测起着最重要的作用。
在模型C345中,由于三个分支完全被激活,通过高低维信息的有效融合,使Box和Mask都达到最高值;图5中,两个避雷器均有较高质量的预测。综上,C5分支的高维语义信息对Box起着重要作用,C3和C4的低维信息对Mask起着重要作用。
由上可知,为进一步提升本模型的性能,有两个重点研究的方向,一个是增强C5、C4的高维语义信息来提升目标检测(Box),一个是丰富C3的局部语义信息来提升目标分割(Mask)。因此,本文在backbone与FPN的连接C3、C4、C5三个分支上,先后引入空间域注意力机制、通道域注意力机制以及两种的融合,来实现高低维语义信息的融合。
在表3中,基线模型的Box和Mask的APmean值分别为81.29和75.02。在模型M_P中,对C3、C4、C5三个分支都添加空间域PAM模块,来捕获特征图在任意两个位置之间的空间依赖关系,进而提升模型的表征能力,在图6中可以看到,C5层的PAM粗定位了避雷器的位置信息,C4层精定位了避雷器的位置,并开始粗预测边缘信息,C3层PAM关注了更多边缘的细节信息。
表3 模型的消融实验
在模型M_CP中,对C3、C4、C5三个分支添加了空间域和通道域的融合注意力机制,使模型不仅捕获空间依赖关系,还获得任意通道图之间的通道依赖关系,进一步提升模型性能。在图6中,CAM和PAM比较,C5层中CAM关注区域比PAM更小而且更精确,说明CAM更易表征出避雷器的位置信息。在C4层中,可见PAM的关注区域更加精确,边缘表征性能更强。在C3层中,可见PAM的避雷器中轴区域被割裂成块状区域,而CAM的中轴区域保留了较为完整的中轴线区域,这是由于PAM对特征图进行了空间上的重塑,见公式(4),进而导致局部细节信息被破坏和丢失。因此,在后续模型中,笔者在C3层上取消了PAM模块。 从图6第三行可知,混合域注意力机制集合了PAM和CAM的特性,Box和Mask的APmean值也分别提升至83.65和76.48。
图6 注意力机制模型的可视化
考虑到C3的局部语义信息对Mask值有着决定性的作用,而CAM和PAM的引入,虽然丰富了空间域和通道域的依赖关系,但是由于对特征图的重塑,不可避免地导致丰富局部信息的破坏和丢失。因此,笔者在模型M_CP1中直接移除了CAM和PAM,来提升局部语义信息,可以看到,Mask的APmean直接提升近1.4%,Box也提升0.6%。
在模型M_PCP中,为进一步丰富C3的局部信息,引入语义更丰富的C2,并经过多尺度池化处理,再与C3层相融合,表3中可见,Box和Mask的APmean值进一步提升至85.18和78.79。
图7展示了基线模型和模型M_PCP的原型掩码的对比图,可以很明显看到,基线模型丢失了避雷器的边缘信息,第一张图中左上角,避雷器直接变成一个圆柱体,作为对比,模型M_PCP很好地保留了避雷器“伞裙部”的边缘信息,这直接导致第6列中两者对远端避雷器预测的差异,即基线模型避雷器边缘信息的缺失。此外,从第5列对比可知,模型M_PCP的近端避雷器的特征亮度高于基线模型,这也是模型M_PCP不易产生漏检现象的一个原因。
图7 基线模型(第一行)和模型M_PCP(第二行)的原型掩码对比
综上,通过针对性的模型优化,本模型目标检测和分割性能都得以明显提升。
3.4.1 3D数据集采集与评价标准
在获得避雷器2D分割图后,依据图4的流程,可得出避雷器3D中轴线。本部分测试由Lucid相机采集完成,其中室外约50张,并对数据集采集进行约束,要求俯仰角在±20°,且避雷器点云损失不大于20%,如图8所示。
图4 3d中轴线拟合的流程图
图8 点云图
通过结合RGB,把点云图切割并拟合出3D中轴线,如图9所示,真值中轴线是由人工标注所得。
图9 3D中轴线的拟合(红线所示)
同时,为评价拟合效果,引入两个指标:中轴线拟合值与中轴线真值的距离误差和角度误差。
3.4.2 性能对比
笔者以传统的模板匹配法作为基准,与本算法进行对比。
模板匹配法的具体流程如图10所示,左图为避雷器的CAD模型,与中图的点云图作模板匹配,最后得到右图的匹配结果。
图10 模板匹配法
图11 和图12展示了,在室外点云数据集中,本文算法和模板匹配法3D中轴线拟合值与真值的距离误差和角度误差。从表4可以看出,在平均距离误差方面,模板匹配法为0.699cm,本方法为0.412cm。在距离误差在1cm以内的样例占比上,本方法比模板匹配法提升9%,达到92%。
图11 3D中轴线拟合值与真值的距离误差
图12 3D中轴线拟合值与真值的角度误差
表4 3D中轴线拟合值与真值的距离和角度误差
在平均角度误差方面,模板匹配法为4.538°,本方法为2.382°。在误差6°以内的样例占比上,模板匹配法为68%,本文算法为93%,提升近25个百分点。
综上,本方法的避雷器3D中轴线拟合效果比传统的模板匹配法精准度更高。
本文算法将深度学习和传统算法相结合,进行RGB和深度图等不同模态信息融合,精确提取避雷器的3D中轴线信息。通过对模型进行压缩,在保证精度的前提下提升推理速度,并成功部署在CPU上。再者,分割模型的C5分支的高维语义信息对Box的预测起着重要作用,C3和C4分支的低维信息对Mask起着重要作用,通过引入注意力机制和多尺度融合等方法,提升算法融合高低维语义信息,增强了算法表征能力。此外,通过有效的3D算法,可以高精度地获取避雷器中轴线的位姿。
综上,本文算法方便部署,实用性较强,并有以下几点创新与优势:
1)本方法提出一种轻量化的图像分割模型,并成功运行在CPU上,减少对GPU的依赖和运行成本,工程价值较高。
2)本方法通过引入注意力机制和多尺度融合,提升AI模型的精度,具有较强的泛化性和稳定性。
3)本方法充分融合RGB和深度图的信息,可精确地获得避雷器的3D中轴线或位姿信息。
4)本方法可应对复杂的室外场景,具有强鲁棒性。