顧軼,韓潮,劉建勛,劉升剛,邢煒
1.北京航空航天大學 宇航學院,北京 100191 2.北京空間飛行器總體設計部,北京 100094 3.北京航空航天大學集成電路科學與工程學院,北京 100191
光學衛星對地面成像時,云層的遮擋對成像效果會產生很大的影響[1]。據有關部門統計,中國60%的光學衛星圖像因為云層遮擋而無法成為有效的數據產品,這不僅不能滿足用戶需求,還對衛星資源造成極大浪費[2]。云層對于可見光衛星拍攝圖像的遮擋情況,不同的文獻給出了調研的結果。Adrien指出,根據天氣預報的不同,運行中的衛星獲取的高達50%的圖像可能會因為云層過多而被丟棄[3]。Ju則指出,LandSat-7衛星傳感器獲得的圖像中有35%被云層覆蓋[4]。當觀測目標被云層遮擋時,不僅成像質量受到很大影響,而且對該目標的成像觀測會消耗觀測時間窗口、衛星存儲空間、衛星能量等資源,從而減少了對其他目標的觀測機會。短期云層預測技術的實現,可以得到未來一段時間目標上空的云層遮擋情況,對地觀測衛星可因此選擇云層覆蓋較少的區域進行成像觀測,因此云層預測對對地觀測衛星任務規劃具有指導意義[5-6]。
數值天氣預報是氣象預報中最常用的方法,Roussel等指出,數值天氣預報模型的計算量大,往往需要幾個小時才能得到預報結果[7]。施行健等在研究短臨降水問題時指出,數值天氣預報模型更適用于長期預報[8]。以往與短期云層預測相關的研究工作多集中在太陽能輻照度預報領域。云的覆蓋范圍會直接影響太陽輻照度的變化,而太陽輻照度預測多采用基于地面采集的云層圖像[9],圖像采集時間間隔為1-6min。基于地面圖像的云層預測研究中,目前還應用了自回歸差分移動平均模型[10]、Lukas-Kanade光流算法[11]、自回歸神經網絡模型[12]、生成對抗網絡[13]等方法。
太陽能輻照度預測關注于小區域的云層變化,多采用地面觀察天空的云層圖像,時間變化范圍短,覆蓋區域范圍小。考慮到衛星成像的視場幅寬為數十公里到數百公里量級,這種小區域的云層預測并不能滿足對地觀測衛星任務規劃的需要。因此,本文面向對地觀測衛星任務規劃[14-16]的實際需要,利用風云衛星的云圖數據開展大區域短期云層預測研究[17]。本文對傳統的光流算法進行了改進,引入拉普拉斯算子對云運動過程中的擴散現象進行刻畫,并通過真實的云運動序列圖像訓練神經網絡,采用反向傳播算法對擴散因子進行優化。仿真試驗結果表明,相比于傳統光流算法,引入拉普拉斯算子的改進光流法能夠獲得更佳的云層預測效果。
依據憂思科學家聯盟(UCS)的統計數據,截至2021年1月1日,全球共有在軌對地觀測衛星917顆,其中光學對地觀測衛星402顆,占對地觀測衛星總量的43.8%。中國共擁有在軌對地觀測衛星198顆,其中光學對地觀測衛星85顆,占對地觀測衛星總量的42.9%。由此可見光學衛星在對地觀測衛星中的重要地位,但是對于光學對地觀測衛星而言,云層覆蓋的不確定性對觀測任務的完成有顯著影響,云覆蓋被認為是導致衛星遙感圖像失效的最主要因素之一[5]。依據國際衛星云氣候學計劃(international satellite cloud climatology project,ISCCP)提供的數據,在全球范圍內,云層的平均覆蓋率約為67%[18],廣泛存在的云層會對光學對地觀測衛星的成像產生了重要影響,遙感圖像中含有的云區域會導致圖像部分失效,進而將使得對地觀測任務失敗[19]。
云層預測屬于時空序列預測問題,包括時間和空間兩個方面,時間方面是指用被預測事物過去和現在的觀測數據推測未來,空間方面指圖片上的目標以及目標運動和變化的空間信息。
假設每時刻包含P個測量的一定空間區域的云層信息被記錄在M×N的網格中。從空間上看,任何時刻的測量值都可以表示為X∈P×M×N,從時間上看,T個時間步長上的觀測值形成觀測序列X1,X2,…,XT。時空預測學習問題是在給定包括當前觀測的先前J個序列長度的條件下,預測未來最可能的長度為K的序列。數學模型可以表示如下:
p(Xt+1,…,Xt+K∣Xt-J+1,…,Xt)
地球靜止衛星的圖像具有較高的時間和空間分辨率,是云層運動數據的來源,也是所提出的預報方法的基礎。利用風云衛星云圖進行云測預測的整體流程如圖1所示。

