2. 武汉理工大学 国家水运安全工程技术研究中心,湖北 武汉 430000;
3. 闽江学院 物理与电子信息工程学院,福建 福州 350108;
4. 华设设计集团股份有限公司,江苏 南京 210014
2. National Engineering Research Center for Water Transport Safety, Wuhan University of Technology, Wuhan 430000, China;
3. School of Physics and Electronic Information Engineering, Minjiang University, Fuzhou 350108, China;
4. Huashi Design Group Co., Ltd., Nanjing 210014, China
基于可见光图像的船舶目标识别方法可分为非深度学习的传统识别方法和基于深度学习的识别方法[1]。传统目标识别方法可概括为:确定目标位置,识别目标有无。通过选取识别目标可能存在区域,对判定目标存在区域特征提取,提取特征识别分类。目标识别在视频监控方向取得了长足进步,其中主流的算法有:背景差分法、帧间差分法、光流法、混合方法等。传统目标识别算法主要以运动目标识别为主,进而判断有无运动区域产生,推断能力较强对后续深度学习的特征提取有深远影响。郑继东[2]提出了一种三帧差分法与背景消减法相结合的运动船只识别算法,并在此基础上利用卡尔曼滤波器对船只位置进行了预测跟踪,利用SIFT匹配算法解决遮挡问题。李英文[3]利用帧间差分法分离背景和目标,设计了船舶图像的颜色模型和灰度化去噪的主要方法。
基于深度学习的识别方法则是通过对图像进行深层次的特征提取,利用深度神经网络实现对特征图的逐层传递并进行合理优化,对目标位置进行准确预测[4],进而完成船舶目标的识别。如任永梅等[5]提出了一种基于三维卷积神经网络的船舶分类法,采用6层3D卷积提取体素网格图像的高水平特征,优化了捕捉结构信息。郭战杰等[6]对船舶图像进行预处理后,建立了模糊神经网络结构,在此基础上进行模糊神经网络分类学习,用特征学习法提升了船舶图像分类器的能力。谷东亮[7]将改进的Faster R-CNN算法应用于船舶识别,在区域全神经网络后生成一个 dropout 层,提高了识别的速率,船舶识别的准确率达到 90.4%。
上述识别方法虽然提高了船舶的识别效率,但并未考虑实际情况下船舶目标识别数据集容量且模型训练依赖于高性能GPU设备,并不适用于一般情况下的船舶目标实时监测。为了解决复杂环境下的船舶目标实时识别问题,本文通过AlexNet网络与SSA-SVM分类器联合的方法进行船舶目标识别。为进一步解决图像特征提取不充分的问题,使用AlexNet网络迁移学习处理船舶数据集。以SVM分类器为基础,将SSA模块加入SVM参数寻优中,进一步提升分类器的判别性能。为了验证模型效能,选取不同背景下的船舶图像进行识别分类。结果证明,基于神经网路特征提取的SSA-SVM算法在降低船舶数据集容量的基础上并未降低识别精度,为海事监管提供了更为轻量化的解决方案。
1 基于迁移学习的AlexNet图像特征提取 1.1 AlexNet卷积神经网络AlexNet网络作为ISLVRC(imagenet large scale visual recognition)竞赛的冠军网络,在验证数据集上错误率仅为16.4%,表现十分优秀。AlexNet属于CNN神经网络结构,包含8层神经网络,5个卷积层和3个全连接层,囊括6亿3千万个链接,6000万个参数和65万个神经元。
AlexNet作为CNN网络架构的优化模型,对传统CNN网络进行了较多改善。激活函数方面,改用ReLU作为CNN激活函数,成功解决了Sigmoid在网络较深时的梯度弥散问题[8]。为ReLU没有划分值域区间的特性,提出了局部相应归一化(local response norm,LRN),以生物网络神经概念侧抑制小神经元,增强模型泛化能力。数据增强方面,采用Dropout随机忽略部分神经元,改善了以往CNN特征提取中易于过拟合的问题,之后以最大池化代替CNN网络常用的平均池化,在提升特征丰富性的同时克服了平均池化带来的模糊效果。
总的来说,AlexNet网络在LeNet的基础上加深了网络的结构,学习更丰富更高维的图像特征[9],且带有CNN网络中感受野和共享权重特性,使得AlexNet网络在训练中速度更快、需求样本更少,很好地解决了船舶目标识别中因图像拍摄困难产生的特征提取不充分问题,为小数据集特征提取提供了更为有效的支持。
1.2 AlexNet迁移学习特征提取迁移学习(TL)可以把为单一任务开发的模型重新用于其他领域的任务中,作为其他领域任务模型的训练起点,节约了训练神经网络需要的大量计算和时间资源[10]。但仍需要新任务特征与原训练数据集有一定的相似继承性,否则表现性较差。训练AlexNet模型采用的ImageNet训练集涵盖超过1400万张图像手动注释URL图像,在至少106个图像中还提供了图像边界框,以确定特征的确切位置。该数据集囊括了航空母舰、飞艇、帆船、集装箱船、游船、救生船、轮船等多种船舶特征,为本次迁移学习提供了可行性。在本文中,迁移学习策略可概括为将AlexNet作为作为船舶特征提取器,即删除模型的最后一个全连接层,将AlexNet模型的其他部分作为船舶数据集的固定特征提取器,利用所提取船舶目标特征训练分类器完成迁移学习,基于迁移学习的AlexNet网络结构如图1所示,其中CL1~CL5为卷积层,FCL6~FCL8为全连接层。使用神经网路作为图像特征提取其,可在有限图像规模下提取更加充分的识别特征。模型图像输入为227×227×3,FCL6~FCL7全连接层神经元个数为4096。
在通过AlexNet进行图像特征提取中,使用微调AlexNet策略[11]。即使用自建图像数据集图像作为模型输入,经数据增强过程后在FCL7层进行典型船舶特征提取,并替换模型全连接层中最后一层FCL8的输出,输出量由1000维改为4维,修改的参数变化如表1所示。
表1中全连接层激活函数为softmax,是经典二分类逻辑回归算法应对多样分类的解决方式。逻辑回归的关键步骤就是将线性模型输出的实数映射到[0,1]间[12],表示概率分布的有效实数空间,而softmax则可以预测每个类别的概率并选择预测值最高的结果作为判断结果,将一个K维的任意实数向量压缩(映射)成另一个K维的实数向量,其中向量中的每个元素取值都介于[0,1]之间。Softmax的算式表达如下:
$ p(y|x) = \frac{{{e^{h(x,{y_i})}}}}{{\sum\nolimits_{j = 1}^n {{e^{h(x,{y_i})}}} }}。$ | (1) |
式中:
本文SVM改进方式如图2所示。1)通过摄像头获取通航区域船舶采样数据。自建数据共标定4种船舶类型,分别为container,freighter,bulk freighter及pleasure ship,总计400张图像。图像经数据中心化处理,光亮度调整(gamma校正)后调节图像对比性,降低图像局部光照、遮挡影响,抑制噪声影响。确保数据集无错漏、特征性明显,进而使用基础增广手段进行图像数据集扩充,数据集达1680张图像规模。进入AlexNet神经网络特征提取步骤。2)AlexNet模型经ImageNet图像数据库训练得到固定参数,针对船舶目标特征识别表现良好。替换AlexNet分类函数softmax为本次训练目标4维度,并改换AlexNet输入端数据为自建船舶目标数据集。首先调整图像尺寸为227×227×3,经5层双GPU卷积神经网络计算图像特征,提取FCL7层(全连接层)图像特征得单一图片特征表现为256数量。3)通过麻雀算法优化SVM分类模型核函数半径g及惩罚因子c,计算分类面方程权向量值最优点,解最优点问题所得分类函数即确定SVM最优分类面,训练迭代模型至最优。4)使用训练完成的SSA-SVM分类器对测试数据集进行分类。最后对船舶类型判别情况进行统计,与普通非深度学习分类模型、简单神经网络分类模型进行结果对比,判断图像分类模型性能。
通过SSA确定SVM最优参数的过程,就是通过SSA多次迭代寻找麻雀最优点位置坐标的过程。在SSA中,发现者因适应度较高会优先发现食物[13],且由于发现者为整个种群提供食物,所以其需要更大的搜索范围,在每次迭代过程中,发现者位置更新如下式:
$ X_{i,j}^{t + 1}\left\{ \begin{gathered} X_{i,j}^t \cdot \exp \left(\frac{{ - i}}{{\beta \cdot m}}\right),{\rm{if}} \;{R_2} < ST,\\ \theta = \arctan \left(\frac{{{f_x}}}{{{f_y}}}\right),{\rm{if}}\;{R_2} > ST。\\ \end{gathered} \right. $ | (2) |
其中,
当
$ X_{i,j}^{t + 1}\left\{ \begin{gathered} X_{best}^t + \varepsilon \cdot \left| {X_{i,j}^t - X_{best}^t} \right|,{\rm{if}}\; {f_i} > {f_g},\\ X_{i,j}^t + K \cdot \frac{{\left| {X_{i,j}^i - X_{worst}^t} \right|}}{{({f_i} - {f_\omega }) + \tau }},{\rm{if}}\;{f_i} = {f_g} 。\\ \end{gathered} \right. $ | (3) |
其中,
图3为使用SSA优化SVM的c和g参数过程,SSA算法优化参数步骤如下:
1)确定进行图像分类的SVM输入与输出值,确定以有船/无船作为训练分类,整理测试集、训练集图片,以AlexNet神经网络为船舶特征识别法,开始模型训练。
初始化SSA系列参数,包括种群数、发现者个数、加入者个数、警戒者个数,最大迭代次数及安全阈值,初始化SVM参数惩罚参数c及核函数半径参数g。
2)进行适应度函数选择。在回归评价指标中,MSE(mean squared error)均方值误差和MAE(mean absolute error)平均绝对误差都作为最常用的回归损失函数,均适于误差明确情况。为了简化计算过程,选择MSE作为回归评价指标[16],如下式:
$ \frac{1}{m}\sum\limits_{i = 1}^m {{{({y_i} - {{\mathop y\limits^ \wedge }_i})}^2}} 。$ | (4) |
式中:
$ fitness = \arg \min (MS E_{pridect})。$ | (5) |
因选取的是SVM函数训练后的MSE误差,故在arg min情况下取得MSE最小值为理想适度定义。
步骤1 通过CV验证法,对训练集分类,以CV验证法的准确率作为SSA的最佳适度值,并进行适度值排序,保留适度值大小及相关位置信息。
步骤2 更新发现者位置。
步骤3 更新加入者位置。
步骤4 计算麻雀种群警戒范围,更新警戒者范围。
步骤5 计算麻雀种群中单个麻雀的适应度值,更新适度值及对应位置,比较与原位置优略,确定为全局最优位置,防止出现局部最优。
步骤6 判断迭代是否满足最高迭代次数,如满足条件,则输出SVM最优参数c和g,如不满足条件则重复步骤4重新计算适度值。
步骤7 更新SVM模型参数c和g,获得优化后的SVM分类模型。
3 实验参数与数据集一般来讲,图像数据集质量决定后续算法表现,数据集中的图片越清晰、特征越明确、分类标签越准确,则训练出的算法模型准确率越高、泛化能力越强。由于船舶种类多样且未出台统一划分标准,无法选择公共数据集进行算法训练,故本文使用视频拍摄方法建立图像数据集。共拍摄筛选400张图片,经人工噪声添加训练集后,增广得到1680张图片,通过 Transform 实现图像数据的预处理,并将标签保存为TXT格式,为后续模型应用数据及数据库建立确立基础。
3.1 图像数据集预处理由于目前未建立稳定的可见光船舶图像数据库,训练图片数量无法达到预期目标。为解决该问题,通过图像的移动、缩放、旋转、增加噪声等基础增广技术增加采样样本[17]。
采用Python数据包中自带的“imnoise”噪声污染图像函数,增加训练集图片数量。训练图片为340张,选择“imnoise”噪声函数中的“poisson”(泊松)噪声、“gaussian”(高斯白)噪声、“salt&pepper”(盐和胡椒)噪声3类噪声选项,对训练图片进行噪声处理。其中,“gaussian”(高斯白)噪声设定均值m为0.251,方差var为0.00615;“salt&pepper”(盐和胡椒)噪声设定噪声密度d为0.05。经噪声增广后,训练图片数目达模型训练需求,经AlexNet模型进行图像特征提取。
得到足够数量的训练图片后,进行图像预处理。主要处理过程为图像灰度化处理,和Gamma校正法。采用 Gamma 校正法,减弱图像因光照不均匀、局部阴影产生的影响,由于船舶图片采集水域光照条件较好,故在特征提取步骤中,根据时间段选常数值,γ=0.3或γ=0.8,以适应不同的光照条件。
经上述预处理步骤后,最终得到1680张图像,按照比例随机选取数据集中的1344张(80%)作为训练集供AlexNet网络进行特征提取及训练,226张(20%)作为测试集最后验证模型分类效果,数据集分类情况如表2所示。
船舶目标识别属于多种分类问题,在此基础上使用AlexNet提取船舶目标特征完成迁移学习的评价指标,可参考训练准确率(accuracy)和交叉熵损失(Loss)2种方式。对于AlexNet迁移学习,评价指标公式如下式:
$ \begin{gathered} Accuracy = N/M ,\\ Loss = - \sum\limits_{i = 1}^M {\sum\limits_{j = 1}^K {{y_{ij}}\log \mathop {{y_{ij}}}\limits^ \wedge } } 。\\ \end{gathered} $ | (6) |
式中:M表示当前样本总数,N为正确分类样本数;K为样本总类别数,且大于等于4;
针对特征提取阶段,较高的训练准确率(accuracy)和较低的交叉熵损失(Loss)可保证船舶目标特征提取充分,为下一步的分类器算法训练提供可靠的特征值计算依据,AlexNet迁移学习训练效果如图4所示。
可知,训练准确率和交叉熵损失函数随着训练次数的叠加越发趋于稳定值,并最终收敛在较高水平。FC7L层共提取1344×4096特征向量值用于后续SSA-SVM算法训练,之后依次打印出船舶目标经AlexNet网络提取的特征矩阵及各类船舶图样。
AlexNet全连接层特征提取数如表3所示。FCL6层输入数据的尺寸是6×6×256,采用6×6×256尺寸的滤波器对第6层的输入数据进行卷积运算;每个6×6×256尺寸的滤波器对第6层的输入数据进行卷积运算生成一个运算结果,通过一个神经元输出这个运算结果,共有4096个6×6×256尺寸的滤波器对输入数据进行卷积;FCL6层输出的4096个数据与第7层的4096个神经元进行全连接[17],经由ReLU和Dropout进行处理后生成4096个数据。本文FC7L层共提取1344×4096特征矩阵用以后续SSA-SVM算法训练,FCL7层输入的4096个数据与第8层的1000个神经元进行全连接得到训练后数值,整体规格符合AlexNet运行过程。由于神经网络拥有较强的信息综合能力,较之以往HOG特征提取的36维特征,深度神经网络在单一全连层上包括4096个神经元,特征提取能力更强。
为了进一步提升SSA-SVM算法对于目标船舶识别的精度,以AlexNet提取的特征矩阵数值为训练基础,在种群寻优SSA算法中寻找最优惩罚参数c及核半径参数g,进而提升算法针对于船舶目标分类的适应性。经AlexNet算法逐一提取特征后,单一图像特征数目达4096项。设置SSA-SVM目标变量个数为2,最大迭代次数200次,alpha范围,K范围上下限,进行边界控制。之后进行麻雀种群参数设置,预警值ST设定0.6,发现者PD设定0.6,警戒者SD设定为0.2,设定完成后即计算全局最优适度、最佳位置点,最优位置返回后,对适应度值做五折交叉验证其准确率。种群进化完成后,绘制适应度曲线、进化曲线、惩罚因子优化过程曲线、核参数优化过程曲线整体如图5所示。最终得到SSA-SVM算法模型及其耗时。
在船舶图像特征提取后进行SSA-SVM模型训练,并采用24张未经特征提取的复杂环境船舶图像测试SSA-SVM船舶目标识别模型性能。模型经 60745 s后完成训练及识别任务,最佳惩罚参数为 239.8922,最佳核参数为0.027237。由图5可知,在SSA种群迭代200次中,SSA算法在准确率98%附近出现最佳适应度反馈于最佳参数c和g,准确率在50次进化后趋于稳定,符合SSA搜索过程。其中惩罚参数c有明显进化趋势,有2次转折,且最终稳定趋于950附近,体现了麻雀种群搜索的最优位置更新能力。核函数半径g显示出较为稳定进化效果,其数值未出现较大波动,故仍需进一步思考麻雀种群对核函数g的优化方式。测试集24样本中有21样本识别正确,说明本文提出的深度学习特征提取与SSA-SVM算法联合的船舶目标识别可靠性。
算法模型对典型船舶目标识别率高达 88%,证实了本文提出的深度学习特征提取与SSA-SVM算法联合的船舶目标识别可靠性较高,目标识别模型稳定性较好。
为了验证基于神经网络特征提取的SSA-SVM船舶目标识别方法的综合性能,将传统SVM+HOG识别分类模型、VGG19算法模型作为对照组,统一使用自建船舶目标数据集进行训练,最终对比结果如表4所示。使用本文提出的基于神经网络特征提取与SSA-SVM联合算法识别精度较传统SVM算法更高,提升了63%的识别精度,优于VGG19算法,模型训练时间少于VGG19算法模型,精度与训练时长符合船舶目标识别任务需求,证明了本文所提出的算法模型的可行性。
为了确定本文提出的基于神经网络特征提取与SSA-SVM联合算法的目标识别时长合理,能够完成实时识别任务。利用测试集样本中24张复杂背景下的船舶目标图像进行识别,同样采用SVM+HOG识别分类模型、VGG19算法模型作为对照,识别时长对比如表5所示。
可知,使用传统SVM+HOG分类算法,本文提出的基于神经网络特征提取与SSA-SVM联合算法识别时长更短,单张图像识别时长仅为传统SVM+HOG分类算法时长的1/4,远超其识别时间;针对于神经网络识别,本文提出的识别算法时长也仅略长于VGG19算法为0.163张/s,满足船舶目标实时识别标准。
综上,在训练时长、精度、识别耗时等项目对比中,基于神经网络特征提取与SSA-SVM联合算法满足船舶目标识别任务需求,证明了本文算法模型的有效性。
5 结 语本文提出一种基于迁移学习与神经网络特征提取的船舶目标识别方法。通过神经网络的特征提取提升基于小数据集的船舶目标识别能力,以预训练好的AlexNet 深度网络模型为基础优化SSA-SVM模型参数,使之适应于船舶目标的识别。从而解决了小样本集下利用可将光图像进行船舶目标快速识别准确率低、训练时间长的问题。
实验结果表明:
1)该方法可以实现小样本数据条件下船舶典型目标的快速识别,且具有较高的分类准确率。
2)AlexNet 迁移学习模型可以充分提取目标特征,一定程度上避免了模型出现过拟合现象。与传统手动特征提取方法相比,AlexNet 迁移学习模型无需手动提取特征,具有更好的特征识别能力。
3)采用神经网络特征提取与SSA-SVM分类联合方法训练得到的模型,训练时长较全程深度学习模型时间更短,数据需求较低,且有较高的逻辑推理性,适用于一般设备下的船舶目标识别。
[1] |
许小伟, 余雪靖, 严运兵, 等. 一种虚拟场景车辆检测与测距方法[J]. 河南科技大学学报(自然科学版), 2020, 41(2): 34-39+6. DOI:10.15926/j.cnki.issn1672-6871.2020.02.007 |
[2] |
郑继冬. 视频监控中船只目标检测与遮挡处理的研究[D]. 大连: 大连海事大学, 2013.
|
[3] |
李英文. 计算机视觉在内河船舶目标监测技术的应用[J]. 舰船科学技术, 2017, 39(24): 43-45. |
[4] |
范钰萍. 基于机器视觉的接触网安全问题检测技术研究[D]. 南昌: 江西师范大学, 2020.
|
[5] |
任永梅, 杨杰, 郭志强, 等. 基于三维卷积神经网络的点云图像船舶分类方法[J]. 激光与光电子学进展, 2020, 57(16): 230-238. |
[6] |
郭战杰, 王晓莉. 基于图像处理和模糊神经网络理论的船舶分类研究[J]. 舰船科学技术, 2017, 39(18): 52-54. |
[7] |
谷东亮, 徐晓刚, 金鑫. 一种优化的运动目标检测与跟踪算法[J]. 舰船电子工程, 2017, 37(11): 40-43. DOI:10.3969/j.issn.1672-9730.2017.11.010 |
[8] |
陆峰, 刘华海, 黄长缨, 等. 基于深度学习的目标检测技术综述[J]. 计算机系统应用, 2021, 30(3): 1-13. DOI:10.15888/j.cnki.csa.007839 |
[9] |
程有娥. 基于灰度迁移学习的交通卡口车尾检测算法[J]. 浙江工贸职业技术学院学报, 2021, 21(3): 47-51. DOI:10.3969/j.issn.1672-0105.2021.03.011 |
[10] |
陈永恒, 陈军, 罗维平. 基于改进DenseNet201网络的织物疵点检测算法[J]. 棉纺织技术, 2022, 50(3): 1-7. DOI:10.3969/j.issn.1001-7415.2022.03.001 |
[11] |
金汉均, 段贝贝. 基于深度视觉特征正则化的跨媒体检索研究[J]. 电子测量技术, 2018, 41(12): 114-118. DOI:10.19651/j.cnki.emt.1801483 |
[12] |
时淑霞. 基于深度学习的驾驶关注区域检测方法研究[D]. 南昌: 江西师范大学, 2017.
|
[13] |
黄敬宇. 融合t分布和Tent混沌映射的麻雀搜索算法研究[D]. 兰州: 兰州大学, 2021.
|
[14] |
吴丁杰, 周庆兴, 温立书. 基于Logistic混沌映射的改进麻雀算法[J]. 高师理科学刊, 2021, 41(6): 10-15. DOI:10.3969/j.issn.1007-9831.2021.06.003 |
[15] |
肖浩, 廖祝华, 刘毅志, 等. 实际环境中基于深度Q学习的无人车路径规划[J]. 山东大学学报(工学版), 2021, 51(1): 100-107. |
[16] |
钟桂凤, 庞雄文, 隋栋. 基于Word2Vec和改进注意力机制AlexNet-2的文本分类方法[J]. 计算机科学, 2022, 49(4): 288-293. |
[17] |
刘野. 针对图像分类的对抗样本防御方法研究[D]. 重庆: 重庆理工大学, 2021.
|