APP下载

一种在轨卫星光学遥感舰船检测算法

2021-04-28瞿涛韩传钊

航天器工程 2021年2期
关键词:层数残差舰船

瞿涛 韩传钊

(1 武汉大学 计算机学院,武汉 430072)(2 北京市遥感信息研究所,北京 100192)

遥感图像目标检测一直是遥感影像处理领域研究的热点课题,船舶作为海上运输载体和重要的军事目标,其自动检测与识别具有非常重要的现实意义,无论在民用还是军事领域都有着广阔的应用前景[1]。光学遥感图像具有分辨率高、图像清晰和信息丰富等特点,因此光学遥感图像舰船检测已逐渐成为研究热点。传统的卫星遥感图像数据处理方案是将获取到的遥感图像进行压缩,然后下传到地面站处理[2]。当前遥感卫星采集的图像分辨率越来越髙,而下传数据的带宽有限,迫切需要提高星载计算机的在轨数据处理能力,提升现有遥感卫星的自主性与灵活性,减少地面站对卫星任务的干预,满足未来遥感卫星对高机动性、高应急性、高时效的要求,在灾害应急监测等领域发挥更大作用。然而,星载平台对于嵌入式设备的资源和功耗有着严格的限制,难以满足深度学习算法高内存、大计算量的需求,因此需要进一步研究适合在轨处理的轻量级实时舰船检测算法。

光学遥感舰船检测根据使用特征的类别,可以分为传统特征检测方法和深度神经网络检测方法2种。传统特征检测方法包含基于海洋表面分析的舰船检测(SDSSA)方法[3]、基于形态学的方法[4]、基于舰船的直线检测(LSD)方法[5]等,传统特征检测方法通常由人工设计特征表达,设计有效的手工特征通常需要大量的专业知识,在海面背景复杂的情况下特征通常不明显且易被干扰,无法有效应用[6]。深度学习在计算机视觉应用中有着更强的特征表达能力。基于深度学习的舰船检测方法通常分为单阶段(One-stage)和两阶段(Two-stage)2类[7]。关于Two-stage方法,文献[8]中提出任务划分模型,根据网络深度分配不同的任务。文献[9]中对快速区域卷积神经网络(Fast RCNN)感兴趣区域池化层(ROI Pooling)进行改进,去掉ROI Pooling层候选框中非目标区域的噪声干扰。文献[10]在Faster RCNN的基础上采用多分辨率卷积特征,提升相邻船只和小型船只的检测效果。文献[11]中改进了Faster R-CNN算法(Faster R-CNN算法是在Fast RCNN的基础上提出了RPN候选框生成算法,使得目标检测速度大大提高),引入了K均值(K-Means)聚类算法。文献[12]中研究遥感影像目标的成像特性,为遥感领域深度学习网络模型设计提供技术支持。文献[13]中提出基于掩膜区域卷积神经网络(Mask R-CNN)框架的方法,较好地解决了紧密排列舰船目标的检测问题。文献[14]中提出了密集特征金字塔网络(DFPN)解决狭长船只的检测问题。文献[15]中级联目标预筛选全卷积网络(P-FCN)和目标精确检测全卷积网络(D-FCN)提高检测效率。文献[16]中提出一种联合视觉显著性特征与卷积神经网络的舰船检测方法训练卷积神经网络模型。Two-stage方法具有很好的准确率,但复杂的算法在计算资源有限、需要实时处理的卫星在轨目标检测场景中应用受到制约。One-stage方法将目标检测作为一个分类或回归问题,直接得到最终的结果。文献[17]中利用轻量化网络代替YOLOv3特征提取网络实现遥感目标的高效检测。文献[18]在单次多框检测器(SSD)金字塔特征层中设计特征融合模块,实现多尺度遥感图像目标检测与定位。基于One-stage方法的检测网络对于小目标的检测效果并不好,多尺度目标的适应性不强。