圖1 基于衛星云圖的云層預測方法流程Fig.1 Flow of cloud forecasting method based on satellite cloud image
首先需要將衛星的圖像提取為云灰度圖像,然后依據連續的云層圖像序列計算得到云運動矢量,假設接下來一個時間步光流不發生變化,利用此光流外推當前圖像,得到預測的云層圖像。本文引入拉普拉斯算子刻畫云層運動過程中的擴散情況,對圖像進行后處理以提升云層預測的精度。最后將預測的云圖與真實的云圖進行對比,采用均方誤差(MSE)和圖像結構相似性(SSIM)作為評價指標,對云層預測進行效果評估。給定兩個圖像x和y,兩張圖像的結構相似性可按如下公式進行計算:

光流定義了空間運動物體在成像平面上的像素點運動的瞬時速度,光流法是利用圖像序列中像素在相鄰幀之間的相關性來計算相鄰幀之間物體運動信息的一種方法。
對于連續運動的圖像,記圖像上任一點在t時刻的亮度為E(x,y,t),同時該點在水平及垂直方向的運動速度為:
u=dx/dt
v=dy/dt
經過Δt的時間間隔后,記對應點的亮度為E(x+Δx,y+Δy,t+Δt),由Taylor展開可得:
忽略上式中的二階小量,假設Δt較小,亮度恒定,即E(x+Δx,y+Δy,t+Δt)=E(x,y,t),則上式可轉化為:

Exu+Eyv+Et=0
從而計算得到u和v的值。本文采用稠密光流法中的Farneback光流法,利用OpenCV中的函數calcOpticalFlowFarneback進行實現,Farneback光流法原理可參考文獻[20],在此不再進行贅述。
通過在數據集上對Farneback光流法的參數進行調整和網格搜索,經過大量的參數測試,會發現不同參數下光流法的結果的差別并不大,進而可以確定Farneback光流算法的參數數值。
在對云圖進行預測時,可以利用通過不同數量的圖像序列對光流進行初始化,參考文獻[8]中的設定,本文將測試以下三種不同的光流外推方式:
1)Farne1計算最后兩個觀測幀的光流;
2)Farne2根據最后兩個流場的平均值初始化速度;
3)Farne3通過對最接近的三個流場的加權平均給出初始化的光流,由于更接近于當前時刻的流場的影響會更大,參考文獻[8]中的設置方式,將最接近的三個流場的加權系數依次設置為0.7、0.2和0.1。
隨著每一步的云層預測結果,光流的值將依據生成的云圖進行更新,由此可以實現多步的云層預測。
需要指出,光流雖然能刻畫物體的運動,但是對于云這種流體具有的生成和擴散的特性,光流法不能對其進行刻畫,這是光流法的局限之處。為了對云在運動中的擴散現象進行描述,本文采用拉普拉斯算子對云圖的預測結果進行卷積濾波。
記圖像的像素強度值為I(x,y),則其拉普拉斯算子L(x,y)可由下式給出:
L(x,y)可以使用卷積濾波器計算。由于輸入圖像表示為一組離散像素,因此必須找到一個離散卷積核,用來近似拉普拉斯算子定義中的二階導數。由于卷積核設計會影響計算效率,本文選擇了最簡單和最經典的卷積核S形式,其定義如下。

