基于光流法和深度学习的燃气火焰稳定性

2021-04-28 11:08余岳峰朱小磊张忠孝
上海交通大学学报 2021年4期
关键词:光流脉动灰度

王 宇,余岳峰,朱小磊,张忠孝

(上海交通大学 机械与动力工程学院, 上海 200240)

近年来,利用彩色CCD(Charge Coupled Device,电荷耦合元件)和数字图像处理技术诊断火焰稳定性逐渐成为燃烧领域的研究热点[1].从图像中提取火焰特征参数,训练模型并对燃烧状态进行模式识别,可以实现对燃烧过程的有效监测[2].然而,传统的火焰特征参数往往依据先验知识提取,涉及到复杂的数学与物理模型建立[3-5].这些参数大多基于特定的研究算法,在许多环境下并不通用,如燃烧器的结构不同、相机拍摄角度不同及光照条件变化等.实际工业中,也正是由于缺少适用度很高的特征,使得火焰检测模型受到限制,不易于推广.

随着计算机性能不断提高,深度学习逐渐展现出优势.其中,在图像识别、检测及分割等领域,尤其以卷积神经网络(CNN,Convolutional Neural Network)的发展最为迅速,并产生一系列优化模型,如R-CNN、Fast R-CNN、Faster R-CNN[6-7]等.CNN通过卷积层自动提取图像中的隐含特征,在传统模型通用性不好、识别率不高的情况下,展现出更强的稳健性,显著提高了模型的表达能力.CNN不仅能实现火焰类型识别,改善传统模型识别率不高、泛化能力弱等问题,还能通过特征映射图等挖掘出潜在的火焰特征,对于分析燃烧稳定性十分关键.然而,CNN自身存在不少缺陷.比如,CNN是端到端的学习框架,网络内部参数的物理意义不可获知,通常只求得到模型最终的判别结果.此外,CNN只能提取图像中的静态特征,不关心时间域上的信息.

本文结合光流法和深度学习对燃气火焰的稳定性进行了研究.为了直观地展现燃气火焰在二维图像中的动态燃烧过程,采用光流法计算火焰光流矢量场,并给出光流脉动评价指标,以此来评估火焰燃烧稳定性.同时,将深度学习方法引入燃气火焰燃烧状态识别,搭建了深度卷积神经网络模型,结合火焰静态与动态特征,实现了对燃气燃烧实验台上5种典型火焰燃烧状态的分类与识别.

1 实验装置和方法

1.1 实验装置和测量系统

本实验利用工业CCD相机在350 kW燃气燃烧实验台上获取火焰图像,并基于光流法和深度学习框架搭建了一套火焰状态识别及稳定性判别系统.实验台的具体结构如图1(a)所示,主要包括燃烧控制部分和图像采集部分.燃烧控制部分主要由燃烧器、燃烧室、石英玻璃观察窗、配气管路及烟气分析仪等组成.图像采集部分由CCD相机、通信光缆、相机支架及上位机等组成.图1(b)给出了本实验所采用的两种燃烧器,分别用来模拟扩散火焰和预混火焰.

卧式燃烧室具有黑体炉环境, 可通过装有石英玻璃的小窗观察到燃烧室的内部情况,使得外界光源对实验的干扰大幅度降低.实验中,通过控制燃气和空气的配比,模拟甲烷在高、低负荷不同当量比下的燃烧工况,从而获得具有代表性的火焰图像序列.CCD相机通过光缆将实时采集的火焰图像数据传输给上位机,为燃烧稳定性评估和状态在线识别建立数据集.由于实验装置的制约,本实验通过尾部烟气分析仪测得烟气含氧量,以此来推算过量空气系数φ.

图1 燃气燃烧实验台与燃烧器Fig.1 Gas-fired combustion apparatus and burners

1.2 实验方法及工况

为了获取不同燃烧工况下燃气火焰图像序列,本实验模拟了高、低燃气负荷,通过调整一次配风来确定不同的当量比燃烧.其中,额定负荷下燃气流量为35 N·m3/h,扩散火焰高负荷为额定负荷的91.4%,低负荷为额定负荷的48.3%,预混火焰高负荷为额定负荷的92.6%,低负荷为额定负荷的51.4%.同时,用两种不同类型的燃烧器进行实验,模拟了扩散和预混两种燃烧形式.本实验的燃气火焰状态可分为扩散稳定、扩散脱火、预混稳定、预混脱火及预混回火等.分类过程中,将“扩散脱火”归入扩散不稳定燃烧工况,将“预混脱火”和“预混回火”归入预混不稳定燃烧工况.

