舰船科学技术  2016, Vol. 38 Issue (8): 119-123   PDF    
基于深度卷积神经网络的船舶识别方法研究
赵亮, 王晓峰, 袁逸涛     
上海海事大学 信息工程学院, 上海 201306
摘要: 为解决目前船舶识别率较低的问题,基于深度卷积神经网络算法,提出一种在深度卷积神经网络基础上的改进算法。利用卷积神经网络对船舶图片进行深度特征提取,结合 HOG 算法得到准确的边缘特征,结合HSV算法得到颜色特征,通过 SVM 分类器对船舶进行分类。算法主要包括 2 个阶段:训练阶段实现卷积神经网络的预训练,将得到特征归一化,PCA 降维,通过 HOG 算法得到边缘特征,最后训练 SVM 分类器;测试阶段则对算法的准确性进行核实。实验结果表明,该方法平均识别正确率达到 93.6%,可以很好地实现船舶识别。
关键词: 深度卷积神经网络     船舶识别     边缘梯度方向直方图     支持向量机    
Research on ship recognition method based on deep convolutional neural network
ZHAO Liang, WANG Xiao-feng, YUAN Yi-tao     
Information Engineering College, Shanghai Maritime University, Shanghai 201306, China
Abstract: In order to solve the problem of low recognition rate of ships, a new algorithm based on the deep convolutional neural network is proposed.Using the convolutional neural network to extract the depth of the ship image, the HOG algorithm is used to get the accurate edge feature, combining the HSV algorithm to get the color characteristics, and the ship is classified by SVM classifier. The algorithm mainly consists of two stages: the training stage to achieve the pre training of convolutional neural network, will get the feature normalization, PCA dimension reduction, through the HOG algorithm to get edge features, and finally trained SVM classifier.In the test stage, the accuracy of the algorithm is verified. Experimental results show that the average recognition accuracy of the proposed method is 93.6%, which can be very good to achieve the recognition of the ship.
Key words: deep convolutional neural network     ship recognition     edge gradient direction histogram     support vector machine    
0 引言

随着社会经济的发展,海上交通日益繁忙,发生事故在所难免,能否对船舶进行有效的识别对经济发展有很大的作用。不仅如此,船舶识别技术为准确跟踪舰船目标、实现精确制导也有军事战略上的意义[1]

近年来,船舶识别技术发展至今,还未达到普及的地步,较为常见的船舶识别技术包括预处理 + 特征提取 + 分类器,这类方法的主要缺陷是需要用到复杂的图像处理算法,且实验结果不太理想。除此之外,BP 神经网络也很好地应用在船舶识别上,然而目前最新数据表明,识别精度只能达到 84% 左右[2],提高船舶识别精度迫在眉睫。

目前,深度学习技术发展很快,深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征[3]。卷积神经网络(Convolutional Neural Networks,CNN)是深度学习中的一种方法,已成功应用在手写字符识别、人脸识别及行人检测等识别任务中,实验结果表明 CNN 模型可以有效 提取特征[4]

本文基于深度卷积神经网络提取特征的优良特性,结合 HOG 算法得到准确的边缘特征,通过 SVM 分类器对船舶进行分类。与传统的船舶识别方法相比有以下优势:

1)无需复杂预处理,不需人为设置卷积核,降采样降低了计算复杂度。

2)对位移、缩放和其他形式扭曲的不变性[5]

3)提取船舶特征的同时,对这些图片的边缘特征进行加强,得到表现原始图像最佳的特征;

4)采用 SVM 分类器,分类效果更好,降低了计算的复杂度,提高了鲁棒性。

1 船舶图像的特征提取

特征提取是图像识别的一个关键,特征提取直接影响到识别结果的准确性。良好的特征应该具备以下几个特点:

1)可区分性,对于不同类别的船舶,特征应具有明显的差异;

2)不变性,对于同一类的船舶,特征应该比较接近,不会发生明显变化;

3)可拓展性,选取的特征之间不相关,可以进行联合;

4)鲁棒性,具有旋转不变性、尺度不变性等优良特性[6]

1.1 HSV 特征提取

