摘 要

安全帽佩戴监控是铁路工程施工人员安全管理中的重点和难点,它对检测算法的准确 率与检测速度都有较高的要求。本文提出一种基于神经网络架构搜索的安全帽佩戴检测算法 NAS-YOLO。该神经网络架构由上、下行操作单元组成,采用二进制门策略对网络架构进行更 新,通过数据驱动的方式自动确定合适的神经网络体系结构。实验结果表明,NAS-YOLO算法 在准确率、召回率及平均检测速度方面均优于实时目标检测算法 YOLOv3,可以在工程施工中 对施工人员安全帽佩戴情况进行实时监控。
关键词 安全帽佩戴;神经网络架构搜索;自动检测;检测算法;实时监控

引言

施工现场环境复杂多变,人群密集,频繁出现工 人不遵守规章所引发的伤亡事故,安全帽作为一 种常见的防护用具,能够有效减轻外来危险源对头 部的伤害,因此,实时监控施工场所工人安全帽佩戴 情况至关重要。 然而人工监管费时费力,无法满足 安全生产要求。 以计算机视觉为技术支撑的智能监 控系统有人力成本低、检测效率高等优势,为自动监 测施工现场工人佩戴安全帽情况的方案落地提供了 技术方向
传统的安全帽检测方法大多数是分析图像统计 信息,构建安全帽特征后匹配识别。 WEN Chenyen 等使用霍夫变换,设计了安全帽形状特征,统计 其像素值信息而后进行特征匹配;刘晓慧等 根据 色差分量定位人脸区域,向上扫描捕获区域图像,利 用胡氏不变矩描述安全帽形状特征。 然而,此类传 统方法需手工设计安全帽特征,不但人力成本高,且 在复杂施工环境下识别精度低,鲁棒性较差,无法准 确监测出工人未佩戴安全帽的情况。 近年来,深度 学习在目标检测领域下的应用取得了一系列较好 的成果。 基于深度学习的目标检测又分为基于区 域提取的两阶段算法和基于回归的一阶段算法。 两阶段算法首先使用区域选择算法生成候选区 域,其次通过卷积神经网络提取目标候选区域特征,进而分类回归
利用图像识别、目标检测等计算机视觉技术, 实现安全帽自动监控是智能工地发展的主要趋势。 传统的基于计算机视觉技术的安全帽佩戴检测方法 通常使用人为设定的特征,如梯度直方图、颜色或 混合描述符检测等,都受到遮挡、透视失真、小目 标检测和尺度变化等因素的影响,存在漏检,即召 回率低的问题[5] 。随着,深度神经网络在图像识别 和目标检测任务中的广泛应用,利用其特征提取自 动化的特点,本文提出了基于神经网络架构搜索 (Neural Architecture Search,NAS) 的安全帽佩戴 检测算法,将人工调整神经网络的过程变成自动执 行的任务,通过自动搜索确定更符合铁路施工工地 安全帽监控任务的深度神经网络架构,完成安全帽 佩戴的自动检测与报警任务

1. 安全帽监控系统逻辑架构

安全帽监控系统的逻辑结构主要分为视频采集、智能视频分析和监控中心3个模块,如图1所示。视频采集模块负责通过摄像机进行视频采 集;智能视频分析模块是通过算法实现目标检测、分类,并进行行为和事件检测,同时还负责对违规行为发出报警信息,是安全帽监控系统的核心模块;监控中心与监控人员直接交互,起到对整个监控系统进行监视和管理的作用。
安全帽监控系统首先由视频采集模块获取视频 数据;再由智能视频分析模块利用目标检测技术提取出视频中的动态目标,同时进行分类;然后,将分类得到的目标信息与预先设定好的报警准则进行逻辑判断,如符合预定准则,则智能视频分析模块向监控中心发送预警或报警信息;如不符合预定准则,则继续进行目标检测[8]。目标检测与分类是通 过人工智能技术(即深度神经网络) 来完成的。与 常用的深度神经网络算法不同,这里介绍通过 NAS算法自动搜索合适的神经网络架构。

2.YOLOv3检测模型

