杨琴琴 葛云飞 刘紫严 余健 任仕晨 胡伟 官骏鸣
摘 要:针对骑行及施工场景,人员是否佩戴头盔对安全带来的影响问题,提出区分环境,将人与车整体标定的方法和工人头部标定的方法来分别制作佩戴数据集,然后基于Linux环境的树莓派开发平台,采用Camshift算法进行模型训练,可以正确追踪目标的位置和信息,判断目标佩戴头盔或安全帽的情况,并用网络摄像头截取视频通过以太网输入到PC端Camshift模型中的方法,替代人工实现远程检测。实验表明,该方案能正确识别出视频中人员有无佩戴头盔或安全帽,证明了该方案的有效性。
关键词:电动车头盔;安全帽;Camshift算法;树莓派;远程监测
摩托车、电动车、自行车等骑乘交通工具以其便捷、便宜、环保等特点受到出行者的广泛欢迎,但这类骑乘人员在驾驶过程中完全暴露于道路之中,容易在交通事故中伤亡。2019 年,我国共发生交通事故 244058起,其中摩托车、非机动车、自行车交通事故发生数共76967起,占比约为31.54%。而在施工现场,有时会出现有高空坠物的事故,现场可能有人员受伤,受伤部位极有可能是头部,保护现场人员的头部是非常有必要的。因此佩戴安全帽是我国建筑行业的一项基本规章制度,而传统的目标检测方法不能达到建筑行业检测人员佩戴安全帽的要求。当前,目标检测算法主要由两个类别组成:一类是基于区域的两阶段检测器,如 R-CNN、Fast R-CNN、Faster R-CNN,另一类是单阶段的检测器,如 SSD 和 YOLO。
头盔检测应用的场景是车水马龙的交通道路和环境复杂的施工工地,人员流动大。不但要对复杂的环境进行快速跟踪定位,还要从中识别出骑行人员(工人)是否佩戴头盔(安全帽),所以对模型跟踪的稳定性和准确性都有较高的要求。因此,本文采用高效、准确且稳定的Camshift模型。对于电动车人员头盔佩戴识别,传统检测方法将待检测目标划分为2部分:骑车人和骑乘工具,这样制作的数据集极易将非骑行人员纳入识别范围,增加了拟识别对象的数目,也就增加了计算量和计算过程,所以在人员密集环境下的检测精度不高。为此,本文采用人与车整体标定的方法,即在制作数据集时,将骑车人与骑乘工具标定为一个整体。这样,训练出的网络就可有效地将骑车者与非骑车者区别开来;同时,为了实现远程监控功能,采用以太网搭配网络摄像头的方式,将现场采集的视频流通过以太网实时输送到Camshift模型中进行分析预测,以实现远程目标的检测。
一、Camshift算法的原理
Camshift算法是在Meanshift算法的基础上,针对其存在的不足进行改进而提出的,其算法的基本思想是对视频图像的多帧进行Meanshift运算,将上一帧结果作为下一帧的初始值,不断迭代。该算法采用不变矩对目标的尺寸进行估算,实现了连续自适应地调整跟踪窗口的大小和位置,并将其应用在对连续彩色图像序列中的运动目标的快速跟踪。以下对其原理进行说明:
(一)色彩投影图(反向投影)
RGB颜色空间对光照亮度变化较为敏感,为了减少此变化对跟踪效果的影响,首先将图像从RGB空间转换到HSV空间。然后对其中的H分量作直方图,在直方图中代表了不同H分量值出现的概率或者像素个数,就是说可以查找出H分量大小为h的概率或者像素个数,即得到了颜色概率查找表。将图像中每个像素的值用其颜色出现的概率对替换,就得到了颜色概率分布图。这个过程就叫反向投影,颜色概率分布图是一个灰度图像。
(二)Camshift算法
将 Meanshift算法扩展到连续图像序列,就是 Camshift算法。它将视频的所有帧做 Meanshift 运算,并将上一帧的结果,即搜索窗的大小和中心,作为下一帧Meanshift算法搜索窗的初始值,如此迭代下去,就可以实现对目标的跟踪。Camshift算法的步骤如为:
(1)初始化搜索窗;
(2)计算搜索窗的颜色概率分布(反向投影);
(3)运行Meanshift算法,获得搜索窗新的大小和位置;
(4)在下一帧视频图像中用(3)中的值重新初始化搜索窗的大小和位置,再跳转到(2)继续进行计算。
二、系统整体方案设计
(一)硬件介绍
树莓派 4B 的硬件配置(图 1):1.5 GHz,4 核64 位,ARM Cortex-A72 CPU(~ 3× 倍性能 )、1 GB / 2 GB / 4 GB LPDDR4 SDRAM 内存、全吞吐量千兆以太网、双频 802.11ac 无线网络、蓝牙 5.0、两个 USB 3.0 和两个 USB 2.0 接口,双显示器支持、分辨率高达 4K、VideoCore VI 显卡,支持 OpenGL ES 3.x、HEVC 视频 4Kp60 硬解码、完全兼容早期的树莓派产品。
(二)数据集制作
为了实现多场景复杂环境下准确识别的功能,本文采用网络爬取图片加摄像头拍摄的方式制作数据集。网络爬取的目的是收集不同拍摄角度人物状态的图片,以及区分各个场景特征,便于后期模型能学到多种特征,进而提高检测的精度。摄像头拍摄马路上真实交通状态以及施工现场真实情况,一张图片中包含多个检测目标,有利于后期训练出的模型对密集目标的检测,更好地拟合实际情况。图片采集情況如图2所示。
(三)佩戴检测方法
为了解决交通道路中电动车和骑行人的关联匹配问题,直接将电动车和电动车骑行人员作为一个整体进行检测,而旁边的行人和停放的电动车视为背景不进行检测。这种检测方法将检测目标分为两类,一类是电动车和未带头盔的骑行人整体,另一类是电动车和佩戴头盔的骑行人整体。
(四)检测流程设计
系统的主要功能是进行视频检测及摄像头检测,系统的整体流程如图3所示。其中,系统进行视频检测和摄像头检测时,默认为视频流检测,而摄像头检测只比视频检测多了摄像头识别部分,其他部分相同。故下面仅给出摄像头检测的流程图。系统在运行过程中可以调用外接摄像头获取实时的视频流,并将视频进行分帧,发送到头盔检测模块进行后续处理。如果不调用摄像头,系统可以直接在本地获取视频进行检测。程序检测视频的主流程如图4所示。
系统在进行数据预处理后,提取有助于區分道路和施工现场的特征,例如颜色、纹理、形状等。通过调整模型的参数、增加训练数据集的规模、调整网络结构等方法,提高算法对交通道路和施工现场的识别准确度。由于头盔检测模块和安全帽检测模块大致相同,故下面以头盔检测模块举例。
首先使用Camshift模型检测输入图像中的头部目标(person)、头盔目标(helmet)和电动车目标(motorcycle),并将其保存;然后以电动车目标为第一优先级将电动车和骑行人员进行匹配,对于任一检测到的电动车目标,判断在其匹配区内是否存在 helmet目标,若在匹配区内存在的是 helmet 目标,则判定该骑行者佩戴头盔,同时用绿色矩形框进行标注,若在匹配区内存在的是 person 目标,则判定该骑行者未佩戴头盔,同时使用红色矩形框进行标注;之后对余下的电动车目标重复上述匹配过程,当所检测到的电动车目标均完成匹配后,即完成了当前图片的检测过程。另外需要指出的是,若在匹配区内出现多个 helmet 目标或 person 目标时,最终选择与电 动车目标中心点距离最小的目标进行匹配。
三、实验分析
为了验证Camshift 算法的可行性和有效性,本文从网络中获取了道路交通和施工现场中的视频资料,如图5,并对其中的运动目标进行跟踪实验,从中发现针对背景较模糊、运动目标边缘不是很清晰的情况下,Camshift算法依然能够实现对运动目标的准确跟踪。
四、结论
由实际情况试验结果可知,经过数据收集和大量模型训练的Camshift算法简单高效,特别适用于对颜色信息敏感的目标跟踪任务。它结合了颜色直方图和均值漂移算法,即使对于背景模糊、不易识别边缘等问题,也能够在视频序列中稳定地跟踪目标。可以预见,如果将该识别系统应用到现实生活中,能有效提升检测速度,以及对于保障交通管理人员的生命安全作出一份贡献,也减小了监控人员的工作量。
参考文献:
[1]赵海茹,李玉秀,李国瑞,等.基于Camshift算法的运动目标跟踪系统研究[J].玉溪师范学院学报,2023,39(06):77-81.
[2]尤泳茹,陈梦凡,陈俊霞,等.基于树莓派的目标识别检测研究[J].现代信息科技,2023,7(21):94-98.
[3]李明,杜茂华.基于YOLOv4算法的骑乘人员头盔佩戴的远程检测[J].农业装备与车辆工程,2023,61(10):159-164.
[4]张立艺.基于深度学习的施工现场安全帽佩戴检测方法研究[D].内蒙古工业大学,2023.
[5]徐栋.基于深度学习的电动车头盔佩戴检测系统的设计与实现[D].南京邮电大学,2022.