APP下载

基于Faster R-CNN算法的船舶识别检测

2020-03-23杨亮亮牟向伟樊晓伟杨海峰

关键词:检测器边界卷积

崔 巍, 杨亮亮, 夏 荣, 牟向伟, 樊晓伟,2, 杨海峰,2

(1.大连海事大学 航运经济与管理学院,辽宁 大连 116026; 2.重庆市电力公司 发展策划部,重庆 400141)

从卫星图像中检测出船舶图像,提取大量的有用信息,对港口监测、海洋运输、捕鱼监管以及军事战争等有着重要意义。合成孔径雷达(synthetic-aperture radar,SAR)系统在识别船舶领域具有独特的优势[1-3],受到世界各国的青睐和重视[4]。然而,SAR图像的分辨率低,目标缺乏纹理和颜色特征,难以对多目标进行检测。

随着计算机技术的发展,深度学习算法已经被广泛学习与使用,并取得瞩目的成效。近年来,卷积神经网络(convolutional neural network, CNN)在物体分类和检测方面表现出色。CNN的结构首先由文献[5]提出,为一种功能学习体系结构,包含卷积层和最大池化层。 CNN的每个卷积层使用几个不同的卷积核在来自前一层的局部感受视野上生成特征映射,其输出层结合提取的特征进行分类,通过池化层减少特征映射的大小,提取的特征变得更加全局和复杂。文献[6-8]研究表明,CNN可以在物体检测和分类中取得有效的结果。然而,直接将CNN与滑动窗口策略相结合难以精确定位对象[9]。为了解决上述问题,研究者用基于区域的CNN(region-based convolutional neural network,R-CNN)[10]、空间金字塔池化网络(spatial pyramid pooling networks,SPP-Net)[11]及快速区域卷积神经网络(fast region-based convolutional neural network,Fast R-CNN)[12]来改善对象检测性能,但区域提议生成步骤所消耗的计算时间太多。文献[13]进一步改进了Fast R-CNN,并开发了更快速的区域卷积神经网络(faster region-based convolutional neural network,Faster R-CNN),实现了对物体进行高精度实时检测。

目前,将Faster R-CNN用于卫星图像船舶检测的研究报道很少。本文使用该算法进行船舶检测识别。实验结果表明,Faster R-CNN能够精确识别船舶,准确率高达0.967,并且具有精确识别多目标、算法花费时间少、收敛速度快等优点。与传统尺度不变特征转换(scale-invariant feature transform,SIFT)[14]算法、Fast R-CNN算法相比,Faster R-CNN在精确程度和收敛速度上都更优,在船舶识别方面具有很大的潜力。本文旨在研究应用Faster R-CNN从卫星图像中识别船舶,丰富船舶识别方法。

1 Faster R-CNN概述

Faster R-CNN已经在许多领域实现了多类别对象检测的最新性能,例如, SPP-Net在深度卷积网络中的视觉识别[11]。Faster R-CNN的舰船识别框架如图1所示。

图1 基于Faster R-CNN的舰船识别框架

1.1 Faster R-CNN架构

Faster R-CNN体系结构[12-13]如图2所示。

Faster R-CNN是用于对象检测的单一统一网络,由2个模块组成:模块1,区域提议网络(region proposal networks, RPN);模块2,Fast R-CNN探测器。RPN是一个完全卷积网络,属于模块1,可同时预测每个位置的对象边界和对象分数,即每个区域提议都由该区域的分数和边界框坐标2个部分组成,这些提议将被输入模块2中。Fast R-CNN探测器用于区域提议分类与计算得分。Faster R-CNN将RPN和Fast R-CNN通过共享其卷积特征进一步合并为1个网络,并且允许它们进行联合训练。由于共享卷积层,有可能使用非常深的网络,例如VGG-16模型[15],来生成高质量的对象提议。

图2 Faster R-CNN的体系结构

1.2 Fast R-CNN检测器

