改进CNN及其在船舶识别中的应用

2018-10-24 03:06杨亚东王晓峰潘静静
计算机工程与设计 2018年10期
关键词:池化正确率卷积

杨亚东,王晓峰,潘静静,2

(1.上海海事大学 信息工程学院,上海 201306;2.福建农林大学 交通与土木工程学院,福建 福州 350002)

0 引 言

近年来,随着船舶识别研究的不断深入,船舶识别技术朝着多样化、精准化方向发展。梁锦雄等[1]利用BP神经网络对包括航空母舰、客船、集装箱在内的6种船舶进行分类识别;殷雄等[2]提出一种基于结构特征的两阶段船舶识别方法,该方法能根据船舶图像有效地识别出油船和货船;赵亮等[3]提出一种改进深度卷积神经网络算法,并将卷积神经网络和SVM分类器相结合有效地对船舶图像进行分类识别;Nina ødegaard等[4]针对真实船舶SAR图像不足情况,结合生成的模拟船舶SAR图像构成训练集,进而通过训练卷积神经网络对船舶图像进行分类;Quentin Oliveau等[5]通过极坐标变换域产生船头特征,进而基于船体对称的方向梯度显著性确定船舶边缘,并通过SVM进行船舶检测;XGLeng等[6]通过学习输入图像特征和属性空间之间的非线性映射来构建具有鉴别性质的属性,对SAR船舶图像进行二元分类并对光学船舶图像进行多元识别。

卷积神经网络通过逐步压缩数据的长度和宽度、扩展数据的厚度(通道数),从而很好地适用于二维图像数据处理。但是在复杂环境中,卷积神经网络很难既快速又准确地对目标进行识别。图像目标检测算法能很好地定位图像中的前景部分,并从复杂背景中分离出前景图像。因此本文将探索结合卷积神经网络和图像目标检测算法对船舶图像进行分类识别。

1 卷积神经网络

1.1 卷积神经网络

卷积神经网络(convolutional neural networks,CNN)是一种深度神经网络结构,其“局部权值共享”和“下采样”的设计在一定程度上保证了平移、缩放等形式的扭曲不变性。LeCun等[7]提出的LeNet-5在手写字符识别中取得很好的效果。CNN一般由卷积层、下采样层和全连接层构成。

卷积层接收输入层输入图像或其上一层输入的特征图,通过N个卷积核进行卷积操作,然后使用激活函数进行激活操作,并将得到N个新特征图输入到邻接的下采样层

(1)

下采样层对输入特征图进行下采样操作,其可以有效地抽取出代表性的局部特征并降低计算复杂度

(2)

全连接层包括输入层、隐含层和输出层,将上层的特征图拼接成一维输入,通过加权求和并激活得到最终的输出结果

xl=f(lxl-1+bl)

(3)

CNN通过反向传播误差进行网络训练,在减小误差的训练中不断进行卷积核的自适应调整。随着卷积神经网络的发展,诞生了AlexNet[8],VGG[9],GoogLeNet[10]等不同结构的网络模型,在加深网络层次的同时提出了Dro-pout、ReLU激活函数、互熵损失等技术,不断地优化卷积神经网络的性能。OberwegerM等[11]提出了多尺度卷积操作,例如分别对特征图进行基于3×3和5×5的卷积核的卷积操作,在进行特征图的融合;Chen-Yu Lee等[12]提出来多尺度池化操作,组合使用不同尺度或不同方法的池化。它们都在一定程度上提高了卷积神经网络的性能。

1.2 改进的卷积神经网络

卷积神经网络常用的池化操作包括平均池化、最大池化和多尺度混合池化,它们都是在图像局部区域进行特征值的抽取,并没有考虑到图像前景对整体特征提取的影响。

1.2.1 中心-扩散池化卷积神经网络

“中心-扩散池化(center-diffusion pooling,CDP)”卷积神经网络,综合考虑了局部特征和整体前景特征对图像处理的影响。CDP思想是基于图像的前景通常位于图像靠中间位置的先验条件(实验时,结合显著性检测算法裁剪出以前景为中心的图像),让图像中间位置的特征均值按一定比例参与到图像各个部分的池化过程中,越靠近中间位置其参与的比例越高,达到强调前景的效果,进而得到更稳定的特征表征。假设由特征矩阵为A的m×m的特征图经过池化得到特征矩阵为B的n×n的特征图,算法步骤如下:

