基于卷积神经网络的SAR图像舰船目标检测

2018-09-27 11:36李健伟曲长文彭书娟
系统工程与电子技术 2018年9期
关键词:舰船卷积准确率

李健伟,曲长文,彭书娟,邓 兵

(海军航空大学,山东烟台264001)

0 引 言

合成孔径雷达(synthetic aperture radar, SAR)是一种全天时全天候提供高分辨率图像的主动式传感器,自面世以来,在民用遥感、测绘和军事侦察领域得到了广泛的应用。由于军事应用的需要,SAR图像中舰船目标检测得到了大量研究[1-2]。舰船检测可以分成3个步骤:预处理、候选区域提取和鉴别。恒虚警处理 (constant false-alarm rate,CFAR)是用于候选区域提取的常用的方法,可以对潜在的舰船区域进行提取。它首先对杂波进行统计建模,之后根据虚警率得到判定的门限值,将高于门限的像素点视为舰船像素,低于门限的视为背景。鉴别一般是采用人工设计的特征,训练分类器进行二分类来实现。可以用于鉴别的特征除了简单的长度、宽度、长宽比和散射点位置等特征外,从计算机视觉领域引进而来的特征也是常用的方法,且具有更强的鲁棒性。例如,2004年Viola和Jones开创性地提出的人脸检测器[3],被广泛地用于各种应用场景。该检测器包括3个步骤:积分图像特征、AdaBoost分类器和级联结构,这3个步骤使其检测速度和准确率能够达到很高。自此之后,针对该方法的改进层出不穷,主要侧重要两方面,即设计更好的特征和设计更好的分类器。在特征方面,涌现出了方向梯度直方图(histograms of oriented gradient,HOG)、加速版的具有鲁棒性的特征(speeded up robust features,SURF)、局部二值模式(local binary patterns,LBPs)等新特征[4]。在分类器设计方面,提出了Boosting,支持向量机(support vector machines,SVM)及其改进版本[5-6]。这两种思路在过去几十年促使着这个领域继续前进。但是,自从2012年深度学习技术的兴起[7],基于深度学习的目标检测技术主宰了这个领域。因此,也非常有必要将基于深度学习的目标检测技术应用到SAR图像舰船目标检测中。

2012年,AlexNet赢得了ImageNet大赛图像分类的冠军之后,神经网络迎来了它的另一次复兴[7]。之后出现的ZF-Net、VGG-Net、GoogLeNet和ResNet等一次又一次地刷新着分类比赛的记录[8],引领人工智能的新一次浪潮。与此同时,Ross 和 Kaiming[9]将卷积神经网络(convolutional neural network, CNN)应用到目标检测任务。他们提出了一系列有效的目标检测算法,也刷新着目标检测竞赛的记录,并在自动驾驶、智能安防、侦察遥感等领域得到了快速的应用。这些算法包括R-CNN、SPP-net、Fast R-CNN和Faster R-CNN[10-12]。尤其是Faster R-CNN在各个领域均取得了非常好的检测效果。

本文建立了一个专门用于SAR图像舰船目标检测的数据集(SAR ship detection dataset,SSDD),下载链接为https:∥pan.baidu.com/s/1dF6g3ZF。该数据集含有多种成像条件下的舰船SAR图像,可以作为该领域研究人员用于评估其算法的一个基础。在这个数据集的基础上,提出了一些方法来提升检测的准确率和速度,包括特征聚合、迁移学习和损失函数设计等,最后通过一系列对比实验验证了所提方法的在检测准确性和效率的优越性。

1 基于CNN的目标检测技术

