张文韬,郭 穗,王本红,邢本福,严玉明,徐长明,谭佳文,黄鹏辉,李文馨
(1.中国长江电力股份有限公司,湖北 宜昌 443000;2.北京中水科水电科技开发有限公司,北京 100038)
随着视频监控在水力发电厂道路交通、厂内安防、工业生产等领域的普及应用[1],视频巡检、全时空生产信息获取等新兴技术正与传统水电生产运营深度结合,使得运行维护人员无需亲临现场即可获得第一手信息。在带来一定便利的同时,海量的视频监控数据也成为人工分析方式的噩梦,由于运维人员无法全天候监视所有监控场景,往往在异常状况发生时无法做出快速响应。计算机视觉是利用计算机获取视觉传感器数据,并以计算机图形学、机器学习及深度学习等算法对图像或视频进行处理以挖掘高级语义信息,模拟人类视觉系统的一项技术。以24 h 不断运行的高性能服务器集群部署计算机视觉算法,用于实时处理水电厂视频监控数据,挖掘重要信息,实现现场关键信息获取、危险工况预警及异常诊断报警,从而替代传统的人员值守方式,是构建新一代智能化电站、无人值守电站的重要基础。本文就计算机视觉技术在水电厂的应用及前景进行了分析。
计算机视觉[2]的起源最早可追溯至20 世纪60年代,随着电子计算机的诞生及逐步成熟,工程师们利用其进行简单的图像处理与模式识别。经过50余年的发展,计算机视觉已应用于日常生活的方方面面,例如人脸识别、车牌识别、文字识别、自动驾驶等。计算机视觉算法包含对图像及视频数据的预处理、特征提取、特征分类等流程,按照其算法类型分类,可以分为传统算法和深度学习算法。
传统算法往往利用人为设计的算法提取图像的低级特征,例如颜色特征(灰度特征、二值图等)、直方图特征、集合特征、纹理特征(LBP、LBSP 等)、梯度特征(SOBEL、CANNY 算子等)和局部特征(SIFT、SURF 特征等),设定一定的阈值或使用机器学习方法(SVM、KNN 等)进行图像的分类、预测。本文以在视频运动目标检测领域较为常见的传统算法背景差分法为例进行传统算法原理简要介绍。
背景差分法通常包含背景模型建立、运动目标检测、背景模型更新3 个步骤,其流程如图1 所示。背景模型建立,是使用视频的首帧或者多帧图像建立背景模型的过程。在背景建模完成后,将当前帧视频图像与背景模型进行对比,在同一像素灰度特征差距较大的像素被判定为运动像素,反之则为背景像素,辅以形态学处理、连通性分析及模板匹配计算,即可检测运动目标区域及运动目标种类。在逐帧检测过程中,背景模型需要以某种策略同步更新(通常是将当前帧图像的部分信息融入背景模型中),因为随着时间的变化,视频的场景和光照环境会发生变化。背景差分法通过选择图像颜色特征并设定阈值检测运动目标,具有运算效率高、识别效果较好的特点。
图1 背景差分法流程图
由于需要人工选取特征并进行分类,传统算法对于特征的选取、阈值的设置有较高要求,需要专家依靠实验经验进行设置。但是由于计算机视觉应用场景的多样性,传统算法无法普及所有场景,并且在复杂场景上表现较差,所以其应用较为有限。
深度学习[3]是机器学习的一个子类别,在计算机视觉领域,多利用深度卷积神经网络进行视觉任务处理。卷积神经网络使用结构简单的卷积模块在图像上进行滑动计算提取特征,在多次卷积的累加下,低维度的特征会被转化为复杂的高维特征,而这些高维特征无疑是更符合机器表达的,因此在计算机视觉任务中其相比人工提取的特征效果更好。
虽然目前已有大量深度卷积神经网络的研究,其网络结构不尽相同,但是如图2 所示,其都包含卷积层、池化层、全连接层等基本层级结构,需要使用激活函数来增加模型的非线性拟合能力,使用损失函数来进行反向传播,使用一定的训练优化方法来进行模型的训练。其中,卷积的公式为:
图2 简单卷积神经网络模型
图3 现有研究应用场景
y(i,j)=f(W×x(i,j)+b)
式中y(i,j)表示卷积后的输出特征图的某个位置的值,x(i,j)表示输入特征图的某个位置的值,W表示卷积核的权重参数,b表示偏执参数,f为激活函数。常见激活函数包含ReLU、Sigmoid 和Tanh,激活函数的公式为:
y=activation(x)
其中y表示激活后的输出值,x表示输入值,activation表示激活函数。深度卷积神经网络相比传统算法具有强大的模型表达能力,但是需要大量的数据集进行模型训练,否则会产生过拟合、模型能力退化的问题。目前,一些通用领域例如交通、安防、医疗等因已构建了大量的数据集,所以深度卷积神经网络用于这些领域较为成熟,但是在工控领域,由于应用场景较多,缺乏图像采集与标注,深度卷积神经网络相关研究、推广和应用仍较为困难。
计算机视觉技术于水电厂的应用尚处于起步阶段,但部分领域与通用行业具有深度重叠性,故存在一定成熟的计算机视觉技术应用。本文对此类应用场景归类为:
(1)智能安防:智能安防是视频监控发展的主要方向之一。我国具有大量学者研究人脸识别、目标检测、目标追踪、动作识别等领域的计算机视觉算法,为智能安防积累了广泛理论基础。在前端硬件生产领域,一些智能摄像头能够集成部分算法,能直接用于入侵检测、运动目标检测等场景。目前,水电厂视频监控已较为普及,基本实现了重点区域全覆盖,起到了辅助安保人员监视的作用。
(2)智能巡检:利用监控视频进行视频巡检已成为替代传统人工巡检的一种方式[4]。目前,有部分研究开始着手于智能巡检,即进一步优化视频巡检方式,利用计算机处理视频数据进行危险预警。现有智能巡检研究相关应用场景包括:电厂生产区域漏水(漏油)检测、保护压板状态识别、断路器状态识别、仪表读数识别、轴承损伤检测、输电线路损伤检测、水工建筑裂纹检测[5]、火灾检测等。但此类研究主要为理论创新,极少在水电厂生产实际中应用,并且缺乏系统研究,没有自上而下的体系设计。
(3)流域监测:主要利用卫星遥感图像监测流域大坝状况,包括水电站地质灾害识别与预警、大坝形变研究[6]、水库水深及水域面积演算、坝区环保生态修复等。由于遥感图像可以在宏观层面较为直观展示流域状况,利用计算机视觉算法有助于优化流域梯级电站调度,具有一定的实用性。
精益生产是水力发电厂的第一要务。目前针对水电厂的计算机视觉研究缺乏与生产实际深度结合,多停留于理论层面,因无法对生产进行有效指导存在较大局限性。现有的水电厂计算机监控系统多为分布式结构,由上位机和现地LCU 组成,其中LCU 负责数据采集与处理、设备监视与控制、执行流程、与其他子系统通信、报警与事件生成。由于LCU通过生产现场的传感器采集开关量和模拟量反馈至上位机监屏人员,上位机监屏人员无法获知真实的现场信息,只能默认传感器数据采集是准确的,这就造成了“所闻即所得”而非“所见即所得”的问题。
水电厂运维经验表明,存在传感器偏差较大或损坏导致计算机监控系统采集状态与现场实际不符的情况。由于视频监控的远方性、可视性,将计算机视觉技术与水电厂计算机监控系统相结合,能在一定程度上解决上述问题。根据《电力监控系统安全防护总体方案等安全防护方案和评估规范》(国能安全〔2015〕36 号)要求实现“安全分区、网络专用、横向隔离、纵向认证”,水电厂计算机监控系统分为生产控制大区和信息管理大区,将计算机视觉技术与计算机监控系统进行结合有两种实现方式。
第一种切实可行的方式是构建独立的计算机视觉应用系统于信息管理大区,其不参与工业控制,仅辅助监屏人员对现场进行状态监视。该系统包含实时数据采集模块、传输模块、视频存储模块、视频预处理模块和视频智能分析模块,其中视频智能分析模块部署多种计算机视觉算法和高级诊断分析决策树,做到智能跳转(操作员下令时或现场出现异常状况时,视频监控自动跳转至对应场景)、在线实时异常检测与预警等。另一种实现方式为在第一种方式所能实现功能的基础上增加与工控系统联动的方式,由于直接参加生产控制,此类系统部署于生产控制大区。其视频智能分析模块具备与PLC 通信的能力,通过视频分析模块计算出的数据可转换为模拟量和开关量,传输至PLC作为依据参与工业控制。但是由于视频采集编码、解码及计算机视觉算法计算的时间开销,第二种实现方式适用于实时性要求不高的场景,例如辅控设备动作状态采集、阀门状态采集等可存在一定延时的场景。
虽然计算机视觉技术在水电厂的应用有广阔的前景,但是如何将其投入生产运营仍存在一些难点:
(1)前端摄像头部署及维护问题:由于水电厂存在较多恶劣环境,造成了摄像头部署及维护困难的问题。例如在发电机定、转子处部署摄像头,则面临强电磁辐射环境,需要摄像头具备一定防护能力;又如在快速门部署摄像头,则面临高空作业,对摄像头的维护更换造成一定不便。
(2)计算机视觉算法可靠性问题:由于计算机视觉算法依赖于前端摄像头采集的视频数据,一旦出现摄像头震动、位移甚至是遮挡的恶劣情况,计算机视觉算法的准确率会随之下降。因此,要求计算机视觉算法具备一定鲁棒性以应用复杂环境。
(3)数据集构建问题:基于深度学习的计算机视觉算法往往需要一定规模的数据进行模型训练,该数据包含原始图像及其对应的标注,而水电行业还未公开较权威的大规模数据集,因而要求研究者根据应用场景重新构建数据集。目前有两种构建数据集的方式;其一为针对多个应用场景构建大规模的数据集;其二为针对单独场景构建小规模数据集。方式一需要较大成本,但以之训练的模型可用于多个场景,具备一定泛化性;方式二成本较低,并且通过拟合的方式获得较高识别精度,但缺乏模型迁移和复用性。
(4)算力支持问题:基于深度学习的计算机视觉算法在训练和投入使用时需要大量GPU 的算力支持,并且GPU 需要支持美国英伟达公司的CUDA 计算架构,在自主可控和国产化替代方面仍需进行一定探索。
(5)实时性问题:由于视频的采集和编解码,计算机视觉算法均存在一定耗时,其响应速度较普通的电信号传感器较慢。在构建于工控系统联动的计算机视觉应用系统时应综合考虑前端摄像机路数、网络带宽、算力及计算机视觉算法的时间复杂度,保证系统的实时性。
(6)模型维护问题:由于计算机视觉算法种类较多,其利用不同数据集训练的效果也不同,造成了同一模型场景迁移的困难。对于不同模型甚至无法进行迁移,只能重新进行训练,浪费大量计算资源和时间成本。
为应对上述难点,在计算机视觉应用系统的整体设计上应采用分布式系统,满足模块的单一职责原则。如图4 所示,原则上其至少应包含实时多场景视频采集模块、视频传输存储模块、智能分析模块、数据可视化模块。
图4 计算机视觉应用系统架构
通过高清摄像头完成对监视应用场景的数据采集,并通过视频传输存储模块实现分配和储存视频资源。通过智能分析模块部署计算机视觉算法处理视频图像,实现对监视目标的安全风险等级评估,同时结合场景中多源目标多维度数据的分析结果,实现基于数据驱动的安全隐患识别。可视化模块可调取系统资源,实现实时(历史)监控视频播放、风险态势预警等。
在具体的实施细节上可针对上述架构进行一定程度的改进,在硬件设备层面,可以通过冗余部署增强系统可靠性;可以通过部署大量边缘计算模块分担中央智能分析模块算力压力。在设备选型上,尽量统一选型减少后期维护压力。在算法层面,可以通过机器视觉系统与水电厂计算机监控系统相互配合实现数据自动标注;通过传统计算机视觉算法和深度学习算法的配合使用减少算力需求;通过设计轻量化模型达到实时处理效果;可以通过减少算法种类数量、大量使用经典算法、同类型场景使用同一算法模型增强算法的泛化性,减少算法维护成本。
随着计算机视觉技术的不断发展和成熟,已具备一定条件应用于水电厂生产实际中。本文对计算机视觉技术进行了简单介绍,对其于水电厂的应用现状、应用前景进行了阐述,并对计算机视觉技术的应用难点进行了分析,提出了对计算机视觉应用系统架构设计的建设性意见。希望在学者们的一众努力下早日将计算机视觉技术普及于水电生产中,为构建新一代智能水电站贡献力量。