基于深度神经网络的粒子图像测速算法
2019-08-21蔡声泽魏润杰
蔡声泽,许 超,*,高 琪,魏润杰
(1.浙江大学 控制科学与工程学院,杭州 310027;2.浙江大学 航空航天学院,杭州 310027:3.北京立方天地科技发展有限责任公司,北京 100083)
0 引 言
粒子图像测速(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算法在精度、分辨率、计算效率上具有明显优势和前景。
1 深度神经网络简介
本文以光流神经网络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。
2 PIV数据集生成与网络训练
2.1 生成PIV数据集
提出的流动估计算法需要采用监督学习策略,而通过监督学习训练神经网络需要具有真实值的数据来优化模型参数。然而,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
2.2 网络训练
卷积神经网络的结构一旦确定,并有可供训练的数据集,即可以通过定义最小化损失函数来训练网络的参数(对卷积操作而言,未知参数即卷积核)。如前所述,采用的网络结构如图1所示,数据集由图2产生,网络优化的目标函数在式(2)给出。由于训练数据集通常很大,为了加快训练效率,可以采用效率更高的基于梯度的优化算法,如卷积神经网络中长采用Adam梯度优化算法。经过1.2×106次迭代之后,网络参数趋向收敛。将训练而成的网络模型称为PIV-LiteFlowNet-en。后续实验测试均采用该训练生成的网络模型。
3 仿真图像测试结果与讨论
3.1 湍流粒子图像介绍
为了验证复杂流体运动估计算法的精度和可靠性,需要采用具有真实值的仿真数据集进行相应测试。本章引用文献[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)
3.2 测试评价标准与参考算法
当存在真实值作为参考时,评估粒子图像测速算法最常采用的是均方根误差(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光流法进行对比。
3.3 测试结果与讨论
图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
4 射流PIV实验结果与讨论
为了展示基于深度神经网络的粒子图像测速算法的实用性,采用真实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
5 总 结
本文尝试了用深度神经网络进行粒子图像测速的研究,将人工智能与传统实验流体力学相结合。首先,借鉴在计算机视觉领域用于运动估计的光流神经网络LiteFlowNet,并在此基础上进行结构和参数改进;随后,人工合成PIV粒子图像数据集,用于神经网络的监督学习训练;最终获得适用于流体运动估计的深度神经网络模型。该网络模型能够高效、精确地提供单像素级别分辨率的速度场。
采用仿真湍流流场粒子图像进行初步实验评估,测试结果表明,PIV-LiteFlowNet-en模型在精度、分辨率、计算效率上比传统的相关分析法、光流法具有优势。同时,讨论了PIV神经网络的隐藏层输出和内在原理,供后续研究参考。最后,在真实射流PIV实验中测试了算法,PIV-LiteFlowNet-en的结果达到商用PIV软件的水平,验证了基于深度神经网络的粒子图像测速算法具有实用性和广泛应用前景。