APP下载

基于改进YOLOv3的船舶目标检测算法

2021-07-02盛明伟秦洪德武万琦

导航与控制 2021年2期
关键词:集上显著性船舶

盛明伟,李 俊,秦洪德,崔 壮,武万琦

(哈尔滨工程大学船舶工程学院,哈尔滨150001)

0 引言

21世纪是海洋的世纪,我国对海洋资源的重视程度正日益提高。国家基金委八大学部公布的信息科学部优先发展领域的第一条即是海洋目标信息的获取、融合与应用,其主要研究方向为:1)海上目标探测、识别理论及方法;2)水下目标探测机理和识别方法;3)水下通信与海空一体信息传输;4)海洋目标环境观测与信息重构;5)异质异构海量数据处理与信息融合理论与关键技术。在国防建设以及交通运输领域,船舶是不可或缺的交通工具,因此船舶检测技术具有相当重要的研究意义。船舶检测技术是海洋获取海面船舶信息的重要方法,其应用领域十分广泛。自进入信息化时代以来,计算机技术的发展越来越迅速,生产向着智能化、网络化方向发展,计算机在港口或船舶上的应用越来越多。传统船舶检测技术多是在选择出的候选区域中提取出传统特征,再根据简单的分类器进行船舶分类识别,例如SVM分类器[1]等,候选区域的选择方法多采用不同尺寸的滑动窗口获得。传统特征包括HOG特征、Harr特征、SIFT特征[2]等,多为浅层特征,在目标分类上的识别准确率较低。同时,传统的船舶检测技术在产生候选区域时的计算耗时,检测速度达不到实时要求,检测效率低下。

近年来,深度学习[3-4]在船舶目标检测中的应用日益增多。相比传统特征,深度特征的语义信息丰富,特征表达能力更强。基于深度学习的船舶检测技术在识别精度和速率上不断获得了提高,应用也逐渐增多。Bian等[5]提出了以全景图像为载体对船舶进行检测,针对复杂的海洋环境,作者改进了Canny边缘检测算法,先对海天线进行了检测,再对海洋区域进行了船舶检测,但是检测的速度相对较慢。王啸雨[6]采用了一种改进的SSD算法检测船舶,为了解决VGG16网络提取出的特征不充分的问题,使用语义信息更为丰富的Res-Net50深度残差网络替换了SSD原网络中的VGG16网络。此种方法虽然提高了船舶的检测精度,但计算耗费大、速度慢,依然具备改进的空间。李辉[7]提出了一种基于Faster R-CNN的船舶检测方法,为确保在大雨、浓雾等恶劣天气下的检测效果,将Faster R-CNN算法与基于天空区域分割的暗通道先验去雾算法进行了结合,实现了对可疑船舶的监控。该方法有效解决了恶劣天气下的检测问题,但没有实现实时性。Chen等[8]提出了一种基于海上监视视频的Gauss混合模型舰船目标检测算法,该算法减少了背景中杂波的影响,提高了舰船检测的准确率,但在误检率方面仍然具备改进空间。夏婷等[9]提出了角点检测与光流法,并通过背景补偿对运动目标进行了检测。Redmon等提出了YOLOv3算法,该算法是对YOLOv2[10]算法的一系列改进。以Darknet-53[11]为特征提取网络并在不同尺度上预测边界框,具有较好的检测效果与检测速度,但其对复杂环境的视频多目标检测同样会出现误检和漏检等问题。

目 前,R-CNN[12]、 Fast R-CNN[13]、 Faster RCNN[14]、 SSD[15]、 YOLO(Yolo Only Look Once)[16]等算法较为主流。在单阶段算法中,YOLOv3算法以其检测精度高、识别速度快而闻名。YOLOv3算法是在YOLOv2算法的基础上参考 ResNet[17]和 SSD的网络结构进行的改进,其在性能上优于SSD、YOLOv1、YOLOv2算法。与 R-CNN系列算法相比,YOLOv3算法物体识别的精确度和召回率低。因此,本文选用YOLOv3算法作为基础网以进行改进,在不引入较多参数的情况下以进一步提高其检测精度,用于船舶检测。本文的工作主要包括以下几点:1)采用mixup方法对数据集进行数据增强;2)在Darknet-53骨干网络提取出特征图之后,引入了注意力机制;3)在测试时加入了显著性检测,对低置信度目标进行了边界框优化。

