本发明属于计算机视觉技术领域,具体涉及基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法。
背景技术:
船舶是能航行或停泊于水域进行运输或作业的交通工具,我国是海事大国,每日有大量船只在我国领海活动,对于船只的管理与监控是海事部门的重要职责。但是由于我国海域宽广,船只流量巨大等原因,海面船只的监管不能直观地显示出来。sar(syntheticapertureradar),即合成孔径雷达,是一种主动式的对地观测系统,可安装在飞机、卫星、宇宙飞船等飞行平台上,全天时、全天候对地实施观测、并具有一定的地表穿透能力。sar影像具有全天候,抗云雨等特点,因此基于sar影像的舰船目标检测与识别技术在海洋监测等领域具有重要意义。
人类社会已经进入大数据时代,传统的信息存储和传播媒介已逐渐为计算机所替代,并呈现出指数增长的趋势,成为21世纪最为重要的资源之一。人工智能技术的快速发展为大数据隐含信息的精准获取和有效整合应用能力提供了全新的策略,深度学习是人工智能技术中目前研究最火热的一种技术,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本,通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。深度学习能够得到很好地表示数据的特征,同时由于模型的层次、参数很多,因此,模型有能力表示大规模数据,能够在大规模训练数据上取得更好的效果。
将sar影像海面舰船检测与深度学习有机结合,能够在速度和精度方面超越传统检测方法。同时,使用低分辨率的sar影像可以进行大范围的舰船检测识别,在保证精度的情况下,弱化了海面舰船监管的难度,能提高有关部门的工作效率。
因此,现阶段需要提供基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法。
技术实现要素:
本发明目的在于提供基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法,用于解决上述现有技术中存在的技术问题之一,如:将sar影像海面舰船检测与深度学习有机结合,能够在速度和精度方面超越传统检测方法。同时,使用低分辨率的sar影像可以进行大范围的舰船检测识别,在保证精度的情况下,弱化了海面舰船监管的难度,能提高有关部门的工作效率。
为实现上述目的,本发明所采用的技术方案是:
基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法,其特征在于,包括以下步骤:
s1、数据预处理:将sar影像数据进行数据标注与切分,将voc2012图片数据集进行三通道灰度平衡处理;
s2、在步骤s1的基础上,进行yolov3模型预训练:将voc2012图片数据集作为输入数据,投入通用yolov3模型中进行模型训练;
s3、在步骤s2的基础上,对训练后的yolov3模型进行迁移学习:将sar影像数据投入预训练后的yolov3模型当中进行优化,获得目标yolov3检测模型;
s4、在步骤s3的基础上,对实时sar影像数据进行滑动窗口策略处理,然后输入到所述目标yolov3检测模型中,从而获得检测结果,并对所述检测结果进行聚类算法去重。
优选的,步骤s1中,将sar影像数据进行数据标注与切分包括:
对原始sar影像数据图片做切分操作,将宽幅的影响图片切分为若干小份的图片,在此基础上对图片进行标注。
优选的,所述标注的具体过程指的是:先利用先验知识识别图片中的船只,再使用相关工具将图片中船只的具体位置和大小进行标注,即表示为一个一维数组,其中包含船只在图片中的横纵坐标值以及船只检测框的长宽值,将相关数据保存,作为训练数据。
优选的,步骤s1中,将voc2012图片数据集进行三通道灰度平衡处理包括:
逐像素读入voc2012图片中某像素的三通道值,将三通道值取平均再将这个均值依次赋值到该像素的三通道值中。
优选的,步骤s2中,所述训练的具体过程为:
输入的voc2012图片首先经过darknet网络的多层卷积操作进行特征提取,之后将初步经过特征提取所得到的特征图输入到类fpn结构化网络中,分别得到三个尺度的特征图,再将这三个特征图输入到逻辑回归判断层中得到判断结果,将这一判断结果与真实结果通过损失函数得到损失值,再通过反向传播算法将影响反馈回网络前端,网络根据反馈调整网络参数,达到训练的目的。
优选的,步骤s3具体为:
将预训练后的yolov3模型再次作为待训练模型,将sar影像数据作为输入投入到所述待训练模型中进行训练,其过程与步骤s2中训练过程相同;其中,本过程还保证预训练后的yolov3模型中的部分网络参数不变,仅允许后续层级的参数可以在训练中被改变。
优选的,步骤s4中,所述滑动窗口策略包括:
通过自定义窗口大小和滑动步长,将sar影像数据中图像分割成多幅待检测图像,并将其放入所述目标yolov3检测模型中,得到基于原始图像的检测结果。
优选的,步骤s4中,所述聚类算法去重包括:
多次重复检测原始图像中的某个目标,并对可能的重复检测进行聚类,并将聚类结果作为最终检测结果,进而完成重复数据消除过程。
优选的,所述voc2012图片数据集是常规三通道彩色图片构成的数据集。
优选的,在yolov3模型的特征提取网络之后接入了一个fpn结构的特征输出层,分为13x13,26x26,52x52大小的三个维度,其中,所述fpn具体为:同时利用低层特征高分辨率和高层特征的高语义信息,通过融合这些不同层的特征达到预测的效果。
本发明的有益技术效果是:采用sar影像船只大数据,使用通用yolov3模型,结合滑动窗口策略与聚类算法,形成一整套的sar影像海面舰船检测方法。本发明在低分辨率sar影像上可以取得良好的检测效果,同时可以调节检测速度,具有识别速度快,检测精度高的优点,且本套方法也可用于其他类型卫星影像的目标检测。
附图说明
图1显示为本发明的一个实施例的步骤流程示意图。
图2显示为本发明的一个实施例的模型训练流程示意图。
图3显示为本发明的一个实施例的海面舰船识别流程示意图。
图4显示为本发明的一个实施例的海面舰船识别结果示意图。
图5显示为本发明的一个实施例的yolov3模型层级展示示意图。
具体实施方式
下面结合本发明的附图1-5,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法,其特征在于,包括以下步骤:s1、数据预处理:将sar影像数据进行数据标注与切分,将voc2012图片数据集进行三通道灰度平衡处理;s2、在步骤s1的基础上,进行yolov3模型预训练:将voc2012图片数据集作为输入数据,投入通用yolov3模型中进行模型训练;s3、在步骤s2的基础上,对训练后的yolov3模型进行迁移学习:将sar影像数据投入预训练后的yolov3模型当中进行优化,获得目标yolov3检测模型;s4、在步骤s3的基础上,对实时sar影像数据进行滑动窗口策略处理,然后输入到所述目标yolov3检测模型中,从而获得检测结果,并对所述检测结果进行聚类算法去重。
优选的,步骤s1中,将sar影像数据进行数据标注与切分包括:对原始sar影像数据图片做切分操作,将宽幅的影响图片切分为若干小份的图片,在此基础上对图片进行标注。
优选的,所述标注的具体过程指的是:先利用先验知识识别图片中的船只,再使用相关工具将图片中船只的具体位置和大小进行标注,即表示为一个一维数组,其中包含船只在图片中的横纵坐标值以及船只检测框的长宽值,将相关数据保存,作为训练数据。
优选的,步骤s1中,将voc2012图片数据集进行三通道灰度平衡处理包括:逐像素读入voc2012图片中某像素的三通道值,将三通道值取平均再将这个均值依次赋值到该像素的三通道值中。
优选的,步骤s2中,所述训练的具体过程为:输入的voc2012图片首先经过darknet网络的多层卷积操作进行特征提取,之后将初步经过特征提取所得到的特征图输入到类fpn结构化网络中,分别得到三个尺度的特征图,再将这三个特征图输入到逻辑回归判断层中得到判断结果,将这一判断结果与真实结果通过损失函数得到损失值,再通过反向传播算法将影响反馈回网络前端,网络根据反馈调整网络参数,达到训练的目的。
优选的,步骤s3具体为:将预训练后的yolov3模型再次作为待训练模型,将sar影像数据作为输入投入到所述待训练模型中进行训练,其过程与步骤s2中训练过程相同;其中,本过程还保证预训练后的yolov3模型中的部分网络参数不变,仅允许后续层级的参数可以在训练中被改变。
优选的,步骤s4中,所述滑动窗口策略包括:通过自定义窗口大小和滑动步长,将sar影像数据中图像分割成多幅待检测图像,并将其放入所述目标yolov3检测模型中,得到基于原始图像的检测结果。
优选的,步骤s4中,所述聚类算法去重包括:多次重复检测原始图像中的某个目标,并对可能的重复检测进行聚类,并将聚类结果作为最终检测结果,进而完成重复数据消除过程。
优选的,所述voc2012图片数据集是常规三通道彩色图片构成的数据集。
优选的,在yolov3模型的特征提取网络之后接入了一个fpn结构的特征输出层,分为13x13,26x26,52x52大小的三个维度,其中,所述fpn具体为:同时利用低层特征高分辨率和高层特征的高语义信息,通过融合这些不同层的特征达到预测的效果。
本实施例的工作原理简述:一种基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法,采用高分三号的sar影像船只大数据,使用通用yolov3模型,结合滑动窗口策略与聚类算法,形成一整套的sar影像海面舰船检测方法。本发明在低分辨率sar影像上可以取得良好的检测效果,同时可以调节检测速度,具有识别速度快,检测精度高的优点,且本套方法也可用于其他类型卫星影像的目标检测。
为实现上述目的,例如:一种基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法:
s1:数据预处理,将高分三号sar影像数据进行数据标注与切分;将voc2012图片数据集进行三通道灰度平衡处理。此处也可使用其他卫星的sar影像数据进行训练数据集的制作。由于模型的训练需要尺寸固定的影像图片,因此需要对原始影像数据图片做切分操作,将宽幅的影响图片切分为若干小份的图片。在此基础上对图片进行标注。标注过程指的是先利用先验知识识别图片中的船只,再使用相关工具将图片中船只的具体位置和大小进行标注(表示为一个一维数组,其中包含船只在图片中的x,y值以及船只检测框的长宽值),将相关数据保存,作为训练数据。由于原始影像三通道(r,g,b)灰度值相同,为了适应之后进行的迁移学习操作,需要对图片进行三通道灰度平衡操作,具体做法为逐像素读入图片中某像素的三通道值,将三通道值取平均再将这个均值依次赋值到该像素的三通道值中。
s2:yolov3检测模型预训练,将voc2012图片数据集作为输入数据,投入通用yolov3模型中进行模型训练。整个网络如图4所示,输入的图片首先经过darknet网络的多层卷积操作进行特征提取,之后将初步经过特征提取所得到的特征图输入到类fpn结构化网络中,分别得到三个尺度的特征图,再将这三个特征图输入到逻辑回归判断层中得到判断结果。将这一结果与真实结果通过损失函数得到损失值,再通过反向传播算法将影响反馈回网络前端,网络根据反馈调整网络参数,达到训练的目的。比如采用下图所述的损失函数:
其中,第一行就总方误差(sum-squarederror)来当作位置预测的损失函数,第二行用根号总方误差来当作宽度和高度的损失函数。第三行和第四行对置信度也用根号总方误差作为损失函数。第五行用sse作类别概率的损失函数。最后将几个损失函数加到一起,当作yolov3的损失函数。
s3:yolov3迁移学习,将高分三号sar影像数据投入预训练的模型当中进行训练,获得目标检测模型。
s4:得到的模型配合滑动窗口检测策略与聚类算法去重即可达到sar影像上舰船检测的目的。其中通过调节滑动窗口大小即可调节检测速度。
所述s1中的voc2012图片数据集是海量常规三通道彩色图片构成的数据集,是国际上常用于检测算法比较采用的通用数据集。
所述s1中的高分三号sar影像数据使用的是10m分辨率的sar影像数据。
所述s2中yolov3检测模型为通用yolov3模型,其特征在于在前面的特征提取网络之后接入了一个fpn(featurepyramidnetworks)结构的特征输出层,分为13x13,26x26,52x52大小的三个维度,以此获得对小目标更好的检测效果。
所述s3中的迁移学习采用的方式是不改变已经网络中前面层级已经训练好的参数,对后面层级的参数进行微调。具体过程表现为:将预训练的模型再次作为待训练模型,将高分三号sar影像数据作为输入投入到模型中进行训练。其他过程与s2中大致相同。不同点在于:这一过程中,保证预训练模型中的部分网络参数不变,仅允许后续层级的参数可以在训练中被改变。
所述s4中滑动窗口检测策略具体描述为:由于要检测的图像是大尺度遥感图像,对于yolo模型,在训练过程中需要输入一系列大小固定的mxn图像,提取出的mxn图像经过特征网络提取后,最终成为52x52、26x26和13x13的三维特征地图。在提取过程中,如果原始图像过大,在训练过程中会丢失大量的图像特征,导致检测效果下降。因此,用于训练的数据集中的图像大小不应太大,通常为416x416。在检测过程中,需要将大的遥感图像分割成小的图像来匹配检测模型。本文采用滑动窗口策略,通过自定义窗口大小和滑动步长,将图像分割成多幅待检测图像,并将其放入检测模型中,得到基于原始图像的检测结果。
所述s4中的聚类算法去重操作具体描述为:得到的检测结果是原始图像中的一组二维点,每个点都有自己的检测帧大小数据(检测帧长度和宽度的值)。由于滑动窗口策略,检测模型产生的检测结果将重叠,这表明原始图像中的某个目标出现在多个数据集图像中,要用滑动窗口策略进行检测。因此,可以多次重复检测原始图像中的某个目标。本发明采用聚类算法对可能的重复检测进行聚类,并将聚类结果作为最终检测结果,从而达到重复数据消除的效果。
fpn:尺度融合算法,同时利用低层特征高分辨率和高层特征的高语义信息,通过融合这些不同层的特征达到预测的效果。并且预测是在每个融合后的特征层上单独进行的,这和常规的特征融合方式不同。
实施例2:
在实施例1的基础上,本发明主要包含两个部分,其一是底层所运用到的检测模型的训练,其二是检测模型 滑动窗口检测策略 聚类算法去重三者相结合的海面舰船检测方式方法。第一部分主要包含下述步骤1,步骤2;第二部分主要包含下述步骤3,步骤4。
步骤1:预处理数据,数据集共包含高分三号十米分辨率的sar影像数据与voc2012通用数据集两个部分。首先将高分三号十米分辨率的sar影像数据做切分,得到若干个256x256像素大小的原始数据图片,再使用python语言编写的labelimg工具对得到的数据集进行人工标注工作,得到包含目标在图片中对应位置信息,所在图片信息的xml格式文件。然后再对voc2012通用数据集作三通道灰度平衡处理,voc2012中每张图片的每个通道的像素取值均为三个原始通道对应像素的均值,以此做均值化处理,将迁移学习所要用到的原始数据集作适应化处理。
步骤2:训练检测模型。首先使用步骤1中处理后的voc2012数据集,将之输入到通用yolov3模型当中,并完成模型的初步训练。这之后,锁定yolov3模型中前面网络层的参数,保持前面网络层中已经训练好的参数不发生变化,将高分三号十米分辨率的sar影像数据处理后得到的训练数据输入到yolov3模型中进行模型网络后面部分的参数微调,由此完成模型的训练工作。
步骤3:通过步骤2得到的检测模型不能直接用于大幅的sar影像舰船检测当中。这里通过滑动窗口法在原始影像上截取自定义大小的检测图片,记录该图片在原始影像上的对应位置,然后输入到检测模型中获得检测结果。该检测结果为图片中的船只相对于该图片的位置。再通过之前记录的图片在原始影像上的对应位置,将检测图片中船只的位置映射到原始影像当中。通过这一方式,实现了舰船检测的自定义效果,可以通过更改滑动窗口的大小实现总体检测速度的更改。
步骤4:通过步骤3得到的结果在原始影像上呈现的结果是若干个方框,因为滑动窗口法的中滑动窗口所取步长与窗口大小的原因,在步骤三中得到的检测结果在大多数情况下会呈现出方框重叠的现象,因此,在本步骤中引入聚类算法对检测结果进行去重操作,这里使用无监督的自动聚类算法dbscan。通过调整dbscan算法的最小聚类点数与最小聚类距离,即可适应检测场景中船只密集情况或者宽幅场景中船只稀疏场景。
在本发明的描述中,需要理解的是,术语“逆时针”、“顺时针”“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
1.基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法,其特征在于,包括以下步骤:
s1、数据预处理:将sar影像数据进行数据标注与切分,将voc2012图片数据集进行三通道灰度平衡处理;
s2、在步骤s1的基础上,进行yolov3模型预训练:将voc2012图片数据集作为输入数据,投入通用yolov3模型中进行模型训练;
s3、在步骤s2的基础上,对训练后的yolov3模型进行迁移学习:将sar影像数据投入预训练后的yolov3模型当中进行优化,获得目标yolov3检测模型;
s4、在步骤s3的基础上,对实时sar影像数据进行滑动窗口策略处理,然后输入到所述目标yolov3检测模型中,从而获得检测结果,并对所述检测结果进行聚类算法去重。
2.根据权利要求1所述的基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法,其特征在于,步骤s1中,将sar影像数据进行数据标注与切分包括:
对原始sar影像数据图片做切分操作,将宽幅的影响图片切分为若干小份的图片,在此基础上对图片进行标注。
3.根据权利要求2所述的基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法,其特征在于,所述标注的具体过程指的是:先利用先验知识识别图片中的船只,再使用相关工具将图片中船只的具体位置和大小进行标注,即表示为一个一维数组,其中包含船只在图片中的横纵坐标值以及船只检测框的长宽值,将相关数据保存,作为训练数据。
4.根据权利要求1所述的基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法,其特征在于,步骤s1中,将voc2012图片数据集进行三通道灰度平衡处理包括:
逐像素读入voc2012图片中某像素的三通道值,将三通道值取平均再将这个均值依次赋值到该像素的三通道值中。
5.根据权利要求1所述的基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法,其特征在于,步骤s2中,所述训练的具体过程为:
输入的voc2012图片首先经过darknet网络的多层卷积操作进行特征提取,之后将初步经过特征提取所得到的特征图输入到类fpn结构化网络中,分别得到三个尺度的特征图,再将这三个特征图输入到逻辑回归判断层中得到判断结果,将这一判断结果与真实结果通过损失函数得到损失值,再通过反向传播算法将影响反馈回网络前端,网络根据反馈调整网络参数,达到训练的目的。
6.根据权利要求1所述的基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法,其特征在于,步骤s3具体为:
将预训练后的yolov3模型再次作为待训练模型,将sar影像数据作为输入投入到所述待训练模型中进行训练,其过程与步骤s2中训练过程相同;其中,本过程还保证预训练后的yolov3模型中的部分网络参数不变,仅允许后续层级的参数可以在训练中被改变。
7.根据权利要求1所述的基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法,其特征在于,步骤s4中,所述滑动窗口策略包括:
通过自定义窗口大小和滑动步长,将sar影像数据中图像分割成多幅待检测图像,并将其放入所述目标yolov3检测模型中,得到基于原始图像的检测结果。
8.根据权利要求1所述的基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法,其特征在于,步骤s4中,所述聚类算法去重包括:
多次重复检测原始图像中的某个目标,并对可能的重复检测进行聚类,并将聚类结果作为最终检测结果,进而完成重复数据消除过程。
9.根据权利要求1-8任一项所述的基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法,其特征在于,所述voc2012图片数据集是常规三通道彩色图片构成的数据集。
10.根据权利要求1-8任一项所述的基于yolov3算法与滑动窗口策略的sar影像海面舰船检测方法,其特征在于,在yolov3模型的特征提取网络之后接入了一个fpn结构的特征输出层,分为13x13,26x26,52x52大小的三个维度,其中,所述fpn具体为:同时利用低层特征高分辨率和高层特征的高语义信息,通过融合这些不同层的特征达到预测的效果。
技术总结