一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于深度学习的用于生产安全的人员检测方法与流程

2021-12-04 00:02:00 来源:中国专利 TAG:


1.本发明涉及一种人员检测技术领域,具体涉及一种基于深度学习的用于生产安全的人员检测方法。


背景技术:

2.近年来,随着人工智能与计算机视觉技术的发展与推广,计算机视觉技术已广泛应用于工业生产的各个环节中,而其中安全生产是现代工业中非常重要的一环。
3.以天然气生产工厂产业为例,生产运维人员的违章行为,如未按照规定要求佩戴安全帽、违规进入作业区域、在非法区域吸烟、打电话等等,严重威胁着工厂生产安全。因此安全生产的一个核心任务就是人员安全行为检测,即通过视觉信息对天然气生产工厂场景下的人员进行实时检测,确定其位置和状态。此外,许多相似的生产场景下也存在着类似的安全需求,例如火灾现场、地震救援现场、石油化工生产现场等等,它们都需要在模糊背景下进行人员的检测。
4.在计算机视觉领域中,目标检测一直是一个热门研究方向,并且被广泛应用在工业安全领域。基于深度学习的端到端目标检测方法在过去几年中取得了巨大的突破。无论是更注重准确度的两阶段检测方法,如faster r

cnn等,还是更注重效率的单阶段检测方法,如yolo、ssd等,它们都能在通用数据集上达到比较好的检测效果。然而在实际应用中,需要检测的类别数量成千上万,纷繁复杂,但标记好的训练集的目标类别却极其有限,因此通用目标检测方法有一定的局限性,无法被直接用于复杂生产场景下的人员检测。
5.与通常场景下的目标检测相比,天然气工厂生产场景下的人员检测主要存在以下三个问题:(1)工厂设备布置综合环境复杂,设备分布密集、人像比例较小。(2)天然气工厂生产场景下的人员,主要是生产运维工人,与通常场景下人类别的视觉差异较大,如头戴安全帽、与背景中设备融合严重等等,因此需要作为一种新的类别目标来看待。(3)天然气工厂生产背景下的真实图像数据较为缺乏,不足以用于专门训练,而仅能作为测试集来进行检测效果的测试。


技术实现要素:

6.本发明所要解决的技术问题是提供了一种基于深度学习的用于生产安全的人员检测方法;通过retinanet网络模型在通用数据集上进行目标检测任务的训练,结合零样本学习的方法将模型迁移到天然气生产工人类或其他生产环境下的人员类的检测中,无需进行重新训练。
7.本发明基于深度学习的用于生产安全的人员检测方法是通过以下技术方案来实现的,具体步骤如下:
8.s1:数据采集;
9.s2:数据增强;
10.s3:训练模型;
11.s4:实验对比;
12.s5:服务器部署;
13.s3:训练模型具体步骤如下:
14.ss1、训练基础网络模型;
15.ss2、提取语义信息;
16.ss3、基于零样本学习的模型迁移。
17.作为优选的技术方案,ss1、训练基础网络模型,选用retinanet作为目标检测的基础网络模型;retinanet由骨干网络和金字塔网络fpn以及两个子网络构成;两个子网络构成包括分类子网络和框回归子网络;
18.骨干网络采用resnet;resnet依次连接金字塔网络fpn、分类子网络以及框回归子网络。
19.作为优选的技术方案,ss2、提取语义信息,通过采用word2vec算法中的skip

gram模型对维基英文语料库进行无监督训练,得到词库中每个词的词向量;skip

