邢世宏,杨晓东,单玉浩
(海军潜艇学院,山东 青岛 266000)
舰船识别一直以来都处于相对落后的状态,关注该领域的学者较少,舰船识别的问题一直都没有得到很好的解决。舰船识别和其他领域的识别有相似之处,都受环境因素影响比较大。影响因素主要包括低能见度、云及海况等复杂背景杂波因素;观测摄像机角度相对舰船的角度;遮挡因素。这些因素导致给舰船识别带来了很大的困难。识别方法主要采用传统机器学习及模式识别方法[1–4],但传统技术无法满足现实的需求。这些技术需要专家手工设计出特征提取器,只有好的特征提取器才能提高识别系统的性能,然而手工设计需要设计者大量的先验知识并消耗大量的时间,因此很难利用大量的数据。除此之外,传统方法依赖手工调参数,因此特征的设计中允许出现的参数量十分有限。随着2012年Alex Krizhevsky的AlexNet[5]在ILSVRC[6]竞赛中获得冠军,深度学习模型在ImageNet[7]数据集上展现了惊人的能力,同时在GPU高度并行处理计算的支持下,网络变深、宽度变宽,卷积层数及参数量增多,模型的Top-5错误率从2012年 AlexNet的 16.4% 降至 2015年 ResNet[8]的3.57%,已经达到了state-of-the-art,深度卷积神经网络在识别领域表现出非常好的性能。
本文将深度卷积神经网络迁移到舰船目标识别中,在AlexNet模型基础上,调整顶部卷积层,并采用数据扩充技术[9–11]构建舰船数据集训练舰船识别模型,并对结果进行分析。
现有的深度卷积神经网络复杂度较高,网络含有的参数量可以达到百万级别,因此训练如此复杂的网络需要大量的图像数据,但目前由于资源有限,舰船图像数据获取途径比较单一,舰船图像主要通过互联网获取,并且获取的图像数据量无法满足深度学习对大数据的要求。为构建舰船训练数据集。通过Internet搜索相关舰船网站,收集到的舰船原始图像共360张,并将其分为6大类,每类60张,部分图像如图1~图6所示。
图 1 货轮Fig. 1 Cargo vessel
图 2 渔船Fig. 2 Fishing boat
图 3 客轮Fig. 3 Passenger vessel
图 4 游艇Fig. 4 Yacht
图 5 帆船Fig. 5 Sailing boat
图 6 舰船Fig. 6 Warship
由于获取的原始图像尺寸不统一,需要将其缩放到统一的大小,这里将图像缩放到227×227×3。由于通过上述单一手段获取的图像数量难以满足训练深度神经网络,为了防止训练过程中出现过拟合,现通过数据扩充技术对上述原始图像进行扩充,原始图像扩充技术包括部分图像增强技术、图像尺度变换、图像反转、旋转等方法等,如图7所示。
图 7 图像数据扩充Fig. 7 Image data augmentation
图像经过数据扩充及手工标注后,将原有数据增加到每类1 200张,形成了包含72 000张图像的训练集。另外再收集每类12张图片,经过数据集扩充后得到包含14 400张图像的验证集。
AlexNet是具有历史意义的一个网络结构,在2012年ILSVRC图像分类竞赛比赛中获得冠军,top-5错误率比上一年的冠军下降10%。
AlexNet网络结构包括输入输出层、卷积层、激活层、下采样层、局部归一化、Dropout层及全连接层,网络结构如图8所示。
图 8 Caffe-AlexNet网络结构Fig. 8 Caffe-AlexNet
在上文所构建的舰船图像数据集上训练Caffe-AlexNet网络。训练网络的硬件平台为Win10-x64系统,处理器为8核Intel(R) Core (TM) i7-6700 CPU@3.40 GHz,内存为16 GB,GPU为NVIDIA Quadro M2000显存4 GB。训练后得到识别舰船的Caffe-AlexNet-Ship模型,识别正确率为76.63%。模型在训练迭代2万次后趋近于平稳,损失值也稳定在0.76附近,如图9和图10所示。
图 9 模型识别正确率Fig. 9 Model recognition accuracy
图 10 模型损失值Fig. 10 Model loss
在训练好的Caffe-AlexNet-ship模型后,经过测试集测试,正确率也在76%附近,损失值与训练集的损失值变换趋势一致,最后稳定在0.76附近,如图11和图12所示。
由图可以看出采用Caffe-AlexNet网络直接训练舰船数据集无法得到较好的识别率。由于舰船数据集较小,网络深度较浅无法很好地提取目标特征,因此最终的识别正确率只能达到76.6%。
图 11 测试集识别正确率Fig. 11 Test data recognition accuracy
图 12 测试集识别损失值Fig. 12 Test data recognition loss
深度卷积神经网络由多个层组合而成,每个层在深度网络中都发挥着一定的作用。对于一个训练好的网络模型,其底层提取的特征属于物体的通用特征,这些特征一般都表现为局部的纹理、轮廓及颜色特征,而高层的特征从这些较为具体的底层特征提取出来,一定程度上表现为物体的抽象属性[13]。在此理论根据下,采用迁移学习,将ImageNet数据集上训练好的Caffe-AlexNet模型迁移到舰船识别中,保留模型底层特征,用舰船数据集来训练高层特征,同时微调底层特征,Caffe-AlexNet的迁移网络结构同图8。
训练后得到Caffe-AlexNet-Finetuning模型,模型识别准确率达到91.08%,训练过程的准确率随迭代次数的增加,准确率也稳步提升,在训练迭代次数达到2万多时网络开始收敛,并趋于稳定。由于只需要微调网络底层特征,而高层在较大学习率的调整下,模型的损失值从训练开始到结束一直保持在0.3上下很低的水平,模型的识别正确率及损失值如图13和图14所示。
用训练好的Caffe-AlexNet-Finetuning模型测试识别测试集图像,得到测试正确率及损失值如图15和图16所示,从图中可以看出模型在测试集上的效果与训练集上的效果相当。
图 13 模型识别正确率Fig. 13 Model recognition accuracy
图 14 模型损失值Fig. 14 Model loss
图 15 测试集识别正确率Fig. 15 Test data recognition accuracy
图 16 测试集识别损失值Fig. 16 Test data recognition loss
从图中可以看出训练后的Caffe-AlexNet-Finetuning在测试集上的表现较好,测试平均正确率可达到91.08%,平均损失函数值为0.340 970。
本文采用图像扩充技术构建了小样本舰船数据集,在该数据集上训练Caffe-AlexNet及迁移Caffe-AlexNet-Finetuning网络,比较得到的模型识别正确率及损失值曲线,可以得出:
1)采用基于Caffe-AlexNet网络直接训练舰船数据集,识别正确率较迁移学习的Caffe-AlexNet-Finetuning模型低。出现此情况的主要原因是舰船数据集较小,迁移学习中的底层参数几乎都来自于ImageNet数据集的训练,只需要微调底层参数,加速学习上层参数即可,而没有经过ImageNet数据集训练的网络在小数据集上训练无法很好提取舰船的底层特征,导致识别准确率低。
2)在无法得到较大数据样本时,可以通过数据扩充技术对样本进行扩充,但为保证识别准确率,迁移学习在识别舰船不失为一种较好的应用。