融合图像显著性的YOLOv3船舶目标检测算法研究
2020-12-01陈连凯李邦昱齐亮
陈连凯 李邦昱 齐亮
摘 要:针对复杂水面环境下的船舶目标检测问题,运用融合图像显著性的YOLOv3船舶目标检测改进算法以提高检测能力。该算法基于Darknet-53网络模型,根据水上船舶特点,融合非极大值抑制算法Soft-NMS和显著性检测算法FT思想,进一步优化最终检测以达到更准确的效果。用Soft-NMS算法替换原有NMS算法,使得算法对小目标和重叠目标检测效果明显提升。融入FT算法对船舶图像局部细节作进一步细化,使得包围盒回归更加准确。在建立的数据集上进行训练与测试,实验结果表明,改进方法比原始方法准确率提高4%,达97%,检测速度提高10帧/s,达30帧/s,表明改进算法有效提高了船舶目标检测精度,且加快了检测速度。
关键词:船舶目标检测;YOLOv3;Soft-NMS;显著性检测
DOI:10. 11907/rjdk. 201157
中图分类号:TP312文献标识码:A 文章编号:1672-7800(2020)010-0146-06
Abstract:Aiming at the problem of ship target detection in a complex water surface environment, we employ an improved YOLOv3 ship target detection algorithm that incorporates image saliency based on the Darknet-53 network model. This method is based on the characteristics of watercraft, combining the non-maximum suppression algorithm Soft-NMS (Soft Non-Maximum Suppression) and the significance detection algorithm FT (frequency-tuned salient region) to further optimize the final detection to achieve a more accurate effect. The Soft-NMS algorithm is used to replace the original NMS algorithm, so that the algorithm can significantly improve the detection effect of small targets and overlapping targets. The FT algorithm is incorporated to further refine the local details of the ship image, making the regression of the bounding box more accurate. Training and testing on the data set established in this article, the experimental results show that the accuracy of the improved method is 4% higher than the original method, reaching 97%, and the detection speed is increased by 10 frames/s to 30 frames/s. It shows that the improved algorithm effectively improves the accuracy of ship target detection and speeds up the detection speed.
Key Words: ship target detection; YOLOv3; Soft-NMS; salient region detection
0 引言
隨着计算机视觉与机器视觉的快速发展,深度学习算法在目标检测、识别和跟踪领域取得了良好效果[1]。Krizhevsk等[2]提出图像分类算法,该算法是基于深度卷积神经网络(Deep Convolutional Neural Network,DCNN)的算法,极大提高了目标检测率与识别率;Szegedy等[3]将已有目标检测的一分为二方法直接合二为一,转为目标回归方法,使用回归器对图像中的目标进行预测评估;Erhan等[4]采用深度卷积神经网络对目标的包围盒进行回归预测,每个包围盒所包含类别无关对象的置信度会被对应给出;刘学平等[5]提出一种嵌入SENet结构的改进YOLOv3目标识别算法,减少了假正例数量,得到 90.39%的查准率和 93.25%的查全率;Liu等[6]提出多尺度检测方法SSD (Single Shot Multibox Detector,SSD),根据目标尺寸大小自主选择不同的预测器,预测边界框位置中的对象类别与偏移量,同时应用于网络最后阶段的多特征映射,达到了多尺度的预测效果;谷东亮等[7]调整Faster R-CNN所采用的网络结构,在区域生成网络的第一个全连接层后增加了一个Dropout层,使得船舶检测准确率达90.4%。
内河及海上复杂环境、船舶运动导致的船舶晃动、多条船舶相会导致船舶重叠、反复无常的天气变化、船舶远小近大的客观成像因素差异等问题,使得船舶检测识别率受到极大影响。
针对以上问题,本文运用融合图像显著性的YOLOv3船舶目标检测算法,该算法是基于Darknet-53网络模型。本文采用的目标检测模型以YOLOv3网络为基础,首先通过大量卷积层提取目标深度特征,然后对YOLOv3 模型结构进行调整与改进,通过改进的非极大值抑制Soft-NMS和利用图像显著性FT算法提取特征与卷积深度特征进行张量操作和特征融合,提高目标检测精度,尤其是小目标与重叠目标检测能力。
1 YOLOv3算法
1.1 边界框预测
使用K-means聚类方法得到YOLOv3的包围盒(Anchor Box)[8]。各边界框(Bounding Box)的实际坐标位置分别为[tx]、[ty]、[tw]、[th]。一幅图像通常会被划分成[N×N]个单元格,用[cx]和[cy]表示图像左上角单元格的偏移量。先前得到边界框的宽和高分别用[pw]和[ph]表示,按照式(1)即可预测出边界框实际位置[9]。
其中,边界框中心点坐标为[bx]、[by];边界框宽和高的坐标为[bw]、[bh];Logistic函数用[σ()]表示,坐标归一化范围为0-1。
如式(2)所示,YOLOv3 网络使用逻辑回归计算预测每个边界框的分数,即置信度,如果先验边界框和真实边界框的重叠度是所有边界框中最高的,则该置信度为1。阈值用于控制重叠部分的舍弃与否,低于则被舍弃。目标预测的损失是先验边界框没有分配真实对象所造成,但不会影响分类预测[10]。
式(2)中,[confidence]表示预测边界框和真实边界框的分数;[Pr(Object)]用于判断单元格里是否存在目标对象;[IOUtruthpred]表示预测边界框与真实边界框的交并比。YOLOv3网络是通过相乘单元格类别概率和单元格中含有的目标和适度确定各类别置信分数,如式(3)所示。
式(3)中,[PrClassi|Object]表示某一类别在单元格出现的概率;[PrClassi]表示单元格与待检测目标匹配度。
1.2 Logistic分类器
YOLOv3使用多个Logistic分类器代替Softmax 分类器,其使用多标签分类预测边界框可能包含的类别,仅给每个对象分配一个先验框[11]。使用二值交叉熵损失函数(Binary Cross-Entropy Loss)计算改进后的分类损失,交叉熵损失函数如式(4)、式(5)所示。
众多结构与参数构成了庞大的目标检测结构,其中[x,y]、[(w,h)]、[class]和 [confidence]是重要组成部分。在YOLOv3网络中,其它部分使用的损失函数是二值交叉熵,而[(w,h)]的损失函数仍然使用总方误差。
总方误差损失函数如式(6)、式(7)所示。
其中,[yi]表示网络預测值,[yi]表示标注值。
1.3 多尺度预测
YOLOv3网络可以预测3种不同尺度的边界框,其主要原理是利用高层特征进行上采样、低层特征进行自顶而下提取不同尺度下的特征[12]。在基本特征提取器中增加了卷积层,使用最后的卷积层预测一个三维张量编码,即为边界框、框中目标和分类预测。如果每个尺寸的神经网络都预测了3个边界框,则得到的张量S如式(8)所示。
其中,4个边界框的偏移量用[4]表示,[1]表示1个目标预测,[classes]表示预测类别个数。
1.4 特征提取
YOLOv3网络使用一个全新的网络进行特征提取,对比YOLO系列网络之前的版本,此网络汲取了YOLOv2网络结构与Res Net网络结构的优点,被称作为Darknet-53。
YOLOv3网络第一次检测结果是13×13的特征图,其被多次卷积而来,通过对13×13的特征图进行上采样处理进而获得26×26的特征图,接着使用获得的26×26特征图与原网络26×26的特征图融合形成新特征图,并通过多次卷积计算得到第二次检测结果;然后对26×26的特征图进行上采样处理以获得52×52的特征图和原网络52×52的特征图融合形成的新特征图,之后通过多次卷积得到第三次检测结果[13]。最终检测识别结果通过对上述3次获得的结果图进行非极大值抑制操作而获得。
2 融合图像显著性的YOLOv3船舶目标检测模型
本文采用的目标检测模型以YOLOv3为基础框架,针对水上船舶的特点,结合了非极大值抑制算法Soft-NMS(Soft Non-Maximum Suppression)和显著性检测算法FT (frequency-tuned Salient Region),进一步优化最终检测以达到更准确的效果。用Soft-NMS算法替换原有NMS算法,提高本文算法对小目标和重叠目标的检测效果。融入FT算法对船舶图像局部细节作进一步细化,使得包围盒回归更加准确。具体流程如图1所示。
2.1 图像显著性检测
图像中能够吸引人注意的区域,往往含有较大信息量[14]。在看一幅图像时,人们的关注点往往是图像中感兴趣的区域,而其它剩余的不感兴趣区域则被认为是无关部分。显著区域指图像中某些内容最能够表现出来的关键区域。常用图像显著性分析方法主要原理是根据人的注意力机制分析图像。认知科学家根据实际情况及经验,提出多种数学模型,已达到模拟人注意力机制的效果[15]。
根据频率可将图像划分为低频部分和高频部分:图像低频部分反映了图像整体信息;图像高频部分反映了图像局部详细信息。显著区域检测使用了低频部分的更多信息[16]。本文使用基于低频的FT(frequency-tuned Salient Region)算法,FT方法利用高斯平滑舍去背景区域最高频部分,以突出目标区域,像素显著性计算公式如式(9)所示。
其中,[Iμ]为图像平均特征,后一项为像素p在高斯平滑后的Lab颜色特征,||.||为一种范式,即计算Lab颜色空间的欧氏距离。
对于图像目标整体及突出的局部信息,本文采用显著性检测算法,将已检测到的目标区域提取对应的显著性特征图,使之融合YOLOv3网络的Darknet-53提取特征,加强船舶图像语义信息,提升目标预测框预测分数,使得包围盒回归更为准确,进而提高检测准确率,如图2所示。
2.2 Soft-NMS
利用检测边框确定特定类别的目标,并得出置信度,以达到检测识别目标之目的。目标的传统检测流程采用滑动窗口,这种窗口是多尺度的,需根据每个目标类别的前景分数及背景分数计算每个目标特征。当相邻窗口得分比较接近时,会导致检测结果假阳性错误:错误的肯定。为了解决此类问题,采用非极大值抑制方法对目标检测结果进行再处理,进而得到正确检测结果。非最大抑制算法有效且高效地减少了目标检测结果的假阳性[17]。
图3中,检测算法原本应该输出两个框,但是传统NMS算法可能会将重叠和小目标的船舶过滤掉,导致只检测出一只船舶,因此目标召回率较低。
传统非极大值抑制算法原理是:在检测到的图片中生成所需检测框B和检测框对应分数S,对选择得分最高的检测M,将其从检测帧B中删除,并将其存储在最终检测结果集D中。同时,大于设定重叠阈值[Nt]的部分:集合B中任何与检测框M的重叠部分会被移除。非极大值抑制算法中将相邻检测框的分数均强制归零,这就是最大问题所在[18]。此时,如果重叠区域出现目标,则存在目标漏检情况,甚至导致检测失败,从而降低了算法平均检测率AP(Average Precision)。
如图4所示,本文在YOLOv3网络中加入Soft-NMS算法。该算法是在非极大值抑制算法上作出改进,设置了衰减函数,使得重叠部分相邻检测框的分数不会置零。如果检测框与M重叠部分较大,则得分低;如果检测框与M重叠部分较小,则此部分原始得分不会发生改变。在标准数据集PASCAL VOC 2016 和 MS-COCO 2018等标准数据集上,加入Soft-NMS的目标检测算法在目标有重叠部分时检测平均准确率显著提升。
传统NMS方法可通过分数重置函数(Rescoring Function)表达,如式(10)所示。
通过NMS设置的硬阈值判断相邻检测框是否应被保留。若检测框[bi]与检测框M高度重叠,易出现漏检情况;若检测框[bi]中所包含的目标是不同于检测框M中的目标,则即使在检测阈值较低情况下,该目标也不会被漏检;若检测框[bi]中不包含任何目标,则在衰减过后,会产生假阳性效果并且检测框[bi]的得分会很高。通过较低的NMS重叠阈值设置,以达到移除所有相邻检测框的效果,这种做法显然不是最优解,并且极易出现误检、漏检等情况,尤其是在目标高度重叠的部分[19]。
Soft-NMS中的分数重置函数:衰减与检测框M有重叠相邻检测框的分数,重叠度越高,越容易导致错误结果,也越严重地造成分数衰减。如此,需对NMS的分数重置函数作出必要改进,如式(11)所示。
其中,阈值[Nt]用于规定重叠度范围,使相邻检测框與M的重叠度大于[Nt]的检测框在检测分数上呈线性衰减。此时,极大地衰减与M相邻越近的检测框,而远离M的检测框则反之[20]。
使用权重函数乘以当前检测框得分,此权重函数与最高得分检测框M有重叠的相邻检测框分数会出现衰减,检测框与M框重叠度越高,衰减程度越严重。因此,选用高斯函数为权重函数,改变其检测框删除规则。高斯权重函数如式(12)所示。
如图4所示,权重函数f(iou(M,bi))是基于检测框的重叠程度。算法中每一步的复杂度用[O(N)]表示,表示图片中有N个检测框,Soft-NMS算法复杂度为[O(N2)],与传统NMS算法有一定相同之处。
如图5所示,相对于传统NMS算法,Soft- NMS 算法能够提高模型检测与分类效果,且不增加额外计算量。Soft-NMS对重叠和小目标有较好检测效果,能很好地融入本文算法,降低漏检率,加快运算速度。
3 训练
算法检测速率快慢、准确率高低取决于数据集是否兼具数量与质量。由于目前没有公共的开源船舶数据库,因此将小组成员制作的船舶数据集作为训练数据集。小组成员经过省内多地实地考察,最终选择长江作为数据采集地。采集20 000张船舶目标图片,选取6 000张多目标图片与3 000张单目标图片,利用LabelImg工具进行标注,记录船舶图像左上右下位置及类别,生成xml格式[21],本文将船舶类别分为3类,分别为“xunluochuan、kechuan、huochuan”。
本文实验仿真环境:ThinkStation,内存为128GB,GPU处理器为RTX2080Ti,软件环境为Python3.7.3、VS2015、Opencv3.4.2、JetBrains PyCharm 2019.1.2、Anaconda3.4.1、CUDA10.0、CUDNNv7.1, TensorFlow1.2.1。
本文选择的特征提取网络为Darknet-53,权重初始值是在通用目标训练集上训练而来,具有一定普适性。本文选取的训练图片为5 000张,测试图片为2 000张,学习率为0.001,Momentum设置为0.9,Weight Decay设置为0.000 5。
4 实验结果与分析
考虑到算法的合理性、有效性及鲁棒性,本文算法训练迭代次数设置为50 200次。由图6可知,当训练次数在30 000次左右时,平均损失函数值在一个数值0.0 920上下浮动,并趋于稳定,表明训练过程收敛,达到了良好效果。
召回率与准确率曲线衡量一个分类器的重要性能指标,实验设定IOU的阈值为0.5,对3类船舶进行检测。图7—图9是本文算法训练的召回率与准确率关系曲线,可以看出,准确率有振荡出现,表明正样本被判断为正例在变多,但负样本被判断为正例也在变多。本文3种船舶的PR曲线、高点AP(Average Precision)值、PR曲线下围面积,整体趋于良好表现,体现出本文算法的良好性能。
实验结果根据本文建立的训练集和测试集而得,图10和表1是本文方法实验结果。分析可知,本文方法明显优于热门的深度学习算法Faster R-CNN、YOLOv3(You Only Look Once v3),检测速率得到一定程度提高,每秒大约检测30张图片;通过传统深度学习算法能够很好地进行船舶图像目标检测,但相对而言,目标检测速度较慢,每秒钟只能检测大约13张图片;本文方法是对算法YOLOv3的改进,在水上船舶检测中显著减少了算法训练和检测时间,提高了准确率。改进的YOLOv3深度网络经过训练后进行测试并验证,比较Faster R-CNN和 YOLOv3算法在相同训练集与测试集上进行训练、测试与验证,发现改进的YOLOv3算法准确率可提高到97%,主要原因是本文算法加入了图像显著性FT算法与Soft-NNS,提高了算法对预测边界框与真实框的预测率。
5 结语
本文提出了一种改进的船舶目标检测算法,在YOLOv3深度模型中利用Soft-NMS替换原有NMS,减小了重叠目标漏检率;利用显著性检测FT算法,突出感兴趣区域,使背景区域与目标区域有显著差别,从而加强YOLOv3边框回归的可靠性。从实验结果可知,本文方法兼具稳定、快速与准确等优点,能够应对复杂的水面环境,发挥出算法在检测、速度上的最大优势。
本文算法主要依赖于高性能计算能力的硬件设备和高质量训练数据,如何轻量化网络模型,考虑训练集的图像视频帧之间的关系,实现更加高效、多尺度的水面船舶目标检测,是进一步研究的问题。
参考文献:
[1] 王春艳,刘正熙. 结合深度学习的多目标跟踪算法[J]. 现代计算机(专业版),2019(6):55-59.
[2] KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[C]. NIPS2012:Proceedings of the 25th International Conference on Neural Information Processing Systems,2012: 1097-1105.
[3] SZEGEDY C, TOSHEV A, ERHAN D. Deep neural networks for object detection[C]. Proceedings of the 2013 International Conference on Neural Information Processing Systems.Cambridge, MA: MIT Press, 2013: 2553-2561.
[4] ERHAN D, SZEGEDY C, TOSHEV A , et al.Scalable object detection using deep neural networks[C]. CVPR 2014: Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition,2014: 2155-2162.
[5] 劉学平,李玙乾,刘励,等. 嵌入SENet结构的改进YOLOV3目标识别算法[J]. 计算机工程,2019,45(11):243-248.
[6] LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector[C]. Proceedings of the 2016 European Conference on Computer Vision, 2016: 21-37.
[7] 谷东亮,徐晓刚,金鑫. 基于Faster R-CNN的海上船舶识别算法[J]. 图像与信号处理,2018,7(3): 136-141.
[8] 葛雯,史正伟. 改进YOLOV3算法在行人识别中的应用[J]. 计算机工程与应用,2019,55(20):128-133.
[9] 吕铄,蔡烜,冯瑞. 基于改进损失函数的YOLOv3网络[J]. 计算机系统应用,2019,28(2):1-7.
[10] 李慧欣. 舰船视觉系统海空多目标识别与跟踪技术研究[D]. 哈尔滨:哈尔滨工程大学,2019.
[11] 周龙,韦素媛,崔忠马,等. 基于深度学习的复杂背景雷达图像多目标检测[J]. 系统工程与电子技术,2019,41(6):1258-1264.
[12] 王玺坤,姜宏旭,林珂玉. 基于改进型YOLO算法的遥感图像舰船检测[J/OL]. 北京航空航天大学学报:1-10. 2019-12-27. https://kns.cnki.net/KCMS/detail/11.2625.v.20191024.1126.003.html.
[13] 魏宏彬,张端金,杜广明,等. 基于改进型YOLO v3的蔬菜识别算法[J/OL]. 郑州大学学报(工学版):1-6. 2020-03-04. https://kns.cnki.net/KCMS/detail/41.1339.T.20191219.1601.005.html.
[14] 张守东,杨明,胡太. 基于多特征融合的显著性目标检测算法[J]. 计算机科学与探索,2019,13(5):834-845.
[15] 李鑫,陈雷霆,蔡洪斌,等. 基于双层多尺度神经网络的显著性对象检测算法[J]. 微电子学与计算机,2018,35(11):1-7.
[16] 李平娜,吴清. 改进的频域协调显著性检测及应用[J]. 现代计算机(专业版),2017,34(8):77-80.
[17] 赵文清,严海,邵绪强. 改进的非极大值抑制算法的目标检测[J]. 中国图象图形学报,2018,23(11):1676-1685.
[18] 张海玉,陈久红. 一种基于深度学习的夜间车流量检测方法[J]. 软件导刊,2019,18(9):33-37.
[19] HE K M,ZHANG X Y,REN S Q,et al.Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015,37(9): 1904-1916.
[20] 张银松,赵银娣,袁慕策. 基于改进Faster-RCNN模型的粘虫板图像昆虫识别与计数[J]. 中国农业大学学报,2019,24(5):115-122.
[21] 谭俊. 一个改进的YOLOv3目标识别算法研究[D]. 武汉:华中科技大学,2018.
(责任编辑:孙 娟)