Ross 首次将CNN用于目标检测领域提出了R-CNN[9],该方法在目标检测领域取得了非常好的效果,证明了深度学习用于目标检测的有效性,如图1(a)所示(图中Selective search是提取候选区域的一种方法)。该方法有两个步骤:产生与类别无关的候选框和训练分类器对候选框进行分类。每幅图像大概会产生2 000个候选框,每个候选框都需输入CNN进行特征提取,导致后续计算复杂。为了解决这个问题,SPP-net[10]和 Fast R-CNN[11]先后被提出,如图1(b)所示。这两种方法只将整幅图像输入CNN一次来提取特征,然后将候选区域映射到最后的特征图上,而不需对每个候选窗口都进行CNN处理,极大地减小了处理时间。Fast R-CNN是在SPP-net基础上的改进,用一个空间金字塔池化(spatial pyramid pooling, SPP)层来将不同尺寸的候选窗口变成固定长度的特征,用于训练后面的分类器,这使其可以进行端到端的训练(CNN模型在ImageNet进行了预训练)。Fast R-CNN另一大亮点是将分类和回归任务放在一个损失函数里进行联合优化,达到了非常好的效果。但是,候选区域提取模块仍然是独立于CNN的,这是对算法进一步提升的最大的瓶颈。

为进一步对检测器进行加速,文献[12]提出了Faster R-CNN,如图1(c)所示。它包括两个模块,第一个是全卷积网络产生候选窗口,称为区域候选网络(regional proposal network,RPN)。第二个是Fast R-CNN检测器,它的任务是对RPN产生的候选窗口进行分类和位置微调,由于RPN和Fast R-CNN共享了卷积层,这大大减小了算法的计算量,可以达到实时检测。R-CNN、Fast R-CNN和Faster R-CNN的算法原理以及处理效果如图1所示。

图1 R-CNN、Fast R-CNN和Faster R-CNN的算法原理以及处理效果Fig.1 Principle and result of R-CNN, Fast R-CNN and Faster R-CNN

Faster R-CNN得到了极大的关注,让自动驾驶、智能安防和遥感侦察等领域的研究人员看到了实时检测目标的可能性。Faster R-CNN在通用目标检测(例如光学图像中的人、车、动物等)领域取得了很好的效果,它的RPN模块起到了主要的作用,如图2所示。RPN在经典CNN模型之后会有一个3×3的全卷积层。它利用不同尺度和长宽比下的矩形框(本文称为anchor)来实现不变性(旋转不变和尺度不变)。anchor 是指在卷积特征图上得到的不同尺寸的矩形框。文献[12]在特征图的每个位置会有9个anchors,即包括3种不同的尺度和长宽比。假定卷积特征图的尺寸是W×H,那么anchor的个数就为W×H×k个。由于RPN与Fast R-CNN共享卷积运算,所以Faster R-CNN算法可以在0.2 s检测完一幅图像,图2中,CNN结构为VGG-16,RoI代表感兴趣区域(region of interest,RoI)也就是候选窗口。

图2 Faster R-CNN和RPNFig.2 Faster R-CNN and RPN

Faster R-CNN利用VGG-16模型,在通用目标检测数据集PASCAL VOC 2007 和 2012上分别具有73.2%和70.4%的平均准确率,在TITAN X GPU上速度达到5 fps。Faster R-CNN的极大成功显示了深度学习用于目标检测的巨大的潜力。

尽管Faster R-CNN在上述多类目标数据集取得了很好的效果,但其在SAR图像舰船检测效果却差强人意,笔者认为主要有以下几个原因。

(1)Faster R-CNN是在PASCAL VOC等数据集取得了非常好的效果,它可以检测到人、车、动物等目标。这些物体通常会占据图像的大部分空间,但是在SAR图像舰船目标检测领域,船在图像中包含的像元数目相对较少,而Faster R-CNN却不擅长检测这样的物体。本质原因是RoI池化层仅仅从最后一个特征图采样得到特征,而CNN的特征图越往后其特征越利于分类但空间信息损失严重,因此其难以预测小尺寸的物体类别及其边框。