gram模型是一个神经网络模型,它以词对应的独热向量作为输入层,词向量作为隐藏层,词库中其他词可能为上下文的概率作为输出层,通过训练使最终得到的概率最为接近词库中的真实概率,这样训练得到输出层到隐藏层的参数,然后再据此计算每个词的词向量;对于每个类计算得到d维词向量w(c),两个词向量之间的欧式距离d(w(c
i
),w(c
j
))代表两个类在语义空间中的接近程度,距离越小表示这两个类越接近。
20.作为优选的技术方案,ss3、基于零样本学习的模型迁移,将要检测的目标类别分为可见类和不可见类;
21.其中可见类在训练阶段存在标记好的目标实例,而不可见类在训练阶段则不存在标记好的目标实例;
22.可见类的集合用表示,不可见类的集合用表示,表示所有类的集合,其中且模型迁移的目标是使得训练出的模型既能检测训练集中存在的可见类,又能很好地检测训练集中不存在的不可见类;
23.由于基础目标检测模型的分类子网络中最后一层的参数个数是固定的,与目标类别的个数绑定,因此训练中针对的是什么类别,模型就只能预测出这些类别的分数,而对不可见类的分数预测无能为力;针对分类子网络的结构和语义信息,我们提出了逐步递进的三种方法来改进原始网络,从而使其可以检测训练集中不存在的目标类,具体如下:
24.sss1:借助词向量进行逆预测;
25.sss2:增加语义嵌入层;
26.sss3:增加关联类来辅助检测;
27.sss1:借助词向量进行逆预测对于每个预测框b=(x1,y1,x2,y2),我们根据原始模型得到了每个可见类的预测分数p(s|b),其中向量m
p(s|b)
=[p(s1|b),p(s2|b)...p(s
s
|b)]是指所有可见类的预测分数组成的向量;每个可见类的词向量为w(s),矩阵表示所有可见类的词向量组成的矩阵;所有可见类的词向量矩阵与它们的
预测分数向量相乘即可得到预测词向量w(b):
[0028]
w(b)=m
p(s|b)
×
m
w(s)
[0029]
将预测词向量w(b)与所有不可见类词向量w(u)组成的矩阵m
w(u)
的伪逆矩阵相乘,其中从而得到各不可见类的预测分数组成的向量m
p(u|b)
,其中m
p(u|b)
=[p(u1|b),p(u2|b)...p(u
u
|b)],其计算公式如下所示:
[0030][0031]
之所以是伪逆矩阵,我们可以考虑可见类,按照此方法得到的各可见类的分数矩阵为:
[0032][0033]
即可见类在经过计算后仍能还原到原始的分数,说明使用伪逆矩阵有一定的数学根据;我们在实验中也尝试了使用词向量矩阵的转置,即效果确实要比使用伪逆矩阵差很多;反映在模型中,就是在分类子网络的最后加入了两个固定参数的全连接层;第一层的固定参数为所有可见类词向量组成的矩阵m
w(s)
,第二层的固定参数为所有不可见类词向量组成的矩阵的伪逆矩阵最终的输出即是各不可见类的分数组成的向量:m
p(u|b)

[0034]
sss2:增加语义嵌入层,在模型的最后加入了对不可见类分数的计算,而在预测可见类时并没有加入语义信息;为了更多地利用语义信息来帮助检测,我们在预测可见类分数时也加入语义嵌入层;思路如下:可见类分类的最后一步不是直接预测出类分数,而是先预测出词向量,然后再转换为类分数;
[0035]
sss3:增加关联类来辅助检测,用到的辅助语义信息只有单个类别的词向量,反映的信息量十分有限;在此方法中我们希望增加与要检测的不可见类相关联类别的词向量,来降低语义噪声;这里的关联类,是指与目标类别常常同时出现的目标,有三种情况:
[0036]
ssss1:目标类身上附着的物体,如安全帽之于天然气生产工人;ssss2:目标类的通常背景,如天空之于飞盘;ssss3:常常与目标类伴随出现的相关物体,如刀之于叉子;
[0037]
我们用表示不可见类u的关联类集合,即表示类r是不可见类u的一个关联类,w(r)表示关联类r的词向量,m
w(r)
表示所有不可见类的关联类词向量组成的矩阵,即与上一种方法类似地,我们可以预测得到各不可见类的分数向量m
p(u|b)
,同样我们也可以得到各关联类的预测分数向量:
[0038][0039]
其中,m
p(r|b)
定义为m
p(r|b)
=[p(r1|b),p(r2|b)...p(r
r
|b)];
[0040]
最后我们将不可见类和它们关联类的预测分数相结合,得到最终的预测分数:
[0041][0042]
其中,q(r,u)为不可见类u和其关联类r之间的关联系数;
[0043]
采用模型表示,即是在分类子网络的最后加入了四个固定参数的全连接层,新增的四个全连接层;第一层的固定参数为所有可见类词向量组成的矩阵m
w(s)
,然后分别连接并行的第二层和第三层;第二层的固定参数为所有不可见类词向量组成的矩阵的伪逆矩阵它的输出即是所有不可见类的初始分数组成的向量m
p(u|b)
;第三层的固定参数为所有不可见类的关联类词向量组成的矩阵的伪逆矩阵它的输出即是所有关联类的分数组成的向量m
p(r|b)
;接下来将二三层的输出进行连接再输入到第四层,第四层的固定参数为所有不可见类与它自身以及其关联类的关联系数矩阵m
q(r,u)
,最终输出为所有不可见类的最终分数组成的矩阵m
p'(u|b)

