徐志京,孙久武,霍煜豪
上海海事大学 信息工程学院,上海 201306
随着航运业的发展,水运环境日益复杂,水路交通事故也在频繁发生。因此,基于计算机视觉的船舶目标检测已经应用到现代化的船舶监管系统。2017年,张雷等[1]提出了一种适用于高分辨率光学遥感图像的舰船检测方法,通过实现海陆分离并引入显著性模型,达到了较高的检测率。但有时只对船舶检测不符合船舶监管要求,还需要对目标进一步分类识别。
传统的船舶识别方法主要基于船舶的形状或船舶噪声等特征。张仲瑜等[2]针对红外舰船图像分别提取边缘信息特征、经过多级滤波处理后的特征以及局部灰度最大值特征,分别给它们赋予不同的权值,得出最终的特征融合图。刘许等[3]将图像RST不变性特征与船舶噪声的MFCC系数融合,实现船舶目标分类。传统的识别方法往往需要人工提取特征,并且计算复杂,识别率不高。随着深度学习的发展,利用卷积神经网络(convolutional neural network,CNN)进行目标识别成为研究的重点。2016年,赵亮等[4]利用卷积神经网络对船舶图像进行特征提取,取得了较高的识别准确率。2018年,赵春晖等[5]通过改进Faster-RCNN网络,使得识别率和识别速度有了很大的提高。2018年,Cho等[6]针对SAR图像提出了基于多个特征的卷积神经网络(multiple feature-based convolutional neural networks,MFCNNs),将多特征聚合后送到分类器识别,识别率有了明显的提升。2020年,乔丹等[7]采用卷积神经网络InceptionV3对船舶样本进行分类识别并引入迁移学习的思想避免网络过拟合,验证了该方法具有较强的泛化能力。
综上所述,利用深度学习的方式对船舶进行识别已经取得了不错的效果。但当前船舶种类繁多,同一类别又派生出许多不同的子类,使得船舶之间的差别微乎其微,对船舶进行更细致的识别成为一个重要的研究方向。近年来,国内外学者将细粒度图像分类[8]应用于目标识别领域。熊昌镇等[9]使用Faster-RCNN进行多尺度区域定位,然后将提取的多个尺度的特征进行组合并用SVM训练细粒度分类器,通过多个数据集验证了该方法的有效性。Zhang等[10]基于改进的RCNN进行细粒度检测,取得了良好的结果。胡志伟等[11]基于注意力机制与残差机制构建ARNet模型对番茄病害进行细粒度识别,通过多个测试验证了该模型的实用性。Fu等[12]提出了
RA-CNN(recurrent attention convolutional neural network)用于解决细粒度图像分类问题,并在多个细粒度数据集得到了较高的识别准确率。但是在船舶识别中,关于细粒度图像分类的研究较少,目前尚处于初级阶段。2019年,霍煜豪等[13]提出了一种改进的RA-CNN模型,将目标分类网络修改后,同时在定位网络APN(attention proposal network)对同一特征使用不同的先验矩形框来框取,形成一种单特征区域的船舶识别方法,最终在光电船舶图像集中取得了可观的效果。当前的细粒度方法大多只提取目标的单一特征,模型无法很好地利用全局信息,因此关于细粒度船舶图像识别的问题还有待研究。本文创新性地提出一种多特征区域与细粒度图像结合的船舶识别方法。即在RA-CNN的框架下,VGG-19[14]分类网络中引入SDP(scale-dependent pooling)[15]算法用于更好地提取特征信息,采用联合聚类(joint clustering)的方法生成一种多特征区域的定位网络(JCMR-APN)用于输出特征区域,同时在定位网络中引入特征区域优化,避免出现区域重叠率过高的现象。最后针对新的模型重新定义损失函数,从而提高模型的鲁棒性。
传统的RA-CNN网络主要由3个尺度层构成,每个尺度层中都包含两种不同的网络,分别为分类网络VGG-19和定位网络APN,每个尺度层的参数也不同。输入图像经过分类网络提取特征并进行分类,APN网络利用提取到的特征进行训练得到特征区域信息,然后将特征区域信息裁剪放大作为第二个尺度层的输入,如此反复3次就能得到3个尺度层的输出结果,通过融合不同尺度网络的结果判断细粒度图像的类别[16]。图1为传统RA-CNN网络船舶识别结构图。
图1 传统RA-CNN网络船舶识别结构图Fig.1 Traditional RA-CNN network ship recognition structure diagram
随着尺度层的变深,提取的单一特征会使得原来的网络无法很好地利用全局信息,从而导致识别率下降。针对这一问题,本文设计了RA-CNN网络与多特征区域融合的船舶目标识别新型网络。新型RA-CNN网络仍然保持原来的3个尺度层,但每个尺度层中的分类网络由VGG-19变成VGG-SDP网络,第一尺度层的定位网络APN变成JCMR-APN网络。图2为新型RA-CNN网络船舶识别结构图。
图2 新型RA-CNN网络船舶目标识别结构图Fig.2 New RA-CNN network ship target recognition structure diagram
在构建了新型RA-CNN网络之后,基于该网络的多特征船舶目标识别系统框图如图3所示。整个系统主要包含船舶图像数据集、预处理、新型RA-CNN网络三大部分,其中新型RA-CNN网络每个尺度均由VGG-SDP网络和相应的定位网络构成。船舶图像数据集经过预处理,将图像输送到训练好的新型RA-CNN网络,经过两部分网络的交叉训练,最后判断船舶的类别。
图3 多特征船舶目标识别系统框图Fig.3 Block diagram of multi-feature ship target recognition system
船舶图像预处理首先将输入船舶图像统一转换成224×224分辨率的船舶图像,然后根据式(1)将图像的每个像素值从[0,255]归一映射到[-1,1]之间。
新型RA-CNN网络的工作步骤如下:
(1)在第一尺度层,输入图像先经VGG-SDP网络v1提取特征,第5个池化层的输出P5将作为JCMR-APN网络的输入。
(2)JCMR-APN网络m1将根据P5生成的多个通道进行聚类,并选择合适的部分生成多个独立特征区域。
(3)v1网络选择多个特征区域中最小特征区域的像素个数N作为自适应池化准则的输入,挑选合适的池化层生成第一尺度的分类置信向量Y()1。
(4)评估多个特征区域之间的覆盖率,对区域进行调整。
(5)将调整好的特征区域截取并放大作为下一尺度层的输入。
(6)将第(5)步的特征输入到第二尺度层的VGGSDP网络v2进行特征提取,重复步骤(2)、(3),生成第二尺度的分类置信向量Y(2)。与第一层不同的是,第二层的定位网络m2采用与RA-CNN一致的APN网络,截取每个输入特征区域并放大,输入到第三尺度层。
(7)在第三尺度层中重复步骤(6)生成第三尺度层的分类置信向量Y(3)。本层中的APN网络m3只生成对应的特征区域,不再进行截取,最终的定位将依据第一尺度层生成的各个特征区域决定。
RA-CNN中的分类网络VGG-19是由谷歌Deep-Mind实验室在2015年提出的卷积神经网络,具有稳定的网络结构和良好的特征提取能力,VGG-19在进行最终的全连接层运算时,全连接层的输入始终是第五个池化层P5的输出。图4为VGG-19网络结构图。在RA-CNN网络中,当APN网络输出的特征区域较小时,往往是因为图像尺寸较小并经过层层卷积和池化,第五个池化层输出的特征区域已经不能很好地反映目标的特征信息。针对小尺寸目标的过度池化问题,本文在VGG-19网络中加入尺度依赖池化(SDP)方法,转换成VGG-SDP网络,使网络智能地选择合适的卷积块输出进行分类,从而提高网络对小型船舶的识别率。VGG-SDP网络结构图如图5所示。
图4 VGG-19网络结构图Fig.4 VGG-19 network structure diagram
当VGG-SDP输入图像I时,图像先经过5个卷积块进行特征提取并将第五个池化层P5的输出送入JCMRAPN网络。JCMR-APN网络根据多个特征区域统计区域的大小N,VGG-SDP网络将根据N的大小在后3个池化层中选择合适的特征图输入到全连接层进行分类。这里VGG-SDP网络将选择多个独立特征区域中最小特征区域的像素个数N。自适应池化选择标准如下:
式(2)中,P3(I)和P4(I)分别代表第三、第四池化层的输出;M(I)函数根据N的大小选择合适的池化层输出。当特征区域N过大时,网络会选择第五个池化层P5来表示目标的特征;当N过小时,网络则会选择经历更少卷积池化的第三池化层P3来描述特征,以保留更多的信息。网络前两个卷积块提取效果较P3来说较差,因此不使用第一和第二池化层的输出。N的分段点使用2的幂次方数,更助于网络的优化。
船舶图像经过卷积池化生成的特征图具有多个通道,APN网络将第五个池化层形成的512个通道映射成一个3×1的区域参数向量,对应一个特征区域。为了提高整个网络利用全局信息的能力,考虑将多个通道划分为多个部分,每部分对应一个特征区域。
1.3.1 联合聚类
本文采用联合聚类(joint clustering)算法生成多个特征区域的定位网络JCMR-APN。联合聚类算法流程图如图6所示。
图6 联合聚类算法流程图Fig.6 Flowchart of joint clustering algorithm
联合聚类的大致思想为:利用谱聚类解析特征图通道样本集S的拉普拉斯矩阵并对组成的矩阵特征向量使用K-means聚类[17]最终生成多个特征区域。谱聚类[18]是基于图论的一种聚类方式,擅长将高维样本映射到低维。
设定特征图通道样本集S={s1,s2,…,s k}中的样本均为方阵,样本间若存在相互关系则会相互连接。定义相互连接的样本之间的权重为ωij,样本s i和s j之间的权重ωij计算公式见式(3):
根据样本集S构造邻接矩阵W(样本间权重的矩阵)、度矩阵D(每个样本与其所有相连接样本权重之和),本文方法步骤如下:
(1)由W、D得拉普拉斯矩阵L=D-W。
(3)将Lnorm的特征值从大到小排列,取前K个特征值计算其特征向量。
(4)标准化每个特征向量并组成特征向量矩阵L f。
(5)取L f中每个行向量生成新的样本集S′,对S′进行K-means聚类生成K个簇,对应K个船舶图像的特征区域。
这里K-means聚类选取欧氏距离[19]作为距离衡量标准,其公式见式(4):
1.3.2 特征区域优化
JCMR-APN网络在训练过程中,容易出现过拟合的情况,表现为训练收敛于局部最优,多个特征区域重叠率过高等情况。针对这个问题,需要对网络生成特征区域组的区域坐标进行干预。图7为JCMR-APN网络过拟合示意图。
图7 JCMR-APN网络过拟合示意图Fig.7 JCMR-APN network overfitting diagram
根据式(5),两个特征区域重叠像素部分Nol的计算公式为:
特征区域优化算法步骤如下:
(1)从坐标参数序列中计算每个特征区域像素值大小,并将最大特征区域的位置作为基准区域,将该区域计入固定区域序列。
(2)将第二个特征区域按式(5)、(6)计算与基准区域的重叠面积Nol。
(3)当重叠面积与自身的比值大于一定阈值时,对特征区域进行调整,直到比值低于阈值。
(4)第二个特征区域调整后计入固定区域序列,后续特征区域将从固定区域序列中由大到小依次选取对比区域进行步骤(2)、(3)操作。
由于JCMR部分采用了谱聚类方法,网络损失函数仅有尺度内损失和尺度间损失会使聚类优化优势变得不明显,因此定义新的网络损失函数见式(7):
式(8)中,i、j代表不同特征图的序号;β代表间隔系数,可以提升图像对于噪声的鲁棒性,这里设置为0.5。加入信道损失后,通过交叉训练的方式使VGG-19和APN相互学习,从而加快损失收敛的速度;同时优化了通道聚类的情况,使得网络模型更好地利用全局信息,从而提高船舶识别的准确率。
本文采用文献[13]的数据集,包括了集装箱船、帆船、拖船、客轮、油轮、海监船、航空母舰和驱逐舰8种常见的船种。数据集共2 635个样本,训练样本和测试样本比值约为4∶1,具体的数量分布如表1所示。每个类别包含了该类别的前视图、后视图、侧视图和俯视图,样图如图8所示。实验环境主要硬件配置及软件版本如表2所示。
表2 实验环境主要配件及软件版本Table 2 Main hardware configuration and software
图8 不同子类视图Fig.8 Different views of subclasses
表1 细粒度船舶数据集样本分布表Table 1 Sample distribution table of fine-grained ship datasets
2.2.1 实验1不同参数对于网络准确率的影响
新型RA-CNN网络在使用细粒度船舶数据集训练前,先在ImageNet数据集上训练10轮,方便加速后续的训练速度。网络的dropout率设置为0.2,初始学习率为0.1并每迭代1万次缩减为原来的1 10。
本文采用准确率衡量分类性能。定义准确率为r,计算公式见式(9):
式(9)中,NTP表示预测正确的正样本的个数,NTN表示预测正确的负样本的个数,NFP表示将负样本预测成正样本即误测的个数,NFN表示将正样本预测成负样本即漏测的个数。
由于JCMR网络部分中有很多参数,在本实验中将测试不同参数对于网络最终准确率的影响。在前面式(3)中,带宽σ影响了样本分布,根据式(10)定义表3中γ的参数。
从表3中可以看出,在特征区域K相同的情况下,γ影响准确率的大小;在同一γ的情况下,特征区域数量越多,准确率越高,说明网络通过大量的特征区域学习到了更多的特征信息。但是考虑到计算量的限制,选择γ=0.05,K=4的情况。
表3 不同参数下的网络准确率Table 3 Network accuracy under different parameters
2.2.2 实验2不同模型的准确率与性能
本实验主要验证SDP算法的有效性以及对比文献[13]在整个网络和不同尺度层的识别准确率,实验结果如图9所示。
图9 不同基类网络下的准确率Fig.9 Accuracy under different base class networks
从图9中可以看出,传统的VGG-19和RA-CNN识别率相对较低,在加上SDP算法后分别提高了0.7个百分点和0.5个百分点;本文方法比传统RA-CNN网络在识别准确率上提高了6.0个百分点,较文献[13]的方法也提高了3.5个百分点,在各个尺度层的准确率也是全面领先。当只使用第一和第二尺度层时,准确率为89.1%,在加上第三尺度层后,准确率达到了90.2%,说明在更深的尺度层网络也能挖掘有效信息。图10展示了不同模型的计算量和处理单帧图像的时间。
从图10可以看出,相对于VGG-19,RA-CNN模型多尺度层的结构也意味着计算量成倍增加,处理单帧图像的时间也在略微上升;从几个模型的对比可以看出,SDP算法几乎不增加计算量和计算时间。本文方法处理单帧图像的时间约为1.75 s,可以用于单帧图像的实时识别。
图10 算法性能图Fig.10 Algorithm performance graph
2.2.3 实验3特征关注区域的变化
在JCMR部分会产生多个网络关注的区域,本实验展示了不同训练轮次第一尺度层输出的特征区域。这里选择K=4,分别在1 000、20 000和80 000轮次的不同类别样本的关注区域,结果如图11所示。
图11 不同船舶特征区域的变化Fig.11 Changes in characteristics regions of different ships
从图11中可以看出在训练初期,网络的关注区域比较混乱,有时会定在背景等无关区域且重叠率较高;在20 000轮时已经向目标真正的特征区域靠近,区域间基本无重叠,说明区域优化算法避免了局部最优的可能;临近训练结束时,区域位置基本都定在目标的特征部分。
本文针对单一特征的细粒度船舶图像目标识别问题,提出了一种基于多特征区域的新型RA-CNN网络目标识别方法。在分类网络中引入SDP算法提升分类性能,在定位网络中加入JCMR算法使得网络关注多个特征区域,从而使目标识别更具鲁棒性,同时设计特征优化算法解决了JCMR可能出现的过拟合问题。重新定义损失函数对VGG-19和APN进行交叉训练,提高了网络的收敛速度。实验结果表明新型的RA-CNN网络对全局信息利用率较高,较基于单特征区域的方法取得了更高的识别率,并验证了特征优化算法的有效性。本文的细粒度船舶图像目标识别方法在复杂背景下有时会将无关部分计入特征区域,尚需要更先进的背景处理网络算法来解决这一问题。