APP下载

基于计算机视觉的火箭喷管极性自动化识别方法研究

2021-08-04方艺伟

宇航总体技术 2021年4期
关键词:极性摄像头图像

方艺伟, 王 冠, 易 航, 张 恒

(1.上海交通大学,上海 200240;2.北京宇航系统工程研究所,北京 100076)

0 引言

计算机视觉技术的发展推动了工业体系的进步,在诸如加工制造、产品测试等环节都可以看到计算机视觉技术的广泛应用,由此可以替代传统的需要人眼进行观察判断的工作,不但能够降低人力成本,更能提高工作效率和稳定性。

喷管是运载火箭发动机上面的重要部件,主要功能是将火箭液体燃料燃烧产生的高压气体转化成动能。运载火箭在发射升空过程中,通过各级发动机上所分布的喷管不同方向的摆动,调整箭体的俯仰、偏航和滚转等飞行姿态和运动轨迹[1]。发动机极性测试是指在地面测试过程中,按照各级发动机的运动顺序进行加电,使得每级的喷管产生摆动,由此观测喷管的摆动方向是否符合预定方向,进而对喷管加电电极的极性正确与否进行判别。发动机的极性涉及惯性敏感器件、控制指令、伺服机构、喷管摆动一整套闭环控制流程,其中任何环节的极性都直接影响任务成败,因此要在火箭发射前进行极性测试。

传统情况下,火箭在发射前的地面测试的极性测试项中,主要依靠测试人员采用人工目测的方法进行现场判读。但是一方面不同级的发动机位于不同高度的塔架上,另一方面某些摆动姿态下,喷管摆幅小、摆动速度快,这些问题给现场极性判读带来了很大的困难,测试有效性存在一定差距。因此研究出一种用于自动监测识别火箭发动机喷管运动情况的算法,将其结合与可视化软件平台,提高测试效率、覆盖率,使得测试过程可追溯,用以保证测试的可靠性是非常有必要的。

本文利用目标检测算法、光流法等视觉技术,结合发动机喷管在极性测试流程中的运动规律,设计出用于极性自动检测的整套算法,能够对喷管的运动姿态进行测量,并通过搭建前端视频采集层、网络图像传输层、后端算法运算层、软件展示层,形成硬件设备与软件平台相互协作、相互传输的系统。

在火箭喷管检测的运动测量方面,张灵飞等[2]利用红外摄像机捕捉预先置于喷管指定位置的红外反光球的特征位置,以此判断喷管运动情况。鲍文磊等[3]设计了模板匹配和圆拟合图像处理算法,以单目视觉方法精确完成喷管摆角的估计。2012—2013年, Chen等[4-6]先后提出了一种基于立体视觉的火箭喷管运动参数测量方法,并且通过三角剖分和标定已知特征点的所有全局坐标,另外利用2自由度基于火箭喷管旋转轴进行多视点测量,有效地提高了喷管运动参数和摆动量的测量精度。2015年, Qu 等[7]设计了一种基于单目视觉的测量系统,以几何方法计算高速相机拍摄下的实时图像,该系统可以进行高速、精确的喷管摆角测量。2019年,Cui等[8]提出了一种基于离散特征点的改进型立体视觉火箭喷管运动测量方法,建立了一个具有条件约束的喷管姿态间接调解模型,通过数学模型实现喷管运动参数测量。

利用计算机视觉测量火箭喷管运动量的研究,都是以一个或者多个高速摄像头构建出视觉测量系统,在摆动坐标系中建立复杂的数学模型来完成喷管摆动角度等运动量的计算。这种方式的缺点在于喷管计算量复杂,难以在运载火箭地面极性测试时进行喷管运动的实时监测判别。另外测量所使用的高速摄像机机器较大,且每一套视觉系统只能监测一个喷管的运动,难以适应不同级发动机喷管的监测场景,不可能真正运用到实际的火箭发动机地面测试上。因此,本文利用市面上常用的小型监控摄像头进行发动机喷管图像的实时采集,同时融合近些年逐渐成熟的目标检测技术对喷管目标进行确定,进而以光流算法计算每个喷管的运动情况,做到一个摄像头对视野内所有待检测喷管的测量判别。

从2012年Krizhevsky等[9]首次将深层卷积神经网络AlexNet应用在大规模的图像分类任务开始,深度学习和神经网络在计算机视觉领域的应用开始飞速发展。近年来发展出多种经典的目标检测算法,包括R-CNN系列[10]、SSD系列[11]、EfficientDet[12]等。其中,Redmon等[13]提出的YOLO(You Look Only Once)系列算法经过不断地改进更新,目前已拥有4个版本的迭代。该算法的特点在于保证目标较高识别率的同时,大大提高图像的检测速度。YOLOv3[14]是该系列中运用最为广泛的版本,但是网络复杂度与模型训练成本都较高,因此本文采用轻量级的YOLO骨干网络——YOLOv3-tiny进行发动机监控视频图像中的目标识别。