2 图像采集和数据集建立

2.1 图像采集

图像采集部分主要涉及到软、硬件设置,包括CCD相机位置、相机内参、采集帧率、数据传输及图像预处理等.其中,CCD相机镜头正对火焰观察窗口,按预先设定的光圈、帧速采集图像.相机的光圈调到最大(镜头焦距为16 mm),这导致高负荷下火焰图像出现过度曝光现象.为了更好地捕捉到低负荷下不稳定的火焰图像,认为损失部分高负荷下火焰图像的信息是有必要的.采集扩散火焰图像时,相机积分时间为10 ms;采集预混火焰图像时,相机积分时间为5 ms.经分析,燃气火焰的振动频率在3~25 Hz[8],为了采集到火焰闪烁信号,采集帧速通常要高于25帧/秒.而实际工业中,炉膛观火电视监测系统每秒只处理1~2张火焰图像,不关心火焰瞬态变化.而且,一旦采集帧速过高,提出的光流指标也会失去评价效果.本实验为了兼顾这两点,综合考虑采用10帧/s的图像采集速度.此外,本实验所用CCD为单CCD,每个像素点只有1个颜色值,可依据插值获得其他颜色值.插值后,可得到燃气火焰RGB三色矩阵图像,图像分辨率为493像素×656像素.具体插值办法可见文献[9].为了降低模型和现场操作的复杂度,本实验没有做CCD相机位置标定,仅在合适的视距下调整焦距以清晰拍摄到火焰图像.此外,在深度卷积神经网络数据预处理中加入数据扩充算法,这在某种程度上减小了火焰拍摄位置变化对识别结果的影响.

2.2 数据集建立

为了识别燃气火焰的燃烧状态以及评估火焰稳定性,需要建立火焰图像数据集以满足深度学习模型的要求.深度学习模型主要依靠数据驱动,因此对数据集的精度要求非常高,规范的数据可以显著提高卷积神经网络的识别能力和泛化能力.

实际采集中,火焰图像容易受到各种外界因素的干扰,夹杂许多噪声,如光照变化及数据传输损失等[10].为了减少网络对这些冗余噪声的学习,降低训练时不必要的内存消耗,需要在火焰图像数据上进行降噪处理.常用的降噪方法有滤波法及插值法等[11].考虑到实时性,采用中值滤波法对图像进行降噪.本研究沿用可变阈值的“最大类间方差法”对火焰图像进行分割,在满足实时性要求的同时,也有效降低了光源干扰对燃烧区域错分的影响[9].基于此,建立燃气火焰图像数据集,主要包括下面5类:扩散稳定火焰、扩散不稳定火焰(主要指脱火)、预混稳定火焰、预混不稳定火焰(包括脱火和回火)及背景(包括熄火).拍摄到的火焰图像共计 11 435 张图片,其中,扩散稳定 4 852 张,扩散不稳定247张,预混稳定 5 808 张,预混不稳定223张,背景及熄火305张.

3 火焰图像光流估计

3.1 光流法

为了评估燃气火焰在图像中的速度脉动,引入光流法来估计燃烧区域的光流矢量.光流法在目标检测、测速及场景重建[12-13]等领域应用广泛,却少有研究将其运用到燃烧诊断中,根本原因是火焰体不是刚体,不仅外形变化剧烈,而且很难满足灰度守恒假设[14].

燃气在燃烧过程中伴随着复杂而剧烈的化学变化,燃气火焰不仅脉动响应快,闪烁频率快,而且在燃烧不充分时,压力和热释放率都会大幅度波动,表现出亮度不均匀等现象.直接对火焰图像进行平滑,会导致火焰亮度信息严重缺失,造成更多误判断,甚至计算出的结果本身就是错误的.传统光流法在上述情况下并不适用,有学者提出广义质量传输问题,以此来适应火焰特殊的光流场.考虑图像中火焰区域亮度(质量)守恒,该模型可以表达为[15]

(1)

式中:It为图像灰度对时间的导数;u为图像中火焰体在x和y两个方向的光流矢量;I为火焰图像的灰度强度.