1 基于YOLOv3的目标检测算法

YOLOv3算法是YOLO系列算法的进阶版本,如图1所示。在骨干网络上,YOLOv3算法采用Darknet-53网络提取特征。Darknet-53由23个残差结构和5个下采样组成,性能优于Darknet-19,并且其没有采用YOLOv2算法中的池化层,而是以卷积层进行替代来达到下采样的效果。在边界框数量上,YOLOv2算法在每个grid cell上会预测5个边界框,而YOLOv3算法则在每个grid cell上预测3个边界框。在类别预测上,YOLOv3算法已改进为多标签分类。这是因为在一些复杂场景中,一个目标可能会对应多个标签。例如,当检测类别中包括猫、动物两个类别时,如果一张图片中出现一只猫,则检测结果中该目标应该包含猫和动物两个标签。在检测层上,YOLOv3算法采用特征金字塔结构(Feature Pyramid Networks,FPN)进行多尺度融合,生成了3个特征图,以对目标进行预测。在其他方面,YOLOv3算法则沿用了YOLOv2算法的做法。

图1 YOLOv3算法的网络结构图Fig.1 Diagram of network structure based on YOLOv3

YOLOv3算法的网络一共包含了107层:1)从0层开始直至74层为Darknet-53,其包含了52个卷积层和23个残差层。2)从75层至106层为yolo层,其总共3个尺度。小尺度yolo层输出大小为13×13×S的特征图;中尺度yolo层在85层进行上采样操作,并在86层进行特征融合操作,将85层和61层的特征拼接在一起,可输出大小为26×26×S的特征图;大尺度yolo层在97层进行上采样操作,并在98层进行特征融合操作,将97层和36层的特征拼接在一起,可输出大小为52×52×S的特征图。将3个尺度分别在82层、94层、106层进行分类和位置回归。当网络过深时,会丢失大量的图片细节信息,采用3个尺度预测可以更好地检测小目标。其中,S的表达式如下

式(1)中,B为每个单元格预测的边界框数量,C为类别数。

2 船舶目标检测网络模型

针对传统检测算法受复杂多变的海域环境条件影响而出现的鲁棒性差、目标识别能力不高的问题,为了获得对目标更精确的检测结果,本文对YOLOv3算法进行了改进。首先,采用mixup方法进行了数据增强;其次,在检测层引入了注意力机制以加强特征;最后,在检测时加入了显著性检测,用以提高检测精度。

2.1 mixup数据增强方法

mixup是一种数据增强方法,其采用对不同类别进行建模的方式实现数据增强,而通用数据增强方法则是针对同一类做出变换。mixup方法将两张图片通过不同的比例进行融合,合并之后的图像标签包含2张输入图像的所有标签,如图2所示。

图2 mixup图像Fig.2 Images of mixup

本文通过mixup方法对VOC2007数据集进行了数据增强:第一步,从训练集中读取一张图片;第二步,随机读取另一张图片并进行resize处理,将其改成与第一张图片相同的格式大小;第三步,对图片进行融合,融合比例为λ,将两张图片对应的像素直接相加;第四步,将所有新生成的图像与原数据集图像合并在一起,组成增强后的数据集。mixup方法的计算公式如下

在式(2)、 式(3)中,λ为融合比例,xi、yi为第i个数据集图像的横纵坐标,xj、yj为第j个数据集图像的横纵坐标,为mixup数据增强后图像的横纵坐标。

2.2 网络模型改进

YOLOv3算法是全卷积网络,包含75个卷积层,经过了5次下采样。随着网络的加深,特征的语义信息更加丰富,但是细节信息逐渐减少,可采用FPN进行多尺度融合。本文引入了通道注意力机制和空间注意力机制,将其与FPN进行了结合,选择性地关注了所有有用的信息,而忽略了其他可见信息。

深层特征包含了全局上下文感知信息,适合定位突出信息正确的地区。浅层特征包含了空间结构细节,适合于边界的定位。FPN可以将高级语义信息传递给浅层,但中间的许多上采样层增加了很多噪音。因此,在进行特征融合之前,在深层特征上添加了通道注意模块,以获取丰富的上下文信息,用于增强特征。对于浅层特征,本文采用空间注意模块增加了对位置信息的关注。改进模型的网络模型结构如图3所示。

