基于改进MobileNetV3的遥感目标检测

2022-05-27 03:41王云艳王子健
陕西科技大学学报 2022年3期
关键词:卷积图像模块

王云艳, 罗 帅, 王子健

(1.湖北工业大学 电气与电子工程学院, 湖北 武汉 430068; 2.襄阳湖北工业大学产业研究院, 湖北 襄阳 441100)

0 引言

如今遥感图像的空间分辨率越来越高,包含的目标信息越来越丰富,对遥感图像进行目标检测被广泛应用到民用领域和军事领域,如指导果农采摘、交通管理、环境分析、军事测绘、军事目标侦察等.遥感图像相对于实地勘察,可以实时的捕捉地面信息,并且获得的信息更详细.遥感图像中的飞机、轮船、汽车等物体的快速准确识别,在军事作战中和交通管理中有着重要的意义.

如何能够设计一个能在快速性和准确性上达到平衡的特征提取模型,一直是近年来研究的热点.SqueezeNet使用1×1的卷积和扩展模块,通过减少模型的参数量,来提高模型的速度[1].此外还有一些通过减少模型的计算量来实现速度的提升,如MobileNetV1采用深度可分离卷积,大大提高了计算效率[2].MobileNetV2通过引入具有反向残差和线性瓶颈的资源高效块,来实现速度的提升[3].CondenseNet在训练阶段保持层之间有用的密集连接[4].ShiftNet提出了与逐点卷积交错的移位操作来代替空间卷积,降低计算量来提升速度[5].MobileNetV3则是在核心架构中加入一种名为SE(Squeeze-and-Excitation)的神经网络和使用 AutoML 为给定的问题找到最佳的神经网络架构,实现速度的提升[6,7].在将轻量化网络应用到目标检测的研究方向,陈智超等[8]通过在MobileNetV2网络中嵌入注意力机制,和调整宽度因子降低模型的参数量,实现对垃圾图像进行分类;秦伟伟等[9]通过将YOLOv3主干网络替换为MobileNetV2和引入k-means进行边界框聚类,提升对遥感军事目标的检测效果;张欣等[10]对YOLOv4-tiny增加金字塔模块和强化CSP特征提取网络,改善遥感飞机目标的检测性能.

本文主要针对如何高效准确的检测遥感目标进行研究,提高网络的检测速度,同时解决遥感图像中大簇小目标检测难题.本文设计一种更高效的多维注意力网络(FMDA-net),并将其加入到MobileNetV3浅层特征(F3)提取,获得更多小目标的语义信息,提高网络对小目标的检测能力;并将MobileNetV3中深层特征(F2,F1)提取中的SE注意力机制换成更高效的ECA(Efficient Channel Attention)模块[11],ECA通过执行大小为k的快速一维卷积来生成通道权值代替SE中的两次FC层计算权重,只增加很少的额外参数和可忽略的计算,就能带来显著的性能提升.本文将改进后的轻量级网络命名为MobileNetV3+,并将其代替YOLOv4[12]的主干网络,实现遥感图像目标的快速准确的实时检测.本文模型在遥感数据集USAOD和公共数据集VOC2007上都取得很好的检测效果.

1 相关工作

1.1 MobileNetV3

近年来,随着智能应用的增加,轻量化网络成为近年来的一个热门的研究方向.轻量化的主要研究手段有减少网络计算量、模型剪枝、量化、知识蒸馏等.MobileNetV3是Google继mobileNetV2之后的又一力作,其主要改进是在MobileNetV2中深度可分离卷积之后加入SE-net,通过学习自动的获得每个特征通道中的重要程度,并且抑制一些对当前任务无用的特征信息.此外,MobileNetV3综合了MobileNetV2和MobileNetV1的四个特点,其主干网络Bneck如图1所示,首先利用1×1的卷积进行升维,在引入MobileNetV2线性瓶颈的逆残差结构;然后进行3x3深度可分离卷积,降低网络的计算量;再然后通过轻量化的SE-net注意力模型,使网络关注更加有用的通道信息来调整每个通道的权重;最后,使用h-swish激活函数,代替swish函数,减少运算量,提高性能.通过改变Bneck结构后,与MobileNetV2相比,MobileNetV3在COCO上达到相同的精度,速度快了25%,同时在分割算法上也有一定的提高.

图1 MobileNetV3的Bneck结构

1.2 YOLOv4

