APP下载

基于计算机视觉技术的施工机械操作员疲劳作业检测方法

2021-07-29张金月刘相池

土木建筑工程信息技术 2021年3期
关键词:操作员阈值状态

崔 兵 张金月 刘相池

(1.天津大学 管理与经济学部,天津 300072; 2.天津旭辉企业管理有限公司有限公司,天津 300041)

引言

建筑施工行业一直被认为是高危行业,随着生产力的进步,各类施工机械(特别是大型机械)在建筑工程中的应用越来越普遍,工程机械的应用,在提高建筑业生产效率的同时,也带来了诸多安全问题。根据住建部安全事故情况通报,大量工程安全事故源于施工机械的安全问题,仅2019年就发生了郑州市“8·28”塔吊倒塌事故等6起较大施工机械安全事故。因此,施工机械的安全作业管理至关重要。

施工机械安全作业管理可以分为机械本身的安全维护和相关人员的安全操作两部分。关于施工机械本身的安全问题,国内外学者从完善体制、统一维护、合理调配等方面提出了诸多解决方案。而相关人员的安全管理,则是施工机械安全管理的重点和难点。人的安全管理很难量化,因此在实际生产中,相关人员的安全作业管理在很大程度上依赖于岗前安全培训和安全操作意识的培养。随着各种计算机信息技术的进步,越来越多的学者开始探索将计算机信息技术应用于施工安全管理,通过对相关人员操作过程的监督与评价,实现安全作业状态的量化评价,弥补规章制度难以量化和时效性差的问题。

本文提出了一种基于计算机视觉(Computer Vision, CV)技术的人员疲劳程度检测方法,通过识别工程机械操作人员面部特诊,判断其疲劳状态和程度,进而支持采用相应的应对措施。

1 传统的疲劳检测方法

1.1 问卷量表法

现有的疲劳评价量表有很多种类,各种量表之间主要存在以下3点差异:适用对象的不同(健康人群或患病人群); 对疲劳理解的深度(一维或多维); 量表的研究内容(疲劳的程度或疲劳的影响)[1]。根据施工机械操作员的特点,在工程安全管理领域,多采用适用于健康人群的、具有多维结构的、研究疲劳的程度以及表现的量表。Zhang等[2]开发了美国建筑工人疲劳评估量表(FASCW,Fatigue Assessment Scale for U.S. Construction Workers),这是一种简短的二维量表,在实验中表现出了良好的信度和效度。张铭宗等[3]开发了适用于中国建筑工人的疲劳评价量表,量表仅包含10个题项,完成时间大多在1分钟内,并在广东和北京两地工人中进行了检验。

现有研究中的量表评价方法表现出以下优势:

(1)技术方案简单,不依赖于任何的设备,几乎适用于所有研究对象的任何工作场景;

(2)针对不同的应用场景可以开发个性化的问卷和量表,评价指标具有很强的针对性;

(3)合理的问卷设置能够保证检测结果的信度和效度。

然而量表评价法的研究也存在很多不足,主要体现在时效性差和主观性强,量表评价法无法做到实时检测与评价。首先,现有研究都是采取每隔一段时间要求工人停止工作,接受量表调查的方式,这样只能得到工人某一时间点的疲劳状态,也无法及时发现状态变化。其次,检测结果存在较强的主观性。无论是问卷设置还是工人自我感知评价,都十分依赖研究者和被测者的主观意愿,难以从定量的角度对评价结论的可靠性进行判断。

1.2 生理指标法

医学研究已经证明,生理指标是一种稳定可靠的疲劳判断依据,具体包括脑电、心率、肌电、体温等。早期的研究大多基于心率测量来判断疲劳,然而这种方式的准确率十分有限,仅为59%[4]。后续的研究证明,脑电信号或者脑电信号与其他生理信号的综合指标是更为准确的疲劳判定方式。

曾友雯等[5]研究了脑电节律能量与疲劳程度的关系,其研究指出随着测试时间的延长,抑制大脑皮层活动的脑电波能量也在线性增长,这表明检测对象正在变得更加疲劳。Tsai[6]提出了一种通过检测工人的脑电节律和心率变异性来检测工人疲劳状态的方法,该方法可以实时确定工人疲劳程度,并在施工现场同时检测相当数量的工人,但是该方案在检测方法的敏感性、设备佩戴的舒适性上仍存在一些问题。卢章平等[7]综合了脑电和心电指标,提出一个明确的疲劳综合生理指标计算公式,但是其接触式的检测方法影响了操作员的正常操作。