图3 改进模型的网络模型结构Fig.3 Network structure of improved model

图3显示,SENet模块采用了通道注意力机制[18]。SENet模块的核心思想是通过网络并根据损失来学习特征权值,使有效的特征图具有较大的权值,无效或效果较差的特征图权重较小。如图4所示,SENet模块通过通道注意力机制为每个通道分配了权重:1)使用一个全局平均池化层将H×W×C特征图压缩成了1×1×C特征图,扩大了感受野;2)加入了两个FC全连接层,建模通道间的相关性,并输出和输入特征同样数目的权重;3)通过Sigmoid激活函数和Scale操作进行归一化和特征加权。

图4 SENet模型结构Fig.4 Model structure of SENet

在Spatial模块上采用空间注意力机制[19]。如图5所示,首先做一个基于通道的全局最大池化和全局平均池化,然后将这2个结果基于通道进行融合;其次,经过一个7×7的卷积层,生成单通道特征图;之后,利用Sigmoid函数进行归一化;最后,通过Scale操作进行特征加权。

图5 空间注意力机制模块Fig.5 Module of spatial attention mechanism

将经过SENet模块、Spatial模块输出的特征和从Darknet-53网络中提取的尺度为26×26的特征进行特征融合。如图6中的 “Five convs”卷积块所示,为了加强特征,在 “Five convs”卷积块中引入了残差连接,Predict模块由3×3卷积层和1×1卷积层构成。多尺度检测步骤为:1)将从SENet模块输出的13×13×1024特征图输入改进的FPN结构,即 ARFPN(Attention-Residual-FPN),经过“Five convs”卷积块提取特征,再经过Predict模块生成通道数为S的13×13尺度的特征图;2)对层4进行上采样,先对层2进行降维,再将两者融合,经过 “Five convs”卷积块和Predict模块生成通道数为S的26×26尺度的特征图;3)对层5进行上采样,并对从Spatial模块输出的特征图进行降维,再将两者相加,经过 “Five convs”卷积块和Predict模块生成通道数为S的52×52尺度的特征图。

图6 ARFPN结构Fig.6 Structure of ARFPN

Liu等[20]提出了一种基于提议的实例分割框架下的路径聚合网络(PANet),通过自底向上的路径增强,利用准确的低层定位信号增强了整个特征层次,从而缩短了低层与顶层特征之间的信息路径。FPN结构的主要工作原理为通过融合高低层特征提升目标检测的效果,FPN结构尤其可以提高小尺寸目标的检测效果。自底向上路径增强的引入主要考虑到了网络浅层特征信息对于实例分割而言非常重要。自适应特征池将单层特征转换为多层特征,每个ROI需要和多层特征进行ROI Align操作,随后将得到的不同层的ROI特征融合在一起,得到最终特征。针对原有的分割支路(FCN),全连接融合引入了一个前背景二分类的全连接支路,通过融合这两条支路的输出,可以得到更加精确的分割结果。YOLOv3算法输出的13×13特征图只包含了深层特征,难以通过其获得准确的定位信息。本文考虑到了网络浅层特征信息的重要性,去掉了PANet网络中自适应特征池、回归框分支和全连接融合等侧重实例分割的结构,在改进的FPN结构之后引入了PANet网络中的自底向上的路径增强,如图7所示,即ARPAN(Attention-Residual-PANet)。

图7 ARPAN网络结构Fig.7 Network structure of ARPAN

2.3 损失函数改进

YOLOv3算法中的损失函数包括分类损失、定位损失和置信度损失[21]。在 YOLOv3算法中,使用预测值与真实值之间的误差平方和来计算定位损失。但在进行检测结果指标评测时,使用IOU来判断目标是否被正确检测。故在YOLOv3算法中,定位损失大小与IOU大小不是绝对的负相关关系。如果使用IOU[22]作为损失函数又会出现以下问题:1)出现预测框和真实框不重叠情况时,IOU一直为0,无法通过梯度优化网络;2)如图8所示,当IOU相交时,即便IOU值确定,也不能反映两个框是如何相交的。

图8 相同IOU=0.33时两种不同相对位置的框Fig.8 Two boxes in different relative positions when IOU is 0.33

