基于双线性插值的单目标检测算法*

2024-04-27 12:12吕艳辉
火力与指挥控制 2024年1期
关键词:低层先验卷积

吕艳辉,方 亮

(沈阳理工大学,沈阳 110159)

0 引言

伴随着无人机技术的不断进步,无人机的使用也日益普遍,包括灾难监测、农林地势勘查、协同作战等。无人机飞速发展[1]的同时,如何对空中目标进行检测成为一个研究热点[2]。空中目标可以分为大目标和小目标,大目标诸如山体、房屋,小目标如无人机、飞鸟等。通常小目标可见度较低、运动轨迹不规律,在空中很难被察觉,这些空中小目标对于无人机的飞行安全、空中环境监测、无人机协同作战等造成了很大的干扰,因此,对于空中小目标的检测就显得尤为重要。空中小目标在检测过程中容易受到外界环境的影响,从而导致检测精度不高[3],甚至出现漏检、错检的现象。因此,设计一个高效且实用的算法用于空中小目标的检测具有非常现实的意义。

小目标检测作为目标检测领域内的一个难点[4],近年来受到越来越多研究者的关注。例如,文献[5]提出了一种基于生成对抗网络的模型,缩小了小尺度目标与大尺度目标在模型上的表现差距,提升检测效果。文献[6]在感受野的层面上提出了一种改进方法,解决了感受野和小目标特征匹配的问题,能够提取出更多的小目标物体的特征。文献[7]提出了过采样方法以及复制粘贴的方法,对小目标数据集进行改进,使小目标预测的效果有所提升。文献[8]针对较远距离以及复杂背景的小目标检测,提出了一种新的尺度匹配的方法,并可以应用于其他类别的小目标检测。文献[9]列出了目前最新的小目标检测数据集,并使用不同的算法进行了对比试验,对小目标检测的发展提供了新的方向。针对数据集,文献[10]引入密度图加入到目标检测中,将图片划分为多个区域后再进行小目标的检测。

现阶段,目标检测方法主要分为两大类。一类是以单目标检测器为主的目标检测方法,以SSD(single shot multibox detector)系列为代表[11],这类检测算法的特点是速度快,但检测精度低。其中,SSD作为经典的单目标检测算法,其在特征图上进行稠密采样后,将得到的不同尺寸的特征图送入到检测层中同时进行分类和预测,因此,该模型的计算量较小,但容易出现漏检、错检。另一类是以候选区域目标检测器为主的检测算法,以文献[12]提出的R-CNN(regions with convolutinal neural network features)为代表,这类算法的特点是检测精度高,但是实时性差。Faster-RCNN[13]属于经典的候选区域目标检测器检测方法,卷积层提取出特征信息后,与RPN(region proposal networks)共享,用来计算信息中含有待检测物体的概率。该方法的检测精度较高,但计算量很大。

上述两类目标检测方法各有其优缺点,但是,针对空中小目标而言,仍然存在对其特征信息利用率不高、检测精度低、漏检等问题,鉴于此,本文针对空中小目标的特点,提出一种基于双线性插值的单目标检测算法(single target detection algorithm based on bilinear interpolation,STI)。首先,针对主干网络进行设计,以VGG16 作为前置特征提取网络,得到不同尺寸的特征图后,根据不同尺寸特征图的特点,使用两种不同的特征融合方法对特征图进行处理。其次,使用聚类算法对算法的先验框进行设计和计算,得到与空中小目标数据集目标框更加契合的尺寸和长宽比。最后,将多个尺度的特征图送入检测层实现空中小目标的检测和分类。该算法能够减少特征信息在融合过程中的丢失,加快模型的收敛速度,增加空中小目标的检测精度,提升检测效果,避免漏检。

1 双线性插值的单目标检测算法

1.1 主干网络的设计