总结来看,基于生理信号的疲劳检测研究有着明确的生理和医学研究基础,其评价方法客观可靠,但同时也存在检测设备复杂昂贵、设备影响工人正常工作的缺陷。

1.3 面部信号法

人的面部可以传达出相当丰富的、有价值的信息,例如眨眼、打哈欠、视线方向、面部表情等等。相比于生理信号的检测,面部检测方式有着设备非接触、检测成本低廉的优势,但同时也存在着判断指标及其阈值不够客观的缺陷。目前学术界十分重视基于操作员面部检测的疲劳检测方案,国内外学者也提出了很多面部检测的技术方案和综合的判断指标。

He等[8]使用谷歌眼镜的接近传感器监测眨眼频率,开发并验证了基于谷歌眼镜的疲劳检测系统。这种方法成本较低,但该方法仍存在着判断标准模糊、识别精度低等缺陷。Nie等[9]提取出闭眼时间、闭眼率(PERCLOS)值、眨眼频率和眨眼次数四个指标,得到用于判断的疲劳阈值,即当闭眼时间为3.5s/min,PERCLOS值为6%,眨眼频率为0.4次/s时,实验对象疲劳明显。Ishimaru等[10]综合考虑了眨眼频率和头部状态,准确率达到了82%。该研究同时指出,从事不同类型的工作也会对眨眼频率产生影响。

文献中的基于面部检测的操作员疲劳检测方法有着实时、便捷、经济、非侵入接触的优势,但仍存在着算法不够稳定、结果不够准确、无法适用于复杂光线或操作员佩戴眼镜等情况的缺陷。

1.4 行为状态法

行为状态的含义十分广泛,它包含了操作员身体各个部位的动作以及其操作的施工机械的工作状态两个方面。具体来讲,操作员身体部位的异常动作包括间断的点头动作、颈部的频繁动作、手部的操作的迟钝与失误等; 施工机械的异常工作状态包括不按规定路线行驶、长时间没有任何操作指令输入等。这种基于行为状态的疲劳检测同样可以做到非侵入性实时检测; 但是其检测方法和施工机械的种类密切相关,检测指标需要根据机械类型针对性地进行研究,很难形成一个通用的检测方法[11]。

行为状态的检测一般作为疲劳状态判定的辅助因素,并且在机动车驾驶员的疲劳检测中已经得到了应用。一般来讲,当被检测对象处于疲劳状态时,其行为状态并不总会及时地反映出他的疲劳程度; 而当其行为状态已经表现出明显异常时,被测对象一定已经处于了严重的疲劳状态。这也是行为状态监测仅被用作辅助判断标准的原因之一。

2 基于CV技术的疲劳检测

2.1 系统框架

计算机视觉(CV)技术是通过计算机及其他设备对生物视觉进行模拟的一种新技术。其主要任务就是帮助计算机理解图片和视频,并从这些图像中提取有用的信息[12]。基于计算机视觉的施工机械操作员疲劳检测就是去检测操作员的面部信息,并判断其疲劳程度。具体来讲,就是通过摄像机拍摄机械操作员工作时的面部画面,计算机通过机器学习技术识别出其面部的各个部位,并理解相应的指标所代表的含义,进而判断操作员是否处于疲劳状态并做出相应的警告措施。因此,在施工机械操作员疲劳检测中应用计算机视觉技术有着操作便捷、反馈实时等特点。

本研究的技术框架如图1所示。通过安装在施工机械操作员前方的摄像头获得其面部图像的视频流,然后通过数据处理获得其疲劳状态的综合指标,然后根据综合指标判断疲劳等级,并根据疲劳等级采取相应措施。

图1 疲劳检测方法框架

本研究的技术关键是通过合理处理视频流数据得出判断疲劳状态的综合指标。该部分功能通过Python代码实现,主要包括图像灰度化处理、人脸特征点标定、左右眼EAR值计算、嘴部MAR值计算以及综合指标计算。