一个好的目标框回归损失应考虑以下三个几何因素:重叠面积、中心点距离和长宽比,因此本文采用 CIOU[23]替代 IOU作为定位损失函数。CIOU损失函数能够最小化预测框与真实框之间的中心点距离,从而使得函数快速收敛。另外,CIOU考虑了长宽比对边界框回归的影响,因此加入了惩罚项用于对长宽比进行考量。对于预测框A和真实框B,CIOU的计算公式如下

在式(4)~式(7)中,IOU为预测框 A 和真实框B的交并比,α为正样本权衡参数,v为用来衡量宽高比的一致性参数,wgt、hgt分别为真实框的宽和高,w、h分别为预测框的宽和高,d为预测框和真实框中心点之间的直线距离;c为预测框和真实框的最小外包围框的对角线距离。

2.4 显著性检测

YOLOv3算法通过训练出的网络模型对图片进行检测,检测出的置信度评分是判断边界框是否可用的依据。通常,当IOU大于0.5时,认为该边界框是可用的;当IOU小于0.5时,则认为该边界框不可取。为了进一步提高检测效果,在检测时可结合显著性检测技术[24]来修正低置信度(即IOU小于0.5)的目标位置。

对于低置信度的边界框应进行如下的修正:1)选出低置信度的目标边界框;2)以其中置信度大于0.2的边界框的1.25倍范围作为显著性检测的区域;3)使用显著性检测FT算法生成显著性图;4)将显著性值突出区域的外矩形包围区域作为最终的目标位置。如图9所示,红色框内为改进YOLOv3算法模型的训练流程,蓝色框内为检测流程。

图9 改进YOLOv3算法模型的训练和检测流程图Fig.9 Training and testing flowchart of improved YOLOv3 model

3 实验结果与分析

3.1 数据集及训练过程

本文分别在VOC2007数据集和自建船舶数据集上进行了测试。VOC2007数据集包含了20个目标类别。其中,训练集有5011张,测试集有4952张。在本文自建的船舶数据集中,原始图片中的一部分为从VOC2007和VOC2012数据集中提取出的船舶图片,另一部分图片为从7个在岸上拍摄的新加坡船舶视频和从7个在船上拍摄的新加坡船舶视频中每隔20帧提取一张视频图片进行手工标注而获得。通过旋转、添加噪声及改变亮度,一共获得了训练集图片4708张、测试集图片708张,训练时间为16h。

在进行模型训练时,从训练集中划出十分之一作为验证图片,划出十分之九作为训练图片。将训练划分为2个阶段:第1个阶段冻结网络的前185层,训练50个epoch,学习率为1×10-3;第2个阶段解冻全部网络,训练到网络自动停止,初始学习率设为1×10-4。如果每3个epoch的验证损失不下降,学习率将变为原来的十分之一;如果每10个epoch的验证损失不下降,则停止训练。

3.2 VOC2007数据集测试结果与分析

本文在Spyder中使用python3.6进行了算法编程,深度学习框架为 tensorflow-GPU1.13.1、Keras2.1.5,实验平台使用的是 Ubuntu16.04系统、i7-8750H CPU@2.20GHz×12处理器、15.5GiB内存,GeForce GTX 1060 6G显卡用于加速卷积神经网络模型的训练过程。

表1显示了本文改进算法与原YOLOv3算法的网络训练参数量。YOLOv3-base为原YOLOv3算法的网络模型,YOLOv3-ARFPN和YOLOv3-ARPAN为本文对YOLOv3网络进行改进的两种网络模型。YOLOv3算法的网络总参数为61576342个,本文改进算法YOLOv3-ARFPN的网络总参数为62100728个,比YOLOv3算法增加了524386个参数,参数增加约 0.85%;改进算法 YOLOv3-ARPAN由于额外增加了18个卷积层,故网络总参数为 77445880个,比 YOLOv3算法增加了l5869538个参数,参数增加约25.77%。

表1 本文算法与YOLOv3算法的网络训练参数量Table 1 Network training parameters of the algorithm in this paper and the YOLOv3 algorithm

可使用VOC2007数据集中的测试集来验证本文方法的检测效果。mAP为平均准确率均值,ΔmAP为改进算法与YOLOv3算法的平均准确率均值的差值,FPS为每秒检测图片的帧数。如表2所示,本文改进算法相比原YOLOv3算法获得了很大提升,本文改进的ARPAN网络模型与mixup数据增强、CIOU损失函数、显著性检测相结合而组成的YOLOv3-mixup-ARPAN-CIOU-Ft算法提升最大,mAP值提高了11.25%。

