彭志远,谷湘煜,杨利萍,周仁彬,邹 娟,刘晓熠
(深圳市朗驰欣创科技股份有限公司 技术研发部,四川 成都 610000)
随着我国智能电网的推进[1],变电站设备巡视逐渐由人工巡检向机器人巡检过渡,并取得了良好的效果[2,3]。目前,变电站巡检机器人主要采用定点检测方法,即行驶至固定点后再检测,但受限于机器人平台性能,大多数巡检机器人导航避障仍采用磁导航和激光雷达导航等方式,该方法精度相对较高,但对机器人所处环境理解程度较低[4]。而基于视觉的导航方法虽然可以获取稠密的场景信息,但由于其检测精度较低和资源消耗较大,限制了该方法在巡检机器人中的应用[5]。对于变电站仪表的识别检测,尽管传统机器学习方法可以基本实现自动检测,但受目标特征选择以及环境因素的影响,该方式检测效果并不佳[6]。而基于深度学习的检测方法有效避免了人工特征选择的局限性,但需要占用大量的计算资源[7]。因此,为有效解决上述问题,研究一种场景理解和仪表检测交替实现的方法不仅可以辅助机器人导航避障的同时有效完成巡检任务,而且充分利用了变电站巡检机器人的平台资源,对机器人智能化以及无人值守变电站的发展都有较大的推动作用。
目前对于变电站巡检机器人仪表检测和场景理解的研究主要是针对单个任务提出对应的解决方法。刘明春等[8]针对变电站场景理解提出了一种端到端的轻量级神经网络,提升了巡检机器人对自身环境的理解能力。汤亮等[9]针对变电站仪表检测,利用边缘提取与距离法相结合,提出了一种基于特征空间变换的仪表检测识别方法。贺嘉琪[10]采用深度神经网络对复杂环境下的仪表信息进行识别提取,并通过训练实现对不同倾斜程度的仪表进行检测。尽管目前也有部分研究者提出了多任务同时实现的方法,但更多应用于自动驾驶领域。He等[11]提出了Mask R-CNN实例分割算法,可同时实现对目标的分类、检测以及实例分割等任务。Sistu等[12]将检测跟踪一体化,利用轻量级网络实现语义分割和目标检测。由此可见,单任务方法完成任务量有限,而多任务方法需要大量计算资源。因此,如何充分利用机器人资源,尽可能多地完成机器人巡检任务具有较大的实用价值。
针对以上问题,本文在前人研究成果的基础上,提出了一种适用于变电站巡检机器人的多任务交替实现神经网络。网络以改进的Inception结构结合注意力机制构建特征提取结构,兼顾特征提取的有效性以及网络计算效率,并利用特征逐层融合、特征金字塔等多种策略设计仪表检测以及场景理解任务支路,保证网络检测与分割精度。同时,为充分利用机器人平台资源,将特征提取结构提取的信息进行图像分类后自动选择相应的任务支路,实现多任务交替运行。
本文所搭建的变电站巡检机器人仪表检测与场景理解网络基本框架如图1所示。网络主要分为3个部分:特征提取、控制模块以及任务分支。特征提取结构以深度可分离卷积、多层卷积等方式改进Inception结构,并结合注意力机制策略提升特征有效性;任务控制模块利用特征提取结构获取的深层抽象特征对图像进行二分类,并结合dro-pout层控制执行对应的任务支路,以交替运行的方式降低对机器人平台计算资源的需求;任务分支结构主要分为目标检测和语义分割,采用跳层上采样、多层预测、空间金字塔池化等多个策略,分别实现仪表检测和场景理解两个任务。该网络针对变电站机器人实际应用场景,并通过借鉴目前经典网络设计方法,充分利用了巡检机器人平台计算资源,使机器人高效完成巡检任务。
图1 网络结构框架
特征提取结构其核心思想是通过一系列卷积操作,逐步从浅层边缘信息到深层抽象类别信息提取的过程,而特征提取的好坏往往决定着后续任务支路的预测精度。通常,网络的深度决定了网络的学习能力,即网络越深,其表达能力越强;网络宽度决定网络在该层所获取的特征信息量,越宽其获取的信息维度越大;网络感受野决定网络在该层能检测到的范围,不同的感受野可有效获取目标多尺度信息。因此,基于网络基本特点,本文借鉴前人所设计的网络模型[13-20],搭建了适用于变电站巡检机器人的特征提取结构。
本文所搭建的特征提取结构主要由两个基本模块:改进的Inception结构和注意力Attention模块串联堆叠构成,如图2所示。图2(a)为改进的Inception结构,该结构采用多卷积核并列的方式来提取特征,使网络能充分提取多尺度目标特征信息,有效提升了对不同大小目标的适应度。但由于多个并列卷积不可避免使效率降低,为了能更好应用于变电站巡检机器人平台,将每条支路通过点卷积降低通道数后再以深度可分离卷积提取特征,并采用串联3×3小卷积核来替代5×5大卷积核,不仅降低了网络参数,也增加了网络深度,进而提高网络效率以及表达能力。图2(b)为注意力模块结构,主要对Inception结构提取的特征信息进行重调,使网络提高有效特征权重并压缩噪声和无用信息。该模块采用平均池化将特征图变为一维向量,再通过先降维再升维的两个全连接操作配合激活函数来自主学习权重。两层不同维度的FC层可以在引入较少计算量的同时使网络具有更多非线性,更好拟合特征通道间复杂的相关性。最后,为避免整个网络因过层数深而造成梯度消失,网络也引入了ResNet结构中的残差连接来缓解。特征提取结构细节见表1。
图2 特征提取模块
表1 特征提取结构
由于巡检机器人平台性能较低,而基于深度神经网络的方法需要大量的计算。因此,为了能充分利用机器人平台计算资源,使网络能更好的实际应用,本文提出了多任务交替运行的控制结构。该结构根据不同的输入控制网络选择相应的任务支路进行处理,使网络能在有限的平台资源上,尽可能完成更多的任务,模块基本如图3所示。
图3 任务控制模块
控制模块首先利用注意力模块对特征提取结构最后一层的特征进行权重重调,降低特征中的噪声干扰,提升有效信息权重;然后,采用全局平均池化将特征抽象化为一维特征向量,并利用全连接来融合学习到的深度特征;最后,通过Softmax函数对图像进行二分类,将分类结果转化为0-1形式,分别输入至两任务支路dropout层作为神经元激活率,当激活率为0时,表示所有神经元不激活(即该支路断开),反之为1时,所有神经元激活(即该支路连通),从而实现控制不同任务支路的目的。该模块通过控制神经元激活,可有效减少网络对无效信息的处理,使网络的效率得到了较大的提升。同时,在实际训练过程中,分类部分的损失可作为辅助损失函数,通过不同权重来平衡辅助损失,与任务支路的损失共同优化网络参数,可加速网络收敛过程。
任务结构分为仪表检测和场景理解两条支路,分别实现机器人对变电站仪表的检测定位以及对道路场景识别理解。两条支路均通过控制模块与浅层特征结合,利用多种网络构建策略,实现仪表检测与场景理解任务。
仪表检测支路如图4所示,为保证网络对不同尺度仪表的检测精度,将特征提取结构Stage3~Stage6的最后一层作为仪表检测输入,根据特征图大小从小到大依次卷积上采样并逐层融合,而每个尺度都分别对目标进行预测,最后融合所有的预测,通过非极大值抑制算法筛选最终的检测结果。通过多个尺度预测,有效保证了对不同大小目标的检测,而不同尺度特征通过逐层融合丰富特征信息也进一步提升了网络精度仪表检测精度。同时,训练仪表检测网络时,对先验框的选择借鉴文献[14]的方法,通过K-means算法将训练样本的目标框进行聚类,利用式(1)计算方式来为每个尺度(Stage3~Stage6)聚类出3个先验框,其中IOU为先验框与目标框面积交集除以并集,IOU越大越好
d=1-IOU
(1)
图4 仪表检测模块
场景理解支路如图5所示,相对于目标检测,场景识别需要更多目标边缘细节信息。通常,网络层越深,包含的全局信息越多;网络层越浅,局部信息越多,但同时也含更多噪声。因此,本文通过实验发现,特征提取结构中,Stage3层包含的信息相对其它层更为丰富。因此,场景识别支路除了利用Stage4~Stage6最后一层的特征信息外,对Stage3最后一层的特征进行了充分的挖掘。网络利用点卷积、空洞卷积和平均池化对Stage3进行深入挖掘,将空洞卷积后的特征信息与Stage4~Stage6对应尺度一一融合(Eltwise操作);然后,将多个尺度特征上采样至Stage3大小(Upsample操作);最后拼接所有特征再卷积上采样至原图尺寸输出。该支路采用空间金字塔结构将浅层特征与深层特征相互结合,充分获取图像中各个目标边缘信息以及全局信息,有效保证了网络对场景的识别精度。
图5 场景理解模块
为有效验证所提网络的可行性和实用性,本文采用Caffe深度学习框架对网络进行训练测试。实验主要利用公开标准数据集以及实际变电站场景对网络的性能和实用性进行了测试。为了更好的将实验结果与同类型网络进行对比,网络训练时超参数主要借鉴文献[13-20]的参数设置。网络训练时以Adam优化方法更新网络参数;学习率的设置采用step模式,设置初始学习率为0.01,迭代30 000次之后每迭代10 000次学习率下降一次;优化方案采用动量法,参数设为0.9;同时权值衰减系数设为0.0005。网络训练基本流程如下:
(1)选择训练数据集中的一个样本及其对应的标签;
(2)将样本输入网络,通过前向传播计算网络的输出;
(3)计算网络输出与实际值(标签)之间的误差;
(4)利用误差反向传播算法,调整网络的权值;
(5)对每个样本重复上述过程,直到网络收敛。
网络性能的评价主要分为分类、检测和分割3部分来衡量。分类性能采用平均精度(AP)来评价,如式(2)、式(3)所示
(2)
(3)
其中,N(TP)i表示类别i被正确分类数量,N(Total)i表示类别i的图像总数,Pi表示类别i的精度;Ncls表示总的分类类别数。
仪表检测性能采用均值平均精度(mAP)来评价,如式(4)~式(6)所示
(4)
(5)
(6)
其中,仪表检测评价公式为了与分类区分,取C表示类别;N(TruePositives)C表示一张图像中C类目标正确预测的数量;N(TotalObject)C表示该图像中C类目标总数;PrecisionC表示该图像中C类目标检测精度;N(TotalImage)C表示包含C类目标的图像数量;APC表示所有图像中C类目标的平均精度;N(Classes)表示样本中类别数。
语义分割性能采用全局精度(G)、平均精度(C)以及交除并均值(IoU)来评价,如式(7)~式(9)所示
(7)
(8)
(9)
其中,i,j分别表示类别i和类别j;nii表示属于类别i被正确预测的像素个数;nji表示属于类别j却被预测为类别i的像素个数;ncl表示分割总的类数;ti表示类别i的总像素。
对于网络的分类性能,实验首先对改进的Inception分类网络进行测试,将COCO和CamVid数据集作为两类,设置batchsize为4,在Titan X GPU上迭代训练约10万次收敛后测试结果见表2。同时,将改进后的网络与文献[14]、文献[15]的同类型分类网络对比见表3,其中FPS表示每秒执行图像帧数,COCO和CamVid表示每类图像正确分类概率。
表2 改进结构测试
表3 分类网络对比
由表中可以看出,改进的Inception结构对网络效率有较大提升,而结合Attention进一步保障了网络精度。同时,该分类网络与同类网络相比在效率与精度上都达到了较高的水平,可以有效保障后续控制模块以及任务支路的正常运行。对于任务支路的验证,本文先将整个网络分为仪表检测和场景理解两个网络进行单独测试。仪表检测网络主要利用COCO数据集进行测试,通过统计标注框尺寸分布,将目标框分为大中小3类(以面积为362和922区分)。实验首先对不同融合层进行了测试,然后选择最优的融合方式与同类型网络进行对比。实验结果见表4和表5,其中mAPs、mAPm、mAPl分别表示网络对小中大目标的检测精度。
表4 多层融合测试结果
表5 仪表检测网络对比
场景识别网络测试主要利用CamVid数据集,实验首先对特征提取结构Stage3~Stage6最后一层包含的图像信息量进行了测试;然后,分别对Stage4~Stage6层、空洞卷积Stage3层以及两者结合构成的空间金字塔结构进行了测试;最后将所提场景识别网络与当前同类型主流网络进行对比,实验结果见表6~表8。
表6 特征层信息量测试
表7 特征金字塔结构测试
表8 场景理解网络测试
对于整个网络的测试验证,本文将分类误差作为辅助损失并赋予相应的权重,与仪表检测误差和场景理解误差相结合,共同优化网络参数。网络训练时,控制模块dro-pout层激活率由输入图像类别标签决定,即当输入图像属于COCO数据集时,控制模块选择仪表检测支路,场景识别支路dropout激活率为0,不参与该轮训练;反之,当输入图像属于CamVid数据集时,仪表检测支路不参与训练。网络测试时,控制模块dropout层激活率则根据图像分类结果控制。实验首先测试不同分类损失权重对网络精度的影响,然后将最优的网络与目前典型的多任务网络进行了对比,测试结果见表9和表10。
表9 辅助损失权重测试
表10 多任务网络对比
为进一步验证所提控制模块的可行性,本文将控制模块移植于传统的目标检测和语义分割网络中,对于单任务网络,引入控制模块后新增一条任务支路(如目标检测网络YOLO新增本文的场景理解支路,语义分割网络SegNet新增仪表检测支路,其它网络同理);多任务网络(如MRCNN, MultiNet)则直接移植控制模块。通过实验测试移植后的网络与本文网络对比,实验结果见表11。
表11 控制模块移植测试对比
根据上述实验结果可以看出,对于仪表检测支路,深层网络对大尺度目标检测较好,对小目标检测较差,而通过逐层融合检测的方式可有效提升小目标检测精度并保证对大目标的检测;场景识别支路中,特征提取结构网络层所含信息量呈高斯分布,通过对stage3网络进一步信息挖掘后与深层特征结合可更好获取图像整体以及细节信息。同时,与同类型网络相比,两支路网络也体现出更高的性能优势。对于整体网络而言,不同权重的分类辅助损失对网络精度有一定影响,但影响较小,而合并支路后的网络由于任务增加,使各支路精度略微下降,但相对于其它多任务网络,所提网络有效平衡了精度与效率。最后,通过在多个传统网络中引入控制模块的测试结果也进一步验证了本文所提方法的可行性,对网络精度与效率的平衡提供了一种解决思路。
标准数据集主要对网络性能进行验证,为进一步验证网络对实际变电站场景中的适应性,本文利用搭载NVIDIA Jetson TX2嵌入式平台的变电站巡检机器人对网络进行了测试。实验首先利用巡检机器人对变电站仪表以及道路场景进行数据采集,从两类图像中筛选出重复率低的图像各10 000张,利用labelme软件分别标注仪表目标和语义分割目标后,再通过数据增强方法将两类数据扩增至50 000张。其中,仪表图像中根据仪表种类将其分为4类(如指针式、数字式、液位式等),道路场景根据标注目标分为6类(如道路、杂草、石头、路坑等)。通过训练收敛后,与引入控制模块后的传统网络在NVIDIA TX2平台上进行测试对比,对比结果见表12。最后,将网络应用于机器人巡检中,测试机器人正常巡检时完成整套视觉任务的时间消耗以及网络检测识别效果,实验测试结果如表13和图6所示。
表12 变电站数据测试对比
表13 机器人网络应用效率测试
根据实验结果可以看出,通过在传统网络中引入控制模块的方法可以使单任务网络实现了多个任务,避免了对资源的过度占用;而多任务网络转化为了单任务的处理,保证网络的计算效率。同时,本文所提网络在优化后的传统网络中进一步平衡了网络的检测分割精度与效率,使网络在实际变电站巡检机器人应用中的效率达到每秒16帧左 右。尽管效率不算太高,但对于速度相对较慢的变电站巡检机器人而言,该网络基本满足其巡检需求,并能准确有效的为机器人提供道路场景以及仪表位置信息。
图6 仪表检测和场景识别效果
本文以变电站巡检机器人为应用平台,针对实际变电站仪表检测以及机器人场景理解等问题,搭建了一个兼顾精度以及效率的多任务卷积神经网络。该网络以深度可分离卷积结合注意力机制平衡特征有效性以及提取的效率,以基于dropout层的控制结构自主选择任务支路,充分利用机器人平台计算资源,并采用基于金字塔机制的多尺度解码结构有效获取目标多尺度信息,实现仪表检测和场景理解任务。通过在公开数据集和变电站数据集上的测试结果表明,本文所提方法有效兼顾了网络效率与多任务实现,其检测分割性能都较优于同类型网络;同时,在实际变电站巡检机器人应用中,该网络也表现出高效的检测分割性能,对机器人的巡检效率有较大提升。在后续工作中,将针对网络的结构进一步对网络性能进行改进优化;同时,结合机器人其它传感器信息,进一步完善机器人巡检系统,提升机器人智能化水平。