基于视频图像识别的水电站现场安全管理
2024-07-06杜成波
杜成波
摘要:水电站现场存在边坡滚石、高处坠物、水位突变等诸多安全风险,采用有效手段对现场人员未佩戴安全帽和水位超限进行自动识别报警具有重要意义。利用现场视频监控获取实时图像,借助图像识别技术,提出了基于改进运动目标识别方法的安全帽检测和水库水位自动监控方法,并基于OpenCV平台开发了相关监控程序,对进入视频监控区域的现场工作人员以及水库水位进行实时检测,实现了自动实时监控和报警,提升了水电站现场安全管理水平。
关键词:安全管理; 安全帽佩戴; 水位监控; 图像识别; 视频监控; 水电站
中图法分类号: TV512;TP315
文献标志码: A
DOI:10.16232/j.cnki.1001-4179.2024.S1.047
0引 言
水电站现场环境复杂,存在诸多安全风险,如边坡滚石、高处坠物、水位突变等,采用有效手段对现场人员未佩戴安全帽或水位超限进行自动识别报警和提醒具有重要意义。水电站场地范围较大,目前现场一般都会布设视频监控系统对一些重要区域进行重点监控,通常情况下会安排专职人员在监控室中集中监视视频监控系统传输来的图像画面,并就发现的问题及时通知相关人员。基于视频图像识别技术的现场安全监控可以凭借自动化程序识别代替人工监视判断,从而减轻人工监视的工作量。图像识别技术属于人工智能的一个重要领域,以图像主要特征(几何形状、颜色、面积、周长、体积等)的识别为基础,目前已经广泛应用于智能交通、裂缝识别、指纹识别、人脸识别、运动目标识别、医学研究等领域[1-2]。
本文针对水电站现场人员安全帽佩戴和水位监控等安全管理,基于现场视频监控获取的实时图像,采用图像识别技术,提出了改进的运动目标识别方法,利用OpenCV平台开发了现场人员安全帽佩戴监控程序和水库水位监控程序,实现自动实时监控和报警。
1现场人员安全帽佩戴监控
本文提出的现场人员安全帽佩戴检测流程包括基于图像识别的运动目标(人员)检测、人员头部检测、人员佩戴安全帽识别等,并且针对现有图像识别算法缺点进行了改进,以满足现场视频实时监控的要求。
1.1基于ViBe算法的运动目标检测
基于图像识别的运动目标检测方法包括帧差法[3]、背景减除法(如混合高斯、平均背景、均值漂移、ViBe等)、光流法[4]、运动模板法[5]等。
其中,ViBe法与其他算法相比具有计算内存占用量低、性能较优等特点,因此本文采用ViBe算法来实现视频图像中运动目标(即移动的现场人员)的实时检测。
ViBe算法的工作原理是:通过建立一定的规则将图像中各个像素点识别并归类为背景点或是前景点。ViBe算法中,将背景模型定义为图像中每个像素点对应的像素值样本集,在此基础上将任意一帧图像中每一个像素点新的像素值与其对应的像素值样本集进行比较,来判断该像素点是否属于背景点,如果一个像素点新的像素值和样本集中的采样值比较接近,则它就应该属于背景点,反之则属于前景点。
ViBe算法的计算流程如下:
(1) 背景模型的初始化。该步骤仅通过第一帧图像完成,考虑到单帧图像中不可能包含像素点的时空分布信息,因此可以随机选择像素点相邻点位的像素值作为背景模型样本值。
(2) 背景模型的更新。背景模型能够随着图像背景的不断变化而相应动态更新,比如光照的变化、背景物体的变更等。更新策略一般分为2种:① 保守的更新策略,即始终不用前景点来更新背景模型,这种策略会引起死锁,比如当初始化时如果一块静止的区域被错误地检测为前景,那么它始终会被当做前景,这样就会产生Ghost区域;② 盲目地更新策略,前景点和背景点都可以来更新背景模型,此种策略的缺点是缓慢移动的物体会融入背景中无法被检测出来。ViBe算法采用的是保守更新策略+前景点计数法。前景点计数法的规则是:对像素点连续被检测为前景点的次数进行统计,如果某个像素点连续N次被检测为前景点,则将其更新为背景点。
背景模型的更新采用随机的二次采样策略,即当一个像素点被判断为背景点时,仅采用一定的概率去更新背景模型,具体来说,当某个像素点被判断为背景点时,采用1/P的概率去更新自己的像素值样本值,并采用1/P的概率去更新其相邻点位的像素值样本值。更新相邻点位的样本值利用了像素值的空间传播特性,有利于Ghost区域更快地被识别和消除。同时,当前景点计数达到临界值N时,则将该像素点判断为背景点,并采用1/P的概率去更新自己的像素值样本值,同时采用随机方法随机选取一个样本值进行更新。
OpenCV是一个开源的跨平台计算机视觉分析方法库,采用其提供的现有通用函数来实现特定需求的图像识别程序开发,能够较大程度地减轻开发量。本文基于OpenCV平台,编写了运用ViBe算法的视频图像运动目标检测程序,程序伪代码流程如下:
(1) 变量初始化。需要初始化的变量包括每个像素点的样本个数变量pixSamples,存储每个像素点对应像素样本值的三维数组samples,以及存储每个像素点被连续检测为前景点次数的数组count。判断像素点为背景点的两个重要阈值:像素差异difference和像素差异内的匹配数matches。判断像素点为前景点的阈值:连续判断为前景点次数conCount,二次随机采样因子subSampFactor,背景像素值backGround和前景像素值foreGround。
(2) 背景模型初始化模块。
即依次遍历第一帧图像中每个像素点的每个样本,并对三维数组samples进行赋值的过程。具体地,对于任意一个样本,随机选取以该像素点为中心,以2个像素距离为边长的正方形范围内像素点位像素值进行采样,并存储在三维数组samples中,同时将每个像素点被连续判断为前景点的次数N赋值为0。
(3) 背景模型更新模块。在此模块中,依次遍历当前图像帧上的每一个像素点,针对任意一个像素点,首先将其像素值依次与样本值进行比较,如果二者距离差异小于阈值difference的样本个数,且大于或等于matches时,则判定该像素点为背景点,否则为前景点。
如果被判断为背景点,首先将该像素点被连续判断为背景点的次数N赋值为0,并将输出图像中该像素点位置处的像素值设置为backGround;然后启动二次采样流程,依次采用二次随机采样因子subSampFactor随机将该像素点的某一样本值赋值为当前帧图像中该像素点的像素值,同时随机将该像素点某一相邻像素点的某一样本值赋值为当前帧图像中该像素点的像素值。
如果被判断为前景点,首先将该像素点被连续判断为前景点的次数N+1,并将输出图像中该像素点位置处的像素值设置为foreGround;然后判断该像素点连续被判断为前景点的次数是不是小于conCount,如果是,则采用二次随机采样因子subSampFactor随机将该像素点的某一样本值赋值为当前帧图像中该像素点的像素值。
1.2ViBe算法的改进
现有ViBe算法存在两方面可以重点讨论改进之处:
(1) 现有ViBe算法对Ghost区域(图1)的消除效率不高,具体表现在Ghost区域识别及消除较为缓慢,且Ghost区域消除后的范围内有运动物体经过时也会被误判为背景,如图2所示。
(2) 现有ViBe算法对原始视频帧图像进行了单通道处理,这样虽然能提高算法分析处理的效率,但是因为单通道图像色域范围较为局限,有些前景像素由于与背景差别不大依旧易被误判为背景,如图3所示。
经分析,现有ViBe算法对Ghost区域消除效率不高的原因是:当像素点被连续检测为前景的次数conCount满足成为背景点的条件后,采用二次随机采样因子subSampFactor,随机将该像素点的某一样本值赋值为当前帧图像中该像素点像素值的概率较低,导致该像素点的背景模型更新效率较低。针对这一问题有两种改进方法:① 降低conCount,同时采用更大的随机采样因子增大采样概率;② 采用该像素点当前帧图像中相邻的像素值对该像素点的样本值进行全面更新,以扩大采样范围。上述2种改进方法同时使用时需要注意:① 对于图像前几帧被判断为Ghost的区域(以下简称为初始化Ghost区域),宜采用该像素点当前帧图像中相邻的像素值对该像素点的样本值进行全面更新,这样可以提高初始化Ghost区域的消除效率;② 对于因为降低conCount同时增大随机采样概率而增大了背景模型的更新频率,导致将短暂静止的物体错误地判断成背景而形成的Ghost区域(以下简称为过程中Ghost区域),此种情况下则适合采用该像素点第一帧图像中相邻的像素值对该像素点的样本值进行全面更新。
对于如何判断图像检测过程中出现的是初始化Ghost区域还是过程中Ghost区域,可在前若干帧图像中对各像素点被判断为前景点的次数进行统计后判定,如果前景点次数远大于背景点次数,则判断其属于初始化Ghost区域。
针对有些前景像素与背景差别不大而被误判为背景的问题,可以将图像处理为3通道图像,根据RGB像素进行判断更加准确。
其他改进方面:① 缩小背景模型中像素点的样本数量和采样范围,将采样范围缩小至像素点自身及上、下、左、右等5个像素点的位置;② 补充背景点的判定与更新条件,在经过上述方法判定的背景点和前景点构成的图像中,依次判断各像素点,若某一像素点四周均为背景点,则其也应为背景点。
采用改进后的ViBe方法对原视频图像进行检测,结果如图4~5所示。
1.3人员头部检测
通过ViBe算法获取视频图像中运动人员目标后,需要在此基础上进一步识别人员头部区域。本文提出两种人员头部区域检测的实现方法:圆形检测法和包围盒检测法。
在圆形检测法中,首先识别出运动人员目标所在区域内的圆形以及人形轮廓,根据轮廓的像素面积,剔除一些不是人形的轮廓。同时为了剔除一些识别出来但不属于头部区域的圆形,需设置两个筛选条件:① 圆形的圆心需在某一人形轮廓之内;② 在满足条件1的基础上,同时需满足圆心位于该轮廓顶部1/7轮廓高度范围内(人头高度一般为人身体高度的1/7)。
在包围盒检测法中,首先识别出运动人员目标的包围盒以及人形轮廓,同样可根据轮廓的像素面积剔除一些不是人形的轮廓。同时通过设置以下两个筛选条件限定人员头部区域的像素坐标范围:① 像素坐标需在某一人形轮廓包围盒顶部1/7高度范围内;② 该像素坐标需在同一人形轮廓内。
1.4佩戴安全帽识别
水电站现场不同类别的工作人员佩戴不同颜色安全帽,如白色为业主管理人员,红色为承包商人员,蓝色为监理人员,这3种颜色与头发的颜色有明显区别,因此可通过对图像颜色特征的识别来判断现场人员是否佩戴了安全帽。
在确定了人员头部位置的圆形以后,在圆形上半圆中的像素点对原视频图像该位置处的HSV值进行采样,若满足白、红、蓝任一颜色HSV范围(表1)的像素点数目大于像素点总数的30%,则表示该人员头部位置佩戴了该颜色的安全帽,否则提示报警。
本文基于OpenCV平台,编写了基于ViBe算法的现场人员安全帽佩戴识别程序,整体程序的算法流程如图6所示,识别效果如图7~8所示。其中图8所示的黄色圆圈表示该人员未佩戴安全帽,红色圆圈表示该人员佩戴了红色安全帽。
2现场水位监控管理
为监控水电站现场重要区域的水位情况,除在水中设置水位标尺便于观察读数外,为实现远程监控,现场通常会在该区域附近设置摄像头。本文研究如何在现场设置视频监控和水位标尺的基础上,实现基于图像识别技术的水位自动读数,以替代人工读数。
2.1水位刻度定位
水位刻度的定位,是在视频监控图像中识别出水面以上未被淹没的水位刻度。
为此需根据水位刻度的一些颜色或形状特征将其从图像中识别出来。以图9为例,其中水位刻度具有红色的颜色特征,以及“E”形的形状特征。本文基于红色像素提取方法,实现图像中水位刻度的定位,具体实现方法如下。
(1) 首先将图像像素由RGB格式转化成HSV格式。
(2) 循环HSV格式图像的每个像素点,获取各像素点对应的H、S、V值,依据表1中红色像素H、S、V值所在区间,将判断出非红色像素点的像素值统一赋值为H=0,S=0,V=0。处理后的图像如图10所示。
(3) 将上一步处理后的图像转换成GRAY格式。
(4) 采用局部自适应阈值法[6]对图像进行二值化处理,将图像中像素值大于自适应阈值的像素点其像素值赋值为1,小于自适应阈值的像素点其像素值赋值为0。
(5) 采用连通域识别方法[7]对二值化处理后的图像中连通域进行分析,并对各个连通域的包围盒进行识别(图11)。
2.2水位分析计算
定位了图像中的水位刻度之后,根据图像中已知水位的刻度,以及图像中露出水面以上刻度的形状特征来检测识别当前水位。图9摄像头拍摄图像范围内,位置最高的刻度顶部所对应的水位为1 879.00 m,记为Hmax。水面以上的刻度个数可通过识别出的连通域个数来确定,将水面以上的各个刻度按照刻度包围盒左下角点的y坐标从大到小进行排序,则当前水位的计算公式如下:
H≥Hmax-1,n≤1H=Hmax-(n-1)-排序序号为1的刻度包围盒面积排序序号为2的刻度包围盒面积,n>1式中:n为水面以上刻度连通域包围盒个数。
根据上述公式计算,水位识别结果如图12所示。
3结 语
本文运用改进的运动目标识别方法对水电站现场视频监控系统获取的视频图像进行分析,开发了现场人员安全帽佩戴、水位变化等识别监控程序,使得水电站现场管理工作更加安全、高效和智能。
同时,未来值得进一步加强无人机、移动互联、机器人等技术与图像识别技术在水电站现场安全管理中的深化应用,多重手段、全方位保障现场生产安全。
参考文献:
[1]阳恩慧,张傲南,丁世海,等.基于三维光影模型的公路路面裂缝自动识别算法[J].西南交通大学学报,2017,52(2):288-294.
[2]崔鹏,张雪婷.一种基于块共同特征值的人脸识别方法[J].计算机工程与科学,2017,39(4):777-784.
[3]邓文浩,唐立才,张南锋,等.基于改进的帧差法和Mean-shift结合的运动目标自动检测与跟踪[J].现代电子技术,2016,39(4):108-111.
[4]陈添丁,胡鉴,吴涤.稀疏光流快速计算的动态目标检测与跟踪[J].中国图像图形学报,2013,18(12):1593-1600.
[5]党晓军,尹俊文.一种基于模板匹配的运动目标跟踪方法[J].计算机工程与应用,2010,46(5):173-176.
[6]张帆,彭中伟,蒙水金.基于自适应阈值的改进Canny边缘检测方法[J].计算机应用,2012,32(8):2296-2298.
[7]马江林,赵忠明,孟瑜,等.海量遥感分类图连通域标记方法[J].计算机工程,2008,34(1):262-264.
(编辑:胡旭东)