YOLOv3 的主干网络为 Darkent-53,其中,包含53个卷积层和5个残差块,整体网络结构如图 2 所 示。 每个残差块包含残差单元,而残差单元由DBL组件组成,DBL 组件中包括卷积、批量归一化和 Leaky reiu激活函数。 残差单元由DBL通过相加而 成,残差块由DBL和残差单元构成,其中,残差块借 鉴ResNet的思想,增强了特征融合能力。 YOLOv3 通过改变卷积核的步长来实现张量的尺度变换,输 出 3 个不同大小的尺度。

YOLOv3网络结构

3. NAS算法

NAS 算法是自动机器学习领域的热点算法之 一,可通过数据特征自动找到合适的神经网络架 构[9] 。该算法的原理是光定义搜索空间;然后,通 过搜索策略找出候选网络架构,对候选网络进行评 估;最后,根据评估结果进行下一轮的搜索。由于 NAS 的根本思想是探索各种潜在的解决方案,搜 索空间越大,需要训练与评估的架构就越多,消耗 的资源与时间就越多。因此,搜索空间的设定将直 接影响计算开销。目前 NAS 的主流设计方法为先 基于单元 (cell) 的架构进行设计,再将单元堆叠 在主干网络上,构成整体网络架构,并由此限制搜 索空间大小。换言之,大型网络是由多个单元组成 的,而单元的结构是由整个网络共享的[10] ,因此主 干网络的选择也十分重要。
目前主流的目标检测算法是 Fast r-cnn[11] 系列 算法,首先使用神经网络生成待检测预选定位框, 再对预选定位框进行调整和分类,属于两阶段算 法,虽然精度高,但实时性不强。而YOLO (You Only Look Once)[12] 系列的一阶段算法采用了回归 的思想,直接在图像上回归出预选定位框,同时预 测预选定位框所属类别。YOLO 系列算法的检测 精度虽然略低于 Fast r-cnn 系列,但是运行速度 快,能够很好地完成实时目标检测任务。另外,还 有 SSD (Single Shot MultiBox Detector)[13] 算法,结合了回归思想和预选定位框机制,使得检测速度和准确率都得到提升。YOLO 系列算法经过不断 更新,其中 YOLOv3[14] 结合了多种网络设计技 巧,包括了SSD算法中的多尺度特征融合策略[15] , 进一步提高了网络的检测性能。因此,本文以 YOLOv3 为基础框架,设计了基于神经网络架构 搜 索 的 YOLO 网 络 , 即 NAS-YOLO。 NASYOLO由2种单元架构组成,分别是下行单元和上 行单元,并通过基于单元的搜索方式,确定其最终 网络拓扑结构。

3.1 架构搜索方式

对二值化的路径更新使用了 Cai H 等[20] 提出 的二进制门方法。这是一种数据驱动的方式,具体 操作如下。 1) 在训练网络权重参数时,先冻结架构参数, 并为每批输入的数据随机选取二进制门,根据二进 制门得到存活路径。 2) 在训练数据集中,通过标准梯度下降,更 新存活路径的权值参数。 3) 在训练架构参数时,先冻结权重参数,后 重置二进制门,更新并验证数据集中的架构参数。 这2个更新步骤以替代方式执行,一旦完成架构参 数的训练,就可以通过修剪冗余路径来导出紧凑的 架构。 每次架构参数的更新只涉及2条路径,从而将 内存需求降低到训练紧凑模型的相同水平。

3.2 模型训练

使用安全帽佩戴检测数据集对 NAS-YOLO 算 法进行训练。该数据集共有 7 581 张图像,包含 9 044 个佩戴了安全帽的人像 (正样本),以及 111 514 个普通人像 (没有佩戴安全帽,即负样 本)。随机选取数据集中一半的图像作为训练集, 另一半作为验证集,使用二进制门搜索策略对神经 网络架构进行搜索。其中,批量的大小设置为 8, 共进行了200期的架构搜索优化。 网 络 权 重 训 练 中 , 选 用 随 机 梯 度 下 降 (Stochastic Gradient Descent,SGD) 优化器,动 量 设 置 为 0. 95, 余 弦 学 习 率 从 0. 025 衰 减 到 0. 01,权重衰减为 0. 0003。架构参数 α 的训练使 用 Adam 优化器[21],学习率设置为 0. 0003,重 量 衰 减 设 置 为 0. 0001。 使 用 1 块 GeForce RTX 2080ti GPU 对 整 个 架 构 搜 索 , 大 约 需 要 2 天 时间

