1.本发明涉及一种检测佩戴安全帽的方法,具体涉及一种轻量级检测佩戴安全帽的方法。
背景技术:
2.安全生产关系人民群众的生命财产安全,其中复杂环境中佩戴安全帽发挥着举足轻重的作用。安全帽可以保护人体致命部位头部,免受和减轻物体的打击或硬物的碰撞力度,最大程度缩小对头部的伤害。一些生产场所对安全帽的佩戴检测主要通过工作人员监督的方式,这种方式费时费力。因此,可以考虑通过目标检测方法对安全帽的佩戴进行检测。
3.传统的目标检测方法大概分为区域选择、特征提取、分类器三部分。传统目标检测存在两方面的不足:基于滑动窗口的区域选择策略没有针对性、时间复杂度高、窗口冗余,严重影响后续特征提取和分类的速度和性能;手工设计的特征对于目标多样性的变化没有很好的鲁棒性。
技术实现要素:
4.本发明是为了解决上述问题而进行的,目的在于提供一种轻量级检测佩戴安全帽的方法。
5.本发明提供了一种轻量级检测佩戴安全帽的方法,具有这样的特征,包括以下步骤:步骤s1,采集获取工人佩戴安全帽图像的数据集,并进行预处理,得到预处理数据集;
6.步骤s2,搭建轻量级检测佩戴安全帽网络模型,该轻量级检测佩戴安全帽网络模型包括主干特征提取网络、增强特征提取网络和检测模块;
7.步骤s3,将预处理数据集输入到主干特征提取网络,得到主干特征数据;
8.步骤s4,将主干特征数据输入到增强特征提取网络,得到增强特征数据;
9.步骤s5,将增强特征数据输入到检测模块,得到边界框和置信度评分,根据边界框和步骤s1中数据集进行预处理时的边框调整边界框的位置和大小;
10.步骤s6,重复步骤s3至步骤s5,直到满足停止条件,得到完成训练的轻量级检测佩戴安全帽网络模型;
11.步骤s7,获取待检测图像并进行预处理后输入到完成训练的轻量级检测佩戴安全帽网络模型,得到待检测图像的边界框和置信度评分;
12.步骤s8,根据待检测图像的置信度评分与预先设定的阈值比较判断置信度评分是否大于阈值,如果大于阈值则判定为佩戴安全帽,反之,则判定为未佩戴安全帽。
13.在本发明提供的一种轻量级检测佩戴安全帽的方法中,还可以具有这样的特征:其中,主干特征提取网络包括多个n-bottleneck结构,
14.每个n-bottleneck结构包括卷积操作、归一化和激活函数,
15.激活函数为elu6激活函数。
16.在本发明提供的一种轻量级检测佩戴安全帽的方法中,还可以具有这样的特征:其中,步骤s1中,预处理包括数据清洗和数据变换,
17.数据变换包括灰度化、图像几何变换以及图像增强。
18.在本发明提供的一种轻量级检测佩戴安全帽的方法中,还可以具有这样的特征:其中,灰度化采用加权平均法,表达式为:
19.l=r*299/100 g*587/1000 b*114/1000
ꢀꢀꢀ
(1)
20.公式(1)中,l为图像的灰度值,r为红色亮度,g为绿色亮度, b为蓝色亮度。
21.在本发明提供的一种轻量级检测佩戴安全帽的方法中,还可以具有这样的特征:其中,图像几何变换包括平移、转置、镜像、旋转、缩放。
22.在本发明提供的一种轻量级检测佩戴安全帽的方法中,还可以具有这样的特征:其中,步骤s6中,停止条件是损失函数loss下降趋势停止或者开始上升。
23.发明的作用与效果
24.根据本发明的一种轻量级检测佩戴安全帽的方法。首先由于本发明采用轻量级的检测模型,该模型包括主干特征提取网络、增强特征提取网络和检测模块,其中增强特征提取网络结构采用n-bottleneck 结构。为了降低模型的退化问题,n-bottleneck结构采用残差结构将低层次特征图的高分辨率等信息和高层次特征图的语义信息相结合,增强模型的表达能力,从而提高检测率。
25.其次,本发明对采集到的数据进行预处理,包括对数据进行灰度化。由于人眼对绿色的敏感最高,对蓝色敏感最低。因此本发明灰度化采用的是对rgb三分量进行加权平均能得到较合理的灰度图像,从而消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性、最大限度地简化数据,从而改进特征提取、图像分割、匹配和识别的可靠性。
26.最后,本发明所使用的轻量级检测模型包括特征提取网络、增强特征提取网络和检测模块,其中特征提取网络包括多个卷积层,每个卷积层包括深度可分离卷积操作、归一化和激活函数。本发明中的特征提取网络采用n-bottleneck结构,n-bottleneck结构由线性瓶颈结构组成,在建立模型时,将卷积核的个数设置成输入特征图的通道数 (channels)实现深度可分离卷积操作,然后再利用1*1卷积调整 channels,最后将输入图片经过1*1卷积调整通道之后与上述经过两次卷积操作的特征图相加,得到特征图。本发明中n-bottleneck结构的激活函数采用的是elu6激活函数。elu6结合了elu激活函数和 relu6激活函数的特点,具有低成本、光滑、非单调的特点,elu 激活函数的平均值接近零,从而加快学习的速度。同时,还可以通过正值的标识来避免梯度消失的问题。elu融合了sigmoid和relu的特性,左侧具有软饱和性,左侧软饱和性能够让elu对输入变化或噪声更鲁棒;relu6就是普通的relu但是限制最大输出值为6,这是为了在移动端设备16位浮点数(float16)低精度的时候,也能有很好的数值分辨率,如果对relu的激活范围不加限制,输出范围为 0到正无穷,如果激活值非常大,分布在一个很大的范围内,则低精度的float16无法很好地精确描述如此大范围的数值,带来精度损失。因此它结合了elu和relu6的优点,在左侧对输入变化或噪声鲁棒性更高,在右侧对移动端设备具有更高的数值分辨率,从而避免产生精度损失问题。
附图说明
27.图1是本发明的实施例的一种轻量级检测佩戴安全帽的方法的流程示意图;
28.图2为本发明实施例中的待检测图像检测过程示意图;
29.图3为本发明实施例中一种轻量级检测佩戴安全帽模型结构示意图;
30.图4是本发明实施例中的n-bottleneck结构图;
31.图5是本发明实施例中的elu6激活函数的示意图。
具体实施方式
32.为了使本发明实现的技术手段与功效易于明白了解,以下结合实施例及附图对本发明作具体阐述。
33.《实施例》
34.图1是本发明的实施例的一种轻量级检测佩戴安全帽的方法的流程示意图。
35.如图1所示,本实施例的一种轻量级检测佩戴安全帽的方法,包括以下步骤:
36.步骤s1,采集获取工人佩戴安全帽图像的数据集,并进行预处理,得到预处理数据集。
37.本实施例中,采集数据集的方式是利用python爬虫爬取各大视频网站的出现戴安全帽工人的画面,然后将爬取的样本进行数据预处理。
38.图像预处理的主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性、最大限度地简化数据,从而改进特征提取、图像分割、匹配和识别的可靠性。
39.步骤s1中,预处理包括数据清洗和数据变换,
40.数据变换包括灰度化、图像几何变换以及图像增强。
41.本实施例中采用的数据预处理方法主要是灰度化和图像几何变换。为了达到提高整个应用系统的处理速度的目的,需要对彩色图像进行灰度化以减少所需处理的数据量。
42.本实施例中灰度化采用加权平均法,根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对rgb三分量进行加权平均能得到较合理的灰度图像。根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对rgb三分量进行加权平均能得到较合理的灰度图像,具体计算公式为:
43.l=r*299/100 g*587/1000 b*114/1000
ꢀꢀꢀ
(1)
44.公式(1)中,l为图像的灰度值,r为红色亮度,g为绿色亮度, b为蓝色亮度。
45.图像几何变换包括平移、转置、镜像、旋转、缩放。
46.本实施例中的图像几何变换,利用平移、转置、镜像、旋转、缩放等几何变换对采集的图像进行处理,目的是改正图像采集系统的系统误差和仪器位置(成像角度、透视关系乃至镜头自身原因)的随机误差。图像几何变换还需要利用灰度插值算法,因为按照这种变换关系进行计算,输出图像的像素可能被映射到输入图像的非整数坐标上。灰度插值算法通常有最近邻插值法、双线性插值法和双三次插值法这三种方法。本实施例中采用的是双线性插值法。
47.本实施例中,对训练数据集中的正样本共做了四种处理,分别为灰度处理、改变通
道顺序、添加噪声、图像空间变换,具体操作数量如表1所示。
48.表1 正样本处理情况表
[0049][0050]
步骤s2,搭建轻量级检测佩戴安全帽网络模型,该轻量级检测佩戴安全帽网络模型包括主干特征提取网络、增强特征提取网络和检测模块。
[0051]
主干特征提取网络包括多个n-bottleneck结构,
[0052]
每个n-bottleneck结构包括卷积操作、归一化和激活函数,
[0053]
激活函数为elu6激活函数。
[0054]
步骤s3,将预处理数据集输入到主干特征提取网络,得到主干特征数据。
[0055]
步骤s4,将主干特征数据输入到增强特征提取网络,得到增强特征数据。
[0056]
步骤s5,将增强特征数据输入到检测模块,得到边界框和置信度评分,根据边界框和步骤s1中数据集进行预处理时的边框调整边界框的位置和大小。
[0057]
步骤s6,重复步骤s3至步骤s5,直到满足停止条件,得到完成训练的轻量级检测佩戴安全帽网络模型。
[0058]
步骤s6中,停止条件是损失函数loss下降趋势停止或者开始上升。
[0059]
本实施例中,轻量级佩戴安全帽检测模型训练采用了两阶段的训练方式,第一次训练的学习率为0.0001,epoch设置为50次,每一轮次(epoch)迭代次数为100次。在训练时将数据集随机分成两份,其中一份用于训练,一份用于测试,比例为9:1。在第一次训练结束之后把得到的权重文件加载到程序中,然后开始第二次的训练,初始学习率设置为0.00005。
[0060]
本实施例中,将戴安全帽的数据规定为正样本(positive)、未戴安全帽的数据规定为负样本(negative)。安全帽识别任务需要对目标进行检测和定位。使用机器学习中的评价指标包括召回率、准确率和精确率进行评价。召回率(recall,正确预测为正类的数量占真正的正类总数量的比例),accuracy(准确率,预测正确的数量占总数的比例)和精确率(precision,正确预测为正类的数量占预测为正类的数量的比例)。公式如下:
[0061][0062][0063][0064]
公式(2)-(4)中,tp为真正例,模型判断这个样本为正例,并且判断正确(样本实际就是正例);tn为真负例,也就是模型判断这个样本为负例,并且判断正确(样本实际就是负例);fp为假正例,模型判断这个样本为正例,但是判断错误(样本实际为负例);fn为假负例,也就是模型判断这个样本为负例,但是判断错误(样本实际为正例)。
[0065]
在本实施例中使用模型平均精确率(meanaverageprecision,map) 对模型的性能进行评价,首先用训练好的模型得到所有样本的置信度值(confidencescore),然后对置信
度值(confidencescore)排序并计算精确率(precision)和召回率(recall)进一步计算出类别平均精确率(ap),最后根据类别平均精确率(ap)求均值得到模型平均精确率(map)。
[0066]
图2为本发明实施例中的待检测图像检测过程示意图。
[0067]
如图2所示,步骤s7,获取待检测图像并进行预处理后输入到完成训练的轻量级检测佩戴安全帽网络模型,得到待检测图像的边界框和置信度评分。
[0068]
本实施例中,通过计算机摄像头按帧截取采集待检测图像,由于检测过程中不需要对整幅图像全部进行检测,所以在截取到图像之后使用opencv中的dlib库对截取出的图像进行人脸特征点标记,然后根据dlib库标记出的人脸特征点进一步截取出人脸及人脸附近区域,按照人脸的两倍区域进行截取。使用截取出的人脸区域图像进行检测可以大幅缩短检测时间,检测模型不需要对整幅图像进行卷积操作获取出特征图,从而提升检测速率实现实时检测。
[0069]
对待检测图像进行处理,把待检测图像扩展成为416*416大小。为了保证图像不失真,本发明中使用了填充法。如果待检测的图像大小不足416*416,则对其四周填充灰度条,并输入到轻量级检测模型中。
[0070]
步骤s8,根据待检测图像的置信度评分与预先设定的阈值比较判断置信度评分是否大于阈值,如果大于阈值则判定为佩戴安全帽,反之,则判定为未佩戴安全帽。
[0071]
图3为本发明实施例中一种轻量级检测佩戴安全帽模型结构示意图。
[0072]
如图3所示,本实施例中的轻量级检测佩戴安全帽模型包括三个部分,分别为特征提取网络、增强特征提取网络和检测模块,其中特征提取网络包括22个n-bottleneck结构,每个n-bottleneck包括卷积操作、归一化和激活函数。
[0073]
图4是本发明实施例中的n-bottleneck结构图。
[0074]
如图4所示,每个n-bottleneck结构都包括一个残差结构,残差结构可以残差结构将低层次特征图的高分辨率等信息和高层次特征图的语义信息相结合,增强模型的表达能力。n-bottleneck采用线性瓶颈结构,首先使用卷积核对输入的图片进行卷积操作,然后再进行调整通道数的操作,从而大幅减少计算量,提高检测速度。
[0075]
图5是本发明实施例中的elu6激活函数的示意图。
[0076]
如图5所示,本实施例中使用的激活函数为elu6激活函数。因为大多数常用的激活函数,如relu[f(x)=max(0,x)],leakyrelu[f(x)=max(0,x),1],由于其差分为0,不能保持负值,所有大多数神经元没有得到更新。而elu6激活函数具有低成本、光滑、非单调、有上界和下界的特点,在左侧融合了elu激活函数对噪声鲁棒性高的特点,在右侧融合了relu6右侧对移动端设备具有更高的数值分辨率,从而避免产生精度损失问题。增强特征提取网络采用特征金字塔结构,即分别选取主干特征提取网络中的最后三层输出的特征图作为增强特征提取网络的输入,这三层特征图在增强特征提取网络中进行上采样融合等操作,得到三个增强特征图,然后将这三个增强特征图作为检测模块的输入,在检测模块中进行最后的预测,预测结果为在原图中标出检测目标的边界框以及得出置信度评分。
[0077]
实施例的作用与效果
[0078]
根据本实施例的一种轻量级检测佩戴安全帽的方法。首先由于本实施例采用轻量级的检测模型,该模型包括主干特征提取网络、增强特征提取网络和检测模块,其中增强特征提取网络结构采用 n-bottleneck结构。为了降低模型的退化问题,n-bottleneck结构采
用残差结构将低层次特征图的高分辨率等信息和高层次特征图的语义信息相结合,增强模型的表达能力,从而提高检测率。
[0079]
其次,本实施例对采集到的数据进行预处理,包括对数据进行灰度化。由于人眼对绿色的敏感最高,对蓝色敏感最低。因此本实施例灰度化采用的是对rgb三分量进行加权平均能得到较合理的灰度图像,从而消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性、最大限度地简化数据,从而改进特征提取、图像分割、匹配和识别的可靠性。
[0080]
最后,本实施例所使用的轻量级检测模型包括特征提取网络、增强特征提取网络和检测模块,其中特征提取网络包括多个卷积层,每个卷积层包括深度可分离卷积操作、归一化和激活函数。本实施例中的特征提取网络采用n-bottleneck结构,n-bottleneck结构由线性瓶颈结构组成,在建立模型时,将卷积核的个数设置成输入特征图的通道数(channels)实现深度可分离卷积操作,然后再利用1*1卷积调整channels,最后将输入图片经过1*1卷积调整通道之后与上述经过两次卷积操作的特征图相加,得到特征图。本实施例中n-bottleneck 结构的激活函数采用的是elu6激活函数。elu6结合了elu激活函数和relu6激活函数的特点,具有低成本、光滑、非单调的特点, elu激活函数的平均值接近零,从而加快学习的速度。同时,还可以通过正值的标识来避免梯度消失的问题。elu融合了sigmoid和relu的特性,左侧具有软饱和性,左侧软饱和性能够让elu对输入变化或噪声更鲁棒;relu6就是普通的relu但是限制最大输出值为 6,这是为了在移动端设备16位浮点数(float16)低精度的时候,也能有很好的数值分辨率,如果对relu的激活范围不加限制,输出范围为0到正无穷,如果激活值非常大,分布在一个很大的范围内,则低精度的float16无法很好地精确描述如此大范围的数值,带来精度损失。因此它结合了elu和relu6的优点,在左侧对输入变化或噪声鲁棒性更高,在右侧对移动端设备具有更高的数值分辨率,从而避免产生精度损失问题。
[0081]
上述实施方式为本发明的优选案例,并不用来限制本发明的保护范围。
转载请注明原文地址:https://tc.8miu.com/read-229.html