(2)由于成像原理的不同,SAR图像与普通光学图像差别较大。从ImageNet数据集(全是光学图像)学习到的特征不一定适用于SAR图像。因此,将ImageNet数据集预训练得到的特征迁移到本领域,不见得会适用,除非只迁移CNN前几层低级的特征,大部分特征从SSDD数据集中去学习,才会有较好的效果。

(3)由于两类数据集的不同,Faster R-CNN很多细节需要做适应性的改变才能适应SAR舰船目标检测领域,例如anchor的个数等。

针对以上问题,下文在第3节对Faster R-CNN进行适应性改进,使其能够克服上述3个问题。

2 SSDD

深度学习目标检测最基本的要求是要用一个规模较大的数据集。因此,建立了SSDD,其可以用于训练深度学习模型,用于研究人员在这个统一的数据集去评价他们算法的性能,据笔者所知这是本领域第一个公开的数据集。对于每条船,检测算法会预测目标的边框以及是舰船目标的可能性。笔者模仿PASCAL VOC[13]数据集构造了SSDD,按照7∶2∶1的比例将数据及分成训练集、测试集和验证集,SSDD尽量包含了多种成像条件,例如不同分辨了、尺寸、海况和传感器类型等。数据集样本的多样性使训练出来的检测器具有更好的鲁棒性。

图3是SSDD中每幅图像舰船个数的统计结果,NoS (number of ships)表示船的个数,NoI(number of images)表示图像个数。

图3 SSDD中NoS 和 NoI相应的关系Fig.3 Relationship between NoS and NoI in SSDD

在SSDD数据集中,一共有1 160幅图像和2 456艘舰船,平均每幅图像有2.12艘船。后续根据任务需要会增加样本个数,扩充数据集。相比于有9 000多幅图像、20类目标的PASCAL VOC数据集,SSDD足够大到可以对舰船这一类目标进行训练检测器。图4是SSDD中舰船的多样性,从左到右,从上到下依次是1 m分辨率的靠近码头的船、开阔海域的7艘船、靠近码头的舰船、 15 m分辨率的开阔海域的八艘船、靠近岸边的两条船、1 m分辨率开阔海域船。

图4 SSDD的部分样本Fig.4 Samples of SSDD

由于一些小船在低分辨率下只有极少量的像素个数,有时很难通过人眼确定是不是船。因此,将像素个数大于3个的视作船的像素,并对其做标注。标注所用的是开源软件“labelimg”,该软件很容易就能对船做标签(x,y,h,w),其中,(x,y)是舰船所在矩形框左上角的坐标,h是矩形框的高度,w是矩形框的宽度。

3 基于CNN的SAR图像舰船目标检测

3.1 基于特征聚合的小尺寸目标检测

相比于PASCAL VOC数据集,SAR图像中舰船目标的尺寸普遍较小,且尺度变化较大,标准的Faster R-CNN算法无法较好地适应这些目标,尤其是容易漏掉小尺寸的目标。这是由于后几层的感受较大的原因,会忽略掉一些重要的特征导致漏检小目标的现象[14]。图5为本文所提出的检测方法的结构图:通过聚合不同层的特征,可以检测到不同尺寸的目标,这里将第3个卷积层和第5个卷积层的特征进行聚合。

在标准的Faster R-CNN中,5个卷积层后面会接修正线性单元(rectified linear unit, ReLU), 局部响应归一化 (local response normalization,LRN)和最大池化层。但是在我们的结构中最后的卷积层后只有一个ReLU激活层,因为RoI池化层具有了最大池化的功能。

图5 特征聚合示意图Fig.5 Feature concatenation

特征聚合包括标准化和1×1卷积,对每一个RoI池化之后的向量进行标准化,可以减小不同层之间的尺度差异,防止大特征主宰了小特征,这个改变使系统更加稳定,进一步增加准确率。L2标准化是针对池化之后的特征图的每个像素进行的,标准化之后对每个特征向量进行尺度变换:

(1)

(2)

(3)

在训练过程中,尺度因子γ的更新和输入x通过后向传播和链式法则计算,即

