基于主动式人体姿态识别的岸边集装箱起重机司机危险操作预警

2022-03-06 08:40刘逸康熊新红林培元杨晶明
起重运输机械 2022年24期
关键词:姿态司机危险

刘逸康 熊新红,, 林培元 杨晶明 冯 伟

1武汉理工大学交通与物流工程学院 武汉 430063 2美利林科技有限公司 黄石 435000 3中国科学院深圳先进技术研究院 深圳 518055

0 引言

随着我国经济的快速发展,进出口贸易正在逐年增加,对码头吞吐能力和装卸效率的要求也大大提高。岸边集装箱起重机(以下简称岸桥)是港口最大的建设投资部分,是关乎港口装卸效率的关键设备[1]。在码头岸桥生产作业事故中,有57%以上与人的因素有关[2],且这种比例有明显上升的趋势。因此,保证岸桥司机的规范化操作,避免不规范操作行为的发生,对于提高港口作业效率具有重要意义。

当前,基于司机行为的安全管理主要通过事前操作培训、现场巡查、视频监控等方法,干预并约束工人进行安全的生产操作。赵勇等[3]建立岸桥司机基本动作序列和HCR模型提高岸桥司机的可靠性,进而提高生产效率;施笑畏等[4]利用模糊算法构建桥吊司机操作行为规范库,为桥吊司机驾驶员培训提供重要依据;倪丽莎等[5]采用VC嵌入OpenGL技术,设计了起重机安全监管信息系统,为作业现场人与物的精细管理提供依据。

然而,现场安全巡查通常需要安全员或技术员长时间对工人作业行为进行观察,费时费力,且观察区域有限,不免出现遗漏的情况。此外,虽然视频监控覆盖区域较大,但也需要对视频进行人工判断。因此,本文提出了一种基于主动式人体姿态识别的集装箱起重机司机危险操作预警方法,能对司机生产行为进行自动识别,实时监控作业安全并给出判断意见,指导司机进行安全和合规生产。

1 岸桥司机姿态识别理论

1.1 岸桥司机姿态估计

人体姿态估计[6]方面的研究实际细分为2部分,单人姿态估计和多人姿态估计。人体姿态估计较为静态概念,在单帧图像的基础上对人体预设的各关节做预测,得到1组预测的坐标点集,最终在原图中进行可视化操作。本文聚焦于单人人体姿态估计,具体为集装箱岸桥司机作业场景下的单工人作业姿态估计,输入为单帧RGB图像,喂送进姿态预测网络,基于工人各个肢体的协作是否符合标准[7],给出各个关节的预测坐标,再与人工标注的真实坐标进行比对,计算损失函数用以衡量预测的准确度。

1.2 主动式学习判别算法

当前运用于岸桥司机作业的样本数据集较少,而在新的作业场景下重新制作一个新的数据集需经过数据采集、数据清洗处理、数据筛选、数据标注等步骤,这期间每一个步骤都需要耗费大量的人力物力财力,成本过于高昂[7]。主动式学习(Active Learning)很好地解决了这一难题,其致力于研究如何通过标记尽可能少的样本来获得尽可能多的性能提升,契合当前岸桥司机作业的应用场景。

主动式学习采用基于池(Pool-based)的熵值袋查询算法(Entropy query-by-bagging)。基于池的判别方法会同时维护2个数据池,已标注池(Labeled Pool)和未标注池(Unlabeled Pool)。每次循环开始都会从未标注池中批量提交一定的数据到判别器中,选中最具信息量的数据进行标注,最后加入到已标注池中进行训练。同时,熵值袋查询算法的基本思路是使用可获得标记的样本集合训练一组分类器,以构成判别委员会,决定未标记池中数据的分类,选出最具信息量的数据。其中最具信息量的判别依据是投票熵[8]。

如图1所示,熵值袋查询算法先从初始已标注池中选取k个训练集,然后根据这些训练集训练出k个分类器,使用这些分类器对未标注池中的每一个数据进行分类标记,从而每一个样本都会有k个标签,使用这些标签来衡量某一样本的信息熵值[9]。

图1 熵值袋查询算法

投票熵为

