蔡聲澤,許 超,*,高 琪,魏潤杰
(1.浙江大學 控制科學與工程學院,杭州 310027;2.浙江大學 航空航天學院,杭州 310027:3.北京立方天地科技發展有限責任公司,北京 100083)
粒子圖像測速(Particle Image Velocimetry,PIV)是一種非接觸式、全局、定量的實驗檢測手段[1]。PIV能從圖像中分析流體運動的速度場信息,從而幫助研究者更深入地了解復雜流動現象。以二維平面PIV為例,其工作原理是在被測流體介質中投放示蹤粒子,并采用特定波長的激光照射測量平面,通過相機捕獲粒子的反射光形成粒子圖像,最后計算相鄰圖像之間的粒子位移,從而獲得真實流場中的速度矢量。自1980年代提出以來,PIV一直是實驗流體力學領域的研究熱點,并發展成為應用最廣的流動可視化測量技術。
PIV的關鍵步驟之一在于,如何從粒子圖像中分析流體運動的速度場。目前,常用的圖像測速算法有兩類,即相關分析法[2]和光流法[3]。相關分析法通過提取兩幀圖像的窗口進行互相關計算,查找相關函數最大的匹配方向,作為該窗口中心的位移矢量。該方法原理簡單、計算方便,因此被廣泛接受并不斷改進。目前使用較多的是基于圖像變形的多重網格迭代算法(簡稱WIDIM)[4],該算法通過逐層縮小窗口尺寸和窗口間隔,逐步獲得更高分辨率和更高精度的速度場,成為當前很多PIV商用軟件的基礎。但是,由于相關分析法計算窗口內的統計平均位移,它仍無法實現單像素級別分辨率的速度場估計,因此在進行小尺度流動運動估計時效果不佳。
另一種常用圖像測速算法——光流法,則在分辨率上存在優勢,可以提取單像素級別的速度場。光流法發源于計算機視覺領域,以光照不變假設和速度場平滑假設構建目標函數,再通過對目標函數進行極小化變分求解,得到相應的速度場。與WIDIM相關分析類似,目前較為成熟的光流法均采用多尺度金字塔迭代方案進行求解[5-6],可以滿足大粒子位移估計。近年來,光流法在粒子圖像測速領域中得到了較多關注,研究者還在變分光流的目標函數中耦合描述流體物理屬性的方程,從而提高光流法對流體運動估計的精度和魯棒性[7-9]。但是,由于需要進行變分優化,光流法的計算效率較低,同時難以調節的超參數也限制了光流法的擴展與應用。
針對上述相關分析法和光流法的缺陷,本文計劃提出以深度學習為基礎的粒子圖像測速算法,實現單像素、精確、快速的速度場估計。深度學習在計算機領域已經取得巨大成功[10-11]。在此之前,有部分研究工作將PIV與深度神經網絡相結合[12]。文獻[13]提出采用串聯網絡結構完成類似相關分析的工作,即在一個粒子圖像窗口中,用神經網絡估計一個速度矢量。而最新的研究成果文獻[14],則以光流神經網絡為基礎進行改進設計,能夠提取稠密的速度場,在滿足一定精度的情況下具有很高的計算效率。本文在上述文獻的基礎上,設計基于深度學習的粒子圖像測速算法,顯著提高了速度場估計精度。
本文采用LiteFlowNet神經網絡作為基礎。該卷積神經網絡(Convolution Neural Network,CNN)由計算機視覺領域的研究者提出,其精度達到剛體運動估計的最高水平[15]。為了適應流動測速場景,對網絡結構進行部分修改,并調整訓練參數,同時,采用人工生成的PIV數據集進行網絡訓練,從而得到用于PIV的深度神經網絡。訓練而成的網絡模型將被用于仿真實驗數據和真實實驗數據的測試評估。本文重點在計算圖像速度場。測試結果表明,提出的基于深度神經網絡的PIV算法在精度、分辨率、計算效率上具有明顯優勢和前景。
本文以光流神經網絡LiteFlowNet為基礎構建基于深度學習的粒子圖像測速方法。LiteFlowNet是用于光流估計的輕量級卷積神經網絡,目前代表剛體運動估計中最高水準之一。除了精度高,LiteFlowNet同時具有模型體量小和運行速度快的特點,適合進行擴展應用。如圖1所示,LiteFlowNet的原始網絡結構由兩個子部分組成:一個名為NetC的壓縮編碼器和一個名為NetE的擴展解碼器[15]。可以看出,NetC用于輸入圖像的特征提取,而NetE則針對這些特征實現由粗到精的光流場估計。下面分別進行介紹。

圖1 LiteFlowNet網絡結構及其改進版本示意圖Fig.1 A sketch of the architecture of LiteFlowNet-en