·γ

(4)

(5)

(6)

式中,y=[y1,y2,…,yd]T。

3.2 基于模型迁移的预训练

自然图像训练的深度神经网络都有一个现象:前几层学习得到的底层特征类似于Gabor滤波器,这些特征不是某个数据集或者任务独有的,而后几层学习到的高层特征会根据数据集或者任务的不同而不同[15]。实际上,大部分研究人员都不会从头训练卷积神经网络,他们在ImageNet预训练之后的模型进行微调,将预训练之后的模型视为初始化或者特征提取器。

ZF-Net[16]是Krizhevsky的AlexNet变体,它将第一个滤波器的尺寸从11×11 减到 7×7,将stride减到2,ZF-Net有5个卷积层和3个全连接层,基于以上分析,固定前3层,在SSDD数据集上精调后2层。利用的ZF-Net的结构如图6所示。

图6 基于ZF-Net的迁移学习Fig.6 Transfer learning based on ZF-Net

3.3 损失函数设计

为了训练这个网络,把以下两种RoI看做两种正样本:第一种是与目标真实边框(也称为ground-truth)有最高的交并比 (intersection over-union,IoU);第二种是与ground-truth的重叠高于0.7。把IoU低于0.3的视为负样本,其他的RoI不参与训练。基于以上分析,优化多任务损失函数[12]如下:

L({pi},{ti})=

(7)

tx=(x-xa)/wa,ty=(y-ya)/ha

tw=lg(w/wa),th=lg(h/ha)

式中,x,y,w,h分别代表边框中心的坐标、宽度、高度。

3.4 应用细节

采用非极大值抑制(non-maximum supression,NMS)来抑制那些冗余的框, 抑制的过程是一个迭代-遍历-消除的过程。首先,将所有框的得分降序排列,选中最高分及其对应的框;其次,遍历其余的框,如果和当前最高分框的重叠面积(intersection of union,IOU)大于一定阈值,就将框删除;最后,从未处理的框中继续选一个得分最高的,重复上述过程。

为了防止过拟合,将dropout比率从0.5改到0.6。dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃,dropout是CNN中防止过拟合的较好的方法[17]。对于anchor,利用面积为1282和 2562像素2种尺度,2种长宽比, 1∶2和2∶1(由于舰船目标没有正方形,所以去掉了1∶1的anchor)。由于SAR图像中的船是稀疏的,因此将每个特征点产生的anchor个数从9减到4个,这会加速本文算法而不会降低准确率;其他RPN超参数如文献[12]所示。利用精调之后的RPN,采用门限为0.7的NMS对候选区域进行滤除,去掉得分小于最大的那些。

难样本挖掘是指从RoI中选择容易检测错的样本,而不是简单的采样。在进行前向传播时,全部的RoI通过网络,根据损失值排序,后向传播时根据排序,选择前几个损失值最大的样本(容易出错的难例样本)来后向传播更新模型的权重[18]。难样本挖掘是提升检测器性能的有效的方法,需要做到就是收集那些难样本,将它们再一次送入网络训练。在训练过程中,将难样本的RoI进一步精调模型,提升结果会在下一部分进一步说明。

图7为几个典型的难样本,图7(a)是SSDD中第757个样本,高分辨率大尺寸,图7(b)是SSDD中第59个样本,低分辨率小尺寸。

图7 典型难样本Fig.7 Typical hard negative examples

4 实验结果

利用Caffe[19]框架在SSDD上去训练检测器,ZF-Net是基本架构,已在ImageNet进行了预训练,计算环境是64位Ubuntu 14.04操作系统,计算机CPU Intel(R) Core(TM) i7-6770K @ 4.00GHz×8 and NVIDIA GTX1080 GPU(8G 内存),用CUDA8.0和cuDNN5.0加速。