分析VGG16 的网络结构,如图1 所示。VGG16共有13 个卷积核为3×3 的卷积层,3 个全连接层,5个池化核为2×2池化层。VGG16的核心组件为卷积层和池化层。VGG16 用多卷积串联的方式替换大尺寸卷积,拥有了更多的非线性变换,用卷积层和池化层堆叠的方式获得了一个深层次的网络结构,但同时也增加了计算量。

图1 VGG16网络结构Fig.1 Network structure of VGG16

另外,VGG16 在对特征图处理的同时,还伴随着特征信息的丢失,导致网络检测的准确率不高。针对这些问题,本文设计了一种基于双线性插值的主干网络,其网络结构如图2所示。

图2 基于双线性插值的主干网络结构图Fig.2 Structure diagram of backbone network based on bilinear interpolation

首先,借鉴VGG16 的特点,抛弃所有的droupt层,并将全连接层替换为普通卷积层,再额外加入4个特征提取层进行特征信息的提取,即Conv8_2、Conv9_2、Conv10_2、Conv11_2。其次,为了增强特征图之间的联系,增加特征图含有的特征信息的数量,将含有更多语义信息的高层特征图与含有更多位置信息的低层特征图进行融合,同时,根据特征图通道数的特点,采用不同的特征融合方式,即高层融合模块和低层融合模块,增加特征信息数目的同时,减少算法的计算量,另外,在特征融合的过程中用双线性插值法对特征图上采样,以增加特征信息的利用率,提高空中小目标检测的精度。

在基于双线性插值的主干网络中,将输入图片的尺寸调整为300×300,对输入信息采用自下而上的路径进行卷积,在经过卷积Conv3_3、Conv4_3、FC6、FC7、Conv8_2,Conv9_2,Conv10_2,Conv11_2时,输出8个尺度不同的特征图,分别经过一个横向通道卷积层的处理,再根据特点送入高层融合模块和低层融合模块内进行特征融合,通过3×3 卷积的处理,得到6个特征图,然后送入到检测层中。

1.1.1 融合模块

本文使用低层融合模块和高层融合模块两种融合方法进行特征融合。在模型向前传播的过程中,对特征图进行判断,根据不同深度的特征图的尺度和结构不同,实现不同特征图之间的融合,其结构图分别如图3、图4所示。

图3 低层融合模块结构图Fig.3 Structure diagram of low-level fusion module

图4 高层融合模块结构图Fig.4 Structure diagram of high-level fusion module

在低层融合模块中,对输入进来的高层特征图先进行上采样处理,然后再与低层特征图进行求和运算。高层特征融合模块则是先将输入进来的高层特征信息进行上采样操作,然后再将低层的特征信息进行拼接运算,在拼接后还必须通过1×1 的卷积对特征图进行降维处理,使得经过拼接后的特征得以很好地融合。

经过Conv4_3,FC6,FC7 提取出来的特征图通道数较多,因此,采用低层融合模块进行特征融合。虽然低层融合模块的融合过程中会造成信息的丢失,但是新的特征图是由两个特征图经过特征融合得到的,所以融合后的特征图仍然要比融合前的特征图含有更多的特征信息。因为经过Conv3_3,Conv8_2,Conv9_2,Conv10_2,Conv11_2 提取出来的特征图的通道数比Conv4_3,FC6,FC7 提取出来的特征图通道数少,所以,采用高层融合模块的方式进行特征融合,最终得到的特征图要比融合前的特征图含有更多的特征信息。

虽然低层融合模块和高层融合模块都会增加特征图的特征信息量,但是高层融合模块在融合的过程中没有信息的丢失,更有利于保存信息的完整性,性能要优于低层融合模块。但是,高层融合模块的计算量要比低层融合模块大。因此,根据不同特征图的特点使用两种不同的特征融合方式。

假设有两路输入的通道分别为t1,t2,...,tn,和w1,w2,…,wn,*为卷积,K为卷积核。则低层融合模块单个输出通道Z1如式(1)所示。

高层融合模块单个输出通道Z2如式(2)所示。