(1)

LiteFlowNet的網絡訓練采用以下損失函數:

(2)
它是由具有不同加權系數的不同層的輸出誤差組成。其中,i表示不同層次,ei表示預測速度場和真實速度場之間的誤差度量,λi表示不同層級的權重。
為了使其更加適合復雜流場運動估計,需要對LiteFlowNet的網絡結構和訓練參數進行一定修改。改進的思路包括:一是在NetE部分增加反向卷積層提取速度場,替換原網絡結構中最后一層的插值操作,如圖1新增加部分所示;二是對損失函數的權重進行重分配,增加第0層網絡的比重;三是重新調整數據歸一化操作的參數。為了方便區分,本文將經過改動后的網絡結構稱為LiteFlowNet-en。
提出的流動估計算法需要采用監督學習策略,而通過監督學習訓練神經網絡需要具有真實值的數據來優化模型參數。然而,PIV實驗往往無法獲得準確的速度場,需要人工產生合成數據集來進行CNN的訓練。按照實驗流體力學的一般方法,我們首先生成粒子圖像以及流動速度場,然后通過運動場對稱地移動粒子的位置以獲得圖像對。
(1)生成粒子圖像。要生成粒子圖像,可以采用粒子圖像生成器,假設一個粒子可以用二維高斯函數描述:

(3)
其中I0是高斯函數中心的峰值強度,dp表示粒子直徑,(x0,y0)表示粒子的中心位置。每個粒子的參數I0、dp和(x0,y0)可以有所不同。此外,定義圖像的粒子密度為ρ(單位:粒子/像素,particle per pixel,ppp),它是圖像的全局參數,影響圖像域中的粒子數。選定ρ,確定圖像內粒子的個數,再指定每個粒子的I0、dp和(x0,y0)數值,即可以生成一副典型的PIV粒子圖像。在適當的范圍內隨機選擇粒子圖像的參數,如表1所示。產生的所有圖像的分辨率為256×256像素。

表1 生成粒子圖像時參數選擇范圍Table 1 Ranges of parameters for generating particle image
(2)生成流動速度場。采用計算流體力學(CFD)來人為生成流動速度場。為了增加數據集的多樣性,本文采用了多種流動模式。CFD可以簡單地模擬一些標準流場,例如均勻流場、反向階梯流場和圓柱繞流流場(下文分別用Uniform、Back-step、Cylinder表示)。此外,本文從部分開源文獻中直接獲得更多的流體運動數據,例如文獻[16]和[17]分別提供了各項同性的自由湍流流場(簡稱DNS-turbulence)和海洋表面流場(Surface Quasi-Geostrophic,簡稱SQG)仿真模型,而約翰霍普金斯湍流數據庫(JHTBD)[18]也提供了多種湍流速度場數據。表2中給出了所采用的流體運動速度場種類列表,其中,通過調節不同速度幅值、不同雷諾數可增加流場的多樣性。例如,對于圓柱繞流仿真,用不同雷諾數(Re=40、150、200、300、400)下的流場以增強訓練數據的多樣性,保證算法在不同渦街情況下均適用。

表2 所用PIV數據集中包含的流場種類描述Table 2 Description of the motion fields for neural network training
將上述產生的粒子圖像和流動速度場隨機組合,即可以組成PIV數據集,如圖2所示。本文產生了超過13 000項的粒子圖像對及速度場真值,涉及6種不同流場實驗、超過10種不同工況(如不同雷諾數),平均每種工況具有約為1000個數據樣本。

圖2 PIV數據集生成示意圖Fig.2 Illustration of the PIV dataset generation
卷積神經網絡的結構一旦確定,并有可供訓練的數據集,即可以通過定義最小化損失函數來訓練網絡的參數(對卷積操作而言,未知參數即卷積核)。如前所述,采用的網絡結構如圖1所示,數據集由圖2產生,網絡優化的目標函數在式(2)給出。由于訓練數據集通常很大,為了加快訓練效率,可以采用效率更高的基于梯度的優化算法,如卷積神經網絡中長采用Adam梯度優化算法。經過1.2×106次迭代之后,網絡參數趨向收斂。將訓練而成的網絡模型稱為PIV-LiteFlowNet-en。后續實驗測試均采用該訓練生成的網絡模型。
為了驗證復雜流體運動估計算法的精度和可靠性,需要采用具有真實值的仿真數據集進行相應測試。本章引用文獻[16]給出的二維湍流流動粒子圖像。該圖像序列描述了直接數值模擬(Direct Numerical Simulation,DNS)下二維湍流流場的粒子運動,實驗雷諾數Re=3000,施密特數Sc=0.7。該圖像序列共包含100個采樣,圖像尺寸為256×256像素,圖3給出了其中t=50時刻的粒子圖像以及對應的真實速度場。該DNS湍流粒子圖像數據集是國際上公認的PIV算法測試基準。