可知,经由CCD拍摄的世界坐标系下的火焰图像是整个三维火焰在CCD成像坐标系下的投影.对于单帧火焰灰度图像(已从RGB空间映射到256灰度级空间),假设在整个二维成像面上灰度守恒,由此可建立灰度质量守恒方程,即火焰图像上燃烧区域的灰度总强度随时间的变化等于火焰峰面上进出的灰度变化.从某种程度上讲,这个假设建立了火焰辐射能和图像灰度之间的关联,表明图像中火焰亮度变化只能通过火焰边界进出.使用这种方法就能够刻画火焰亮度的局部特性.因此,建立图像中火焰燃烧区域灰度强度与沿火焰峰面法向上灰度变化之间的关系:

∬x,y∈ΩItdxdy=-∮∂ΩIu·NdL

(2)

式中:Ω为图像中的火焰区域;∂Ω为图像中的火焰峰面;N为沿火焰峰面法线方向的单位向量;L为沿火焰燃烧区域的边缘长度.利用散度定理

(3)

式中:A为火焰面积.将图像中火焰峰面上灰度变化的线积分转化为整个火焰燃烧区域的面积分,再与式(2)建立等式,从而可得到火焰图像亮度(质量)守恒定律,具体推导过程可见文献[15].

将式(1)作为正则项,构造拉格朗日能量泛函,建立最佳质量传输(OMT,Optimal Mass Transport)光流模型[14]:

(4)

式中:α为正则项系数;T为积分时间.该模型有数值解:

(5)

3.2 光流脉动评价模型

在给定的相机拍摄帧速下,可通过相邻火焰图像获取燃气火焰的光流矢量场.然而,光流矢量只能定性地观察二维火焰图像上的光流脉动,不能准确评估火焰光流脉动大小.燃气火焰传播速度极快,火焰瞬态燃烧时,亮度与几何特征变化剧烈,尤其在不稳定燃烧阶段,计算出的光流矢量在相邻图像之间差异较大(矢量大小及方向),仅通过观察矢量场来衡量火焰的脉动大小极不合理.为了评价光流的脉动程度,本文提出了光流脉动能量值ω,用以评估光流矢量的脉动大小:

(6)

式中:ui为第i点的光流矢量;n为火焰图像中火焰区域的像素点总数.ω利用2-范数来代表燃气火焰图像中每一个像素点的光流脉动能量值,并用所有火焰区域像素点的期望能量值来衡量每一帧火焰图像中光流的平均脉动程度.

4 火焰图像分类

4.1 VGG-Nets模型概述

为了区分不同类型下不同燃烧状态的燃气火焰,采用深度学习领域经典的VGG-Nets框架搭建火焰图像分类模型.VGG-Nets模型是牛津大学视觉几何组2014年参加ImageNet图像分类与定位比赛中用到的模型[16].该模型结构简单,使用小卷积核(3×3)通过堆叠的方式形成深层结构,提高了网络的非线性表达能力,而且模型的收敛速度更快.

本研究改进了VGG-Nets下的VGG16模型,使该模型符合火焰状态分类任务.VGG16模型可以划分为不同块(B1~B5),每一块包括若干卷积层和汇合层.整个VGG16的网络架构包括13个卷积层,3个全连接层,5个汇合层.下面是对实验中采用的VGG16网络结构的基本介绍.表1给出了火焰图像在VGG16模型不同块中的输入与输出维度.

(1) 首先,输入分辨率大小为224像素×224像素,通道数为3的火焰RGB图像;

(2) 在B1中采用两个3×3×3,通道数为64的卷积核,利用卷积操作将原图转换为特征图,得到的特征图通道数都是64.通过汇合层将特征图的大小砍半,通道数翻倍,在降低参数的同时增加了网络的深度;

(3) 在B2中采用两个3×3×3,通道数为128的卷积核,得到通道数为128的特征图.再通过汇合层将特征图的大小砍半;

(4) 在B3中采用两个3×3×3,通道数为256的卷积核,得到通道数为256的特征图.通过汇合操作减少参数个数,提高网络深度;

(5) 在B4中采用3个3×3×3,通道数为512的卷积核,得到通道数为512的特征图,再通过汇合操作减少参数个数;

(6) B5和B4结构相同,但B5特征图的大小在B4特征图的基础上又缩减了一半,输出维度为 7×7×512;