对于火箭喷管运动量的测定,本文采用了Farneback[15]基于图像恒定假设理论提出Farneback光流法,该方法属于稠密光流法,相较于传统稀疏光流法[16]能够计算图像区域中每个点的运动速度,从而计算出具体光流值,准确率更高。本文以目标识别算法确定火箭发动机喷管的具体位置,对于喷管区域采用Farneback算法精确计算喷管的相对运动量,在保证测量精确度的同时,实现多路监控摄像头的实时极性监测功能。

1 极性自动化检测系统结构描述

火箭发动机极性自动检测系统,是一个需要对软硬件进行协同工作的整体,如图1所示,整体结构可以分成以下几个层级:

图1 极性自动化检测系统层级框架

1)前端视频采集层:该层由多个监控摄像头组成,在每一级发动机附近布置数量合适的摄像头,能够清晰采集到每个喷管的全景图像。由于火箭发动机喷管工作位置复杂,因此采用了无线通信模式,以WiFi信息传输代替传统网线布线带来的不便。摄像头所连接到的无线网络是由一个主路由器产生,并由多个子路由放大,形成的局域网络。摄像头的实时视频流通过Rstp协议传输到主路由,完成前端的视频采集。

2)网络传输层:前端的视频采集处与后端控制厅距离较远,为了保证数据传输的实时性,在网络传输过程中将视频流信号转化成光电信号,利用光纤通路传输至后端控制大厅。

3)后端算法运算层:视频流信号传输到后端服务器中,作为目标识别算法和光流法运动量测量的数据基础。同时完成运算之后,通过TCP/IP通信协议将图像数据与计算结果传输到界面机器中。

4)界面展示层:该层由普通PC机构成,用于显示整体的UI界面,进行系统运算结果和视频流进行可视化展示。

2 极性自动识别算法设计

火箭发动机极性自动检测系统中采用了目标识别算法、运动检测算法、摄像头控制算法相互融合,并由系统操作界面进行控制的方法。时间流程如图2所示。

图2 极性自动识别实现流程

在初始化阶段,操作界面通过摄像头控制算法向目标识别算法输入当前摄像头图像,由目标识别算法判断出当前有无喷管目标,若有则进行后续操作,若无则反馈至操作界面进行人工判别。在检测阶段,由光流运动检测算法针对所识别出的喷管区域进行检测,并将检测结果反馈至客户端,便于测试者在极性判别阶段进行查看。

2.1 基于YOLOv3-tiny的喷管目标自适应识别

YOLO系列的目标检测算法属于单阶段神经网络模型预测算法,其优势在于能够快速对图像数据做出判断,更加适用于实时场景下的发动机喷管识别。

喷管目标检测工作在后端算法运算层中完成,在每次开启服务器中的后端程序时便将每一级喷管模型加载到内存当中,方便调取。初始化服务器计算线程时,以当前图片作为测试集进行模型匹配,获得每个喷管的定位框,作为计算区域,同时也通过TCP/IP通信协议反馈到界面展示层用于图形渲染。

由于每次调用模型所识别出的定位框是后续光流运动量计算基础,因此定位框的大小位置直接影响到测算精度。为了最大程度消除所训练的模型对于不同场景喷管目标的识别误差,在界面展示层设定了识别框手动校正功能,手动校准之后系统进行了以下两方面的修正:

1)对于服务器和客户机中的识别框缓存区数据进行更新,使得服务器端以新的方框区域进行光流计算,客户端以新的识别框进行视频图形渲染展示;

2)调用前端视频采集层所获取的图像以及新的识别框区域生成数据集,利用在线学习机制,在喷管识别模型的基础上重新训练模型,从而更新原始数据,将今后同样的发动机场景记入模型中。

基于目标检测方法所设计的在线学习自适应模型如图3所示。该模型能够将后端识别的目标信息反馈到界面展示层,同时能利用界面展示层标注新的数据信息用于后端的自适应模型训练。

图3 目标检测与在线学习自适应模型

2.2 基于光流法的喷管运动量测量方法

光流法是利用图形序列中各个像素点在连续时间域的对应关系,计算像素点运动的瞬时速度,从而计算出相邻帧之间图像运动信息的方法。