圖3 湍流粒子圖像與速度場真值及渦量圖(t=50)Fig.3 Particle image of DNS turbulent flow and the corresponding velocity field with vorticity (t=50)
當存在真實值作為參考時,評估粒子圖像測速算法最常采用的是均方根誤差(Root Mean Square Error,RMSE),其計算公式如下:

(4)
式中(ut,vt)和(ue,ve)分別表示真實速度矢量和算法估計的速度矢量,i指所有速度矢量序號。在獲取速度場信息之后,可以容易地通過速度場計算相應的渦量圖,從而判斷算法對渦結構的估計結果。
作為對比,將所提出的深度神經網絡PIV-LiteFlowNet-en與引言所述的兩種較為成熟且有代表性的圖像測速算法進行對比:一是基于相關分析法的窗口變形迭代網格方法(WIDIM),二是多尺度金字塔的Horn &Schunck (coarse-to-fine HS)變分光流算法。其中,WIDIM算法計算復雜度低,魯棒性高,但由于估計分辨率有限,對湍流小尺度速度場的估計效果不夠好;而多尺度HS算法計算精度高,能提供稠密速度場(單像素級別),但由于采用變分優化求解,需要較多計算時間。采用深度神經網絡實現稠密速度場估計,將在精度、分辨率、計算實時性等方面與WIDIM算法和HS光流法進行對比。
圖4給出湍流粒子圖像序列中t=50時刻WIDIM算法與PIV-LiteFlowNet-en模型所估計的速度場及渦量圖。由圖4可以看出,WIDIM算法所計算的渦量不夠連續,與圖3的真實值相差較多,而神經網絡模型所計算的速度場和渦量圖,基本與真實值一致。尤其是在小尺度渦結構的估計上,神經網絡模型PIV-LiteFlowNet-en的優勢更明顯,這是由于該算法能夠提供稠密速度場。

圖4 WIDIM算法與PIV-LiteFlowNet-en模型所估計的湍流速度場及渦量圖(t=50)Fig.4 Velocity fields and vorticity maps of DNS turbulent flow provided by WIDIM and PIV-LiteFlowNet-en (t=50)
圖5中給出了三種不同算法的均方根誤差曲線。如圖5所示,WIDIM方法的性能在整體上比多尺度HS方法差得多,顯示出基于窗口匹配的相關分析法在小尺度渦結構估計上的不足。而CNN模型PIV-LiteFlowNet-en則優于變分光流方法,在整個圖像序列中RMSE誤差最小。該實驗表明基于LiteFlowNet卷積神經網絡的使用和改進對于PIV運動估計是十分有效的,尤其是在湍流(包含小尺度渦結構)運動上估計效果明顯。

圖5 不同算法對湍流粒子圖像序列的RMSE誤差Fig.5 RMSE estimated by different methods for DNS turbulent flow image sequence
表3還給出了同一實驗中不同算法執行一次計算的時間。實驗所采用的系統配置為Intel Core i7-7700 CPU 3.60 GHz以及NVIDIA GTX 1080 Ti GPU。在圖形處理單元(GPU)加速處理下,可以看到CNN模型的執行效率具有明顯優勢,即使轉換為CPU運行模式,CNN模型的計算時間也比WIDIM方法的少。需要說明的是,本文提出的PIV-LiteFlowNet-en與HS變分光流一樣,能從粒子圖像中提取單像素級別的速度場,但基于深度神經網絡的方法效率遠遠高于HS方法。綜上,在二維湍流粒子圖像測試中,首次提出的深度學習運動估計模型(PIV-LiteFlowNet-en)在準確性和效率方面都優于傳統的相關分析法和光流法。

表3 不同算法對湍流粒子圖像測速的運行時間Table 3 Computational time of different methods for the DNS turbulent flow image pair
為了更深入地研究PIV神經網絡的工作原理,以PIV-LiteFlowNet-en處理湍流粒子圖像(t=50)為例,分析網絡中間層的輸出結果。如前所述,在該網絡結構中(圖1),NetC的功能是提取特征金字塔,而NetE則針對這些特征實現由粗到精的速度場估計。PIV-LiteFlowNet-en采用網絡分層以及從粗到精的計算理念與多尺度金字塔迭代的HS光流算法非常相似。然而,它們之間存在3個主要差異:(1)在構建金字塔時,HS光流法是對圖像進行降采樣,而CNN模型是提取特征的同時進行采樣;(2)在NetE計算速度場時,CNN估計器是在上述自動提取的特征圖中進行操作的;(3)神經網絡中濾波器(卷積核)的所有參數都是從數據中訓練而來的,而HS方法則依賴于人為選取和設置。
圖6給出了輸入的粒子圖像在訓練好的卷積作用下,NetC子網絡前兩層的特征輸出,分別對應圖1的F0和F1模塊。根據圖6可知,訓練好的卷積核是對粒子圖像上進行各向異性的濾波操作(包括平滑、銳化、粒子拉伸、粒子放大與縮小等),從而形成不同的紋理特征。相比于原始粒子圖像f,具有更多紋理特征的圖像對相關性匹配以及NetE中的速度場計算等步驟起到有利的作用。