颜色特征是图像最直观的特征之一,相对其它特征来说计算简单,提取更为容易。相较 RGB 颜色空间,HSV 空间更能与人眼的视觉特征相匹配,(H 表示色调,指光的颜色;S 表示饱和度,指颜色的深浅或浓淡程度,V 表示亮度,指人眼感受到光的明暗程度)。本文采取了视觉彩色模型中 HSV 模型进行特征提取。

RGB 空间可以很容易转换到 HSV 空间,本文采用较方便的等间隔量化方法,H 等间隔划分为 16 块,S 等间隔划分为 4 块,V 等间隔划分为 4 块,最后得到一个 256 维的 HSV 特征向量。

1.2 深度卷积神经网络特征提取

图 1 给出了本文使用的卷积网络结构,卷积神经网络特征提取需要经历逐层构建网络、训练网络和特征提取 3 个阶段。

图 1 卷积神经网络结构图 Fig. 1 Convolutional neural network structure

构建网络:图中采用的是 7 层网络结构,其中:$I{}_1$ 是网络的输入层。${C_i}$ 是网络的卷积层,它含有 ${N_i}$ 个特征图片,通过输入图片与 ${N_i}$ 个 5×5 大小的卷积核和可加偏置 ${b_i}$ 进行卷积得到,主要功能是提取图片的纹理特征。${S_i}$ 是网络的下采样层,它含有与前一输入层相同个数的特征图片数,通过对输入图片中 2×2 大小范围内的 4 个数进行加权平均,然后通过 sigmoid 激活函数得到,主要功能是减少图片的冗余及数据处理量,保留了有用信息。${F_6}$ 为网络的全连接层,它将上一次得到的特征图片排成一列向量,得到最终的特征向量,然后通过 BP 算法进行参数调整并得到输出 ${O_7}$。具体的:输入 ${I_1}$ 是大小为 200×200 的图像时,通过卷积得到 ${C_2}$ 为 6 张大小为 196×196 的特征图像,通过下采样得到 ${S_3}$ 为 6 张大小为 98×98 的特征图像,通过卷积得到 ${C_4}$ 为 8 张大小为 94×94 的特征图像,通过下采样得到 ${S_5}$ 为 8 张大小为 47×47 的特征图像,最后由 8 张特征图得到 ${F_6}$,下面分别给出了卷积层和降采样层的计算公式。

卷积层计算形式:

$x_{j}^{i}=f(\sum\limits_{i\in {{M}_{j}}}{x_{i}^{l-1}@k_{ij}^{l}}+b_{j}^{l});$ (1)

降采样层计算形式:

$x_{j}^{l}=f(\frac{1}{n}\sum\limits_{i\in {{M}_{j}}}{x_{i}^{l-1}}+{{b}^{l}})\circ $ (2)

卷积神经网络的训练包括以下 2 个阶段:

1)正向传播阶段。将训练样本通过卷积神经网络得到实际输出。

2)后向传播阶段。计算实际输出与相应的理想输出的差,按极小化误差的方法反向传播调整权矩阵。

卷积的过程就是特征提取的过程,大量实验已经证实卷积神经网络可以很好提取图像的纹理特征,然而传统的卷积神经网络只使用了最后的输出层得到的特征,而卷积过程中产生的特征图片也可以很好地对原始图片进行表现。本文将这部分的特征也合理利用起来,使特征更具表现力,具体实现如图 2 所示。卷积神经网络训练阶段结束后,将卷积过程中得到的特征图片通过特征提取得到特征向量,然后通过 SVM 分类器得到分类结果。

图 2 卷积神经网络特征提取图 Fig. 2 Convolutional neural network feature extraction
1.3 边缘梯度方向直方图特征提取

边缘梯度方向直方图特征主要对图像的边缘梯度方向以及大小等的性质进行统计,正是这种统计方式提高了图片的平移、尺度和旋转不变性,图像的形状能够被梯度或边缘的方向密度分布很好的描述,不同类别的船舶边缘特征差别也很大,于是采用边缘梯度方向直方图可以很好的提取出船舶的边缘特征,图 2 中的特征提取方法本文就采用边缘梯度方向直方图来实现。

边缘梯度方向直方图特征提取步骤如下:

1)归一化。为了减少光照、局部阴影的影响,对整个图像进行归一化,本文采用 gamma 压缩方法,具体公式:

$I(x,y)=I{{(x,y)}^{gamma}}\circ $ (3)