4. 结果验证与分析

4.1 算法训练

YOLOv3和NAS-YOLO训练过程中的损失函 数曲线 (Loss Curve) 分别见图2和图3。图中, 损失值越小,表示训练出的模型与数据集的真实模 型越接近;在2次训练过程中,网络损失均保持稳 定下降趋势,YOLOv3在迭代 10 000次左右收敛, NAS-YOLO在迭代 40 000次左右收敛,说明训练 基本顺利;与图2的曲线相比,图3的曲线收敛于 一个更小的值,说明改进后的模型更接近数据集的 真实模型。

4.2 算法测试

将完成模型训练NAS-YOLO网络与现有的目 标检测网络进行对比,并将几种算法分别应用于安 全帽监控系统中,进行安全帽佩戴状态的自动识 别。随机选取2名工地管理人员,对视频中施工人 员是否佩戴安全帽进行识别与判断。一名管理人员 先做出判断,另一名再对其判断结果进行审查与修 正。将2名管理人员的识别判断结果作为真值,评 估 NAS-YOLO 与 SSD、 Fast r-CNN、 YOLOv3 算法的实际应用准确度和运行速度。与其他方法相比,NASYOLO的平均准确率(mean Average Precision,mAP) 最高,达 96. 72%;处理速度也最快,检测速度可达59. 6FPS (Frames Per Second);但召回率略低 于 Fast r-CNN,而 Fast r-CNN 运行速度慢,无法 应用于实时的目标检测任务。

4.3 算法应用

将NAS-YOLO算法搭载于智慧工地视频监控 系统,用于实时监控工地上的安全帽佩戴状态,实 际应用效果见图 6。系统会自动识别并用框线标注 出现场人员的头部位置,并将规范佩戴安全帽的对 象用实线框出,未规范佩戴安全帽的对象用虚线框 框出,同步给出未佩戴安全帽的告警信息。

5. 结论

基于NAS的安全帽佩戴检测算法能够针对特定 任务确定对应的网络结构,实现了工地安全帽佩戴 的实时监测。试验结果表明,该算法在正确率、召回率及平均检测速度方面均优于实时目标检测算法 YOLOv3,可减少人力成本,提高了建筑工地的安 全管理自动化水平。

参 考 文 献

[1] 手把手教你搭建自己的yolov5目标检测平台 https://www.bilibili.com/video/BV1f44y187Xg
[2] 手把手教你使用YOLOV5训练自己的目标检测模型 https://www.bilibili.com/video/BV1YL4y1J7xz/
[3] 杨永波,李栋.改进YOLOv5的轻量级安全帽佩戴检测算法[J/OL].计算机工程与应用:1-8[2022-04-11].http://kns.cnki.net/kcms/detail/11.2127.TP.20220118.1827.006.html
[4] 葛青青,张智杰,袁珑,李秀梅,孙军梅.融合环境特征与改进YOLOv4的安全帽佩戴检测[J].中国图象图形学报,2021,26(12):2904-2917.
[5] 朱晓春,陈子涛.基于改进型YOLO v5算法的安全帽佩戴检测[J].南京工程学院学报(自然科学版),2021,19(04):7-11.DOI:10.13960/j.issn.1672-2558.2021.04.002.
[6] 金雨芳,吴祥,董辉,俞立,张文安.基于改进YOLO v4的安全帽佩戴检测算法[J].计算机科学,2021,48(11):268-275.
欢迎大家加我微信交流讨论(请备注csdn上添加)