星上目标检测在计算资源有限的条件下需要较高的检测精度和速度,在包含各种复杂海况的场景下舰船检测精度不低于85%,才能实现对感兴趣场景的在线目标检测要求。另外,光学遥感图像质量也影响着检测精度,传统的地面处理需要对原始图像做辐射校正与几何校正,以提高图像质量,星上目标检测计算资源有限,在检测前只进行辐射校正可以减少耗时、提升效果,未进行几何校正的图像仍具有船只的形状和纹理特征,对检测结果影响不大。现有研究重点大多是提高舰船检测精度,对设计网络压缩算法提升舰船检测速度的研究不多。本文以光学遥感舰船为研究对象,对多尺度舰船目标快速检测方法进行研究。采用YOLOv3作为端到端基础网络,对网络的通道数和层数进行裁剪,借鉴Mobilenet[19]的思想设计倒置残差结构,使用可分离卷积和1×1卷积对卷积层进行替换,最后使用图像金字塔将不同尺度的舰船检测出来。本文通过研究神经网络压缩方法降低存储和计算成本,可以在计算和存储资源有限的在轨平台完成,更利于实现卫星在轨目标检测。

1 网络压缩与倒置残差结构优化

本文提出的应用倒置残差的卫星在轨光学遥感舰船检测算法,其网络压缩结构如图1所示,通过裁剪网络层数与通道数,减少卷积层至19层(未算分类回归器前的卷积层)。其中,倒置残差用于加速普通的残差块,可分离卷积用于加速普通的3×3卷积。使用倒置残差和可分离卷积结构进行替换加速,可以实现整体网络速度的巨大提升,新网络的浮点运算次数(FLOP)为1.603×109,相比于YOLOv3[20]的6.5287×1010,有大幅度减少。下面将详细介绍端到端网络层数与通道数裁剪和倒置残差结构压缩优化。

注:M为残差块个数;R为通道扩张因子。

1.1 端到端网络层数与通道数裁剪

常用的目标检测模型实现对猫、狗、兔等多类复杂目标定位和分类,舰船检测只有一种目标类别,即区分舰船还是背景,特征本身也比较简单。主流多分类网络模型应用在二分类舰船检测中,存在冗余设计,其网络结构可以裁剪的更小。

卫星在轨光学遥感舰船检测的研究难点在于速度,而YOLOv3正是一种注重速度的One-stage检测方法,本文选择YOLOv3作为基础网络。但YOLOv3结构仍比较复杂,其Darknet53主干网络总层数已经超过了100层。参考ResNet18[21]在特征图(Feature Map)尺寸变化前后都为2个残差块,而Darknet53中第3,4,5次采样后的残差块分别是8,8,4个,本文使用2个残差块结构进行替换。

为解决多尺度目标检测问题,YOLOv3采用多层特征融合的方式,不同特征层检测不同尺度的目标,因此有多个从主干网络中延伸出来的分支。本文采用不同的思路,使用金字塔检测方式将多个分支从网络中移除,只留最后一个分支用于舰船的分类回归,从而减少了检测网络的层数。

YOLOv3在主干网络中经过了5次下采样,对最后一层特征图的单元格进行层层反推,得到的感受野达到了948×948,增大感受野(Receptive Field)有能力检测大的目标,但对于舰船来说,大尺寸船只缩小后仍然有足够的识别能力,不会影响判别。本文去掉了最后一次的下采样及其残差块,并将第4次下采样后的残差块个数减少为1,再次反推得到的感受野变为164×164。

为了能够在最后一层特征图中得到一个中心单元格,YOLOv3设置网络的输入大小为416×416,为32的奇数倍长宽。因为大的目标会占据图像中心,用一个中心单元格来预测较好。但是,对于遥感图像来说,舰船的位置显然是随机的,在中心的概率和在其他位置是一样的,而且舰船相对原始图像来说都比较小,所以在本文中改为512×512。这样可以减少1024×1024图像在缩放时的信息损失,增加检测精度。

以上方法使网络层数减少了约75%,减少的层数是卷积核数量最多的后几层,所以网络的参数数量下降得更多,约为原网络的1/12。参数数量会影响网络在反向传播时参数的更新速度,使得网络的单次检测和训练速度也得到了相应比例的提升。同时,由于感受野的下降,减少了特征抽象,增加了细节信息,使得小目标的检测精度也得到了一定提升。

