基于YOLO 算法的海洋中尺度涡三维结构构建
2024-03-11刘格格杨俊钢焦方涛
李 永,刘格格,杨俊钢,崔 伟,焦方涛
(1.中国石油大学(华东) 海洋空间与信息学院,山东 青岛 266580;2.中国石油大学(华东) 青岛软件学院 计算机科学与技术学院,山东 青岛 266580;3.自然资源部第一海洋研究所,山东 青岛 266061;4.自然资源部海上丝路海洋资源环境组网观测技术创新中心,山东 青岛 266580)
0 引言
海洋中尺度涡[1,2]是指直径在几十到几百千米、存在时间在几十天到半年以上的天气式海洋涡旋,是一种在各大洋中普遍存在的重要海洋现象。海洋中尺度涡的运动过程中携带着极大的动能[3-4],同时伴随着温度、盐度的变化,对海洋中的物质运输、热量传递、海洋生物的分布产生了很大的影响。研究海洋中尺度涡的分布、结构及运动特性在多个空间信息领域(包括水文、气象、生态环境、海洋声学等)具有重要意义[5-7]。
基于中尺度涡的海面高度、海水温度、海水盐度、流场等海洋要素的不同特征,国内外学者开展了大量关于中尺度涡的检测分析工作。其中基于物理特征的Okubo-Weiss(OW)算法[8-9]、基于流场几何特征的Winding-Angle(WA)算法[10]和Vector Geometry 算法[11]等传统方法,过度依赖阈值和判断依据的设置,且所需计算力庞大,故不能很好地适应复杂多变的海洋环境,缺乏泛化性和可迁移性。近年来不断崛起的人工智能方法在各个领域都有令人惊艳的表现,这也给中尺度涡的检测研究提供了新的思路。沈飙等[12]基于Mask-RCNN 算法,利用多模态信息进行定位、分类和实例分割,能够有效提取中尺度涡的特征;谢鹏飞等[13]提出了EddyYolo 目标检测模型,实现了对涡旋中心和涡旋水平尺度的多目标检测;LGUENSAT 等[14]基于U-Net 架构,提出了用于中尺度涡特征提取的EddyNet 实例分割模型;XU[15]在涡旋检测方法中采用了能够满足语义和细节相融合的金字塔场景解析网络PSPNet 作为核心算法,有效地适应了多尺度海洋涡旋的分割问题;芦旭熠[16]将YOLO v3模型应用于涡旋检测,可以直接输出目标类别和目标检测框,提升了检测速度。但上述方法中对涡旋三维结构的剖析并不深入,在检测的精度和速度上也有待提高。同时国内外在人工智能算法方面对于涡旋三维结构的研究工作较少,如ZHANG 等[17]于2019年首次探索了特征海洋流三维结构的可视化算法,但构造的涡旋结构不够直观。
YOLO(You Only Look Once)算法在2016年由LGUENSAT[18]首次提出,相比于二阶段模型准确率高但速度较慢的特点,YOLO 算法能够直接从图片中寻找可能存在目标物体的位置,极大地提升了目标检测速度,甚至能够实现实时检测。本文将YOLO v5s 模型应用到中尺度涡旋的检测中,在保证检测速度的同时提高了检测精度。基于每层通过YOLO 算法识别的涡旋,本文构建了更加清晰的中尺度涡三维立体结构。
图1 为中尺度涡三维结构构建流程图。首先对流场UV 数据进行流线化生成流线图后,对其进行标注形成涡旋数据集,进而训练YOLO v5s 模型并进行中尺度涡检测,应用涡旋检测结果进行中尺度涡三维构建。
图1 中尺度涡三维结构构建流程图Fig.1 Research route of mesoscale eddies
1 基于YOLO v5s 的中尺度涡检测
1.1 YOLO v5s 模型
YOLO v5s 网络结构如图2所示,主要由输入端(Input)、骨干网络(Backbone)、检测颈(Neck)和预测输出端(Prediction)4 个部分组成。网络输入端采用了Mosaic 数据增强、自适应锚框计算和自适应图片缩放,对小目标检测非常友好,能够极大限度地简化训练过程。在骨干网络中主要采用了Focus、C3 及SSP 结构:输入图像通过Focus 结构进行切片,减小高度和宽度的同时,增加了图像通道数;骨干网络中采用的C3 结构为BottleneckCSP1,用于提取图像的深度语义信息;SPP 空间金字塔池化结构可以增强特征图的特征表达能力,有效提升模型精度。检测颈部分使用的 C3 结构为BottleneckCSP2,与骨干网络中的并不相同,用于融合不同尺度的特征图来丰富语义信息,减少模型的参数量。预测输出端同时输出3 个尺度的预测图,可以检测不同大小的目标。
图2 YOLO v5s 网络结构图Fig.2 YOLO v5s network structure diagram
1.2 涡旋检测
1.2.1 涡旋数据集的获取与制作
实验数据来自哥白尼海洋环境监测服务中心(CMEMS)提供的全球海洋再分析数据(Global Ocean Reanalysis),该数据空间范围覆盖全球,时间跨度自1993年1月1日至2020年5月31日,空间分辨率为0.083°。本文实验选择了2019年中国南海区域(北纬3°~22°,东经105°~118°)深度为50 层(-0.49~-5727.9 m)的日平均数据,并利用MATLAB 软件工具对获取到的50 层UV数据进行流线可视化,图3所示为实验海域UV流线图部分示例图,右下角为其对应层数。其中:U为海流速度的向东分量,V为海流速度的向北分量。
图3 中国南海海域2019年1月15日不同深度UV 流线图Fig.3 UV flow chart of different depths in the South China Sea on January 15,2019
利用labelImg 标记工具对2019年1月份的UV流线图数据进行中尺度涡旋标记,标签内容为样本类别、样本的中心点坐标(图片左上角为原点)、标记框的长和宽。其中海洋数据深度为50 层,故标记31天50层共1 550张数据图片作为涡旋图片数据集。
1.2.2 实验参数与评价指标
本文实验采用的 GPU 为 NVIDIA GeForce GTX 1650,网络模型基于Pytorch 框架搭建,CUDA版本为10.2,Python 版本为3.8,Pytorch 版本为1.7.0。本文实验中采用精确率(Precision)、召回率(Recall)、以及IoU 阈值取0.5 时的平均AP(mAP@0.5)作为评价指标,具体计算公式如下:
式中:TP 为输入正样本且预测为正样本的样本数量;FP 为输入正样本且预测为负样本的样本数量;FN 为输入负样本且预测为正样本的样本数量;k为样本类别数量。
1.2.3 检测结果分析与数据迁移
实验按照8∶2 的比例将中尺度涡数据集分为训练集和验证集进行训练,即训练集样本数量为1 240 张,验证集样本数量为310 张。模型训练过程中的精确率、召回率以及平均检测精度均值如图4所示,可以看出经过80 个epoch 后,Precision、Recall 和mAP@0.5 曲线上升趋势均趋于平缓。本文还将Faster-RCNN、SSD、Retina-Net 以及YOLO v5s 等目标检测模型在同一数据集下进行训练后,在测试集上对平均检测精度均值mAP@0.5 进行对比,对比结果如表1,可以看出YOLO v5s 模型在检测精度上具有很大的优势。
表1 不同模型涡旋检测效果对比Table 1 Comparison of eddy detection effects of different models
图4 Precision、Recall、mAP@0.5 曲线Fig.4 Precision,Recall,mAP@0.5 curves
图5所示为部分实验检测结果图,检测信息包括检测框、检测类别以及对应的置信度,右下角为其对应的层数。从图中可以看到,UV流线图涡旋特征较为清晰,易于判别,且随着深度的增加,流线逐渐减少,涡旋尺寸减小但数量逐渐增多。实验结果表明,YOLO v5s 卷积网络训练得到的模型对海洋中尺度涡的检测具有较好的适用性。
图5 南海海域2019年1月15日不同深度部分涡旋检测效果图Fig.5 Effect map of eddy detection at different depths in the South China Sea on January 15,2019
为了证明训练得到的模型对UV流线图涡旋检测的适用性及可迁移性,本文还对西北太平洋海域(北纬10°~55°,东经120°~180°)的UV数据实现流线可视化的基础上进行了涡旋检测,检测效果图如图6所示。该海域的涡旋尺寸小、数量繁多且分布密集,但从图6 可以看出,YOLO v5s 模型对其他海域的涡旋检测也有不错的效果。
图6 西北太平洋涡旋检测效果图Fig.6 Effect map of eddy detection in the Northwest Pacific
2 中尺度涡三维结构构建
2.1 三维中尺度涡判断同一性方法
根据之前介绍的中尺度涡检测方法,本文利用YOLO v5s 卷积神经网络训练得到的最优模型,对2019年度南海海域日平均50 层海洋流场数据进行涡旋检测,并对每层检测出来的涡旋判断同一性后进行三维结构的构建。在涡旋检测过程中,设置参数输出模型检测出的每个涡旋的中心点坐标、检测框的长宽尺寸,依据得到的信息进行涡旋同一性判断,以同一时刻两相邻深度层之间的涡旋为例。
具体方法如下:
步骤1:经过模型检测并输出结果后,得到了2 个相邻深度层之间检测出的所有涡旋的相关信息,包括中心点坐标及检测框的长宽尺寸。
步骤2:选取其中一层的某个涡旋,采用最近邻法在另一层中找出中心点坐标与之最近的涡旋,如公式4,其中dmin为2 中心点之间的距离,(x1,y1)和(x2,y2)分别为中心点的坐标。
步骤3:由于涡旋形状大多为不规则椭圆,我们采用椭圆公式计算涡旋面积S,式(5)为椭圆面积计算公式,假设检测框的长为椭圆的长轴长度a,宽为椭圆的短轴长度b。然后判断中心点距离最近的2 个涡旋之间面积的重合度,其中S1、S2分别为2 个涡旋的面积,r为二者之间的比值,本文中设置比值的临界阈值为0.5,即若比值r大于0.5,则认为二者属于同一涡旋,若比值r小于0.5,那么认为二者不属于同一涡旋,并判定上层涡旋已经中断。若涡旋的下一层有2 个涡旋与之重叠,则比值r大的与该涡旋判断为同一涡旋。图7所示为自上而下的三维中尺度涡构建示意图,从Lev1 开始逐层往下遍历,经计算得到S1 与S2 属于同一涡旋。
图7 自上而下的三维中尺度涡构建Fig.7 Three-dimensional top-down eddy construction
2.2 涡旋三维结构构造方法
对已经判断为同一三维涡旋的每一层二维识别涡旋,导出其位置及尺寸信息并进行三维涡旋可视化。为了在涡旋的三维结构中最大程度地保留涡旋的基本特征,本文利用三维涡旋信息中的中心点坐标及检测框尺寸,得到不同深度层的单个涡旋在该层检测图中的具体位置,批量处理后得到每一层的单个涡旋图,并将图中白色部分透明化处理后进行深度层叠加,由于深度数据达到水下约5 000 m,且深度层间隔不均匀,为了得到更清晰的可视化效果,z坐标深度用0~-50 层表示。同时为了更加清晰地了解三维涡旋的立体结构,本文还将每个二维涡旋根据其相关尺寸信息做椭圆后,同样进行了叠加,并勾勒轮廓得到对应立体涡旋的直观化涡旋形状,如图8所示。实验还发现,中尺度涡旋在海洋中呈现出各种不同的类似于椭圆柱体的三维立体结构,如螺旋形柱体、梭形柱体等。
图8 中尺度涡三维结构图Fig.8 Three-dimensional structure diagram of a mesoscale eddy
3 结束语
本文首先将海洋流场UV数据集进行流线可视化,利用labelImg 标记工具对2019年1月份的UV流线图数据进行标注制作了涡旋数据集,随后利用YOLO v5s 卷积神经网络训练出了一种中尺度涡自动检测模型,该模型对海洋中尺度涡的检测具有较好的适用性,最后对检测出的二维涡旋进行了同一性判断,利用判断隶属于同一涡旋的二维涡旋构建中尺度涡三维结构。实验结果表明,本文所应用的深度学习算法能够较为精确地检测涡旋且构造了较为直观的中尺度涡三维结构。下一步将对中尺度涡检测模型做进一步的改进提高,同时对涡旋的三维结构构建进行更加深入的研究分析。