[0044]
本发明的有益效果是:通过retinanet网络模型在通用数据集上进行目标检测任务的训练,结合零样本学习的方法将模型迁移到天然气生产工人类或其他生产环境下的人员类的检测中,无需进行重新训练。
附图说明
[0045]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0046]
图1:retinanet模型网络结构图;
[0047]
图2:通过词向量进行逆预测方法的分类子网络结构图;
[0048]
图3:增加语义嵌入层方法的分类子网络结构图;
[0049]
图4:增加关联类方法的分类子网络结构图。
具体实施方式
[0050]
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
[0051]
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
[0052]
在本发明的描述中,需要理解的是,术语“一端”、“另一端”、“外侧”、“上”、“内侧”、“水平”、“同轴”、“中央”、“端部”、“长度”、“外端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0053]
此外,在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0054]
本发明使用的例如“上”、“上方”、“下”、“下方”等表示空间相对位置的术语是出于
便于说明的目的来描述如附图中所示的一个单元或特征相对于另一个单元或特征的关系。空间相对位置的术语可以旨在包括设备在使用或工作中除了图中所示方位以外的不同方位。例如,如果将图中的设备翻转,则被描述为位于其他单元或特征“下方”或“之下”的单元将位于其他单元或特征“上方”。因此,示例性术语“下方”可以囊括上方和下方这两种方位。设备可以以其他方式被定向(旋转90度或其他朝向),并相应地解释本文使用的与空间相关的描述语。
[0055]
在本发明中,除非另有明确的规定和限定,术语“设置”、“套接”、“连接”、“贯穿”、“插接”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0056]
如图1-图4所示,本发明的一种基于深度学习的用于生产安全的人员检测方法,具体步骤如下:
[0057]
s1:数据采集;
[0058]
s2:数据增强;
[0059]
s3:训练模型;
[0060]
s4:实验对比;
[0061]
s5:服务器部署;
[0062]
s3:训练模型具体步骤如下:
[0063]
ss1、训练基础网络模型;
[0064]
ss2、提取语义信息;
[0065]
ss3、基于零样本学习的模型迁移。
[0066]
本实施例中,ss1、训练基础网络模型,选用retinanet作为目标检测的基础网络模型;retinanet由骨干网络1和金字塔网络fpn2以及两个子网络构成;两个子网络构成包括分类子网络3和框回归子网络4;
[0067]
骨干网络采用resnet1;resnet1依次连接金字塔网络fpn2、分类子网络3以及框回归子网络4;resnet1即深度残差网络,基本思路是在原始映射f(x)的基础上增加一个自身映射x,从而得到新的映射函数h(x)=f(x) x,来解决退化问题;金字塔网络fpn2则通过自顶向下的有效路径和横向连接来强化原始深度卷积网络,因此可以从原始单分辨率的输入图像上构建出多尺度的特征金字塔,并且每个金字塔等级可以用来检测不同大小、比例的目标;分类子网络3在每个fpn等级上进行框类别的预测,每个等级之间的参数是共享的。它是一个小型全卷积(fcn)网络,具体来说,使用fpn得到的c个通道的特征图,这里c是256,应用4个3
×
3的卷积层,卷积核的个数为c,每个卷积层后面都跟一个relu激活函数,然后再应用1个3
×
3的卷积层,卷积核的个数为k
×
a,k是目标类别的个数,a是锚框的个数,最后再跟一个sigmoid激活函数;框回归子网络4,与分类子网络3并行进行,在每个fpn等级上进行框坐标的预测。它与分类子网络结构基本相似,都是将一个小型全卷积网络附加到每个金字塔等级上,只是将最后一个卷积层的卷积核个数变为4
×
a,从而能够预测出相对锚框的4个坐标的偏移值。
[0068]
我们在通用目标检测数据集coco2014上训练我们的基础网络模型,得到能够检测
80个类的目标检测模型。但是该模型无法检测训练集中不存在的天然气生产工人类,或者将天然气生产工人类视作普通的人员类的检测效果不佳。因此我们提出了基于语义信息的零样本方法,使得模型也能够检测训练集中不存在的目标类别。
[0069]
本实施例中,ss2、提取语义信息,通过采用word2vec算法中的skip