2.2 灰度化处理

检测算法将实时的监测视频转为视频文件流,然后循环读取文件流中的每一帧图像,并将彩色的图像转化为灰度图像,如图2所示。

图2 彩色图像和灰度化图像对比

进行灰度化视频流处理的原因有三点。首先,物体识别的关键因素是边缘梯度信息而非色彩。彩色图像中包含了大量的颜色信息,而颜色本身非常容易受到光照的影响,同一物体的RGB变化很大,而灰度化之后的图像丢失了颜色信息,完整保留了反映物体本质属性的梯度。其次,彩色图像的每个像素至少有R、G、B三个通道,而灰度化处理将单像素三通道转为一通道,极大地简化了矩阵维数,降低了算法的空间复杂度,提高了运算速度。第三,Python-opencv库中提供的绝大部分函数都只支持单通道的运算。

2.3 人脸特征点标定

人脸识别与检测有多种算法实现方式,例如支持向量机、神经网络方法、模板匹配算法等。本论文采用的是基于人脸特征点标定的dlib算法,dlib库提供了训练好的识别模型,可以识别人脸的68个特征点,其中包括了面部轮廓、眼睛、眉毛、鼻子以及嘴巴的特征点,如图3所示[13]。

从图3中可以看到左眼和右眼分别对应了6个特征点,嘴巴对应了20个特征点。本论文中的各个疲劳指标就是利用这些眼部和嘴部特征点计算得到。

图3 dlib模型的68个人脸特征点[13]

2.4 EAR与MAR值计算

眼睛的纵横比(Eye Aspect Ratio, EAR)[13]数值等于眼睛纵向界标与横向界标之间的欧氏距离比值,以左眼为例,其计算如式1所示,其中P代表人眼特征点,其下标表示图3中的特征点编号。右眼的EAR值计算同理。

图4记录了两次眨眼过程的EAR值的变化。当人眼睁开时,EAR值基本保持稳定; 当人眼闭合时,EAR迅速下降,理论上会接近于零; 当人眼再次睁开时,EAR值恢复到稳定的状态。EAR值的“稳定—突然下降—恢复”稳定的过程反映了人的一次眨眼全过程。因此,一个复杂图像处理问题被转化成了眼睛特征点之间距离的比例关系。

图4 睁眼与眨眼过程中的EAR值曲线

(1)

受限于算法标定的准确度,即使在没有眨眼的情况下,EAR数值仍然会发生明显的波动,如图4中的睁眼阶段。为了避免EAR数值波动引起的眨眼误判,当捕捉到连续2~6帧的EAR值低于某个EAR阈值时,才认为被测对象进入了眨眼状态,记录为一次眨眼。连续帧数和阈值都需要根据摄像设备进行确定。

连续帧数取决于摄像机的帧率。帧率越高的摄像机在一次眨眼过程中能捕捉到的低于阈值的帧数就越多,对检测对象是否眨眼的判定也就越准确; 而相反,如果对低帧率的摄像机选用较多的连续帧数判定,则会导致眨眼次数的漏报,影响检测精度。

考虑到每个人EAR阈值存在个体差异,本研究中以检测对象前30s的视频作为样本,计算其中每一帧的EAR值,统计得出EAR中位数。因为一个人眨眼的帧数一般不会超过总帧数的15%,中值一定反映的是睁眼状态下的EAR。考虑到睁眼状态下EAR的数值波动,本研究取0.8倍的EAR中值作为EAR阈值。

嘴巴纵横比(Mouth Aspect Ratio, MAR)的定义与EAR相似,其计算如式2所示,其中m代表人嘴特征点,其下标表示图3中的特征点编号。

(2)

和EAR指标相似,判断是否打哈欠的依据也是连续10~60帧的MAR值大于某个阈值。连续帧数的取值同样依据视频的帧率确定; 阈值的选取考虑个体差异,取为前30s的视频的MAR值中位数的1.5倍。

2.5 疲劳指标值计算

通过对EAR和MAR值的实时检测,计算出眨眼频率、平均眨眼时长、眼睑闭合时间百分比(P80)以及打哈欠频率四个指标,计算公式如下,其中各参数的含义如图5所示:

