技术领域
本发明涉及计算机视觉领域,尤其是涉及一种基于深度学习的卫星图像中船舶识别与分割方法。
背景技术
目前随着人类对海洋的掌握和逐渐开发利用,海洋对于人类整体的重要性愈发增强。而利用海洋的重要前提之一就是对海洋进行监测和管控,而在对海洋监测时最重要的任务就是对在海上航行的船舶进行监测。虽然巡逻系统和雷达系统、监控系统的存在一定程度上缓解了这个问题,但巡逻系统的成本过高;雷达系统受船只数量、海况影响较大;视频监控系统在天气状况差和离岸较远时效果不佳。
为了弥补已有方法的不足,更好地满足实际使用中的需求,在深度学习的方法日趋成熟,应用领域愈加广泛的背景下,对于船舶进行无人化、智能化的图像识别和图像分割成为现实,经过检索中国专利公开号CN 111738112A公开了一种基于深度神经网络和自注意力机制的遥感船舶图像目标检测方法,该方法首先对数据集进行预处理,提高了模型的泛化能力;然后将数据输入特征提取网络提取特征;为了实现对长宽比大的遥感船舶的检测,在RPN阶段,重新设置多角度的锚点框,获得“旋转边界框”;修改NMS算法,根据船只之间的角度相似关系通过循环神经网络融合自注意力机制输出重新计分的置信度,使候选区域的筛选更加准确;最后将预测框送入Fast R-CNN网络,对候选区域中目标的类别进行分类和对目标的坐标进行回归。但是该方法存在以下缺陷:
1)self-attention机制需要针对向量化后序列的任意两个元素间计算相似度,极大地增大了算法的时间和空间复杂度,也使得self-attention机制无法处理向量化后较长的序列,故此方法无法处理尺寸较大的图像。
2)self-attention机制需要耗费大量计算和内存,在图像尺寸非极小情况下速度较慢。
3)经过Fast R-CNN得到的目标检测结果得到的对应检测框,包含了图片中船只周围的无用图像信息,加大了噪声比例,不利于图像后续的其他应用。
4)需要的标注信息较复杂,包括锚点坐标和角度参数等,加大了标注难度和前期工作量。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于深度学习的卫星图像中船舶识别与分割方法。
本发明的目的可以通过以下技术方案来实现:
根据本发明的一个方面,提供了一种基于深度学习的卫星图像中船舶识别与分割方法,该方法基于改进的Xception和改进的U-Net网络,对海面上航行的船只进行监测,实现对于船舶的识别和图像分割,得到关于船舶的预警和图像信息,有助于分析海域情况,有助于更精准的海面监测,有效打击违法走私船和渔船违法捕捞等行为,所述的方法具有以下步骤:
步骤1)采集数据;
步骤2)数据集增强;
步骤3)标记图片;
步骤4)进行卫星图像中的船舶识别;
步骤5)进行船舶图像语义分割;
步骤6)实时进行船舶的自动识别和监测。
作为优选的技术方案,所述的步骤1)采集数据具体为:
通过卫星图采集海域的视频,从视频中截取任意可能存在船只的图片,生成图片库A。
作为优选的技术方案,所述的步骤2)数据集增强具体为:
所述的图片库A通过数据增强生成图片库A1;图片库A、图片库A1共同构成数据集B。通过扩充数据集,可以防止图像样本过少导致的过拟合问题和最终造成的识别精度低等问题。
作为优选的技术方案,所述的数据增强包括:
a)水平、垂直翻转;b)任意角度旋转:在-90°至90°之间选择随机值;c)将图片进行模拟其他天气的图像增强。
作为优选的技术方案,所述的步骤3)标记图片具体为:
将数据集B中的每张图片进行辨识,对每张图片中进行标注,标注内容为是否包含船只,将其与图片名称对应后生成数据集D;同时选出其中含船舶的图片选出,形成图片库B,图片库B构成数据库C;
将图片库B中的每张图片进行标注,标注形式为Length×Width×1的矩阵,目标是分割出船舶的位置和轮廓,即对图像的每个像素分别进行标注,由于需要分割的只有一种目标(不区分船的种类),每个像素的标注结果只有0和1两种,最终得到图片中包含船舶每个像素的分类信息的数据集E。
作为优选的技术方案,所述的步骤4)进行卫星图像中的船舶识别具体为:
401)将整个数据集B随机的分为三部分训练集P1、验证集P2和测试集P3;
402)训练集P1用于改进的Xception网络的训练,将训练集P1及数据集D送入到改进的Xception网络中进行训练得到多个权重模型;
403)验证集P2用于调整模型中的各个参数,当训练集P1训练出多个权重模型后,分别使用不同的权重模型对P2进行预测,将其与数据集D中的验证信息进行对比,选择预测后F1-Score最高的权重模型所对应参数,从而生成最优的权重模型;
404)经过训练集P1和验证集P2得到了最优权重模型之后,接着使用测试集进行测试,得到最优权重模型用于卫星图片中的船舶的识别。
作为优选的技术方案,所述的F1-Score的计算公式如下:
其中各参数的物理意义为:TP:图片中实际存在船只且预测结果也为存在船只的样本数量;FN:图片中实际存在船只但预测结果为不存在船只的样本数量;FP:图片中实际不存在船只但预测结果为存在船只的样本数量;Precision:在所有被预测为存在船只的测试数据中,图片中真正存在船只的样本数量比例;Recall:在图片中真正存在船只的测试数据中,被预测为存在船只的样本数量比例;
F1-score越高,说明分类模型越稳健。
作为优选的技术方案,所述的步骤5)进行船舶图像语义分割具体为:
501)将整个数据集C随机分为三部分训练集Q1、验证集Q2和测试集Q3;
502)训练集Q1用于改进的U-Net网络的训练,将训练集Q1及数据集E送入改进的U-Net网络中进行训练,得到不同的多个训练权重;
503)验证集Q2用于调整模型中的各个参数,当训练集Q1训练出多个参数权重模型后,分别使用不同的权重模型对Q2进行预测,将其与数据集E中的验证信息进行对比,选择预测后准确率最高的权重模型所对应参数,从而生成最优的模型权重;
504)经过训练集和验证集经过训练集Q1和验证集Q2得到了最优权重模型之后,接着使用测试集进行测试,得到最优权重模型用于含有船舶图片的分割。
作为优选的技术方案,所述的训练中使用Dice loss作为深度学习的损失函数,对于二分类的Dice loss的公式如下:
其中Y表示手工标签数据,P表示预测结果,|Y|和|P|分别表示Y和P的元素个数,即像素个数,Y∩P表示Y和P的共有元素数,实际通过求两者的逐像素乘积之和进行计算,例如:
其中,1表示前景,0表示背景(GT图片中要求前景像素值为1,背景像素值为0)。
作为优选的技术方案,所述的步骤6)实时进行船舶的自动识别和监测具体为:
将卫星图像系统与计算机连接起来,将卫星图像送入已经训练好的识别模型中,利用步骤4)实时监控图像,即可得到图像中是否有船舶出现,当有船舶出现时,进行预警;同时将图像直接通过步骤5)进行图像分割,将分割得到的图像传回到控制中心,判断是否进行拦截和警告;
在步骤4)和步骤5)中,设置训练集P1和Q1分别占数据集B和数据集C的80%,验证集P2和Q2占数据B和数据集C的10%,测试集P3和Q3占数据集B和数据集C的10%。
与现有技术相比,本发明具有以下优点:
(1)本发明利用深度学习的方法,采用基于改进Xception神经网络实时识别卫星图片中船舶,可以节省人力和巡逻成本等,同时减少可能由于人为因素造成的识别错误的问题。
(2)本发明采用基于改进U-Net卷积网络进行卫星图像中的船舶分割,可以节省在卫星图片中定位查找船舶的时间,同时分割后的图像可以传回数据中心,进行判断。
(3)在卫星图片中船舶识别训练过程中,使用F1-score作为判断指标,可以结合准确率和召回率的优势判断最优的权重模型。准确率是最常见的评价指标,实质就是分类正确的样本数除以所有的样本数,通常来说,正确率越高,分类器越好。但是有时准确率高并不一定能代表一个算法优秀。比如地震的预测,假设我们有一堆地表特征作为地震分类的属性,类别只有两个:0代表不发生地震和1代表发生地震。一个愚蠢的分类器,直接对每一个测试样本都划分为0,即不发生地震,其一定能达到99%的准确率,但当地震真正来临时,这个分类器却无法依据地震的特征作出反应,其实用价值也就不大。所以综合考虑,本发明引入F1-Score指标,相当于同时引入准确率和召回率来综合评估整个算法的性能。召回率表明实际关心的目标中被预测正确的几率。在实际应用中,海上航行的船只能有多少被真正检测到是一个相当重要的问题,故召回率是一个重要的指标。F1-Score综合考虑了准确率和召回率的贡献,是一个更好的衡量分类算法性能的指标。
(4)在卫星图像分割过程考虑损失函数时,Dice loss的提出主要用于解决训练过程中数据分布不均衡的问题,感兴趣的结构仅占图像非常小的区域,从而在训练学习过程中陷入损失函数的局部最小值。Dice loss同样可以缓解数据分类不均衡造成的缺陷。
(5)本发明在数据的准备中,由于实际卫星图像中,不含船只的图片数量远远大于含船只的图片数量,如果不考虑这一情况,会导致数据集严重不平衡,最终训练得到的模型偏离船只识别的目的。故在数据集的准备过程中,需要选择有船图像和无船图像基本数量相同,可以更好地弥补数据不平衡对训练结果造成的偏差。
(6)本发明在数据准备中,数据集包含黑夜、雾天、雪天、多云情况等多个不同的场景。由于大部分海域以天气晴朗居多,而雾天等复杂天气图片较少,为了弥补这部分的数据不均衡,对图像进行模拟雾天情况处理,能使得在特殊天气的情况下图像识别和分割效果更佳。
附图说明
图1是本发明的工作流程框架示意图;
图2是本发明的改进的Xception网络的工作原理示意图;
图3是本发明在图像增强中,采用各种方法实现图像的数据增强的效果示意图;
图4是本发明的改进的U-Net网络的工作原理示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明实现的是一种基于深度学习的卫星图像中船舶识别和分割方法,主要包括数据采集、数据增强、数据标记、图像识别、图像分割、实时监测六个部分。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
为了更好地说明一种基于深度学习的卫星图像中船舶识别和分割方法,先对改进的Xception网络的运行原理进行说明,如图2和图4所示:
改进的Xception整体网络结构中含有16个卷积层,可以被分成8个小模块。本发明使用的改进Xception架构共使用16个Depth-wise separable卷积块来提取来构成基本的特征提取器。16个卷积层被拆分成3个大模块,除第一个和最后一个模块外的所有的模块都在模块中使用了残差连接。由于我们的评估实验中只进行图像的二分类,因此在卷积之后使用了SVM分类器。支持向量机(support vector machines,SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。SVM学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。对于线性可分的数据集来说,能够实现分离的超平面有无穷多个(即感知机),但是几何间隔最大的分离超平面却是唯一的。可选地,也可以在SVM分类器之前加入完全连接层。
改进的Xception结构针对已有的Xception网络结构进行了一些精简和修改。首先,将其中间Middle Flow的结构重复次数由之前的8次减少到了2次。这有利于减少参数数量,且在数据量不够大的时候,过于复杂的网络结构可能无法训练完全,从而得不到较好的效果。同时,在最终卷积完成之后将逻辑回归层替换为SVM分类器。SVM分类器对于二分类的分类效果通常情况下好于逻辑回归。SVM相比逻辑回归更加关注图片的局部关键信息,拥有更优秀的泛化能力,能够有效防止过拟合。在判别未训练的图片时,使用SVM分类器能够预期其取得更好的效果。
Xception是基于Inception网络的改进版本,核心思想是将channel分成若干个不同感受野大小的通道,除了能获得不同的感受野,还能大幅的降低参数数量。而Xception对其改进的主要内容为采用Depth-wise separable convolution进行卷积操作。
改进的U-Net的结构左侧可视为一个编码器,右侧可视为一个解码器。编码器有四个子模块,每个子模块包含两个卷积层,每个子模块之后有一个通过max pool实现的下采样层。由于卷积使用的是valid模式,故这里后一个子模块的分辨率等于(前一个子模块的分辨率-4)/2。解码器包含四个子模块,分辨率通过上采样操作依次上升,直到与输入图像的分辨率一致(由于卷积使用的是valid模式,实际输出比输入图像小一些)。该网络还使用了跳跃连接,将底层和顶层的上采样结果与编码器中具有相同分辨率的子模块的输出进行连接,作为解码器中下一个子模块的输入。
改进的U-Net网络相比U-Net主要改进特点是在跳跃连接时将中间两层的跳跃连接删除,只保留顶层和底层的跳跃连接。这样做的优势在于减少了计算量,从而使得运算时间变快,更好地能够实现实时分割的任务。同时这样做的原因包括,在卫星图片分割船只对象过程中,需要关注的是占据图片主要部分的背景和在图片中较小的船只部分,所以在跳跃连接的过程中,低层特征和顶层特征占据了更大的比例,在分割过程中起到决定作用,所以可以去掉相对不必要的中层跳跃连接,减少计算量。
U-Net是基于全卷积神经网络的一个分割网络。当前效果最好的图像分割模型几乎都是基于全卷积神经网络模型而来的。基于传统技术的分割方法几乎都普遍存在共同的缺点:分割的结果不够精细,不能分割出目标图像的细节,尤其是目标物体占图像比较小的图像;像素都相对独立地进行分类,没有考虑像素之间的关联性。Olaf Ronneberger等人提出的U-Net模型主要用于医学图像分割,实例包括小型器官甚至细胞的边缘检测,U-Net采取的结构可以得到更多的细节信息,从而通常用于更精细的分类中。
U-Net网络结构中底层信息和高层信息互相结合,利用底层特征改善上采样的信息不足,使得分割精度显著提高。同时使用跨层链接对小感受野有更好的特征提取效果。
在对卫星图片中的船体进行分割时,采集的数据集中需分割的物体占主体比例过小常常是造成分割效果不够好的原因之一,而面对数据极度不均衡的特点,通常使用的损失函数无法适应这一特点,普通损失函数会导致小部分面积在训练过程中总是无法达到损失函数的整体最小值,而是停在局部最小值。而Dice loss的引入可以有效缓解在整个训练过程中感兴趣部分在整体中分布不够均衡的问题,Dice loss类似交并比,用来描述两个区域的相似程度。Dice的数学性质良好,这也是选择其作为损失函数的优势和原因。
在之前的关于一种基于深度学习的卫星图像中船舶识别和分割方法的叙述中,主要包含的部分有以下几个,如图1所示:
步骤101,数据采集:
对于改进的Xception和改进的U-Net,其都属于深度学习领域中,所以需要大量数据对网络进行训练,当训练模型到达最佳模型后,再输入数据可以进行预测。所以整体第一步在于采集数据,而在本发明中,由于任务是对于船舶的目标识别和语义分割,所以需要采集卫星拍摄的视频中截取海岸或者大海中的图片。
步骤102,数据增强:
深层神经网络一般都需要大量的训练数据才能获得比较理想的结果。在数据量有限的情况下,可以通过数据增强(Data Augmentation)来增加训练样本的多样性,提高模型鲁棒性,避免过拟合。而在收集数据集较困难,标注繁琐的情况下,在原有数据集上进行相关操作使数据集进行扩充。同时,随机对训练样本进行一定程度的增强可以降低模型对某些属性的依赖,从而提高模型的泛化能力。例如,物体在图像中的不同比例大小可以降低模型对图像大小的依赖性。调整亮度、对比度等可以降低模型对图像色彩特点的依赖性。模拟卫星图像中的不同天气状况可以降低模型对固定天气状况的依赖度。
本发明中所使用的数据增强方法包括①水平、垂直翻转:船头在航行可能是任意行驶,所以将图片进行水平和垂直翻转可以有效模拟实际情况。②旋转:实际船舶可能在海上360°任意方向航行,所以将图像进行任意旋转,但因为水平和垂直翻转的操作,范围不需太大,在-90°至90°之间选择随机值即可。③由于数据集中图片可能存在某种天气情况较少的情况,所以将部分图片进行模拟其他天气的图像增强,例如雾天情况。通过扩充数据集,可以防止图像样本过少导致的过拟合问题及最终由上述情况造成的识别精度低等问题。
步骤103,数据标记:
对于数据集D,只需要在图片信息中标注是否含有船舶图片信息。对于数据集E,需要将含有船舶的图片中所有船舶分割出来,其本质是将图片中所有像素进行0或1分类,即标注是船体还是非船部分。
步骤104,图像识别:
将所有收集到的卫星图像及图像增强后得到的图像,以及标记图片后生成的文本文件作为数据集,根据生成的数据集对改进的Xception网络进行训练,本发明中,数据集设置识别训练集占识别数据集的80%,用于改进的Xception的训练。识别验证集占识别数据集的10%,用于改进的Xception的超参数调整。识别测试集占识别数据集的10%,用于改进的Xception的性能指标衡量,从而得到最优识别模型。
步骤105,图像分割:
将所有收集到的卫星图像及图像增强后得到的图像,以及标记图片后生成的文本文件作为数据集,根据生成的数据集对改进的U-Net网络进行训练。本发明中,数据集设置分割训练集占分割数据集的80%,用于改进的U-Net的训练。分割验证集占分割数据集的10%,用于改进的U-Net的超参数调整。分割测试集占分割数据集的10%,用于改进的U-Net的性能指标衡量,最终得到最优分割模型。
步骤106:实时进行船舶的自动检测:
将卫星图片与计算机连接起来,利用步骤4实时处理识别图像,从而达到监控目的,可以得到是否含有船舶的0-1信息,判断图像中是否有船舶出现,当有船舶出现时,进行预警。同时将图像直接通过步骤5进行图像分割,可以在图片中得到船舶轮廓的分割信息,将分割得到的图像传回到控制中心,进行判断是否进行拦截和警告等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
机译: 一种基于卫星网络的海洋船舶监控系统,该系统基于从卫星和乘客社交媒体数据中获得的船舶识别数据,在陆地旅客名单的地面站点进行确定。
机译: 一种基于卫星网络的海洋船舶监控系统,该系统基于从卫星和乘客社交媒体数据中获得的船舶识别数据,在陆地旅客名单的地面站点进行确定。
机译: 基于深度学习的卫星图像分辨率调整方法