由式(1)和式(2)可知,低层融合模块在对输入通道处理的过程中相当于两个输入通道共用一个卷积核,而高层融合模块则使用了两种不同的卷积核,因此,高层融合模块要比低层融合模块的计算量大。对比单一的使用高层融合模块,不仅可以增加检测精度,还减少了模型的计算量,因此,设计两种融合方式。

1.1.2 上采样模块

特征融合需要先修改高层特征图的尺寸,因此,采用双线性插值的方法对高层特征图的尺寸进行修改。双线性插值的上采样方法的原理图如下页图5所示。

图5 双线性插值原理图Fig.5 Schematic diagram of bilinear interpolation

假定已经知道函数f在Q11(x1,y1),Q12(x1,y2),Q21(x2,y1),Q22(x2,y2)这4 个点的数值,如果想要知道P(x,y)在函数f上的数值,首先在x方向上进行线性插值,得到f(R1),f(R2)如式(3)和式(4)所示。

然后在y方向进行线性插值,得到f(P)如式(5)所示。

将式(3)和式(4)的结果代入到式(5)中可以得到双线性插值最后的结果f(x,y),也就是P(x,y),如式(6)所示。

使用双线性插值方法进行上采样虽然在一定程度上增加了计算量,但是特征图在传递过程中保留了更多有用信息,减少了特征信息在传递过程中的丢失,保证了特征图的灰度连续性,有利于空中小目标的检测。

1.2 先验框的设计

1.2.1 先验框聚类

先验框可以帮助算法检测到图片中是否含有待检测物体。算法根据先验框与待检测目标的目标框之间的交并比,将先验框归类为待检测目标框和背景。如果定义的先验框尺寸、先验框的长宽比与空中小目标数据集内的目标框的尺寸、目标框的长宽比差别较大,会使大部分的先验框被划分为背景,导致检测精度低,出现漏检的现象。为了解决这种问题,本文算法对先验框进行了重新设计和计算。收集空中小目标数据集中的每个目标框的长与宽的数值,将每个目标框的长宽比记作r,组成一个新的簇。对簇进行聚类,步骤如下:

1)在簇内随机选取Q个元素作为每个内部簇的簇心,即O。

2)分别计算每个元素到随机选取的点O的距离,用这个距离作为评价的指标。

3)分别计算每个元素与所有点O的距离,与哪一个簇心最近,就将这个元素分配到哪一个簇,形成Q个内部簇。

4)在每个分配好的内部簇,分别计算任意元素到其他所有元素的距离,然后求和,把距离和最小的元素当成新的簇心。

5)重复2)~4),当每个簇内的最小的距离和不再发生变化或者算法执行次数达到限制时,则停止计算。

考虑到空中小目标数据集的实用性,空中小目标数据集是在不同情境下进行采集并制作的,有的空中小目标的目标框在整个图片上所占比例较小,有的所占比例较大,这就导致r的数值分布较为分散,影响聚类的准确率。因此,对于簇心的选取都来源于样本中的数据,可以减少样本中极大值和极小值对于最后聚类结果的影响,提升聚类效果,增加聚类的准确率。聚类算法使用欧氏距离计算簇心和样本点之间的距离。假定给定两个数据样本x(x1,x2,…,xi),y(y1,y2,…,yi),两个样本点之间的欧氏距离d(x,y)计算公式如式(7)所示。

新簇心到本簇内其他样本点的距离和Enew如式(8),旧簇心到本簇内其他样本点的距离和Eold如式(9),簇心更新的评价指标即新旧簇心的距离差Cost如式(10)所示。

若某一簇内某一个样本的Cost 值小于0,则表示这个样本可以代替之前的簇心成为新的簇心,反之则不替换,进行下一步的计算。通过对簇的聚类,能够求出最佳的先验框的长与宽之比。

1.2.2 先验框计算