(1)采用平均池方法进行特征抽取,由特征矩阵Am×m得到特征矩阵Bn×n;

(2)以矩阵A的中心为坐标原点,画如图1所示坐标轴。以第二象限为例,计算式(4)的值

(4)

式中:a=m-n,b=m+n,avgc2表示特征矩阵中心位置第二象限的均值,其余3个象限均值计算方法类似,mean(·)表示取算术平均值。

图1 CDP方法

(4)分别计算完全包含在不同圆中的像素的值,公式如下

(5)

(6)

其中,avgch中h按在不同象限取{1,2,3,4}值,avg(i,j)即为最终求得的特征矩阵B第i行第j列的值。

如图1所示,经过CDP操作后的特征图中每个像素都均化了上一层特征图的中心区域值,这里相当于在一步操作中对同一幅特征图做了不同尺度的池化操作,得到的特征图不需要再进行数据融合操作。也因此,在进行下一层卷积的时候,相当于隐式地进行了不同尺度的卷积。

1.2.2 前景-扩散池化卷积神经网络

CDP将特征图像中心位置的特征不同程度地扩散到整体图像中,它是根据池化后的特征图的尺寸来选择上述的“中心位置”,其界定相对简单粗糙。前景-扩散池化(foreground-diffusion pooling,FDP)卷积神经网络的提出可以解决这个问题。FDP区别于CDP之处在于:avgch替换为avgfh,即通过显著性检测(saliency region detection,SRD)算法得到对象显著图,在显著图矩阵中,计算大于给定阈值b(实验中b取值为10)的像素值的平均值avgfh,其中h按在不同象限取{1,2,3,4}值。然后让其按一定比例参与到图像各个部分的池化过程中,越靠近前景位置其参与的比例越高。其在强调前景的同时,也进一步将前景的特征扩散到整个图像中。

这里所有大于给定阈值b的像素所组成的像素集即为前景特征图像。由于使用SRD方法得到的显著图存在边界模糊的特性,这里采用FDP方法不同程度地吸收均值avgfh,从而最小化模糊边界带来的影响,如图2所示。

图2 FDP方法

2 改进CNN的性能测试

2.1 MNIST数据集

由于MNIST数据特征相对简单,且其测试准确率已经相当高,这里随机将MNIST测试集分成6个部分,分别对每个部分图像的前景做不同尺度的缩放或旋转处理,MNIST训练集保持不变,得到“新MNIST”集,如图3所示。

图3 新MNIST测试集示例

实验选用Tensorflow框架,网络采用稍作修改的类LeNet-5模型,其中每次卷积后进行ReLU激励操作,第一个池化层分别进行平均池化、最大池化、CDP、FDP操作,全连接层进行dropout处理,最后一层采用softmax输出。分别对MNIST集和“新MNIST”集进行实验。

表1和图4结果显示,4种方法训练误差和预测误差相差不大,这是因为MNIST数据特征简单,而且无需进行SRD操作。其中,CDP和FDP操作的预测误差高于最大池化方法却略低于平均池化方法,是因为它们需要学习的特征模板更为复杂,也因此,前几轮训练CDP和FDP方法得到的正确率更低。

表1 4种方法在MNIST集上的训练误差和测试误差

图4 4种方法在MNIST集上的预测正确率

表2和图5显示,随着训练轮数的增加,CDP和FDP方法的预测误差要优于平均池化和最大池化方法,说明改进的CNN有助于提高分类准确率,其具有更好的尺寸、旋转等扭曲不变性。

表2 4种方法在“新MNIST”集上的训练误差和测试误差

图5 4种方法在“新MNIST”集上的预测正确率

2.2 CIFAR-10数据集

SRD阶段,本文选用“基于马尔可夫吸收概率的显著性检测[13]”方法对CIFAR-10集图像进行前景和背景分离。基于马尔可夫吸收概率的显著性检测方法的基本思想是:首先,将图像左侧和上侧边界分别作为背景先验,在其加权图上计算马尔科夫吸收概率得到初始显著图;然后对图像元素与前景线索相关性排序来强调对象;最后,利用基于内容扩散机制等方法进一步完善显著图。

CNN阶段,针对SRD阶段得到的显著图进行的处理,本阶段采用的CNN算法流程如图6所示。

图6 测试CIFAR-10集CNN算法流程

