杜田田,王曉龍,何勁
(1.上海交通大學電子信息與電氣工程學院,上海 200240;2.上海華訊網(wǎng)絡系統(tǒng)有限公司行業(yè)數(shù)智事業(yè)部,上海 200127)
我國地域遼闊,河流眾多,但水情不穩(wěn)定,洪水、斷流等極端情況頻發(fā),因此能夠及時準確地獲取河流流速、流量變化等水文信息對智慧水運交通、災害防治等至關重要。利用螺旋槳測速儀、聲學多普勒流速剖面儀(ADCP)[1]等儀器進行實地測量的傳統(tǒng)測速方法雖然發(fā)展成熟并被廣泛使用,但其易受天氣、地形、水流條件等因素的制約,且存在需人工涉水、成本高昂、檢測范圍窄、不能大規(guī)模部署等問題,已不能滿足我國智慧水運交通發(fā)展的要求。
為了應對上述挑戰(zhàn),完成遠程監(jiān)測任務,近年來基于視頻圖像的河流表面流速(RSV)測量方法被提出,并因其安全性強、測量效率高等優(yōu)點得到人們的廣泛關注。該方法的基本流程如下:首先在河岸一側架設攝像機獲取河流水面視頻圖像,然后利用圖像測速法估算出水流流速的像素級的二維速度場,再通過仿射變換將其轉化為真實流速。圖像測速法按運動矢量估計方法的不同可分為粒子圖像測速法(PIV)、粒子跟蹤測速法(PTV)、時空圖像測速法(STIV)和光流估計測速法(OFV)。其中,PIV和PTV對示蹤物密度和光照變化等很敏感[2-3],不適合應用在有光影或反射的河道場景中,基于STIV[4]的測速方法受限于只能測得部分流場信息,在手動設置測速線的情況下只能獲得測速線上的流速分量,無法進一步估算出河流流量。相比之下,OFV方法對示蹤物的要求較低[5],并且能夠產(chǎn)生像素級流場。在過去的十年中,許多OFV傳統(tǒng)方法,如OTV[6]、KLT-IV[7]等已被證明性能優(yōu)于PIV和STIV。
盡管這些傳統(tǒng)的光流方法已經(jīng)獲得了令人滿意的結果,但因假設條件的限制,其在有光影干擾或大位移場景中的測量精度較低。近年來,隨著深度學習的迅猛發(fā)展,許多學者開始嘗試利用深度卷積神經(jīng)網(wǎng)絡(DCNN)對傳統(tǒng)的圖像測速法進行改進。文獻[8]采用FlowNet光流估計網(wǎng)絡模型處理近距離非接觸式水面圖像,實驗結果表明,與傳統(tǒng)的光流測量方法相比,結合DCNN的測速技術具有簡單高效、準確度高的特點。文獻[9]利用多特征融合的DCNN實現(xiàn)了河流流速分類,并通過引入生成式對抗網(wǎng)絡生成河流圖像,增強了算法在小差異河流圖像上的魯棒性。
本文提出一種改進的OFV方法,該方法適用于存在光影和反射等復雜光照的河道場景。本文方法基于光流估計中具有較高精度和較強跨數(shù)據(jù)集泛化性能的循環(huán)全對場變換(RAFT)模型[10],通過引入卷積塊注意力模塊(CBAM)機制,優(yōu)化其損失函數(shù),降低在復雜光照條件下的誤檢率。
傳統(tǒng)光流法的提出基于以下3個基本假設:1)亮度恒定,即相鄰幀亮度或顏色恒定不變;2)時間連續(xù),即連續(xù)的“小運動”;3)空間一致,即相鄰像素點間運動一致。根據(jù)上述假設,傳統(tǒng)的光流估計方法基本方程如式(1)所示:
I(x+dx,y+dy,t+dt)=
I(x,y,t)+Ixdx+Iydy+Itdt
(1)
基于亮度恒定假設,對式(1)按照泰勒公式展開可以獲得:
(2)
時間連續(xù)假設增加了運動物體內(nèi)部為平滑光流場的約束,通過光流場梯度計算全局平滑度然后不斷迭代,當平滑度達到最高時,可視為估算出真實光流場。然而,在很多實際場景中,這些假設是不成立的。具體而言,當光照劇烈變化或相鄰幀之間物體發(fā)生巨大位移時,傳統(tǒng)的光流估計方法就會表現(xiàn)出較差的檢測精度,但在河道場景中,倒影、陽光反射等現(xiàn)象是不可避免的。因此,傳統(tǒng)的光流估計方法在RSV檢測任務中適用場景比較受限。
近年來,深度學習在計算機視覺領域廣泛應用,取得了顯著效果[11]。為解決傳統(tǒng)光流估計方法存在的問題,文獻[12]設計了基于深度學習的光流估計(DLOF)架構,并提出FlowNetS和FlowNetC兩種編碼器-解碼器結構的網(wǎng)絡模型,其中,FlowNetS是一種相對簡單的光流網(wǎng)絡,首先對輸入的相鄰兩幀圖像使用卷積神經(jīng)網(wǎng)絡下采樣獲取圖像的特征,然后通過反卷積方法獲得逐像素的光流結果,另一種相關性光流網(wǎng)絡FlowNetC,受傳統(tǒng)方法中加入匹配項的啟發(fā),首先計算兩幀圖像的相關性,再通過特征空間求解光流。文獻[13]提出了基于空間金字塔的光流模型Spatial Pyramid Network(SpyNet),與FlowNet 1.0相比,SpyNet的參數(shù)量減少了96%,但其精度較差,且每一層網(wǎng)絡都需要單獨訓練。德國弗萊堡大學團隊在2017年提出了FlowNet 2.0[14],相較于FlowNet 1.0,其精度得到了大幅提高,但該架構是通過堆疊子網(wǎng)絡來獲得的,因而模型的訓練參數(shù)量巨大,難以訓練。2018年,學者們在SpyNet的基礎上,提出了兩種具有代表性的金字塔結構光流網(wǎng)絡PWCNet[15]和LiteFlowNet[16],其采用特征扭曲操作,而非在不同尺度下進行圖像扭曲,同時使用了成本體積層計算金字塔各層的匹配代價,進一步處理大位移并降低了模型參數(shù)量,在不同的光流數(shù)據(jù)集上都取得了較好的效果。文獻[17]考慮到算法空間復雜度太高,降采樣又會導致精度受限的問題,引入高效的體積網(wǎng)絡來進行密集的二維對應匹配,極大地減少了空間的占用量。
2020年,文獻[11]針對之前的DLOF模型過多依賴于訓練數(shù)據(jù)、泛化性能不強的問題,提出了RAFT網(wǎng)絡模型。該模型的獨特之處在于:使用改進的門控循環(huán)單元(GRU)迭代更新預測光流,在運行時間、訓練速度和模型大小等方面都表現(xiàn)出色,達到了最佳估計性能,吸引了許多研究人員對其進行改進和增強[18]。
考慮到DLOF模型在許多基準測試中都優(yōu)于傳統(tǒng)模型,并且端點誤差(EPE)更小,本文采用RAFT光流估計為基準網(wǎng)絡架構。
改進的RAFT光流網(wǎng)絡模型如圖1所示(彩色效果見《計算機工程》官網(wǎng)HTML版,下同),其中改進部分即引入的CBAM注意力模塊,使用虛線框做了標注。RAFT模型主要分為3個部分:首先是像素級特征向量的運動特征提取部分;其次是計算所有像素對之間全局相關量的視覺相似度模塊;最后是基于GRU的光流迭代更新器。針對存在光反射和閃爍的河面場景,本文在運動特征提取部分引入了注意力機制。由于不同迭代輪次的中間值對于光流估計結果的貢獻度不同,本文提出一種具有不同權重的復合損失函數(shù)方法,通過增加體現(xiàn)流體物理特性的角誤差和旋度平滑損失,提高光流估計網(wǎng)絡在流體運動估計中的泛化性能。
RAFT的運動特征提取網(wǎng)絡由上下文編碼器和特征編碼器兩部分組成,這2個編碼器結構相同,均由6個殘差塊組成,兩兩一組,分別具有1/2、1/4和1/8的分辨率,通過這種下采樣可得到密集的特征映射。兩者的不同在于,上下文編碼器只接受I1,并使用批處理規(guī)范化而不是實例規(guī)范化。
RAFT的運動特征提取網(wǎng)絡專注于捕獲大型、剛性運動物體,然而在RSV估算問題中,波紋或示蹤物的尺寸較小、形狀不規(guī)則、分布密集且運動模式復雜,因此,需要對網(wǎng)絡進行修改,以更好地適應流體運動估計。
受人類生物系統(tǒng)的啟發(fā),注意力機制在深度學習領域得到廣泛應用,在處理大量信息時,注意力能夠引導模型關注重要的部分。在RSV估計中,有反射或陰影的水域背景常被誤檢為示蹤物,這在很大程度上影響了光流估計的性能。為此,本文引入了注意力機制,自適應調(diào)整權重,可更加準確地提取到所需特征。CBAM[19]是通道注意力和空間注意力并重的注意力機制網(wǎng)絡,原理如圖2所示,通道注意力分支是將輸入特征在通道維度上進行最大池化和平均池化,再將得到的向量輸入共享權重的多層感知機(MLP),最后逐位相加,得到通道注意力,如式(3)所示:
圖2 通道注意力模塊和空間注意力模塊Fig.2 Channel attention module and spatial attention module
Ac(F)=σ(MLP(AvgPool(F))+
MLP(MaxPool(F)))
(3)
空間注意力分支是將輸入特征的最大池化和平均池化連接起來,再經(jīng)過卷積層和激活函數(shù)得到空間注意力,如式(4)所示:
As(F)=σ(Conv(Cat(AvgPool(F),
MaxPool(F))))
(4)
改進的RAFT光流估計網(wǎng)絡模型如圖1所示,加入CBAM的特征編碼器可以使運動特征提取網(wǎng)絡聚焦于信息豐富的區(qū)域,如帶粒子或波紋的像素,減少無關區(qū)域諸如反射、陰影、背景等像素點的影響。
損失函數(shù)是深度學習的關鍵部分,主要調(diào)節(jié)樣本和預測之間的誤差,其實際意義通常是真實值與預測結果之間的差距。研究表明,損失函數(shù)與神經(jīng)網(wǎng)絡的泛化能力和訓練效率密切相關[20],然而RAFT是基于剛體運動的基本特性展開的,其關鍵損失函數(shù)部分仍普遍采用L1范數(shù)或L2范數(shù),缺乏對流體運動特性的考慮。因此,將流體運動特性的物理知識與深度學習方法相結合的方法為研究者提供了一種新的研究思路[21]。
文獻[22]為解決圖像序列中光照漂移問題,提出基于亮度梯度和一階旋度散度平滑項的損失函數(shù)來優(yōu)化針對PIV數(shù)據(jù)集的LiteflowNet網(wǎng)絡,并將復合損失函數(shù)添加到U-Net中,取得了較好的效果,這說明引入基于流體物理先驗知識的損失函數(shù)能更好地指導網(wǎng)絡訓練。受其啟發(fā),本文提出一種結合基于LI范數(shù)距離平均絕對誤差(MAE)、平均角誤差(AAE)和旋度散度平滑損失的復合損失函數(shù),對流體運動的局部和全局特征進行多維度優(yōu)化。基于流體物理知識的復合損失網(wǎng)絡結構如圖3所示。復合損失函數(shù)表達式如式(5)所示:
圖3 基于流體物理損失的CBAM-RAFT網(wǎng)絡結構Fig.3 CBAM-RAFT network structure based on fluid physical loss
Lfinal=λ1LMAE+λ2LAAE+λ3LS
(5)
其中:λ1、λ2、λ3為權重系數(shù),用于平衡訓練過程中各損失項的相對重要性。
2.2.1 改進的MAE損失函數(shù)
RAFT采用預測值與真實值之間的L1范數(shù)距離誤差監(jiān)督網(wǎng)絡進行訓練,由于RAFT架構存在光流迭代模塊,根據(jù)迭代得到的流場具有由粗糙到精細的特點,本文引入按照迭代次數(shù)呈指數(shù)增長的權重來調(diào)整不同迭代輪次的重要性,改進的MAE表達式如式(6)所示:
LMAE=
(6)
2.2.2 AAE損失函數(shù)
(7)
2.2.3 旋度散度平滑損失函數(shù)
旋度和散度是描述空間矢量場特征的二階物理量。在流場估計中,它們建立了單個矢量與全局矢量流場之間的聯(lián)系。本文采取流場真實值旋度和散度以及模型預測值旋度和散度的L2范數(shù)加權作為二階流場平滑損失函數(shù),計算公式如式(8)所示:
(8)
流場散度和旋度計算如式(9)和式(10)所示:
(9)
(10)
對于復合損失函數(shù),往往需要一個超參數(shù)尺度因子調(diào)節(jié)各損失函數(shù)模塊參與比例。為了在確保模型訓練穩(wěn)定和收斂的同時,又能使每個損失函數(shù)模塊都能夠發(fā)揮其應有的作用,各部分損失的數(shù)量級應該保持一致。通過測試,發(fā)現(xiàn)模型的AAE通常在15°左右,而均方根誤差(RMSE)在1個像素以下,旋度和散度的平均值在0.1以下。因此,本文研究采用RMSE作為基本損失函數(shù),將超參數(shù)λ1、λ2、λ3的值分別設為1、0.05、和10。
由于RAFT是一種密集光流監(jiān)督模型,很難獲得有大量像素位移標記的真實河流場景數(shù)據(jù)集,因此使用開源光流數(shù)據(jù)Sintel[24]預訓練,并采用PIV數(shù)據(jù)集[25]作為驗證集。對于模型訓練性能評價,本文采用EPE損失,即預測光流與地面真實光流之間歐氏距離平均值。GRU更新器的迭代次數(shù)設置為12,優(yōu)化器選用Adam優(yōu)化器,批量大小設置為4,并將初始學習率設置為0.000 125。為了充分驗證所提方法的有效性,采用文獻[26]構造出的虛擬河流數(shù)據(jù)集和現(xiàn)場采集的河流數(shù)據(jù)集[27-28]進行實驗。
為了評估在自然場景中基于DLOF的表面速度測量方法表現(xiàn)效果,本文采用收集到的12段Brenta River河流視頻[28]、Hurunui River和Stanton River河流視頻進行驗證。為評估提出的模型對光影的抗干擾能力,在12段Brenta River河流視頻中添加光照噪聲來模擬光照場景。所有Brenta River視頻幀率為25 Hz,時長為20 s,其他視頻信息以及不同模型對Brenta River的RSV估計結果的平均相對誤差如表1所示。
表1 不同光流方法的平均相對誤差估計結果Table1 Result of average relative error estimated by different optical flow methods
Stanton River河流視頻數(shù)據(jù)集是通過架設在河岸的攝像機以30 Hz幀率和分辨率為1 920×1 080像素錄制的,時長為31 s,同時利用ADCP采樣獲取真實流速。表2列出了在Stanton River河流沿岸采集到的流速和水深數(shù)據(jù)。從圖4和表2可以看出,Stanton River較淺,水流緩慢,河流清澈,表面漂浮著一些落葉可作光流估計跟蹤的示蹤物。此外,圖像左下角有一片明顯的光影閃爍水域,為驗證本文提出的方法對倒影、光影閃爍噪聲的魯棒性,沿圖4中標注的刻度線測量流速,得到的流速分布如圖5所示,從圖5橢圓圈出部分可以看出,引入CBAM和基于流體物理損失函數(shù)的RAFT模型在光照場景下魯棒性更好。至于速度分布曲線波動,較大可能是河流表面示蹤物較少,捕捉到的特征權重分布不均所致。
表2 Stanton River河流流速數(shù)據(jù)Table 2 Stanton River stream flow data
圖4 Stanton River原圖Fig.4 Original image of the Stanton River
圖5 不同方法估算的Stanton River表面速度Fig.5 Stanton River surface velocities estimated by different methods
Hurunui River河流視頻數(shù)據(jù)集是使用大疆 M210無人機以24 Hz幀率和分辨率為3 840×2 160像素錄制的,時長為59 s,并使用ADCP采樣獲得真實流速。圖6和圖7展示了拍攝畫面以及本文提出的改進RAFT流速估計箭頭矢量圖。由于Hurunui River水質(zhì)清晰度較低,流速較高,河流表面平坦,波紋均勻密集,RAFT和本文方法測得流速均接近于真實流速,此外,從圖8折線圖可以看出,相較于RAFT,本文的改進方法流速曲線更平滑,誤差更小,這表明提出的改進方案在普通環(huán)境高流速場景下依然有效。
圖6 Hurunui River原圖Fig.6 Original image of the Hurunui River
圖7 改進RAFT估算的Hurunui River流速分布Fig.7 Hurunui River streamflow distribution estimated by the improved RAFT
圖8 不同方法估算的Hurunui River表面速度Fig.8 Hurunui River surface velocities estimated by different methods
為了更直觀地體現(xiàn)模型改進的有效性和泛化能力,選取晴天、多云、森林以及無人機高空拍攝等多場景虛擬河流視頻進行流場顏色編碼可視化,圖9展示了兩個場景的RSV估計結果,場景1(見圖9 第1行)為有光照反射的晴天(河水朝左下方流動),場景2(見圖9第2行)為無人機拍攝場景(河水朝右流動)。可以看到,在場景1中,初始RAFT模型估計的流場可視化圖[圖9(b)]左下方有較大空腔,主要是因為該區(qū)域河流表面受到光影干擾,導致基于光流的模型難以跟蹤粒子運動,而圖9(c)和圖9(d)的空腔明顯變小,這說明本文改進模型對于光影干擾有更好的魯棒性。此外,從場景2的圖 9(c)也可以看出,引入CBAM機制后模型微小特征學習能力增強,因而圖 9(c)顏色略深于圖 9(b),場景2圖 9(d)明顯更平滑一些,這是結合旋度散度平滑損失函數(shù)的結果。其中,場景1的圖 9(d)圖右上角為流場顏色編碼,顏色類型表示流場方向,深淺表示流場大小。
圖9 虛擬河流視頻可視化圖Fig.9 Visualization of synthetic river flow videos
本文提出一種改進的OFV方法,提高在有反射和光影噪聲的河道場景下RSV估計的精度和魯棒性。該方法在深度學習監(jiān)督模型RAFT基礎上,引入注意力機制增強在相似性高的河道表面特征識別能力,同時在光流迭代過程中采用基于流體物理運動特性的復合損失函數(shù),提高模型在流體運動估計上的泛化性能,降低其在光影干擾等復雜環(huán)境中的誤檢率。實驗結果表明,該方法具有較好的魯棒性,能夠生成更加精準的表面速度空間分布圖。本文采用的將流體物理特征知識融合到DLOF損失函數(shù)的方法,結合了傳統(tǒng)光流估計和深度學習兩者的優(yōu)點,為后繼RSV測量提供了一種新的研究思路。下一步研究方向是構建具有真實稠密流速的河道數(shù)據(jù)集,提高光流估計網(wǎng)絡在RSV估計上的泛化能力。