Fast R-CNN检测器将多个感兴趣区域(region of interest, ROI)作为输入。每个ROI(参见图2)都由1个四元组(r,c,h,w)表示,其中(r,c)表示左上角,而(h,w)则代表高度和宽度。ROI 池化层使用最大池化(max pooling)将ROI区域转化成固定大小为H×W的特征图(H、W为特定ROI层的超参数)。ROI 池化层从卷积层提取1个固定长度的特征向量,每个特征向量被送到全连接层的序列中。检测器通过softmax层和边界框回归层的最终输出为:① 估计超过k个对象类与“背景”类;② 相关边界框值的softmax概率。 本文k取1,即对象类只包含客体“船舶”与“背景”类。

1.3 RPN和联合训练

当使用RPN从卫星图像预测船舶建议时,RPN以卫星图像作为输入,并输出1组矩形区域提议(即边界框),每个提议均具有无目标得分。本文中,具有13个可共享卷积层的VGG-16模型被用作Faster R-CNN卷积后端。

RPN利用最后共享卷积层输出的卷积特征映射上的滑动窗口为每个位置生成矩形区域提议[13],如图3所示。

图3 区域提议网络

将n×n个空间窗口(滤波器)与输入卷积特征映射进行卷积,每个滑动窗口投影到1个较低维度的特征(对于VGG-16,为512维)。对于1个边界框回归层(reg-layer)和1个边界框分类层(cls-layer),分别用2个1×1滤波器进行卷积,其中回归层用于预测提议区域的中心锚点对应的坐标(x,y)和宽高(w,h),分类层用于判定该提议区域是前景还是背景。对于每个滑动窗口位置,在分类层中生成k个可能的提议(即文献[15]中的锚点),而且在每个滑动窗口的位置上,RPN 都可以根据k个固定比例的锚点框生成多个可能的区域。分类层输出2k个对象得分,用于估计每个提议包含船舶或非船舶对象的概率;同时在回归层生成4k个输出,用于编码k个边界框的坐标。

由于许多提议高度重叠,采用非最大抑制(non-maximum suppression,NMS)合并具有较高交集的提议。交并比(Intersection over Union,IoU)定义了2个框的重叠度,如图4所示。

图4 矩形框演示

矩形框A、B的重合度IoU设为M,其计算公式为:

(1)

为了训练RPN,每个提议被分配一个二进制类别标签,该标签判断该提议是对象(即船舶)还是背景。若提议与目标窗口(ground truth, GT)的IoU值超过预定义阈值(文献[13]中取0.7),则判断为前景(即有船舶目标);若提议与GT的IoU值不大于预定义阈值0.7,则对IoU进行排序,选取最大值所对应的提议,将其判断为前景;若提议与所有标注框的最大IoU值都低于预定义的阈值(文献[13]中取0.3),则判断为背景。在Fast R-CNN中多任务丢失后,RPN通过多任务损失(multi-loss,mloss)函数进行训练,其定义为:

(2)

(3)

(4)

其中,R为鲁棒损失函数smoothL1,其定义为:

(5)

边界框回归就是找到最接近GT的锚箱(anchor box)。锚的4个坐标参数化描述如下:

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

tw=log(w/wa);th=log(h/ha);

其中,(x,y)、w、h分别为边界框的中心坐标、宽度及高度;x、xa、x*分别代表预测框、锚点框及GT框的x值。类似的定义适用于y、w、h。

边界框回归是通过在特征图上使用具有相同空间大小的特征来实现的。训练1组边界框回归器以适应不同图片的大小。

由于RPN和Fast R-CNN检测器可以共享相同的卷积层,因此可以通过联合训练来学习统一网络,步骤如下:① 训练RPN;② 使用RPN产生的建议来训练检测器网络;③ 由检测器网络初始化RPN训练,但仅训练RPN特定层;④ 使用新RPN的建议来训练检测器网络。

2 实 验

2.1 基于Faster R-CNN的船舶检测识别

实验所用1 000张原始图片来自谷歌卫星地图和百度卫星地图,每张图片的尺寸在400×400像素点到600×600像素点之间,主要的背景为不同的海域以及船舶停靠的码头沿岸。为了防止过拟合,需确保数据集包含以下类型的数据:① 来自不同海域;② 只包含1艘船舶;③ 包含多艘船舶。实验使用VOTT软件进行图片标注,部分船舶样本与标注样本如图5所示。