先验框的尺寸不仅会影响最后的检测效果,还会影响到检测精度。如果在设计过程中先验框的尺寸和数据集的目标框尺寸差别较大,就会使整个样本的正负比例失衡,导致检测精度低,甚至出现漏检、错检。为了解决这些问题,需要对每个输入到检测层的特征图的先验框尺寸进行计算。收集空中小目标数据集中的每个目标框的长与宽的数值,长与宽的乘积就是目标框的面积,将目标框的面积与原图的面积比值记作S,由所有的S组成一个新的数组。对这个数组进行排序,找出S中的最小值和最大值,排序算法步骤如下:

1)在数组中随机选取一个数作为一个初始数。

2)将数组中小于初始数的数据放到初始数的右边,大于初始数的数据放到标准数的左边,构成两个子数组。

3)对于初始数左、右两边的子数组重复进行步骤1)、步骤2),直到S全部有序或者每个子数组只存在一个数据为止。

数组S的第1 个数据和最后一个数据就是Smax和Smin的值。经过对S的计算,得到Smin和Smax的数值后,再对每个特征图的先验框的尺寸Bk进行计算,如式(11)所示。

式中,m为输入到检测层的特征图个数,k∈[1,m]。经计算,可得到输出特征图最合适的先验框尺寸。

2 实验结果和分析

2.1 实验环境

本文算法使用的数据集主要是通过无人机在不同的季节,分别在校园、野外、公路等地点拍摄所得。通过对视频每一帧的处理,得到大小不同的图片总计13 000 张,训练集、测试集、验证集的比例是8 : 1 :1。训练使用的学习率为0.000 1,批操作尺寸为16,训练200个轮次。

2.2 评价指标

本文算法采用查准率(precision)、查全率(recall)进行数据分析,计算量(FLOPs)、精度(Ap)、精度均值(map)作为评价指标。其中,Ap是单个类别的检测精度,map是整个算法的平均检测精度,FLOPs和map可以衡量整个算法的性能。

上述各指标的计算公式分别为式(12)~式(16)所示。

式中,TP为预测正确的正类数;FN为预测错误的正类数;FP为预测错误的负类数;Ci为输入通道数,Co为输出通道数,k表示卷积的卷积核,W、H为特征图宽、高;N为空中小目标的种类数。

2.3 算法训练

将设计好的先验框的尺寸和先验框的长宽比加入到STI 算法的训练过程中,分别对算法SSD、Faster-RCNN、STI 使用自主制作的空中小目标数据集在相同的实验环境下进行训练,得到各个算法的平均损失与训练次数变化关系,如图6~图8所示。

图6 SSD平均损失与训练次数变化关系图Fig.6 The change relationship diagram between the average loss and iterations of SSD

图7 Faster-RCNN平均损失训练次数变化关系图Fig.7 The change relationship diagram between the average loss and iterations of Faster-RCNN

图8 STI平均损失训练次数变化关系图Fig.8 The change relationship diagram between the average loss and iterations of STI

图中,train loss 是指算法在训练过程中,每经过一个epoch 后的训练损失。图中3 种算法在训练初期,平均损失下降的都比较快,训练150 个epoch 后各自的平均损失几乎不再发生明显的变化,说明算法已经收敛。但是可以看出,SSD 算法的收敛效果最差,后期仍然出现了很多的波动。STI 算法的收敛效果要优于SSD,曲线圆滑,波动较小。此外,STI算法和Faster-RCNN 算法的收敛效果相差无几。

2.4 实验结果及分析

2.4.1 性能对比

3 种算法经过训练后,分别针对鸟和无人机绘制其P-R曲线图。算法SSD、Faster-RCNN、STI训练后的P-R曲线图如图9~图11所示。

图9 SSD P-R曲线图Fig.9 P-R curve of SSD

图10 Faster-RCNN P-R 曲线图Fig.10 P-R curve of Faster-RCNN

图11 STI P-R曲线图Fig.11 P-R curve of STI