2)计算图像梯度。计算图像横坐标和纵坐标方向的梯度,求导操作不仅能够捕获图像的轮廓等纹理特征,还可以弱化光照影响,具体公式图像中像素点(xy)的梯度为:

${{G}_{x}}(x,y)=H(x+1,y)-H(x-1,y),$ (4)
${{G}_{y}}(x,y)=H(x,y+1)-H(x,y-1)\circ $ (5)

式中 $H(x,y)$${G_x}(x,y)$${G_y}(x,y)$ 分别为输入图像中像素点(xy)处像素值、水平方向梯度及垂直方向梯度。

使用 [-1, 0, 1] 梯度算子对原图像做卷积运算,得到 x 方向的梯度分量,然后用 [-1, 0, 1]T 梯度算子对原图像做卷积运算,得到 y 方向的梯度分量,最后可得像素点处梯度幅值和梯度方向为:

$G(x,y)=\sqrt{{{G}_{x}}{{(x,y)}^{2}}+{{G}_{y}}{{(x,y)}^{2}}},$ (6)
$\alpha (x,y)={{\tan }^{-1}}\left( \frac{{{G}_{y}}(x,y)}{{{G}_{x}}(x,y)} \right)\circ $ (7)

3)为每个细胞单元构建梯度方向直方图。细胞是最小统计单元,例如:每个细胞为 8×8 个像素,采用 9 个直方图来统计这 8×8 个像素的梯度信息,也就是将细胞的梯度方向 360° 分成 18 个方向块,如图 3 所示,即 [0, 20] 度数范围统计为一个方向块。

图 3 梯度直方图方向块 Fig. 3 Gradient histogram directional block

4)细胞单元组合成大的块,块内归一化梯度直方图。将各个细胞单元组合成大的,连通的区域,一个块由块内细胞的特征向量串联起来,组合成整幅图像的特征,为了实现方便本文将块的大小设为图像大小,于是特征向量的大小 = 方向块个数×细胞单元数,图 4 给出了由船舶图片提取边缘特征直方图。

图 4 船舶图片提取边缘特征直方图 Fig. 4 Edge feature histogram of ship image extraction
2 实验部分 2.1 整体框架

本文设计的船舶识别系统如图 5 所示。

图 5 船舶识别系统框图 Fig. 5 Block diagram of ship identification system

训练阶段:首先,将训练样本通过卷积神经网络得到预训练的网络结构,然后提取训练样本特征;其次,将得到的特征进行归一化,PCA(Principal Component Analysid)降维;最后,结合得到的训练特征和标签,训练 SVM(Support Vector Machine)分类器。

测试阶段:测试样本直接通过预训练好的网络,提取得到特征,然后进行归一化,降维等操作,最后通过训练阶段得到的SVM分类器,输出就是预测标签。

2.2 数据集和实验环境

以 Fleetmoom 船舶图像库中的船舶图像作为实验中识别对象,为了实验的准确和可靠,人工提取并标注了其中的集装箱船、客船、渔船、帆船和军舰图像共 5 类作为训练和测试样本,其中训练样本共 500 张,测试样本共 310 张,且每类图像分辨率均在 200×200 像素以上,部分图像样本如表 1 所示。

表 1 实验图库样本部分实例 Tab.1 The samples of experimental images

实验全部在 MatlabR2014a 环境下完成,Windows7 操作系统,Intel Core i5-4300U CPU,主频 2.50 GHU,内存 8 G,SVM 工具箱选择林智仁教授开发的 LIBSVM,实验中选用 RBF 核函数,其中 gamma 参数和惩罚系数由网格寻优所得。

2.3 实验结果及分析

使用深度卷积神经网络提取特征前,数据集中所有彩色图像统一变成 200×200 大小的灰度图。为节省篇幅,给出部分卷积过程中的特征图像如图 6 所示。

图 6 卷积神经网络部分特征图 Fig. 6 Convolutional neural network part of the feature map