眨眼频率(Blink Frequency, BF)的计算如式3,其中,n为累计眨眼次数。同理可得打哈欠频率(Yawn Frequency, YF)。

(3)

平均眨眼时长(Average Blink Time, ABT)的计算如式4。

(4)

眼睑闭合时间百分比(Percentage of Eyelid Closure time,PERCLOS)的计算如式5。

(5)

图5中的EAR阈值取前30s视频中EAR中值的0.8倍; PERCLOS阈值计算如式6。

图5 疲劳指标计算原理

p=e+0.2*(m-e)

(6)

其中p为PERCLOS阈值,e为30s后的前三次眨眼过程中EAR最小值的平均数,m为第0s至30s后的第三次眨眼结束,这段时间内的EAR中值。

2.6 指标综合

在计算出眨眼频率BF、平均眨眼时常ABT、眼睑闭合时间百分比PERCLOS和打哈欠频率YF四个指标后,为了简化疲劳判断准则,需要将四个指标融合为一个综合指标。

归一化处理是对数据的数值范围进行特定缩放,但不改变其数据分布的一种线性特征变换,计算公式如下:

(7)

其中,xi即为第i个待处理的数据指标,xmax和xmin即为该指标能取到的最大值和最小值。根据文献调查的结果,确定指标的最大值和最小值如表1所示。为了控制数据极值分布,如果某一时刻的指标值xi>xmax或xi

表1 指标最大值和最小值

归一化处理之后的数据都是无量纲化的小数,并且集中在[0,1]区间内。因此,不同单位的数据对目标函数的影响程度是一致的,各指标之间就可以进行比较或加权。

根据施工机械操作员的疲劳特点和各疲劳指标的可靠程度为各指标分配不同的权重。PERCLOS是行业内公认可靠的疲劳检测指标,权重定为1[14]; 由于视觉疲劳对施工机械操作员的影响较为微弱[15],ABT指标权重定为0.8; 而眨眼频率过低可能代表闭眼、发呆或高度警惕,过高可能代表紧张焦虑、疲倦困乏或应激反应[16,17],因此其权重定为0.2; 由于施工机械操作员的心理疲劳、认知能力疲劳更为显著[18],因此相比于眨眼频率,打哈欠频率更能反映疲劳状态,权重定为0.5。

因此,综合疲劳指标计算公式为:

(8)

综合疲劳指标X的取值同样也在[0,1]区间内,根据不同情景对应的综合疲劳指标的取值,可以将疲劳分为5个等级,综合疲劳指标越高代表越疲劳,如表2所示。

表2 疲劳等级

2.7 应对措施

在临界状态和轻度疲劳状态下,应对措施的确还需要考虑疲劳指标的持续时间。首先,临界状态和轻度疲劳状态下操作员的疲劳程度并不高,对其工作安全性的影响并不明显。因此从实用性的角度出发,为操作员设定一定的缓冲时间是必要的。其次,这两种状态下的判定结果比较模糊,某一项指标数值的波动就可能导致综合指标位于这个区间。因此持续时间的设定也是为了提高系统的容错率。

而对于完全清醒、中度疲劳以及严重疲劳状态,则不考虑持续时间的因素。因为这三种状态下的判定结果非常明确,某一指标的波动绝不会导致综合指标取值进入这个区间。也就是说,中度疲劳以及严重疲劳状态一定反映了十分危险的疲劳状态,从实时判定、及时止损的角度出发,这种情况下无需设置缓冲时间就可以直接采取较为严厉的应对措施。

不同综合疲劳指标和持续时间下的应对措施如图6所示。无需操作、提醒、警告、报警这四种应对措施对应的疲劳程度依次增大。提醒措施可为播放语音提示音,警告措施可为持续播放尖锐的警笛声,报警措施可为播放警笛声,并立即通知该机械附近的所有操作员和施工安全责任人。

图6 不同综合指标数值和持续时间下的应对措施

在临界状态下持续30s以上,则采取提醒措施。如果持续短于30s,则认为系统发生误判或操作员成功进行了自我调节,系统无需采取任何措施。在轻度疲劳状态下持续15s以下,无需进行操作; 持续45s以上,进行警告; 介于15s至45s之间,则采取提醒措施。而对于中度疲劳状态,直接采取警告措施。对于严重疲劳状态,直接采取报警措施。