(7) 最后,将全部卷积和汇合操作完成后的特征图张量展开成列向量,通过两个1×1×4 096 的全连接层和1×1×5的Softmax层进行火焰图像分类.

表1 VGG16模型不同块中图像的输入与输出维度Tab.1 Input and output dimensions of images in different blocks of VGG16 model

4.2 VGG-Nets参数选择

VGG-Nets的主要参数设置如下:汇合层采用平均汇合,激活层采用ReLU(Rectified Linear Unit)函数,网络不考虑偏置项;采用随机梯度下降(Stochastic Gradient Descent,SGD)算法;每一批训练数据大小设置为16,学习率为 0.000 1,损失函数采用交叉熵损失函数.限于篇幅,关于参数的详细介绍可参考文献[16].

实际拍摄的火焰图像分辨率为493像素×656像素,为了适合卷积神经网络的输入,在训练之前,已将图像尺寸调整为VGG16网络合适的输入大小.调整图像输入大小必定会损失部分火焰图像信息,但结果表明这种预处理方法对识别率影响不大.本研究基于Keras搭建VGG16模型的整体框架,并在GPU上进行训练.由于实际的VGG16模型最后的分类层为1×1×1 000 的Softmax层,这与我们的火焰状态分类数不匹配.为了适合火焰状态分类任务,将原始分类层去除,添加1×1×5的Softmax层.调用ImageNet数据库中已经预先训练好的网络权重,在改进的VGG16模型上进行微调(从后往前依次更新权重),总共训练20个轮次.

5 实验结果分析

传统火焰检测算法能识别出不同的火焰状态[2-4,9],却无法评价火焰的脉动程度,这是因为缺少了燃烧在时间维度上的特征信息.研究发现,光流法能将火焰体在时间域上的亮度信息变化清楚地反映出来,对于观察异常燃烧十分重要.图2(a)为火焰图像燃烧区域边缘的光流脉动,图2(b)为火焰图像中心区域的光流脉动.可以看出,在火焰燃烧区域的局部位置处,不同像素点的光流大小和指向差别较大,尤其是图像中亮度缺陷或亮度梯度变化明显的区域.这表明火焰瞬态脉动非常剧烈,火焰内部的真实温度场和速度场处在快速变化阶段.同样,火焰图像中部分区域光流矢量几乎不可见,这说明了该区域的光流脉动很小, 火焰燃烧充分且较为稳定.

图2 火焰图像光流矢量场Fig.2 Optical flow vector fields of flame image

利用光流矢量场在二维火焰图像上观察火焰脉动,虽不能从本质上分析火焰的瞬态燃烧行为,但克服了单帧火焰图像不能完全判断火焰稳定性的困难,增加了时间域上燃气火焰的亮度波动信息,对工业燃烧诊断火焰稳定性判断起到了参考作用.值得注意的是,本文单从局部区域对火焰光流进行了观察,如果从整幅火焰图像来看,光流计算的效果似乎并不突出,还有待进一步研究.比如,可以考虑最合适的相机采集帧速及最佳相机曝光时间等问题.另外,计算出的光流场信息具有相对性,关于其准确性还有待进一步验证.

为了量化每一帧火焰图像光流场的脉动程度,利用提出的光流脉动评价模型对高低燃气负荷下扩散稳定及预混稳定的燃气图像序列进行计算,结果如图3所示.可以看出,不管是扩散燃烧还是预混燃烧,火焰图像的光流脉动能量值基本是在低负荷下更高.这符合常识,相对于高负荷,低负荷工况下燃气量少,参与反应的燃气大量消耗,燃料来不及供应.较少的燃气受射流影响在炉内分布不均,促使燃烧空间分布不均匀.这种不均匀性改变了气流的速度梯度,使得相同位置下不同时刻的燃烧强度也不同.而火焰亮度是与燃烧强度直接相关的,反映在二维图像中,燃烧区域会出现明显的灰度变化.

图3 不同过量空气系数下火焰图像光流脉动平均值Fig.3 Average value of optical flow pulsation in flame image at different excess air coefficients