所有分类器模型的概率值相加,即得到投票熵。当所有的分类模型对样本所属于的类别都相同时HBAG(xi)=0,说明此未标注的数据与已标注数据池中的数据高度相似,将它加入到已标注池中加以训练很可能不会对模型训练有正向帮助。投票熵HBAG(xi)越大,说明已有分类器之间的分歧越大,这类数据的不确定性就越大,将它标注好加入到已标注池内进入下轮训练则越能帮助模型优化。

1.3 司机姿态预测判别框架设计

主动式学习框架对于本文的人体姿态估计问题并非完美契合。作业场景下的危险预警需要第一时间作出判断,而运行单人体姿态估计网络的预测延迟为17帧左右,如果主动式学习框架的参数量过大,进一步大幅增加延迟,工人的生命安全就难以得到保障[10]。为此本文提出了一种基于池的主动式学习判别框架,节省了数据标注的成本,加快人体标注框架对于新场景的适应速度[8]。

图2描述了基于池的主动式学习框架流程。总体框架的输入为RGB图像,输出为人体关键节点的坐标集,一共有13个关键节点,还输出数据为已标注数据的概率值[11]。总体一共分为4个阶段。

图2 基于池的主动式学习框架

1)未标注池和已标注池中的数据一同输入到共享编码器中进行特征提取,同时提取2类数据的特征,共享编码器的处理思想与Open-pose模型中使用VGG的想法类似,将共享特征中提取到的特征进行卷积,得到1组不同尺度的特征值。

2)已标注数据的特征直接进入人体姿态网络,输出人体姿态预测结果(13个身体关键节点的坐标点集),然后进行可视化。

3)经过人体姿态检测网络提取进一步特征之后,已标注数据流在经过人体姿态预警预测模型判定动作危险等级,绿灯为安全,黄灯为警示,红灯为危险动作。

4)主动式判别器的输入同时含有未标注与已标注的数据流,输出所选数据是已标注数据的概率值,概率值越高,说明该数据与已标注数据集中的数据越相似,这种数据对网络模型性能的提升帮助越小,概率越低说明模型之前可能没有见过这种信息类别的数据,对网络性能提升的帮助就会越明显。

2 岸桥司机危险操作预警方法

2.1 岸桥司机装卸集装箱作业

经过码头实地调研,基于可探测性、科学性的特点,将司机存在不安全行为整理,如未佩戴安全帽、开始作业前未鸣笛等行为可能会诱发危险,但不会立即对生产产生危害,故划分为警示行为。作业时单手操作设备、在作业平台内使用手机、操作时未面向设备、操作手柄进行塔臂快速回转动作等行为都可能立即造成生产事故,故划分为危险操作。其余正常工作姿态都划分为安全操作,具体分类如表1所示。

表1 不安全作业行为

2.2 危险等级判断网络

危险等级预警指的是在完成人体姿态预测的基础上,对姿态是否可能诱发危险进行风险等级判断。一共分为3个级别,0为危险,1为警示,2为安全。如图3所示,工人的姿态分别属于危险、警示、安全操作。

图3 操作危险等级示意图

本危险等级判断网络的特征提取部分直接使用人体姿态估计阶段输出的128维度的特征图。将特征图输入到全连接层,转换为特征向量,之后经过分类网络的处理,输出分类结果。具体网络参数如表2所示。

表2 危险等级判断网络

如表2所示,128×46×46的特征图输入到危险等级判断网络当中,最终输出一个3×1×1的特征向量,分别对应着3个危险等级的可能性,将这个概率值使用Sigmoid函数处理,映射到0~1之间,便于观测计算。

图4为危险等级判断系统的运行流程图。使用RealSense采集到作业工人的图像后,输入到共享特征提取器提取基本特征,然后输入到危险级别判断网络进行危险判断,输出分类结果[12]。

图4 危险等级判断系统运行流程图

2.3 实验参数设置

具体学习参数如表3所示。由于硬件条件有限,显卡显存不够大,每次输入到网络中的图像数量为10张;为了防止学习率过大,导致梯度爆炸,基础学习率为5×10-5;权重值初始值为5×10-4;权重值修正初始值为0.01;主动式学习框架数据筛选轮数共10轮。

