安全帽佩戴检测算法是铁路工程施工人员安全管理中的重点和难点,它对检测算法的准确 率与检测速度都有较高的要求。本文提出一种基于神经网络架构搜索的安全帽佩戴检测算法 NAS-YOLO。该神经网络架构由上、下行操作单元组成,采用二进制门策略对网络架构进行更 新,通过数据驱动的方式自动确定合适的神经网络体系结构。实验结果表明,NAS-YOLO算法 在准确率、召回率及平均检测速度方面均优于实时目标检测算法 YOLOv3,可以在工程施工中 对施工人员安全帽佩戴情况进行实时监控。
安全帽佩戴检测算法的逻辑结构主要分为视频采集、智能视频分析和监控中心3个模块,如图1所示。视频采集模块负责通过摄像机进行视频采 集;智能视频分析模块是通过算法实现目标检测、分类,并进行行为和事件检测,同时还负责对违规行为发出报警信息,是安全帽监控系统的核心模块;监控中心与监控人员直接交互,起到对整个监控系统进行监视和管理的作用。
安全帽佩戴检测算法首先由视频采集模块获取视频 数据;再由智能视频分析模块利用目标检测技术提取出视频中的动态目标,同时进行分类;然后,将分类得到的目标信息与预先设定好的报警准则进行逻辑判断,如符合预定准则,则智能视频分析模块向监控中心发送预警或报警信息;如不符合预定准则,则继续进行目标检测[8]。目标检测与分类是通 过人工智能技术(即深度神经网络) 来完成的。与 常用的深度神经网络算法不同,这里介绍通过 NAS算法自动搜索合适的神经网络架构。
目前主流的目标检测算法是 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种单元架构组成,分别是下行单元和上 行单元,并通过基于单元的搜索方式,确定其最终 网络拓扑结构。
1. import random 2. import string 3. 4. f1 = open('1.txt', 'x') 5. for x in range(10000): 6. string0 = str(''.join(random.sample( 7. ['z', 'n', 'm', 'l', 'k', 'j', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a'], 4))) 8. f1.write(string0) 9. if x % random.randint(1, 50) == 0: 10. f1.write(' ') 11. continue 12. if x != 9999: 13. f1.write('\n') 14. f1.close()