目标检测分为Two-stage和One-stage两类目标检测算法,Two-stage这类检测算法是把目标检测的问题划分为产生候选框和对候选框区域进行分类位置精修两个阶段,这类算法典型的代表有R-CNN、Fast R-CNN、Faster R-CNN和Mask R-CNN等[12-15];One-stage这类检测算法是基于回归的方法不需要产生候选框阶段,不需要复杂的框架直接获取物体的类别概率和位置坐标值,比较典型的代表有YOLO、SSD和CenterNet等[16-18].随着研究的发展YOLO自2016年提出以来到2020年已经发展到第4代YOLOv4.YOLOv4是端到端的目标检测算法,可以实现目标的实时检测.YOLOv4的CSPDarknet53主干网络,是通过残差块的堆叠实现获得更丰富的语义信息[19];增加SPP附加模块增加感受野,分离出了最重要的上下文特性,并且几乎不会降低网络运行速度;再通过PANet路径聚合,实现多尺度的特征融合,相比YOLOv3中的FPN增加了下采样来获得更丰富的语义信息,提高检测能力;最后使用YOLO进行物体识别与定位,YOLOv4的网络结构如图2所示.

图2 YOLOv4网络结构

2 基于改进MobileNetV3的目标检测

2.1 本文网络

在遥感图像中场景通常很大,而目标在场景中所占的比例很小,常为场景的1/5或者更小,因此在经过多次下采样后导致小目标的信息丢失.遥感图像中密集而小的飞机物体,常常存在实例级噪声,也就是背景对物体检测造成干扰.实例级噪声的存在,也是导致遥感图像检测困难的原因.

为了快速准确的检测遥感图像大场景下的大簇小目标,我们选取MobileNetV3作为主干,通过在具有更丰富的小目标语义信息的浅层特征中加入快速多维注意力网络FMDA-net来保留小目标所含的语义信息,使其经过多次下采样后依然保留有效的特征信息;并引入更快速的注意力网络ECA代替SE网络,在ECA模块中使用一个卷积核为k的快速的一维卷积来生成通道权重,其中通过k与通道维数的比例自适应确定k值,避免手动调优的过程,相比SE模块使用两个FC层来计算权重既保证了效率也保证了效果.最后,通过PAnet进行多尺度的特征融合,丰富每个级别的特征.本文检测器的网络结构如图3所示.

图3 本文的检测器网络

2.2 FMDA-net更高效的多维注意力网络

由于遥感图像中背景复杂,背景中包含着大量的噪声信息,为了更有效的在复杂背景中捕捉小目标的语义信息,本文设计了一个有监督的多维注意力模型FMDA-net,通过强化更加有用的通道信息来调整每个通道的权重,降低漏检率和误检率.FMDA-net结构如图4所示,该结构由ECA-net和SE-net组成.卷积神经网络在提取图像包含的特征信息时,遥感图像中物体的特征信息具有连续性,背景的信息也不会被完全消除,这一特点使得特征层中保留一定的上下文信息.在FMDA-net中,虽然通过SE模块中两次FC(全连接层)能够获得特征图中每个通道的权值,但是仅使用SE模块则无法捕获到局部通道之间的相互作用,而且过多的卷积也会增加计算成本.因此,在FDA-Net中引入ECA模块,ECA模块中通过一次一维卷积不降维的方式,不增加太多计算成本情况下,避免不同通道之间完全独立,实现局部跨通道交互,从而使FMDA-net能够捕获局部通道之间的相互作用.FMD-Net通过SE模块捕获全局通道信息和ECA模块捕获局部通道信息的方法,实现更高效的强化有用的通道信息来调整每个通道的权重.

图4 FMDA-net结构

如图5所示,为SE-net的网络结构.给定输入特征,SE模块首先对每个通道独立使用全局平均池,然后使用两次非线性的全连接(FC)层和激活函数生成每个通道的权值.这两个FC层的设计是为了捕获非线性的跨通道交互作用,其中包括降维以避免过高的模型复杂度,最终将融合全部的输入特征信息.通过hard-swish代替Sigmoid函数更好的将输入映射到0~1区间,在量化的时候hard-swish能够消除了潜在的精度损失,使用h-swish相比swish在量化模式下提高大约15%的效率,尤其是h-swish在深层网络中的提升效果更加明显.

ReLU(6)=min(max(0,x),6)

(1)

(2)

图5 SE模块结构

如图6所示,ECA-net网络结构中取消降维的操作,当网络完成全局平均池化后,直接进行局部跨通道连接,即通过执行大小为k的快速一维卷积来生成通道权值,其中k通过通道维C的函数自适应地确定,在减少计算量的同时,性能优于SE块.同时,ECA模块不需要跨所有通道来捕获有用的特征信息,可以通过模块捕获局部通道信息,获得每个特征通道中的重要程度,并且抑制一些对当前任务无用的特征信息.因此,ECA模块可以提高网络的泛化能力.k的取值如公式(3)所示,|t|odd表示离t最近的奇数,γ和b表示常量在本文分别设为2和1.