而且,在同一燃气负荷下,随着过量空气系数逐渐增大,火焰光流脉动明显有变大的趋势,且波动幅度也相应增大.经分析,这主要是因为一次配风量增大,导致火焰内部参与燃烧反应的氧化剂增多,促使燃烧更充分,火焰瞬时脉动更加剧烈.同时,由于空气及燃气互相卷吸,大量空气吹散燃气火焰,使得二维图像序列上燃气火焰亮度分布不均,致使通过灰度计算出的光流脉动幅度也越大,尤其是在甲烷“贫燃”燃烧工况下.此外,针对不同燃烧情形或不同的过量空气系数,光流脉动能量的不确定性差异很大,这可能是由于不同的火焰类型或不同的空燃比使燃烧过程受到不同因素主导所致.例如,预混情形下由于空气与燃气预先混合,燃烧过程中往往受化学动力学因素较多.而一旦一次配风量过大,流体动力学因素就会占据主导,此时光流脉动会因为混合效应加强而出现大幅度波动.当然,这肯定还和燃烧器的具体结构有关.

为了详细了解光流脉动评价模型在实际评估燃气火焰稳定性时的作用,本研究针对几个典型的燃烧过程进行了案例分析,包括扩散点火过程、扩散脱火过程及预混喘振过程等.实验中发现,燃气扩散火焰的传播速度极快,脱火过程很短,在10 帧/s的图像采集速度下,火焰几乎瞬时消失.扩散火焰在低燃气负荷下从有火变为无火,这个过程也仅发生在半秒之内.而高负荷下,火焰则经历了光流脉动能量值攀升的过程,持续了大概100 s左右.

计算出扩散火焰图像熄火前几帧的光流矢量场和光流脉动能量值,能量脉动时序曲线如图4所示.结果表明,当火焰进入不稳定燃烧阶段时,火焰图像的光流脉动会明显变大,图像中出现异常的亮度变化(包括点火阶段),直至火焰熄灭,光流脉动能量陡降为0.火焰在高负荷下脱火,过程持续时间则比较长,在2 min内火焰图像光流从1个能量单位升高到5个能量单位,最终才停止脉动.

图4 扩散火焰不稳定阶段光流脉动Fig.4 Optical flow pulsation of diffusion flame in unstable process

预混火焰是燃气和空气预先混合而进行的燃烧,在燃烧不稳定阶段极易出现喘振现象,潜在很大的安全隐患.图5给出了27 s左右预混火焰喘振阶段的光流脉动能量曲线.可以看出,在火焰不断闪烁的过程中,计算出的火焰光流脉动能量值在5~40个能量单位之间跳动,并最终随着火焰熄灭脉动消失.从图3已经可以得知,在火焰稳定燃烧阶段,光流脉动能量几乎不会超过5个能量单位,而一旦火焰图像亮度变化非常剧烈,光流脉动能量也会出现攀升.燃气预混火焰在稳定燃烧和不稳定燃烧阶段,其光流脉动的能量数量级差异较大,这主要体现在燃烧不稳定时燃烧室内温度和压力的急剧变化.预混燃烧主要受化学动力学因素控制,一旦燃气与一次配风的比例控制不当,在实际燃烧中很容易造成脱火、回火等危险情形发生.因此, 利用本实验所提出的光流脉动大小来评估预混火焰的不稳定燃烧并

图5 预混火焰喘振阶段光流脉动Fig.5 Optical flow pulsation of premixed flame in unstable process

及时给出反馈是有必要的.实验中发现,本研究提出的光流法适用于低速气态火焰流场不适用于高速湍流火焰,且相机的拍摄帧速不宜过高,否则,较小采样间隔下光流能量脉动变化将不明显.

由上述分析可知,光流法可以提取出相邻火焰图像之间的动态特征,并通过光流脉动能量值来反映每一时刻火焰的不稳定性.这是从时间维度上对火焰脉动进行分析.然而,这种动态特征受限于相机的采集帧速,而且缺少了对图像中火焰空间分布及火焰形态学特征的表征.经分析,火焰状态识别模型能提取出火焰亮度及几何等特征作为模式,从而对火焰类型进行判别.传统识别模型往往受限于特征模型建立的困难以及模型在不同场景适用性低的问题,而CNN易于提取火焰图像特征,且能够挖掘出对分析火焰稳定性有决定性作用的隐含特征.因此,为了弥补光流法对火焰特征及火焰稳定性解释不足的缺陷,通过CNN获取了燃气火焰图像中的静态特征,并基于此实现了燃气火焰状态分类.

