谢海啸,邱 建,余晖良,马庆贺
(北京奥特维科技有限公司,北京 100010)
城市运管指挥中心是一个整合交通、公安、水利、环保、城管以及气象等委办局业务和信息,通过大数据分析、云计算等技术,建立城市统一运行监控体系,统一事件综合协调平台,全面提升城市综合管理水平和应急处置效率的治理一体化解决方案。中心需要接入多个不同保密等级的网络,融合多个不同部门的各类数据,承载入驻的多个不同部门业务的值班人员,具备视频显示、图像传输、音频扩声、融合通信及安防、照明等多个信息化系统,提供7×24 h 不间断运行服务,为领导及时、高效地指挥决策提供保障。
如此庞大、复杂的系统,它的管理和运维将极其烦琐。传统做法是为每个子系统部署独立的管理软件,每个子系统由专人负责,各子系统的数据相互独立。或者采用集中控制系统实现对多媒体设备的集中管理,但无法实现设备运行状态监测和故障定位功能,定位故障和解决故障时间长,且对运维人员要求较高,无法满足7×24 h 不间断运行的要求。因此,为指挥大厅部署一套可视一体化运维管控平台尤为重要。
随着云计算、人工智能和物联网的快速发展,人脸识别技术、语音识别技术和物联网技术已经相对成熟,同时通过云计算对传统行业的赋能,能够对很多传统产业的提升提供较大的推动力。
对于指挥大厅而言,一方面物联网技术将传统音视频设备接入物联网,实现设备互联,增强感知能力,提高系统可用性和可维护性,使得集中管理成千上万的音视频设备成为可能;另一方面,通过人工智能和云计算技术对指挥大厅进行赋能,使得其成为具备AI 能力、能感知以及可通过语言交流的智慧系统。
因此,需要部署一套能够解决上述问题的可视一体化管控平台,不仅能统一管理整个指挥大厅各子系统,还能发现问题并辅助解决问题,提高指挥大厅长期运行的稳定性。
可视一体化管控平台通过物联网监测所有子系统设备的运行状态(如图1 所示),并采集存储形成大数据。通过大数据可视化技术可生成直观的用户界面,同时结合人脸识别、语音识别、云计算等人工智能技术,为指挥大厅提供更加人性化的功能。例如:通过人脸识别实现登录KVM 坐席调度系统、自动会议签到、门禁和考勤系统;通过语音指令实现灯光空调控制、图像调度以及语音转写等;通过数据分析实现故障预警和故障快速定位等功能。
系统架构包括基础设施层、数据层、云计算支撑层、业务层和用户层,如图2 所示。
基础设施层是指挥大厅信息化的各种基础设施,是可视一体化管控平台管理和运维的主要设备和设施,包括音频扩声、大屏显示、视频会议、KVM分布式高清坐席、融合通信、机电、照明、坐席计算、安防、网络工程以及机房工程等子系统。
数据层是采集、存储、计算和管理数据的逻辑层,包括物联网平台和大数据平台。其中:物联网平台主要负责采集数据和下发指令,主要支持包括Modbus TCP、Modbus RTU、Backnet、SNMP、Dante音频以及各种基于TCP/IP 或RS232 的私有协议;大数据平台主要负责存储、计算和管理数据。
云计算支撑层是为可视一体化管控平台提供赋能的逻辑层,包括语音识别引擎、人脸识别引擎、声纹识别引擎、文本翻译引擎以及业务模型库等模块。
业务层是可视一体化管控平台的主要业务逻辑层,包括WEB 服务器、业务处理、数据管理、用户管理以及日志管理等模块,主要功能包括运行状态监测、数据接入、智能分析研判、快速故障定位、设备控制和管理功能等。
用户层是用户交互层,包括浏览器端、APP 端和语音指令端。为了简化业务层架构,用户层的各种应用均通过HTTP 协议与业务层通信。
技术路线主要从用户层、业务层、云计算支撑层和数据层等方面进行阐述。
用户层包括浏览器端、APP 端和语音指令端。为了简化业务层架构,用户层的各种应用均通过HTTP 协议与业务层通信。
浏览器端(也称前端)开发框架技术路线选择较多。由于开发团队专注于JavaScript(以下简称JS)脚本语言,本文主要选择基于JS 前端框架技术路线。基于JS 的主流前端框架包括VUE、Angular以及React 等。表1 主要针对这3 套框架进行比较。
表1 浏览器前端框架对比
由于可视一体化运维管控平台属于中小型项目,对比上述3 种框架,根据团队实际情况选择VUE 作为浏览器端的开发框架。
对于语音指令前端,由于Python 语音在AI 领域的重要地位,选择Python 作为主要开发语言,并针对部分性能敏感模块选择Golang 语言和C++语言编写。
对于APP 端,针对移动端平台选择相应的开发语言和相关框架,不再赘述。
业务层(也称后端)是可视一体化运维管控平台的核心层,主要包括Web 服务器和业务逻辑两大部分,其中业务逻辑包括业务处理、数据管理、用户管理以及日志管理等模块。它的主要功能包括运行状态监测、数据接入、智能分析研判、快速故障定位、管理控制和资产管理等。
3.2.1 后端框架选择
后端开发框架技术路线选择较多。由于开发团队专注于JavaScript(以下简称JS)脚本语言,本文主要选择基于Node.js 后端框架技术路线。相关的主流后框架包括Express、Sails 以及Egg 等。表2 主要针对这3 套框架进行比较。
表2 后端框架对比
由于可视一体化运维管控平台属于中小型项目,对比上述3 种框架,根据团队实际情况,选择Egg 作为后端的开发框架。
3.2.2 Web 服务器选择
由于后端选择了Egg 作为开发框架,因此不使用Web 服务器系统也能正常工作。只是为了高并发性能,需要选择一个Web 服务器。针对这个需求,选择Nginx 作为Web 服务器。Nginx 是一个高性能的HTTP 和反向代理服务器,性能稳定,系统资源消耗低,能够支持高达50 000 个并发连接数。
云计算支撑层包括语音识别引擎、人脸识别引擎和文本翻译引擎等。由于主流语音识别引擎在普通话识别率均能达到95%以上,因此选择中电慧声语音识别引擎(它在项目实际应用中表现良好)。此外,基于同样的原因,人脸识别引擎和文本翻译引擎均选择市场主流产品。
数据层包括物联网平台和大数据平台。其中,大数据平台选择市场主流产品。由于物联网平台是可视一体化运维管控平台的关键模块,且运维对象主要是音视频系统设备,很多设备不能提供标准的协议和接口,与很多流行的物联网平台兼容性不佳,所以选择自主开发物联网平台。
物联网平台功能包括数据采集和指令下发等功能,需要支持的接口、协议见表3。
由于需要和底层设备交互且对性能要求较高,物联网平台选择C/C++作为主要的开发语言。
重点难点分析将从快速故障追踪和定位、故障预警分析、坐席计算机运维、提高语音指令识别率和人脸识别应用等方面进行阐述。
表3 物联网平台支持的协议一览表
快速故障追踪和定位主要由一套故障报警处理流程和相关支撑能力实现。故障报警处理流程如图3 所示。
它为设备坐标信息、电子地图以及完善故障模型库提供支持。其中,故障模型包括故障类型、故障描述、故障影响指数以及故障处理建议等。下面举例说明快速故障处理流程。
4.1.1 生成告警信息
发生故障后,系统监测到该故障并自动生成告警信息,通知运维人员。告警信息列表界面,如图4 所示。
4.1.2 电子地图定位
运维人员打开告警信息的定位功能,系统会在电子地图上显示故障点位置,从而引导运维人员迅速处理故障,界面如图5 所示。
4.1.3 完成故障处理
故障处理完成后,运维人员需要根据实际情况填写故障处理报告,并关闭该工单,界面如图6 所示。
设备故障预警和状态监测根据设备运行规律或观测得到的可能性前兆,在设备真正发生故障前及时预报设备的异常状况,并采取相应的措施,从而最大程度地降低设备故障造成的损失。随着指挥大厅系统的规模和复杂性日益增大,为保证系统安全平稳,通过可靠的状态监控技术及时有效地监测和诊断过程异常显得尤为迫切和重要。现有的故障预警技术主要分为基于机理模型的方法、基于知识的方法和基于数据驱动的方法3 大类。
基于机理模型的方法是发展最早也最深入的故障预警和状态监测方法,主要包括两个阶段。第一阶段是残差产生阶段,即通过设备运行机理建立精确的数学模型来估计系统输出,并将之与实际测量值比较获得残差,这个阶段构建的模型又叫残差产生器。第二阶段是残差评价阶段,即对残差进行分析,以确定过程是否发生故障,并进一步辨识故障类型。
基于知识的方法主要以相关专家和操作人员的启发性经验知识为基础,定性或定量描述过程中各单元之间的连接关系、故障传播模式等,并在设备出现异常征兆后通过推理、演绎等方式模拟过程专家在监测上的推理能力,从而自动完成设备故障预警和设备监测。
基于数据驱动的方法通过挖掘过程数据中的内在信息建立数学模型和表达过程状态,从而根据模型实施过程的有效监测。随着智能化仪表和计算机存储技术的广泛应用,海量的过程数据得以有效监测、收集和存储,而该类方法正是基于这样的海量数据。
可视一体化运维管控平台采用基于数据驱动的方法和基于知识的方法相结合的方式实现,并将每个成功预测的模型保存在系统业务模型库中。
指挥大厅通常需要配置大量的高性能席位计算机,用于GIS 地图展示、数据可视化、指挥调度及业务流转等业务。这些坐席计算机通过KVM 分布式坐席系统实现调度。由于席位计算机接入不同安全等级网络,其自身的安全等级和操作系统不尽相同,因此如何实现对其统一运维管理而不会引起安全问题,是亟需解决的难点问题。
运维需求包括远程开关机控制,读取运行状态、报警状态以及资源负载等信息,数据量较小。由于安全策略,不能选择网络和USB 传输。经过权衡,选择通过串口实现上述功能,此时只要能够实现串口远程开机功能即可。经过查阅资料和厂家调研,准备了两套实现方案。
方案一:定制一块串口开关机电路板和后台服务程序。该电路板一端连接计算机主板内置串口,一端对外提供串口连接器,并提供一个干接点输出接口连接计算机Power on 开关。电路板供电通过计算机电源的+5 V SB(+5 V 待机电源)引脚提供。这样即使计算机处于关机状态,电路板也能够正常运行。同时,需要在操作系统中安装上述后台服务程序,用于提供运行状态等信息。
方案二:选择服务器平台计算机。服务器平台通常会配置基板管理控制器(Baseboard Management Controller,BMC),只要该BMC 支持串口开关机即可。
方案一能够支持多数计算机,但是实现相对复杂,且需要安装后台软件;方案二支持的计算机较少,实现更容易,但是成本较高。在本项目中选择方案二。
近几年,随着语音识别引擎的进步,应用语音识别实现语音转写和语音指令的应用越来越多。本项目充分应用语音指令功能,与运维平台深度结合,不仅能够实现灯光控制、空调控制以及模式调用等功能,还能够直接透过运维平台查询系统设备状态等信息。但是,由于使用人发音差异,经常出现语音指令不能被正确识别等问题,如“关电视”有可能被识别成“关键是”。针对这类问题,提出能否通过模糊拼音算法进行纠正。
4.4.1 模糊拼音算法
提取语音指令的汉语拼音作为字符串s1,如“关电视”的汉语拼音“guan1 dian4 shi4”;提取识别的汉字的汉语拼音作为字符串s2,如“关键是”的汉语拼音“guan1 jian4 shi4”。将字符串s1和字符串s2进行相似度计算,本项目采用Jaro similarity 算法,相关公式如下:
其中:|s1|和|s2|表示字符串s1和s2的长度;m表示两字符串的匹配字符数;t表示换位数目的一半;simj表示相似度。上述计算结果simj=0.937 5。
可以定义相似度大于0.85 即可认为语音指令符合。上述算法需要结合模糊拼音,才能实现更好的效果,如图7 所示。
4.4.2 模糊拼音改进1
上述算法能够大幅提高语音指令的识别率,但是也会提高错误识别率。例如,在较短的语音指令集上,语音指令“关灯”和词语“咣当”的相似度约为0.869 5。如果按照相似度大于0.85 的标准,会导致错误指令。改进方案是针对语音指令集的每个指令分别设置适当的相似度阀值,对较短的指令阀值设置大一些,对较长的指令阀值设置小一些。
4.4.3 模糊拼音改进2
改进后的算法不仅提高了语音指令的识别率,又抑制了错误识别率,在实践中效果较好,对比未采用该算法的识别率提高了15%~20%。但是,应用在指挥大厅这种语言指令集比较庞大,且语音指令系统24 h 待机的情况下,当用户处于连续发言的情况下会导致大量的转写文本进入算法核心,导致CPU 单核过载,处理结果延迟多大于2 s,用户体验较差。为了解决该问题,提出充分利用CPU 的多核处理能力,用Golang 重写算法,利用Golang 协程充分调度CPU 多核处理能力,将原先大负载下2 s 以上的延迟缩短到8 个逻辑核心CPU 的0.5 s以内,实现了较好的用户体验效果。
4.4.4 应用AEC 算法消除干扰
当通过语音指令与系统交互时,通常是一问一答的形式。例如,语音指令“今天几号”,系统以语音答复“2020 年7 月22 日”。这样系统答复的语音又会被拾取到,造成语音指令干扰。如何消除这样的干扰,解决方案有多种,这里选择应用AEC 算法。从根本上看,效果类似干扰。AEC 算法有软件实现和硬件实现之分。软件实现是在语音指令处理器上用软件实现,硬件实现是将进入语音指令处理器的音频和语音指令处理器输出的音频均引入数字音频处理器,用后者的AEC 模块消除进入语音指令处理器的音频中的干扰部分,保留干净音频输入。这在实际项目中效果较好。
人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别。人脸识别技术在安防领域的应用已经比较成熟,如人脸识别门禁等。在指挥大厅场景中如何应用人脸识别并提高工作效率,是本系统重点考虑的主要问题之一。调研发现,指挥大厅的坐席值班人员经常会随着任务调整位置,而每次更换位置需要重新登录KVM 系统,如图8 所示。应用人脸识别可以解决这个问题,即值班人员可以通过人脸识别自动登录系统,还能够自动关联上次登录的席位计算机,且当值班人员离开一定时间后会自动退出登录,消除了因值班人员忘记退出登录导致信息泄露等问题。
此外,基于人脸识别实现了会议签到、考勤等应用,且所有这些应用均共享一套人脸识别引擎。
故障模型包含故障影响指数,而不同的故障指数也不尽相同。影响范围大、核心设备故障的指数高,相反影响范围小、非核心设备的故障指数低。可视一体化运维管控平台能够根据告警信息列表,实时自动计算故障指数统计值。数值越高,系统健康指数越低;反之,健康指数越高。根据系统健康指数,采用绿、黄、橙、红共4 种颜色来直观标识,其中绿色表示系统健康,红色表示系统不健康。
表4 系统健康程度一览表
联动功能是指在指挥大厅控制室和大厅内部安装一些氛围灯光和氛围显示屏,系统根据健康指数自动调节氛围灯光和氛围显示屏的颜色,以最直观的方式展示系统的健康状态。
为了提高用户体验,除了浏览器端和APP 端,可视一体化运维管控平台还为用户提供了语音指令交互功能,并与运维平台深度结合,不仅能够实现灯光控制、空调控制以及模式调用等功能,还能够直接通过运维平台查询系统设备状态等信息。
可视一体化运维管控平台应用了大量成熟的架构和AI 新技术,为指挥大厅赋予了自我感知和自主学习能力,能听,会说,能看,具备一定的思维、判断和决策能力,从而保障指挥大厅7×24 h 稳定、高效运行。目前,本项目开发完成后已经应用在海南社会管理信息化指挥中心3 个月。从实际使用效果来看,它较好地完成了立项目标,但是还有一些功能具备一定的提升空间,用于满足更大的市场需求,如由于网络延时和带宽等原因,APP 端尚未开发。随着5G 的普及应用,APP 端也将提上日程。