(3)

图6 ECA模块结构

2.3 改进Bneck模块

在MobileNetV3的Bneck结构被用于每个特征层的特征提取.本文算法保留了三个有效特征层,分别是特征层F3(104×104×24)、特征层F2(52×52×40)、特征层F1(26×26×112),其中特征层F3为包含丰富的小目标的语义信息,用于小目标的检测;特征层F2感受野中等,适合中等目标的检测;特征层F1感受野较大,但是多次下采样操作使得小目标信息丢失,因此只适合对大目标的检测.针对本文数据集UCAS-AOD为汽车和飞机的遥感图像,其像素很小且多为密集存在,因此本文对特征层F3的特征提取块Bneck结构进行改进,改进后的Bneck_A结构如图7所示,在Bneck中3x3深度可分离卷积之后加入更高效的多维注意力网络FMDA-net代替SE-net,只增加很少的计算量就能使网络关注更加有用的通道信息来调整每个通道的权重.

图7 Bneck_A结构

此外,为了提高模型的检测速度,使用特征提取块Bneck_B对F2和F1特征层进行特征提取,在Bneck_B中使用更高效的ECA模块代替SE模块,Bneck_B特征提取块的结构如图8所示.

图8 Bneck_B结构

3 实验分析

在本文的实验环境,使用NVIDIA RTX2060 GPU进行训练和测试,CUDA的版本是10.0,cuDNN的版本是7.6.5,Tensorflow的版本是1.13.1,硬件和软件环境的详细信息如表1所示.实验所用的基准数据集分别是遥感数据集UCAS-AOD和公共数据集VOC2007.UCAS-AOD数据集由中国科学院大学创建,数据集中有航拍的1 000张飞机图片和510张汽车图片,包含7 482个飞机物体和7 114个汽车物体.VOC2007数据集共包含:训练集(5 011幅),测试集(4 952幅),共计9 963幅图,共包含20个种类.

表1 实验环境

3.1 实验相关的评价指标

为了更好地评价和比较本文的检测模型,采用了准确率P、召回率R、平均精度(mAP)和对数平均缺失率(MR-2)这四个指标.MR-2该指标是加州理工学院行人失误率的算法指数.由于该指标同时关注假阳性(FP)和假阴性(FN),所以MR-2模型具有较高的平均精度(mAP)并不一定低,更适合遥感图像中飞机拥挤的场景.当实际的和预测的标签都是“真”时,称这种情况为真阳性(TP).当实际的和预测的标签都是“假”,称之为真“负”(TN).然后,假阴性(FN)表示实际标签为“真”,预测标签为"假"的情况.假阳性(FP)则相反.

通过选择不同的置信阈值得到每幅图像的假阳性(FPPI)和缺失率(MR),取对数空间中间10-2~100等间隔的9个FPPI点的MR值,计算其平均值,得到对数平均缺失率(MR-2),检测值越低,结果越好,如式(4)、(5)所示.

(4)

(5)

Precision是指正确预测的“真”标签在所有预测的“真”标签中所占的比例,其范围在[0,1]之间.对于飞机探测来说,高精度代表了已探测到的某一类型飞机的高置信度.precision计算如式(6)所示.

(6)

Recall表示正确预测的“真”标签占实际真标签总数的比例,其取值范围为[0,1].对于目标检测,高召回率意味着算法能够在数据集中完全检测出某一类型的目标,如式(7)所示.

(7)

(a)无注意力 (b)SE模块 (c)ECA模块 (d)FMDA模块 (e)输入图像图9 各模块的特征图

表2 各主干网络的检测结果

通过Recall-Precision (R-P)曲线可以获得Average Precision (AP)值.目标检测效果取决于预测框和类别是否准确,AP是衡量模型预测框和位置是否准确的重要指标,如式(8)所示.

(8)

由于精度和召回率往往是矛盾的,因此 F1用于综合衡量一种算法的质量.F1计算过程如式 (9) 所示.

(9)

FPS(Frames Per Second)为每秒传输的帧数, FPS的计算过程如公式(10)所示,式中的N为被测样本数,t为测试全部样本所需的时间.FPS越高说明模型处理单帧图像的速度越快.

(10)

3.2 实验结果

为了证明FMDA模块能够提高模型对小目标检测的准确率,本文可视化了各模块下不同深度特征层的特征图,如图9所示.通过FMDA模块能够保留更多的有用的特征信息,避免在下采样的过程中丢失过多的小物体特征信息.