经过Δt时间间隔之后,点(x,y)经过移动之后亮度为E(x+Δx,y+Δy,t+Δt),将该式进行Taylor展开后可得

E(x+Δx,y+Δy,t+Δt)=

(1)

Exu+Eyv+Et=0

(2)

式中,表示图像中像素点灰度沿x,y,t方向的梯度,求解方程中的u,v值便是光流法的核心思想。

Farneback光流法是一种基于梯度求解的稠密光流算法,求解主要原理在于利用多项式近似得到待计算像素点的邻域值。以二维变量表示E(x,y)图像中像素点在待求解时刻的灰度值,并且以该点为中心构建的局部坐标系中,以2阶多项表达式来近似表示E(x,y)的值

E(x,y)≈r1+r2x+r3y+r4x2+r5y2+r6xy

=xTAx+bTx+c

(3)

式中,x是一个表示待求解位置二维列向量,A为2*2的对称系数矩阵,b为2*1的系数向量,c则为系数标量。接下来需要确定A,b,c这3个系数,Farneback光流法是通过取像素点(x,y)的2n+1个像素边长的矩形区域作为邻域,以加权最小均方值的方法去逼近计算该点附近一定区域内的像素灰度值,保证距离点(x,y)越近的点在计算中占据越大的权重,从而确定式(3)中的未知系数。

假设图像中待求解中心像素点x在相邻两帧图像中运动了距离d,该点灰度值由E1(x)变化为E2(x′)

E2(x′)=E1(x-d)

(4)

(5)

在得到第t帧视频图像的Farneback光流计算所得的位移列向量dt之后,需要用该值来测算喷管的运动量。对于火箭发动机喷管的运用场景,每个喷管都沿着固定方向运动,表现为只需取光流计算结果dt中沿x方向或y方向的分量作为测算依据。因此根据不同位置的识别边缘框,设定第i个识别框中喷管运动分量选取系数为Ii。取x方向分量时Ii=(1,0);取y方向分量时,Ii=(0,1)。故每一帧图像所取得光流计算移动量dt为

dt=Ii·dt

(6)

在火箭发动机喷管极性检测阶段,将其所计算的光流移动值可视化,形成如图4所示的光流场。本研究中的自动检测算法在光流法基础上,设计可用于喷管运动检测方法,有效地克服了光线变化、非检测物体运动带来的噪声影响。图5展示了整体算法结构。在实际检测过程,会由多余信息带来光流算法的误检测,因此根据所处实际情况设置阈值T1,消除外界因素带来的影响。根据dt的值确定第t帧视频图像的运动情况Q(t)的方式如下

图4 发动机喷管光流运动场

图5 基于光流的喷管运动测算方法

(7)

式中,若第t帧选定方向上运动量小于阈值,则Q(t)取0;若运动为正方向,Q(t)取1;运动为负方向,Q(t)取-1。Q(t)是判断该位置喷管是否处于运动阶段的重要依据,只有算法判别处于运动阶段的光流值才会被记录叠加,作为喷管的运动量有效值进入下一步运算当中。为了进一步减少非测量元素导致的累计误差,以前frame_size帧图像的运动情况C,作为喷管开始或结束本轮运动的依据,记为(t-frame_size,t)时间段内Q(t)的累加数据C

(8)

根据不同级发动机喷管的运动幅度,设定开始运动判定阈值为Tbegin;结束运动判定阈值为Tend,是否处于运动期间的标志位M的计算公式如下

(9)

式中,M=1,则表示当前喷管处于运动时间段内,其光流运算结果会被利用;若M=0则判定当前处于静止阶段,忽略光流运算结果。因此第t帧图像中代号为i的喷管运动量Di(t)为

(10)

上述所阐述的喷管运动检测算法逻辑如表1所示。对于发动机极性地面测试实验,仅需获取当前喷管的运动方向,将其与所加的电压数据进行比对,判断电极方向是否正确,因此将Di(t)进行单一累加即可。为了方便数据对比,通过先验测试确定每个喷管最大的光流值,进行归一化运算,将喷管运动量统一到[-1,1]这一区间内。

表1 喷管运动检测算法伪代码表

2.3 摄像头硬件控制算法

火箭发动机极性自动检测系统作为一个软硬件互相协同的多层级框架,硬件控制和监控算法中涉及的硬件设备包括摄像头、服务器、客户机、网络传输通路等,其中最为重要与复杂的是视频采集摄像头的工作状态监测与参数控制。整体摄像头控制算法如图6所示。

图6 摄像头控制算法结构

开启视频测试,先通过ICMP协议检查每个摄像所固定的IP地址的在线情况,只有检查在线的摄像头会进入后续视频流获取。未在线摄像头则会每隔30 s再一次检查其入网状况,直至检测到其接入当前局域网之中。