表 2 给出了不同特征的识别率,表 3 给出了实验中使用的具体参数值,图 7 给出了表 3 对应分类结果的 ROC 曲线。使用传统卷积神经网络进行实验达到的准确率不到 85%。由表 2 可知,当单独运用 ①②③ 中的某种特征时,深度卷积神经网络提取特征,得到的准确率可达 90.00%;边缘特征直方图特征,得到的准确率可达 88.06%;HSV 颜色特征,得到的准确率只有 61.94%;当综合考虑 ①②③ 时,船舶平均识别率达 93.55%。由于实验所采用的图片背景较为复杂,都是现实生活中实时拍摄,于是采用单一的 HSV 颜色特征来进行特征提取得到的分类效果并不是太好。由于不同类别的船舶,船型存在一定的差异,通过 HOG 很好地得到船舶的边缘特征,就可以将不同的船舶分开。将以上 2 种特征提取方法与卷积神经网络结合,得到了多层次,更有深度的船舶特征,进而更好地将船舶进行识别。

表 2 几种特征的识别率比较 Tab.2 Comparison of recognition rates of several features

表 3 特征具体参数 Tab.3 Characteristic parameters

图 7 分类结果 ROC 曲线 Fig. 7 Classification result ROC curve

本文还有待改进的地方如下:

1)文中所用的 HSV 特征量化是等间隔量化,可以根据颜色空间特点,合理的改为非等间隔量化。

2)文中 SVM 分类器采用的是 RBF 核函数,可以通过使用更加优秀的核函数来达到更好的分类效果,如卡方核函数及直方图相交核函数等。

3)文中 SVM 分类器使用的是网格寻优得到最优参数,可以尝试其他较好的寻优算法得到使分类效果更好的最佳惩罚系数 C 及核函数参数 G,如粒子群寻优及遗传算法寻优等。

3 结语

本文通过构建 7 层卷积神经网络对船舶图像进行训练,利用卷积神经网络对船舶图片进行深度特征提取,结合 HOG 算法得到准确的边缘特征,结合 HSV 算法得到颜色特征,通过 SVM 分类器对船舶进行分类,很好的解决了目前船舶识别率较低的问题。由于特征本身具有一定的局限性,不可能完全表现图像的全部特征,本文将多种特征有效的结合,最终对船舶识别精度达到 93.55% 左右。当然文中还存在不足和可以改进的地方,核函数的选取,参数的设定都有待进一步的研究。本文提出的基于卷积神经网络的船舶识别方法对民生、经济,甚至在军事上具有一定参考价值,为海上丝绸之路的发展保驾护航。

参考文献
[1] 陈练, 苏强, 董亮, 等. 国内外海洋调查船发展对比分析[J]. 舰船科学技术 , 2014, 36 (S1) :2–7.
CHEN Lian, SU Qiang, DONG Liang, et al. Comparative analysis of the development of research vessel at home and abroad[J]. Ship Science and Technology , 2014, 36 (S1) :2–7.
[2] 梁锦雄, 王刻奇. 基于 BP 神经网络的船舰目标识别分类[J]. 舰船科学技术 , 2015, 37 (3) :206–209.
Liang Jin-xiong, Wang Ke-qi. Ship recognition based on BP network[J]. Ship Science and Technology , 2015, 37 (3) :206–209.
[3] 冀中, 刘青, 聂林红, 等. 基于卷积神经网络的纹理分类方法研究[J]. 计算机科学与探索 , 2016, 10 (3) :389–397.
JI Zhong, LIU Qing, NIE Lin-hong, et al. Texture classification with convolutional neural network[J]. Journal of Frontiers of Computer Science & Technology , 2016, 10 (3) :389–397.
[4] 邓柳. 基于深度卷积神经网络的车型识别[D]. 成都: 西南交通大学, 2015.
DENG Liu. Deep convolutional neural networks for vehicle classification[D]. Chengdu: Southwest Jiaotong University, 2015.
[5] 刘建伟, 刘媛, 罗雄麟. 深度学习研究进展[J]. 计算机应用研究 , 2014, 31 (7) :1921–1930, 1942.
LIU Jian-wei, LIU Yuan, LUO Xiong-lin. Research and development on deep learning[J]. Application Research of Computers , 2014, 31 (7) :1921–1930, 1942.
[6] 安博文, 李丹, 庞然. 基于 SVM 分类器的集装箱箱号识别法[J]. 上海海事大学学报 , 2011, 32 (1) :25–29.
AN Bo-wen, LI Dan, PANG Ran. Recognition method of container code based on SVM classifier[J]. Journal of Shanghai Maritime University , 2011, 32 (1) :25–29.