崔宗勇 王晓雅 施君南 曹宗杰 杨建宇
(1. 电子科技大学信息与通信工程学院,成都 611731;2. 上海无线电设备研究所,上海 200090)
遥感图像中舰船检测可以有效提高舰船运输效率和减少海上交通事故,同时也是海洋监视的重要组成部分. 合成孔径雷达(synthetic aperture radar,SAR)图像具有全天时、全天候的有利条件,在军事及民用舰船检测中发挥着重要的作用. 随着SAR成像技术的发展,已经可以获取更高分辨率和更大尺寸的SAR图像[1]. 然而复杂的近海背景和海面杂波、不同尺寸的舰船目标、密集排列的近岸停靠舰船等,都会影响舰船目标的检测性能[2-3]. 大场景SAR图像舰船目标检测已成为一项重要且具有挑战性的研究任务.
目前,基于深度学习的目标检测方法,由于不需要复杂的建模过程且泛化能力强,已经成为SAR图像舰船检测领域的主流方向[4]. 该方法主要分为两大类:1)两段式目标检测方法,包括基于区域的卷积神经网络(region-convolutional neural network, R-CNN)等[5];2)一段式目标检测方法,例如,单发检测器(single shot detector,SSD),“你只看一次”(you only look once,YOLO)等[5]. 文献[6-7]中将两段式检测方法Faster R-CNN加以改进,并应用于SAR图像舰船目标检测. 文献[8]提出一种R-CNN,应用上下文信息,将浅层位置特征和深层语义特征相结合,从而提高检测效果. 文献[9]采用密集连接的多尺度神经网络解决了多尺度和多场景SAR图像舰船检测问题.
上述方法均是基于锚框(anchor box)的检测方法,由生成的特征图上的这些锚框滑动提取n个候选矩形框做进一步的分类和回归. 然而对于大场景SAR图像中的舰船目标检测,仍然存在一些问题. 首先大场景SAR图像中目标所占比例较小,通常情况下大部分区域为背景区域,逐像素检测会产生很多虚警,同时浪费计算资源[10];其次,大场景SAR图像背景复杂,尤其是港口附近,码头和岸上建筑物对舰船目标的检测干扰十分严重;同时,当舰船密集停靠时,不同舰船的锚框候选框重叠区域很大,在非极大抑制(non maximal suppression, NMS)操作下,部分目标被遗漏,难以实现目标区分. 这使得现有检测算法很难有效检测和定位所有舰船目标,尤其是密集排列舰船目标[11].
针对上述问题,本文提出一种基于CenterNet[12]的SAR图像舰船目标无锚框(anchor free)检测方法.在进行海陆快速分割的基础上,采用CenterNet无锚框检测器,将目标建模为一个点,并通过关键点估计来定位目标的中心点,最后由中心点的信息回归得到目标边界框来实现目标检测. 相较于基于锚框的检测方法,该方法无需NMS,从而有效避免了基于锚框的检测方法可能存在的漏检问题.
基于目标中心点回归的大场景SAR图像舰船检测方法主要包含两个环节:一是海陆快速分割,实现陆地区域的部分筛除,减少内陆区域对舰船目标检测的干扰,同时减少计算资源的浪费;二是基于CenterNet的舰船目标检测,实现不同环境下的舰船精确检测. 检测方法整体流程如图1所示.
图1 大场景舰船检测方法流程图Fig. 1 The overall flowchart of the proposed ship detection method in large scene images
大场景SAR图像尺寸较大(超过一百万像素),一般不能直接输入到现有的神经网络中. 同时舰船目标所占比例较小且稀疏分布,更多为背景区域. 将不含目标的背景区域送入繁重的检测器极大增加了神经网络的计算负担[13].
海陆快速分割,是指将确定不含有舰船目标的远岸全陆区域筛除. 若切片中含有部分海域,将其分类为海域,用于后续的舰船目标检测. 首先对大量SAR图像切片(400×400)进行海陆快速分割,图2展示了不同尺度下选取不同阈值对于检测精确率(图2(a))和检测准确率(图2(b))的影响. 可以看出,检测切片边缘40×40的像素(高度和宽度的10%)以像素值的60%为阈值,可以很好地将海域切片和陆地切片分类,且效率最高.
图2 不同尺度和阈值条件下的交叉验证结果Fig. 2 Cross validation results with different scales and thresholds
这种结构具有两个优点:1)目前其他的海陆分类方法都需要数据集来进行训练[14-15],而海陆快速分割步骤可以筛选出非候选区域,无需训练和大量计算. 许多区域中没有有效的目标,将其切除不需要后续的特征提取和分类检测,大大提高了检测速度和准确性. 2)大而复杂的背景区域可能会导致更多的虚警,通过海陆快速分割首先将这些虚警过滤掉. 如陆地建筑区域具有与舰船相似的像素特征,即使海陆粗分类未正确分类,后续检测器还会对最终的测试结果进行校正.
首先对切片进行二值化处理(式(1)),并检测切片边缘40×40像素.
式中,ui,j为图像二值化后位置(i,j)处的像素值. 只要Ti=1,切片即被判定为海域切片,否则被判定为陆地切片,且不会输入到检测器中.
海陆快速分割结果示例如图3所示,(a)为纯海域切片;(b)为港口区域,既含有陆地又含有海域;由于港口位置可能有舰船的存在,其被判定为海域;(c)为纯陆地切片,由于不含有舰船目标,因此判定为陆地切片,并且不送入后续的检测器.
图3 海陆快速分割示例Fig. 3 Example of fast segmentation of land and sea
本文采用CenterNet来检测舰船目标. CenterNet将目标建模为一个点,只需为每个目标提取一个中心点,无需进行分组或后处理,可以有效解决密集停靠的舰船检测问题[12].
1.2.1 损失函数
本文目标检测方法和传统基于锚框的检测方法不同,损失函数分为三个部分:关键点估计的损失函数Lk,下采样造成偏移的损失函数Loff和目标尺寸估计的损失函数Lsize. 总的损失函数如下:
关键点估计的损失函数Lk为
式中:N是输入图像I中关键点的数量;Yxyc=是生成热图的高斯核,σp是目标尺度自适应标准偏差;α和β是focal loss的超参数,α=2和β=4.
1.2.2 基于中心点回归的目标检测
目前大多数目标检测器会列出潜在目标位置,并对每个目标进行分类. 这种类型方法严重依赖于计算量大的超参数(例如锚框和阈值)的设计,同时需要后处理即NMS来获得最终的检测结果,但这种后处理很难进行区分和训练. CenterNet用边界框的中心点来表示目标,通过关键点估计找到中心点,并利用中心点位置特征来获取目标的大小信息,无需预先设置锚框,大大减少了网络参数和计算量.CenterNet将图像输入到全卷积网络以生成热图,然后进行筛选以获取最终的目标中心点. 峰值处的图像特征可以预测目标边界框的长度和宽度. 基于中心点检测舰船目标的实现原理如图4所示,其中DLA为全层卷积网络深层聚合.
图4 基于中心点检测舰船目标Fig. 4 Detecting ship targets based on the center point
假设I∈RW×H×3是一宽度为W、高度为H的图像,将其输入网络DLA-34[16]后获得服从∈[0,1]WR×HR×C分布的关键点热图,其中R是输出步长,C是关键点类别数量,且R=4,C=1.=1对应于检测到的中心点;=0则 表示背景. 如果 (x1,y1,x2,y2)是目标边界框的位置信息,则其中心点. 从中心点的位置信息可以获得目标的其他信息,通过预测所有中心点并进行回归从而获得目标大小. 中心点的值用作其置信度信息,其位置的回归用于获取边界框的大小. 位置坐标为
针对大场景SAR图像舰船目标检测问题,本文采用基于CenterNet网络结构的方法来实现海陆快速分割及舰船目标精确检测. 为验证该方法性能,利用公共数据集SAR-ship-Dataset进行实验,并将该方法与当前SAR图像舰船目标检测方法进行比较,以验证本文所提方法的有效性;最后又对该方法在大场景中的有效性进行验证.
SAR-ship-Dataset是中国科学院发布的多源、多模式SAR船舶数据集[17]. 它包含102张高分3图像和108张哨兵1号图像,在43 819张切片中共包含59 535只舰船. 与之前普遍使用的公开数据集SSDD[7]相比,原始SAR图像的信息更加丰富,具有多种分辨率、多种舰船场景和极化模型,且数量上远远多于SSDD数据集的1 160张. 这些信息为基于神经网络的SAR图像舰船目标检测提供了更有利的条件.
对于大场景SAR图像中的舰船目标检测,应用哨兵1号中一些具有不同极化方法VV和VH的典型切片,大场景SAR图像的原始像素值分别为12 556×6 652和10 633×7 007.
为评估网络的检测性能,按照COCO数据集上的评估协议,将平均精度(average precision, AP)中的Pa,50,Pa,75,Pa,Pa,m和Pa,1用作指标,其中Pa,m表示中等目标的平均精度. 因为仅检测一种类别舰船,所以所有目标的平均精度MAP=AP,最重要的指标是pa,50.精度(precision)定义为
召回率(recall)定义如下:
式中:nTP是正确检测到的舰船数量;nFP是虚警的舰船数量;nFN是漏检的舰船数量.
平均精度MAP定义为
首先将数据集按照8:1:1的比例随机划分为训练集、验证集和测试集. 网络输入分辨率为512×512,为所有图像产生128×128的输出分辨率. 同时使用随机翻转、随机缩放(介于0.6~1.3)、裁切和颜色抖动的操作来增强数据,Adam操作用于优化总体目标.学习速率设置为1.25×10−4,批处理大小设置为16,迭代次数设为100次. CenterNet检测网络的主干使用DLA网络,其是具有分层跳过连接的图像分类网络,使用迭代深度聚合来增加特征图的分辨率. 该文中同时使用可变形卷积替代上采样层中的原始卷积,使用ImageNet预训练初始化DLA-34的下采样层,而随机初始化上采样层. 该文方法可在Intel Core i7-6700HQ CPU和Nvidia Geforce GTX 1080Ti GPU的电脑上利用pytorch 0.4.1,CUDA 9.0和CUDNN 7.1实现.
为充分测试本文所提方法在SAR图像舰船检测上的性能,本节实验将从普通场景和大场景SAR图像两个方面加以验证. 普通场景实验所用SAR图像尺寸较小,包含背景较为简单的海域以及背景比较复杂的港口区域;大场景实验所用SAR图像像素个数近亿,并包含陆地、港口和海面区域.
2.4.1 普通场景SAR图像舰船检测结果与分析
在舰船检测实验中,将基于CenterNet的SAR图像舰船目标检测方法与现有方法,如Yolov3、SSD、改进Faster R-CNN等进行比较[18],结果如表1所示. 将CenterNet用于SAR图像舰船目标检测后的MAP达到92.4%,高于目前最优的检测方法. 图5所示为Yolov3及CenterNet对真实地物信息检测结果与真实场景的对比结果. 可以看出,以图5(a)中的舰船目标为参考,图5(c)中CenterNet在海面上舰船目标的检测中有良好的检测结果,有效减少了虚警和漏检.
表1 不同方法检测性能对比与统计Tab. 1 Comparison and statistics of different methods detection performance
图5 海面舰船目标检测结果Fig. 5 Ship target detection results in sea area
同样值得一提的是,随着网络结构的深化,具有较少目标像素的小型舰船目标可能会丢失. 原因是CNN方法在卷积过程中需要大量下采样以减少冗余,并减少计算量. 该文中CenterNet方法只需要进行4次下采样,更有利于小型舰船目标的检测. 图6所示为CenterNet对近岸密集停靠舰船目标舰船检测结果与真实场景的对比结果. 可以看出,CenterNet对于岸边密集停靠的舰船有良好的检测结果. 这是因为CenterNet将目标建模为中心点,回归得到边界框,无需NMS.
图6 近岸密集停靠舰船目标CenterNet检测结果Fig. 6 CenterNet target detection results of densely docked ships near shore
在公开数据集SAR-ship-Dataset上对本文所使用神经网络CenterNet进行验证,结果如图7所示. 可以看出,看出本文的神经网络在新的数据集上仍有较好的检测效果,再次验证了本文方法的有效性.
图7 数据集SAR-ship-Dataset中的CenterNet检测结果Fig. 7 CenterNet test results in the dataset SAR-ship-Dataset
2.4.2 大场景SAR图像舰船检测结果与分析
该文将海陆快速分割和CenterNet神经网络级联成一个网络框架,用于大场景SAR图像的舰船目标检测. 利用哨兵1号切片对CenterNet与Yolov3方法在大场景舰船的检测性能进行比较,结果如表2所示. 表3为海陆快速分类的效果,表中Pre表示是否海陆快速分割. 从表2和表3可以看出,该文所提出的方法对于大场景SAR图像中的舰船检测是有效的. 海陆快速分割使得检测精度提高了约10%,Centernet使得检测精度提高约4%. 与其他大型模型(例如ResNet-101)相比,DLA-34使得网络的推理时间更少,且提取的用于检测的特征更加强大.
表2 CenterNet与Yolov3方法在大场景舰船检测性能的比较Tab. 2 Comparison of CenterNet and Yolov3 on large scene ship detection performance
表3 海陆快速分割的效果Tab. 3 Effects of partial land and sea segmentation
本文所提方法在沿岸或其他更复杂的场景中也具有很好的性能. 沿海地区的许多明亮区域与舰船目标相似,会引起严重的虚警问题;其次内陆地区的居民区也造成了一些干扰. 对于舰船目标,内陆地区的检测会造成计算资源的浪费. 本文采用海陆快速分割和CenterNet神经网络结合的方法对尺寸为12 556×6 652大场景的陆地区域和近岸区域进行检测,结果如图8所示,中间部分为实际场景. 上部是应用Yolov3网络且没有海陆预分类的检测结果,可以看出陆地区域和近岸区域有许多虚警;下部是海陆快速分割和CenterNet神经网络结合方法的检测结果,从放大区域的对比可以看出,陆地上虚警大大减少,近岸区域的虚警也相应减少. 由于大场景SAR图像的尺度很大,目标所占比例很小,陆地区域多,海陆分割是必要的,不仅可以减少计算量,提高检测速度,还可以有效减少内陆地区的虚警.
图8 本文方法对12 556×6 652大场景SAR图像的检测结果Fig. 8 Detection results in large scene SAR images with size of 12 556×6 652
图9为尺寸为10 633×7 007大场景SAR图像应用本文方法对舰船的检测结果. 从图中放大的两个部分可以看出本文所提出的方法在近岸及远海区域都有很好的检测效果.
图9 本文方法对10 633×7 007大场景SAR图像的检测结果Fig. 9 Detection results in large scene SAR images with size of 10 633×7 007
以上实验结果表明,对于大场景SAR图像中的舰船检测,本文方法在检测性能和检测效率上均具有优势,在一定程度上解决了大场景SAR图像舰船目标检测输入图像尺寸过大、计算量大以及虚警多的问题.
为解决大场景SAR图像中的舰船检测问题,首先提出了一种海陆快速分割方法,将大场景SAR图像切片解决了神经网络中输入尺寸过大,背景区域较多产生计算资源浪费的问题. 随后将候选切片输入CenterNet网络中进行目标检测. CenterNet与基于锚框的方法不同之处在于:它通过关键点估计来定位目标的中心点,从而可以有效减少在大场景SAR图像中遗漏舰船目标的情况. 同时CenterNet无需NMS,对近岸区域密集停靠的舰船目标有很好的检测效果.
在SAR-ship-Dataset上的实验结果表明,该方法在SAR图像舰船检测中MAP达到了92.4%,证明该方法比其他现有舰船检测方法(Faster R-CNN,SSD,YOLO等)具有更好的性能,可以有效减少虚警. 但对于复杂的背景,需要进一步的分析和研究.