3 实验验证

3.1 实验设计

本实验的研究目的是评价算法检测的准确性。实验方法为,先录制高帧率视频(Canon M50微单相机录制1920×1080分辨率、59.94帧/秒的视频),再在本地计算机上运行疲劳检测算法。这样设计的依据有两点。首先,四个疲劳指标的数值都涉及时间参数的计算,而高帧率的视频为检测算法提供了足够细致的运动过程划分,使得算法能够准确地计算两点之间的时间间隔。其次,受限于计算机的性能,一帧画面的计算耗时大于一帧画面的持续时间,无法实现实时的高帧率视频检测。

研究情景是同一实验对象的不同疲劳程度,因此采用控制变量、对比实验的方式进行研究,即对比同一对象的不同疲劳程度时控制光线、角度等无关的环境变量。具体来说,每段视频都在光线均匀的环境中,采用正面、平视的角度拍摄,检测对象不佩戴眼镜,并且视频中必须包含完整的、无任何遮挡的面部画面,视频时长均为3min,视频具体内容如下。

视频1:模拟充分休息的操作员正常工作。3分钟全都处于清醒、自然、注意力集中的状态。

视频2:模拟操作员正常的疲劳积累,并通过措施以避免严重疲劳状态的发生。

视频3:模拟不加干预施工机械操作员的疲劳积累,最终进入严重疲劳状态。

为了排除随机因素的影响,增强数据的说服力,视频1-3均需要在不同环境中重复录制a、b、c三个版本,并且每个版本的环境因素必须保持一致(即1a与1b环境不同,但是1a、2a和3a的环境一致)。其中a版本为晚上9-10点室内录制,白色日光灯照明; b版本为上午9-10点室内录制,自然阳光照明; c版本为下午4-5点室外录制,避免阳光直射。

3.2 实验过程

按照实验设计的方案,根据视频内容与视频环境进行交查组合后,共录制9段视频进行检测,即为视频1a、1b、1c、2a、2b、2c、3a、3b和3c。图7为9段视频的典型截图。

图7 9段视频检测过程截图

3.3 实验结果与分析

利用python-matplotlib.pyplot库分别绘制9段视频的综合疲劳指标曲线,如图8所示。不同视频以颜色作区分,视频1为蓝色,视频2为绿色,视频3为红色。

视频1是模拟充分休息的操作员清醒、自然、注意力集中地工作,三个版本的综合疲劳指标变化曲线如图8(a)-(c)所示。分析曲线的变化趋势,可以得到两点结论。首先,三个版本的综合疲劳指标值均基本稳定在0~0.1之间,对应的疲劳等级为十分清醒,无需采取任何应对措施。因此在这种情景下,检测算法能够正确地反映实际情况。其次,第30s开始检测时,图8(a)、(b)都出现了比较剧烈的波动,随着时间推移曲线逐渐趋向平稳。这是因为指标是以累计时间做计算的,在检测的初始阶段累计时间跨度很小,一次眨眼就会导致各个指标值剧烈变化; 而随着时间的延长,一次眨眼产生的影响被“稀释”了,指标趋于平稳。

视频2是模拟操作员正常的疲劳积累,并在第2分钟末进行提醒干预,第3分钟开始恢复清醒状态,三个版本的综合疲劳指标变化曲线如图8(d)-(f)所示。曲线的变化趋势与图8(a)-(c)有明显的不同。从整体上看,三条曲线的综合疲劳指标值均呈现平稳→上升→下降的趋势,这与视频2中清醒→疲劳积累→介入干预恢复清醒的过程相契合。在60s至120s之间是视频2的疲劳积累过程,三条曲线上的这一阶段整体上呈现上升趋势,局部表现出“快速增长,平稳下降”的特点。这仍然是时间积累的稀释作用的体现。

图8 9段视频的综合疲劳指标变化曲线

