金柱璋,方旭源,黃彥慧,尹曹謙,金 煒
寧波大學信息科學與工程學院,浙江 寧波 315211
氣象衛(wèi)星能從空中監(jiān)測不同尺度的天氣現(xiàn)象,其所獲取的衛(wèi)星云圖對于天氣分析與預報均有重要的作用。近年來,隨著氣象衛(wèi)星技術(shù)的發(fā)展,衛(wèi)星云圖的空間光譜分辨率和采集頻率不斷提高,如何管理海量的衛(wèi)星云圖,設(shè)計高效的云圖檢索系統(tǒng)成為困擾氣象工作者的難題。衛(wèi)星云圖檢索屬于圖像檢索范疇,主要包括基于文本的圖像檢索(text-based image retrieval,TBIR)和基于內(nèi)容的圖像檢索(content-based image retrieval,CBIR)。由于TBIR 需耗費大量時間進行標注,CBIR 已成為圖像檢索的主流技術(shù),并在云圖檢索中得到應用。徐堅[1]設(shè)計了一個基于顏色和紋理特征的云圖檢索系統(tǒng),提高了云圖特征的表達能力;上官偉[2]通過提取云圖的形狀特征,并對特征加權(quán)提高了檢索精度;李秀馨[3]利用模糊C 均值聚類分割出各云系后,提取云系特征,進一步改善了對于云系的表征能力;徐曄曄[4]結(jié)合Otsu 和改進分形維數(shù)算法首先對云系進行分割,并利用多特征融合實現(xiàn)了紅外云圖檢索。雖然上述方法在云圖檢索性能上各有優(yōu)勢,但均采用人工定義的底層特征來表征云圖,難以捕獲云圖蘊含的氣象語義信息,且特征維度往往較高,算法的計算復雜度不容忽視。
隨著人腦視覺感知機制研究的興起,深度學習在各領(lǐng)域異軍突起,特別是深度卷積神經(jīng)網(wǎng)絡(luò)(deep convolutional neural networks,DCNN)在圖像分類[5]、檢索[6]和分割[7]等領(lǐng)域都得到了廣泛的應用。區(qū)別于傳統(tǒng)自然圖像,衛(wèi)星云圖具有多波段特點,當使用傳統(tǒng)二維卷積神經(jīng)網(wǎng)絡(luò)(2D convolutional neural networks,2D CNN)提取特征時,難以有效刻畫云圖的波段信息。受Roy 等人在高光譜圖像分類工作[8-9]的啟發(fā),本文通過構(gòu)建殘差三維-二維卷積神經(jīng)網(wǎng)絡(luò)(residual 3D-2D convolutional neural network,R3D-2D CNN),提出了一種基于深度度量學習的衛(wèi)星云圖檢索方法。該方法首先利用三維卷積和二維卷積分別提取云圖的光譜信息和空間信息,以空譜聯(lián)合特征捕捉的策略表征云圖蘊含的氣象語義信息。在此基礎(chǔ)上,針對部分云圖在特征空間存在類內(nèi)差異大類間差異小的問題,采用深度度量學習[10-12](deep metric learning,DML),通過三元組訓練方法[10],將云圖映射到度量空間中,使得樣本特征間的距離滿足檢索的要求。同時,鑒于傳統(tǒng)三元組損失易使模型落入局部最優(yōu)的情況,本文對三元組損失函數(shù)進行改進,在解決早熟收斂問題的同時,進一步拉近相似云圖在嵌入空間中的距離,并引入哈希學習以漢明距離計算云圖間的相似度,從而在保證檢索精度的情況下提高了檢索效率。
Himawari-8 氣象衛(wèi)星是日本發(fā)射的新一代靜止衛(wèi)星,其上搭載的成像儀(Advanced Himawari Imager,AHI)較上一代衛(wèi)星在頻帶數(shù)量、空間分辨率和時間頻率方面都有很大改善[13]。該衛(wèi)星具有3 個可見光、3 個近紅外和10 個紅外觀測波段,3 個可見光波段中心波長分別為0.46 μm、0.51 μm 和0.64 μm,3 個近紅外波段中心波長分別為0.96 μm、1.6 μm 和2.3 μm,10 個紅外波段中心波長分布于3.9 μm~13.3 μm 之間。其中,可見光和近紅外波段的云圖數(shù)據(jù)以反射率形式呈現(xiàn),而紅外波段以亮度溫度形式呈現(xiàn),二者可以分別反映云層的厚度和云層的高度[14]。如果將不同模態(tài)的衛(wèi)星云圖簡單融合設(shè)計云圖檢索系統(tǒng),不僅難于提高檢索的準確度,而且將帶來額外的計算復雜度。因此傳統(tǒng)云圖檢索算法往往基于3 個可見光波段進行設(shè)計,這就忽略了能夠提供如水/冰相態(tài)、粒子大小和光學厚度等云物理參數(shù)的其它波段[13]的信息。為了綜合利用不同波段的信息,本研究選取3 個可見光和3 個近紅外波段的云圖數(shù)據(jù)開展檢索系統(tǒng)的研究。
本文所選取的Himawari-8 氣象衛(wèi)星云圖由日本宇宙航空研究開發(fā)署的P-Tree 系統(tǒng)所發(fā)布,研究區(qū)域為東經(jīng)121°~125°,北緯28°~32°的中國東南沿海,時間范圍包括2017 與2018 年每日北京時間10 點至11 點。我們將全圓盤云圖數(shù)據(jù)依據(jù)研究區(qū)域的經(jīng)緯度進行截取,生成大小為81 pixel×81 pixel 的不同時刻的6 波段云圖后組成數(shù)據(jù)集,并對各云圖依據(jù)對應氣象站的歷史天氣狀況記錄進行標注。數(shù)據(jù)集包括1244 個時次的陰天云圖、372 個時次的晴天云圖、1219 個時次的雨天云圖和792 個時次的臺風云圖,圖1 為研究區(qū)域不同天氣狀況的可見光波段1 的云圖示例。
在此基礎(chǔ)上,為了刻畫完整的天氣系統(tǒng),本文參考云圖數(shù)據(jù)集LSCIDMR[15]的構(gòu)建方法,以1000 pixels×1000 pixels 大小的滑動窗口對Himawari-8 的北半球云圖進行截取,并參照LSCIDMR 的標注將所截取的云圖標注為熱帶颶風、鋒面、西風急流、雪等不同的天氣系統(tǒng);為了控制算法的計算復雜度,本文將6 通道的1000 pixels×1000 pixels 的云圖縮小為128 pixels×128 pixels;為了使不同類別天氣系統(tǒng)的云圖數(shù)量基本均衡,我們篩選了632 個時次的鋒面云圖、628 個時次的西風急流云圖、717 個時次的雪天云圖和698 個時次的熱帶颶風云圖組成北半球區(qū)域云圖數(shù)據(jù)集,圖2給出了不同天氣系統(tǒng)可見光波段1 的云圖示例。下文的研究將分別基于東南沿海區(qū)域云圖數(shù)據(jù)集和北半球區(qū)域云圖數(shù)據(jù)集展開,為了敘述簡潔,將它們分別簡稱為沿海云圖數(shù)據(jù)集和北半球云圖數(shù)據(jù)集。
設(shè)衛(wèi)星云圖數(shù)據(jù)集為I={x1,x2,...,xi,xn},n代表數(shù)據(jù)集樣本的數(shù)量,xi為每時次的云圖,其對應的天氣標簽為yi。為了實現(xiàn)云圖檢索系統(tǒng),本模型應用哈希函數(shù)將衛(wèi)星云圖編碼為二值哈希碼:h:I→{-1,1}K×n,其中K為哈希碼的位數(shù)。我們首先構(gòu)建殘差三維-二維卷積神經(jīng)網(wǎng)絡(luò)模型以刻畫云圖的空譜聯(lián)合特征,然后通過度量學習監(jiān)督模型訓練,提取云圖的哈希碼特征。圖3 為算法流程圖。
本模型采用兩個時次的同類云圖和一個時次的非同類云圖組成三元組,開展度量學習訓練。三元組通過R3D-2D CNN 生成近似哈希碼,經(jīng)過二值化操作轉(zhuǎn)換成哈希碼后存儲到哈希碼庫中。在測試階段,待檢索云圖的哈希碼同云圖庫中歷史云圖的哈希碼進行比對,并通過計算漢明距離返回檢索結(jié)果。
2.2.1 殘差三維-二維卷積神經(jīng)網(wǎng)絡(luò)
為了提取衛(wèi)星云圖的空間及多波段光譜特征,本文在二維卷積網(wǎng)絡(luò)的基礎(chǔ)上,構(gòu)建了如圖4 所示的殘差3D-2D 卷積神經(jīng)網(wǎng)絡(luò)。
圖1 不同天氣可見光波段1 的云圖。(a) 陰天;(b) 雨天;(c) 晴天;(d) 臺風Fig.1 Visible band 1 cloud images of different weather(a) Cloudy;(b) Rainy;(c) Fair;(d) Typhoon
圖2 不同天氣系統(tǒng)可見光波段1 的云圖。(a) 雪;(b) 鋒面;(c) 西風急流;(d) 熱帶颶風Fig.2 Visible band 1 cloud images of different weather systems.(a) Snow;(b) Frontal surface;(c) Westerly jet;(d) Tropical cyclone
圖3 算法流程圖Fig.3 Overall algorithm flow chart
圖4 殘差3D-2D 卷積神經(jīng)網(wǎng)絡(luò)Fig.4 Residual 3D-2D convolution neural network
從圖中可知,殘差3D-2D 卷積神經(jīng)網(wǎng)絡(luò)分為兩個模塊:光譜特征學習模塊(spectral feature learning)和空間特征學習模塊(spatial feature learning)。其中在光譜特征學習模塊(圖4 上半部分)中,為了加快模型收斂并克服網(wǎng)絡(luò)退化,引入了殘差塊(Spectral_ResBlock)[16]的結(jié)構(gòu),通過多個殘差塊,不僅可以提取云圖的深層光譜特征,而且通過恒等映射,模型訓練時梯度能在高低層間迅速傳遞,從而促進和規(guī)范化模型的訓練過程。為有利于云圖光譜特征的提取,本文在模型中引入了通道注意力機制。首先通過全局平均池化(global average pooling)和全局最大池化(global max pooling)對特征圖進行聚合,之后將聚合的特征圖輸入一個共享的多層感知機(multilayer perceptron,MLP)來生成對應的特征向量,特征向量按各元素相加并經(jīng)過sigmoid 激活后獲得通道注意力權(quán)重向量。最后運用權(quán)重向量對原始特征圖進行加權(quán),以細化特征圖中各個通道的權(quán)重,使模型關(guān)注有意義的通道而削弱對無意義通道的關(guān)注度。在提取云圖光譜信息的基礎(chǔ)上,為了進一步刻畫云圖的空間信息,該模型通過矩陣變維操作,改變特征圖的維度,輸入空間特征學習模塊。在空間特征學習模塊中(圖4 下半部分),本文以殘差塊的形式構(gòu)建二維卷積來提取云圖的空間信息??紤]到網(wǎng)絡(luò)最終以哈希碼的形式表示衛(wèi)星云圖,我們采用全局平均池化整合特征圖的全局空間信息,并輸入神經(jīng)元個數(shù)為K的全連接層,以雙曲正切函數(shù)( tanh)作為全連接層的激活函數(shù),獲得K位(-1,1)的近似哈希碼。
2.2.2 深度度量學習
由于采用傳統(tǒng)交叉熵分類損失訓練的深度網(wǎng)絡(luò)難于全面刻畫云圖間的差異,致使所提取的云圖特征會存在類間差異小、類內(nèi)差異大的情況[17]。為了解決這一問題,本文引入度量學習,采用三元組訓練將云圖特征映射到度量空間,使得在度量空間中同類云圖間的距離小于非同類云圖。三元組t={(ga,gp,gn)}由錨樣本、正樣本和負樣本組成,其中錨樣本ga和正樣本gp類別相同,而負樣本gn則屬于不同類別。在訓練時,ga和gp組成一組正樣本對,而ga和gn組成一組負樣本對,通過網(wǎng)絡(luò)訓練,使得正樣本對間距離縮小,負樣本對間距離擴大[18],如圖5 所示。
圖5 訓練后正樣本對間距離縮小,負樣本對間距離擴大Fig.5 After training,the distance of the anchor-positive decreases and the distance of the anchor-negative increases
傳統(tǒng)三元組度量學習采用哈希碼以漢明距離來計算樣本間的距離,造成使用三元組損失進行模型訓練時梯度難于計算,文獻[19]對二進制約束進行連續(xù)松弛(continuous relaxation),將離散的哈希碼轉(zhuǎn)換成近似哈希碼(即連續(xù)的云圖特征向量),經(jīng)過連續(xù)松弛后三元組損失如下:其中 ξ()代表指示函數(shù),當三元組損失L大于0 時為1,其他情況為0??梢钥闯觯M損失所訓練網(wǎng)絡(luò)的性能依賴于閾值的設(shè)置,當正樣本對間的距離與閾值之和小于負樣本對間的距離時,梯度為0,模型參數(shù)無法得到更新,模型陷入早熟收斂。為解決此問題,Arsenault 提出了無損三元組損失[21]:
式中:N為哈希碼位數(shù)的4 倍即 4K,ε是一個小正數(shù)以避免ln0 的出現(xiàn)。由于正樣本對間的距離,因此。利用此損失函數(shù),只有當錨樣本與正樣本間的距離接近0 時,損失函數(shù)才會達到最小值,因此能解決傳統(tǒng)三元組損失的早熟收斂問題。然而,式(5)計算的三元組損失缺少對正樣本對間距離的限制,從而可能造成同類云圖在嵌入空間中不夠緊密[22],并降低模型的檢索性能。為此,我們在無損三元組損失的基礎(chǔ)上對正樣本對間的距離進行約束,得到如下所示的損失函數(shù):
式中:λ為平衡參數(shù),而 β規(guī)定類內(nèi)相似度的閾值。我們將衛(wèi)星云圖所對應的近似哈希碼使用符號函數(shù)(sign)進行二值化處理,生成云圖對應的哈希碼。在云圖檢索時,通過待檢索云圖與云圖庫中歷史云圖的哈希碼的比較,即可返回檢索結(jié)果。
本文實驗的硬件環(huán)境為Intel Core i5-10600KF CPU@4.10 GHz,32 GB 內(nèi)存,NVIDIA GeForce RTX 3060,基于Keras 和tensorflow 框架構(gòu)建深度網(wǎng)絡(luò)模型。我們將沿海云圖數(shù)據(jù)集和北半球云圖數(shù)據(jù)集分別按8:2 和7:3 劃分訓練集和測試集。對每時次的云圖旋轉(zhuǎn)90°、180°和270°以擴增訓練集,盡量減輕網(wǎng)絡(luò)的過擬合問題。參照文獻[23]的策略將錨樣本與容易正樣本&困難負樣本(easy positive &hard negative)組成三元組,采用自適應矩估計(adaptive moment estimation,Adam)優(yōu)化器進行網(wǎng)絡(luò)訓練,初始學習率設(shè)置為1 0-5,目標函數(shù)中的超參數(shù) λ、β分別設(shè)置為0.01 和0.002。采用準確率(precision,P)和平均精度均值(mean average precision,mAP)兩個指標對檢索方法的性能進行評估[24]:
式中:L為檢索時給定的返回云圖數(shù)量,m(xi)代表返回結(jié)果中與待檢索云圖xi同 類別的云圖數(shù)量,Q為待檢索圖像的總數(shù),為了表示簡潔,將PPrecision@L統(tǒng)一簡寫為P@L。式(8)中,AP 為每張云圖的檢索精度均值(average precision,AP),計算方法如下:
式中:M(xi)表 示在云圖數(shù)據(jù)集中與xi同類別的云圖數(shù)量,在第j次檢索時,當給定返回的云圖數(shù)量為Lj時,系統(tǒng)剛好檢索到j(luò)個時次的同類別云圖。以下將通過實驗分析損失函數(shù)和哈希碼長度對模型性能的影響,并將本文模型與其他檢索算法進行比較。
為了評價不同損失函數(shù)對于本模型的影響,分別以三元組損失(triplet loss,TL)、無損三元組損失(lossless triplet loss,LTL)和限制正樣本對距離的無損三元組損失(constrained lossless triplet loss,CLTL)作為目標函數(shù)對模型進行訓練,并比較了采用不同損失函數(shù)模型的檢索性能。實驗中,哈希碼長度設(shè)為64 位,三元組損失中的閾值設(shè)定為0.2,實驗結(jié)果如表1 和表2 所示。
從表1 和表2 可以看出,基于傳統(tǒng)三元組損失函數(shù)的模型在兩個數(shù)據(jù)集的檢索實驗中,檢索準確率與平均精度均值均不理想,這可能是由于采用傳統(tǒng)三元組損失函數(shù)時模型早熟收斂落入偽優(yōu)造成的;采用無損三元組損失的模型在檢索準確率及平均精度均值指標上均有所改善,在返回20 張云圖時,在兩個數(shù)據(jù)集上檢索準確率分別提高了3.49%和3.08%。而采用限制正樣本對距離的無損三元組損失函數(shù)模型,由于對正樣本對間的距離施加約束,使得嵌入空間中同類云圖的類簇更加緊密,模型的檢索性能得到了進一步的提高,在兩個數(shù)據(jù)集上mAP 分別達到了75.14%和80.14%。
表1 沿海云圖數(shù)據(jù)集中不同損失函數(shù)的模型檢索性能Table 1 The model retrieval performance of different loss functions in coastal cloud image dataset
表2 北半球云圖數(shù)據(jù)集中不同損失函數(shù)的模型檢索性能Table 2 The model retrieval performance of different loss functions in the North hemisphere cloud image dataset
不同的哈希碼長度會對檢索系統(tǒng)的性能產(chǎn)生影響,以沿海云圖數(shù)據(jù)集為例,將哈希碼長度K,分別設(shè)定為32、64、128 和256 位,開展檢索性能的對比實驗,結(jié)果如圖6 所示。
從上圖可以看出,當K=32 時,在返回30 張云圖時,準確率僅為68.69%,雖然隨著K值的增大,檢索性能會得到改善,然而當K達到64 后,模型性能基本趨于穩(wěn)定。從計算效率上看,K=256 時檢索一張云圖約需1.71 ms,而K=64 時檢索一張云圖僅需0.96 ms,綜合考慮檢索性能與計算效率,本文將哈希碼長度設(shè)定為64 位。
圖6 哈希碼長度對模型的影響Fig.6 The effects of the hash code length on model performance
為了驗證本文算法的有效性,在沿海云圖數(shù)據(jù)集和北半球云圖數(shù)據(jù)集上開展了與其它檢索算法的對比實驗,對比算法包括:1) 基于核的監(jiān)督哈希(kernelbased supervised Hashing,KSH)[25];2) 基于深度學習的二進制哈希(DLBHS)[26];3) 基于度量學習的深度哈希 (metric-learning-based deep Hashing network,MiLan)[18];4) 深度監(jiān)督哈希(deep supervised Hashing,DSH)[19]。其中KSH 方法采用三個可見光通道疊加后所提取的GIST 特征[27],DLBHS方法使用VGG16 作為特征提取器,所有方法的哈希碼長度均為64 位,實驗結(jié)果如表3 所示。
從上表可以看出,KSH 方法的檢索性能最不理想,mAP 僅有60%左右,這主要是由于KSH 所采用的人工定義的特征難于捕捉云圖的深層信息;基于深度學習的DLBHS、DSH 與Milan 方法在獲得圖像的深度特征后,再生成哈希碼,可以有效表征云圖的深層信息,因此檢索性能有所改善。相較于本文算法,這些基于深度學習方法的檢索性能不夠理想,一方面是因為在特征提取階段未能有效刻畫云圖的光譜信息;另一方面是因為在哈希碼生成階段所采用的相關(guān)度量損失函數(shù)不夠優(yōu)化。本文方法則通過R3D-2D CNN更好地表征了云圖的空間和光譜信息,而且采用改進的無損三元組損失優(yōu)化了嵌入空間中的樣本分布,因此檢索性能有了進一步的改善,在沿海云圖數(shù)據(jù)集和北半球云圖數(shù)據(jù)集上,mAP 分別達到75.14%和80.14%。
為了直觀展示本文方法的檢索性能,給出了不同方法的檢索實例。對于沿海云圖數(shù)據(jù)集,選取2018年1 月30 日的多云天氣云圖(cloudy)作為待檢索云圖,檢索結(jié)果如圖7 所示。
從圖7 可以看出,KSH 方法的檢索結(jié)果不夠理想,Top7 中包含了雨天云圖(rainy);DLBHS、DSH與Milan 方法雖然返回的云圖均屬于多云天氣,但沒能有效返回相鄰時次的相似云圖,從視覺表現(xiàn)上看,與待檢索云圖相似度的排序也不合理,而且返回結(jié)果中部分云圖的云團形狀與紋理表現(xiàn)和待檢索云圖差異較大;本文方法不僅有效返回了相鄰時次的相似云圖,而且返回結(jié)果大都與待檢索云圖具有一致的形狀與紋理表現(xiàn)。對于北半球云圖數(shù)據(jù)集,選取了2019 年4月21 日的西風急流云圖(Westerly Jet)進行檢索實驗,結(jié)果如圖8 所示。
表3 各數(shù)據(jù)集在不同方法下的檢索準確度Table 3 Comparison of retrieval performance between different retrieval methods
圖7 多云天氣云圖實例檢索結(jié)果Fig.7 Retrieval results of cloudy weather image
圖8 西風急流云圖實例檢索結(jié)果Fig.8 Retrieval results of westerly jet cloud image
從圖8 可以看出,KSH 方法的表現(xiàn)最不理想,返回的云圖大都為鋒面云圖(frontal surface);DSH與Milan 方法的返回結(jié)果也均包含與待檢索云圖非同類的鋒面云圖,雖然DLBHS 方法的返回結(jié)果均為西風急流云圖,但從視覺相似度上看,本文方法的返回結(jié)果與待檢索云圖的相似度排序更加合理。
為了提取多波段衛(wèi)星云圖的光譜和空間信息,本文通過殘差3D-2D 卷積神經(jīng)網(wǎng)絡(luò)來表征衛(wèi)星云圖,同時引入度量學習,采用三元組訓練得到云圖的哈希碼特征,實現(xiàn)云圖檢索。在模型訓練時,通過對無損三元組損失函數(shù)增加正樣本對間距離的約束,改善了傳統(tǒng)三元組損失的收斂性能。實驗結(jié)果表明,在東南沿海云圖數(shù)據(jù)集和北半球區(qū)域云圖數(shù)據(jù)集上,mAP分別達到了75.14%和80.14%,優(yōu)于其它對比方法;下一步將研究如何更好地利用衛(wèi)星云圖的紅外與可見光信息,以提高云圖檢索方法的性能。