安全帽佩戴检测算法研究相关推荐

  1. YOLOv5在建筑工地中安全帽佩戴检测的应用(已开源+数据集)

    前言 Amusi 发现一个很棒的开源项目,利用YOLOv5进行目标检测的"落地化"应用:安全帽佩戴检测. 该项目使用了YOLOv5s.YOLOv5m.YOLOv5l来训练安全帽佩戴 ...

  2. 基于YOLO模型的安全帽佩戴检测

    YOLO模型的基本原理 YOLO网络是一个以目标检测为目的而设计的网络.YOLO系列算法的基本思想是将输入图像分 割为S×S个单元格, 且每个单元格生成B 个边界框, 由被检测目标中心点所在的单元格负 ...

  3. yolov4训练自己的数据集实现安全帽佩戴检测

    昨儿立下来的flag,今天还是要含泪完成的,抓紧时间赶呀!!! 本次用yolov4来实现人佩戴安全帽检测,若未佩戴安全帽则将人脸框出来,若佩戴安全帽,则将安全帽以及人脸框出来,多说无益,直接看效果吧! ...

  4. 【目标检测】基于yolov5的安全帽佩戴检测系统(附代码和数据集)

    写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌. 文末获取代码和数据集,请看检测效果: 1. 介绍 基于 ...

  5. 开源 | 安全帽佩戴检测数据集

    最近图像领域比较火热的两个方向都与复工复产相关,一方面是口罩识别,另一方面,就是智能工地安全领域中的安全帽佩戴检测,很多同学或许没想到印象的大工地现在已经随着计算机视觉领域的发展如此智能化了.人民的生 ...

  6. 【目标检测】基于yolov7的安全帽佩戴检测和识别(附代码和数据集,Ubuntu系统)

    写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌. 本次项目是在Ubuntu系统上运行的,Windows系 ...

  7. 工地安全帽佩戴检测yolov5

    工地安全帽佩戴检测利用深度学习神经网络算法以及yolov5网络架构,对画面区域人员安全帽佩戴实时检测分析.YOLOv5使用二进制交叉熵和 Logits损失函数计算类概率和目标得分的损失.同时我们也可以 ...

  8. 空间中的语义直线检测_基于语义分割的车道线检测算法研究

    龙源期刊网 http://www.qikan.com.cn 基于语义分割的车道线检测算法研究 作者:张道芳 张儒良 来源:<科技创新与应用> 2019 年第 06 期 摘 ; 要:随着半自 ...

  9. 基于语音的疲劳度检测算法研究

    基于语音的疲劳度检测算法研究 摘 要 疲劳是一种自然现象,是人体的一种自我调节和保护功能.检测疲劳状态对于当今社会从事各行各业都有积极意义.本课题提出了一种基于语音特征参数和概率神经网络的语音疲劳度识 ...

最新文章

  1. R语言与Tableau集成之可视化应用
  2. GlobalPointer:用统一的方式处理嵌套和非嵌套NER
  3. eclipse怎么导入maven项目 eclipse导入maven项目详细教程
  4. HDU2612(BFS算法)
  5. 依赖注入通俗解释_我如何向团队解释依赖注入
  6. kali2.0安装搜狗输入法
  7. r a/b 测试_R中的A / B测试
  8. xamarin.android 控件,将Android View作为自定义控件集成到Xamarin.Forms
  9. HDU-2191-悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(dp)
  10. Qt--音乐播放器 V2.0
  11. Springboot thymeleaf i18n国际化多语言选择-2.业务流程内部返回 对应的语言
  12. Hammer.js分析(一)——基础结构
  13. Asp.net core 中实现AOP面向切面编程
  14. html设置图像边框的属性,css3将图像设置为元素周围边框的方法
  15. 工业互联网大数据之数据管理与治理的简易理解
  16. 【mysql】表锁、行锁、间隙锁、共享锁(读锁)、排他锁(写锁)、Next-Key Locks 之间的关系
  17. Python语言程序设计 - 北京理工大学 网课所有资料(源码,pdf,ppt课件,视频等)
  18. 雷军北大15分钟演讲:我至少有胆量去想(转)
  19. hdu 4544——消灭兔子
  20. 自动控制原理之一稳态误差分析/MATLAB

热门文章

  1. js 设置window.open打开新窗口的title
  2. BGP路由选路与负载
  3. linux清除文件后df还是满的,Linux系统下如何用du和df命令清除大文件?
  4. java写入文件几种方法
  5. C/C++数据结构——最优屏障(栈)
  6. 仿站高手是怎么练成的 分析仿站必备知识总结
  7. Web Service的使用
  8. Java中无穷大、无穷小、非数、最大值、最小值
  9. 原生js-简易点名册实现
  10. scikit-learn 支持向量机算法库使用小结