网络通道数裁剪是对网络中每层卷积核的数量进行调整。本文试验发现:网络卷积核也存在冗余,通过将卷积核数量降低为原来的1/4,可以得到一个精度降低不大的网络。最后一层特征图的通道数为5×(4+2)=30,每个单元格设置了5种不同长宽的锚,预测目标的4个坐标参数,2为置信度和类别概率。这样,可以让通道数裁剪后的网络检测速度得到成倍的提升。

1.2 倒置残差结构压缩优化

本文对残差块内部结构进行调整,将其中的瓶颈结构(Bottle Neck)替换为倒置残差(Inverted Residual)结构,但与MobileNetv2[19]的3层卷积不同,本文使用2层卷积构建倒置残差,如图2所示。第1层为1×1卷积层,用于瓶颈压缩;第2层是3×3的可分离卷积层,存在通道扩张。同时,为了减少ReLU激活造成的信息损失,借鉴了MobileNetv2中的2种解决方法:①将ReLU激活函数替换为线性函数;②通过扩张通道来减少损失。

注:shortcut为直连;linear为线性映射;W和H分别为卷积核的宽和高;N为卷积核个数。

2 多尺度图像金字塔检测

舰船检测的另一个难点是网络对大小不一的目标检测效果较差,常用的办法是将多层特征进行融合:低层感受野小细节信息多,检测小目标;高层感受野大特征更抽象,检测大目标,但采用更大的感受野和更深的网络层数来对信息进行提取和抽象,会增加网络的计算复杂度。而舰船特征简单,将大船缩放成小船仍可以看出是船,适当的图像缩放并不影响到船的判别,大船多出的细节信息对于目标检测是冗余的。

本文使用图像金字塔实现多尺度目标检测,具体步骤如下。

(1)使用压缩后的19层网络对大小为S2的原图T进行目标检测,得到预测框集合P。

图3 金字塔图像示意Fig.3 Pyramid image diagram

(1)

(5)使用非极大值抑制(NMS)的方法,去除P中的重复坐标框。这样即得到了多尺寸的预测框集合P,并将P作为最终检测结果输出。

如前文所述,图像金字塔检测方式将原始网络中多个从主干网络延伸出来的分支移除,只留最后一个分支用于目标的分类回归,从而减少了检测网络的层数。使用金字塔检测方式的前提是待检测的目标类别只有一类,只有这样待检测的目标才能基于同一尺寸范围进行下采样和目标检测。

3 试验结果及分析

本文依托海南一号卫星在轨目标检测载荷应用实例,在分辨率相近的高分一号遥感数据集上进行试验,证明本文算法在有效减少算法耗时的同时,仍能保证在尾迹、海浪、云雾和港口干扰下的检测效果。为卫星在轨运行后的海洋实时管控提供有效的信息保障。

3.1 试验数据库

遥感图像在不同卫星、遥感器、光谱频段和拍摄角度下,其成像表现和目标状态都存在较大差异。本文为了统一图像质量,减少图像来源和状态变化对网络训练产生的不良影响,建立了自制舰船数据库,用来训练测试网络模型的性能。自制舰船数据库来自高分一号卫星的全色波段图像,空间分辨率为2 m,裁剪为多个1024×1024的标准图像,人工筛选后保留海面、海岸和舰船存在的部分,最终得到3952张标准图像,标注得到的舰船目标数量为8621。训练集和测试集的比例为7∶3。

3.2 试验平台

本文算法训练与测试使用的计算机软硬件配置为:GPU为RTX2060,CPU为Intel(R) Core(TM) i7-6700 CPU@3.40GHz,内存为32 GB DDR4 2133MHz。操作系统为ubuntu 18.04LTS,Python为Anaconda3-2018.12,OpenCV 3.3,CUDA 9.2,CUDNN 7.0。

3.3 检测评价指标

当目标所属类别对应的预测框集合中存在某个预测框和真实目标框的交并比(IOU)大于阈值0.5,表示目标被正确地识别出来。IOU为交并比,即两框交集的面积与并集的面积之比。

本文使用精确率Rprecision和召回率Rrecall评估模型的性能。其中:精确率是指所有的预测框中正确对应真实目标的比例,见式(2);召回率是指所有真实目标中有多少被预测出来了,存在对应的预测框,即查全率,见式(3)。