其中參數λ∈R,λ>0為擴散因子。通過對輸入圖像進行拉普拉斯卷積,即可實現云層由中心區域向四周的傳播。在對圖像進行拉普拉斯卷積時,卷積核將對云層圖像中的每一個像素都進行卷積,因此云層在一點處的擴散可以間接影響到更大的區域,這樣就可以合理地刻畫云層的擴散現象。
利用反向傳播算法對擴散因子λ的取值進行優化。由于云層的擴散是在持續進行的,預測未來K步的云圖結果將對應不同程度的擴散,即擴散因子的參數集合為:
通過深度學習框架PyTorch搭建神經網絡的卷積層,利用真實的云層序列圖像作為樣本并制作數據集,確保每一張通過預測得到的云圖都有對應時刻的真實云層圖像,可以計算預測云圖和真實云圖的均方誤差值MSE,將MSE作為神經網絡訓練時的損失函數,并利用反向傳播算法對擴散因子參數進行優化。
本文利用風云二號衛星的云圖序列數據,針對第一島鏈和第二島鏈中間某區域(北緯9.23°~24.23°和東經126.83°~141.83°)的云層情況進行研究,考慮到多數對地觀測衛星為近地軌道衛星,軌道周期約為1.5h,因此本文將選擇3h作為云層預測的時間范圍,這樣云層預測的結果將能為未來兩個軌道圈次的衛星對地觀測任務提供指導。云層圖像每30min一張,則預測的時間步長K=6,本文共針對7980組序列圖像進行預測。下面將分別從時間和空間角度對云層預測結果進行分析,然后將對比引入拉普拉斯算子前后的云層預測結果,并展現擴散因子λ在每一個預測步的取值。
在時間尺度上,可計算圖像預測結果與真實云圖之間的MSE和SSIM指標,對應的數值變化分別如圖2和圖3所示。

圖2 三種外推模型預測結果的均方誤差對比Fig.2 Comparison of the mean square error of the prediction results of three extrapolation models

圖3 三種外推模型預測結果的結構相似性對比Fig.3 Comparison of the structural similarity of the prediction results of the three extrapolation models
隨著預測步數從1增加到6,可以看到MSE的值會從30增加到300左右,SSIM的值會從0.87減小到0.5左右,這說明圖像預測的準確性會隨著預測步數的增加而逐漸降低。圖2和圖3中的圖例采用三種標記代表不同外推方式,通過對比三種不同的外推方式的計算結果,可以看到三種方法下的云層預測結果存在一定的差異,試驗結果在MSE和SSIM指標上表現出了很好的一致性,即在每一步的云層預測效果上,Farne2均優于Farne3,而Farne3均優于Farne1。在平均水平上,Farne1的效果最差,而Farne2和Farne3的表現效果相對更好。這主要是因為Farne1直接將上一步的云運動矢量作為當前時刻的結果,而現實中的云運動的速度大小和方向都可能會發生變化,Farne2和Farne3采用了前兩步或前三步云層運動矢量結果的加權,考慮了不同時刻下運動矢量的變化,更加符合真實的云層運動情況。與Farne1和Farne3外推結果相比,基于Farne2外推的每一步的云層預測結果與真實圖像的MSE最小,而SSIM最大,這說明Farne2的效果最優。由于Farne2的結果最佳,所以在后續的云層預測中,將主要展現基于Farne2外推方式的試驗結果。
圖4展示了兩組云層預測的序列圖像結果,其中黑色背景表示無云,白色區域表示云層覆蓋。每組圖像的三行從上至下依次為:輸入的云圖序列;真實的輸出云圖;預測的云圖序列。通過對比預測云圖和真實的云圖,可以看出基于云運動矢量外推的方法能夠預測云的整體運動趨勢,在較短的時間步長內,能夠達到一定的預測精度。

圖4 衛星云圖的兩個預測實例Fig.4 Two prediction examples of satellite cloud images
同時從圖像中也能夠看到光流法的弊端,如圖4(b)中的預測序列所示,隨著預測步長的增加,圖像左上角和右下角的黑色區域會增大,而在真實的圖像序列中,對應區域一直為白色有云狀態。這是因為隨著云層運動,本區域周圍的云層也會運動到當前區域,而光流法僅能提取當前區域的云運動情況,因此會出現預測圖像邊界上的黑色區域,對此問題將在文中后續進一步分析。
基于云運動矢量的云圖預測方法存在空間上的邊界效應,因此可以采用更大區域范圍的圖像進行云層預測,選取圖像的中間部分作為預測結果,這樣可以減少邊界的影響,在一定程度上提升云層預測的效果。本文針對像素分辨率為100×100的圖像進行云層預測,該圖像區域對應經緯度范圍為北緯9.23°~24.23°和東經126.83°~141.83°,該區域邊界長度約為1680km×1680km。然后分別針對整個圖像和圖像中心的50×50的像素區域進行預測結果的計算和統計,對比結果如表1所示。
從MSE的對比結果可以看到,中間區域的平均MSE為28.839,遠小于全部區域MSE的160.706。并且在每一個預測時間步上,中間區域的MSE和SSIM的結果都要優于全部區域的統計結果,這表明選取中間區域作為預測結果能夠很好地避免有限邊界的影響。因此在實踐中,采用更大區域的圖像預測中心小區域的云層情況是更有效的。