表3 实验参数

3 实验验证

3.1 实验环境

在本文场景下,面向人体姿态预测实验由3个主要模块构建,RGB数据采集模块、神经网络预测模块、人体姿态评估模块。系统的输入为RGB三通道数据,如果传入PNG格式的数据,需要将其额外的透明度通道进行处理,最终转码成RGB格式。系统输出为预测体姿态与标准姿态库直接的匹配损失值。人体姿态评估模块工作时,可得网络模型给出的最佳人体姿态,首先判断其合法性,然后根据制作的标准人体姿态库以及损失函数,计算评估损失,损失值越小,说明预测值与真值之间的差距越小,预测结果越准确。

3.2 软硬件配置

本实验所有的网络训练以及数据采集处理都是基于Python语言。模型的搭建与训练使用Pytorch框架,实验环境均在Ubuntu 16.04的基础上建立1个独立的Docker容器[13]。

输入设备采用的摄像头为RealSense相机的RGB部分,真实场景下的应用使用的CPU为Intel CORE i5-8600,GPU为NVIDIA GTX 1050Ti,显存为4 G,模型平均估计时间为15.3 fps。实验使用的拍摄杆长度为1.2 m(见图5a),侧向面对岸桥司机(见图5b)。关于摄像头的自身参数,RealSense拥有2000万像素的RGB摄像头,拍摄最大实时帧率为90 fps,最大帧率下的分辨率可达848×480,在30 fps的速度下清晰度可达2 000万像素,焦距在3.1 mm以下,接口为USB 3.0。

图5 拍摄示意图

3.3 实验数据处理

利用Microsoft COCO数据集与码头内采集的工人作业视频资料作为扩充训练数据集进行主动式人体姿态识别模型训练。

图6为在COCO扩充数据集上的人体姿态精确度实验结果,其中横轴表示训练轮数,纵轴表示准确率。可以发现在0~25轮(Epoch)训练过程中,识别精度有较大幅度的增长;在25~150轮,精确度开始缓慢上升,期间有一定波动,幅度在可接受范围内;在150~200轮时,识别精度开始趋于平稳。数据集划分出80%作为训练数据集,20%作为测试数据集[14]。

图6 COCO扩充数据集上的精确度实验结果

由图6可知,人体姿态预测模块在经过训练之后,最终的检测准确率保持在80%左右浮动。因此,如果一种主动式学习策略能够使最终的准确率达到80%,说明这种策略有存在的意义,因为其在节省大量标注成本的同时,训练出了同样性能的网络。

3.4 司机姿态预警实验效果

图7为模型训练200轮之后的背身状态人体姿态预测结果。可以发现这种情形下光线状态良好,人体姿态没有遮挡,所以模型的预测精度很高,几乎所有的人体关键节点都附着在了正确的位置上。

图7 人体姿态识别

如图8所示为危险分级实验可视化的结果,图8a中司机作业时未面向前方,十分危险,网络模型将其分类为危险操作;图8b中司机作业时未佩戴安全帽,但不至于立刻发生险情,网络模型将其分类为警示操作。图8c中为正常操作,网络模型将其分类为安全。

图8 操作危险分级实验可视化

4 结论

本文提出了一种适用于人体姿态估计的主动式判别器,能对数据信息量进行有效判别,从而找到未标注池数据中与已标注池数据最不相似的数据进行标注;接着提出了一个轻量级的人体姿态估计网络,能对岸桥司机作业场景的工人人体关键节点进行识别检测,检测准确率达到80%以上;最后依据主动式人体姿势估计判别器设计了危险等级判断模型,在人体姿态预测的基础上对司机作业姿态危险性进行评估分级。可以发现,在光照条件良好的情况下,人体关键节点预测和操作危险等级分类十分精准,实时监控作业安全,本操作预警方法能指导司机进行合规生产操作,对提高港口生产效率,保障作业安全具有积极意义。

猜你喜欢
姿态司机危险
画与理
攀爬的姿态
老司机
老司机
全新一代宋的新姿态
跑与走的姿态
喝水也会有危险
凭什么
拥挤的危险(三)
话“危险”