为了使模型更加通用,将所有火焰图像矩阵的像素点从0~255的灰度值标准化到0~1.训练时,设定随机种子,将已知类别的火焰图像数据打乱,按批次抽取数据进行训练,保证数据不重不漏.同时,采用数据扩充等方式增加了火焰图像的样本数量,在一定程度上提高了模型的泛化能力.

将不同工况下的扩散火焰图像分为扩散稳定及扩散不稳定两种状态.将不同工况下的预混火焰图像分为预混稳定及预混不稳定两种状态.此外,还有背景以及熄火等图像.将所有数据按4∶1分成训练集及验证集,每批次抽取16张图进行训练,训练20个轮次.本实验最终的稳定性判定结果如表2所示.可知,VGG16网络内部的卷积操作可以学习到火焰图像的不同模式.图6给出了不同块下(B1~B5)扩散及预混火焰的特征图像. 通过卷积层的特征映射图, 可以清楚地观察到燃气扩散及预混火焰在稳定

图6 不同块下扩散及预混火焰特征层图像(像素×像素)Fig.6 Feature maps of diffusion and premixed flames in different blocks (pixel×pixel)

表2 判定结果Tab.2 Results of classification

与不稳定燃烧阶段各自的静态特征,包括火焰结构、燃烧空间分布等.比如,靠前的浅层卷积核容易学习到火焰各种基本的外形特征,如火焰轮廓、边缘及纹理信息等;靠后的深层卷积核会学习到火焰图像中语义层更高的表示特征,如火焰峰面、火焰结构等的模式.相对于传统模型,CNN通过训练可以自动学习出火焰特征,降低了特征参数提取的复杂度,也提高了特征的通用性.

本文所建立的VGG16模型适用于监测沿燃烧器轴向拍摄的燃气火焰,且能够区分不同的火焰类型及火焰状态.实验发现,VGG16模型效果良好,训练2到3个轮次后,验证集的平均准确度已达到99.95%以上,识别能力较好.VGG16模型利用小卷积核在相同的网络深度下可以获取到原始图像更大的感受范围,提取出火焰图像更为全局、语义层更高的信息.此外,通过叠加小卷积核,VGG16模型的参数在无形中减少了,网络深度也得到增加,这对于降低计算量、提高火焰识别模型的正确率是有利的.

通过深度神经网络提取火焰图像的静态特征,结合上文提到的火焰动态光流矢量,可以较为完整地表征火焰燃烧稳定性.既从定性角度观察到了火焰图像中局部区域的光流脉动情况,又从全局角度相对地评估了光流脉动的大小,达到了实验研究的目的.此外,借助深度神经网络模型实现了对火焰不同燃烧状态的分类与识别,弥补了传统火焰检测模型在特征提取方面的劣势,有助于深度学习方法在燃烧诊断领域落地与应用.

6 结论

(1) 结合光流法和深度学习框架搭建了一套火焰状态识别及稳定性判别系统,对扩散火焰和预混火焰分别进行了光流矢量计算和不同燃烧状态的分类,取得了良好的效果.

(2) 通过光流法提取火焰图像在时间域上的动态特征,同时,利用深度卷积神经网络提取火焰静态特征,结合两者可较为完整地表征燃气火焰的燃烧稳定性.

(3) 该光流法只适用于低速流场,不适合高速湍流火焰流场.对火焰传播速度极快的情形以及亮度波动剧烈的情形效果不好,尤其是低负荷下的燃气火焰.

(4) 通过卷积神经网络模型降低了提取火焰特征的难度,结合光流法,又提高了特征表达的全面性,相对于基于人工特征提取的传统模型,表现出较大的优势.

猜你喜欢
光流脉动灰度
利用掩膜和单应矩阵提高LK光流追踪效果
航空滤光片阵列多光谱图像条带灰度调整算法
基于改进Cycle-GAN的光流无监督估计方法
采用改进导重法的拓扑结构灰度单元过滤技术
一种多尺度光流预测与融合的实时视频插帧方法
天津港智慧工作平台灰度发布系统和流程设计
地球为何每26秒脉动一次?近60年仍扑朔迷离
基于自适应纹理复杂度的仿生视觉导航方法研究
基于弹性腔模型的下肢脉动信号仿真
Arduino小车巡线程序的灰度阈值优化方案