1.一种基于改进YOLOv4算法的遥感图像海上船舶识别系统,其特征在于,包括:获取单元,用于搜集以往光电侦察设备执行任务时拍摄的可见光和红外舰船目标图像或搜集谷歌地球的海面场景的卫星遥感图像,包括卫星图片集和光电设备拍摄船舰集;
标定单元,用于使用数据标记软件labelimg将预处理后的图片进行种类标注,包括标记出目标在图片中具体地位置(x、y)以及目标的宽高(w、h);
预处理单元,用于将遥感图片中的船舰与其旁边的岛屿、建筑、悬浮物分割开来,达到消除图像噪声的效果,包括Python处理框架;
聚类单元,用于获得YOLO算法锚点框的估计值,包括通过K‑means聚类算法对标注框进行聚类,选取k=1~18对数据集中的样本进行聚类,得到k与IOU的关系;
生成单元,用于生成YOLOv4的框架,包括目标特征提取网络、SPP网络、特征融合网络与目标预测网络;
检测单元,用于生成YOLOv4的检测框,包括将所述图片集中的图片输入至改进的YOLOv4络结构,生成特征图,得到特征图对应先验框的位置信息、类别信息和物体置信度;
筛选单元,用于设定候选框的阈值,最终得到预测框,为了识别遥感图像中船舰这种小目标必须采用较小的预测框识别,所以要减小IOU值;
训练单元,用于计算目标置信度损失函数、目标位置损失函数、目标种类损失函数,并使用反馈神经网络更新权值,直到上述三种损失函数总值最小,从而得到训练好的改进的YOLOv4神经网络;
检测单元,用于将测试子集中的图片输入到训练好的改进的YOLOv4网络结构,获得目标的类别、目标在图片中具体地位置和目标的宽高,完成目标检测;
所述的改进的YOLOv4网络的结构包括:
改进的YOLOv4网络在原来的特征金字塔的基础上再加上两层,从而增强特征提取功能;改进的YOLOv4网络在原来的路径聚合网络中增加4个数据融合模块、2个上采样模块、2个下采样模块;改进的YOLOv4网络由原来的3个尺度特征层变成了5个尺度特征层,分别是
208*208尺度特征层、104*104尺度特征层、52*52尺度特征层、26*26尺度特征层和13*13尺度特征层。
2.一种基于改进YOLOv4算法的遥感图像海上船舶识别方法,其特征在于,包括以下步骤:步骤一、获取卫星遥感船舶目标样本库,使用数据标记软件labelimg对图片进行标注,获得数据集,并按照训练子集和测试子集比例8:2分配;
步骤二、采用高反差保留法对训练子集进行预处理;
步骤三、构建YOLOv4网络框架,进行训练;
步骤四、采用非极大值抑制得到预测框,并改进IOU阈值;
步骤五、验证网络可行性;
所述步骤三的过程包括:
在原有网络中,首先利用detect_image函数将输入图片缩放成416x416大小;接着通过引用3个函数包括卷积函数、批量标准化函数和激活函数mish对图片处理,分别是对图片卷积进行特征提取、提取的特征进行批量标准化、选取合适的激活函数mish,防止梯度消失,使得通道数由3变为32,加快特征提取进度;然后输入图像在网络中进行多次卷积和池化操作,能生成3种不同尺度大小的特征图:256通道数的8倍上采样的52×52尺度特征层、512通道数的16倍上采样的26×26尺度特征层和1024通道数的32倍上采样的13×13尺度特征层;
上采样卷积池化过多,在提取特征时会丢失一些图像位置、纹理细节特征;因此,采用改进的YOLOv4网络结构,增加生成的尺度特征层;在卷积池化少的特征层提取一些细节特征,从而提高船舶目标检测的准度;
所述的改进的YOLOv4网络的结构包括:
改进的YOLOv4网络在原来的特征金字塔的基础上再加上两层,从而增强特征提取功能;改进的YOLOv4网络在原来的路径聚合网络中增加4个数据融合模块、2个上采样模块、2个下采样模块;改进的YOLOv4网络由原来的3个尺度特征层变成了5个尺度特征层,分别是
208*208尺度特征层、104*104尺度特征层、52*52尺度特征层、26*26尺度特征层和13*13尺度特征层。
3.根据权利要求2所述的一种基于改进YOLOv4算法的遥感图像海上船舶识别方法,其特征在于,所述步骤一的过程包括:步骤1.1.对舰船目标样本库进行构建,其样本库的来源包括以下途径:
1)通过网络爬虫获取现在网络上已有的舰船目标图片;
2)搜集以往光电侦察设备执行任务时拍摄的可见光和红外舰船目标图像;
3)搜集于谷歌地球的海面场景的卫星遥感图像;
4)积累光电侦察设备后续执行任务过程中新侦的舰船目标图像对样本库进行维护和扩充;
步骤1.2.将舰船目标样本库图像进行目标标定制作成数据集;利用数据标记软件labelimg对每个图片中的目标区域画目标标记框;所述目标在图像中的位置信息指目标标记框的宽高信息,目标标记框的对角点在图像坐标系下的坐标信息;将各图片的标签设定为:船舰、飞机;训练子集和测试子集,比例为8:2;利用数据标注软件labelimg对数据集中的训练集进行船舰标注,生成xml文件,利用python脚本voc_yolo将xml文件格式转换为txt文件格式。
4.根据权利要求2所述的一种基于改进YOLOv4算法的遥感图像海上船舶识别方法,其特征在于,所述步骤二的过程包括:采用红外图像预处理方法,将图像中颜色、明暗反差较大两部分的交界处进行保留;首先采用高斯滤波将船舶与周围岛屿、建筑分割开来,增强对比度;然后采用以下操作将图片锐化,达到消除图像噪声的效果,其表达形式如下所示:scr=img‑λ×guas(img) (1)
式子(1)中,scr表示处理后的结果,img表示原始图像,λ为增益,guas为调用的高斯滤波器;为了提高红外对比度的同时减少噪声的引入,令λ=3;
将图像中颜色、明暗反差较大两部分的交界处保留下来,使得船舶目标特征更容易凸显出来。
5.根据权利要求2所述的一种基于改进YOLOv4算法的遥感图像海上船舶识别方法,其特征在于,所述步骤四的过程包括:通过K‑means聚类算法获取符合红外图像待检测目标尺度特点的锚点框尺寸,即先验框的个数设为9,各先验框的宽高尺寸分别为(17.4,30.0)、(26.6,73.2)、(49.0,134.8)、(50.8,46.6)、(89.9,89.9)、(97.3,209.7)、(176.4,294.3)、(204.7,152.4)、(348.4,
331.7);为了获得最优锚点框,通过取最大IOU值为参考,使用非极大值抑制,去掉多余锚点框;
然后,为识别遥感图像中船舰这种小目标必须采用较小的预测框识别,因此要减小IOU值;但是IOU值与目标检测置信度成正比,如果置信度过低,会出现漏检严重的情况;为提高小目标检测的准确率,在此将IOU减小到0.3。
6.根据权利要求2所述的一种基于改进YOLOv4算法的遥感图像海上船舶识别方法,其特征在于,所述步骤五的过程包括:将预处理后的训练集导入到改进的YOLOv4网络中,不断更新权值直到损失函数最小,得到训练好的网络,其中损失函数如下:L=λ1Lconf(o,c)+λ2Lcla(O,C)+λ3Lloc(l,g) (2)式子(2)中,损失函数由3部分组成,目标置信度损失Lconf(o,c)、目标位置损失Lloc(l,g)、目标类别损失Lcla(O,C),λ1、λ2、λ3为平衡系数,λ3大于1,增大目标损失函数的占比,防止外部非目标物体影响过大;
式子(3)中,目标置信度损失Lconf(o,c)采用二值交叉熵损失,其中oi∈{0,1},表示预测目标边界框i中是否真实存在目标,0表示不存在,1表示存在; 表示预测目标矩形框i内是否存在目标的Sigmoid概率;
式子(4)中,目标位置损失Lloc(l,g)采用的是真实值和预测值的偏差平方和,其中l表示预测矩形框坐标偏移量,g表示与之匹配的GTbox与默认框之间的坐标偏移量;
式子(5)中,目标类别损失Lcla(O,C)采用二值交叉熵损失,其中Oij∈{0,1}表示预测目标边界框i中是否真实存在目标,0表示不存在,1表示存在; 表示预测目标矩形框i内是否存在目标的Sigmoid概率;
然后,将测试子集中的图片输入至训练好的改进的YOLOv4网络结构,获得目标的类别、目标在图片中具体地位置和目标的宽高;如果精度高,则完成目标检测;如果出现大量漏检、错检情况,则返回步骤三继续训练,直到获得检测精度较高的网络。