1. 引言
生产安全事故一直是干扰企业正常运行、威胁人民群众生命财产安全的大问题,研究发现,超过70%的生产安全事故与人的不安全行为有关 [1] [2] [3] 。传统的现场检查和查看监控的不安全行为监管方式,覆盖范围有限,实时性不强。随着技术发展,人们开始尝试研究人工智能在安全生产中的应用 [4] [5] [6] 。文献 [7] 利用YOLO v3实现了对加油站吸烟和使用手机两种不安全行为的监测预警,文献 [8] 提出了一种在油田作业现场检测吸烟行为的方法,文献 [9] 针对建筑施工中不带安全帽的行为进行了研究,提出了相应的检测方法。这些智能监测预警技术,为安全生产管理工作带来很大的便利。
从目前的研究情况来看,多数的智能监测预警算法研究大多数是基于NVIDIA的图形处理器(Graphics Processing Unit, GPU),当前主流的深度学习框架如TensorFlow、Pytorch等都是基于GPU产品进行研发。不同于GPU,华为发布了昇腾芯片,专门面向神经网络计算,其芯片架构、加速库和深度学习框架都区别于GPU。本文针对加油站场景中人的不安全行为,利用华为的昇腾芯片和深度学习框架Mindspore [10] 研发了智能监测预警算法,建立了基于华为昇腾芯片的加油站不安全生产行为智能监测预警系统。
2. 不安全行为分析及算法实现
2.1. 不安全行为分析
根据前期研究基础,加油站存在吸烟、车辆违停、卸油人员离岗等3类不安全行为 [11] ,具体如表1所示。
![](data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20210%20140%22%3E%3C/svg%3E)
Table 1. Unsafe behaviors and possible types of accidents at gas stations
表1. 加油站不安全行为及可能导致的事故类型
2.2. 智能算法实现
2.2.1. 需求分析
1) 吸烟。加油站实际环境中摄像头安装位置一般较高,仅检测香烟目标太小。通过先检测监测目标区域中的人,以检测到人为中心缩小目标区域,再检测香烟,可以提高检测准确率,同时减少地标线、栏杆等白色条状物体的干扰。为了安全起见,香烟无论是否点燃,一旦检测到均发出预警。
2) 车辆违停。判断是否违停,需要先检测出车辆,然后确认车辆已经停止(避免将临时性停放或是路过车位的车辆误判为违停),再根据车辆和车位的位置关系判断车辆是否违停。
3) 卸油人员离岗。通过检测卸油口开闭状态判断卸油作业是否开始,卸油口打开,再检测该区域内人员数量,少于2人则发出预警。
根据上述分析,针对吸烟、车辆违停、卸油人员离岗这3类不安全行为开发对应的智能监测预警算法,共涉及人、香烟、车辆、卸油口共4类目标检测模型。YOLO系列是经典的目标检测算法 [12] ,本文选用新一代的YOLO v5进行模型训练,其具有模型体积小,推理速度快的特点,在模型的快速部署上有较大的优势。
2.2.2. 数据集制作
数据集制作遵循以下原则:在满足算法开发和加油站实际应用的前提下,有公共数据集的以公共数据集为主;没有的则采集多个加油站的现场图片,使用精灵标注助手进行标注,自制数据集。
人、车辆具有通用性,使用部分coco数据集,并在此基础上补充了多个加油站内采集的素材。
香烟的公共数据集一般仅对香烟本体进行标注,因加油站现场中香烟目标较小,仅检测香烟本体易产生误报或漏报等情况,因此制作专门数据集,并在标注时选择了持烟手势与嘴部吸烟等目标,同时将香烟的大小同人体比例限定在一定范围。
卸油口为加油站所特有,数据集为自制。同时,考虑到每个加油站的卸油作业区监控摄像头与卸油口位置通常不会发生变化,因此每个加油站单独制作卸油口数据集。
各数据集大小如表2所示。
![](data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20210%20140%22%3E%3C/svg%3E)
Table 2. Performance of various target detection models
表2. 各目标检测模型性能
2.2.3. 算法训练
算法训练使用昇腾910芯片和Mindspore框架,学习率Ir为0.001,单次传输样本数batch size为16,最大训练轮次max epoch为300,各模型性能如表2所示。其中,人和车辆的模型在训练时使用了coco数据集,涉及类别较多,导致mAP不高,但在现场实际使用时有较好的检测效果。
3. 智能监测预警系统的建立
3.1. 系统组成
智能监测预警系统主要由表3中的设备组成,开发的算法运行在推理服务器上,推理服务器使用了昇腾310 AI加速器,具有高效计算和低功耗的优点,半精度(FP16, Half-precision floating-point)运算能力为8TFLOPS,支持20路视频分析。系统网络架构如图1所示。
![](data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20210%20140%22%3E%3C/svg%3E)
Table 3. Intelligent monitoring and early warning system equipment
表3. 智能监测预警系统设备
![](data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20210%20140%22%3E%3C/svg%3E)
Figure 1. Architecture of the system network
图1. 系统网络架构
3.2. 系统功能
系统的作用是实时监测需要关注区域内的不安全行为,提升安全管理水平。因此,系统设计遵循简单易用的原则,主要包含以下功能。
1) 预警区域设定。根据不安全行为的特点及涉及区域,设定加油站不安全行为监测预警的有效范围,排除外部行人和车辆等的干扰。
2) 实时监测预警。实时监测设定的预警区域,当目标行为出现后,根据行为类别和摄像头编码等生成预警信息,传输到声光报警装置,发出预警。同时,将本次不安全行为截图等预警信息保存至本地数据库。
3) 预警信息统计分析。系统定期统计分析不安全行为信息,显示预警趋势,为安全管理提供数据支持。
4. 预警效果测试
4.1. 测试方案
为了客观反映各算法对加油站不安全行为的真实预警效果,同时不影响加油站的正常营业,本文在多个加油站现场采集了不安全行为视频,并进行处理,以实际场景下的不安全行为视频来测试各算法的预警准确率。预警准确率为正确预警视频数量占测试视频总数的百分比。
为了对比昇腾芯片的检测效果,使用相同的数据集和目标检测模型在NVIDIA的GPU平台上进行训练并测试预警效果。训练使用的GPU型号是RTX A6000,推理使用的是RTX 3060Ti。
4.2. 测试结果
各算法测试结果如表4所示,昇腾芯片的部分视频测试效果如图2所示。
![](data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20210%20140%22%3E%3C/svg%3E)
Table 4. Test results of the algorithm
表4. 各算法测试结果
(a) 吸烟 (b) 车辆违停 (c) 卸油人员离岗
图2. 昇腾芯片的部分视频测试效果
由表4可知,两种加速器训练的算法准确率在一个水平上,都达到90%以上,但昇腾的整体准确率比NVIDIA略低,这与文献 [13] 的结论一致。昇腾精度使用的是16位浮点(FP16,又称半精度),可以获得更快的加速效果,但需要依靠其他的技术或更多的迭代保证模型的学习效果。
从表中可以看到,吸烟和卸油人员离岗监测算法的准确率相对低一些。分析判断错误的视频,发现主要有以下问题:
1) 加油站摄像头大多设置在离地面较高的罩棚支柱上,而香烟目标较小,容易漏检或是将人头部和手臂附近的白色条状物误识别为香烟。
2) 卸油区域在停放油罐车开始卸油时空间比较狭小,油罐车驾驶员和卸油工作人员可能会被微型消防站、作业规程指示牌等遮掩,导致无法正确判断现场人员数量。
3) 对于光线较暗、地面积水反光或是强光照等情况,模型的识别效果会变差。
5. 结语
昇腾芯片目前的使用者较少,尚未形成较为完善的生态圈,其适用场景、实际表现,包括一些开发过程中的技术难题,都还需要使用者自行研究。本文使用昇腾910和昇腾310两种不同的芯片,开展了以下工作。
1) 分析了加油站主要存在的不安全行为,根据其行为特点,利用昇腾910、Mindspore框架开发了对应的智能监测预警算法。
2) 基于昇腾310,建立了加油站不安全行为智能监测预警系统,实现了预警区域设定、实时监测预警、预警信息统计分析等功能。
3) 通过采集加油站实际场景的视频,对智能监测预警算法的准确率进行测试,并同NVIDIA平台进行了对比,算法准确率在一个水平上,都达到90%以上,但昇腾的整体准确率比NVIDIA略低。
吸烟和卸油人员离岗的检测效果稍差,后续可以结合姿态识别、视频增强等技术,提升检测效果。
基金项目
贵州省科研机构创新能力建设专项资金(黔科合服企[2020] 4014)。