基于Hough变换的发控转接组合视频监测软件设计与实现
2021-10-26梅春睿刘巾杰胡旭东廖国瑞
梅春睿,刘巾杰,胡旭东,廖国瑞
(中国文昌航天发射场,文昌,571300)
0 引 言
发控转接组合是当前中国航天器发射场中火箭控制系统地面测发控系统前端核心设备之一,其前面板分布着重要状态的指示灯。控制系统通过它来实现箭上设备供配电、信号逻辑实现、与外系统信息交互、状态显示等功能。地面测发控阶段和发射阶段,前端岗位人员分别在脐带塔和后端测试发射大厅实时监测发控转接组合前面板指示灯状态变化,并向系统指挥员反馈情况。需要岗位人员掌握测试原理,明确测试流程中指示灯的亮灭时机及逻辑顺序,并快速向指挥员汇报测试现象。
当前工作模式下,控制系统地面测发控前端对发控转接组合的监测主要通过人工实现,依赖于岗位人员的专业能力和注意力集中情况。该方式存在以下缺点:
a)难以长时间保持高度注意。实际测试过程往往长达2~3 h,发射日更是长达12 h,人员容易产生疲劳感,注意力下降。而指示灯发生变化过程往往不到1 s,岗位人员难以准确捕捉到每一个指示灯状态变化时机,漏看、错看的情况难以避免,监测准确性难以保证。
b)测试无记录文件留存。实际工作中,人员不仅需要时刻紧盯发控转接组合指示灯,同时还需要监测地供电源、地面电源1、地面电源2、地面电源3主副机共8个地面电源的电压及电流示数变化,需要观察电源控制组合指示灯以及其他前端设备的工作情况。特殊动作时多个指示灯往往集中在同一时间段内改变状态,岗位人员不具备在试验现场形成记录文件的条件。试验过程无记录文件留存,不利于测试过程的可追溯性,不利于故障排查工作的开展。
c)示警过程冗长。出现异常情况时,当前试验条件下,岗位人员可通过电话或调度联系后端指挥员进行示警,往往花费时间较多,不能及时示警,不能快速准确传达异常情况。-3 min伺服启动后,每分每秒都很珍贵,通过岗位人员口头传递信息容易错失最佳的故障处理时机。
本文设计并实现的发控转接组合视频监测软件,可以依托于测试发射大厅的视频计算机进行运用,具有硬件支撑,具备可实施性。自动监测可有效辅助岗位人员工作,极大降低漏看、错看几率;自动记录留存有利于试验过程记录的完整性;及时示警功能可弥补紧急情况下故障信息传递时效性问题。该项目紧贴当前试验现场状况,针对性地弥补了试验工作模式缺陷,具备应用价值。
1 需求分析
1.1 功能性需求
依据发射场现行工作模式,发控转接组合属于发控前端岗位设备。人员上岗后,在系统进行测试时,需要同时观察发控转接组合指示灯情况及地面电源电压电流示数。结合人员难以长时间保持高度注意力、测试无记录文件留存、示警过程冗长的现实特点,图1列出了发控转接组合视频监测软件的功能要求。
图1 功能性需求分析Fig.1 Functional Requirements Analysis
图1中,视频及条形图的共同显示令指示灯变化情况更加直观,可以辅助岗位人员集中注意力;语音提示和历史状态变化列表可以辅助岗位人员及时观测地面电源电压、电流示数,防止错过数据变化时机;自动记录状态变化到Excel及一键生成Word文档有助于记录留存及测试过程回顾复查;特殊音效示警可以及时引起岗位人员和指挥员注意;故障模式识别及弹框示警能够显示故障模式,帮助指挥员快速实现故障定位。
1.2 非功能性需求
非功能性需求指的是在实现用户需求的同时,系统需要具备的特性,比如可靠性、稳定性、可维护性等。非功能性需求是软件功能的展现模式,它影响着功能性需求的定义、实现及使用[1]。即使一个软件的功能再强,若是使用方法复杂,用户体验感极差,那么它强大的功能也无从展示。
发控转接组合视频监测软件在非功能性需求上需要达到以下几点要求:
a)实用性。软件应当具备简洁、友好的操作界面,尽量使用户对软件的操作使用方法一目了然;
b)可靠性。软件开发过程中,如果软件不能可靠地运行,那么无论系统的功能多么全面,都无法保证用户的基本需求得以满足;
c)高性能。高性能指的是用户对系统响应速度的需求[1]。视频监控需要具备时效性,人工监测时指示灯变化及汇报时间的误差大约为2 s,以此为标准要求软件的各类提示应当在2 s内完成。
2 方案拟定
结合岗位人员和指挥员的需求分析,将软件设计为4个模块:初始化、实时监控、实时示警和文件形成模块,如图2所示。
图2中,实时监控模块要求软件可以自动识别发控转接组合的指示灯亮灭情况。该设备指示灯形状均为圆形,结合边缘检测,以Hough变换作为理论支撑实现指示灯的自动识别。
图2 软件总体设计方案Fig.2 Overall Design Scheme of the Software
为满足用户对系统响应速度的需求,选择具有强大数据处理能力的MATLAB软件作为算法实现的基本工具。与此同时,为了使用户界面更加友好、接口更加简化,人机交互界面的开发工具也选择了与MATLAB软件更加适配的图形用户界面(GUI)工具包。其允许用户定制用户与计算机的交互方式,用户通过窗口、菜单、按键等方式实现对数据的自动化、可视化处理[2]。
3 边缘检测、Hough变换与算法实现
3.1 边缘检测
图像边缘是图像中灰度不连续或急剧变换的所有像素的集合,集中了图像的大部分信息,是图像最基本的特性之一[3]。边缘检测是后续图像分割、特征提取和识别等图像分析领域的关键一步。比较常见的检测算子有:Sobel、Prewitt、Roberts、Log、Canny。
Sobel算子能够产生较好的检测效果,对噪声具有平滑抑制作用,但得到的边缘较粗,可能出现伪边缘;Prewitt算子减小了噪声对图像边缘检测的影响,但同样对图像边缘检测效果较粗,背景噪声对算法有效性影响较大;Roberts算子对边缘定位精度高,但无法抑制噪声影响;Log算子在实际运用中对噪声敏感,噪声平滑能力与边缘定位能力相矛盾;Canny算子进行图像边缘检测较为有效,检测纹理较细,但噪声影响较大。几种算子各有利弊,可根据被识别图像的特点灵活选择。
3.2 Hough变换
Hough变换又称霍夫变换,其本质是从图像空间到参数空间的映射。Hough变换的实质是将图像空间内具有一定关系的像元进行聚类,寻找能把这些像元用某一解析形式联系起来的参数空间累计对应点。Hough变换常被用于自动化和机器人视觉等领域,广泛应用与产品部件的自动监视,生产过程自动监控,采用直线、圆弧作为基本特征的工业产品检查系统等方向。
Hough变换将原始图像中给定形状的直线或者曲线上所有点都集中到变换空间的某个点上形成峰值[4]。这样就把原始图像中给定形状的直线或曲线的检测问题转变成寻找变换空间中的峰值点问题,也就是把检测整体特性(给定直线或曲线的点集)变成检测局部特性的问题[4]。
图像空间中的任意解析曲线可以表述为
即图像空间中属于同一解析曲线的点经过式(2)的变换后,都映射到参数空间中,且相交于由参数确定的点[4]。从而说明,只要图像空间中属于同一解析曲线的数据点足够多,就可以通过判断参数空间中个参数点的积累值来确定此曲线在变换空间的相交点,从而确定此解析曲线的描述[4]。Hough变换适用于任何形式为的函数,其中是坐标向量,是系数向量[4]。
对于圆心坐标为O(a,b)、半径为r的圆在参数空间中的表示为
参数空间中,式(3)表示的是1个三维锥面。图像空间中的圆对应着参数空间中的1个点,而图像空间中的1个点(x,y)对应着参数空间中的1个三维直立圆锥,该点约束了通过该点的一簇圆的参数(a,b,r)[4],如图3所示。
图3 参数空间示意Fig.3 Parameter Space Diagram
图像空间中圆上任意一点对应着参数空间的一个圆锥,且该圆锥必经过点(a',b',r')。也就是说,图像空间中该圆上的所有点都映射到参数空间中后,对应的一簇圆锥相交最多的点坐标为(a',b',r')[4],如图3所示。
通过该点坐标(a',b',r')可求出图像空间圆的解析式,从而确定其圆心位置及半径[4]。
3.3 算法实现
软件的功能可以分为4个部分:初始化、自动监控、实时示警及文件形成。
3.3.1 初始化
初始化主要实现测试状态的设置、算法参数的设置以及指示灯位置定位。初始化流程见图4。
图4 初始化流程Fig.4 Initialization Flowchart
保存测试状态设置后,软件自动将其写入Excel文档1。算法参数设置中包含边缘检测参数(自动识别算子)、Hough变换参数(角度步长、阈值、最小圆半径、最大圆半径、检测圆半径步长),以及指示灯的行列数。边缘检测参数即自动识别算子,用于指示灯位置自动识别过程;Hough变换的参数用于每一帧画面中指示灯状态的自动识别;指示灯的行列数用于指示灯状态矩阵的定义,以及手动位置识别的指示灯总数确认。
指示灯位置定位有手动识别和自动识别方式。按下“手动识别”按钮后,鼠标会变成十字型,需要用户在初始帧显示界面依次单击每个指示灯中心,通过读取鼠标位置获取指示灯初始位置矩阵;自动识别时会先将初始帧图像灰度化,对其进行边缘检测,再利用Hough变换得到指示灯初始位置矩阵。具体流程如图5所示。
图5 自动识别流程Fig.5 Automatic Identification Flowchart
用Hough变换方法检测圆时,首先对参数空间进行适当量化,得到1个三维的计数器阵列,其中每一个立体小方格对应(a,b,r)的参数离散值。
将图像空间的初始帧灰度化后,根据灰度的梯度信息,选取适当阈值求出边缘。计算与边缘上每一点像素距离为r的所有点(a,b),同时将对应的(a,b,r)立方体小格累加器加1。改变r值重复上述过程,当对全部边缘点变换完成后,对三维阵列的所有累加器值进行比较,其峰值小格的坐标就对应着图像空间中圆形边界的圆参数(a,b,r)。
3.3.2自动监控
给每一帧图像设置状态矩阵,包含指示灯的位置坐标及状态。初始帧的位置采用初始化(手动识别或自动识别)结果,之后每一帧的位置计算方法与自动识别过程相同。软件通过指示灯位置处像素点的亮度变化提取状态信息,通过当前帧状态矩阵与上一帧状态矩阵的对比来识别指示灯状态变化情况,并绘出相应条形图,将状态变化写入Excel2文件并列表显示。
3.3.3 实时示警
建立语音库,每当指示灯状态矩阵发生变化时,读取相应的语音文件并播放。
设置常见测试规律表,当测试中出现不符合该表的情况时进行特殊音效及弹框示警,并在弹框中说明故障模式。基本测试规律表如表1所示。
表1 基本测试规律表Tab.1 Basic Rules of Test
自动监控及实时示警流程见图6。
图6 自动监控及实时示警流程Fig.6 Flowchart of Automic Monitoring and Real-time Warning
用户在初始化模块中设置好测试状态后,保存状态时,软件将状态内容写入到Excel文件1。指示灯的状态变化被软件实时记录到Excel文件2。当用户按下“生成报告”按钮后,软件读取Excel文件1及Excel文件2,将其内容写入Word文档,形成测试报告。
4 软件的设计与实现
4.1 初始化模块
初始化模块中,用户可以进行测试状态设置、参数设置与调整以及初始帧的指示灯的位置识别。
测试状态设置包括测试人员、地点、日期以及当前测试状态。保存后,测试人员、地点、日期信息可用于Word文档的一键生成,测试状态用于故障模式的识别比对。
参数的设置与调整,指的是边缘检测的参数(自动识别算子)、Hough变换的参数(角度步长、阈值、最小圆半径、最大圆半径、检测圆半径步长),以及指示灯的行数、列数。过参数变换对算法进行优化和比较。当用户不了解参数设置方法时,可选用默认参数,不影响软件的功能及使用。
初始帧的指示灯的位置识别有手动和自动2种方式,参数设置模块中的参数应用于此处的指示灯识别算法。该模块用户界面如图7所示。
图7 参数设置及位置初始化模块Fig.7 Module of Parameter Setting and Location Initilization
单击手动识别按钮后,鼠标会变成十字线形状,依次单击视频显示区域初始帧上的指示灯后,在指定区域显示手动指示灯定位图。单击自动识别按钮后,软件将自动指示灯位置,并将自动识别结果显示在指定区域。
4.2 实时监控模块
实时监控模块包括视频显示、条形图显示、历史状态变换列表以及语音提示功能。视频显示区域呈现了当前发控转接组合的指示灯状态,条形图将各个指示灯状态按照“亮”、“灭”两种状态进行了值为“1”、“-1”的柱状的区别显示,有助于更加直观地观测到指示灯状态变化。
历史状态变换列表展示了当前测试中指示灯的每一次状态变化及时间,有助于辅助岗位人员进行回顾与检查,如图8所示。
图8 状态列表Fig.8 State List
按下“语音提示”按钮后,开启语音提示功能。每当指示灯状态发生变化时,播放相应的语音文件。可以有效吸引岗位人员注意力,提醒岗位人员监测地面电源电压电流变化,避免了观测指示灯的同时观测不到电压电流变化的尴尬。
4.3 实时示警模块
当测试过程中出现与常见测试规律表不符的情况时,软件会播放特殊音效进行示警,在后台自动识别故障模式后,对故障模式进行弹框提示,辅助指挥员快速进行故障定位。
4.4 文件形成模块
该模块可以自动记录指示灯状态变化情况到Excel文件,还可一键生成Word文档。有助于记录留存和测试过程的回顾复查。
综上所述,该软件不论是在设备状态监测及提示、异常情况快速示警及描述,还是在形成记录文件上,都满足了岗位设置的需求,弥补了人工错误率高的缺陷。
5 结束语
本文立足于解决发控前端岗位发控转接组合视频的自动监控问题,从用户需求分析入手,结合边缘检测和Hough变换原理识别指示灯的亮灭情况,设计并实现了发控转接组合视频监测软件。该软件实现了发控转接组合状态变化的自动播报,辅助岗位人员更好地集中注意力,可以及时示警并辅助指挥员实现故障快速定位,并将测试过程的状态变化自动记录到文件,给岗位人员和指挥员提供了便利。
下一步研究将着力于把视频自动识别技术应用在控制系统的其他地面设备,结合前后端地面设备数据进行联合分析,衍生出故障快速定位等新生功能。