本发明涉及计算机视觉及模式识别领域,具体是一种通过工地视频流检测未佩戴安全帽人员的方法。
背景技术:
在建筑施工的场地中,尤其是在高层建筑施工场地中,任何高空掉落的物品都会对处于下方施工的建筑工人的人身安全造成极大威胁。在这种情况下,安全帽可以起到极大的防护作用。它可以有效承受并分散落物的冲击力,防止不必要的人员伤亡。在建筑工人不慎高空坠落的情况下,也可减轻人员坠落头部先着地时的撞击伤害程度。总之,安全帽极大增加了建筑施工人员的生命安全保障系数。某种意义上,也保障了工期的按时完成和工程的项目盈利。
当前情况下,在施工场地中,为防止因为施工人员未佩戴安全帽产生人员伤亡事故,施工方采用工地入口处标语和门岗检查等方式进行一定的督导,同时工地的安全员会在工地巡回检测各种不安全行为,并且管理人员会通过设置在各处的摄像头进行未佩戴安全帽行为的检测。某些工地采用rfid的形式进行安全帽的佩戴检测。然而,这些方案都存在着各自不同的问题。门岗检测仅仅在入口处生效,安全员不能够同时监督工地的全部施工地点。rfid仅能保证安全帽在工作人员身边,不能保证施工人员佩戴安全帽。而摄像头允许管理人员同时监控工地的多个角落,但是识别未佩戴安全帽的不安全行为的责任仍然依赖于管理人员的肉眼识别。要求管理人员全天候通过摄像头排查未佩戴安全帽的人员的做法是不科学也是不现实的。
近年来,计算机视觉在许多领域取得了不小的进展。这为解决施工场地安全帽检测问题提供了新的思路。然而,截至目前,仍未出现一个采用计算机视觉技术解决该问题的成熟系统。
技术实现要素:
本发明的目的是解决现有技术中存在的问题。
为实现本发明目的而采用的技术方案是这样的,一种通过工地视频流检测未佩戴安全帽人员的方法,主要包括以下步骤:
1)提取t时间内待检测区域监控设备的视频流,并建立训练样本集。
进一步,建立训练样本集的主要步骤如下:
1.1)提取t时间内待检测区域监控设备的视频流。
1.2)从所述视频流中逐帧截取并保存保护作业人员的图像。
1.3)对图像进行识别,为佩戴安全帽的作业人员图像和未佩戴安全帽的作业人员图像打上不同分类标签,完成图像分类,得到安全帽佩戴检测类别,从而制作出训练样本集。
2)建立yolo网络模型。
进一步,所述yolo网络模型为yolov3网络模型。
进一步,所述yolo网络模型主要包括特征提取层和处理输出层。所述特征提取层包括输入层、低级卷积层和高级卷积层。
3)对yolo网络模型进行训练,得到训练后的yolo网络模型。
对yolo网络模型进行训练的主要步骤如下:
3.1)利用coco数据集对yolo网络模型进行预训练,主要步骤为:
3.1.1)利用低级卷积层捕获图片中边缘、拐角等低级图像特征,利用高级卷积层捕获图片中形状、图形等更容易被识别区分的高级图像特征;所述低级图像特征包括图像边缘和拐角;所述高级图像特征包括作业人员轮廓特征和安全帽轮廓特征。
3.1.2)将低级特征插入到若干高级卷积层中,得到特征规范。
3.1.3)重复步骤3.1.1至步骤3.1.2,完成所有图像的预训练。
3.2)预训练后,删除特征值矩阵的最后一行后,对特征值矩阵的最后一行进行重写,使类别的输出与安全帽佩戴检测的类别对应。
3.3)将训练样本集输入到预训练后的yolo网络模型中,对预训练后的yolo网络模型进行训练,直至损失函数loss达到阈值ε。
yolo算法是端到端网络算法,损失计算包括位置(坐标)误差,iou误差和分类误差。
yolo网络模型损失函数loss如下所示:
式中,
4)实时提取待检测区域监控设备的视频流,并转换为待检测图像。将待检测图像输入到训练后的yolo网络模型中,检测待检测区域内作业人员是否佩戴安全帽。
检测待检测区域内作业人员是否佩戴安全帽的主要步骤如下:
4.1)确定检测边界,主要步骤如下:
4.1.1)输入图像时,首先在网络中选择目标以确定目标中心点。
4.1.2)将输入图像分成多个单元格,计算中心点所在的单元的坐标。
4.1.3)通过中心点的坐标计算预测的边界框,即:
bx=δ(tx) cx
by=δ(ty) cy
式中,(bx,by)表示预测边界框中心点的坐标,(bw,bh)表示预测边界框的宽和高,(tx,ty)表示目标中心点坐标,(tw,th)表示目标边界的宽和高,(pw,pw)表示anchor区域的宽度和高度,(cx,cy)表示坐标偏移量,δ函数为logistic函数。
4.2)对边界框中图像进行检测,使用sigmoid函数作为类预测的激活函数,判断作业人员是否佩戴安全帽。
本发明的技术效果是毋庸置疑的。本发明所提出的视频流安全帽检测方法的有益效果如下:
1)以视频流为基础,智能检验未佩戴安全帽的人员;
2)降低人员管理成本,保障施工安全质量和工期进度;
3)推动数字化施工监管和智能化施工监管在实际中的应用。
附图说明
图1为图像处理过程示意图;
图2为图像处理示意图;
图3为方法流程图;
图4为检验视频中待检验图像;
图5为图4经本发明处理后所得到的测试图像。
具体实施方式
下面结合实施例对本发明作进一步说明,但不应该理解为本发明上述主题范围仅限于下述实施例。在不脱离本发明上述技术思想的情况下,根据本领域普通技术知识和惯用手段,做出各种替换和变更,均应包括在本发明的保护范围内。
实施例1:
参见图1至图3,一种通过工地视频流检测未佩戴安全帽人员的方法,主要包括以下步骤:
1)提取t时间内待检测区域监控设备的视频流,并建立训练样本集。
进一步,建立训练样本集的主要步骤如下:
1.1)提取t时间内待检测区域监控设备的视频流。
1.2)从所述视频流中逐帧截取并保存保护作业人员的图像。
1.3)对图像进行识别,为佩戴安全帽的作业人员图像和未佩戴安全帽的作业人员图像打上不同分类标签,完成图像分类,得到安全帽佩戴检测类别,从而制作出训练样本集。
2)建立yolo网络模型。
进一步,所述yolo网络模型为yolov3网络模型。
进一步,所述yolo网络模型主要包括特征提取层和处理输出层。所述特征提取层包括输入层、低级卷积层和高级卷积层。
3)对yolo网络模型进行训练,得到训练后的yolo网络模型。
对yolo网络模型进行训练的主要步骤如下:
3.1)利用coco数据集对yolo网络模型进行预训练,主要步骤为:
3.1.1)利用低级卷积层捕获图片中边缘、拐角等低级图像特征,利用高级卷积层捕获图片中形状、图形等更容易被识别区分的高级图像特征。所述低级图像特征包括图像边缘和拐角;所述高级图像特征包括作业人员轮廓特征和安全帽轮廓特征。一般来说,除低级图像特征以外的图像特征即为高级图像特征。
3.1.2)将低级特征插入到若干高级卷积层中,实现特征规范。
3.1.3)重复步骤3.1.1至步骤3.1.2,完成所有图像的预训练。
3.2)预训练后,删除特征值矩阵的最后一行后,对特征值矩阵的最后一行进行重写,使类别的输出与安全帽佩戴检测的类别对应。
3.3)将训练样本集输入到预训练后的yolo网络模型中,对预训练后的yolo网络模型进行训练,直至损失函数loss达到阈值ε。
yolo网络模型总损失函数loss如下所示:
式中,
s2为网格数。b为每个单元格中的预测框数。x,y为每个单元的中心坐标。w、h为预测框的宽度和高度。c为预测框的置信度。pi(c)指的是属于类c的对象在网格i中的真实概率。
4)实时提取待检测区域监控设备的视频流,并转换为待检测图像。将待检测图像输入到训练后的yolo网络模型中,检测待检测区域内作业人员是否佩戴安全帽。
检测待检测区域内作业人员是否佩戴安全帽的主要步骤如下:
4)实时提取待检测区域监控设备的视频流,并转换为待检测图像。将待检测图像输入到训练后的yolo网络模型中,检测待检测区域内作业人员是否佩戴安全帽。
检测待检测区域内作业人员是否佩戴安全帽的主要步骤如下:
4.1)确定检测边界,主要步骤如下:
4.1.1)输入图像时,首先在网络中选择目标以确定目标中心点。
4.1.2)将输入图像分成多个单元格,计算中心点所在的单元的坐标。
4.1.3)通过中心点的坐标计算预测的边界框,即:
bx=δ(tx) cx
by=δ(ty) cy
式中,(bx,by)表示预测边界框中心点的坐标,(bw,bh)表示预测边界框的宽和高,(tx,ty)表示目标中心点坐标,(tw,th)表示目标边界的宽和高,(pw,pw)表示anchor区域的宽度和高度,(cx,cy)表示坐标偏移量,δ函数为logistic函数。
4.2)对边界框中图像进行检测,使用sigmoid函数作为类预测的激活函数,判断作业人员是否佩戴安全帽。
实施例2:
一种通过工地视频流检测未佩戴安全帽人员的方法,主要包括以下步骤:
1)提取t时间内待检测区域监控设备的视频流,并建立训练样本集。
2)建立yolo网络模型。
3)对yolo网络模型进行训练,得到训练后的yolo网络模型。
4)实时提取待检测区域监控设备的视频流,并转换为待检测图像。将待检测图像输入到训练后的yolo网络模型中,检测待检测区域内作业人员是否佩戴安全帽。
实施例3:
一种通过工地视频流检测未佩戴安全帽人员的方法,主要步骤见实施例2,其中,建立训练样本集的主要步骤如下:
1)提取t时间内待检测区域监控设备的视频流,
2)从所述视频流中逐帧截取并保存保护作业人员的图像,
3)令作业人员头戴安全帽拍照,再取下安全帽拍照。
4)对图像进行识别,为佩戴安全帽的作业人员图像和未佩戴安全帽的作业人员图像打上不同分类标签,完成图像分类,得到安全帽佩戴检测类别,从而制作出训练样本集。
实施例4:
一种通过工地视频流检测未佩戴安全帽人员的方法,主要步骤见实施例2,其中,对yolo网络模型进行训练的主要步骤如下:
1)利用coco数据集对yolo网络模型进行预训练,主要步骤为:
1.1)利用低级卷积层捕获低级图像特征,利用高级卷积层捕获高级图像特征。
1.2)将低级特征插入到若干高级卷积层中,实现特征规范。
1.3)重复步骤1.1至步骤1.2,完成所有图像的预训练。
2)预训练后,删除特征值矩阵的最后一行后,对特征值矩阵的最后一行进行重写,使类别的输出与安全帽佩戴检测的类别对应。
3)将训练样本集输入到预训练后的yolo网络模型中,对预训练后的yolo网络模型进行训练,直至损失函数loss达到阈值ε。
yolo网络模型损失函数loss如下所示:
式中,
实施例5:
一种通过工地视频流检测未佩戴安全帽人员的方法,主要步骤见实施例2,其中,检测待检测区域内作业人员是否佩戴安全帽的主要步骤如下:
1)确定检测边界,主要步骤如下:
1.1)输入图像时,首先在网络中选择目标以确定目标中心点;
1.2)将输入图像分成多个单元格,并计算中心点所在的单元的坐标;
1.3)通过中心点的坐标计算预测的边界框,即:
bx=δ(tx) cx
by=δ(ty) cy
式中,(bx,by)表示预测边界框中心点的坐标,(bw,bh)表示预测边界框的宽和高,(tx,ty)表示目标中心点坐标,(tw,th)表示目标边界的宽和高,(pw,pw)表示anchor区域的宽度和高度;(cx,cy)表示坐标偏移量,δ函数为logistic函数
2)对边界框中图像进行检测,使用sigmoid函数作为类预测的激活函数,判断作业人员是否佩戴安全帽。
实施例6:
参见图1至图5,一种通过工地视频流检测未佩戴安全帽人员的方法,主要包括以下步骤:
1)检测网络的训练与检测模型的部署,具体包括:
1.1)在检测服务器搭建yolov3(youonlylookonceversion3)网络结构。
yolov3网络结构图如图1所示,网络结构可以分为特征提取层和处理输出层。yolov3模型可以具体分为106层(从0层开始计算),其中有75层是卷积层,23层是shortcut层,4层是route层,3层是yolo层,2层是上采样图层。在卷积层中,主要使用1*1和3*3滤波器,3*3卷积层用于减小宽度和高度,增加信道数量,1*1卷积层用于压缩特征表示后3*3卷积层。因为网络层越多,训练就越难。因此,shortcut层类似于resnet网络的快捷层,可以大大降低训练难度,提高训练准确率。route层实现跨层连接,促进多个不同特征的融合并一起学习。yolo层用于最终输出预测对象的坐标和类别。上采样层使用两个上采样来将大分辨率特征图与小分辨率特征图连接,以增强对小目标的识别。
1.2)使yolov3在coco数据集上预训练;
1.3)在制作数据集上进行训练,直至损失函数达到所设的阈值,得到检测模型并将其部署在检测服务器;
训练数据集的制作方法:对工地监控视频进行取帧,为所述图像帧中佩戴安全帽的人员及未佩戴安全帽的人员分别添加不同的标签。为保证训练数据的平衡性,对数量较少的未佩戴安全帽的标记数据进行数据增强操作,使得数据集具有较好的平衡性。为保证模型的精确性和泛化性,对所取定的图像帧的数量和质量均需满足特定的要求。
具体实施时,考虑到图像中的人员相互遮挡的情况,仅仅将未佩戴安全帽人物的头部标记为“danger”,而将佩戴安全帽的人员的头部标记为“hardhat”。同时,对于整体数量较少的未佩戴安全帽的情况,采用增加数据量和数据增强的技术来保证数据集的平衡性和训练得到的模型具的鲁棒性。
2)图像的处理,具体包括:
2.1)图像处理服务器接收视频流,转化成每一帧图片;
对将视频流转化成每一帧图片,进而完成实时检测,所述实时检测机理在于:对实时视频流取帧,得到视频流中某些连续帧的图像,取帧的频率要求大于等于25帧,即能够连续流畅播放的频率。
2.2)图片输入到部署训练好的yolov3检测模型,完成图片的依次检测;
yolov3检测过程图如图2,检测模型网络调整图片的大小,然后对图片进行检测得到检测类别、边界框,图片大小由1080*1920调至416*416,其中1080*1920是监控视频的分辨率,对于416*416大小的图片,yolov3下采样的总步长为32,最终得到的特征图大小为13*13,维度是奇数,这样特征图恰好只有一个中心位置。
2.3)检测结果保存到服务器并发送到显示端,未佩戴安全帽的对管理人员进行提示。图4为数据处理系统获取的图像,图5为yolo安全帽检测系统检测后的图像。
1.一种通过工地视频流检测未佩戴安全帽人员的方法,其特征在于,主要包括以下步骤:
1)提取t时间内待检测区域监控设备的视频流,并建立训练样本集;
2)建立yolo网络模型。
3)对yolo网络模型进行训练,得到训练后的yolo网络模型;
4)实时提取待检测区域监控设备的视频流,并转换为待检测图像;将待检测图像输入到训练后的yolo网络模型中,检测待检测区域内作业人员是否佩戴安全帽。
2.根据权利要求1或2所述的一种通过工地视频流检测未佩戴安全帽人员的方法,其特征在于:所述yolo网络模型为yolov3网络模型。
3.根据权利要求1所述的一种通过工地视频流检测未佩戴安全帽人员的方法,其特征在于,建立训练样本集的主要步骤如下:
1)提取t时间内待检测区域监控设备的视频流;
2)从所述视频流中逐帧截取并保存保护作业人员的图像;
3)对图像进行识别,为佩戴安全帽的作业人员图像和未佩戴安全帽的作业人员图像打上不同分类标签,完成图像分类,得到安全帽佩戴检测类别,从而制作出训练样本集。
4.根据权利要求1所述的一种通过工地视频流检测未佩戴安全帽人员的方法,其特征在于:所述yolo网络模型主要包括所述特征提取层和处理输出层;所述特征提取层包括输入层、低级卷积层和高级卷积层。
5.根据权利要求1所述的一种通过工地视频流检测未佩戴安全帽人员的方法,其特征在于:对yolo网络模型进行训练的主要步骤如下:
1)利用coco数据集对yolo网络模型进行预训练,主要步骤为:
1.1)利用低级卷积层捕获低级图像特征,利用高级卷积层捕获高级图像特征;所述低级图像特征包括图像边缘和拐角;所述高级图像特征包括作业人员轮廓特征和安全帽轮廓特征;
1.2)将低级特征插入到多个高级卷积层中,实现特征规范;
1.3)重复步骤1.1)至步骤1.2),完成所有图像的预训练;
2)预训练后,重写最后一层yolo层,使类别的输出与安全帽佩戴检测的类别对应;
3)将训练样本集输入到预训练后的yolo网络模型中,对预训练后的yolo网络模型进行训练,直至损失函数loss达到阈值ε;
yolo网络模型损失函数loss如下所示:
式中,
6.根据权利要求1所述的一种通过工地视频流检测未佩戴安全帽人员的方法,其特征在于,检测待检测区域内作业人员是否佩戴安全帽的主要步骤如下:
1)确定检测边界,主要步骤如下:
1.1)输入图像时,首先在网络中选择目标以确定目标中心点;
1.2)将输入图像分成多个单元格,并计算中心点所在的单元的坐标;
1.3)通过中心点的坐标计算预测的边界框,即:
bx=δ(tx) cx
by=δ(ty) cy
式中,(bx,by)表示预测边界框中心点的坐标,(bw,bh)表示预测边界框的宽和高,(tx,ty)表示目标中心点坐标,(tw,th)表示目标边界的宽和高,(pw,pw)表示anchor区域的宽度和高度;(cx,cy)表示坐标偏移量,δ函数为logistic函数
2)对边界框中图像进行检测,使用sigmoid函数作为类预测的激活函数,判断作业人员是否佩戴安全帽。
技术总结