gram模型对维基英文语料库进行无监督训练,得到词库中每个词的词向量;skip

gram模型是一个神经网络模型,它以词对应的独热向量作为输入层,词向量作为隐藏层,词库中其他词可能为上下文的概率作为输出层,通过训练使最终得到的概率最为接近词库中的真实概率,这样训练得到输出层到隐藏层的参数,然后再据此计算每个词的词向量;对于每个类计算得到d维词向量w(c),两个词向量之间的欧式距离d(w(c
i
),w(c
j
))代表两个类在语义空间中的接近程度,距离越小表示这两个类越接近。
[0070]
本实施例中,ss3、基于零样本学习的模型迁移,将要检测的目标类别分为可见类和不可见类;
[0071]
其中可见类在训练阶段存在标记好的目标实例,而不可见类在训练阶段则不存在标记好的目标实例;
[0072]
可见类的集合用表示,不可见类的集合用表示,表示所有类的集合,其中且模型迁移的目标是使得训练出的模型既能检测训练集中存在的可见类,又能很好地检测训练集中不存在的不可见类;
[0073]
由于基础目标检测模型的分类子网络中最后一层的参数个数是固定的,与目标类别的个数绑定,因此训练中针对的是什么类别,模型就只能预测出这些类别的分数,而对不可见类的分数预测无能为力;针对分类子网络的结构和语义信息,我们提出了逐步递进的三种方法来改进原始网络,从而使其可以检测训练集中不存在的目标类,具体如下:
[0074]
sss1:借助词向量进行逆预测;
[0075]
sss2:增加语义嵌入层;
[0076]
sss3:增加关联类来辅助检测;
[0077]
sss1:借助词向量进行逆预测对于每个预测框b=(x1,y1,x2,y2),我们根据原始模型得到了每个可见类的预测分数p(s|b),其中向量m
p(s|b)
=[p(s1|b),p(s2|b)...p(s
s
|b)]是指所有可见类的预测分数组成的向量;每个可见类的词向量为w(s),矩阵表示所有可见类的词向量组成的矩阵;所有可见类的词向量矩阵与它们的预测分数向量相乘即可得到预测词向量w(b):
[0078]
w(b)=m
p(s|b)
×
m
w(s)
[0079]
将预测词向量w(b)与所有不可见类词向量w(u)组成的矩阵m
w(u)
的伪逆矩阵相乘,其中从而得到各不可见类的预测分数组成的向量m
p(u|b)
,其中m
p(u|b)
=[p(u1|b),p(u2|b)...p(u
u
|b)],其计算公式如下所示:
[0080][0081]
之所以是伪逆矩阵,我们可以考虑可见类,按照此方法得到的各可见类的分数矩阵为:
[0082][0083]
即可见类在经过计算后仍能还原到原始的分数,说明使用伪逆矩阵有一定的数学根据;我们在实验中也尝试了使用词向量矩阵的转置,即效果确实要比使用伪逆矩阵差很多;反映在模型中,就是在分类子网络的最后加入了两个固定参数的全连接层;第一层的固定参数为所有可见类词向量组成的矩阵m
w(s)
,第二层的固定参数为所有不可见类词向量组成的矩阵的伪逆矩阵最终的输出即是各不可见类的分数组成的向量:m
p(u|b)
;虚线框内为新添加的预测不可见类分数的两个全连接层。图中的s表示可见类的个数,d表示词向量的维数,u表示不可见类的个数
[0084]
sss2:增加语义嵌入层,在模型的最后加入了对不可见类分数的计算,而在预测可见类时并没有加入语义信息;为了更多地利用语义信息来帮助检测,我们在预测可见类分数时也加入语义嵌入层;思路如下:可见类分类的最后一步不是直接预测出类分数,而是先预测出词向量,然后再转换为类分数;具体来说,就是将原始分类子网络的最后一个卷积层的卷积核个数修改为d
×
a,d是词向量的维数,然后再增加一个参数固定的全连接层,参数为可见类的词向量w(s)组成的矩阵的转置从而输出可见类的分数向量m
p(s|b)
。后续预测不可见类分数的步骤与前面的方法相同。
[0085]
sss3:增加关联类来辅助检测,用到的辅助语义信息只有单个类别的词向量,反映的信息量十分有限;在此方法中我们希望增加与要检测的不可见类相关联类别的词向量,来降低语义噪声;这里的关联类,是指与目标类别常常同时出现的目标,有三种情况:
[0086]
ssss1:目标类身上附着的物体,如安全帽之于天然气生产工人;ssss2:目标类的通常背景,如天空之于飞盘;ssss3:常常与目标类伴随出现的相关物体,如刀之于叉子;
[0087]
我们用表示不可见类u的关联类集合,即表示类r是不可见类u的一个关联类,w(r)表示关联类r的词向量,m
w(r)
表示所有不可见类的关联类词向量组成的矩阵,即与上一种方法类似地,我们可以预测得到各不可见类的分数向量m
p(u|b)
,同样我们也可以得到各关联类的预测分数向量:
[0088][0089]
其中,m
p(r|b)
定义为m
p(r|b)
=[p(r1|b),p(r2|b)...p(r
r
|b)];
[0090]
最后我们将不可见类和它们关联类的预测分数相结合,得到最终的预测分数:
[0091][0092]
其中,q(r,u)为不可见类u和其关联类r之间的关联系数;
[0093]
采用模型表示,即是在分类子网络的最后加入了四个固定参数的全连接层,新增的四个全连接层;第一层的固定参数为所有可见类词向量组成的矩阵m
w(s)
,然后分别连接并行的第二层和第三层;第二层的固定参数为所有不可见类词向量组成的矩阵的伪逆矩阵它的输出即是所有不可见类的初始分数组成的向量m
p(u|b)
;第三层的固定参数为所有不可见类的关联类词向量组成的矩阵的伪逆矩阵它的输出即是所有关联类的分数组成的向量m
p(r|b)
;接下来将二三层的输出进行连接再输入到第四层,第四层的固定参数为所有不可见类与它自身以及其关联类的关联系数矩阵m
q(r,u)
,最终输出为所有不可见类的最终分数组成的矩阵m
p'(u|b)