上述操作中,卷积核大小均为5×5,池化的尺寸均为2×2,3个卷积层卷积核个数依次为16、32和64,训练时:dropout取值0.5,batch_size取值50,初始学习率取值0.1,每训练20轮学习率下降到原来的0.1倍。同等实验条件下,第一个池化层分别进行平均池化、CDP、FDP操作。表3和图7展示了使用不同方法得到的训练误差、预测误差和预测正确率。

其中,CNN方法表示未进行SRD操作且使用平均池化方法,CNN+方法表示结合使用CNN和SRD且使用平均池化方法,同理,CDP+方法表示结合使用CDP和SRD方法,FDP+方法表示结合使用FDP和SRD方法。下文均作相同处理。

表3 4种方法在CIFAR-10集上的训练误差和测试误差

图7 4种方法在CIFAR-10集上的预测正确率

结合表3和图7可以看出,对CIFAR-10数据集识别处理,结合SRD方法能减少训练误差和预测误差,CDP+方法表现出了比CNN+方法具有更好的识别效果,而FDP+方法的识别能力要好于前两者的原因有两点:①使用SRD算法得到的显著图很大程度上避免了图像复杂背景对识别结果的干扰;②采用FDP方法可以有效弥补显著图边界损失,从而提高识别效果。

3 船舶识别

本文搜集用于船舶识别的图像集包括帆船、摩托艇、集装箱船、军舰和客船共5类图像(见表4),每类均包含300张160×160像素的实景图像共1500张图像。随机选取1200张为训练图像,剩余300张作为测试图像。为了提高系统的识别能力,这里分别对图像训练集和测试集进行扩充,首先对船舶前景做两个尺度的缩放处理,然后分别对其顺时针、逆时针旋转15°和30°,得到18 000张训练图像和4500张测试图像。

船舶识别的SRD阶段和CNN阶段所选用的模型和参数与测试CIFAR-10数据集使用的模型和参数相同。进行SRD操作可以有效地减小包括海水颜色、天气状况、浪花等背景对识别结果造成的影响。采用CNN和SRD算法相结合的方法进行船舶分类识别的算法框架如图8所示。

同等实验条件下,第一个池化层分别进行平均池化、CDP、FDP操作。实验参数和方法同2.2节,实验结果见表5、表6。

表4 船舶识别数据集

图8 船舶识别系统框架

表5 4种方法用于船舶识别的训练误差和预测误差

从表5可以看出,单独使用CNN方法很难正确识别出背景复杂的船舶图像的类型,经过训练学习,其识别正确率保持在68%左右;CNN结合SRD方法则大大提高了船舶识别正确率,但是其正确率仍未达到90%,这是因为船舶图像集中存在着大量具有复杂背景的图像;为了解决由SRD在复杂背景图像中获取的显著图存在边界模糊的问题,CDP和FDP分别从不同层面去弥补边界损失。相比较CDP方法,FDP方法更是依据SRD获得的显著图的本身属性进一步地降低了边界损失,其识别正确率高达92.8%。表6则显示出不同类别的船舶最终的预测误差,摩托艇和帆船的误差率最小,集装箱船和客船的误差率次之,军舰的误差率最大。这是因为前两者的特征更明显,区分度最大,而数据集中的军舰包括了不同类型的军用船舶,特征最为复杂。

4 结束语

为了改善卷积神经网络在实际场景的图像识别中易于受到图像背景干扰的问题,文中提出了CDP和FDP两种改进方法,并在分别在MNIST数据集、调整了测试集的新MNIST数据集以及CIFAR-10数据集上证明了其比传统卷积神经网络具有更加稳定的表征能力和更好的泛化能力。通过将显著性检测算法和改进的卷积神经网络相结合应用于船舶识别中,大大提高了船舶识别的准确率。同时,从实验结果可以看出系统的识别性能仍有提升空间,这主要局限于有限的船舶数据集上,下一步研究可扩展数据集和通过引入“迁移学习”来优化网络性能,从而进一步提升网络的识别能力。

猜你喜欢
池化正确率卷积
基于Sobel算子的池化算法设计
卷积神经网络中的自适应加权池化
设施蔬菜病害识别中的CNN池化选择
基于3D-Winograd的快速卷积算法设计及FPGA实现
门诊分诊服务态度与正确率对护患关系的影响
从滤波器理解卷积
基于卷积神经网络和池化算法的表情识别研究
基于傅里叶域卷积表示的目标跟踪算法
生意
品管圈活动在提高介入手术安全核查正确率中的应用