算法的衡量指标是平均准确率(average precision, AP)和平均处理时间。从表1可以看到,标准的Faster R-CNN在AP和平均处理时间上都有很大的优势。文中所提的方法将AP从70.1% 提高到了 78.8%,同时具有更少的时间开销。AP提高了是因为对特征的利用更加充分而了,处理速度更快了,是因为降低了anchor的个数。

表1 算法对比分析

随机选择一些不同情况下的检测结果进行分析,如图8所示。从图8中可以看出,本文方法不仅能对大片海域的舰船目标检测,同时也能够适应港口和近岸区域的舰船目标。且不需要传统方法的海陆分割、预处理、杂波建模和参数估计等过程,是完全端到端的,即输入图像直接通过模型输出检测结果。

图8 数据集SSDD部分样本检测结果Fig.8 Result of some samples in SSDD

为了进一步评估所提方法的性能,继续进行了一些实验,目的是验证第3节中不同策略的有效性。

表2中第4行显示了特征聚合对性能提升的效果,通过第3.1节中的特征聚合,本模型可以检测到不同尺寸的舰船,平均准确率从70.1% 提升到了76.4%,同时检测时间增加的非常小(15 ms)。表2中第5行进一步评估了迁移学习策略的性能,由于SSDD是一个关于舰船SAR图像的较小的数据集,它与通用目标数据集有较大的差别。如果将整个卷积层迁移过来,平均准确率为70.1%,如果将前3层卷积迁移过来,在SSDD数据集上微调后几层,平均准确率增加到74.3%,而检测时间几乎不变。难样本挖掘同样也使检测性能得到了提升,平均准确率从70.1%增加到了75.6%,同时,由于没有对模型进行改变,只改变了训练样本分别,所以只增加了训练时间,而检测时间未增加。对anchor和候选窗口个数的影响进一步做了实验,标准Faster R-CNN用的是9个anchors,我们去掉512×512尺寸和1∶1长宽比的anchor,实验结果可以发现,这降低了检测时间,但是平均准确率下降的很小。NMS稍微增加了平均检测准确率,测试时间没变。将dropout比率从0.5变到0.6,平均准确率增加了1.5%,但是如果增加到0.7性能会下降,这意味着所选的比率能有效地避免过拟合。最后结合上述所有的策略,本文所提的方法将检测准确率提升到了78.8%,如表2中第3行所示。

表2 进一步实验的结果

5 结 论

本文建立了用于舰船检测的SAR图像数据集SSDD,SSDD是目前为止我们所知的SAR舰船检测领域第一个公开的数据集,可以使研究人员在一个统一的条件下对比各自算法的性能,更具有可比性。在此数据集上,提出了检测SAR图像中舰船目标的方法,该方法以标准的Faster R-CNN作为基本结构,并在特征聚合、模型迁移、损失函数以及其他应用细节上进行了创新,在SSDD上的实验证明了所提算法具有更高的检测准确率和更少的耗时,检测准确率从标准Faster R-CNN的70.1%提升到78.8%,每幅图像处理时间从198 ms降低到183 ms。

本文方法使用的前提条件是需要收集大量的SAR图像舰船目标训练样本,且制作相应的标签用于模型训练,需要消耗较大的人力和物力。同时,本文所采用的基于深度学习的目标检测方法具有适应性和扩展性强的特点。适应性强是指不需像传统检测方法那样进行海陆分割、预处理等多个步骤,而是进行完全端到端的进行训练;扩展性强是指,通过收集新的样本可以完成对新样本的检测,不需要专门设计检测算法。笔者相信基于深度学习的目标检测方法会成为SAR图像舰船目标检测的主流方法。

猜你喜欢
舰船卷积准确率
舰船通信中的噪声消除研究
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
舰船测风传感器安装位置数值仿真
2015—2017 年宁夏各天气预报参考产品质量检验分析
卷积神经网络的分析与设计
从滤波器理解卷积
高速公路车牌识别标识站准确率验证法
基于傅里叶域卷积表示的目标跟踪算法