表2 各种模型在VOC2007测试集上的mAP值和FPSTable 2 mAP and FPS of various models on VOC2007 test set

在考虑衡量精度与速度的前提下,本文改进的ARFPN网络模型与mixup数据增强、显著性检测相结合而组成的YOLOv3-mixup-ARPAN-Ft算法效果更好,mAP值提高了11.16%,FPS减少了1.52帧/s。接下来,对YOLOv3算法与YOLOv3-mixup-ARPANFt算法进行对比分析。图10(a)显示了原YOLOv3算法在VOC2007测试集上的mAP计算结果,图10(b)显示了本文改进的YOLOv3-mixup-ARFPN-Ft算法在VOC2007测试集上的mAP计算结果。从图10可以看出,在20个类别中,本文算法对 “椅子”的检测效果提升最高,相比YOLOv3算法的AP值提高了16%;在20个类别中,本文算法对 “火车”的检测效果提升最小,但也提高了3%。在20个类别的平均准确率均值(mAP)方面,本文算法相比YOLOv3算法提高了11.16%。

图10 YOLOv3算法及本文算法在VOC2007上的mAP值Fig.10 mAP of the algorithm in this paper and the YOLOv3 algorithm on VOC2007 test set

图11为YOLOv3算法与本文各种改进模型在VOC2007测试集上的20种类别对应的平均准确率(AP)的折线图。从图11可以看出,在算法2~算法4(对应表2)中,大多数类别的平均准确率均高于YOLOv3算法。特别地,沙发、羊、鸟和牛这4个类别的平均准确率的提升幅度比较大。

图11 各种算法在VOC2007测试集上的平均准确率Fig.11 Average precision of various algorithms on VOC2007 test set

表2中的算法4在检测速度下降较少的前提下,平均准确率提升较高,因此可结合图片对该算法与原 YOLOv3算法进行对比分析,图12~图16为VOC2007数据集中的部分测试图片。图12为在本文改进算法中算法4与 YOLOv3算法在VOC2007数据集上的图片检测结果。其中,蓝色框为目标正确检测到的真实框(GT),绿色框为目标正确检测到的预测框(TP),红色框为误检预测框(FP),粉色框为漏检真实框(FN)。YOLOv3算法只正确检测出了一个目标,而狗没有被检测出来;相比之下,本文算法可正确检测出人和狗两个目标。在图13中,YOLOv3算法漏检了2个车辆以及屏幕中的3个人;本文算法未检测出屏幕中的2个人,但将其他目标全部正确检测了出来。在图14和图15中,YOLOv3算法分别出现了对船和狗的漏检,而本文算法正确检测出了船和狗。在图16中,YOLOv3算法未检测出右边沙发上方和旁边的花盆以及最左边的沙发;本文算法检测出了右边沙发上方的花盆,但未检测出右边沙发旁边的花盆。左边沙发检测框的IOU小于0.5,故可判断为漏检。由以上分析可以看出,本文算法较YOLOv3算法取得了一定程度的提高。

图12 测试图片1的检测结果对比Fig.12 Detection result comparisons of test image 1

图13 测试图片2的检测结果对比Fig.13 Detection result comparisons of test image 2

图14 测试图片3的检测结果对比Fig.14 Detection result comparisons of test image 3

图15 测试图片4的检测结果对比Fig.15 Detection result comparisons of test image 4

图16 测试图片5的检测结果对比Fig.16 Detection result comparisons of test image 5

3.3 自建船舶数据集测试结果与分析

表3显示了YOLOv3算法与本文算法在自建船舶数据集上的测试结果。YOLOv3-base为原YOLOv3算法的网络模型,其在测试集上的AP值为83.76%;YOLOv3-ARFPN为在YOLOv3网络中引入通道注意力机制、空间注意力机制以及在FPN中使用残差结构的模型,其在测试集上的AP值为88.37%;YOLOv3-ARFPN-Ft为在YOLOv3-ARFPN进行测试过程中对低置信度目标进行显著性检测的算法,其在测试集上的AP值为90.29%,与原YOLOv3算法相比,AP值提高了6.53%。增加显著性检测可以适当地提高船舶检测的准确率,但是也会降低检测速度。由表3可知,YOLOv3-mixup-ARPAN-CIOU-Ft的 AP值最高,为 91.41%,相比YOLOv3算法提高了7.65%。mixup数据增强和CIOU损失函数均可以同时提高准确率(Precision)和召回率(Recall), 而 ARFPN、 ARPAN 和 Ft(显著性检测)在提高召回率的同时,却会降低准确率。