(2)

式中:NTP为目标被正确预测出来的数量;NFP为非目标被错误预测出来的数量。

(3)

式中:NFN为目标没有被预测出来的数量。

不断地改变召回率阈值的大小,将每次计算得到的精确率和召回率画在一个坐标图上就可以得到一条曲线,即为精确率-召回率(PR)曲线,该曲线可以显示检测网络在精确率与-召回率之间的权衡。相比较于曲线图,使用具体的数值更能直观地表现出神经网络检测算法的性能。通常情况下,采用平均精度(AP)作为这一度量标准,平均精度是精确率随召回率变化曲线的积分。

3.4 网络加速试验

3.4.1 层数裁剪试验

为了证明层数裁剪过程中每次的裁剪都是有意义的,本文对每次裁剪后网络的精度和速度的变化做记录并分析,确保裁剪后网络速度加快的同时,精度的降低在可接受范围内,见表1。在表1中:“剪枝”是指裁剪掉YOLOv3最后3个分支中的另外2个,保留1个;“残差优化”是指将“剪枝”中第3,4,5次下采样后残差块的个数按照ResNet18中的配置都裁剪成2个;“层数压缩”是指将“剪枝+残差优化”中最后1次池化及后面的残差块也裁剪掉,并将第4次下采样后的残差块个数裁剪成1个;“普通”是指按照正常流程进行目标检测;“金字塔”是指按照本文多尺度图像金字塔检测方式进行检测。表1中的FLOP指浮点计算次数,用来评价卷积神经网络(CNN)的时间复杂度;Parameters指参数的数据量,一般以Mbyte单位,用来评价CNN的空间复杂度。FLOP和Parameter是评价CNN运行速度的理论指标,和实际运行速度每秒图像帧数(FPS)有着很大的差距。FPS是指1 s可以处理多少张图像,本文使用毫秒作为时间单位。

表1 网络层数裁剪试验结果Table 1 Test results of network layer pruning

从表1可以看到:YOLOv3在去掉分支后(剪枝),平均精度AP有一定下降,通过观察数据样本发现,小目标的检测精度确实下降很多。“剪枝+残差优化+512”的普通检测方式比金字塔检测方式的AP要更大,证明复杂的深度网络并不适合金字塔检测。通过“剪枝+残差优化+层数压缩+512”发现,金字塔检测的效果在网络剪裁较多的情况下,可以增加检测精度,增加的精度来源于小目标检测精度的提高。同时也可以看到:在不断裁剪的过程中,检测速度也在不断加快,其中金字塔检测耗时之所以会提高1倍(乘2),是因为其实施步骤中需要经过2次网络检测。总体来说,网络剪裁后检测速度快了约18%,参数量减少了90%。

3.4.2 通道数裁剪试验

为了保证在裁剪通道的同时精度不会降低太多,本文对每次通道减半后网络的平均精度和检测速度变化做记录并分析,以得到最佳的通道裁剪倍数。如表2所示:“层数裁剪”等于第3.4.1节的“剪枝+残差优化+层数压缩+512”;1/C是指通道裁剪的比例,即通道数变为原来的1/C。本文中的通道裁剪是针对所有网络层,即网络中每层卷积的通道数都变为原来的1/C。

表2 网络通道裁剪试验结果Table 2 Test results of network channel pruning

从表2可以看到:经过1/2通道裁剪后平均精度AP反而增加了一些,这证明了网络确实存在冗余;但经过1/4通道裁剪,AP相对于没裁剪之前降低了1.1,但检测速度提升了约42%;经过1/8裁剪后,发现虽然检测速度提升更大,但AP却下降了5.9。因此,放弃1/8,选择1/4的通道裁剪网络,这也是本文中检测速度提升最大的一步。如果没有金字塔检测,1/4通道裁剪的AP也不可接受,所以金字塔检测是1/4裁剪的前提,同样也是检测速度提升的关键。

3.4.3 卷积替换试验