从前端视频采集层中摄像头所采集的视频流通过Rtsp协议传输到后端计算的服务器中,且视频流传输借助着无线网络和光纤通路,因此会协议生效及网络信号波动带来数据传输延时。而Rtsp协议作为TCP/IP协议体系中一个应用层协议,在OpenCV框架的调用下是以TCP的传输层协议进行数据流传输。即为了保证每一帧视频图像的有效接收,没有接收到的视频数据流会被存于缓存之中,从而导致了前端视频流获取延时性的叠加和内存的臃肿。

为了解决这一问题, 在系统中设计了独立线程,不间断地从摄像头获取视频图像,保证了网络传输层缓存区的最新图像被服务器系统接收。同时开辟用于存储视频图像的队列,将最新一帧的图像存入队列中。每次更新队列时会判断其中是否为空,若不为空则先清空队列,这样保证了图像缓存区中有且只有最新的一帧视频流图像,即减少内存占用,又有效解决了视频流传输延时问题。

同时,在光流处理线程获取图像缓存队列中的图像时,引入计时机制,如果超过5 s没有在队列缓存区中拿到最新一帧的图像,则判定该摄像头由于故障或断电等原因已脱离当前局域网。此时,会重新使用ICMP协议,每隔30 s检查一次摄像头的在线情况,直至其重新连接后,再次开始该摄像头所属线程的工作。

3 嵌入式软件平台开发

3.1 软件功能架构

在以计算机视觉技术实现发动机极性判别、喷管摆角测算等功能的基础上,结合自动化检测中的各种需求,集成开发协调各种硬件的嵌入式软件平台。整体系统具备极性自动判别对比,测试结果可记录、可追溯、可重复,测试流程观看多样化,摄像头智能控制等功能。为了保证系统的稳定运行,又针对系统的容错性和可靠性,对软件底层逻辑进行了重构设计。

如图7所示,火箭发动机极性自动测试系统软件主要由主界面、视频管理、组态播放、摄像头控制这4个部分组成,各个页面的功能如下:

图7 嵌入式软件平台功能架构

1)主界面:主界面播放视频时接收来自服务器的视频图像和喷管运动情况数据,当极性判别发动机喷管运动则会在视频流的每一帧图像上绘制运动信息。具体运动信息叠加输出,绘制动态图像,同时将运动信息反馈到输出栏上面。在播放网络视频流时,将会保存视频以便查看。另外主页面设置有硬件及网络情况状态栏,实时显示当前硬件及网络信息。

2)视频管理:视频管理主要进行本地视频文件显示、本地视频播放、视频剪切等功能。并且可根据选取的视频文件跳转至其他页面播,保证了测试结果的可重复性。

3)组态模式:设置了多种组合的播放模式,同时支持用户自动调整每个视频大小位置的自由播放模式,用户可根据自身需求调节所播放视频的位置与大小。

4)摄像头控制:摄像头控制部分通过SDK接口实现监控摄像头的云台调节,预设点设置转入。同时支持每个摄像头的分辨率、最大码率、帧率等参数的更改功能。

3.2 软件可靠性设计

火箭发动机极性自动测试系统软件最主要功能是实现发动机极性监测流程自动化,因此针对各种测试中可能发生的突发情况或未可预料的问题,系统进行了相应的可靠性设计,最大程度保证其安全正常运行。

本系统在软件平台设计进行了两个方面的特殊处理以达到可靠性提升:

1)功能优先级设计:对软件架构进行重塑,定义功能优先级,在资源受限或局部资源崩溃的情况下优先保障核心功能的运转。优先级依次为:测试视频记录功能、软件前端渲染功能、实时视频播放功能、实时数据曲线绘制、图像识别算法、数据辅助判读。

2)模块多线程处理:将不同功能按模块划分,并进行最低程度的交互以降低相互之间的影响,各模块拥有至少一个属于自己的线程,以达到单个模块崩溃不影响整体运行的效果。

4 火箭喷管自动化识别实验结果

4.1 喷管极性识别结果

在运载火箭发射前所进行的发动机喷管极性地面测试中,控制中心会向各级发动机的各个喷管施加激励电压信号,由电压信号驱动喷管发生相应摆动。每一轮的摆动都会产生相应的极性动作,根据火箭姿态调整方式,这些动作被区分为俯仰、偏航、滚转,并以正负表示每种动作的方向。

以长征系列某型号火箭某发次的地面极性测试视频、数据等为实验基础,通过算法分析得出喷管极性自动化识别结果。以一级发动机中4个喷管为例,极性识别结果如表2所示。