在遥感数据集UCAS-AOD上,本文使用MobileNetV3、MobileNetV2和MobileNetV1作为检测器的主干网络与本文所提出的MobileNetV3+进行对比实验,每个检测模型batch-size设为1,各训练100个epoch,实验结果如表2所示.由表2可以看出,本文所提出检测模型的mAP达到91.22%相比MobileNetV1提高1.26%;相比MobileNetV2提高7.15%;相比MobileNetV3提高6.05%.同时检测速度达到41.58FPS相比其他主干网络都有提升.实验证明,在主干网络的浅层特征提取中加入FMDA模块构成的Bneck_A,能够保留更丰富的小目标的语义信息,对小且密集的汽车的检测性能的提升尤为明显,相比MobileNetV3汽车的检测精度提升11%,召回率提升47.86%;同时通过更高效的ECA代替SE模块构成提取深层特征的Bneck_B,减少网络的计算量的同时也保持检测的性能.本文所提出的轻量化MobileNetV3+网络,在大大提高检测精度的同时满足实时检测的要求.

在图10中展示了各主干网络在UCAS-AOD部分数据集的检测结果.结果显示MobileNet系列作为主干网络对飞机和汽车进行检测时,都出现不同程度的漏检和误检.本文所提出的MobileNetV3+在作为检测器的主干网络时,相比其他网络对密集且小的汽车具有很好的检测能力,同时对复杂背景的飞机目标也能准确识别.

(a)MobileNetV3+

此外,将本文的检测模型与主流的检测模型进行比较,如表3所示.相比目前先进的One-stage算法YOLOv3、SSD-512和CenterNet,本文算法对遥感飞机和汽车检测精度都高于它们,其中平均检测精度(mAP)分别提高了0.97%、4.62%和1.92%.同时本文算法的FPS达到41.58,相比它们分别提高了5.28、14.48和2.83.相比先进的Two-stage算法Faster-RCNN,本文算法平均精度略微高出0.22%,但是FPS提升了31.58.实验证明,本文提出的轻量化检测网络在满足实时检测的需求的情况下,同时又能保证良好的检测精度.

表3 不同算法检测结果对比

为了进一步分析本文算法在其他场景下性能提升效果.选取公共数据集VOC2007进行对比实验,VOC2007数据集中包含20个类,训练集5 011张和测试集4 952张,在测试数据集上测试的准确率AP如表4所示.

表4 VOC2007检测结果

在表4中,本文算法的mAP达到71.50%,相比MobileNetV3作为主干网络的mAP为70.02%,平均精度提升了1.48%.本文算法在大部分的类别上的检测效果都优于MobileNetV3.尤其是对小目标检测,如“bird”本文算法的检测精度提高了7%.但是,有一些物体的检测精度略低于MobileNetV3,如“chair”、“sofa”、“tvmonitor”,主要是因为本文使用的预训练模型中包含这三类物体的图像较少导致.此外,本文算法的检测速度为38.57FPS,相比MobileNetV3作为主干网络的35.92FPS,提升了2.65FPS.实验证明本文算法可以应用多场景的目标检测任务,具有很强的鲁棒性,满足多场景实时检测的要求.

如图11所示,为各个主干网络在UCAS-AOD数据集上训练的损失曲线.图中的epoch为训练周期,在训练过程中,当训练次数为50个epoch时各模型的到达收敛状态.本文所提出的MobileNetV3+相比其他MobileNet系列的模型收敛速度更快,更早的到达平衡的状态.

图11 损失曲线图

4 结论

本文基于轻量化网络MobileNetV3进行改进,通过加入本文提出的多维注意力网络(FMDA-net)和更高效的ECA模块,获得新的轻量化网络MobileNetV3+,并将其作为YOLOv4检测器的主干网络,实现对遥感图像目标的实时检测.本文的检测器在提高检测速度的同时获得高精度的检测效果.针对遥感图像中密集且小和复杂背景的目标表现良好的检测性能,同时检测速度达到41.58FPS满足实时检测的要求.本文网络在公共数据集VOC2007也取得良好的检测效果.实验证明本文算法可以应用多场景的目标检测任务,具有很强的鲁棒性,可以用于多场景目标的实时检测.

猜你喜欢
卷积图像模块
基于全卷积神经网络的猪背膘厚快速准确测定
28通道收发处理模块设计
“选修3—3”模块的复习备考
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
浅析p-V图像中的两个疑难问题
巧用图像中的点、线、面解题
必修模块相关知识过关训练
名人语录的极简图像表达