图中纵坐标为Precision,横坐标为Recall,根据P-R 曲线图可以计算出每个类别的检测精度Ap,进而计算出每个算法的平均检测精度map。计算量FLOPs的计算过程如下:给算法输入一个300×300×3的数据,计算这个数据每经过一个特征层所产生的计算量,直到算法的所有特征层都完成了对这个数据的处理。将所有产生的计算量相加就是这个数据经过算法处理一次所产生的计算量。3 种算法的FLOPs和map如表1所示。

表1 算法的map和FLOPs值Table 1 The map and FLOPs values of the algorithm

如表1所示,由于STI算法使用双线性插值的上采样方法以及特征融合模块,所以,算法的计算量有所增加,但是特征融合模块充分利用了多个尺度特征层的特征信息,增加了特征图含有的信息量,并使用更加契合空中小目标数据集的先验框进行训练,所以,在精度上对比SSD 增加了10.29%,性能优于SSD 算法。STI 算法在检测精度上和Faster-RCNN算法持平,但是STI算法灵活地使用了两种不同的特征融合方法,所以,STI 算法的计算量仅为Faster-RCNN 的1∕6,在计算量上要优于Faster-RCNN。综合算法的检测精度和算法的计算量,STI算法的总体性能要强于SSD算法和Faster-RCNN算法。

2.4.2 检测效果对比

为验证STI 算法对于空中小目标的检测更有优势,使用SSD 算法、Faster-RCNN 算法以及STI 算法对于同一张图片进行检测,检测效果图如图12~下页图14所示。

图12 SSD对于多个小目标检结果Fig.12 The multiple small target detection results of SSD

图13 Faster-RCNN对于多个小目标检结果Fig.13 The multiple small target detection results of Faster-RCNN

图14 STI对于多个小目标检结果Fig.14 The multiple small target detection results of STI

如图12~图14所示,当空中出现多个小目标时,SSD仅能检测到一个距离最近、体积较大目标,忽略了其他较远距离、体积较小的空中小目标,并且还出现了漏检的现象,检测精度仅有0.73。STI算法则能够检测到所有的空中小目标,并且,对于同一个空中小目标的检测精度远远高于SSD 算法。同样,虽然Faster-RCNN 算法也能够有效地检测出这些小目标,但STI 算法的检测框更加契合图片中的空中小目标,检测框完全贴合待检测目标,没有多余的背景或者覆盖待检测目标,检测效果较好。而Faster-RCNN 的检测框则包含了大量的背景,甚至有的检测框还覆盖了待检测的目标,不利于空中小目标的检测。因此,STI 算法的检测效果要比Faster-RCNN 好。研究结果表明,STI算法基于双线性插值的主干网络结构以及重新设计的先验框,不仅提高了算法对于空中小目标的检测精度,还提升了检测效果,能够有效地检测出空中的小目标,减少了漏检的情况。

3 结论

本文提出的STI 算法,根据提取出来的特征图通道数的不同,使用低层融合模块和高层融合模块两种方法进行特征图的融合,对比单一使用一种特征融合方法,不仅增加了特征图含有的特征信息数量,还减少了算法的计算量。在特征融合过程中使用双线性插值的上采样方法,减少了融合过程中特征信息的丢失,提升了空中小目标的检测精度。利用聚类算法设计了先验框长宽比并重新计算了先验框的尺寸,随后应用于训练中,提升了检测效果,减少了漏检。实验结果表明,STI 算法对于不易检测的空中小目标以及当有多个目标存在时都能够实现精准地检测,避免漏检。

猜你喜欢
低层先验卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于无噪图像块先验的MRI低秩分解去噪算法研究
从滤波器理解卷积
关于低层房屋建筑工程造价的要点及控制措施探讨探索
基于傅里叶域卷积表示的目标跟踪算法
基于自适应块组割先验的噪声图像超分辨率重建
住八楼以上的人,早亡风险低
基于平滑先验法的被动声信号趋势项消除
低层高密度住宅设计探讨
先验的废话与功能的进路