图5 数据集示例

为了有效训练Faster R-CNN模型,使用30个RPN,L2正规化权重设置为0.000 5;将每个minibatch学习的momentum设置为0.9, momentum为梯度下降法中常用的加速技术;用于丢弃重叠预测边界框的NMS阈值设置为0.8,NMS阈值越高,删除的预测边界框越多,因此最终输出的边界框越少;通过翻转每个其他时期的所有图像来增加训练数据,即第1个时期包括所有常规图像,第2个时期包括所有图像翻转,等等;确定从输入到卷积特征映射的卷积层被训练或固定;训练期间使用的中央处理单元(central processing unit,CPU)处理器为i7四代处理器,图像处理单元(graphics processing unit,GPU)处理器为Nvidia GTX 960;训练轮次为55。

实验分为如下2个部分:① RPN使用CNN生成提议,其本质是使用滑动窗口,RPN针对提议端到端训练,并能够同时预测对象的边界和分数;② Fast R-CNN检测器通过softmax层和边界框回归层得到最终输出。

mloss函数曲线如图6所示,部分图片测试结果如图7所示,船舶识别准确率为0.967。

由图6可知,随着训练轮次加大,mloss函数值逐渐减少,在12轮训练后在0.18上下振动,达到收敛。

图6 Faster R-CNN多任务损失函数曲线

图7 由Faster R-CNN得到的部分图片测试结果

从图7可以看出,采用Faster R-CNN算法识别不同状态、不同海域的船舶时,精度非常高,多目标检测效果好,绝大部分的检测概率在90%以上。

2.2 实验对比

(1) 与SIFT算法的对比。SIFT是一种基于电脑视觉算法来侦测与描述影像中局部特征的传统算法,它通过在空间尺度中寻找极值点,提取其位置、尺度及旋转不变量,应用范围包括物体辨识、影像缝合、手势辨别等。

由SIFT得到的部分图片测试结果如图8所示。从图8可以看出检测结果较差,在干扰物相对较多或图片相对模糊时,出现错误检测、未发现等情况。

(2) 与Fast R-CNN算法的对比。采用与Faster R-CNN算法相同的参数集和数据集进行模型训练,实验得到mloss函数曲线如图9所示,识别准确率为0.546。从图9可以看出,在15轮训练后,mloss函数值达到收敛。对比分析图6、图9可知,与Fast R-CNN算法相比,Faster R-CNN算法有更快的收敛速度;对比2种算法识别准确率可知,Faster R-CNN有更好的识别精度。

从实验结果分析可知,与传统SIFT算法相比,Faster R-CNN算法识别精度更高;与 Fast R-CNN算法相比,无论是收敛速度还是识别精度,Faster R-CNN算法更加高效。

图8 由SIFT得到的部分图片测试结果

图9 Fast R-CNN实验mloss函数曲线

3 结 论

本文使用Faster R-CNN算法进行船舶检测识别,并与传统SIFT算法和Fast R-CNN算法进行对比。研究结果表明,Faster R-CNN算法可以实现更高效的船舶识别,在船舶识别方面具有很大的潜力。

另外,研究中发现,由于夜晚或下雨天卫星图像中海上环境和船舶的颜色相似,Faster R-CNN算法对此类图像识别精度不高。后续的研究需进一步改进Faster R-CNN算法,将其与跟踪算法相结合,对模糊环境下卫星图像中的船舶进行检测。

猜你喜欢

检测器边界卷积
守住你的边界
拓展阅读的边界
基于3D-Winograd的快速卷积算法设计及FPGA实现
探索太阳系的边界
基于交通诱导的高速公路交通检测器布设方案研究
意大利边界穿越之家
卷积神经网络的分析与设计
从滤波器理解卷积
基于二次否定剪切选择的入侵检测方法*
基于傅里叶域卷积表示的目标跟踪算法