视频3是模拟操作员不加干预的疲劳积累,最终进入严重疲劳状态,三个版本的综合疲劳指标变化曲线如图8(g)-(i)所示。曲线的形状与视频1、2的曲线明显不同。从整体上看,前一分钟曲线保持平稳,这对应了清醒状态; 第二分钟开始疲劳综合指标曲线呈现上升趋势,最终综合指标值均超过了0.5,对应严重疲劳状态。因此在这种情景下,检测算法的综合疲劳指标也能够正确地反映实际情况。

综合疲劳指标计算所选取的四个疲劳指标中有三个眼部状态指标和一个嘴部状态指标,而疲劳检测的基础是对眼部与嘴部状态的判定。通过统计9段视频中对眼部和嘴部状态(眨眼与打哈欠)的判定情况,可以反映出本系统疲劳检测的准确程度。

以眨眼状态检测为例,误检是指检测算法记录的结果出现错误,即算法记录为一次眨眼但实际上没有眨眼; 漏检是指检测算法少记录了一次眨眼,即实际上进行了眨眼但算法没有进行记录; 检测正确率是指检测算法正确判断的次数占记录次数的百分比; 漏检率是指漏检次数占实际眨眼次数的百分比。因此各指标之间的关系如下:

实际次数=记录次数-误检次数+漏检次数

检测正确率=(记录次数-误检次数)/记录次数

漏检率=漏检次数/实际眨眼次数

以眨眼状态检测为例,其检测准确性统计如表3所示。由表3可知,算法的眨眼检测的正确率在95%左右,漏检率在3%左右。

表3 眨眼状态检测结果

根据误判和漏判发生时检测视频中人眼的状态以及EAR的实时数据变化,总结分析误检和漏检发生的原因如下。

眨眼误判主要发生在打哈欠或者眯眼过程中,由于人在打哈欠时通常会伴随有眯眼或者闭眼的动作,这一过程中EAR值会维持在阈值以下。并且由于打哈欠过程中人头部的摆动或者一些其他的偶然因素,EAR值往往会发生突然的波动,如图9所示,这时候算法就会将这一过程误判为两次眨眼。

图9 误判过程EAR变化示意图

而眨眼漏判的原因主要有两点。首先,当两次眨眼快速连续发生,以至于第一次眨眼的眼睑还没有来得及完全睁开,EAR值仍然低于阈值,就紧接着进行了第二次眨眼,如图10(a)所示。这种情况下算法判定为发生了一次眨眼,而实际则眨了两次。其次,打哈欠时EAR值往往会维持在阈值以下,这一段时间内即使真正眨眼,EAR值很有可能仍然在低于阈值的范围内变化,如图10(b)所示。因此,这一过程中无论实际眨了几次眼,都会被记录为一次眨眼,也就出现了漏判。

图10 漏判过程EAR变化示意图

4 结语

本论文构建了一套基于计算机视觉技术的施工机械操作员疲劳作业检测系统。采用基于人脸特征点标定的dlib算法,识别人脸的68个特征点,提取眼睛和嘴巴区域的特征点计算出实时EAR和MAR值。考虑个体差异的影响,采用前30s的视频样本计算出各个疲劳指标对应的EAR和MAR的阈值。然后计算出眨眼频率、平均眨眼时长、PERCLOS以及哈欠频率的实时指标值,并使用归一化方法进行指标融合,得到一个综合疲劳指标。依据综合疲劳指标的取值和持续时间,采取不同程度的疲劳应对措施。

本论文通过实验评价了该检测系统在不同疲劳状态下的工作准确性。通过对三种情景下的九段高帧率视频进行疲劳检测,可以得出,本研究提出的综合疲劳指标能够反映不同情境下检测对象疲劳状态的变化趋势,其眨眼状态判定的正确率在95%左右,可以有效保证疲劳状态的识别。同时,从EAR曲线的角度分析了视频中漏检和误检的原因。本研究的结论对研发工程机械操作员疲劳预警装备具有重要价值。

猜你喜欢

操作员阈值状态
美空军特种战术操作员正在进行军事自由落体跳伞
土石坝坝体失稳破坏降水阈值的确定方法
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
自动控制逻辑对电厂运行操作员的影响
浅谈基于H3C云计算管理平台的系统管理功能
状态联想
生命的另一种状态
无人机操作员的选用机制研究
坚持是成功前的状态
辽宁强对流天气物理量阈值探索统计分析