表3 YOLOv3算法和改进模型在自建船舶数据集上的对比Table 3 Comparison of YOLOv3 and the improved model on self-built ship data set

TP为正样本被正确检测出船舶的数量,FP为负样本被误检为船舶的数量,ΔTP为本文算法与YOLOv3算法的 TP差值,ΔFP为本文算法与YOLOv3算法的FP差值。ΔTP越大、ΔFP越小,算法的检测效果越好。表4显示了YOLOv3算法与本文算法在自建船舶数据集上计算出的TP、FP结果。由表4可知,YOLOv3-mixup-ARPAN-CIOU-Ft算法的TP提升最多,比YOLOv3算法的TP提高了135,YOLOv3-mixup-ARPAN-CIOU算法的FP相比YOLOv3算法降低了46。

表4 自建船舶数据集的TP、FP值Table 4 Values of TP and FP on self-built ship data set

图17 测试图片6的检测结果对比Fig.17 Detection result comparisons of test image 6

由表3、表4可知,从准确率、召回率、平均准确率和误检等多个指标考虑,算法9的表现更好,在上述几个指标上均实现了较大程度的提高。图17~图22展示了部分本文改进算法中算法9与YOLOv3算法在自建船舶数据集上的检测结果。其中,蓝色框为目标正确检测到的真实框(GT),绿色框为目标正确检测到的预测框(TP),红色框为误检预测框(FP),粉色框为漏检真实框(FN)。由图17~图19可知,YOLOv3算法的检测存在漏检船只,而本文算法可实现全部的正确检测。由图20~图22可知,YOLOv3算法出现了漏检和误检船只,而本文改进算法在这几张图片中均可实现正确的检测。如图23中的PR曲线所示,本文算法在自建船舶测试集上的平均准确率相比YOLOv3算法提高了6.53%。综上所述,在船舶的检测方面,本文算法相比YOLOv3算法获得了较大程度的提高。

图18 测试图片7的检测结果对比Fig.18 Detection result comparisons of test image 7

图19 测试图片8的检测结果对比Fig.19 Detection result comparisons of test image 8

图20 测试图片9的检测结果对比Fig.20 Detection result comparisons of test image 9

图21 测试图片10的检测结果对比Fig.21 Detection result comparisons of test image 10

图22 测试图片11的检测结果对比Fig.22 Detection result comparisons of test image 11

图23 YOLOv3算法与本文算法在测试集上的PR曲线对比结果Fig.23 Comparison results of the PR curve between the YOLOv3 algorithm and the algorithm in this paper on test set

4 结论

本文首先通过mixup方法进行了数据增强,然后通过Darknet-53主干网络提取了船舶特征,引入了注意力机制过滤噪声,将残差连接与特征金字塔融合进行了结合,并在特征金字塔上引入了自底向上的路径增强,实现了对船舶的检测,最后通过显著性检测对低置信度的目标框位置进行了修正。实验结果表明,改进算法与YOLOv3算法相比,在网络参数增加较少的前提下,有效提升了船舶检测的精确度和鲁棒性。但是,本文目前仅将各类船舶作为同一个类别进行了检测,未对船舶进行详细分类,故下一步还需对船舶进行更详细的分类,以实现海上船舶检测。

猜你喜欢

集上显著性船舶
基于标记相关性和ReliefF的多标记特征选择
大数据分析的船舶航迹拟合研究
船舶稳性控制系统研究
一种结合多尺度特征融合与像素损失加权的显著性目标检测方法
关于短文本匹配的泛化性和迁移性的研究分析
视频序列中视觉显著性图像区域自动提取仿真
《船舶》2022 年度征订启事
船舶上层建筑建造工艺探讨
欧盟法院判决明确欧盟商标通过使用获得显著性的地域认定标准
商标显著性的司法判断(一)