为了证明可分离卷积和1×1卷积替换普通卷积确实具有检测速度优势,本文对替换前后的平均精度AP和检测速度进行比对测试,记录试验结果。如表3所示:“通道裁剪”是第1.1节的“层数裁剪+1/4”使用倒置残差进行替换后的模型;“通道裁剪+R”中的R是指扩张因子的大小,即倒置残差中的1×1卷积通道数和3×3可分离卷积的输出通道数之比。

表3 卷积替换试验结果Table 3 Test results of convolution replacement

从表3可以看到:“层数裁剪+1/4”到“通道裁剪+1”,虽然FLOP降低了71%,但是检测速度只提升了51%,并不成正比,这就证明了理论计算速度和实际运行效率并不一致,在实际应用中一般更加注重运行速度。同时,扩张因子为1,相对于第3.4.2节的“层数裁剪+1/4”,虽然检测速度加快了很多,但是金字塔检测平均精度AP降低了7.9,相对于加速效果AP下降程度较大,所以不采用,“通道裁剪+2”同理不采用。“通道裁剪+4”检测速度提升了31%,但AP只下降了0.7,在可接受范围内,所以本文最终的网络模型是基于“通道裁剪+4”的。

3.4.4 检测效果对比

图4是YOLOv3和本文算法的PR曲线对比。虽然YOLOv3的PR曲线下的面积更大,但本文算法在精确率降低后,召回率可以迅速跟上YOLOv3,并且在最后有赶超的趋势。总体来说,YOLOv3的平均精度AP更高,本文算法在AP差别不大的条件下速度上更有优势。

图4 PR曲线对比Fig.4 Comparison of PR curves

为了证明本文算法的有效性和普适性,对本文算法,YOLOv3,YOLOv2,YOLOv3-tiny,YOLOv2-tiny,SSD和RetinaNet进行性能对比,并记录试验数据,如表4所示。其中:RetinaNet的主干网络使用的是ResNet-101。

从表4可以看到:本文算法相对于YOLOv3,虽然平均精度AP差了4.2,但是耗时减少约72%;相对于YOLOv2,耗时减少约58%,AP也有0.9的微弱优势;相对于YOLOv3-tiny,YOLOv2-tiny,耗时虽然增加,但AP大幅提高了11.1%和14.5%;相对于SSD,AP表现更好,并且速度更快;相对于RetinaNet,还有一定差距,但耗时只有RetinaNet的9%。

应用倒置残差压缩网络的卫星在轨光学遥感舰船检测算法效果,如图5所示。可以看到:在图5(a)尾迹、图5(a)~5(b)海浪、图5(c)~5(e)云雾和图5(f)港口等干扰的情况下,本文算法均能很好地识别出舰船目标,减少误报,满足在轨目标检测要求。

表4 与主流网络性能对比结果Table 4 Comparison results with popular networks

图5 本文算法舰船检测结果Fig.5 Ship detection results using the proposed algorithm

4 结束语

主流多分类网络应用在二分类舰船检测时存在冗余,本文提出的舰船检测算法进行了层数和通道数裁剪,使用可分离卷积和1×1卷积对普通卷积进行替换,得到一个精简网络,使用图像金字塔的检测方式实现多尺度检测。本文算法与YOLOv3相比平均精度AP只下降了4.2,但检测速度却提升了72%,相比于其他主流网络在平均精度或检测速度上也具有一定的优势,可为计算资源极其有限的卫星在轨目标检测实现提供有效的理论技术支撑。另外,当训练和测试的图像输入大小差距很大时,会有一定的精度损失;如何在后期通过对模型进行微调来消除损失,使模型达到最大性能,以及进一步提升算法本身的参数自适应能力,在小样本集的条件下提高检测精度,是后续的研究内容。

猜你喜欢

层数残差舰船
多级计分测验中基于残差统计量的被试拟合研究*
支持向量机的舰船图像识别与分类技术
风浪干扰条件下舰船航向保持非线性控制系统
基于残差-注意力和LSTM的心律失常心拍分类方法研究
用于处理不努力作答的标准化残差系列方法和混合多层模型法的比较*
融合上下文的残差门卷积实体抽取
舰船测风传感器安装位置数值仿真
通过绞车钢丝绳计算井深
框架结构计算嵌固端位置的确定方法
住在哪一层