表2 一级发动机测试结果

每次完整的火箭发动机极性测试过程中,通过电压驱动,每一级喷管都会完成正负俯仰、正负偏航、正负滚转的6次姿态动作。同时每一次的姿态动作之后都会进行一次反方向运动,以确保喷管回归零位。因此极性自动识别算法识别出12轮的动作,并且根据当前喷管所处位置判断出该轮的具体动作。经过测试,通过本文提出的喷管极性自动化识别算法,能够准确识别出一二三级的喷管运动情况,极性识别准确率达到100%。

为了进一步确定喷管极性自动化判别结果的准确性,借助控制系统所施加的电压数据进行辅助判别。由于光流算法存在一定识别误差,在喷管每次归零时还会产生相应的零漂误差,这种误差不断积累,导致光流累加值不断产生偏离原始零位。经过测算,零漂误差经过累加后,误差值最大能达到最大摆角的36.8%,这将会给后续模拟角计算带来极大误差。

因此,在进行喷管每次回归零位时,算法将会对光流累加值进行修正,从而避免零漂误差的产生。零漂误差产生于修正结果如图8所示。

图8 光流累加值零漂修正

将算法所处理的光流值与电压数据变化对比,结果如图9所示。

图9 光流值与电压数据对比情况

由图9可以得出,算法所识别的喷管运动方向变化趋势与电压数据的变化一致。同时由于滚转动作的动作幅度小,因此算法在该组动作上进行了一定程度的信号放大,能够有效辅助地面测试人员的判别。

在实际测试中,为了能够实时观测到光流累加值与电压数据的对比情况,将修正后的光流累加值和电压值进行归一化,形成模拟角与模拟电压数据,一级发动机的4个喷管模拟角与模拟电压对比情况如图10所示。

图10 模拟角与模拟电压数据对比

4.2 喷管自动化识别效率

在火箭发动机极性自动化识别系统中,考虑到系统的安全性与识别的高效性,至少需要有8路摄像头参与算法实时检测之中,同时又要求每一路视频流每秒处理不少于12帧的视频流。为了进一步提高算法计算效率,本研究中采用了GPU代替CPU处理器进行光流计算,使得视频流的处理效率有效提高。CPU与GPU光流运算时间对比如表3所示。

表3 CPU与GPU光流运算时间对比

由表3可以得出,经过GPU加速运算之后,光流计算速度提升为CPU运算的21.12倍。一路摄像头每秒的最大处理帧数也由3.49帧提高为22.29帧,是原来算法处理速度的6.4倍。

同时,喷管自动化识别系统在多个方面进行改进:

1)运用并行技术降低摄像头视频流传输延时,将视频传输延时由原来大于20 s,降低至5 s以内;

2)采用视频流压缩技术降低网络传输压力,服务端与客户端之间的传输视频流压缩50%的数据量,使得主交换机中的数据传输量由8.6 Mbit/s降低至4.8 Mbit/s,有效减轻网络负载情况。

5 结论

本文通过计算机视觉中的目标识别技术和运动检测技术,首次实现了火箭发动机喷管极性地面测试的自动化。整体系统在完成设备部署之后,便可代替地面测试人员进行极性测试监控,具有高稳定性、低延迟性等特点。同时集成开发了一体化系统,使得极性测试过程数据得到清晰记录,提高检测效率的同时便于问题追溯。整体系统能够实现8摄像头同时运行,并且检测效率不低于20 帧/s,同时具备极性测试可追溯、可复现等功能。

整体系统已在长征系列某型号火箭上进行搭载测试,结果表明,该系统能够高效准确地完成极性判别任务,极性判别有效率达到100%,并以驱动电压数据作为辅助完成辅助判别,促进了火箭型号测试向无人值守迈进。

在后续研究过程中,一方面将重点关注系统的可移植性问题,扩展喷管目标识别神经网络模型的增强学习能力,使其能够轻松适应不同火箭型号的测试任务;另一方面结合人工智能技术的发展,以适应性更强、检测效率更高的深度光流神经网络代替原有光流运动检测方法,提高算法识别准确性,由定性的极性检测提升为更精细的喷管角度定量测量。

猜你喜欢

极性摄像头图像
浙江首试公路非现场执法新型摄像头
有机反应极性机理试剂分类的探索
摄像头连接器可提供360°视角图像
浅析p-V图像中的两个疑难问题
跟踪导练(四)
名人语录的极简图像表达
趣味数独等4则
无法开启摄像头的解决方案
找出摄像头花屏的“罪魁祸首”
键的极性与分子极性判断的探究