李 永,劉格格,楊俊鋼,崔 偉,焦方濤
(1.中國石油大學(華東) 海洋空間與信息學院,山東 青島 266580;2.中國石油大學(華東) 青島軟件學院 計算機科學與技術學院,山東 青島 266580;3.自然資源部第一海洋研究所,山東 青島 266061;4.自然資源部海上絲路海洋資源環境組網觀測技術創新中心,山東 青島 266580)
海洋中尺度渦[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
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 渦旋數據集的獲取與制作
實驗數據來自哥白尼海洋環境監測服務中心(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
根據之前介紹的中尺度渦檢測方法,本文利用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
對已經判斷為同一三維渦旋的每一層二維識別渦旋,導出其位置及尺寸信息并進行三維渦旋可視化。為了在渦旋的三維結構中最大程度地保留渦旋的基本特征,本文利用三維渦旋信息中的中心點坐標及檢測框尺寸,得到不同深度層的單個渦旋在該層檢測圖中的具體位置,批量處理后得到每一層的單個渦旋圖,并將圖中白色部分透明化處理后進行深度層疊加,由于深度數據達到水下約5 000 m,且深度層間隔不均勻,為了得到更清晰的可視化效果,z坐標深度用0~-50 層表示。同時為了更加清晰地了解三維渦旋的立體結構,本文還將每個二維渦旋根據其相關尺寸信息做橢圓后,同樣進行了疊加,并勾勒輪廓得到對應立體渦旋的直觀化渦旋形狀,如圖8所示。實驗還發現,中尺度渦旋在海洋中呈現出各種不同的類似于橢圓柱體的三維立體結構,如螺旋形柱體、梭形柱體等。

圖8 中尺度渦三維結構圖Fig.8 Three-dimensional structure diagram of a mesoscale eddy
本文首先將海洋流場UV數據集進行流線可視化,利用labelImg 標記工具對2019年1月份的UV流線圖數據進行標注制作了渦旋數據集,隨后利用YOLO v5s 卷積神經網絡訓練出了一種中尺度渦自動檢測模型,該模型對海洋中尺度渦的檢測具有較好的適用性,最后對檢測出的二維渦旋進行了同一性判斷,利用判斷隸屬于同一渦旋的二維渦旋構建中尺度渦三維結構。實驗結果表明,本文所應用的深度學習算法能夠較為精確地檢測渦旋且構造了較為直觀的中尺度渦三維結構。下一步將對中尺度渦檢測模型做進一步的改進提高,同時對渦旋的三維結構構建進行更加深入的研究分析。