表1 不同區域大小的云層預測結果對比
在對中心50×50的圖像進行覆蓋率誤差的統計時,以10×10的像素分辨率為一個區域,采用閾值分割法計算云層覆蓋百分比,取預測圖像和真實圖像覆蓋率誤差的絕對值進行統計,在7980組數據中分別選取50%和80%分位數,預測未來第3h的統計結果如圖5所示。


圖5 區域覆蓋率誤差的分位數統計/(%)Fig.5 Quantile statistics of regional coverage error/(%)
圖(a)展示的區域覆蓋率誤差最大值約為9%,平均值約為6.8%,圖(b)展示的區域覆蓋率誤差最大值約為16.5%,平均值約為11.7%,可知云層預測結果具有比較高的精度,同時,基于衛星云圖的云層預測可以為對地觀測衛星任務規劃提供一定的指導。
考慮到云層在運動過程中的擴散現象,引入了拉普拉斯算子對云層擴散進行刻畫。本節分別針對三種光流外推方法,開展了加入拉普拉斯算子前后的云層預測結果的對比分析,拉普拉斯算子對云層預測結果的MSE和SSIM的影響分別如表2和表3所示,其中Farne1-N、Farne2-N和Farne3-N表示不加入拉普拉斯算子時的三種光流外推策略。
從對比結果可以看出,加入拉普拉斯算子后,云層預測的MSE值比沒有加入時要明顯降低,并且在每一個預測時間步上都會有效果的提升;同時云層預測結果的SSIM指標在進行拉普拉斯卷積后也會有所提升,并且提升效果的幅度會隨著預測步長的增加而增大,因此對比結果很好地展現了拉普拉斯算子對云層預測效果提升的有效性。

表2 拉普拉斯算子對預測結果的MSE的影響對比

表3 拉普拉斯算子對預測結果的SSIM的影響對比
通過神經網絡的反向傳播算法對每個預測步的擴散因子λ進行優化,對λ的取值進行統計如表4所示。可以發現,隨著預測步長的增加,λ的取值也會提升。λ的值越大表明云層擴散的效果越明顯。因為隨著預測時間增加,云層的擴散也會逐漸累積,擴散效果會更加明顯,這與λ的取值能夠很好地吻合,這反映出基于真實云圖數據下,參數λ取值優化結果的合理性。

表4 擴散因子λ在每個預測步上的取值
利用風云衛星的真實云圖,采用基于Farneback光流法的運動矢量外推可以實現云層預測,從時間尺度上,云層預測的誤差會隨著預測步長的增加而增大,依據云圖的對比效果可知光流法的結果能夠近似預測云層的運動趨勢;從空間尺度上,基于光流法的云層預測具有邊界效應,即邊界處云的移動無法得到周邊云層的補充,因此工程上可以采用更大區域的云圖計算光流來預測中間區域的云層情況;通過對比引入拉普拉斯算子前后的云層預測效果,可以發現增加對云層擴散的刻畫,可以有效地提升云層預測的精度,通過對優化后擴散因子λ取值的分析,可以發現隨著預測步長增加,云的平均擴散效果也是增加的,這也驗證了拉普拉斯算子和擴散因子的有效性。
未來與展望:目前基于深度學習的視頻預測方法已成為計算機視覺的研究重點之一,而且隨著衛星技術的進步,目前也有大量的云圖數據,未來可以考慮采用深度學習進行云層預測研究;此外,需要將云層預測的結果與對地觀測衛星的任務規劃結合起來,短期的云層預測可以給衛星任務重規劃提供指導,未來的研究可以建立短期云層預測與對地觀測衛星任務規劃問題結合的框架,并研究設計基于云層預測的地面目標觀測任務規劃算法。