基于YOLO的井下人员速度测量方法研究
2022-02-26窦晓熠
付 燕,窦晓熠,叶 鸥
(西安科技大学 计算机科学与技术学院,陕西 西安 710054)
煤矿安全生产一直是煤炭行业的热点话题,其重点问题是井下工作场所存在随时随机的危险性[1],导致这些危险性存在的主要原因是井下大量生产设备需要靠工作人员判断状态并且重复启停操作。由于煤矿从业人员来源结构复杂,人员众多,自我约束力差异较大,面对井下作业场所设备多、操作枯燥、重复繁重的工作,作业人员容易懈怠出错[2]。如果监管不到位,可能会出现搭乘皮带、追赶猴车、不检查或漏检设备等“三违”行为[3]。因此,如何利用监控视频识别水泵房等井下场景中的人员巡检是否按时、规范作业,实现自动化监督管理,对于煤矿安全生产有十分重要的意义。
基于监控视频对目标速度的估算,是通过对井下工作人员的状态实时判断和智能感知,从而实现人员作业监督的方法。目前针对视频移动目标的测速大致分为两类方法,一类是通过算法模型提取图像特征点,并由特征点匹配和定位目标,进而根据已知信息计算目标速度[4]。例如,文献[5]使用Harris角点检测视频连续帧,在所有的角点匹配对中选位移最长的匹配对,作为实际移动距离的最近似测量。该方法不受外设条件的限制,但需要人为选择和匹配特征点。文献[6]利用灰度约束光流计算车辆的光流值,根据光流值计算速度。该方法具有良好的鲁棒性,但是不能满足实时性。文献[7]利用帧差法检测运动小球的速度,准确性较好,但只能计算水平和垂直速度。文献[8]对压缩后的图像采用改进的光流法进行计算,将光流速度转换为血液的实际移动速度,但实验只针对光照强度和运动速度变化较大的情况。此外,另一类目标测速方法是基于视频场景道路摄像机的标定方法,通过寻找场景中明显的几何特征对摄像机进行标定,然后利用已标定的特征点完成速度测量。例如,文献[9]提出基于已知沿路距离和车道标记特征的标定方法,估计车辆运动区间。该方法可以应用于各种复杂天气场景,实时性较好,但必须存在可标定的车道。文献[10]提出基于参考图像与路面信息的监控摄像机标定方法,计算简单精确,但需要依赖车道标线的间距和一条垂直于车道标线的线段。文献[11]采用基于级联的霍夫变换和平行坐标的方法来自动标定车辆,避免了对场景的实际测量,但局限性是被检测目标必须有很大一部分运动近似于直线。总的来说,上述两类方法缺少通过自主学习方式,智能化自动检测跟踪目标,并且人为设计的特征不够稳定,针对煤矿井下具有复杂背景的视频数据,场景中很难找到较明显的几何特征,较难明确可参考的车道边缘线、任意平行线或垂直线,不适用于井下视频监控中的人员测速。
为此,本文针对煤矿井下视频数据,提出一种井下人员速度检测方法。该方法首先采用深度学习目标检测算法对目标进行持续定位跟踪;其次通过确定图像消失点,利用相似三角形原理估算目标速度,实现对人员巡检操作的实时自动化感知。本文所提方法与基于标定的方法相比,可以不受场景中几何因素的影响,利用深度学习算法模型提高捕捉目标特征的准确度,进而更加准确的实现对煤矿井下人员移动速度的测量。
本文的创新点包括:①提出基于深度学习算法得到目标边界框特征点计算图像消失点的方法;②提出基于消失点建立不依赖场景标定的三角形模型用于速度的估算。该方法主要解决无明显几何特征的井下场景中运动目标速度测量的问题。
1 井下工作人员速度检测
1.1 主要思想
井下水泵房的巡检人员主要负责掌握设备运行情况,及时发现缺陷,保证设备的正常运行[12]。值班人员必须固定时间巡视,巡视时应遵守规定的路线,不得遗漏。当工作人员在规定时间内速度基本保持不变的次数与要求查看设备次数一致时,属于正常工作状态;当其速度持续不断地变化,代表该人员持续移动,可以判断为没有检查设备,违反了巡检制度,存在安全风险。
因此,本文基于深度学习目标检测,提出速度估算方法监测工作人员的状态。该方法通过查看数据图的波谷,反应目标在这一时间段内的停留次数,且停留时间是否足够完成巡检工作。
针对运动目标实时速度测量的主要思想如图1所示,文中对输入的视频图像序列,采用YOLOv3算法检测该目标的边界框,对相邻帧的边界框结合三维世界坐标系与二维图像坐标系的转换思想计算出图像消失点,然后由消失点建立的三角形模型对相邻帧中运动目标的速度进行估算,最后分析实验数据结果。
图1 本文方法的主要思想
1.2 YOLOv3目标检测
为实现井下人员的实时测速,首先需要实时检测视频中的井下人员。在目标检测算法中,比起方向梯度直方图HOG(Histogram of Oriented Gradient)[13]、尺度不变特征转换SIFT(Scale-invariant Feature Transform)[14]等传统的目标检测方法,深度学习算法的速度、准确性相对较高,这类算法包括利用RPN网络对候选区进行推荐的Faster RCNN[15]系列网络和直接回归目标框位置的YOLO[16]系列网络和SSD[17]网络等。由于YOLO系列网络直接在特征图(Feature Map)上回归边界框,减少了大量生成候选框的时间,且YOLOv3采用的Darknet-53网络相比v1和v2缩小和加深了网络结构[18],从而在准确度和实时性上都得到了提高。因此,本文采用YOLOv3对井下移动目标进行检测。
YOLOv3是端到端的CNN运算,强调算法实时性[19]。它将输入图像分成若干网格,每个网格预测出若干边界框,每个边界框包含x、y、w、h四个坐标和置信度五个基本参数,置信度是用来判断此边界框是否含有物体。
YOLOv3主要采用DarkNet-53网络进行多尺度特征融合,通过K-means聚类方法对边框做聚类分析,得到的先验框(Anchor Box)进行目标性评分,使用非极大值抑制(Non-maximum Suppression,NMS)和目标置信度阈值判断这块位置是目标的可能性大小,最后针对评分最高的先验框,采用边框回归的方法直接预测出中心点相对于网格左上角坐标的偏移量。
边框回归如图2所示,细虚线框平移到粗虚线框,然后进行尺度缩放调整到实线真实框,Gx、Gy、Gw、Gh和Px、Py、Pw、Ph分别是真实框和先验框在特征图上的中心点坐标值以及宽和高。
图2 边框回归
式中,Cx、Cy是网格单元左上角坐标,网络实际学习的是tx、ty、tw、th四个坐标,最终得到的边框坐标值是bx、by、bw和bh,即真实框的位置和大小,是最终需要的预测输出坐标。其中σ(·)是指Sigmoid函数归一化,确保目标中心处于执行预测的网络单元中,防止过度偏移。
1.3 基于YOLOv3边界框的消失点计算
YOLOv3算法得到每帧目标边界框的特征点坐标,用于计算消失点并建立三角形模型。消失点可以看作空间中两条平行线在无穷远处的相交点投影在图像上所成的像点,如图3所示。
图3 世界坐标系中的消失点
首先在两帧图像对应的空间坐标系中寻找平行线,一般情况下,无论移动距离是多少,同一个目标在空间坐标系中的高度是保持不变的。取同一目标边界框的任意两个特征点在视频某两帧中对应的坐标,分别连接同一特征对应的坐标点,两点连线的延长线在空间坐标系中一定呈平行状态,然后将其转换至二维图像坐标系中,目标高度对应两帧图像中目标框的高度,边界框左上角和右下角可以看作特征点。因此,两帧图像中目标左上角相连的延长线和目标右下角相连的延长线可汇聚到消失点。
本文采用YOLOv3对每个视频序列实现了目标检测,并计算目标的位置和大小。已知每帧图像目标框左上角坐标点(bx,by),目标框右下角坐标点(qx,qy)。设第i帧目标框左上角坐标点为(bxi,byi),目标框右下角坐标为(qxi,qyi),第j帧目标框左上角和右下角坐标点分别为(bxj,byj)、(qxj,qyj),将两帧图像中对应点连接得出两条在空间坐标系中的平行线,两条平行线模型如式(2)。
由于两点确定一条直线,将已知点分别带入直线方程,可求出k值和d值,最后联立两个直线方程求出相交点(x0,y0),即得到所需的消失点。
1.4 基于消失点建立三角形模型测量速度
基于目标边界框及消失点建立不依赖场景标定的三角形模型并测量目标速度,如图4所示。坐标系中存在两个矩形框,分别表示同一个目标在视频前后帧中被检测到的位置边界框,A点和B点是边界框对应的右下角点。点Q表示图像消失点。
图4 速度计算方法
由目标检测已知A点和B点坐标,由消失点计算方法可以计算出Q点的坐标,从而可以知道直线QD和直线BD的长度。因此,由式(3)可得直线QB长度:
|QB|2=|QD|2+|BD|2
(3)
由相似三角形原理可知:
ΔQAC~ΔQBD
(4)
因此,线段QA可由QB以及已知的直线QC、QD表示为:
随着运动目标框右下角位置从B移动到A,运动目标的移动距离可用|AB|表示,帧数用f表示。根据速度公式,运动目标的实时运动速度即可由式(6)求出。
在实际应用中,一秒内行人移动距离有限,在相邻帧中边界框的差异甚小。速度的测量基于消失点的计算,若移动距离十分微小,则消失点的值不可避免的会出现不存在或者无法找到的情况,从而导致速度测量异常或不存在。因此,提出两种解决该问题的方法。第一种方法是取相差较远的两帧代替相邻帧测量速度,避免两帧差距过小导致的问题;第二种方法是对视频每n帧内测量出的数据相加取平均值,缩小误差,如式(7),从而得到可能与实际目标移动速度更贴合的速度数据。
2 实验与分析
在某煤矿井下实际的监控视频上评估了上述方法,以验证本文算法的性能。实验基于Keras2.2深度学习框架实现,使用NVIDIA TITANXp GPU,Ubuntu16.04,64位操作系统计算。
2.1 解决消失点问题的方法有效性
本文所提的速度测量方法,是基于边界框特征点求图像消失点,上一节针对消失点不存在或无法找到的问题,提出了两种解决方法,为验证其有效性,做以下实验。
实验均使用本文提出的三角形模型估算速度方法,在一段目标较平稳移动的煤矿井下监控视频中进行实验,对相邻帧测量的速度进行一系列的处理,得到的对比效果如图5所示。方法一取不做处理的原始速度数据,方法二取第n帧与n+10帧隔帧测量速度的数据,方法三取每10帧相加求平均值的数据,方法四取每25帧相加求平均值的数据。
图5 不同方法处理速度数据
分析图5中的数据,方法一由于相邻帧相差甚小,边界框不太稳定,数据上下波动较大,会出现波动偏大和剧烈的情况。方法二由于帧数相差过远,消失点的值出现了过度偏移的情况,因此,数据也不理想。而方法三和四通过求平均值的方法,得出了与原始数据趋势相似,波动较稳定的数据,相比之下方法四的数据更稳定,更能体现视频中实际目标的移动趋势和状态,因此之后的实验均使用方法四每25帧相加求平均值的数据。
2.2 验证速度测量方法的可靠性
由验证测量出的目标速度数据是否符合实际视频中的速度规律,可以判断提出的数学三角形模型估算速度的方法是否可靠。如果测量出的数据与实际相符,则可以认为该方法具有可靠性。
本文将一段工作人员巡检的视频做2倍速加速处理,分别截取原视频和已加速处理视频中工作人员移动距离相同的两个片段,如图6(a)、6(b)所示,且2倍速视频的时间比原视频少一半。
图6 视频片段帧
在确保移动目标所处环境相同,移动距离相同的情况下,使用本文估算速度的方法对两段视频进行测量,结果如图7所示。图7(a)的虚线代表原视频中工作人员移动速度趋势,实线代表加速处理过的视频中工作人员移动速度趋势。
图7 两段视频目标速度对比
从图7中可以分析出:首先,实线横坐标时间序列比虚线的时间序列少一半,即由于目标移动距离相同,二倍速的视频时间会短一半;其次,虽然实线数据少,但是虚线和实线两条曲线整体的趋势是大致相同的,符合在同一视频中检测的事实;最后,从图中可以明显看出实线的值更高,即加速视频的目标速度更快,也与事实一致且正确。
根据以上的实验结果和数据分析,验证了本文提出的测量速度的方法是有效且可靠的。
2.3 巡检人员状态检测
本文所提方法可以根据测量的速度数据波动来判断移动目标是否存在异常行为。实验验证如下:准备不同工作人员在同一井下水泵房巡检的两段视频数据。其中,第一段视频中工作人员在固定时间内分别仔细检查了四次设备,符合井下安全规范的操作;第二段视频中工作人员在巡检过程中移动速度较快,只仔细检查了两次设备,其余两次检查设备停留时间较短,可以判断为漏检和不认真检查的非正常操作。
对以上两段视频使用本文方法测量速度,测量结果如图8所示,图8中虚线代表第一段视频的测量结果,实线代表第二段视频的测量结果。
图8 巡检人员速度数据异常分析
从图8中可以看出:图8(a)异常巡检操作的速度数据相对较大,图8(b)和图8(c)的两条曲线都有四个明显的“波谷期”,即检查设备的停留期,图8(b)的四个“波谷”都持续了较长时间,而图8(c)的前两个“波谷”十分短暂。因此可以分析出:第一段视频中工作人员巡检符合规定,速度数据正常,持续时间较久,速度较慢,有符合规定的检查设备停留次数,且停留时间较长;而第二段视频中工作人员巡检不符合规定,速度数据异常,数据整体相对偏大,巡检时间短,移动速度快,检查设备的停留时间不足以完成巡检任务。
从以上实验数据得出结论,本文所提方法可以有效地检测井下水泵房工作人员的巡检状况,准确监督其是否按规定时间巡检,且巡检时是否按照规定认真地检查了设备。
3 结 语
本文提出一种基于深度学习目标检测算法计算图像消失点并建立不依赖场景标定的三角形模型,用于估算目标的实时移动速度。该方法采用了YOLOv3目标检测算法对视频移动目标进行动态区域提取和边界框预测,能够实时较准确地检测到目标,在根据边界框特征计算图像消失点时,解决了消失点不存在或无法找到的问题,进而结合消失点在不依赖任何场景标定的情况下建立三角形模型。在煤矿井下水泵房监控视频数据上使用该方法进行实验,实验结果表明,所测量的速度数据具有一定的有效性和可靠性,能够判断视频中的工作人员是否按规定时间和路线进行了认真地巡检,对煤矿安全生产监督管理十分有意义。由于资源条件不足,本文采用的煤矿数据非公共数据集,在后续工作中,将实现根据移动目标的步态、姿势等属性检测和跟踪目标,完善智能化监控系统,使其能更广泛的应用于煤矿的安全生产。