[0094]
工作过程如下:
[0095]
1、数据采集,我们在天然气工厂场景下部署了3路网络摄像头,分别在压缩机房、脱盐泵房和p203泵房等关键区域。共采集了858张图片作为测试集,包含1647个天然气生产工人目标实例框。
[0096]
2、数据增强。初始的天然气工厂测试集中的图片和目标框的数量过少,进行数据增强可以扩充测试集,提高测试结果的稳定性,更能如实地反映实际应用的效果。我们用到的数据增强的方法如下,有水平翻转、随机裁剪、随机亮度调整和高斯滤波。
[0097]
3、训练模型,我们使用coco2014数据集来训练网络模型。训练集包含64480张图片和474173个实例框,对应80个目标类别。我们在两块nvidiartx2080ti显卡上进行并行训练,批大小为4,每轮进行16120次迭代,共训练25轮。优化器采用标准adam优化器,梯度裁剪参数clipnorm为0.001,β1为0.9,β2为0.999。初始学习率为10
‑5,利用回调函数监测损失,据此自动降低学习率。总的训练时间约为90个小时。
[0098]
4、实验对比,我们使用目标检测中最常用的评价指标检测准确度ap,ap即不同召回率下精度的平均。对于天然气生产工人类,我们对比的目标是将其视作普通的人员类别来进行检测的方法,我们将该方法命名为normal。normal方法和我们的方法在不同场景下对天然气生产工人的检测准确度以及平均准确度如下表所示:
[0099][0100][0101]
可以看到,normal方法检测的平均准确度ap为0.41,而我们的方法将ap提升到了0.47。
[0102]
5、服务器部署,通过flask服务,将训练好的模型部署到服务器上,通过目标检测算法,在视频上标记检测天然气生产工人的结果。并根据设置的报警区域和报警阈值,判断是否报警,并将报警结果通知给安全负责人。
[0103]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书所限定的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献