李庆忠,徐相玉
(中国海洋大学 工程学院,山东 青岛 266100)
海事智能监测是维护海洋权益、加强海域监管、减少海事纠纷等的重要技术手段,在军用和民用方面都具有重要的研究与应用价值。当摄像机安装在海洋浮标或无人海事执法船上时,研究基于动态视频图像的海面船舰目标快速检测方法是实现大面积海域智能视频监测的关键技术之一[1]。
在基于动态视频图像的海面目标自动检测方面,目前常用的检测方法可分为3 类。
第1 类方法是基于边缘、纹理等特征的海面目标的检测方法。代表性研究包括:黎经元等[2]提出的基于边缘梯度特征的船舰检测方法,适合于港口船舰的快速检测;李浩谊等[3]提出一种基于改进Scharr 边缘检测算子的船舰目标检测算法,具有较好的抗噪声能力;YANG 等[4]利用图像子块的DCT域能量特征实现海天线的快速提取,根据DCT 纹理特征建立海面混合纹理模型,并实现了海面背景与船舰目标快速分割。这类方法虽然具有较好的实时性,但当海况变化剧烈时适应性下降。
第2 类方法是模仿人眼视觉注意力选择机制,根据建立的视觉注意力模型求取感兴趣目标的显著图并实现船舰目标的检测。代表性研究包括:丁鹏等[5]提出一种基于多特征、多尺度视觉显著性的海面船舰检测方法,在多海况下的实验结果表明该算法具有较高的检测精度和鲁棒性;SHI 等[6]在小波域分别提取图像的低频和高频特征,利用改进的Gabor 滤波器提取方向特征,并在HIS 空间提取颜色和矩特征,融合以上各种特征得到显著图并实现船舰目标的分割;SHAO 等[7]提出一种基于卷积神经网络(CNN)的船舰目标检测算法,利用CNN 预测目标的类型和位置,并辅助利用显著图校正目标的定位,该方法具有较高的检测精度和速度。该类方法的优点是充分利用多种特征产生感兴趣目标的显著图,但具有较高的计算复杂度。
第3 类方法是基于深度学习的海面船舰目标检测算法。这是近年来国内外学者的研究热点,具有特征提取能力强、识别精度高、实时性好等优点。代表性研究包括:ZHANG 等[8]提出的基于干扰因素判别器和船舰目标提取器集成目标分割方法,利用SqueezeNet 网络作为干扰因素判别器以判定输入图像中包含什么类型的干扰,用改进的DeepLabv3+深度网络进行船舰目标的分割,该方法具有较高的分割精度及较好的抗雾能力;WANG 等[9]利用改进的YOLOV3(You Only Look Once)实现了端对端的船舰目标快速检测,在GPU 1080Ti 硬件环境下,检测精度达到74.8%,检测速度达到29.8 frame/s;马啸等[10]通过精简YOLO 模型,设计一个复杂度较小的10 层卷积神经网络用于船舰目标的自动特征提取和分类识别,改进后的网络虽然具有较高的检测精度,但只适合大小为112 像素×112 像素的输入图像,在CPU 硬件环境下,识别一张船舰目标图像所用的平均时间为0.265 s;赵春晖等[11]提出基于改进Fast-RCNN 算法的船舰目标检测与识别算法,虽然检测精度较高,但实时性较差。
总之,基于深度学习的海面船舰目标检测方法具有很好的应用前景,但目前该类算法仍然存在以下2 个方面的问题:一是存在小目标检测准确性低的问题;二是目前的算法大都适合于GPU 服务器硬件运行环境,对于安装在无人船或浮标上的嵌入式视频监控系统,其实时性仍然无法满足实际应用需求。
为克服上述问题,本文提出基于改进YOLOV3-Tiny的船舰目标检测方法。根据舰船目标的特点利用浅层感受野对浅层信息进行强化重构,增加I-ResNet网络以及特征金字塔网络FPN,进行多尺寸特征融合以平衡船舰大小目标的检测能力。利用图像结构相似度进行视频关键帧选择性检测以提高视频检测的速度,运用迁移学习方法进行网络模型的训练学习,克服舰船训练样本集有限的问题,最终在视频测试集上进行性能测试。
YOLO 是一种采用卷积神经网络(CNN)实现端到端目标检测的算法,其主要有以下特点:1)运用回归的思想,将目标检测看成是一个回归的问题,能够实时预测多个目标的类别和目标边框的位置;2)YOLO采用滑动窗口的方式寻找目标,与传统的基于候选区域方式不同,其直接利用整幅图片训练网络模型[12]。
目前YOLO 最常见的网络框架有YOLOV1、YOLOV2、YOLOV3[13]3 种。YOLOV3-Tiny 网络是YOLOV3 网络的简化,网络模型相对简单,降低了对硬件的要求,虽然提高了检测速度,但检测精度有所下降。YOLOV3-Tiny 网络模型是由13 个卷积层和6 个最大池化层组成,只使用了2 个不同尺度的YOLO 输出层,分别是YOLO16 和YOLO23,由1×1和3×3 的卷积核提取特征,输出层有2 个预测尺度,其大小分别为13×13 和26×26。YOLOV3-Tiny 网络模型的组成如图1 所示。
图1 YOLOV3-Tiny 网络模型框架Fig.1 Framework of YOLOV3-Tiny network model
YOLOV3-Tiny 网络可以检测80 多种不同对象,虽然具有较快的检测速度,但其目标检测精度不高,且对复杂场景的适应能力较低。
为了实现安装在无人船或海洋浮标上的嵌入式智能视频监控系统的海面船舰目标快速检测,根据船舰目标的特点,在YOLOV3-Tiny 的基础上,本文提出适合海面船舰目标检测的改进型网络模型——I-YOLOV3-Tiny,其结构组成如图2 所示。
图2 I-YOLOV3-Tiny 网络结构Fig.2 Structure of I-YOLOV3-Tiny network
由图2 可见,改进的网络模型主要分为特征提取和回归预测2 个部分。特征提取主要由卷积层和池化层完成,回归预测主要用于预测目标的类别概率和目标边界框坐标。网络结构的改进主要体现在3 个方面:根据船舰目标的特点对浅层特征信息进行强化重构,以降低小目标的漏检率;增加改进残差网络(I-ResNet),既能增加网络的深度,又能减少网络参数的计算量;采用金字塔网络多尺度特征融合,可实现不同分辨率特征图的融合,以提高对大小船舰目标的综合检测性能。
船舰目标视频检测面临的问题是在保证大目标高精度检测的同时,易出现小目标具有较高的漏检率。为此,本文对船舰目标在YOLO 网络下提取的特征进行了可视化研究,发现其特征提取部分会产生很多冗余的特征信息,并且随着网络层数的逐渐加深,小目标特征不再存在。显然,对于船舰小目标的检测,既需要足够多的浅层特征图以提高其检测精度,又需要足够多的语义信息来区分目标和背景特征。
本文利用重构方法在网络的特征提取部分加强了对输入图像浅层特征信息的提取与重构利用。以分辨率为416 像素×416 像素大小的输入图片为例,在Darknet 平台下,利用YOLOV3-Tiny 网络模型,用已训练好的权重对船舰测试集进行测试,对卷积网络逐层提取特征图,分别将Conv2、Conv3、Conv4 层的感受野进行可视化,如图3 所示。
图3 YOLOV3-Tiny 部分卷积层可视化特征图Fig.3 Feature maps of partial convolutional layers of YOLOV3-Tiny
由图3 可知,Conv2 层包含了更多的船舰小目标特征信息,如较多的边缘和纹理信息,Conv3 层包含的小目标特征较少,而Conv4 包含了太多复杂背景特征,对目标检测会产生较大的干扰,且其感受野最大。可见,浅的卷积层对小目标比较敏感,更能提取小目标的形状、纹理等特征,故适当增加浅层网络能更好地保留小目标的有效信息。
为了更有效地提取浅层特征,且充分利用上下层之间的语义信息,增强对Conv2 层语义信息的提取效果,在图2 中将YOLOV3-Tiny 的Maxpooling2层改为Con-v3 层,增加卷积层Conv4 层,卷积步长为1,不改变特征图尺寸,以便更好地提取Conv4 层特征,增加特征通道维度,在Conv4 层后增加最大池化层,用以改变特征图的尺寸。
为实现在减少卷积层计算量的同时,增加网络深度以提高检测精度,本文借鉴Resnet 提出的残差单元思想[14],在网络结构中增加了3×3 卷积层、1×1卷积层和3×3 卷积层网络块,改进的部分网络结构块如图4 所示。
图4 改进的残差层网络块Fig.4 Network block of improved residual layer
从图4 可以看出,第1 个3×3 卷积层的作用是提取特征,1×1 卷积层是一个映射层,可以将输入的特征图映射到较低维度的张量,因为当输入和输出的通道数很大时,卷积核参数会增加很多,而加入1×1 卷积层后可以降低输入通道数,由此卷积核参数以及运算复杂度即降底。第2 个3×3 卷积层的步长为1,并增加了卷积核,故能够提取更多的特征。总之,该网络块结构不仅能增加网络的深度,提高检测精度,还能使网络计算参数减少,网络也更加轻量化,有利于实时性实现。图5所示为改进的网络框架。
图5 改进的残差层网络框架Fig.5 Network framework of improved residual layer
图5中的I-Resnet(Improved-Resnet)即改进的残差网络,即图2 中的Conv5、Conv6。在图5 中,网络框架中的BN(Batch Normalization)层,即批量标准化处理。如果样本不进行BN 处理,每一层经过训练后,数据分布会不均匀,网络就需要重新学习新的数据分布规律,会造成网络计算量增大[15]。故增加BN 层可以在一定程度上解决梯度消失和梯度爆炸问题,防止出现过拟合的情况,同时可以增加训练速度。
BN 层之后增加激励函数,本文引入的激励函数是Leaky Relu,其表达式为:
其中:α为系数,该值是很小的常数。当神经元处于激活状态时,允许非0 的梯度存在,这样不会出现梯度消失问题,从而加快收敛速度。
网络低层的目标语义信息比较少,但是目标位置信息准确;而网络高层的目标语义信息丰富,但是目标位置信息粗略。为了在船舰目标检测中能同时以较高精度检测大目标和小目标,本文采用构造多尺度特征金字塔(FPN)的策略,通过网络连接的简单改变,在基本不增加原有模型计算量下,可大幅提升目标检测的性能[16]。图6 是特征金字塔的原理图,左侧表示下采样,右侧表示上采样2 倍,先进行降维处理,然后与上采样2 倍后的卷积层相加,经过卷积操作,分别输出13×13 和26×26 的2 个预测尺度特征。
图6 特征金字塔原理示意图Fig.6 Schematic diagram of feature pyramid principle
可见,多尺度特征金字塔可以将高层的语义信息与浅层的细节信息相结合,分别在不同层进行预测,由此在一定程度上可以平衡不同尺寸的目标,而且可以在不同层上输出对应的目标,不需要经过所有的层运算才输出对应的目标,起到一定的加速作用。因此,本文在图2 所示的改进网络结构中,利用FPN 设置了3 个yolo 层进行预测,分别输出12×12、24×24、48×48 3 个预测尺度的特征,用于船舰目标的回归检测。并且在每个预测尺度上设有3 个预设边界框,即每个网格预先定义3 个不同尺寸、不同形状的边界框,然后从这些预先设定的边界框中找到与真实边界框误差最小的框,这样不仅能提高检测速率,而且还可以处理2 个对象出现在同一个网格中的问题。Anchor box 的大小和形状可以通过K 均值聚类(K-Means)[17]方式得到,即对目标框的宽和高进行聚类。把最靠近它们的对象进行分类,通过不断学习和迭代,逐渐地更新各聚类中心的值,直至聚类中心不再变化,即准则函数值很小。K-Means 算法步骤如下:
步骤1根据所选样本y,初始时随机划分k个聚类中心。
步骤2根据欧式距离公式,计算所有样本与k个聚类中心的距离,样本对象与聚类中心欧式距离d计算公式如下:
其中:mi是第i个聚类中心;n为样本对象的维度,yi、mij是y和mi的 第j个属性值。
步骤3根据距离将样本分配到与其相距最近的聚类中心所在的簇中。
步骤4更新k个聚类中心,计算准则函数。准则函数的公式如下:
其中:Γi是第i个聚类,i=1,2,…,k;Je反映了用k个聚类中心代表k样本子集所带来的总的误差平方和。
步骤5判断准则函数是否最小,若准则函数值小,则聚类结束,输出聚类结果;否则,则返回步骤2继续循环,直至准则函数值最小。
为了实现海面船舰目标的快速检测,首先需要构建网络学习的数据集。本文通过采集、拍摄、网上搜索等方式建立了船舰图像数据集,共有2 000 多幅图像,并将数据集分为训练集和测试集,其中75%作为训练图片,25%作为测试图片,并通过翻转、旋转、裁剪、对比度、色彩变换、高斯噪声等方法对数据集扩充。此外,为了降低误检测率和误识别率,在测试集中加入大量负样本,然后利用标注工具LableImg 手工标注数据集目标,并生成学习文件。数据集的构成如表1 所示。
表1 船舰目标图像数据集Table 1 Image dataset of ship targets
本文基于深度学习框架Darknet 训练深度学习模型,在64 位的UBUNTU16.04 计算机上进行评估,该计算机具有CPU Intel®i5 的处理器,并在GPU 服务器的CUDA9.0 环境中进行GPU 并行加速计算。
对于构建的I-YOLOV3-Tiny 网络模型的学习训练,由于手动标注的船舰数据集规模较小,直接用来训练I-YOLOV3-Tiny 难以得到很好的训练效果,因此本文选用VOC 数据集[18],这 是PASCAL Visual Object Classes 挑战赛公开的数据集,有20 类标注目标,共16 000 张图像。采用迁移学习方法对模型进行预训练,然后把迁移学习得到的模型参数迁移到船舰检测模型的二次训练中,具体的学习过程如图7所示。
图7 基于迁移学习的I-YOLOV3-Tiny 训练过程Fig.7 Training process of I-YOLOV3-Tiny based on transfer learning
从图7 可以看出,左侧为利用VOC 数据集进行网络预训练的过程,右侧为利用迁移学习方法和小规模船舰图像训练集进行网络参数微调训练的过程。在网络参数微调的过程中,采用迁移学习和多尺寸训练2 种方法,直至训练网络达到理想状态。
在实际的海面视频检测中,由于视频帧之间背景单一,视频中存在大量的冗余信息,若每帧图像都重复调用网络模型进行检测识别,则难以实现实时性检测。为了提高视频检测的速率,本文采用图像结构相似性(SSIM)指标来衡量相邻2 帧图像的相似程度。当相邻图像帧结构相似性时,可以减少对网络模型的调用次数,从而提高视频帧检测的速率。SSIM 主要从亮度、对比度、结构3 个方面度量图像的相似性,SSIM 算法的计算公式如下:
其中:x、y代表2 幅对比图像;l(x,y)是亮度比较;c(x,y)是对比度比较;s(x,y)是结构比较;α,β,γ>0 用来调整亮度、对比度、结构失真度的相对重要性;μx、μy分别为x、y的均值;σx、σy分别为x、y的标准差;σxy为x、y的协方差;c1、c2、c3是不为0 的常数。一般设定α=β=γ=1,c3=c2/2[19]。SSIM 公式可以简化为:
SSIM 值的范围为[0,1],值越大说明2幅图像相似性越大。利用SSIM 进行视频目标检测的流程为:以视频的第1 帧图像作为参考帧,并进行网络模型的前向运算,并与视频的下一帧进行对比,计算2 帧之间的结构相似度。设定结构相似度阈值,若2 帧结构相似度大于规定阈值,则不进行前向推理计算,直接输出图像并且附加前一帧的检测结果;若2 帧的结构相似度小于等于规定的阈值,则对当前帧利用网络模型进行前向目标检测,并且将当前帧更新为新的参考帧。
在测试集中,目标检测被分为正样本和负样本2 类。精确度P(Precision)用来衡量目标检测的精度;召回率R(Recall)是检测到的真实目标个数与检测到所有目标个数的比值[20];交并比IoU(Intersectionover-Union)表示产生的候选框与真实框的重叠率,相关度越高则值越大,完全重叠时值为1[21]。检测速率(FPS)是指每秒处理帧数,FPS 越大则实时性越高。各指标定义如下:
其中:Ntp是实际为正样本被判定为正样本的个数;Nfp是实际为负样本被判定为正样本的个数;Nfn是实际为正样本被判定为负样本的个数。
表2 是I-YOLOV3-Tiny 是否使用迁移学习和多尺寸训练方法的评价结果。由表2 可以看出,使用迁移学习和多尺寸训练方法能使目标检测效果更好,并且训练达到收敛的时间也大大缩短。表3 是本文算法I-YOLOV3-Tiny 与另外4 种代表算法检测性能的对比实验结果。
表2 训练结果对比Table 2 Comparison of training results
表3 5 种算法性能对比Table 3 Performance comparison of five algorithms %
由表3 可见,Fast-R-CNN[22]是使用卷积神经网络直接产生候选框,其实时性和检测精度都低于YOLO网络模型。与YOLOV3-Tiny 相比,本文算法的精确度提高7%,交并比IoU 值提高3%左右,主要原因是网络特征提取部分加强了对浅层信息的提取,采取的改进残差网络加深了网络,提高了对深层卷积特征的提取。此外,以上检测指标的提高,也与采用的迁移学习策略有关。
图8 给出了3 组代表性检测结果,每一排为一组。由图8(c)可见,本文算法提高了对小目标的检测能力,在不同背景下,对于大小船舰目标都具有较高的检测性能。由图8(a)、图8(b)可见,YOLOV3、YOLOV3-Tiny容易出现船舰大目标或小目标的漏检问题,且IoU较低。
图8 船舰目标检测性能对比Fig.8 Performance comparison of ship target detection
在GPU 平台上,网络模型对船舰目标的检测速度可达每秒几十帧,但是对于海面移动平台的视频处理识别系统,只能采用轻量型设备,不方便配置高耗能的GPU。因此,本文在Intel i5 CPU 平台上,分别统计了各种网络模型对船舰视频的处理速度。表4 显示的是未采用SSIM 与采用SSIM 进行视频检测的FPS 对比结果。
表4 CPU 平台船舰视频平均检测速率Table 4 Average detection rate of ship video on CPU platform(frame·s−1)
从表4 可以看出,在CPU 平台下采用SSIM 进行选择性计算检测,本文提出的I-YOLOv3-Tiny 其检测速率可以达到12 frame/s,基本满足快速视频检测的需求。其平均检测速率速比传统的YOLOV3 要高,而比YOLOV3-Tiny 稍低,主要原因是改进的网络比YOLOV3-Tiny 网络结构稍深。总之,基于SSIM 视频检测算法明显提高了视频检测的速率。
本文基于DarkNet 平台,利用深度学习的方法,提出一种基于改进YOLOV3-Tiny 网络模型的海面船舰目标检测算法。利用浅层感受野对浅层信息进行强化重构,根据浅层信息提取目标特征,提高对小目标的检测精度。通过增加I-ResNet 网络,不仅能增加网络的深度,而且减少网络参数的计算量,提高检测的速率。采用的金字塔网络多尺度特征融合,提高对大小船舰目标的检测性能,利用帧间图像结构相似度进行选择性网络前向计算,以显著提高视频帧检测速率,并运用迁移学习方法和多尺寸训练模式,提高网络的学习能力与对不同尺寸目标检测的泛化能力。实验结果表明,该算法可以快速有效地检测海面船舰目标。下一步将研究深度卷积网络结构的精简方法,在满足检测精度的前提下提高算法的实时性。