圖6 PIV-LiteFlowNet-en提取粒子圖像的特征Fig.6 Features extracted from particle image by PIV-LiteFlowNet-en model
圖7給出了NetE子網絡中不同金字塔等級的估計速度場,分別對應圖1中的Level 3到Level 0層,同時與多層HS光流法進行對比。從圖7可以看出,對比任一層級的輸出,PIV-LiteFlowNet-en的估計速度場均比多尺度HS方法更合理。造成這種區別的原因,可能是PIV-LiteFlowNet-en網絡采用圖像特征進行計算,而HS方法則直接采用降采樣的粒子圖像。在低分辨率圖像上估計出的速度場會用于下一層級的變形等操作,因此也會影響最終的輸出結果。以上是對PIV深度神經網絡內部輸出和內在原理的分析。

圖7 PIV-LiteFlowNet-en與多尺度HS變分光流法在不同層的速度場輸出結果Fig.7 Outputs at different resolution levels of PIV-LiteFlowNet-en and coarse-to-fine HS method
為了展示基于深度神經網絡的粒子圖像測速算法的實用性,采用真實PIV實驗數據對PIV-LiteFlowNet-en進行測試。所用的粒子圖像來自水槽射流實驗,由北京立方天地公司提供。實驗方法如下:在循環小水槽中,于圖像左側設置半圓形孔板形成射流,同時,在射流前方(圖像畫面右側)放置擋板,構造出前向臺階,從而在擋板前方區域形成穩定的分離旋渦流動。該模型能形成射流、速度梯度變化、旋渦、分離流動等典型流動結構,是實驗流體力學中常見的實驗配置。實驗采用二維平面PIV進行速度場測量。圖8給出了射流PIV實驗的裝置示意圖及粒子圖像示例。神經網絡PIV-LiteFlowNet-en所估計的速度場將與PIV商用軟件的結果進行對比。PIV商用軟件的算法基礎是基于窗口匹配的相關分析法,給出稀疏的速度場,而PIV-LiteFlowNet-en能提供稠密速度場信息。
圖9給出了兩種算法在射流PIV實驗中的估計速度矢量。圖10給出了速度場對應的速度幅值圖。
如圖所示,PIV-LiteFlowNet-en的估計矢量圖與PIV商用軟件的結果并無明顯差別。而由于稠密的速度場包含更多細節信息,因此從幅值圖可以看出,深度神經網絡模型的結果比相關分析法的結果更加平滑。需要說明的是,實驗所用的真實PIV圖像并未包含于CNN網絡訓練所用的數據集中,因此該實驗結果也表明:通過人工生成PIV數據訓練的深度神經網絡,在真實PIV實驗中同樣能夠成功應用。

圖8 射流PIV實驗裝置圖及其粒子圖像示例Fig.8 Illustrattion of the experimental setup for jet flow measurement and a particle image sample


圖9 射流PIV實驗的估計速度場Fig.9 Estimated velocity fields of the jet flow


圖10 射流PIV實驗的估計速度場幅值圖Fig.10 Estimated velocity magnitudes of the jet flow
本文嘗試了用深度神經網絡進行粒子圖像測速的研究,將人工智能與傳統實驗流體力學相結合。首先,借鑒在計算機視覺領域用于運動估計的光流神經網絡LiteFlowNet,并在此基礎上進行結構和參數改進;隨后,人工合成PIV粒子圖像數據集,用于神經網絡的監督學習訓練;最終獲得適用于流體運動估計的深度神經網絡模型。該網絡模型能夠高效、精確地提供單像素級別分辨率的速度場。
采用仿真湍流流場粒子圖像進行初步實驗評估,測試結果表明,PIV-LiteFlowNet-en模型在精度、分辨率、計算效率上比傳統的相關分析法、光流法具有優勢。同時,討論了PIV神經網絡的隱藏層輸出和內在原理,供后續研究參考。最后,在真實射流PIV實驗中測試了算法,PIV-LiteFlowNet-en的結果達到商用PIV軟件的水平,驗證了基于深度神經網絡的粒子圖像測速算法具有實用性和廣泛應用前景。