陈勇,李松,晋伟平,谢珉,杨永昆
(1.云南电网有限责任公司,昆明 650011;2.云南电网有限责任公司红河供电局,云南 红河州 661100)
近年来,随着“双碳”战略[1]的推行以及数字经济的应用,构建新型电力系统并实现发、输、变、配、用五大环节的数字化转型,挖掘数字信息的隐性价值,提升电网的数字化与智能化水平已成为电力行业发展进步的迫切需要[2]。其中,伴随计算机视觉[3]与深度学习技术[4]的进步,针对输变电等电力场景,使用包含景深信息的三维图像数据进行电力设备的目标检测对保障作业安全和实现电网高效运维具有极为重要的意义[5]。
由于三维图像数据非空体积像素的稀疏性和不规则性,从三维图像中检测物体是一项具有挑战性的任务。目前,国内外已经对基于三维图像的目标检测技术开展全方位的研究。考虑对图像特征的表达方式不同,主流的方法可以被分成两类:基于体素(三维体积像素)的方法和基于点的方法。基于体素的方法先使用体素化操作将图像数据转化为三维体素网格,之后通过特征编码层生成基于体素的特征,并将其投射到鸟瞰图上来生成目标边界框。MV3D(多视点三维网络)[6]使用稀疏卷积算法从非空体素中提取特征,这极大地提高了基于体素的三维物体检测算法的推理速度。自此之后,基于体素的方法在学术界和工业界快速发展。PointPillars[7]沿着纵轴将图像分割为柱体,显著提高了图像特征编码的速度。这种方法具有简单的网络,不使用复杂的三维卷积,因此在工业界广受欢迎。SA-SSD(基于点云的结构感知单阶段三维物体检测)[8]将每个体素的中心视为一个点,并将预测的每个点在三维边界框中的位置概率作为额外的监督信息来训练模型。PVRCNN(基于点和体素的区域卷积神经网络)[9]使用稀疏卷积从体素中提取特征并生成候选提案,将多尺度体素特征编码为关键点,并通过聚合候选网格周围的关键点特征来细化边界框。这种方法将点信息添加到体素中,从而改善了检测性能,但推理速度非常低。Voxel-RCNN(基于体素的区域卷积神经网络)[10]使用稀疏卷积作为骨干网络来生成三维候选框,之后在三维候选框内分布均匀的网格点,并对网格点上的体素特征进行编码。值得注意的是,体素池化模块不需要点信息,这使得Voxel-RCNN 比PV-RCNN 算法具有更快的目标检测速度。STD(稀疏到密集三维目标检测)[11]通过通道级变换器改进了体素池化模块,可以获取候选提案的全局信息,这对两阶段中的目标细化非常有用。M3DeTR(通过变换器统一多点云、特征尺度和建模点云相互关系的三维目标检测)[12]在多表示、多尺度和变换器之间建立了关系,并在实验中证明关联信息对检测性能具有非常重要的作用。
另一方面,基于点的方法也可以用来预测目标的三维边界框。基于点的方法是对图像数据进行直接处理,采用自底而上的方式从图像中提取点特征,然后将其组合以获得整个物体的特征。这种范式可以直接从杂乱且密集的三维图像场景中进行目标检测,但存在模型复杂度较高的掣肘。PointNet[13]使用多层感知机和通道最大池化操作从无序的点集中学习全局特征,并在KITTI 数据集上取得不错的三维目标检测效果。而Point-Net++[14]是一种能够从图像中学习局部和全局特征的层次化网络,作为图像检测器中的基础模块,它广泛用于各种网络中语义特征的提取。Point-RCNN[15]采用两阶段的网络设计直接在激光雷达图像上进行目标检测。模型在第一阶段生成三维边界框的候选提议,然后通过投票机制进一步筛选效果出色的边界框;在第二阶段,模型利用PointNet++作为特征提取器,将这些特征与第一阶段生成的候选提议进行对齐和融合,进而精细化地预测目标的三维边界框和目标类别。
相对于基于点的方法严重依赖耗时的点算子,基于体素的方法使用稀疏卷积的效率更高。在基于体素的检测模型中,三维稀疏卷积网络是一个重要组成模块。尽管三维卷积骨架具有优越的效率,但在电力设备目标检测中,细长设备(如电线杆、输电线路等)通常具有较长的空间结构,而感受野有限的卷积神经网络可能无法捕捉到这些细长设备的完整上下文信息,从而影响目标检测的准确性。需要设计一种新的结构来编码更丰富的上下文信息。
最近在二维目标分类[17]、检测[18]和分割[19]等任务上的研究进展表明,与卷积神经网络[20]相比,注意力网络Transformer[21]架构在视觉任务上更为有效。主要原因是注意力网络Transformer 中的注意力机制可以建立二维像素之间的远程联系。然而,直接将标准的Transformer 模块应用于三维图像体素是不合适的,主要存在两点原因:一是非空体素在体素网格中分布稀疏;二是三维场景中的非空体素虽然稀疏,但数量仍然较大,例如在Waymo 自动驾驶数据集中,每帧通常包含90k 个非空体素。因此,像标准的Transformer 网络一样应用全连接的自注意力机制在计算上负荷巨大,急需新的方法来扩大注意力范围,同时保证Transformer 中的每个查询嵌入所涉及的体素数量较小来降低计算复杂度。
为了实现这一目标,本文提出体素注意力网络来进行三维图像目标检测。体素注意力网络能够在三维体积像素层面高效应用,同时可以作为主流三维卷积骨干网络的更优替代。针对非空体素的稀疏特性,本文提出了子流形体素模块和稀疏体素模块来作为体素注意力网络的基本搭建模块。子流形体素模块严格操作在非空体素上来保证原始的三维图像数据的几何结构不变;而稀疏体素模块可以在空白体素位置上输出特征,更加灵活且能进一步扩大非空体素空间。此外,为了解决非空体素进行自注意力计算复杂度过高的问题,本文进一步提出两种注意力机制:局部注意力和空洞注意力来应用在子流形体素模块和稀疏体素模块上。局部注意力关注邻近区域以保留详细特征信息;而空洞注意力通过逐渐增加搜索步长,可以在只涉及少数参与体素的情况下获得更大的注意力范围。为了验证模型的有效性,本文在目标检测通用数据集Waymo和KITTI以及云南省某输变电区域实际图像数据集上进行测试。实验结果表明,基于局部注意力和空洞注意力的体素网络的三维平均精度比主流的目标检测模型SA-SSD、Point-RCNN 和STD 的精度高,证明了本文所提出算法的优越性。
本文面向稀疏图像数据提出一种体素注意力网络来求解目标检测任务,该网络可以应用于所有基于体素的三维目标检测器。一方面,体素注意力网络通过构建稀疏体素模块和子流形体素模块来处理输入图像数据中的空白体素与非空体素。另一方面,该网络利用局部注意力与空洞注意力机制进行多头注意力计算,捕获体素间的近程与远程联系。下面,本文将介绍体素注意力网络的整体架构和每个模块的具体设计。
基于体素的三维目标检测过程如下:首先将三维图像数据进行体素化操作,形成稀疏的体素网格数据;然后使用三维主干网络进行特征提取获得丰富的三维信息,并转换形成二维鸟瞰图;接着利用传统的二维检测网络和检测头在二维图像上进行检测、定位,对目标框进行预测,最后将二维结果重新投影到三维中得到最终结果。这种方法相对简单且易于实现,同时也可以充分利用已有的二维目标检测算法和技术。本文针对三维主干网络,提出采用体素注意力网络进行高效目标提取。主干网络包含3个稀疏体素模块和6个子流形体素模块,如图1所示。具体而言,稀疏体素模块针对三维体素数据进行3倍下采样,并在不同体素位置输出特征。每个稀疏体素模块后面放置2个子流形体素模块,它们在扩大感受野的基础上,通过维持模块输入、输出的非空体素位置相同来保证原始数据的三维流形相似。在这些模块中都进行多头注意力计算,每个查询体素由两种精心设计的注意力机制确定:局部注意力和空洞注意力。他们用于捕获体素数据中的近程与远程联系。之后,体素注意力网络提取到的体素特征被映射为二维鸟瞰图以便生成检测框。值得注意的是,本文所提出的体素注意力主干网络是灵活通用的,可以替换所有基于体素的三维检测器网络。
图1 基于体素注意力网络的图像目标检测模型Fig.1 The image object detection model for power equipment based on SVGA-Net
本节详细描述子流形体素模块和稀疏体素模块的设计过程。其中,子流形体素模块与稀疏体素模块的主要区别在于:子流形体素模块严格地对非空体素进行操作,即只在非空位置上进行特征提取,从而保持三维场景的流形结构;而稀疏体素模块可以在空白体素位置上进行特征提取,并且可以根据需要扩展原始的空白体素空间,展现了更强的灵活性。
1.2.1 面向稀疏体素的自注意力机制
定义一个包含Ndense个稠密体素和Nsparse个稀疏体素的立方网格来表示实际的三维场景,其中Nsparse远小于Ndense。在实际操作中,网络使用Nsparse×3 的整数索引阵列Υ、Nsparse×d的对应特征阵列Ψ来表示非空体素,其中d为所选择的维度。在每个子流形体素模块和稀疏体素模块中,使用多头注意力机制来构建非空体素间的近程和远程联系。给定查询体素i,注意力范围Ω(i)⊆Υ由所提出两种注意力机制确定。同时,网络对参与注意力计算的体素j∈Ω(i)使用多头注意力机制计算得到fattendi。定义fi、fj∈Ψ 分别为查询体素和参与体素的特征,vi、vj∈ϒ分别为查询体素和参与体素的整数索引,网络首先根据p=(v+0.5)r将索引vi、vj转换为对应真实体素的中心坐标pi、pj,其中r为体素大小。之后,使用注意力机制计算得到查询嵌入Qi、键嵌入Kj和值嵌入Vj为:
式中:Wq、Wk、Wv、Wpos表示可学习矩阵;Epos表示位置编码矩阵。
式中:σ(⋅)表示Softmax 函数;Qi表示查询嵌入;Kj表示键嵌入;Vj表示值嵌入;d表示维度。上述注意力机制如图2所示。
图2 注意力机制示意图Fig.2 Schematic diagram of the attention mechanism
1.2.2 子流形体素模块
子流形体素模块在输入的非空体素的位置上进行特征输出,这间接保持了输入流形的三维结构。在该模块中,引入两个子层来捕获每个非空体素的远程上下文信息。第一个子层是自注意力层,它结合了局部注意力和空洞注意力两种机制;第二个子层使用了简单的前馈层,并在每个子层之间进行残差连接。该模块与标准的Transformer注意力模块有三点差异:(1)前馈层后附加一个线性投影用于通道特征调整;(2)使用批归一化代替层归一化;(3)移除所有dropout 单元,因为参与注意力计算的体素数量不多,随机丢弃会妨碍整个的学习过程。
1.2.3 稀疏体素模块
与子流形体素模块只在非空体素上进行操作不同,稀疏体素模块在空白体素位置上进行特征提取,这导致原始非空体素空间的扩张,因而它通常需要降采样过程。由于空白体素没有可用的特征fi,因此网络无法从特征fi中来获取Qi。为了解决这个问题,本文从参与注意力计算的特征fj中对空白体素位置的查询嵌入Qi进行近似:
式中:Λ(⋅)为最大池化函数;fi为参入注意力特征。之后,同样使用式(3)进行注意力机制计算。
稀疏体素模块的架构类似于子流形体素模块,区别在于在前者缺少了自注意力层的一个残差连接,如上所述,因为此时稀疏体素模块处理的空白体素没有可用特征及降采样等过程,输入和输出不再相同,因此删除残差连接。
注意力的计算范围Ω(i)决定了每个查询嵌入的参与体素i,并且是稀疏体素注意力中的关键因素。Ω(i)应该满足以下要求:(1)Ω(i)应该覆盖临近体素以保证细粒度的三维结构;(2)Ω(i)应该尽可能扩展范围来获得大范围的上下文信息;(3)Ω(i)中的参与体素应该尽可能少以避免重负荷的计算开销。为了满足上述条件,本文提出两种注意力机制:局部注意力机制和空洞注意力机制来控制注意力的计算范围Ω(i)。
1.3.1 局部注意力
定义函数Θ(st,ed,se),它输出闭区间[st,ed]中以步长se为间隔的非空索引。例如,在三维空间下,函数Θ((0,0,0),(1,1,1),(1,1,1))表示在集合{(0,0,0),(0,0,1),…,(1,1,1)}中搜索8个非空索引。在局部注意力机制中,给定一个查询体素i,由Rlocal参数化的局部注意力范围Ωlocal(i)可以被表示为:
在本文实验中Rlocal=(1,1,1)。局部注意力固定步长se为(1,1,1),以便在局部范围Rlocal内利用每个非空体素来保留整体的细粒度结构。
1.3.2 空洞注意力
空洞注意力的范围Ωdilated(i)可以由一组相互无关的参数列表:
Ωdilated(i)可以被表示为:
式中:表示集合减法运算符;∪表示取所有非空集合的并集。
本节介绍所提出的体素注意力网络在通用数据集Waymo和KITTI以及实际电网输变电场景数据集的应用效果。首先,介绍目标检测通用数据集和云南省某输变电区域的三维图像数据集;之后,介绍实验设置及网络参数选择;最后,将所提出网络在以上三种数据集上与其他主流的目标检测网络进行对比实验并对结果进行分析。
Waymo 数据集共包含1 000 个序列,其中训练集包含798 个序列(约158 000 个图像样本),测试集包含202 个序列(约40 000 个图像样本)。KITTI 数据集包含7 481 个训练样本和7 518 个测试样本。官方评估指标都是使用阈值为0.7的旋转交互比来计算三维平均精度。
对于实际电力数据集,本文选择的是云南省某输变电作业场景的三维图像数据集。在该场景下,主要使用激光雷达进行数据采集。该数据集包含断路器、避雷器、GIS 进线套管、电容、电感、电压互感器、电流互感器、作业人员共8种对象。每个对象的图像实例数量如表1所示。
表1 云南省某输变电场景图像实例数量Table 1 Number of image instances in a transmission and transformation scene in Yunnan province
在Waymo和KITTI数据集上,本文随机选择5 000个图像样本用于训练,并在测试集中随机选择1 000 个图像样本用于测试。网络的学习率取0.01,批大小为32,总共进行100轮训练。对于云南省某输变电场景图像数据集,随机选择90%用于训练,余下10%用于测试。网络的学习率为0.003,批大小为32,总共进行250 次训练。在三种数据集上,网络均使用Adam 优化器进行优化。本文所有的算法都是基于Pytorch深度学习框架使用Python3.8.0 进行实现的,所有实验都是在Intel Core i7-12700KF 处理器和英伟达GeForce RTX 3070显卡上进行的。
首先在Waymo公开数据集上与主流目标检测方法进行对比实验以评价所提出注意力网络的有效性。根据Waymo数据集官方划分,分别列出难度为简单、中等和困难三类测试样本的三维平均精度,结果如表2所示。可以看出,在简单类图像数据上,所提出算法取得89.82%的平均精度,比SA-SSD 高出1.40 个百分点;在中等类图像数据上,所提出算法取得82.06%的平均精度,比经典的Point-RCNN 高出6.75 个百分点;在困难类图像数据上,所提出的算法取得79.03%的平均精度,比通用的STD模型高出7.32个百分点。
表2 本文算法与其他算法在Waymo数据集上的三维平均精度Table 2 Three-dimensional average precisions of the proposed algorithm and other algorithms on the Waymo dataset %
其次,在KITTI 公开数据集上与主流目标检测算法进行对比实验。同样地,根据KITTI 数据集中的官方划分,图像数据按照检测难度分为简单类、中等类和困难类共三类。实验结果如表3所示。在简单类图像数据上,本文所提算法的三维平均精度为89.01%,比SA-SSD高出0.71个百分点;在中等类图像数据上,本文所提算法的平均精度为83.98%,比经典的Point-RCNN 高出9.16个百分点;在困难类图像数据上,本文所提算法的平均精度为78.49%,比通用的STD 高出7.22个百分点。这证明了所提出的体素注意力网络在求解三维图像目标检测任务上的有效性。
表3 本文算法与其他算法在KITTI数据集上的三维平均精度Table 3 Three-dimensional average precisions of the proposed algorithm and other algorithms on the KITTI dataset %
最后,在云南省某输变电作业场景图像数据集上进行实际目标检测测试,并与SA-SSD、Point-RCNN 和STD 这三种优秀算法进行比较,结果如表4所示。可以清晰看出,所提出的体素注意力网络取得最高的平均精度88.06%并占用最小的模型空间25.23 MB,与上述三种模型相比,综合性能较强。
表4 不同算法综合性能比较Table 4 Comprehensive performance comparison of different algorithms
同时,针对稀疏体素模块和子流形体素模块进行消融实验,去除上述模块后,性能退化为与VoxelNet 相当,稀疏体素模块相比较于子流形体素模块缺少残差网络连接,可以扩大原有的非空体素空间特征,具有更强的灵活性,但对特征提取的性能提升影响较弱,子流形体素模块严格作用于非空体素,是特征提取的主要模块。
为了更清晰地展示上述四种模型在电网实际数据集上的表现,本文展示模型在不同训练阶段的三维平均精度,如图3 所示。50 轮训练后,三维平均精度达到60%以上;100 轮训练之后,三维平均精度达到75%以上;200 轮训练之后,三维平均精度稳定在80%之上,超过其他三种模型,并在最终达到88.06%。
图3 模型精度效果Fig.3 Model accuracy performance
选取输变电场景的三维图像数据集中的两个场景进行可视化。如图4及图5所示,GIS进线套管、避雷器、人员、断路器、电流互感器等设备均被检测出来。证明本文所提出的算法可以有效地应用于实际场景的目标检测中。
图4 电力设备及人员目标检测效果图Fig.4 Illustration of object detection for power equipment and personnel
图5 电力设备目标检测效果图Fig.5 Illustration of object detection for power equipment
本文基于一种体素注意力网络对三维图像数据进行目标检测。一方面,针对稀疏图像数据,网络精心设计稀疏体素模块和子流形体素模块来分别提取稀疏图像和稠密图像特征。另一方面,针对传统注意力网络对图像所有区域做信息交互而导致计算复杂度高的问题,本文所提出网络分别基于局部注意力机制和空洞注意力机制,使模型捕获图像近程和远程的特征联系,同时保证较低的计算量。为验证所提出算法的有效性,本文在公开数据集Waymo和KITTI以及输变电真实场景图像数据集上进行对比实验。实验结果表明,所提出的体素注意力网络在各数据集上的精度比主流的SA-SSD、Point-RCNN 和STD 高出最少1.40 个百分点。未来将进一步研究本文所提出的目标检测模型在更多电力场景中的应用。